Heim > php教程 > php手册 > Kategoriebasierter Navigations-Breadcrumb-Code von OneThink

Kategoriebasierter Navigations-Breadcrumb-Code von OneThink

WBOY
Freigeben: 2016-08-31 08:41:13
Original
1610 Leute haben es durchsucht

Ich wollte dem Projekt einen klassifizierten Breadcrumb-Pfad hinzufügen, aber das oneThink-Frontend schien eine solche Funktion nicht bereitzustellen, also habe ich selbst einen geschrieben, der hoffentlich für alle nützlich sein wird.
Wenn wir eine Website erstellen, verwenden wir häufig die Breadcrumb-Navigation. Im Allgemeinen basiert diese Art der Navigation auf einer mehrstufigen Klassifizierung und wird dann in oneThink nach oben verschoben, unabhängig davon, ob es sich um eine Listenseite oder eine Artikelseite handelt Alle definieren die Variable der aktuellen Kategorie $category. Daher können wir die ID in dieser Variablen verwenden, um den aktuellen Pfad zu generieren, indem wir den Funktionsaufruf des Front-End-Moduls verwenden.

Erstellen wir ohne weiteres zunächst eine Funktion get_category_info(); in der Funktion des HOME-Moduls, die verwendet wird, um den Inhalt des kategoriespezifischen Felds zu finden, das die Felder pid undallow_publish /** Suchen Sie den Inhalt des angegebenen Felds in der angegebenen Kategorie<code class="prettyprint linenums lang-php">/**查找指定分类的指定字段内容<br>  * @param $id<br>  * @param string $field<br>  * @return mixed|string<br>  */<br> function get_category_info($id,$field=""){<br> <br>     if(!$field){<br>         return '没有指定查找字段';<br>     }else{<br>         $map = array(<br>             'id'=>array('eq',$id),<br>             'status'=>array('eq',1)<br>         );<br>         $re = M('category')->where($map)->getField($field);<br>         return $re;<br>     }<br> } * @param $id/**<br>  * 获取面包屑<br>  * 基于分类生成分类面包屑<br>  * @param $id 当前分类ID<br>  */<br> function get_bread($id){<br>      //查询pid<br>     $pid = get_category_info($id,'pid');<br>     //根据当前分类是否允许发布内容来确定用index模版还是lists模版<br>     $temp = get_category_info($id,'allow_publish')?'lists':'index';<br>    <br>     $str = $pid?<br>             get_bread($pid):<br>             '<a href="&#039;.U(&#039;Home/Index/index&#039;). &#039;" alt="首页" >首页</a>';<br> <br>     $str .= ' > <a href="&#039;.U(&#039;Home/Article/&#039;.$temp,array(&#039;category&#039;=>$id)).'" alt="'.get_category_title($id).'">'.get_category_title($id).'</a>';<br> <br>     return $str;<br> } * @param string $field{:get_bread($category['id'])} * @return gemischt|string

​*/

If(!$field){

           return „Kein Suchfeld angegeben“; }else{         $map = array(              'id'=>array('eq',$id),             'status'=>array('eq',1) );          $re = M('category')->where($map)->getField($field); Rückgabe $ Re; } }Dann erstellen Sie die Funktion get_bread() /** * Holen Sie sich Semmelbrösel * Generieren Sie klassifizierte Breadcrumbs basierend auf der Klassifizierung * @param $id Aktuelle Kategorie-ID ​*/ Funktion get_bread($id){ //Abfrage-pid $pid = get_category_info($id,'pid'); //Bestimmen Sie, ob die Indexvorlage oder die Listenvorlage verwendet werden soll, basierend darauf, ob die aktuelle Kategorie die Veröffentlichung von Inhalten zulässt $temp = get_category_info($id,'allow_publish')?'lists':'index';   $str = $pid?                get_bread($pid): '<a href="'.U('Home/Index/index'). '" alt="Home" >Home</a>'; $str .= ' <a href="'.U('Home/Article/'.$temp,array('category'=>$id)).'" alt="'.get_category_title($ id).'">'.get_category_title($id).'</a>'; Geben Sie $str; zurück }Schließlich ruft das Front-End-Tag die Funktion get_bread() auf
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage