Hallo Leute
Wollte hier kurz meine Navigations-Skripts präsentieren.
Vor allem würde mich interessieren wie euch diese gefallen (und natürlich ob sie richtig funktionieren) und ob die Verwendung leichter von der Hand geht als andere ähnliche Funktionen/Addons/Klassen. Was fehlt eurer Meinung nach noch?
Der Grund wieso ich mir diese Skripts gebastelt habe, war einfach das ich mit der rex_navigation::factory irgendwie nie so richtig zufrieden war/bin (muss aber zugeben das ich mich nicht so sehr damit auseinandergesetzt habe, also ist die Aussage ein bisschen gewagt), vor allem dann nicht wenn man am eigentlichen Code etwas rumschrauben/ändern möchte.
Die Idee ist nicht eine Funktion zu bauen die alle möglichen Navigation darstellen kann, aber einfach ein im Masse sehr flexibles Skript. ist natürlich immer subjektiv, aber ich setze die Skripts bei 90% unserer Websites unverändert ein.
Eigentlich handelt es sich hierbei um 3 verschiedene Skripts:
yNav
Funktion/Template um Redaxo Navigation auszugeben
http://www.redaxo.de/168-0-templatedeta ... ate_id=150
yLangNav
Funktion/Template um Redaxo Sprach-Navigation auszugeben
http://www.redaxo.de/168-0-templatedeta ... ate_id=151
yBreadCrumb
Funktion/Template um Redaxo Breadcrumb-Navigation auszugeben
http://www.redaxo.de/168-0-templatedeta ... ate_id=152
so, hoffe ihr könnt die funktionen irgendwie gebrauchen, steht euch natürlich frei änderungen vorzunehmen etc.
falls es jedoch nennenswerte weiterentwicklungen gibt, wäre ich natürlich um feedback froh viel spass!
liebe grüsse
y
Hallo,
Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.
Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.
Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Hey
Danke fürs ausprobieren. Hab den Code oben nochmals aktualisiert, am besten nochmal kopieren.
Versuchs einfach mal so:
Danke fürs ausprobieren. Hab den Code oben nochmals aktualisiert, am besten nochmal kopieren.
Versuchs einfach mal so:
Code: Alles auswählen
$navs = createNav($this,array('addSubNav'=>1));
echo $navs['nav'];
MASSIF Webdesign Studio
Diese if-isset-Monsterabfrage in der function createNav kann man deutlich übersichtlicher und wartbarer schreiben. Nutze ein Array um die Defaultwerte der Option zu hinterlegen:
Code: Alles auswählen
// Array mit allen option-Defaultwerte
$options_vorgabe = array (
'parentId' => 0, // 0: Von welcher Kategorie (ID) aus die Navigation erstellen, zum Beispiel wenn man nur Subnavigation will
'addSubNav' => false, // 0: Subnavigation hinzufügen?
'renderFontfile' => 'univers.ttf' // 1: schrift
);
foreach ($options_vorgabe as $opt => $value) {
if (!isset ($option[$opt]) ) {
$option[$opt] = $value;
}
}
<?php print $Footer; ?>
Sven
Ich würde ja die Welt verändern,
doch der Quellcode ist mir zu absurd!
REX 5 :: Tricks und Tipps
REX 5 :: Modulesammlung
Wiki zu Redaxo 3 und 4 (!nur noch im Webarchiv!)
Sven
Ich würde ja die Welt verändern,
doch der Quellcode ist mir zu absurd!
REX 5 :: Tricks und Tipps
REX 5 :: Modulesammlung
Wiki zu Redaxo 3 und 4 (!nur noch im Webarchiv!)
stimmt! wird angepasst. danke!Koala hat geschrieben:Diese if-isset-Monsterabfrage in der function createNav kann man deutlich übersichtlicher und wartbarer schreiben.
edit: mir ist sogar noch eine bessere variante in den sinn gekommen, ist eingebaut.
Zuletzt geändert von ynamite am 12. Aug 2010, 17:54, insgesamt 1-mal geändert.
MASSIF Webdesign Studio
update
hallo
habe das mit den optionen nun vereinfach und die funktionen/templates nun auch im Redaxo download bereich eingefugt. folgend die links zu den überarbeiteten versionen:
yNav
http://www.redaxo.de/168-0-templatedeta ... ate_id=150
yLangNav
http://www.redaxo.de/168-0-templatedeta ... ate_id=151
yBreadCrumb
http://www.redaxo.de/168-0-templatedeta ... ate_id=152
bin auf feedback gespannt! viel spass damit
gruss
y
habe das mit den optionen nun vereinfach und die funktionen/templates nun auch im Redaxo download bereich eingefugt. folgend die links zu den überarbeiteten versionen:
yNav
http://www.redaxo.de/168-0-templatedeta ... ate_id=150
yLangNav
http://www.redaxo.de/168-0-templatedeta ... ate_id=151
yBreadCrumb
http://www.redaxo.de/168-0-templatedeta ... ate_id=152
bin auf feedback gespannt! viel spass damit
gruss
y
MASSIF Webdesign Studio
Schreibe bitte anstelle von $options[parentId] dies: $options['parentId'] (und das bei allen $options-Array Zugriffen).
Es hagelt sonst ne Menge Fehlermeldungen.
Es hagelt sonst ne Menge Fehlermeldungen.
<?php print $Footer; ?>
Sven
Ich würde ja die Welt verändern,
doch der Quellcode ist mir zu absurd!
REX 5 :: Tricks und Tipps
REX 5 :: Modulesammlung
Wiki zu Redaxo 3 und 4 (!nur noch im Webarchiv!)
Sven
Ich würde ja die Welt verändern,
doch der Quellcode ist mir zu absurd!
REX 5 :: Tricks und Tipps
REX 5 :: Modulesammlung
Wiki zu Redaxo 3 und 4 (!nur noch im Webarchiv!)
Frage
Schön, aber wie genau binde ich das in Redaxo ein?
Habe ein Template erstellt und dort die function hinein kopiert.
Dann habe ich in dem navi div folgendes hinein kopiert:
geht aber nicht, wie funktioniert das denn?
Habe ein Template erstellt und dort die function hinein kopiert.
Dann habe ich in dem navi div folgendes hinein kopiert:
Code: Alles auswählen
<div class="navi">
<php
$options = array('showLangCodeOnly'=>1, 'separatorTag'=>'span');
echo createLangNav($options);
?> </div>
Re: Frage
Hallo Steffussteffus hat geschrieben:Schön, aber wie genau binde ich das in Redaxo ein?
Habe ein Template erstellt und dort die function hinein kopiert.
Dann habe ich in dem navi div folgendes hinein kopiert:
geht aber nicht, wie funktioniert das denn?
Was genau passiert denn? Kriegst du eine Fehlermeldung oder passier gar nichts? Bindest du denn das Template wo die Funktion drin ist auch im Haupt-Template ein?
Gruss
y
MASSIF Webdesign Studio
er zeigt mir dann komische zeichen an, ober besser gesagt schreibt er mir die function in ein div. also, was habe ich gemacht. template erstellt, die funktion dort hinein kopiert. im default template dann wie folgt eingebunden:
wobei REX_TEMPLATE[4] sich die function verbirgt.
Code: Alles auswählen
<div class="head-bottom-center">
REX_TEMPLATE[4]
<php
$options = array('showLangCodeOnly'=>1, 'separatorTag'=>'span');
echo createLangNav($options);
?>
</div>
Du musst die Funktion im REX_TEMPLATE[4] noch in PHP-Tags setzen:steffus hat geschrieben:er zeigt mir dann komische zeichen an, ober besser gesagt schreibt er mir die function in ein div
Code: Alles auswählen
<?php
function createLangNav ...
?>
Müsste so klappen, habs eben getestet.
Gruss
y
MASSIF Webdesign Studio
no keine chance, nun zeigt er mir das an:
1, 'separatorTag'=>'span'); echo createLangNav($options); ?>
bin mir sicher das ich nun das template richtig kopiert habe. und es so im div eingebunden habe:
1, 'separatorTag'=>'span'); echo createLangNav($options); ?>
bin mir sicher das ich nun das template richtig kopiert habe. und es so im div eingebunden habe:
Code: Alles auswählen
<div class="navi">
REX_TEMPLATE[4]
<php
$options = array('showLangCodeOnly'=>1, 'separatorTag'=>'span');
echo createLangNav($options);
?>
</div>
Komisch, kann mir gerade nicht erklären wieso das nicht funktionieren soll ... Habs wie gesagt mit dem genau gleichen Template, aus dem downloadbereich, getestet. kannst du mir eventuell einen eingeschränkten benutzer im redaxo einrichten und mir eine PM mit den Zugangsdaten schicken? dann schau ichs mir mal direkt an, weil bei mir funzts einwandfrei.steffus hat geschrieben:no keine chance, nun zeigt er mir das an:
1, 'separatorTag'=>'span'); echo createLangNav($options); ?>
bin mir sicher das ich nun das template richtig kopiert habe. und es so im div eingebunden habe:
Code: Alles auswählen
<div class="navi"> REX_TEMPLATE[4] <php $options = array('showLangCodeOnly'=>1, 'separatorTag'=>'span'); echo createLangNav($options); ?> </div>
edit: werde auch nichts kaputt machen
aber falls dir das zu heikel ist, kannst du mir wenigstens beide Templates vollständig posten bzw. pm'n? oder einen link zur seite schicken? nimmt mich selber wunder wieso's nicht gehen soll.
MASSIF Webdesign Studio
hab deinen Fehler soeben gefunden, dir fehlt im Template wo du die Navigation ausgiebst ein "?" (Fragezeichen)
müsste so aussehen (3. Zeile):
müsste so aussehen (3. Zeile):
Code: Alles auswählen
<div class="navi">
REX_TEMPLATE[4]
<?php
$options = array('showLangCodeOnly'=>1, 'separatorTag'=>'span');
echo createLangNav($options);
?>
</div>
MASSIF Webdesign Studio
Ok versuche es mal hier zu posten.
hier das navi id= 4
hier nun der ausschnitt aus dem default, mehr habe ich nicht gemacht.
wenn ich das nun mache, steht folgendes in meinem navi div:
1, 'separatorTag'=>'span'); echo createLangNav($options); ?>
hier das navi id= 4
Code: Alles auswählen
<?php
function createLangNav($options_user='')
{
if(!is_array($options_user))
$options_user=array();
$options = array(
'showLangCodeOnly' => false, // {boolean} Soll nur die Abgekürzte Version angezeigt werden, zBsp. 'De', 'Fr' usw.
'showDescription' => false, // {boolean} Soll für die Sprachnavigation eine Beschreibung ausgegeben werden? zBsp: Sprache
'description' => 'Sprache', // {string} String der als die Beschreibung ausgegeben wird
'addSeparator' => false, // {boolean} Soll zwischen jedem Navigationselement ein Trennzeichen angezeigt werden? (Nur falls 'displayAsList'=> false
'separatorChar' => '|', // {string} Trennzeichen
'separatorTag' => 'span', // {string} Tag welches das Trennzeichen umschliesst
'separatorTagClass' => '', // {string} Klasse für das Trennzeichen-Tag
'renderImages' => false, // {boolean} Soll Navigation mit dem Schriftersetzungs-Addon SleightOfHand von Dave Holloway ausgegebn werden?
'renderFontfile' => 'univers.ttf', // {string} Name der zu verwendenden Schrift-Datei (schaue Dokumentation SleightOfHand)
'renderFontsize' => 12, // {int} Schriftgrösse (nicht pixelgenau!)
'renderFontspacing' => 1, // {int} Zeilenabstand
'renderFontcolor' => array(42,41,46), // {array(R,G,B)} RGB-Farbwert der Schrift
'renderFontactivecolor' => array(255,255,255) // {array(R,G,B)} RGB-Farbwert der Schrift bei einem mouseover-Event
);
// Extending defaults array with user options
foreach ($options_user as $key => $val)
if(isset($options[$key]))$options[$key] = $val;
$invalidGets = array('clang','article_id');
foreach($_GET as $key=>$val)
{
if(!in_array($key,$invalidGets))
$string .= ($string=="") ? $key."=".$val : "&".$key."=".$val;
}
global $REX;
foreach($REX['CLANG'] as $key=>$lang)
{
if($options['showDescription'] && $out!="") $out .= '<span class="langtitle">'.$options['description'].'</span> ';
if($options['addSeparator'] && $out!="")
{
$out .= ' <'.$options['separatorTag'];
if($options['separatorTagClass'])
$out .= ' class="'.$options['separatorTagClass'].'"';
$out .= '>'.$options['separatorChar'].'</'.$options['separatorTag'].'> ';
}
$text = ($options['showLangCodeOnly']) ? substr($lang,0,2) : $lang ;
if($options['renderImages'] && OOAddon::isAvailable('sleightofhand'))
{
if($REX['CUR_CLANG']==$key)
$out .= a561_sleightofhand(array(
'text' => $text,
'link' => rex_getUrl($curArtId,$key),
'font' => $options['renderFontfile'],
'color' => $options['renderFontactivecolor'],
'size' => $options['renderFontsize'],
'spacing' => $options['renderFontspacing']
));
else
$out .= a561_sleightofhand(array(
'text' => $text,
'link' => rex_getUrl($curArtId,$key),
'font' => $options['renderFontfile'],
'color' => $options['renderFontcolor'],
'mouseover' => $options['renderFontactivecolor'],
'size' => $options['renderFontsize'],
'spacing' => $options['renderFontspacing']
));
}
else
{
$out .= '<a href="'.rex_getUrl($curArtId,$key). '?' .$string. '" title="'.$lang.'" id="lang'.$key.'"';
if($REX['CUR_CLANG']==$key) $out .= ' class="active"';
$out .= '>'.$text.'</a>';
}
}
return $out;
}
?>
Code: Alles auswählen
<div id="head-navigation">
REX_TEMPLATE[4]
<php
$options = array('showLangCodeOnly'=>1, 'separatorTag'=>'span');
echo createLangNav($options);
?>
1, 'separatorTag'=>'span'); echo createLangNav($options); ?>
Abend Steffus
Bitte die vorherigen Beiträge lesen!
Hab dein Fehler gefunden, dir fehlt in deinem default Template beim ersten PHP Tag ein Fragezeichen, wie oben schon geschrieben.
Gruss
y
Bitte die vorherigen Beiträge lesen!
Hab dein Fehler gefunden, dir fehlt in deinem default Template beim ersten PHP Tag ein Fragezeichen, wie oben schon geschrieben.
Gruss
y
MASSIF Webdesign Studio
ja.. sehr gut.. noch eine frage.. nun zeigt er mir nur de oder en an.. aber kein richtiges navi... also das was ich in struktur angelegt habe.
dann solltest du, wenn du einfluss hast das im download bereich hier ändern
Beispiel Ausgabe:
<php
$options = array('showLangCodeOnly'=>1, 'separatorTag'=>'span');
echo createLangNav($options);
?>
dann solltest du, wenn du einfluss hast das im download bereich hier ändern
Beispiel Ausgabe:
<php
$options = array('showLangCodeOnly'=>1, 'separatorTag'=>'span');
echo createLangNav($options);
?>
Dazu verwendest du die falsche Funktion. Die "yLangNav", wie der Name schon andeutet, generiert eine Sprachnavigation. Um die Struktur auszugeben verwenden bitte die "yNav" unter (4. Download):
http://www.redaxo.de/19-0-templates.htm ... t=&x=0&y=0
Viel Glück
y
http://www.redaxo.de/19-0-templates.htm ... t=&x=0&y=0
Viel Glück
y
MASSIF Webdesign Studio
bring es leider nicht zusammen
Hi
hab gerade das template ynav ausprobiert.
ich finde die funktionen echt super und hut ab vor dem der das geschrieben hat.
leider hab ich das problem, dass es jeden menüpunkt mit der artikel id 1 verlinkt!
hab zwar schon einiges ausprobiert aber will einfach net funktionieren!!
hat jemand vielleicht eine lösung?
wäre euch echt dankbar.
lg Matthias
hab gerade das template ynav ausprobiert.
ich finde die funktionen echt super und hut ab vor dem der das geschrieben hat.
leider hab ich das problem, dass es jeden menüpunkt mit der artikel id 1 verlinkt!
hab zwar schon einiges ausprobiert aber will einfach net funktionieren!!
hat jemand vielleicht eine lösung?
wäre euch echt dankbar.
lg Matthias
Re: bring es leider nicht zusammen
hallo matzematze hat geschrieben:Hi
hab gerade das template ynav ausprobiert.
ich finde die funktionen echt super und hut ab vor dem der das geschrieben hat.
leider hab ich das problem, dass es jeden menüpunkt mit der artikel id 1 verlinkt!
hab zwar schon einiges ausprobiert aber will einfach net funktionieren!!
hat jemand vielleicht eine lösung?
wäre euch echt dankbar.
lg Matthias
vielen dank für das kompliment sobald ich mal ein bisschen mehr zeit habe und gerade lust habe werde ich die letzten bugs noch ausmerzen bzw. die funktionen etwas erweitern.
zu deinem problem, hmm, ich kann mir gerade nicht erklären wieso das passiert. hast du die möglichkeit mir per pm einen link auf die seite zu schicken damit ich mal reinschauen kann? redaxo zugang wäre auch toll, aber vorerst sollte ein link auf die seite reichen.
kannst du zusätzlich noch angeben wie und mit welchen optionen du die funktion aufrufst?
danke!
gruss
y
MASSIF Webdesign Studio
Re: bring es leider nicht zusammen
hab dir gerade eine pn gesendet!
hab den fehler gefunden, lag an der funktion selber.
bitte kopier das gesamte ynav skript nochmals von der template download seite und versuchs nochmal damit. sollte klappen.
gib doch kurz bescheid obs nun funktioniert.
gruss
y
bitte kopier das gesamte ynav skript nochmals von der template download seite und versuchs nochmal damit. sollte klappen.
gib doch kurz bescheid obs nun funktioniert.
gruss
y
MASSIF Webdesign Studio