Exemplo n.º 1
0
 /**
  * @param RokSprocket_Item $item
  * @param bool             $default_field
  * @param bool             $defaults_custom_field
  * @param bool             $per_item_field
  *
  * @return bool|null|RokSprocket_Item_Image
  */
 protected function setupImage(RokSprocket_Item &$item, $default_field = false, $defaults_custom_field = false, $per_item_field = false)
 {
     $image = false;
     $defimage = false;
     if (!$default_field) {
         $defimage = false;
     } else {
         switch ($this->parameters->get($default_field, 'primary')) {
             case 'none':
                 $defimage = false;
                 break;
             case 'primary':
                 $defimage = $item->getPrimaryImage();
                 break;
             case 'custom':
                 if ($defaults_custom_field) {
                     $defimage = $this->parameters->get($defaults_custom_field, false) ? RokSprocket_Item_Image::createFromJSON($this->parameters->get($defaults_custom_field, false)) : false;
                     break;
                 }
             default:
                 $defimage = $item->getImage($this->parameters->get($default_field));
         }
     }
     if (!$per_item_field) {
         $image = $defimage;
     } else {
         switch (trim($item->getParam($per_item_field, '-default-'))) {
             case '-none-':
                 $image = false;
                 break;
             case '-primary-':
                 // backward compatibility for introduced issue
             // backward compatibility for introduced issue
             case '-article-':
                 $image = $item->getPrimaryImage();
                 break;
             case '-default-':
                 $image = $defimage;
                 break;
             default:
                 $image = $item->getParam($per_item_field);
                 if (!empty($image)) {
                     $image = RokSprocket_Item_Image::createFromJSON($item->getParam($per_item_field, ''));
                 } else {
                     $image = $defimage;
                 }
         }
     }
     return $image;
 }
Exemplo n.º 2
0
 /**
  * @param     $raw_item
  * @param int $dborder
  *
  * @return \RokSprocket_Item
  */
 protected function convertRawToItem($raw_item, $dborder = 0)
 {
     $app_type = $this->params->get('zoo_application_type');
     //$textfield = $this->params->get('zoo_articletext_field', '');
     $item = new RokSprocket_Item();
     $item->setProvider($this->provider_name);
     $item->setId($raw_item->id);
     $item->setAlias($raw_item->alias);
     $item->setAuthor($raw_item->author_name);
     $item->setTitle($raw_item->title);
     $item->setDate($raw_item->created);
     $item->setPublished($raw_item->published == 1 ? true : false);
     $item->setCategory($raw_item->category_title);
     $item->setHits($raw_item->hits);
     $item->setRating($raw_item->rating);
     $item->setMetaKey('');
     $item->setMetaDesc('');
     $item->setMetaData('');
     require_once JPATH_ADMINISTRATOR . '/components/com_zoo/config.php';
     $app = App::getInstance('zoo');
     $applications = $app->application->getApplications();
     $application = $applications[$raw_item->application_id];
     $text_ids = array();
     $image_ids = array();
     $link_ids = array();
     $types = $application->getTypes();
     foreach ($types as $type) {
         $elements = $type->getElements();
         foreach ($elements as $element) {
             if ($element->config->type == 'image') {
                 $image_ids[] = $element->identifier;
             }
             if ($element->config->type == 'link') {
                 $link_ids[] = $element->identifier;
             }
             if ($element->config->type == 'textarea' || $element->config->type == 'text') {
                 $text_ids[] = $element->identifier;
             }
         }
     }
     $els = json_decode($raw_item->elements);
     $texts = array();
     $images = array();
     $links = array();
     foreach ($els as $ident => $el) {
         if (in_array($ident, $image_ids)) {
             $image = new RokSprocket_Item_Image();
             $image->setSource($el->file);
             $image->setIdentifier('image_field_' . $ident);
             $image->setCaption(isset($el->title) ? $el->title : '');
             $image->setAlttext(isset($el->title) ? $el->title : '');
             $images[$image->getIdentifier()] = $image;
             if (isset($images['image_field_' . $ident]) && !$item->getPrimaryImage()) {
                 $item->setPrimaryImage($image);
             }
         }
         if (in_array($ident, $link_ids)) {
             $link = new RokSprocket_Item_Link();
             $link->setUrl(isset($el->url) ? $el->url : (isset($el->value) ? $el->value : ''));
             $link->setText('');
             $link->setIdentifier('link_field_' . $ident);
             $links[$link->getIdentifier()] = $link;
             if (isset($links['link_field_' . $ident]) && !$item->getPrimaryLink()) {
                 $item->setPrimaryLink($link);
             }
         }
         if (in_array($ident, $text_ids) && is_object($el)) {
             foreach ($el as $val) {
                 $texts['text_field_' . $ident] = $val->value;
             }
         } else {
             if (in_array($ident, $text_ids) && !is_object($el)) {
                 $texts['text_field_' . $ident] = $el->value;
             }
         }
     }
     $item->setLinks($images);
     $item->setLinks($links);
     $params = RokCommon_JSON::decode($raw_item->params);
     $desc = "metadata.description";
     $texts['text_field_metadesc'] = $params->{$desc};
     $item->setTextFields($texts);
     $item->setText(array_shift(array_values($texts)));
     $primary_link = new RokSprocket_Item_Link();
     $primary_link->setUrl(JRoute::_('index.php?option=com_zoo&task=item&item_id=' . $raw_item->id, true));
     $primary_link->getIdentifier('article_link');
     $item->setPrimaryLink($primary_link);
     $item->setCommentCount($raw_item->comment_count);
     $tags = explode(',', $raw_item->tags) ? explode(',', $raw_item->tags) : array();
     $item->setTags($tags);
     $item->setDbOrder($dborder);
     return $item;
 }
Exemplo n.º 3
0
 /**
  * @param     $raw_item
  * @param int $dborder
  *
  * @return \RokSprocket_Item
  */
 protected function convertRawToItem($raw_item, $dborder = 0)
 {
     /** @var Item $raw_item*/
     $app_type = $this->params->get('zoo_application_type');
     //$textfield = $this->params->get('zoo_articletext_field', '');
     $item = new RokSprocket_Item();
     $item->setProvider($this->provider_name);
     $item->setId($raw_item->id);
     $item->setAlias($raw_item->created_by_alias ? $raw_item->created_by_alias : JFactory::getUser($raw_item->created_by)->name);
     $item->setAuthor(JFactory::getUser($raw_item->created_by)->name);
     $item->setTitle($raw_item->name);
     $item->setDate($raw_item->created);
     $item->setPublished($raw_item->state == 1 ? true : false);
     $category = $raw_item->getPrimaryCategory();
     if ($category) {
         $item->setCategory($category->name);
     }
     $item->setHits($raw_item->hits);
     //$this->query->select('ROUND(AVG(v.value), 0) AS rating');
     //$this->query->join('LEFT', '#__zoo_rating AS v ON a.id = v.item_id');
     $item->setMetaKey('');
     $item->setMetaDesc('');
     $item->setMetaData('');
     $texts = array();
     $images = array();
     $links = array();
     /** @var Element[] $elements */
     $elements = $raw_item->getElements();
     $rating = 0;
     foreach ($elements as $element) {
         /** @var RokSprocket_Provider_Zoo_FieldProcessorInterface $processor */
         $processor = RokSprocket_Provider_Zoo_FieldProcessorFactory::getFieldProcessor($element->getElementType());
         $sprocket_type = RokSprocket_Provider_Zoo_FieldProcessorFactory::getSprocketType($element->getElementType());
         switch ($sprocket_type) {
             case 'image':
                 if ($processor instanceof RokSprocket_Provider_Zoo_ImageFieldProcessorInterface) {
                     /** @var RokSprocket_Provider_Zoo_ImageFieldProcessorInterface $processor */
                     $image = $processor->getAsSprocketImage($element);
                     $images[$image->getIdentifier()] = $image;
                     if (isset($images['image_field_' . $element->identifier]) && !$item->getPrimaryImage()) {
                         $item->setPrimaryImage($image);
                     }
                 }
                 break;
             case 'link':
                 if ($processor instanceof RokSprocket_Provider_Zoo_LinkFieldProcessorInterface) {
                     /** @var RokSprocket_Provider_Zoo_LinkFieldProcessorInterface $processor */
                     $link = $processor->getAsSprocketLink($element);
                     $links[$link->getIdentifier()] = $link;
                     if (isset($links['link_field_' . $element->identifier]) && !$item->getPrimaryLink()) {
                         $item->setPrimaryLink($link);
                     }
                 }
                 break;
             case 'text':
                 /** @var RokSprocket_Provider_Zoo_FieldProcessorInterface $processor */
                 $texts['text_field_' . $element->identifier] = $processor->getValue($element);
                 break;
             default:
                 break;
         }
         if ($element->getElementType() == 'rating') {
             $rating = $element->getRating();
         }
     }
     $item->setRating($rating);
     $item->setImages($images);
     $item->setLinks($links);
     $params = RokCommon_JSON::decode($raw_item->params);
     $desc = "metadata.description";
     $texts['text_field_metadesc'] = $params->{$desc};
     $texts['text_field_name'] = $raw_item->name;
     $texts = $this->processPlugins($texts);
     $item->setTextFields($texts);
     $text = array_values($texts);
     $text = array_shift($text);
     $item->setText($text);
     $primary_link = new RokSprocket_Item_Link();
     $primary_link->setUrl(JRoute::_('index.php?option=com_zoo&task=item&item_id=' . $raw_item->id, true));
     $primary_link->getIdentifier('article_link');
     $item->setPrimaryLink($primary_link);
     $item->setCommentCount(count($raw_item->getComments()));
     //$tags = (explode(',', $raw_item->tags)) ? explode(',', $raw_item->tags) : array();
     $tags = $raw_item->getTags();
     $item->setTags($tags);
     $item->setDbOrder($dborder);
     return $item;
 }