Foros del Web » Programando para Internet » PHP »

sistema de templates no pasa variables

Estas en el tema de sistema de templates no pasa variables en el foro de PHP en Foros del Web. hola, me recordaran, hace unos dias puse un tema sobre leer datos de un archivo de texto plano bueno, el problema no yacia ahi el ...
  #1 (permalink)  
Antiguo 28/07/2010, 00:55
danneg
Invitado
 
Mensajes: n/a
Puntos:
Exclamación sistema de templates no pasa variables

hola, me recordaran, hace unos dias puse un tema sobre leer datos de un archivo de texto plano

bueno, el problema no yacia ahi

el problema es que al utilizarlo con un sistema de templates que tome prestado de otro codigo, no pasa dichas variables

Código PHP:
Ver original
  1. $video_id,
  2. $video_title,
  3. $video_author,
  4. $video_description,
  5. $video_date,
  6. $video_date_d,
  7. $video_date_m,
  8. $video_date_y,
  9. $article_id,
  10. $article_title,
  11. $article_img,
  12. $article_content,
  13. $article_date,
  14. $article_date_d,
  15. $article_date_m,
  16. $article_date_m_single,
  17. $article_date_m_number,
  18. $article_date_m_minimize,
  19. $article_date_y,

pero lo curioso es que el resto de las variables si las hereda de forma correcta, solo estas que nececitan estar dentro de un bucle for para su correcto funcionamiento

¿como es que me di cuetna de esto?

pues quie dicho bucle for y tampoco funciono

¿esta bien el bucle for?

segun yo si por que si hace incremento sobre el array que uso para la imprecion de dichos datos
la verdad no se que pasa con mi codgio, ya intente varias cosas, pero simplemente no obedece a lo que le digo

aqui les dejo el codigo qe utilizo para estepreseso

Código PHP:
Ver original
  1. <?php
  2.  
  3. function template($file){
  4.     global
  5.         $page_description,
  6.         $page_keywords,
  7.         $page_rss,
  8.         $page_build,
  9.  
  10.         $video_id,
  11.         $video_title,
  12.         $video_author,
  13.         $video_description,
  14.         $video_date,
  15.             $video_date_d,
  16.             $video_date_m,
  17.             $video_date_y,
  18.  
  19.         $article_id,
  20.         $article_title,
  21.         $article_img,
  22.         $article_content,
  23.         $article_date,
  24.             $article_date_d,
  25.             $article_date_m,
  26.                 $article_date_m_single,
  27.                 $article_date_m_number,
  28.                 $article_date_m_minimize,
  29.             $article_date_y,
  30.  
  31.         $fb_id,
  32.         $app_donar;
  33.  
  34.     $template = fopen($file, "r");
  35.     while(!feof($template)){
  36.         $buffer = fgets($template, 4096);
  37.         $buffer = str_replace("{[page.description]}", $page_description, $buffer);
  38.         $buffer = str_replace("{[page.keywords]}", $page_keywords, $buffer);
  39.         $buffer = str_replace("{[page.rss]}", $page_rss, $buffer);
  40.         $buffer = str_replace("{[page.build]}", $page_build, $buffer);
  41.         $buffer = str_replace("{[video.id]}", $video_id, $buffer);
  42.         $buffer = str_replace("{[video.title]}", $video_title, $buffer);
  43.         $buffer = str_replace("{[video.author]}", $video_author, $buffer);
  44.         $buffer = str_replace("{[video.description]}", $video_description, $buffer);
  45.         $buffer = str_replace("{[video.date.d]}", $video_date_d, $buffer);
  46.         $buffer = str_replace("{[video.date.m]}", $video_date_m, $buffer);
  47.         $buffer = str_replace("{[video.date.y]}", $video_date_y, $buffer);
  48.         $buffer = str_replace("{[aticle.id]}", $article_id, $buffer);
  49.         $buffer = str_replace("{[article.title]}", $article_title, $buffer);
  50.         $buffer = str_replace("{[article.img]}", $article_img, $buffer);
  51.         $buffer = str_replace("{[article.content]}", $article_content, $buffer);
  52.         $buffer = str_replace("{[article.date.d]}", $article_date_d, $buffer);
  53.         $buffer = str_replace("{[article.date.m]}", $article_date_m_single, $buffer);
  54.         $buffer = str_replace("{[article.date.m.num]}", $article_date_m_number, $buffer);
  55.         $buffer = str_replace("{[article.date.m.min]}", $article_date_m_minimize, $buffer);
  56.         $buffer = str_replace("{[article.date.y]}", $article_date_y, $buffer);
  57.         $buffer = str_replace("{[fb.id]}", $fb_id, $buffer);
  58.         $buffer = str_replace("{[app.donar]}", $app_donar, $buffer);
  59.         echo $buffer;
  60.     }
  61.     fclose($template);
  62.     return;
  63. }
  64.  
  65. function showPage(){
  66. //aqui igual declaro variables para que muestre su contenido
  67.     global
  68.         $page_description,
  69.         $page_keywords,
  70.         $page_rss,
  71.         $page_build,
  72.  
  73.         $video_id,
  74.         $video_title,
  75.         $video_author,
  76.         $video_description,
  77.         $video_date,
  78.             $video_date_d,
  79.             $video_date_m,
  80.             $video_date_y,
  81.  
  82.         $article_id,
  83.         $article_title,
  84.         $article_img,
  85.         $article_content,
  86.         $article_date,
  87.             $article_date_d,
  88.             $article_date_m,
  89.                 $article_date_m_single,
  90.                 $article_date_m_number,
  91.                 $article_date_m_minimize,
  92.             $article_date_y,
  93.  
  94.         $fb_id,
  95.         $app_donar;
  96.  
  97.     $articles_db_file = "articles.db";
  98.     $artilces_limit = 5;
  99.     $articles_db = file($articles_db_file);
  100.     $articles_order = array_reverse($articles_db);
  101.  
  102.     $videos_db_file = "videos.db";
  103.     $videos_limit = 1;
  104.     $videos_db = file($videos_db_file);
  105.     $videos_order = array_reverse($videos_db);
  106.  
  107.     if(isset($_GET["articles"])){global $articles; $articles = $_GET["articles"];}
  108.     if(empty($articles)){ $articles = 0; }
  109.     $articles_show = $articles + $artilces_limit;
  110.  
  111.     if(isset($_GET["videos"])){global $videos; $videos = $_GET["videos"];}
  112.     if(empty($videos)){ $videos = 0; }
  113.     $videos_show = $videos + $videos_limit;
  114.  
  115.     template("theme/page_1.html");
  116.  
  117.     for ($i = $videos; $i < count($videos_order) and $i < $videos_show; $i++) {
  118.         $videos_dato = explode("[*]", $videos_order[0]);
  119.         $video_id = $videos_dato[1];
  120.         template("theme/page_2.html");
  121.     }
  122.  
  123.     template("theme/page_3.html");
  124.     template("theme/page_4.html");
  125.     template("theme/page_5.html");
  126.  
  127.     for ($i = $videos; $i < count($videos_order) and $i < $videos_show; $i++) {
  128.         $videos_datoA = explode("[*]", $videos_order[0]);
  129.         $video_title = $videos_datoA[2];
  130.         $video_author = $videos_datoA[3];
  131.         $video_description = $videos_datoA[4];
  132.  
  133.         $videos_dato_date = explode("/", $videos_datoA[5]);
  134.  
  135.         $video_date_d = $videos_dato_date[0];
  136.  
  137.         $videos_dato_date_m = 1;
  138.         switch($videos_dato_date[1]){
  139.             case 1: $videos_dato_date_m = "Enero"; break;
  140.             case 2: $videos_dato_date_m = "Febrero"; break;
  141.             case 3: $videos_dato_date_m = "Marzo"; break;
  142.             case 4: $videos_dato_date_m = "Abril"; break;
  143.             case 5: $videos_dato_date_m = "Mayo"; break;
  144.             case 6: $videos_dato_date_m = "Junio"; break;
  145.             case 7: $videos_dato_date_m = "Julio"; break;
  146.             case 8: $videos_dato_date_m = "Agosto"; break;
  147.             case 9: $videos_dato_date_m = "Septiembre"; break;
  148.             case 10: $videos_dato_date_m = "Octubre"; break;
  149.             case 11: $videos_dato_date_m = "Noviembre"; break;
  150.             case 12: $videos_dato_date_m = "Diciembre"; break;
  151.         }
  152.  
  153.         $video_date_m = $videos_dato_date_m;
  154.         $video_date_y = $videos_dato_date[2];
  155.         template("theme/page_6.html");
  156.     }
  157.  
  158.     template("theme/page_7.html");
  159.  
  160.     for ($i = $articles; $i < count($articles_order) and $i < $articles_show; $i++) {
  161.         $articles_dato = explode("[*]", $articles_order[$i]);
  162.         $article_id = $articles_dato[0];
  163.         $article_title = $articles_dato[1];
  164.         $article_img = $articles_dato[2];
  165.         $article_content = $articles_dato[3];
  166.  
  167.         $articles_dato_date = explode("/", $articles_dato[4]);
  168.  
  169.         $article_date_d = $articles_dato_date[0];
  170.  
  171.         $articles_dato_date_m_single = 1;
  172.         switch($articles_dato_date[1]){
  173.             case 1: $articles_dato_date_m_single = "Enero"; break;
  174.             case 2: $articles_dato_date_m_single = "Febrero"; break;
  175.             case 3: $articles_dato_date_m_single = "Marzo"; break;
  176.             case 4: $articles_dato_date_m_single = "Abril"; break;
  177.             case 5: $articles_dato_date_m_single = "Mayo"; break;
  178.             case 6: $articles_dato_date_m_single = "Junio"; break;
  179.             case 7: $articles_dato_date_m_single = "Julio"; break;
  180.             case 8: $articles_dato_date_m_single = "Agosto"; break;
  181.             case 9: $articles_dato_date_m_single = "Septiembre"; break;
  182.             case 10: $articles_dato_date_m_single = "Octubre"; break;
  183.             case 11: $articles_dato_date_m_single = "Noviembre"; break;
  184.             case 12: $articles_dato_date_m_single = "Diciembre"; break;
  185.         }
  186.  
  187.         $articles_dato_date_m_single = 1;
  188.         switch($articles_dato_date[1]){
  189.             case 1: $articles_dato_date_m_min = "Ene"; break;
  190.             case 2: $articles_dato_date_m_min = "Feb"; break;
  191.             case 3: $articles_dato_date_m_min = "Mar"; break;
  192.             case 4: $articles_dato_date_m_min = "Abr"; break;
  193.             case 5: $articles_dato_date_m_min = "May"; break;
  194.             case 6: $articles_dato_date_m_min = "Jun"; break;
  195.             case 7: $articles_dato_date_m_min = "Jul"; break;
  196.             case 8: $articles_dato_date_m_min = "Ago"; break;
  197.             case 9: $articles_dato_date_m_min = "Sep"; break;
  198.             case 10: $articles_dato_date_m_min = "Oct"; break;
  199.             case 11: $articles_dato_date_m_min = "Nov"; break;
  200.             case 12: $articles_dato_date_m_min = "Dic"; break;
  201.         }
  202.  
  203.         $article_date_m_single = $articles_dato_date_m_single;
  204.         $article_date_m_minimize = $articles_dato_date_m_min;
  205.         $article_date_m_number = $articles_dato_date[1];
  206.         $article_date_y = $articles_dato_date[2];
  207.         template("theme/page_8.html");
  208.     }
  209.  
  210.     template("theme/page_9.html");
  211. }
  212. ?>

el archivo tiene una codificacion utf-8 sin bom, al igual que cada uno de mis archivos que utilizo.

aqui muestro alguna de las plantillas sobre donde se genera el problema
Código HTML:
Ver original
  1. <div id="video">
  2.             <a id="videoHD" class="button hd" href="#" title="Ver video en alta definición">HD</a>
  3.             <object width="500" height="290">
  4.                 <param name="movie" value="http://www.youtube.com/v/{[video.id]}&amp;hl=es_ES&amp;fs=0&amp;rel=0&amp;showinfo=0" />
  5.                 <param name="allowFullScreen" value="true" />
  6.                 <param name="allowscriptaccess" value="always" />
  7.                 <param name="wmode" value="trasparent" />
  8.                 <embed src="http://www.youtube.com/v/{[video.id]}&amp;hl=es_ES&amp;fs=0&amp;rel=0&amp;showinfo=0&amp;egm=0"
  9.                     type="application/x-shockwave-flash"
  10.                     allowscriptaccess="always"
  11.                     allowfullscreen="true"
  12.                     wmode="transparent"
  13.                     width="500"
  14.                     height="290" />
  15.             </object>
  16.         </div>

muestra todo perectamente pero no imprime el contenido de la variable, pero si lo hereda

alguna duda, observacio, sugerencia, son aceptadas!!

de antemano gracias!!

edito: Solo las funciones con el codigo corregido, si alguno de ustedes tiene una sugerencia de como simplificarlo bienvenida es!!

Última edición por danneg; 02/08/2010 a las 19:47
  #2 (permalink)  
Antiguo 02/08/2010, 19:44
danneg
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: sistema de templates no pasa variables

hola foreros!!

bueno, espero que no me multen por reflotar el tema ya que la vez pasada me dieron 6 puntos de infraccion por eso, haha

bueno, la razon es por que ya esta solucionado mi proble, y agradesco a quienes intentaron ayudarme (en realidad lo agradesco a todos, aunque solo una persona me ayudo)

gracias a un amigo dual.3nigma quien me mostro mi error, bueno, en la funcion showPage debia declarar las variables que utilizo para poder heredar mis datos

bien gracias, solo muestro como lo hice para futuras consultas!!

Etiquetas: variables, template, sitemap
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:58.