Beispiel #1
0
 /**
  * (non-PHPdoc)
  * @see JSNPowerAdminBarPreviewAdapter::getPreviewLink()
  */
 public function getPreviewLink()
 {
     $matchedMap = null;
     foreach ($this->maps as $map) {
         $params = array();
         parse_str($map['params'], $params);
         $isMatched = true;
         foreach ($params as $key => $value) {
             if (!isset($this->params[$key]) || $this->params[$key] != $value) {
                 $isMatched = false;
                 break;
             }
         }
         if ($isMatched) {
             $matchedMap = $map;
             break;
         }
     }
     if ($matchedMap != null) {
         $link = $matchedMap['link'];
         $_linkParts = array();
         if (preg_match_all('/{@*([^\\}]+)}/i', $link, $_linkParts)) {
             $found = $_linkParts[0];
             $replaced = $_linkParts[1];
             foreach ($found as $k => $value) {
                 $link = str_replace($value, @$this->params[$replaced[$k]], $link);
             }
         }
         if (strpos($link, 'option=') === false) {
             $link = 'option=' . $this->option . '&' . $link;
         }
         return sprintf('index.php?%s', $link);
     }
     return parent::getPreviewLink();
 }
 /**
  * Retrieve preview link based on params. If not match, default link will be returned
  * @return string
  */
 public function getPreviewLink()
 {
     if ($this->adapter == null || !$this->adapter instanceof JSNPowerAdminBarPreviewAdapter) {
         return JUri::root();
     }
     $preview = $this->adapter->getPreviewLink();
     if (strpos($preview, '&Itemid=') === false && strpos($preview, 'option=') !== false) {
         $dbo = JFactory::getDBO();
         $dbo->setQuery(sprintf('SELECT id FROM #__menu WHERE link LIKE "%s" LIMIT 1', $preview));
         $itemId = $dbo->loadResult();
         if (!is_numeric($itemId)) {
             $dbo->setQuery(sprintf('SELECT id FROM #__menu WHERE home=1 LIMIT 1', $preview));
             $itemId = $dbo->loadResult();
         }
         $preview .= sprintf('&Itemid=%d', $itemId);
     }
     return JUri::root() . $preview;
 }
 public function getPreviewLink()
 {
     if (!isset($this->params['view']) || !isset($this->params['layout']) || !isset($this->params['id']) || $this->params['view'] != 'item' || $this->params['layout'] != 'edit') {
         return parent::getPreviewLink();
     }
     $dbo = JFactory::getDBO();
     $dbo->setQuery(sprintf('SELECT id, link FROM #__menu WHERE id=%d', $this->params['id']));
     $result = $dbo->loadObject();
     if (empty($result)) {
         return parent::getPreviewLink();
     }
     return sprintf('%s&Itemid=%d', $result->link, $result->id);
 }