Variable in heading

About the template and stylesheet - and changing the menu
Tata
Posts: 3588
Joined: Tue May 20, 2008 5:34 am
Location: Slovakia
Contact:

Variable in heading

Post by Tata » Tue Jun 17, 2014 9:03 pm

Ich nutze ein js, das auf der Webseite eine Reiterstruktur generiert. Die Structure ist:

Code: Select all

<div class="wrapper">
	<ul class="tabs">
	<li><a href="#tab1"><?php echo $tx['title']['tab1'];?></a></li>
	<li><a href="#tab2"><?php echo $tx['title']['tab2'];?></a></li>
	</ul>
                                
	<div class="tab_container">
		<div id="tab1" class="tab_content">
			<div class="grid-16 grid tab_newsbox">
				<?php echo newsbox($tx['title']['tab1']);?>
			</div>
		</div>
		
		<div id="tab2" class="tab_content">
			<div class="grid-16 grid tab_newsbox">
				<?php echo newsbox($tx['title']['tab2']);?>
			</div>
		</div>
	</div>
</div>
Es funtioniert winderbar, aber die Seiten Überschriffte müssen sowieso auf der Seite noch einmal geschrieben werden. Wie könnte ich die Seitenüberschriffte aus der Sprachdatei in <h1>...</hi> eintragen? Oder umgehert - was soll ich machen, um die Seite, die in Newsbox eingelesen sein soll, nur einmal definieren zu müssen? Die Überschriffte müssen, ja, auf der Seite slebst stehen und als <li>...</li> und als Newsbox Parameter.
CMSimple.sk
It's no shame to ask for an answer if all efforts failed.
But it's awful to ask without any effort to find the answer yourself.

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Variable in heading

Post by cmb » Wed Jun 18, 2014 10:55 am

Ich bin nicht sicher, ob ich das Problem verstehe -- vielleicht wäre es gut, wenn Du einen Link auf eine solche Website angibst.

Auf jeden Fall kannst Du die Überschrift auch in der Struktur direkt ausgeben:

Code: Select all

        <div id="tab1" class="tab_content">
         <div class="grid-16 grid tab_newsbox">
            <h1><?php echo $tx['title']['tab1'];?></h1>
            <?php echo newsbox($tx['title']['tab1']);?>
         </div>
      </div>
Und es ist möglich die jeweiligen Einträge in einer Schleife auszugeben:

Code: Select all

<div class="wrapper">
   <ul class="tabs">
<?php for($i = 1; $i <= 2; ++$i):?>
   <li><a href="#tab1"><?php echo $tx['title']['tab' . $i];?></a></li>
<?php endfor;?>
   </ul>
                                
   <div class="tab_container">
<?php for($i = 1; $i <= 2; ++$i):?>
      <div id="tab<?php echo $i;?>" class="tab_content">
         <div class="grid-16 grid tab_newsbox">
            <?php echo newsbox($tx['title']['tab' . $i]);?>
         </div>
      </div>
<?php endfor;?>
   </div>
</div>
Christoph M. Becker – Plugins for CMSimple_XH

Tata
Posts: 3588
Joined: Tue May 20, 2008 5:34 am
Location: Slovakia
Contact:

Re: Variable in heading

Post by Tata » Wed Jun 18, 2014 11:47 am

Ich versuche es am http://zomos.cmsimple.sk.
Ich verstehe, dass es drei Stellen gibt, die mit der Überschrifft zu tun habe:
1. Die konkrete Seite
2. Der <li> </li> Tag - für Reitername
3. Parameter von den Newsbox
Ich möchte vermeiden, immer, wenn es im Content etwas übernennen wird, in template zu gehen, um die Reiter und newsboxe zu überschreiben.

Auf einder der 3 Stellen solte sich die Überschrifft einstellen lassen, ohne es wieder irgendwo eintragen zu müssen.
Das einfachste un ameleganteste wäre, wenn die Seiten Überschrifft aus der Seite selbst auf beide Stellen im tempkate übertragen würde.
Dann würde es auch nicht nötig, die Überschriffte in der Sprachdatei zu definieren.
CMSimple.sk
It's no shame to ask for an answer if all efforts failed.
But it's awful to ask without any effort to find the answer yourself.

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Variable in heading

Post by cmb » Wed Jun 18, 2014 12:07 pm

Zunächst einmal ist zu bedenken, dass es bei Newsboxen bis zu zwei Überschriften gibt. Die erste gibt den Namen der Newsbox an; die zweite wird in der Newsbox angezeigt, wenn sie vorhanden ist.

Wichtig ist auf jeden Fall, dass CMSimple irgendwie weiß, welche Newsboxen überhaupt für die Tabs verwendet werden sollen. Das hast Du durch zusätzliche Einträge in $tx['title'] gemacht. Es gibt sicher auch diverse andere Möglichkeiten, aber diese ist gar nicht schlecht. Um nun die Anzahl der Newsboxen flexibel zu halten, bietet es sich an nur einen Eintrag in $tx zu verwenden:

Code: Select all

$tx['title']['tabs']="Názov záložky 1,Názov záložky 2,Názov záložky 3";
Dann kannst Du statt dem bisherigen Code im Template schreiben:

Code: Select all

<div class="wrapper">
   <ul class="tabs">
<?php foreach (explode(',', $tx['title']['tabs']) as $tab):?>
   <li><a href="#tab1"><?php echo $tab;?></a></li>
<?php endforeach;?>
   </ul>
                                
   <div class="tab_container">
<?php foreach (explode(',', $tx['title']['tabs']) as $i => $tab):?>
      <div id="tab<?php echo $i;?>" class="tab_content">
         <div class="grid-16 grid tab_newsbox">
            <h4><?php echo $tab;?></h4>
            <?php echo newsbox($tab);?>
         </div>
      </div>
<?php endforeach;?>
   </div>
</div>
Nun solltest Du auf den Newsbox-Seiten noch die <h4> Überschrift löschen.

Wenn sich etwas ändert (Überschrift der Newsbox oder Anzahl der Newsboxen), dann muss das nur noch in $tx['title']['tabs'] geändert werden; Änderungen am Template sind nicht erforderlich.

PS: das Script funktioniert so nicht; eine korrigierte Version habe ich weiter unten gepostet.
Last edited by cmb on Sun Jun 22, 2014 1:40 pm, edited 1 time in total.
Reason: PS hinzugefügt
Christoph M. Becker – Plugins for CMSimple_XH

Tata
Posts: 3588
Joined: Tue May 20, 2008 5:34 am
Location: Slovakia
Contact:

Re: Variable in heading

Post by Tata » Wed Jun 18, 2014 1:43 pm

Leider nicht! Nachdem ich alles, wie hier geschrieben mache, verschwinden alle Reiterüberschriffte.

EDIT: Doch, hat geklappt. Pardon.

Sowieso meine ich, dass es für den Endbenutzer mehr praktisch wäre, wenn die Überschriffte aus der content.htm gelesen würden und in eine externe Datei gespeichert und davon dann dur die Variabel in template eingetragen.
Etwas klappt da aber docoh nicht. Ich kann aber nicht definieren was es ist. Die Reiter zeigen nicht, was sie zeigen sollen.

Der erste Reiter kommt sofort geöffnet aus (das ist auch richtig so), alle andere Reiter zeigen newsbox Nr. 2. Nachdem man wechselt vom Reiter zu Reiter, auch der erste zeigt schon nur den zweiten Newsbox.
CMSimple.sk
It's no shame to ask for an answer if all efforts failed.
But it's awful to ask without any effort to find the answer yourself.

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Variable in heading

Post by cmb » Sat Jun 21, 2014 12:25 pm

Tata wrote:Etwas klappt da aber docoh nicht. Ich kann aber nicht definieren was es ist. Die Reiter zeigen nicht, was sie zeigen sollen.
Auf http://zomos.cmsimple.sk/ funktionieren auch die Reiter nicht wie sie sollen. So wie es jetzt ist, wird beim Klick auf einen Reiter eine neue Seite aufgerufen; aber eigentlich sollte man auf der Seite bleiben, und nur der Inhalt des Tab sollte sich ändern.

Soweit ich es überblicke liegt das an dem Script, das die Tabs behandeln soll:

Code: Select all

	$(document).ready(function() {
							
	//When page loads...
	$(".tab_content").hide(); //Hide all content
	$("ul.tabs li:first").addClass("active").show(); //Activate first tab
	$(".tab_content:first").show(); //Show first tab content
							
	//On Click Event
	$("ul.tabs li").click(function() {
							
	$("ul.tabs li").removeClass("active"); //Remove any "active" class
	$(this).addClass("active"); //Add "active" class to selected tab
	$(".tab_content").hide(); //Hide all tab content
							
	var activeTab = $(this).find("a").attr("href"); //Find the href attribute value to identify the active tab + content
	$(activeTab).fadeIn(); //Fade in the active ID content
	return false;
	});
Hier wird das click event für ul.tab li "abgefangen", aber dieses wird i.d.R. gar nicht ausgelöst (es sei denn click() registriert einen Event-Handler für die Capturing-Phase, was aber soweit ich weiß, nicht der Fall ist), weil bei Klick auf den Link im Reiter bereits vorher die Navigation ausgelöst wird.
Christoph M. Becker – Plugins for CMSimple_XH

Tata
Posts: 3588
Joined: Tue May 20, 2008 5:34 am
Location: Slovakia
Contact:

Re: Variable in heading

Post by Tata » Sat Jun 21, 2014 12:35 pm

Egal, sowweit ist es nur klassisch besorgt. Es ist auch nicht so wichtig. Ich wollte nur vermeiden, dass es sich zu oft mit template beschäfftigen braucht. Wenn alles direkt (nicht mit Variables) in template eingeetragen ist, funktionieren auch die Reiter. Nur wenn die Variables benutzt sind taucht es auf.
CMSimple.sk
It's no shame to ask for an answer if all efforts failed.
But it's awful to ask without any effort to find the answer yourself.

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Variable in heading

Post by cmb » Sun Jun 22, 2014 1:39 pm

Tata wrote:Wenn alles direkt (nicht mit Variables) in template eingeetragen ist, funktionieren auch die Reiter. Nur wenn die Variables benutzt sind taucht es auf.
Das obige Script hatte einen Fehler; es müsste so lauten:

Code: Select all

<div class="wrapper">
   <ul class="tabs">
<?php foreach (explode(',', $tx['title']['tabs']) as $i => $tab):?>
   <li><a href="#tab<?php echo $i;?>"><?php echo $tab;?></a></li>
<?php endforeach;?>
   </ul>

   <div class="tab_container">
<?php foreach (explode(',', $tx['title']['tabs']) as $i => $tab):?>
      <div id="tab<?php echo $i;?>" class="tab_content">
         <div class="grid-16 grid tab_newsbox">
            <h4><?php echo $tab;?></h4>
            <?php echo newsbox($tab);?>
         </div>
    </div>
<?php endforeach;?>
    </div>
</div>
Christoph M. Becker – Plugins for CMSimple_XH

Tata
Posts: 3588
Joined: Tue May 20, 2008 5:34 am
Location: Slovakia
Contact:

Re: Variable in heading

Post by Tata » Sun Jun 22, 2014 4:15 pm

Super, das ist es.
Ich habe aber den H4 Überschrifft aus dem Script rausgenommen. Es war überflüssig, weil es auf den Tabs gegeben ist. Es ist nun nur auskommentiert, so, dass einmal kann es doch benutzt sein.

Jetzt meine ich, dess beide Dinge (das collapsible submenu und die Tabs) könnten zum Standard kommen, oder? Das Submenu durch die Konfiguration and die Tabs als Plugin.
CMSimple.sk
It's no shame to ask for an answer if all efforts failed.
But it's awful to ask without any effort to find the answer yourself.

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Variable in heading

Post by cmb » Sun Jun 22, 2014 4:46 pm

Tata wrote:Super, das ist es.
Prima. :)
Tata wrote:Ich habe aber den H4 Überschrifft aus dem Script rausgenommen. Es war überflüssig, weil es auf den Tabs gegeben ist.
Guter Punkt!
Tata wrote:Jetzt meine ich, dess beide Dinge (das collapsible submenu und die Tabs) könnten zum Standard kommen, oder? Das Submenu durch die Konfiguration and die Tabs als Plugin.
Das Submenu habe ich mal auf die Roadmap gesetzt. Die Tabs als Plugin ist sicher keine schlechte Idee, aber ich weiß nicht, ob ich dafür Zeit finde.
Christoph M. Becker – Plugins for CMSimple_XH

Post Reply