/** * Check for not-updated-today, not-deleted keywords * And set for rank update if exist * * daily */ public function queue_keywords_for_update() { $keyword_rank = new Keyword_rank(); $keyword_rank_ids = $keyword_rank->where('date', date('Y-m-d'))->get()->all_to_single_array('keyword_id'); if (empty($keyword_rank_ids)) { $keyword_rank_ids = array(0); } $keywords = new Keyword(); $keywords->where('is_deleted', 0)->where_not_in('id', $keyword_rank_ids)->get(); if (!$keywords->exists()) { log_message('CRON_ERROR', __FUNCTION__ . ' > ' . 'No keywords for rank update'); return; } $acc = $this->getAAC(); foreach ($keywords as $keyword) { $user = new User($keyword->user_id); if (!$user->exists()) { continue; } $acc->setUser($user); if (!$acc->isGrantedPlan('local_search_keyword_tracking')) { continue; } $args = $keyword->to_array(); $this->jobQueue->addJob('tasks/google_rank_task/grabber', $args, array('thread' => self::GOOGLE_RANK_THREAD)); } $ids_str = implode(', ', array_values($keywords->all_to_single_array('id'))); log_message('CRON_SUCCESS', __FUNCTION__ . ' > ' . 'Keywords for rank update ids: ' . $ids_str); return; }
public function kw() { $keyword_rank = new Keyword_rank(); $keyword_rank_ids = $keyword_rank->where('date', date('Y-m-d'))->get()->all_to_single_array('keyword_id'); if (empty($keyword_rank_ids)) { $keyword_rank_ids = array(0); } $keywords = new Keyword(); $keywords->where('is_deleted', 0)->where_not_in('id', $keyword_rank_ids)->get(); foreach ($keywords as $keyword) { var_dump($keyword->id); } }
/** * Grab results for single keyword * * @param $keyword_array (array) - keyword model arrayed * @throws Exception */ public function grabber($keyword_array) { try { $keyword_id = isset($keyword_array['id']) ? $keyword_array['id'] : NULL; $keyword = new Keyword($keyword_id); if (!$keyword->exists()) { throw new Exception('kwid: ' . $keyword_id . ' doesn\'t exist.'); } if ($keyword->is_deleted) { throw new Exception('kwid: ' . $keyword->id . ' is set for deletion.'); } $user_additional = User_additional::inst()->get_by_user_and_profile($keyword->user_id, $keyword->profile_id); if (!$user_additional->exists()) { throw new Exception('No user additional model for user: '******' ; kwid: ' . $keyword->id); } if (!$user_additional->address_id) { throw new Exception('No address id for user: '******'; kwid: ' . $keyword->id); } $this->load->config('site_config', TRUE); // $google_app_config = $this->config->item('google_app', 'site_config'); $google_app_config = Api_key::build_config('google', $this->config->item('google_app', 'site_config')); $this->load->library('gls'); $gls = new Gls(); // important $gls->set(array('key' => $google_app_config['developer_key'])); $gls->request($keyword->keyword); if ($gls->success()) { $rank = $gls->location_rank($user_additional->address_id); if (is_null($rank)) { throw new Exception('no results for rank. kwid: ' . $keyword->id); } $keyword_rank = new Keyword_rank(); $keyword_rank->where(array('keyword_id' => $keyword->id, 'date' => date('Y-m-d')))->get(1); $keyword_rank->keyword_id = $keyword->id; $keyword_rank->date = date('Y-m-d'); $keyword_rank->rank = intval($rank); $keyword_rank->save(); log_message('TASK_SUCCESS', __FUNCTION__ . ' > ' . 'GLS Rank grabbed for kwid: ' . $keyword->id . ' -> ' . $rank); } else { throw new Exception('Google Rank Grabber Error: ' . $gls->error()); } } catch (Exception $e) { //echo 'error: '.$e->getMessage().PHP_EOL; log_message('TASK_ERROR', __FUNCTION__ . ' > ' . $e->getMessage()); throw $e; } }
public function delete($user_id = NULL) { $user = $this->prepare_user($user_id); if ($this->ion_auth->is_admin($user_id)) { $url = 'manage_admins'; } elseif ($this->ion_auth->is_manager($user_id)) { $url = 'manage_accounts'; } else { $url = 'admin_users'; } if ($this->ion_auth->is_collaborator($user_id)) { $this->c_user->delete($user); } $user_deleted = $this->ion_auth->delete_user($user->id); if (!$user_deleted) { $this->addFlash(lang('delete_error', [$this->ion_auth->errors()])); redirect('admin/admin_users'); } $sender = $this->get('core.mail.sender'); $sender->sendUserDeleteMail(array('user' => $user)); $access_token = new Access_token(); $access_token->where('user_id', $user->id)->get()->delete_all(); $directory_user = new Directory_User(); $directory_user->where('user_id', $user->id)->get()->delete_all(); $facebook_fanpage = new Facebook_Fanpage(); $facebook_fanpage->where('user_id', $user->id)->get()->delete_all(); $keyword = new Keyword(); $keyword->where('user_id', $user->id)->get(); foreach ($keyword as $k) { $keyword_rank = new Keyword_rank(); $keyword_rank->where('keyword_id', $k->id)->get()->delete_all(); } $keyword->delete_all(); $media = new Media(); $media->where('user_id', $user->id)->get()->delete_all(); $post = new Post(); $post->where('user_id', $user->id)->get(); foreach ($post as $p) { $post_social = new Post_social(); $post_social->where('post_id', $p->id)->get()->delete_all(); } $post->delete_all(); $review = new Review(); $review->where('user_id', $user->id)->get()->delete_all(); $reviews_notification = new Reviews_notification(); $reviews_notification->where('user_id', $user->id)->get()->delete_all(); $rss_feeds_users = new Rss_feeds_users(); $rss_feeds_users->where('user_id', $user->id)->get()->delete_all(); $social_post = new Social_post(); $social_post->where('user_id', $user->id)->get()->delete_all(); $social_value = new Social_value(); $social_value->where('user_id', $user->id)->get()->delete_all(); $user_additional = new User_additional(); $user_additional->where('user_id', $user->id)->get()->delete_all(); $user_feed = new User_feed(); $user_feed->where('user_id', $user->id)->get()->delete_all(); $user_timezone = new User_timezone(); $user_timezone->where('user_id', $user->id)->get()->delete_all(); $this->addFlash(lang('delete_success'), 'success'); redirect('admin/' . $url); }