Ankündigung

Einklappen
Keine Ankündigung bisher.

Navigation auf Smarty umstellen?!

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Navigation auf Smarty umstellen?!

    hi,

    ich bin vor kurzem auf Smarty gestoßen und bin gerade dabei mein CMS darauf umzustellen...Bis jetzt klappt auch alles ganz gut...Aber bei der Navigation habe ich ein problem

    Mein bisheriger Code sag wie folgt aus:

    Code:
    $mvNavDb=$mcDB->mfQuery("SELECT * FROM ".mTblNavCat." WHERE navcat_status='1' ORDER by navcat_order ASC");
    while($mvNav=$mcDB->mfFetchArray($mvNavDb)){
    	if($mvNav['navcat_align']==1){
    		$mvSiteNavClassBody = 'navLeftBody';
    		$mvSiteNavClassTable = 'navLeftTable';
    		unset($mvSiteNavLeftHead);
    		unset($mvSiteNavLeftBody);
    		if($mvNav['navcat_box']!=""){
    			include("navigation/".$mvNav['navcat_box']);
    			$mvSiteNavLeftHead=$mvNav['navcat_title'];
    			eval ("\$mvSiteNavLeftBody .= \"".mfGetTemplate($mvNavTemplate)."\";");
    			eval ("\$mvSiteNavLeftBox .= \"".mfGetTemplate("navigation_left_box")."\";");
    		}
    		else{
    			$mvNavLinkDb=$mcDB->mfQuery("SELECT * FROM ".mTblNav." WHERE nav_cat='".$mvNav['navcat_id']."' ORDER by nav_order ASC");
    			while($mvNavLink=$mcDB->mfFetchArray($mvNavLinkDb)){
    				$mvSiteNavClassBody = "navLeftBody";
    				$mvSiteNavClassTable = 'navLeftTable';
    				eval ("\$mvSiteNavLeftBody .= \"".mfGetTemplate("navigation_link")."\";");
    			}
    			$mvSiteNavLeftHead=$mvNav['navcat_title'];
    			eval ("\$mvSiteNavLeftBox .= \"".mfGetTemplate("navigation_left_link_box")."\";");
    		}
    	}
    	elseif($mvNav['navcat_align']==2){
    		$mvSiteNavClassBody = 'navRightBody';
    		$mvSiteNavClassTable = 'navRightTable';
    		unset($mvSiteNavRightHead);
    		unset($mvSiteNavRightBody);
    		if($mvNav['navcat_box']!=""){
    			include("navigation/".$mvNav['navcat_box']);
    			$mvSiteNavRightHead=$mvNav['navcat_title'];
    			eval ("\$mvSiteNavRightBody .= \"".mfGetTemplate($mvNavTemplate)."\";");
    			eval ("\$mvSiteNavRightBox .= \"".mfGetTemplate("navigation_right_box")."\";");
    		}
    		else{
    			$mvNavLinkDb=$mcDB->mfQuery("SELECT * FROM ".mTblNav." WHERE nav_cat='".$mvNav['navcat_id']."' ORDER by nav_order ASC");
    			while($mvNavLink=$mcDB->mfFetchArray($mvNavLinkDb)){
    				$mvSiteNavClassBody = "navRightBody";
    				$mvSiteNavClassTable = 'navRightTable';
    				eval ("\$mvSiteNavRightBody .= \"".mfGetTemplate("navigation_link")."\";");
    			}
    			$mvSiteNavRightHead=$nav['navcat_title'];
    			eval ("\$mvSiteNavRightBox .= \"".mfGetTemplate("navigation_right_link_box")."\";");
    		}
    	}
    	elseif($mvNav['navcat_align']==3){
    		$mvSiteNavClassBody = 'navTopBody';
    		$mvSiteNavClassTable = 'navTopTable';
    		unset($mvSiteNavTopHead);
    		unset($mvSiteNavTopBody);
    		if($mvNav['navcat_box']!=""){
    			include("navigation/".$mvNav['navcat_box']);
    			$mvSiteNavTopHead=$mvNav['navcat_title'];
    			eval ("\$mvSiteNavTopBody .= \"".mfGetTemplate($mvNavTemplate)."\";");
    			eval ("\$mvSiteNavTopBox .= \"".mfGetTemplate("navigation_top_box")."\";");
    		}
    		else{
    			$mvNavLinkDb=$mcDB->mfQuery("SELECT * FROM ".mTblNav." WHERE nav_cat='".$mvNav['navcat_id']."' ORDER by nav_order ASC");
    			while($mvNavLink=$mcDB->mfFetchArray($mvNavLinkDb)){
    				$mvSiteNavClassBody = "navTopBody";
    				$mvSiteNavClassTable = 'navTopTable';
    				eval ("\$mvSiteNavTopBody .= \"".mfGetTemplate("navigation_link")."\";");
    			}
    			$mvSiteNavTopHead=$mvNav['navcat_title'];
    			eval ("\$mvSiteNavTopBox .= \"".mfGetTemplate("navigation_top_link_box")."\";");
    		}
    	}
    	elseif($mvNav['navcat_align']==4){
    		$mvSiteNavClassBody = 'navBottomBody';
    		$mvSiteNavClassTable = 'navBottomTable';
    		unset($mvSiteNavBottomHead);
    		unset($mvSiteNavBottomBody);
    		if($mvNav['navcat_box']!=""){
    			include("navigation/".$mvNav['navcat_box']);
    			$mvSiteNavBottomHead=$mvNav['navcat_title'];
    			eval ("\$mvSiteNavBottomBody .= \"".mfGetTemplate($mvNavTemplate)."\";");
    			eval ("\$mvSiteNavBottomBox .= \"".mfGetTemplate("navigation_bottom_box")."\";");
    		}
    		else{
    			$mvNavLinkDb=$mcDB->mfQuery("SELECT * FROM ".mTblNav." WHERE nav_cat='".$mvNav['navcat_id']."' ORDER by nav_order ASC");
    			while($mvNavLink=$mcDB->mfFetchArray($mvNavLinkDb)){
    				$mvSiteNavClassBody = "navBottomBody";
    				$mvSiteNavClassTable = 'navBottomTable';
    				eval ("\$mvSiteNavBottomBody .= \"".mfGetTemplate("navigation_link")."\";");
    			}
    			$mvSiteNavBottomHead=$mvNav['navcat_title'];
    			eval ("\$mvSiteNavBottomBox .= \"".mfGetTemplate("navigation_bottom_link_box")."\";");
    		}
    	}
    }
    eval ("\$mvSiteNavBottom .= \"".mfGetTemplate("navigation_bottom")."\";");
    eval ("\$mvSiteNavTop .= \"".mfGetTemplate("navigation_top")."\";");
    eval ("\$mvSiteNavRight .= \"".mfGetTemplate("navigation_right")."\";");
    eval ("\$mvSiteNavLeft .= \"".mfGetTemplate("navigation_left")."\";");
    Die Templates dazu (nur für navigation_left, da sich die anderen ziemlich gleichen):

    navigation_left.tpl
    Code:
    $mvSiteNavLeftBox
    navigation_left_box.tpl
    Code:
    <table width="100%" class="navLeftTable" border="0" cellspacing="1" cellpadding="2">
    	<tr>
    		<td class="navLeftHead" align="center">
    			$mvSiteNavLeftHead
    		</td>
    	</tr>
    	<tr>
    		<td class="navLeftBody">
    			$mvSiteNavLeftBody  
    		</td>
    	</tr>
    </table>
    [img]images/blank.gif[/img]
    navigation_left_link_box.tpl
    Code:
    <table width="100%" class="navLeftTable" border="0" cellspacing="1" cellpadding="2">
    	<tr>
    		<td class="navLeftHead" align="center">
    			$mvSiteNavLeftHead
    		</td>
    	</tr>
    			$mvSiteNavLeftBody  
    </table>
    [img]images/blank.gif[/img]
    navigation_lin.tpl
    Code:
    	<tr>
    		<td class="$mvSiteNavClassBody">
    			$mvNavLink[nav_title]
    		</td>
    	</tr>

    Als ich es umgestellt habe, habe ich die ganzen eval Funktionen durch Smarty Funktionen ersetzt

    Code:
    // z.B.
    
    eval ("\$mvSiteNavLeft .= \"".mfGetTemplate("navigation_left")."\";");
    
    // in
    
    $mcTpl->assign("mSiteNavLeft", $mcTpl->fetch('navigation_left.tpl'));
    und die Variablen in den Templates in {} eingeschlossen. Aber es funktioniert nicht.

    Kann mir vielleicht jemand sagen wie ich das machen muss, damit es klappt?

    Smarty ist ziemlich genial...jedoch auch ziemlich schwer sich einzuarbeiten, weils doch sehr umfangreich ist

    Würde mich über jede Antwort freue, die mir helfen könnte das Problem zu lösen.

    Danke...=)[/php]

  • #2
    Jaja, das ist einfach ein geiler Highlighter .. *g* *schadenfroh is*
    [b][url=http://www.benjamin-klaile.de]privater Blog[/url][/b]

    Kommentar


    • #3
      so...n bisschen besser...hehe

      Kommentar


      • #4
        Warum so stark in einzelne Datei aufgesplittet?
        Würde sich zum anderen auch auf die Übersichtlichkeit auf Dateiebene auswirken, wenn du die Navigation komplett in eine Datei legen würdest.

        Ansonsten verstehe ich dein Problem nicht, erwartest du das dir jemand das Script schreibt?
        In Smarty einzuarbeiten ist doch leicht vor allen weil es die komplette Doku offiziell auch auf Deutsch gibt.

        Aber das sollte das sein was du suchst
        http://smarty.php.net/manual/de/lang...unction.assign
        Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.

        Kommentar

        Lädt...
        X