|
|
Latest News |
Latest Threads |
|
 |
55.494 Posts & 4.945 Themen in 78 Foren |
|
|
|
 |
Forensuche |
|
Suchbegriff |
Benutzerauswahl |
Ergebnisse anzeigen |
 |
 |
Navbox im Content anzeigen 28 Beiträge in diesem Thema |
|
|
 |
|
 |
06.10.2012 - 08:44 Uhr |
|
|
|
Moin hab nochmal ne kleinere Frage.
k!r!ka, du hast mir ja in dem Thread hier erklärt, wie man den Navboxinhalt auf der Welcomeseite anzeigen lässt. 
-klick-
Hat ja auch Super geklappt 
Ist es auch möglich, dass selbe für die Content Seiten zu machen?
Wenn ja welche Dateien muss man da editieren?
Danke und schönes Wochenende euch allen hier 
|
|
|
|
|
|
|
 |
|
 |
06.10.2012 - 10:47 Uhr |
|
|
|
Nimm den Code der Funktion aus der pkinc/public/start.php raus. Also diesen:
Hier klicken zum aufklappen 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | | PHP-Quelltext # start.side - add nav
function _reNav_($iValue='')
{
if (!is_string($iValue) || trim($iValue)=='')
{
return NULL;
}
$iValue =trim($iValue);
preg_match_all('#\[navBox=(.*)\]#eisuSU', $iValue, $iMatch);
if (!is_array($iMatch) || count($iMatch)===0 || !isset($iMatch['0'], $iMatch['1']))
{
return $iValue;
}
global
$FORUM,
$CMS,
$SESSION,
$SQL,
$BBCODE,
$ENV,
$mods,
$phpkit_status,
$LANG,
$lang,
$LMO_path,
$LMO_reLetter
;
$iRequire =
$iReplace =array();
foreach ($iMatch['1'] as $iPos=>$iNav)
{
if (!is_file(pkDIRPUBLICINC.'navbox.'.$iNav.pkEXT))
{
continue;
}
$iPos =$iMatch['0'][$iPos];
$iRequire[$iPos]=require (pkDIRPUBLICINC.'navbox.'.$iNav.pkEXT);
foreach ($iRequire[$iPos] as $iContent)
{
$iReplace[$iPos].=$iContent;
}
}
return str_replace(array_keys($iReplace), array_values($iReplace), $iValue);
}
# start.side - add nav | |
Und packe diesen in die Datei pkinc/func/public.php zwischen folgenden Zeilen:
| PHP-Quelltext if(!defined('pkFRONTEND') || (pkFRONTEND!='public' && pkFRONTEND!='style'))
die('Direct access to this location is not permitted.');
# hier der Code von oben
#function pkTpl ( string tplname [, string tplextension ] )
#return string
function pkTpl($tpl) | |
Hab die Stelle mit # hier der Code von oben markiert, wo du die Funktion reinpackst.
Nun kann die Funktion überall im öffentlichen Bereich benutzt werden.
---
Nun öffne die Datei pkinc/public/article.php und suche das:
| PHP-Quelltext $content_article_body=$BBCODE->parse($content_article,$contentinfo['content_html'],$contentinfo['content_ubb'],$contentinfo['content_smilies'],1); | |
Packe darunter das ein:
| PHP-Quelltext $content_article_body=_reNav_($content_article_body); | |
---
Wenn du weitere Bereiche mit dieser Funktion haben möchtest, must du im Grunde nur im Template nach der Variable gucken, die den Text am Ende ausgibt. Diese Variable heist z.B. bei den Artikeln (Template article) $content_article_body. Welche Datei du nun durchsuchen must, kannst du an der URL erkennen, an diesen Part: ?path=***
*** steht dann für die Datei, sowohl .php- als auch das Template.
Bei Auflistungen (z.B. Forenposts) ist es meist ***_row als Template, wo dann die Variable für den Text steht.
Nachdem du also das richtige Template mit der Variable hast, durchsuchst du in der gleichnamigen .php-Datei nach jener Variable ab.
Und dann packst du direkt darunter folgenden Code.
| PHP-Quelltext $var=_reNav_($var); | |
Wobei $var durch die Variable, nach der du gesucht hast, ersetzt.
Natürlich zweimal, da einmal als Übergabe für die Funktion ist, und das andere mal, um es in eben jene Variable zu speichern und später auszugeben.
---
Wenn der Schmach nicht verstanden wurde, dann macht es nichts ;o
|
|
|
|
|
|
|
 |
|
 |
06.10.2012 - 11:44 Uhr |
|
|
|
Danke werde es gleich direkt testen 
PS: ich hatte noch was im Ergebnismeldungs-Thread editiert ^^
LG
|
|
|
|
|
|
|
 |
|
 |
06.10.2012 - 13:31 Uhr |
|
|
|
und leider folgende Fehlermeldung 
Fatal error: Cannot redeclare _reNav_() (previously declared in /users/fifagamersfg/www/pkinc/func/public.php:27) in /users/fifagamersfg/www/pkinc/public/start.php on line 77
|
|
|
|
|
|
|
 |
|
 |
06.10.2012 - 13:59 Uhr |
|
|
|
Diese Meldung sagt, das die Funktion _reNav_() mehr als einmal im Code deklariert wurde. Also es existieren mehr als einmal die Funktion irgendwo im Code (nicht der Aufruf selbst, sondern das Definieren, was die Funktion tun soll).
Hast du, wie ich es ganz am Anfang geschrieben habe, den Code aus der pkinc/public/start.php raus genommen .. ?
Wenn du es allerdings dort noch drin hast, und in der pkinc/func/public.php, dann wurde die Funktion 2x deklariert => Fatal Error.
Es geht, wie ich es geschrieben habe, um diesen Code in der pkinc/public/start.php:
Hier klicken zum aufklappen 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | | PHP-Quelltext # start.side - add nav
function _reNav_($iValue='')
{
if (!is_string($iValue) || trim($iValue)=='')
{
return NULL;
}
$iValue =trim($iValue);
preg_match_all('#\[navBox=(.*)\]#eisuSU', $iValue, $iMatch);
if (!is_array($iMatch) || count($iMatch)===0 || !isset($iMatch['0'], $iMatch['1']))
{
return $iValue;
}
global
$FORUM,
$CMS,
$SESSION,
$SQL,
$BBCODE,
$ENV,
$mods,
$phpkit_status,
$LANG,
$lang,
$LMO_path,
$LMO_reLetter
;
$iRequire =
$iReplace =array();
foreach ($iMatch['1'] as $iPos=>$iNav)
{
if (!is_file(pkDIRPUBLICINC.'navbox.'.$iNav.pkEXT))
{
continue;
}
$iPos =$iMatch['0'][$iPos];
$iRequire[$iPos]=require (pkDIRPUBLICINC.'navbox.'.$iNav.pkEXT);
foreach ($iRequire[$iPos] as $iContent)
{
$iReplace[$iPos].=$iContent;
}
}
return str_replace(array_keys($iReplace), array_values($iReplace), $iValue);
}
# start.side - add nav | |
|
|
|
|
|
|
|
 |
|
 |
06.10.2012 - 14:10 Uhr |
|
|
|
Okay ich hab natürlich den Teil mit dem rausnehmen überlesen. Sorry 
Hab jetzt bis zu dem Teil mit der pkinc/public/article.php alles gemacht. Also die Datei hab ich so editiert.
Die Fehlermeldung ist jetzt natürlich weg allerdings zeigt er die Navbox bei den Inhalten nicht an ...
Müsste aber doch eigentlich oder?
Den unteren Teil hab ich jetzt noch nicht angesehen da müsst ich mal genauer gucken ô.o
|
|
|
|
|
|
|
 |
|
 |
06.10.2012 - 15:13 Uhr |
|
|
|
Ja, es wird eben
[navBox=lastresult]
als angezeigt.
Geht sich ja um zB content&contentid=1 , dass es eben da angezeigt werden kann.
Und ja ich habs mit der Ergebnisse box probiert.
Im Begrüßungstext klappt es halt immernoch :-/
|
|
|
|
|
|
|
 |
|
 |
06.10.2012 - 15:32 Uhr |
|
|
|
Um welchen Bereich geht es denn jetzt? Artikel? Oder Inhaltsseiten?
Egal, ich hab ja eigentlich schon hier im unteren Bereich beschrieben, wie du jene Bereiche selber bearbeiten kannst. Sollte dies nicht verstanden worden sein, kannste ja einfach nochmal fragen ;o
Ansonsten:
Wenn [navBox=lastresult] angezeigt wird, dann existiert die Box entweder nicht, oder die Funktion wird nicht angesprochen, was heist, das sie nicht im Code ist (ähnlich wie im Beispiel weiter oben in der pkinc/public/article.php dann).
|
|
|
|
|
|
|
 |
|
 |
07.10.2012 - 15:28 Uhr |
|
|
|
Es geht um die Inhalte ...
Ich hab jetzt alles ausprobiert.
Es wird immer nur [navBox=vote] angezeigt ...
Ich hab es mit so gut wie jeder NavBox getestet 
Mit dem Code in der start.php klappt es ... aber halt nur in der Willkommensnachricht ^^
Ich werd aber noch mal den sogenannten Schmach von dir testen ... und dir dann Rückmeldung geben ^^
|
|
|
|
|
|
|
 |
|
 |
07.10.2012 - 15:47 Uhr |
|
|
|
Bin mir ziemlich sicher, das ich im Startpost was von Artikel gelesen habe .. 
Nun gut, halt die Inhaltsseiten:Öffne die Datei pkinc/public/content.php und suche das:
| PHP-Quelltext $content_text .= $BBCODE->parse($contentinfo['content_text'],$contentinfo['content_html'],$contentinfo['content_ubb'],$contentinfo['content_smilies'],1,1); | |
Und füge darunter das ein:
| PHP-Quelltext $content_text =_reNav_($content_text); | |
Du kannst ja erstmal den Schmach versuchen, und dann den Klapptext öffnen. Vielleicht hast ja das selbe dann raus ;p
|
|
|
|
|
|
|
 |
|
 |
08.10.2012 - 17:32 Uhr |
|
|
|
Ich weiß nicht wieso ...
Aber es funktioniert einfach nicht
es wird immer [navBox=vote] zB angezeigt
Auch auf der Welcomeseite klappt es nicht mehr.
Ich habe aber nichts verändert. -.-
|
|
|
|
|
|
|
 |
|
 |
08.10.2012 - 18:22 Uhr |
|
|
|
Wieso erklärst du nicht einfach mal, was du alles bisher getan hast.
Hast du wie im ersten Post die Funktion _reNav_() in die pkinc/func/public.php an besagter Stelle eingefügt (und aus der pkinc/public/start.php entfernt)?
Hast du im letzten Post den Klapptext geöffnet und die Anweisungen befolgt?
Hast du den kleinen Fix ein paar Post vorher eingearbeitet?
Wie sagen es User aus anderen Foren so schön:
Ich hab meine Kristallkugel gerade nicht parat ;o
Versteh mich auch nicht falsch, aber bis auf die Verschiebung der o.g. Funktion in die o.g. Datei (aus der Datei pkinc/public/start.php entfernen und in die Datei pkinc/func/public.php einfügen) ist, bis auf den einen kleinen Fix, der einzige Unterschied, das die Funktion global im öffentlichen Bereich aufrufbar ist. Und dann in den jeweiligen Dateien die Funktion aufrufen zu lassen, wie es z.B. auf der Startseite ist, sollte eigentlich kein Problem sein.
Also entweder du hast was vergessen, etwas nicht beachtet (oder überlesen) oder .. keine Ahnung oO
Ich hab ja bereits schon vorher geschrieben, was für Ursachen es haben kann, wenn trotzalledem immer noch der BB-Code da steht.
|
|
|
|
|
|
|
 |
|
 |
Ähnliche Themen |
|
|
|
|
|
|
|
|