Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
925 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  template

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

template

n°1366383
irielov
Posté le 15-05-2006 à 12:56:53  profilanswer
 

Hello
Voilou, je me suis lancé dans un truc à la c.., juste pour le fun (je ne suis pas un pro)
Je souhaite passer phpnuke en template en utilisant le moteur de phpbb.
Tout fonctionne bien pour les formulaire simples, mais je bute pour passer certaines variables, quand elles sont compliquées et notamment :
 

Code :
  1. echo "</td></tr><tr><td>"
  2. ."" . _DEFAULTTHEME . ":</td><td><select name='xDefault_Theme'>";
  3.     $handle=opendir('themes');
  4.     while ($file = readdir($handle)) {
  5. if ( (!ereg("[.]",$file)) ) {
  6.  $themelist .= "$file ";
  7. }
  8.     }
  9.     closedir($handle);
  10.     $themelist = explode(" ", $themelist);
  11.     sort($themelist);
  12.     for ($i=0; $i < sizeof($themelist); $i++) {
  13. if($themelist[$i]!="" ) {
  14.     echo "<option name='xDefault_Theme' value='$themelist[$i]' ";
  15.  if($themelist[$i]==$Default_Theme) echo "selected";
  16.  echo ">$themelist[$i]\n";
  17. }
  18.     }


 
J’imagine dans ma petite tête que ‘sort’ équivaut à un echo ou un print pour la liste des thèmes dispo dans mon directory themes.
 
Normalement, j’utilise  
 

Code :
  1. $template->assign_block_vars('themesel',array(
  2.             ‘THEME’=> $theme
  3.           ));


 
pour passer mes variables que je récupère dans mon fichier tpl grace à  
 

Code :
  1. <select name='xDefault_Theme'>
  2.       <!-- BEGIN themesel -->
  3.         <option name='xDefault_Theme'>{themesel.THEME}</option>
  4.       <!-- END themesel -->
  5.       </select>


En sachant que le thème par défaut sera celui qui sera affiché dans le select quand j’afficherai mon formulaire.
Après avoir essayer bon nombre de solutions, je ne comprends pas comment récupérer mes variables themes pour les afficher.
Merci.

mood
Publicité
Posté le 15-05-2006 à 12:56:53  profilanswer
 

n°1366409
Xav_
The only one...
Posté le 15-05-2006 à 13:31:03  profilanswer
 

irielov a écrit :

Hello
J’imagine dans ma petite tête que ‘sort’ équivaut à un echo ou un print pour la liste des thèmes dispo dans mon directory themes.


 
"sort" sert à trier un tableau (merci d'avoir jetté un oeil à la doc avant de poster ;))
c'est la boucle juste en-dessous sur l'ensemble du tableau (de 0 à "sizeof" ) avec le "echo" qui l'affiche :)
 
tu as la liste des themes séparé par des espaces, donc un:
- "explode" sur "espace" te donne un tableau de la liste des thèmes
- "sort" sur le tableau retourné pour trier par ordre alphabétique
- "boucle for" avec "echo" sur le tableau pour afficher les themes
 


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°1366455
irielov
Posté le 15-05-2006 à 14:04:28  profilanswer
 

Xav_ a écrit :

"sort" sert à trier un tableau (merci d'avoir jetté un oeil à la doc avant de poster ;))
c'est la boucle juste en-dessous sur l'ensemble du tableau (de 0 à "sizeof" ) avec le "echo" qui l'affiche :)
 
tu as la liste des themes séparé par des espaces, donc un:
- "explode" sur "espace" te donne un tableau de la liste des thèmes
- "sort" sur le tableau retourné pour trier par ordre alphabétique
- "boucle for" avec "echo" sur le tableau pour afficher les themes


J’ai bien précisé que j’avais une petite tête, d’autant que j’avais regardé la doc officielle php.  :heink:  
Entre temps, j’ai regardé comment fonctionne phpbb. Ils passent la fonction style_select préalablement définie, comme cela STYLE_SELECT' => style_select($user_style, 'style').
La différence, c’est qu’ils listent des variables stockées dans la bdd, alors que pour nuke, je dois utiliser une liste récupérée dans un dossier.

n°1369651
irielov
Posté le 18-05-2006 à 14:18:01  profilanswer
 

Bon, cela n'intéressera probablement pas grand monde, mais j'ai trouvé.
 

Code :
  1. function Themelist (){
  2.     global $prefix, $db;
  3. $row = $db->sql_fetchrow($db->sql_query("SELECT Default_Theme from ".$prefix."_config" ));
  4. $Default_Theme = check_html($row['Default_Theme'], "nohtml" );
  5.     $handle=opendir('themes');
  6.     while ($file = readdir($handle)) {
  7. if ( (!ereg("[.]",$file)) ) {
  8.  $themelist .= "$file ";
  9. }
  10.     }
  11.     closedir($handle);
  12.     $themelist = explode(" ", $themelist);
  13.     sort($themelist);
  14.     for ($i=0; $i < sizeof($themelist); $i++) {
  15. if(!empty($themelist[$i])) {
  16.     if($themelist[$i]==$Default_Theme){
  17.         $selected = ( $row['Default_Theme'] == $themelist[$i] ) ? ' selected="selected"' : '';
  18.         $printtheme .= '<option value="xDefault_Theme"' . $selected . '>' . $themelist[$i] . '</option>';
  19. }else{
  20.         $printtheme .= '<option value="xDefault_Theme">' . $themelist[$i] . '</option>';
  21.         }
  22.       }
  23.     }
  24.     return $printtheme;
  25. }


Code :
  1. $template->assign_block_vars('themelist',array(
  2.             'THEMELIST'=> Themelist()
  3.           ));


Code :
  1. <tr>
  2.  <td class="row1">{L_DEFAULTTHEME}</td>
  3.  <td class="row2">
  4.       <select name="xDefault_Theme">
  5.         <!-- BEGIN themelist -->
  6.         {themelist.THEMELIST}
  7.         <!-- END themelist -->
  8.       </select>
  9.     </td>
  10. </tr>


Message édité par irielov le 18-05-2006 à 14:18:39

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  template

 

Sujets relatifs
Template dreamweaver...Specialisation de template
utilisation des moteurs de templateOssature de ... New pb : mon template php ne prend un menu en js
protected dans classe templateVecteur sans template
[C++] Template... erreur tte bete surement...erreur de spécialisation d'un template ...
[resolu] [perl] problème "lib text::template" suite migration serverUtilisation template
Plus de sujets relatifs à : template


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR