Welcome, Guest. Please login or register.
Did you miss your activation email?
May 24, 2012, 11:28:08 PM

Login with username, password and session length
Search:     Advanced search
Wollen Sie dem WebsiteBaker Team beitreten?
Nähere Informationen finden Sie unter hier und auf unserer neuen Webseite.
155473 Posts in 21708 Topics by 7734 Members
Latest Member: rofroodoOvego
* Home Help Search Login Register
Pages: [1]   Go Down
Print
Author Topic: *gelöst* Manuellen Zeilenumbruch in der Navigation?  (Read 1309 times)
Chaploo
Guest
« on: December 10, 2008, 09:36:34 PM »

Hallo allerseits,

ich habe es schon im englischsprachigen Teil probiert, leider ohne Erfolg, daher hier nochmal die Frage:

Ist es möglich, einem bestimmten Menüeintrag einen manuellen Zeilenumbruch zu verpassen?

Also dass da aufgrund der im css vorgegebenen Möglichkeiten nicht automatisch steht

Beispiel Eintrag eins

sondern z. B.

Beispiel
Eintrag eins

Wohl gemerkt, der Zeilenumbruch soll nur bei einem bestimmten Menüeintrag vorgenommen werden.

Ein <br /> oder &nbsp; im Menü-Titel einzufügen klappt ja leider nicht.  sad

Hat jemand eine Idee oder einen Tipp?

Grüße
Jochen
« Last Edit: December 11, 2008, 10:57:06 PM by Chaploo » Logged
Stefek
WebsiteBaker Org e.V.

Offline Offline

Posts: 4884



« Reply #1 on: December 10, 2008, 10:38:12 PM »

Hallo.
Die einzige Möglichkeit dazu hast Du, indem Du ein manuell erstelltes Menü verwendest.
Es gibt keine andere Möglichkeit.

MfG,
Stefek
Logged

"In a time of universal deceit, telling the truth becomes a revolutionary act."
- George Orwell, Nineteen eighty-four (1984)
Hans>NULL

Offline Offline

Posts: 1389


« Reply #2 on: December 10, 2008, 11:15:50 PM »

Oder auf CSS3 warten  evil
Logged

/dev/null Ort ohne Wiederkehr
Stefek
WebsiteBaker Org e.V.

Offline Offline

Posts: 4884



« Reply #3 on: December 10, 2008, 11:35:07 PM »

Oder auf CSS3 warten  evil

Und was soll das bitte schön hierbei helfen  evil


 tongue
Stefek
Logged

"In a time of universal deceit, telling the truth becomes a revolutionary act."
- George Orwell, Nineteen eighty-four (1984)
BerndJM

Offline Offline

Posts: 1764



« Reply #4 on: December 11, 2008, 05:37:47 AM »

Hi,
Quote
Ein <br /> oder &nbsp; im Menü-Titel einzufügen klappt ja leider nicht.
Doch ... und zwar "nachträglich" wink

Als erstes mußt du dein Menü dazu bringen zu den Menüpunkten jeweils eine id hinzupinseln, bei SM2 geht das z.B. so:
Code:
<?php show_menu2(1SM2_ROOTSM2_ROOTSM2_CURR|SM2_PRETTY,'[li][a]<span id="page[page_id]">[menu_title]</span></a>');?>
du packst also den eigentlichen Menütitle nochmal in ein span ein, diesem gibst du als id die page_id mit (mit einem vorangestellten page, da id's nicht mit Ziffern beginnen dürfen).

Durch diese id können wir den Menüpunkt nun ganz gezielt  per JavaScript ansprechen.
Dies kommt wichtig: erst nach!!! dem SM2 Aufruf - denn das Element, das wir ändern wollen muß ja bereits vorhanden sein.
Code:
<script type="text/javascript">
document.getElementById("page29").innerHTML = "neuer <br />Menütext";
</script>
(die id und den Text natürlich an deine Verhältnisse anpassen).

Grüßle Bernd
Logged

In theory, there is no difference between theory and practice. But, in practice, there is.
Hans>NULL

Offline Offline

Posts: 1389


« Reply #5 on: December 11, 2008, 10:27:34 AM »

Quote
Und was soll das bitte schön hierbei helfen

Statt warten, kann man auch schauen, ob die Browser schon derartige Feature umgesetzt haben.
Man muß sich nur bewegen. Mit dem vorgesehenen Feature in CSS3 erreicht man aber möglicherweise trotzdem nicht das gewünschte Ziel, zumindest wenn der Umbruch an beliebiger Stelle erfolgen soll. In diesem Falle kann man "BerndJM" folgen.
Gruß, Hans>NUL

« Last Edit: December 11, 2008, 10:33:44 AM by Hans>NULL » Logged

/dev/null Ort ohne Wiederkehr
Chaploo
Guest
« Reply #6 on: December 11, 2008, 02:01:30 PM »

Vielen Dank für die Antworten und die Hilfe!

Wenn ich es richtig sehe, ist dieser Menüenitrag dann aber nicht mehr per Admin leicht zu ändern, da der Text im Javascript auch wieder angepasst werden müsste, korrekt?

Grüße
Jochen
Logged
BerndJM

Offline Offline

Posts: 1764



« Reply #7 on: December 11, 2008, 04:32:13 PM »

Hi Jochen,
richtig, denn woher soll irgend ein Automatismus auf dieser Welt auch wissen an welcher Stelle du gerne deinen Zeilenumbruch hättest.
Dann denken wir mal bischen weiter *grübel*
So könntest du im Backend an der gewünschten Stelle den < br / > (oder auch mehrere) eingeben es wird dann in der Menüanzeige in ein "echtes" br umgewandelt:
Code:
<script type="text/javascript">
var old = document.getElementById("page53").innerHTML;
var neu = old.replace(/&lt;/g, "<");
neu = neu.replace(/&gt;/g, ">");
document.getElementById("page53").innerHTML = neu;
</script>
Wenn du es natürlich noch flexibler, am liebsten für alle Menüpunkte haben möchtest (was aber deiner Ursprungsaussage widersprechen würde) müßte man den Denkapparat nochmal neu anwerfen wink

Grüßle Bernd


Logged

In theory, there is no difference between theory and practice. But, in practice, there is.
Chaploo
Guest
« Reply #8 on: December 11, 2008, 04:57:39 PM »

Hi Bernd,

danke schonmal für deine Mühen! Ich denke, das ist der Ansatz, der genau das trifft, was ich erreichen möchte.

Nur, entweder stelle ich mich noch zu doof an, oder es gibt noch einen kleinen Haken. Folgendes habe ich getan:

Javascript ins template integriert, pageID angepasst.
Die btreffende Seite im Menütitel mit einem <br /> versehen.

Frontend: <br /> wird nach wie vor als Text angezeigt.

Hab ich was übersehen?

Grüße
Jochen
Logged
BerndJM

Offline Offline

Posts: 1764



« Reply #9 on: December 11, 2008, 05:08:03 PM »

In beiden Zeilen vom JS die id angepaßt?
Logged

In theory, there is no difference between theory and practice. But, in practice, there is.
Stefek
WebsiteBaker Org e.V.

Offline Offline

Posts: 4884



« Reply #10 on: December 11, 2008, 05:26:49 PM »

@Bernd
Nehm alles zurück (bis auf die Tatsache, dass man doch ordentlich manuell beigehen muss).  tongue

Jedenfalls vielen Dank, dass Du Deine Erfahrung hierzu teilst.
Ist eine gute Sache für eines meiner zukünftigen Projekte, wo ich vorhatte, das ganze Menü hardzucoden. *bookmarkentue*

Schönen Gruß,
Stefek
Logged

"In a time of universal deceit, telling the truth becomes a revolutionary act."
- George Orwell, Nineteen eighty-four (1984)
Chaploo
Guest
« Reply #11 on: December 11, 2008, 05:58:04 PM »

In beiden Zeilen vom JS die id angepaßt?

Yep.

Hast du's mal live ausprobiert? Muss das JS an eine ganz bestimmte Stelle?

Grüße
Jochen
Logged
BerndJM

Offline Offline

Posts: 1764



« Reply #12 on: December 11, 2008, 06:13:05 PM »

Mmmmh ...
getestet nur local.
Auf alle Fälle erst nach dem SM2-Aufruf, da ja sonst das Element noch nicht existiert.
Logged

In theory, there is no difference between theory and practice. But, in practice, there is.
BerndJM

Offline Offline

Posts: 1764



« Reply #13 on: December 11, 2008, 09:34:18 PM »

Oki,
und hier noch eine Möglichkeit ohne JavaScript und und ohne das Gefummel mit der page_id, aber mit der unendlichen Freiheit in jedem Menutitle br's nach Lust und Laune zu setzen:
Code:
<?php 
ob_start
();
show_menu2(1SM2_ROOTSM2_ROOTSM2_CURR|SM2_PRETTY);
$menu ob_get_contents();
ob_end_clean();
$menu str_replace('&lt;br /&gt;''<br />'$menu);
echo 
$menu;
?>

(Den SM2-Aufruf natürlich an die "örtlichen Gegebenheiten" anpassen und die br's müßen halt korrekt geschrieben sein: <br />)

Einziger "Schönheitsfehler": durch die Verwendung von br's im Menutitle sehen halt die Dateinamen in der Adresszeile bischen "putzig" aus wink

Grüßle Bernd
« Last Edit: December 11, 2008, 09:38:44 PM by BerndJM » Logged

In theory, there is no difference between theory and practice. But, in practice, there is.
Chaploo
Guest
« Reply #14 on: December 11, 2008, 10:22:42 PM »

Super! Vielen Dank!
Das entledigt einen des Problems, dass man Javascript aktiviert haben muss, um die korrekte Anzeige zu sehen.
Ich werd das mal in R(uhe einbauen und mich dann wieder melden.  smiley

Grüße
Jochen
Logged
Chaploo
Guest
« Reply #15 on: December 11, 2008, 10:56:45 PM »

Cool - funktioniert!

Tausend Dank!

Nun habe ich nur noch das Problem, dass ich mein 3. Menü, das über dieses Feature verfügen soll, nicht angezeigt bekomme. Mit dem normalen show_menu gehts, auch der neue show_menu2-Aufruf funktioniert mit Menü 1 oder 2, aber sobald ich show_menu(3 ... eintrage, erscheint nix mehr, egal, was ich dahinter noch eintrage. In der info.php ists korrekt eingetragen. Ich hab alles probiert, sogar show_menu2(3) völlig ohne Modifikationen - nichts.

So siehts in der index.php grad aus:

Code:
<div id="header">
<div id="menu1"><?php show_menu2(1,SM2_ROOT,SM2_CURR); ?></div>
<div id="menu2"><?php show_menu2(2,SM2_ROOT,SM2_CURR); ?></div>
<?php page_content(1); ?>
</div>
<div id="container">
<div id="left">
<?php
ob_start
();
show_menu2(3,SM2_ROOT+1,SM2_ALL,SM2_CURR|SM2_PRETTY);
$menu ob_get_contents();
ob_end_clean();
$menu str_replace('&lt;br /&gt;''<br />'$menu);
echo 
$menu;
?>

</div>

Menü 1 und 2 sollen dabei Obermenüpunkte anzeigen, Menü 3 alle Untermenüpunkte, wenn es sie gibt (also ab 2. Ebene). In den Seiteneinstellungen ist auch alles korrekt auf die Menüs aufgeteilt.

Hat jemand eine Idee?  undecided

Grüße
Jochen
« Last Edit: December 11, 2008, 11:11:32 PM by Chaploo » Logged
Chaploo
Guest
« Reply #16 on: December 11, 2008, 11:32:17 PM »


Einziger "Schönheitsfehler": durch die Verwendung von br's im Menutitle sehen halt die Dateinamen in der Adresszeile bischen "putzig" aus wink


Dazu hat mir Ruud im englischen Forum folgenden Vorschlag gemacht:

Quote
If you use a #, it will be removed from the filename, but it will be in the menu (not tested!!)
In that case change the replace line to:
Code:

$menu = str_replace('#', '<br />', $menu);

EDIT:
Habs grad ausprobiert - funktioniert! Aus dem Menütitel Beispiel#und#mehr wird als Dateiname beispielundmehr.php und im Frontend steht:

Beispiel
und
mehr

Grüße
Jochen
« Last Edit: December 11, 2008, 11:37:34 PM by Chaploo » Logged
Pages: [1]   Go Up
Print
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2011, Simple Machines Valid XHTML 1.0! Valid CSS!