Exemplo n.º 1
0
 /**
  * @param RokSprocket_Item $item
  * @param bool|string      $default_field
  * @param bool|string      $defaults_custom_field
  * @param bool|string      $per_item_field
  *
  * @return bool|null|RokSprocket_Item_Link
  */
 protected function setupLink(RokSprocket_Item &$item, $default_field = false, $defaults_custom_field = false, $per_item_field = false)
 {
     $link = false;
     $deflink = false;
     if (!$default_field) {
         $deflink = false;
     } else {
         switch ($this->parameters->get($default_field, 'primary')) {
             case 'none':
                 $deflink = false;
                 break;
             case 'primary':
                 $deflink = $item->getPrimaryLink();
                 break;
             case 'custom':
                 if ($defaults_custom_field) {
                     $deflink = $this->parameters->get($defaults_custom_field, false) ? new RokSprocket_Item_Link(htmlspecialchars(htmlspecialchars_decode($this->parameters->get($defaults_custom_field)))) : false;
                     break;
                 }
             default:
                 $deflink = $item->getLink($this->parameters->get($default_field));
         }
     }
     if (!$per_item_field) {
         $link = $deflink;
     } else {
         switch (trim($item->getParam($per_item_field, '-default-'))) {
             case '-none-':
                 $link = false;
                 break;
             case '-article-':
                 $link = $item->getPrimaryLink();
                 break;
             case '-default-':
                 $link = $deflink;
                 break;
             default:
                 $link = $item->getParam($per_item_field, '');
                 if (!empty($link)) {
                     $link = new RokSprocket_Item_Link(htmlspecialchars(htmlspecialchars_decode($item->getParam($per_item_field, ''))));
                 } else {
                     $link = $deflink;
                 }
         }
     }
     return $link;
 }