2014-11-25 49 views
3

打破類別鏈接我有Joomla v3.x.x模板覆蓋,創建一個同位素佈局與一些類別的過濾器。Joomla 3 - 類別鏈接如果類別標題包含與&

我遇到的問題是,如果將&符號(&)放入類別的標題中,該特定的類別過濾器將不會顯示。

是一種逃避或允許&符號(&)顯示並且不破壞該特定類別的過濾器的方法嗎?

代碼:

<?php 
defined('_JEXEC') or die; 

JHtml::_('bootstrap.tooltip'); 

if (count($this->children[$this->category->id]) > 0 && $this->maxLevel != 0) : ?> 

    <?php foreach ($this->children[$this->category->id] as $id => $child) : ?> 
     <?php if ($this->params->get('show_empty_categories') || $child->numitems || count($child->getChildren())) : ?> 

      <?php $data_name = $this->escape($child->title); ?> 
      <?php $data_option = str_replace(' ', '', $data_name); ?> 

      <li class="btn btn-primary"><a href="#" data-option-value=".<?php echo $data_option; ?>"><?php echo $this->escape($child->title); ?></a></li> 

      <?php if (count($child->getChildren()) > 0) : ?> 

       <?php 
       $this->children[$child->id] = $child->getChildren(); 
       $this->category = $child; 
       $this->maxLevel--; 
       if ($this->maxLevel != 0) : 
        echo $this->loadTemplate('children'); 
       endif; 
       $this->category = $child->getParent(); 
       $this->maxLevel++; 
       ?> 

      <?php endif; ?> 

     <?php endif; ?> 
    <?php endforeach; ?> 

<?php endif; 

這是從分類標題創建過濾器上的特定行:

<li class="btn btn-primary"><a href="#" data-option-value=".<?php echo $data_option; ?>"><?php echo $this->escape($child->title); ?></a></li> 
+0

類別名稱在進入數據庫之前應進行消毒。您是否檢查了類別獲取條目,以查看數據庫中的&是如何保存的。嘗試通過htmlspecialchars_decode()運行之後比較類別名稱,或者通過htmlspecialchars()運行您正在比較的類別名稱。 – 2014-11-25 16:10:17

+0

謝謝布賴恩 - 有什麼辦法可以在上面的代碼中做到這一點,當拉標題? – user3544484 2014-11-25 18:06:05

回答

0

的問題很有可能是與過濾器選擇的呈現。嘗試改變下面一行:

<?php $data_name = $this->escape($child->title); ?> 

到:

<?php $data_name = htmlspecialchars($child->title); ?> 

,看看是否能解決問題。