anpera.net https://anpera.dyndns.org/phpbb3/ |
|
Template-Auswahl in Dropdown/Listenfeld? https://anpera.dyndns.org/phpbb3/viewtopic.php?f=25&t=4781 |
Seite 1 von 1 |
Autor: | Shris [ So 01 Feb, 2009 15:18 ] |
Betreff des Beitrags: | Template-Auswahl in Dropdown/Listenfeld? |
Hallo Leute, ich habe eine Frage bezüglich der Templatewahl. Wenn ich in der Biografie bin habe ich ja dort alle auf dem Server vorhandenen Templates zur Auswahl, wenn man jetzt natürlich mehrere hat wird des ja ein wenig voll... Nun würde ich es gerne so ändern das die Templates in einem Listenfeld (also mit diesem kleinen Pfeil an der rechten Seite) angezeigt werden und so ausgewählt werden können... Für Einstellungen bezüglich "Email senden wenn du eine neue Ye olde Mail bekommst" geht dies ja... Allerdings blicke ich da mit dem Code nicht so richtig durch ich hab mir die prefs.php angeschaut aber das ist für mich ein wenig verwirrend... Wie kann man dies nun einstellen? MfG Shris |
Autor: | Auric [ So 01 Feb, 2009 15:58 ] |
Betreff des Beitrags: | Re: Template-Auswahl in Dropdown/Listenfeld? |
Hi, betrachten wir erstmal den Übeltäter... $this->bbcode_second_pass_code('', 'if ($handle = @opendir("templates")){ $skins = array(); while (false !== ($file = @readdir($handle))){ if (strpos($file,".htm")>0){ array_push($skins,$file); } } if (count($skins)==0){ output("`b`@Argh, dein Admin hat entschieden, daß du keine Skins benutzen darfst. Beschwer dich bei ihm, nicht bei mir.`n"); }else{ output("<b>Skin:</b><br>",true); while (list($key,$val)=each($skins)){ output("<input type='radio' name='template' value='$val'".$_COOKIE['template']==""&&$val=="yarbrough.htm" || $_COOKIE['template']==$val?"checked":"").">".substr($val,0,strpos($val,".htm"))."<br>",true); } } } ') Da du ja nur die Ausgabe des Ganzen modifizieren willst, kann dir ja eigentlich wumpe sein, wie die Daten eingelesen werden. Der Vollständigkeit halber aber hier noch mal der Schnellüberblick: In $handle wird ein Verweis auf den Ordner templates abgelegt, damit daraus gelesen werden kann. Womit auch sogleich fortgefahren wird: Solange es Einträge gibt werden diese im Array $skins abgelegt. Wenn es keine Skins zur Auswahl stehen gibt' s eine Fehlermeldung, aber das ignorieren wir mal Ansonsten folgt eine Kurze Überschrift und dann wird über unser $skins-Array iteriert. So, hier wird es jetzt interessant für dich! Die Output-Zeile sieht zwar etwas wirr aus mit seinen Unmengen von Verkettungen und Trinitätsoperationen, aber wenn man das ganze mal ein bisschen ordnet und zerlegt kommt das dabei raus: $this->bbcode_second_pass_code('', ' $checked = ""; if((empty($_COOKIE['template']) && $val=="yarbrough.htm") || $_COOKIE['template'] == $val) $checked = "checked"; $tplname = substr($val, 0, strpos($val,".htm")); output("<input type='radio' name='template' value='$val' $checked>$tplname<br>",true); ') Sollte gleich viel besser lesbar sein, als die kompakte Zeile Code aus dem Original. Außerdem sollte gleich ersichtlich sein, was du nun noch ändern musst: Statt dem normalen <input> musst du hier die <option>-Einträge eines <select>-Feldes (das du davor und danach natürlich noch ausgeben musst) zusammen bauen. Alles was du dazu brauchst liegt bereits vor: Der interne Name mit .htm-Endung für das System ($val), der Ausgabename ($tplname) und checked oder ein leerer String, je nach dem ob das gerade ausgegebene Template gerade aktiv ist ($checked). Viel Erfolg mit deiner Umsetzung, es wäre nett, wenn du sie hier Posten würdest. Auric |
Autor: | Shris [ So 01 Feb, 2009 16:23 ] |
Betreff des Beitrags: | Re: Template-Auswahl in Dropdown/Listenfeld? |
ok also nochmal zum verständnis: $this->bbcode_second_pass_code('', 'if ($handle = @opendir("templates")){ $skins = array();') damit wird auf den templates ordner verwiesen und $skins wird als array benutzt, das hab ich verstanden^^ aber den Output-Teil: $this->bbcode_second_pass_code('', '$checked = ""; if((empty($_COOKIE['template']) && $val=="yarbrough.htm") || $_COOKIE['template'] == $val) $checked = "checked"; $tplname = substr($val, 0, strpos($val,".htm")); output("<input type='radio' name='template' value='$val' $checked>$tplname<br>",true);') jetzt soll ich allerdings anstatt <input> <option> Einträge aus einem <select> Feld benutzen, das <select> muss vorher allerdings ausgegeben werden damit damit überhaupt was angefangen werden kann... Wie mache ich das nun allerdings? ich habe jetzt z.B. $this->bbcode_second_pass_code('', ' output("<option type='select' name='template' value='$val' $checked>$tplname<br>",true); ') das würde als auswahltypen ein selectfeld geben und würde dies halt für templates übernehmen aus dem vorher festgelegten $val und würde dies überprüfen durch $checked sehe ich das richtig oder bin ich da mit meiner denkweise falsch?? MfG Shris |
Autor: | Drazaar [ So 01 Feb, 2009 18:51 ] |
Betreff des Beitrags: | Re: Template-Auswahl in Dropdown/Listenfeld? |
ein Select input ist so aufgebaut: PHP: <select name="XY"> <option value="X">Optionname</option> </select> Siehe auch: http://de.selfhtml.org/html/formulare/auswahl.htm name muss in diesem Fall template sein, denn sonst müsstest du (unnötigerweise) weiter Dinge umändern. Betrachte auch bei value, was im Original benutzt wurde (Bei radio). Das selbe gilt für checked. Hierbei muss man allerdings selected setzen. Frage ab, ob das im cookie festgelegte template genau das ist, welches beim Durchlauf der Schleife gerade bearbeitet wird. Wenn ja, bei <option> noch den Zusatz selected. Das sollte nicht schwer sein. Gutes Gelingen ![]() MfG Draz |
Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |