public function prepareCategories($pTags) { if (empty($pTags)) { return array(); } $ids = array(); foreach ($pTags as $t) { if (Query::count($this->table, Query::condition()->andWhere('name_category', Query::EQUAL, $t))) { continue; } $permalink = RoutingHandler::sanitize($t); $this->insert(array('name_category' => $t, 'permalink_category' => $permalink)); $ids[] = $this->getInsertId(); } return $ids; }
public function addState($pUrl, $pIdUser = null) { $existing_link = $this->one(Query::condition()->andWhere('url_link', Query::EQUAL, $pUrl)->orWhere('canonical_link', Query::EQUAL, $pUrl)); $headers = get_headers($pUrl); $code = substr($headers[0], 9, 3); if (in_array($code, array(404, 400, 401, 500, 503)) && $existing_link) { $this->deleteById($existing_link[$this->id]); return false; } $content = $this->parseLink($pUrl); if ($content === false || is_array($content) && empty($content['title']) && empty($content['price'])) { return false; } if (!$existing_link && isset($content['canonical']) && !empty($content['canonical'])) { $existing_link = $this->one(Query::condition()->andWhere('url_link', Query::EQUAL, $content['canonical'])->orWhere('canonical_link', Query::EQUAL, $content['canonical'])); } if (!$existing_link) { Query::insert(array('url_link' => $pUrl, 'canonical_link' => $content['canonical'], 'title_link' => $content['title'], 'image_link' => $content['image']))->into($this->table)->execute($this->handler); } else { Query::update('sil_links')->values(array('url_link' => $pUrl, 'canonical_link' => $content['canonical'], 'title_link' => $content['title'], 'image_link' => $content['image']))->andWhere('id_link', Query::EQUAL, $existing_link['id_link'])->execute(); } $existing_link = $this->one(Query::condition()->andWhere('url_link', Query::EQUAL, $pUrl)->orWhere('canonical_link', Query::EQUAL, $content['canonical'])); if (isset($pIdUser)) { if (!Query::count('sil_user_links', Query::condition()->andWhere('id_user', Query::EQUAL, $pIdUser)->andWhere('id_link', Query::EQUAL, $existing_link['id_link']))) { Query::insert(array('id_user' => $pIdUser, 'id_link' => $existing_link['id_link']))->into('sil_user_links')->execute(); } } Query::insert(array('id_link' => $existing_link['id_link'], 'price_state' => $content['price']['price'], 'devise_state' => $content['price']['devise']))->into('sil_states')->execute($this->handler); Query::update($this->table)->values(array('last_price_link' => $content['price']['price'], 'devise_link' => $content['price']['devise']))->andWhere('id_link', Query::EQUAL, $existing_link['id_link'])->execute(); return true; }