public function recalcCounters()
 {
     $sql = "SELECT COUNT(*) \n            FROM freelancer AS f \n            WHERE f.is_active AND f.is_banned = '0' \n                AND (f.cat_show = 't' OR f.is_pro = 'f') \n                AND f.last_time > now() - '6 months'::interval\n        ";
     $professions = new professions();
     $prof_groups = $professions->getProfGroupIds();
     foreach ($prof_groups as $group_id) {
         $profs_str = $professions->getProfIdForGroups($group_id, true);
         if ($profs_str) {
             $this->updateCounter($group_id, 0, $this->db->val($sql . " AND f.spec_orig IN ({$profs_str})"));
         }
     }
     $profs = $professions->getOriginProfsIds();
     foreach ($profs as $prof_id) {
         $this->updateCounter(0, $prof_id, $this->db->val($sql . ' AND f.spec_orig = ?i', $prof_id));
     }
     $this->updateCounter(0, 0, $this->db->val($sql));
 }