*/ /** * Klasa stRadar * * @package stRadarPlugin * @subpackage libs */ class stRadar extends stPriceCompareGenerateFile implements stPriceCompareGenerateFileInterface { /** * Konstruktor */ public function __construct() { parent::__construct(__CLASS__); } /** * Generowanie nagłówka pliku * * @return string */ protected function getFileHead() { $content = xml_open_tag('?xml version="1.0" encoding="UTF-8"?'); $content.= xml_open_tag('radar wersja="1.0"'); $content.= xml_open_tag('oferta'); return $content; } /** * Generowanie zawartości pliku * * @param $step integer numer kroku * @return string */ protected function getFileBody($step) { $priceCompareProducts = $this->getProducts($step); $url_product_params = ""; if (is_dir(sfConfig::get('sf_plugins_dir')."/appAdsTrackerPlugin")) { $config = stConfig::getInstance(sfContext::getInstance(), 'appAdsTrackerBackend'); if ($config->get("is_active")==1) { $c = new Criteria(); $c->add(AdsTrackerListPeer::IS_ACTIVE, 1); $c->add(AdsTrackerListPeer::PLUGIN_NAME, "radar"); $radar_ads = AdsTrackerListPeer::doSelectOne($c); if ($radar_ads) { $url_product_params = "?hash=".$radar_ads->getHash(); } } } $content = ""; foreach ($priceCompareProducts as $priceCompareProduct) { $parsedProduct = new stPriceCompareProductParser($priceCompareProduct->getProduct()); if ($parsedProduct->checkProduct()) { $productContent = xml_cdata_tag('nazwa', $parsedProduct->getName()); if ($parsedProduct->hasProducer()) $productContent.= xml_cdata_tag('producent', $parsedProduct->getProducer()); $productContent.= xml_cdata_tag('opis', $parsedProduct->getDescription()); $productContent.= xml_tag('id', $parsedProduct->getId()); $productContent.= xml_tag('url', $parsedProduct->getUrl().$url_product_params); $productContent.= xml_tag('foto', $parsedProduct->getPhoto()); $productContent.= xml_cdata_tag('kategoria', $parsedProduct->getCategory()); $productContent.= xml_tag('cena', $parsedProduct->getPrice()); $content.= xml_tag('produkt', xml_tag('grupa1', $productContent)); } unset($parsedProduct); if ($this->isCLI()) { usleep(250000); } } return $content; } /** * Generowanie stopki pliku * * @return string */ protected function getFileFoot() { $content = xml_close_tag('oferta'); $content.= xml_close_tag('radar'); return $content; } /** * Pobieranie infromacji o porównywarce podczas eksportu * * @param $object object * @return integer */ static public function getProduct($object = null) { return stPriceCompareGenerateFile::getProductForExport(__CLASS__, $object); } /** * Ustawianie infromacji o porównywarce podczas importu * * @param $object object * @param $value integer * @return boolean */ static public function setProduct($object = null, $active = 0) { return stPriceCompareGenerateFile::setProductForImport(__CLASS__, $object, $active); } }