После вывода первых 4-х населенных пунктов, информация в блоке не меняется, несмотря на подачу объявлений в других населенных пунктов, количество объявлений в населенном пункте, а так же количество просмотров. Т.е. блок вывел информацию по четырём населенным пунктам и более никаких изменений не происходит.
Как я понял, выбираются все активные объявления, по ним собирается список городов, к которому они относятся и выводятся эти города в количестве не более 4-х. Кто первым вывелся – тем и «повезло».
Можно ли добавить сортировку по агрегатному запросу, но я, честно говоря, не знаю, где еще используется метод getAllActiveCities и что это может поломать?