Пример #1
0
 static function actionsControl(&$arrActions)
 {
     $user = new user();
     $subscription = new subscription();
     $vacancy = new vacancy();
     $resume = new resume();
     foreach ($arrActions as $action => $type) {
         switch ($action) {
             case 'updateCounters':
                 $result = caching::dropCache();
                 break;
             case 'delNonverifyUsers':
                 $uData = $user->getCombinedUsersData(array(array('users', 'id')), "users.token IN ('new') AND users.token_datetime < NOW()", false, false);
                 if (!empty($uData) && is_array($uData)) {
                     foreach ($uData as $data) {
                         $arrId[] = $data['id'];
                     }
                 }
                 $result = !empty($arrId) ? $user->deleteUsers($arrId, false, false, false, false, false) : true;
                 break;
             case 'delNontypeUsers':
                 $uData = $user->getCombinedUsersData(array(array('users', 'id')), "conf_users.token IN ('new') AND users.token IN ('active') AND users.token_datetime < NOW()", false, false);
                 if (!empty($uData) && is_array($uData)) {
                     foreach ($uData as $data) {
                         $arrId[] = $data['id'];
                     }
                 }
                 $result = !empty($arrId) ? $user->deleteUsers($arrId, false, false, false, false, false) : true;
                 break;
             case 'delUnpaidUsers':
                 $uData = $user->getCombinedUsersData(array(array('users', 'id')), "conf_users.token IN ('payment') AND users.token_datetime < NOW()", false, false);
                 if (!empty($uData) && is_array($uData)) {
                     foreach ($uData as $data) {
                         $arrId[] = $data['id'];
                     }
                 }
                 $result = !empty($arrId) ? $user->deleteUsers($arrId, false, false, false, false, false) : true;
                 break;
             case 'delUnpaidSubscr':
                 $result = $subscription->delSubscriptions("token IN ('payment') AND token_datetime < NOW()");
                 break;
             case 'vacDelNonverify':
                 $result = $vacancy->delAnnounces("token IN ('new') AND token_datetime < NOW()");
                 break;
             case 'resDelNonverify':
                 $result = $resume->delAnnounces("token IN ('new') AND token_datetime < NOW()");
                 break;
             case 'vacDelUnpaid':
                 $result = $vacancy->delAnnounces("token IN ('payment') AND token_datetime < NOW()");
                 break;
             case 'resDelUnpaid':
                 $result = $resume->delAnnounces("token IN ('payment') AND token_datetime < NOW()");
                 break;
             case 'vacVipResetSlo':
                 $result = $vacancy->controlAnnounces("vip AND token IN ('active') AND vip_unset_datetime NOT IN ('0000-00-00 00:00:00') AND vip_unset_datetime < NOW()", 'vip');
                 break;
             case 'resVipResetSlo':
                 $result = $resume->controlAnnounces("vip AND token IN ('active') AND vip_unset_datetime NOT IN ('0000-00-00 00:00:00') AND vip_unset_datetime < NOW()", 'vip');
                 break;
             case 'vacHotResetSlo':
                 $result = $vacancy->controlAnnounces("hot AND token IN ('active') AND hot_unset_datetime NOT IN ('0000-00-00 00:00:00') AND hot_unset_datetime < NOW()", 'hot');
                 break;
             case 'resHotResetSlo':
                 $result = $resume->controlAnnounces("hot AND token IN ('active') AND hot_unset_datetime NOT IN ('0000-00-00 00:00:00') AND hot_unset_datetime < NOW()", 'hot');
                 break;
             case 'vacActionSlo':
                 $result = $vacancy->controlAnnounces("token IN ('active') AND token_datetime < NOW()", $type);
                 break;
             case 'resActionSlo':
                 $result = $resume->controlAnnounces("token IN ('active') AND token_datetime < NOW()", $type);
                 break;
             default:
                 $result = true;
                 break;
         }
         if (!$result) {
             return false;
         } else {
             continue;
         }
     }
     return true;
 }
Пример #2
0
 /**
  * protected функция выполняет действия над группой строк в таблице БД
  *
  * @param string $action
  * @param array $arrFields
  *
  * @return bool
  */
 protected function actionCategorys($action, $arrFields, $silentMode = false)
 {
     switch ($action) {
         case 'edit':
             foreach ($arrFields as $key => $value) {
                 $arrData = isset($value['arrNoBindFields']) ? $value['arrBindFields'] + $value['arrNoBindFields'] : $value['arrBindFields'];
                 $result = $this->editEntrys(secure::escQuoteData($arrData), "id IN (" . secure::escQuoteData($key) . ")");
             }
             break;
         case 'sort':
             foreach ($arrFields as $key => $value) {
                 $arrSort[$value][] = $key;
             }
             foreach ($arrSort as $key => $value) {
                 $result = $this->editEntrys(array('sort' => "'{$key}'"), "id IN (" . implode(',', secure::escQuoteData($value)) . ")");
             }
             break;
         case 'del':
             $table = $this->retTableName();
             $strFields = implode(',', secure::escQuoteData($arrFields));
             $vacancy = new vacancy();
             $result = $vacancy->delAnnounces('id_' . $table . ' IN (' . $strFields . ')');
             $resume = new resume();
             $result = $resume->delAnnounces('id_' . $table . ' IN (' . $strFields . ')');
             $subscription = new subscription();
             $strWhere = 'profession' !== $table ? 'id_' . $table . ' IN (' . $strFields . ')' : 'id_' . $table . ' IN (' . $strFields . ') OR id_' . $table . '_1 IN (' . $strFields . ') OR id_' . $table . '_2 IN (' . $strFields . ')';
             $result = $subscription->delSubscriptions($strWhere);
             $result = $this->delCategorys('id IN (' . $strFields . ')');
             break;
         case 'setcapital':
             $result = $this->editEntrys(array('capital' => "'on'"), "id IN (" . implode(',', secure::escQuoteData($arrFields)) . ") AND capital IN ('0')");
             break;
         case 'resetcapital':
             $result = $this->editEntrys(array('capital' => "'0'"), "parent_id IN (" . implode(',', secure::escQuoteData($arrFields)) . ") AND capital IN ('on')");
             break;
         case 'setRegionMajor':
             $result = $this->editEntrys(array('major' => "'on'"), "id IN (" . implode(',', secure::escQuoteData($arrFields)) . ") AND major IN ('0')");
             break;
         case 'resetRegionMajor':
             $result = $this->editEntrys(array('major' => "'0'"), "id IN (" . implode(',', secure::escQuoteData($arrFields)) . ") AND major IN ('on')");
             break;
         case 'setAddCityAllowed':
             $result = $this->editEntrys(array('add_city_allowed' => "'on'"), "id IN (" . implode(',', secure::escQuoteData($arrFields)) . ") AND add_city_allowed IN ('0')");
             break;
         case 'resetAddCityAllowed':
             $result = $this->editEntrys(array('add_city_allowed' => "'0'"), "id IN (" . implode(',', secure::escQuoteData($arrFields)) . ") AND add_city_allowed IN ('on')");
             break;
         default:
             if ($silentMode) {
                 $result = false;
             } else {
                 messages::messageChangeSaved(MESSAGE_WARNING_UNKNOWN_ACTION, false, CONF_ADMIN_FILE);
             }
     }
     return $result;
 }
Пример #3
0
 /**
  * protected Функция удаления контента пользователей
  * Ф-я удаляет все объявления, подписки, статьи и новости пользователей
  *
  * @param (array) $arrId - массив, содержащий ID пользователей, контент которых нужно удалить
  * @param (bool) $vacancy, $resume, $subscription, $articles, $news - параметры, определяющие удаление соответствующих данных пользователя (TRUE || FALSE)
  *
  * @return void
  */
 protected function deleteUsersContent($arrId, $vacancy, $resume, $subscription, $articles, $news)
 {
     // формируем запрос, для выбора всех необходимых пользователей
     $strWhere = "id_user IN (" . implode(',', secure::escQuoteData($arrId)) . ")";
     // удаление вакансий
     if ($vacancy) {
         $vacancy = new vacancy();
         $vacancy->delAnnounces($strWhere);
     }
     // удаление резюме
     if ($resume) {
         $resume = new resume();
         $resume->delAnnounces($strWhere);
     }
     // удаление подписок
     if ($subscription) {
         $subscription = new subscription();
         $subscription->delSubscriptions($strWhere);
     }
     // удаление статей
     if ($articles) {
         $articles = new articles();
         $articles->deleteArticles(false, $strWhere);
     }
     // удаление новостей
     if ($news) {
         $news = new news();
         $news->deleteNews(false, $strWhere);
     }
 }