Foros del Web » Creando para Internet » Sistemas de gestión de contenidos »

Style para php | Acerca de plantillas de phpBB

Estas en el tema de Style para php | Acerca de plantillas de phpBB en el foro de Sistemas de gestión de contenidos en Foros del Web. ¿Alguien me podría orientar un poco? No termino de comprender como funcionan las plantillas tipo phpbb, por ejemplo. Como se integran en el php siendo ...
  #1 (permalink)  
Antiguo 13/08/2009, 01:47
Avatar de chechu_  
Fecha de Ingreso: mayo-2007
Mensajes: 282
Antigüedad: 17 años, 6 meses
Puntos: 0
Style para php | Acerca de plantillas de phpBB

¿Alguien me podría orientar un poco? No termino de comprender como funcionan las plantillas tipo phpbb, por ejemplo. Como se integran en el php siendo plantillas en HTML que se sitúan en otro directorio aparte.
  #2 (permalink)  
Antiguo 13/08/2009, 05:58
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 19 años, 2 meses
Puntos: 55
Respuesta: Style para php

lo q haces es tomar las plantillas como un simpel texto y pasarle una expresion regular algo asi

Código html:
Ver original
  1. <div>
  2. <h1>{titulo}</h1>
  3. <p>{descripcion}</p>
  4. </div>

tomas este html y le pasas una ER del tipo

Código php:
Ver original
  1. preg_match_all('/\{([a-z0-9]+)\}/is',$html,$variablesEncotnradas);

y ahora conesas $variablesEncontradas

deberias ir reemplazando

Código php:
Ver original
  1. foreach($variablesEncotnradas as $var){
  2. preg_replace('/\{'.$var.'\}/',$reemplazo);
  3. }


ese es el funcionamiento basico, espero q se entienda
__________________
Degiovanni Emilio
developtus.com
  #3 (permalink)  
Antiguo 13/08/2009, 10:28
Avatar de chechu_  
Fecha de Ingreso: mayo-2007
Mensajes: 282
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: Style para php

Te agradezco el intento, pero creo que me he liado aun más, lo que tú explicas es un sencillo reemplazo ¿no?
  #4 (permalink)  
Antiguo 13/08/2009, 11:16
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: Style para php

Te sugiero que hagas el ejemplo para que puedas entenderlo
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 13/08/2009, 11:52
Avatar de chechu_  
Fecha de Ingreso: mayo-2007
Mensajes: 282
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: Style para php

A ver, sigo liado, debería poder pasar los {contenidos} a un array y después reemplazarlos uno por uno por el contenido deseado ¿no es cierto? pero de esta forma no veo como diferenciarlos, por ejemplo en el caso del idioma.
Código PHP:
$lang = array(    
    
'DAY'    => 'día',
    
'MONTH'    => 'mes',
    
'WEEKS'    => 'semanas',
    );


<
h1>Cuarto {DAY}</h1><p>faltan 3 {WEEKSpara completar el {MONTH}</p
¿Como reemplazo cada uno por el que le corresponde?

Última edición por chechu_; 13/08/2009 a las 14:13
  #6 (permalink)  
Antiguo 13/08/2009, 14:18
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 3 meses
Puntos: 102
Respuesta: Style para php | Acerca de plantillas de phpBB

Entiendo se está preguntando algo muy particular de las plantillas de phpBB y de su implementación y/o utilización.

Tema movido desde PHP y título editado. Suerte
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #7 (permalink)  
Antiguo 13/08/2009, 14:22
Avatar de chechu_  
Fecha de Ingreso: mayo-2007
Mensajes: 282
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: Style para php | Acerca de plantillas de phpBB

Bueno, mi pregunta era como hacer plantillas con php para trabajos propios y he usado el ejemplo de phpbb igual que podía usar vBulletin o tantos otros, pero tú eres el jefe.
  #8 (permalink)  
Antiguo 13/08/2009, 16:25
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 3 meses
Puntos: 102
Respuesta: Style para php | Acerca de plantillas de phpBB

Cita:
Iniciado por chechu_ Ver Mensaje
[...] pero tú eres el jefe.
¡Já!, eso sí que no . Aquí la función de quienes somos moderadores no es más que procurar llevar todo en orden para un buen funcionamiento del foro.

Entendí tu pregunta era con intención a la utilización del sistemas de plantillas de phpBB, el movimiento de foro fue con la intención de aumentar las posibilidades de que alguien te pudiese dar una respuesta; si mal entendí, me disculpo y reporto el tema para que sea regresado al foro de PHP.



Ahora, respecto a cómo hacer, ya te dejaron un ejemplo, solo diferencia que en tu caso es parte la variable es un índice de un arreglo en lugar de una variable, en el fondo es lo mismo: buscar (con expresiones regulares) y reemplazar.

Entonces, entendiendo tu duda original, no sé por qué la complicación. La intención de utilizar plantillas, precisamente, es separar la parte que se encargaría exclusivamente de la presentación de lo que es programación, esto permite separar grupos de trabajo donde unos sin saber ni tener que meterse en la programación se encargarían del diseño y otro enfócandose en la programación sin preocuparse de cómo debería de verse en pantalla. Además de eso, te permite segmentar partes de lo que sería el resultado final permitiendo la reutilización de código, facilitando posibles ajustes y manteniendo un mejor orden y organización.

Hay quienes dicen que PHP es un sistema de templates, y tienen su razón. La naturaleza de PHP es estar embebido dentro de HTML, permitiendo te salir y entrar en "modo PHP" en cualquier parte, por ello el sistema más simple de template en PHP es usar el propio PHP.
Código PHP:
Ver original
  1. <html>
  2. <head>
  3.     <title><?php echo $title; ?></title>
  4. </head>
  5. <body>
  6. <?php echo $contenido; ?>
  7. </body>
  8. </html>

Tiene su variate el utilizar short tags (<?=$variable ?>), pero verás que PHP es ya un sistema de templates.

El problema con esta forma son, 1) su sintaxis complicada y 2) que es "exclusiva" de PHP y al final de emplea código PHP para condicionales y blucles.

Los argumentos para no usar esta forma es que, al haber PHP, se está mezclando parte de la programación en la presentación. Debería evitarse que un diseñador requiera saber aunque sae estos conceptos básicos de PHP. Por ello, surgen formas como las que utiliza phpBB, la de utilizar su propia sintaxis (más simplificada) y hacer el parsearla con PHP.

Código HTML:
Ver original
  1.     <title>{TITLE}</title>
  2. </head>
  3. {CONTENIDO}
  4. </body>
  5. </html>

Además esta forma te permitiría crear un parseador para esta sintaxis en cualquier otro lenguaje ... el diseñador no se mete con el lenguaje de programación. El cómo hacerlo es a base de expresiones regulares como te mostraron antes, en principio es simple, pero el sistema se irá complicando según las características vayan incrementándose (bloques, condicionales, bucles, caché ..., escapado de caracteres, filtros ... etc.)

Reinventar la rueda es, en principio, mala idea. La pregunta común sería como utilizar un sistema de templates, no tanto cómo lo hacen, para ello siempre puedes ir a su código fuente.

Quizá te interese observar/estudiar un sistema simple, como lo es NokTemplate desarrollado por un hispano-hablante de características simples y funciones básicas. Perfecto para curiosear ... que, por lo demás, la misma respuesta: es PHP, es un parseador, son expresiones regulares.

Un saludo
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #9 (permalink)  
Antiguo 13/08/2009, 23:27
 
Fecha de Ingreso: enero-2008
Ubicación: Estado de México, México
Mensajes: 476
Antigüedad: 16 años, 10 meses
Puntos: 11
Respuesta: Style para php | Acerca de plantillas de phpBB

bueno mira tu creas tus variables en php y todo lo pones en el html ejemplo:

viewtopic.php
ok de este archivo los templates se ponen con arrays en los cuales metes las variables ejemplo:

Código php:
Ver original
  1. // Send vars to template
  2. $template->assign_vars(array(
  3.     'FORUM_ID'      => $forum_id,
  4.     'FORUM_NAME'    => $topic_data['forum_name'],
  5.     'FORUM_DESC'    => generate_text_for_display($topic_data['forum_desc'], $topic_data['forum_desc_uid'], $topic_data['forum_desc_bitfield'], $topic_data['forum_desc_options']),
  6.     'TOPIC_ID'      => $topic_id,
  7.     'TOPIC_TITLE'   => $topic_data['topic_title'],
  8.     'TOPIC_POSTER'  => $topic_data['topic_poster'],
  9.  
  10.     'TOPIC_AUTHOR_FULL'     => get_username_string('full', $topic_data['topic_poster'], $topic_data['topic_first_poster_name'], $topic_data['topic_first_poster_colour']),
  11.     'TOPIC_AUTHOR_COLOUR'   => get_username_string('colour', $topic_data['topic_poster'], $topic_data['topic_first_poster_name'], $topic_data['topic_first_poster_colour']),
  12.     'TOPIC_AUTHOR'          => get_username_string('username', $topic_data['topic_poster'], $topic_data['topic_first_poster_name'], $topic_data['topic_first_poster_colour']),
  13.  
  14.     'PAGINATION'    => $pagination,
  15.     'PAGE_NUMBER'   => on_page($total_posts, $config['posts_per_page'], $start),
  16.     'TOTAL_POSTS'   => ($total_posts == 1) ? $user->lang['VIEW_TOPIC_POST'] : sprintf($user->lang['VIEW_TOPIC_POSTS'], $total_posts),
  17.     'U_MCP'         => ($auth->acl_get('m_', $forum_id)) ? append_sid("{$phpbb_root_path}mcp.$phpEx", "i=main&amp;mode=topic_view&amp;f=$forum_id&amp;t=$topic_id&amp;start=$start" . ((strlen($u_sort_param)) ? "&amp;$u_sort_param" : ''), true, $user->session_id) : '',
  18.     'MODERATORS'    => (isset($forum_moderators[$forum_id]) && sizeof($forum_moderators[$forum_id])) ? implode(', ', $forum_moderators[$forum_id]) : '',
  19.  
  20.     'POST_IMG'          => ($topic_data['forum_status'] == ITEM_LOCKED) ? $user->img('button_topic_locked', 'FORUM_LOCKED') : $user->img('button_topic_new', 'POST_NEW_TOPIC'),
  21.     'QUOTE_IMG'         => $user->img('icon_post_quote', 'REPLY_WITH_QUOTE'),
  22.     'REPLY_IMG'         => ($topic_data['forum_status'] == ITEM_LOCKED || $topic_data['topic_status'] == ITEM_LOCKED) ? $user->img('button_topic_locked', 'TOPIC_LOCKED') : $user->img('button_topic_reply', 'REPLY_TO_TOPIC'),
  23.     'EDIT_IMG'          => $user->img('icon_post_edit', 'EDIT_POST'),
  24.     'DELETE_IMG'        => $user->img('icon_post_delete', 'DELETE_POST'),
  25.     'INFO_IMG'          => $user->img('icon_post_info', 'VIEW_INFO'),
  26.     'PROFILE_IMG'       => $user->img('icon_user_profile', 'READ_PROFILE'),
  27.     'SEARCH_IMG'        => $user->img('icon_user_search', 'SEARCH_USER_POSTS'),
  28.     'PM_IMG'            => $user->img('icon_contact_pm', 'SEND_PRIVATE_MESSAGE'),
  29.     'EMAIL_IMG'         => $user->img('icon_contact_email', 'SEND_EMAIL'),
  30.     'WWW_IMG'           => $user->img('icon_contact_www', 'VISIT_WEBSITE'),
  31.     'ICQ_IMG'           => $user->img('icon_contact_icq', 'ICQ'),
  32.     'AIM_IMG'           => $user->img('icon_contact_aim', 'AIM'),
  33.     'MSN_IMG'           => $user->img('icon_contact_msnm', 'MSNM'),
  34.     'YIM_IMG'           => $user->img('icon_contact_yahoo', 'YIM'),
  35.     'JABBER_IMG'        => $user->img('icon_contact_jabber', 'JABBER') ,
  36.     'REPORT_IMG'        => $user->img('icon_post_report', 'REPORT_POST'),
  37.     'REPORTED_IMG'      => $user->img('icon_topic_reported', 'POST_REPORTED'),
  38.     'UNAPPROVED_IMG'    => $user->img('icon_topic_unapproved', 'POST_UNAPPROVED'),
  39.     'WARN_IMG'          => $user->img('icon_user_warn', 'WARN_USER'),
  40.  
  41.     'S_IS_LOCKED'           =>($topic_data['topic_status'] == ITEM_UNLOCKED) ? false : true,
  42.     'S_SELECT_SORT_DIR'     => $s_sort_dir,
  43.     'S_SELECT_SORT_KEY'     => $s_sort_key,
  44.     'S_SELECT_SORT_DAYS'    => $s_limit_days,
  45.     'S_SINGLE_MODERATOR'    => (!empty($forum_moderators[$forum_id]) && sizeof($forum_moderators[$forum_id]) > 1) ? false : true,
  46.     'S_TOPIC_ACTION'        => append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&amp;t=$topic_id&amp;start=$start"),
  47.     'S_TOPIC_MOD'           => ($topic_mod != '') ? '<select name="action" id="quick-mod-select">' . $topic_mod . '</select>' : '',
  48.     'S_MOD_ACTION'          => append_sid("{$phpbb_root_path}mcp.$phpEx", "f=$forum_id&amp;t=$topic_id&amp;start=$start&amp;quickmod=1&amp;redirect=" . urlencode(str_replace('&amp;', '&', $viewtopic_url)), true, $user->session_id),
  49.  
  50.     'S_VIEWTOPIC'           => true,
  51.     'S_DISPLAY_SEARCHBOX'   => ($auth->acl_get('u_search') && $auth->acl_get('f_search', $forum_id) && $config['load_search']) ? true : false,
  52.     'S_SEARCHBOX_ACTION'    => append_sid("{$phpbb_root_path}search.$phpEx", 't=' . $topic_id),
  53.  
  54.     'S_DISPLAY_POST_INFO'   => ($topic_data['forum_type'] == FORUM_POST && ($auth->acl_get('f_post', $forum_id) || $user->data['user_id'] == ANONYMOUS)) ? true : false,
  55.     'S_DISPLAY_REPLY_INFO'  => ($topic_data['forum_type'] == FORUM_POST && ($auth->acl_get('f_reply', $forum_id) || $user->data['user_id'] == ANONYMOUS)) ? true : false,
  56.  
  57.     'U_TOPIC'               => "{$server_path}viewtopic.$phpEx?f=$forum_id&amp;t=$topic_id",
  58.     'U_FORUM'               => $server_path,
  59.     'U_VIEW_TOPIC'          => $viewtopic_url,
  60.     'U_VIEW_FORUM'          => append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $forum_id),
  61.     'U_VIEW_OLDER_TOPIC'    => append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&amp;t=$topic_id&amp;view=previous"),
  62.     'U_VIEW_NEWER_TOPIC'    => append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&amp;t=$topic_id&amp;view=next"),
  63.     'U_PRINT_TOPIC'         => ($auth->acl_get('f_print', $forum_id)) ? $viewtopic_url . '&amp;view=print' : '',
  64.     'U_EMAIL_TOPIC'         => ($auth->acl_get('f_email', $forum_id) && $config['email_enable']) ? append_sid("{$phpbb_root_path}memberlist.$phpEx", "mode=email&amp;t=$topic_id") : '',
  65.  
  66.     'U_WATCH_TOPIC'         => $s_watching_topic['link'],
  67.     'L_WATCH_TOPIC'         => $s_watching_topic['title'],
  68.     'S_WATCHING_TOPIC'      => $s_watching_topic['is_watching'],
  69.  
  70.     'U_BOOKMARK_TOPIC'      => ($user->data['is_registered'] && $config['allow_bookmarks']) ? $viewtopic_url . '&amp;bookmark=1&amp;hash=' . generate_link_hash("topic_$topic_id") : '',
  71.     'L_BOOKMARK_TOPIC'      => ($user->data['is_registered'] && $config['allow_bookmarks'] && $topic_data['bookmarked']) ? $user->lang['BOOKMARK_TOPIC_REMOVE'] : $user->lang['BOOKMARK_TOPIC'],
  72.  
  73.     'U_POST_NEW_TOPIC'      => ($auth->acl_get('f_post', $forum_id) || $user->data['user_id'] == ANONYMOUS) ? append_sid("{$phpbb_root_path}posting.$phpEx", "mode=post&amp;f=$forum_id") : '',
  74.     'U_POST_REPLY_TOPIC'    => ($auth->acl_get('f_reply', $forum_id) || $user->data['user_id'] == ANONYMOUS) ? append_sid("{$phpbb_root_path}posting.$phpEx", "mode=reply&amp;f=$forum_id&amp;t=$topic_id") : '',
  75.     'U_BUMP_TOPIC'          => (bump_topic_allowed($forum_id, $topic_data['topic_bumped'], $topic_data['topic_last_post_time'], $topic_data['topic_poster'], $topic_data['topic_last_poster_id'])) ? append_sid("{$phpbb_root_path}posting.$phpEx", "mode=bump&amp;f=$forum_id&amp;t=$topic_id&amp;hash=" . generate_link_hash("topic_$topic_id")) : '')
  76. );

esas variables las pones en el html y se muestra en pantallas la funcion que esta despues del "=>" ahora como sabe viewtopic que debe de cargar el archivo viewtopic_body.html de la carpeta templates, facil:

Código php:
Ver original
  1. $template->set_filenames(array(
  2.     'body' => ($view == 'print') ? 'viewtopic_print.html' : 'viewtopic_body.html')
  3. );

y te preguntaras como meto las variables que mencionaste antes en el html ok aqui te dejo un ejemplo:

viewtopic.php tiene esta variable dentro de su codigo:

Código php:
Ver original
  1. 'FORUM_DESC'    => generate_text_for_display($topic_data['forum_desc'], $topic_data['forum_desc_uid'], $topic_data['forum_desc_bitfield'], $topic_data['forum_desc_options']),

y en viewtopic_body.html lo vemos asi:

Código html:
Ver original
  1. <!-- IF FORUM_DESC --><span style="display: none">{FORUM_DESC}<br /></span><!-- ENDIF -->

y bueno basicamente asi es como phpBB llama sus styles en html, alguna duda?
__________________
"Si necesitas ayuda para tu foro en phpBB solo buscanos en google como montatuforo y la obtendras"
  #10 (permalink)  
Antiguo 13/08/2009, 23:28
 
Fecha de Ingreso: enero-2008
Ubicación: Estado de México, México
Mensajes: 476
Antigüedad: 16 años, 10 meses
Puntos: 11
Respuesta: Style para php | Acerca de plantillas de phpBB

bueno mira tu creas tus variables en php y todo lo pones en el html ejemplo:

viewtopic.php
ok de este archivo los templates se ponen con arrays en los cuales metes las variables ejemplo:

Código php:
Ver original
  1. // Send vars to template
  2. $template->assign_vars(array(
  3.     'FORUM_ID'      => $forum_id,
  4.     'FORUM_NAME'    => $topic_data['forum_name'],
  5.     'FORUM_DESC'    => generate_text_for_display($topic_data['forum_desc'], $topic_data['forum_desc_uid'], $topic_data['forum_desc_bitfield'], $topic_data['forum_desc_options']),
  6.     'TOPIC_ID'      => $topic_id,
  7.     'TOPIC_TITLE'   => $topic_data['topic_title'],
  8.     'TOPIC_POSTER'  => $topic_data['topic_poster'],
  9.  
  10.     'TOPIC_AUTHOR_FULL'     => get_username_string('full', $topic_data['topic_poster'], $topic_data['topic_first_poster_name'], $topic_data['topic_first_poster_colour']),
  11.     'TOPIC_AUTHOR_COLOUR'   => get_username_string('colour', $topic_data['topic_poster'], $topic_data['topic_first_poster_name'], $topic_data['topic_first_poster_colour']),
  12.     'TOPIC_AUTHOR'          => get_username_string('username', $topic_data['topic_poster'], $topic_data['topic_first_poster_name'], $topic_data['topic_first_poster_colour']),
  13.  
  14.     'PAGINATION'    => $pagination,
  15.     'PAGE_NUMBER'   => on_page($total_posts, $config['posts_per_page'], $start),
  16.     'TOTAL_POSTS'   => ($total_posts == 1) ? $user->lang['VIEW_TOPIC_POST'] : sprintf($user->lang['VIEW_TOPIC_POSTS'], $total_posts),
  17.     'U_MCP'         => ($auth->acl_get('m_', $forum_id)) ? append_sid("{$phpbb_root_path}mcp.$phpEx", "i=main&amp;mode=topic_view&amp;f=$forum_id&amp;t=$topic_id&amp;start=$start" . ((strlen($u_sort_param)) ? "&amp;$u_sort_param" : ''), true, $user->session_id) : '',
  18.     'MODERATORS'    => (isset($forum_moderators[$forum_id]) && sizeof($forum_moderators[$forum_id])) ? implode(', ', $forum_moderators[$forum_id]) : '',
  19.  
  20.     'POST_IMG'          => ($topic_data['forum_status'] == ITEM_LOCKED) ? $user->img('button_topic_locked', 'FORUM_LOCKED') : $user->img('button_topic_new', 'POST_NEW_TOPIC'),
  21.     'QUOTE_IMG'         => $user->img('icon_post_quote', 'REPLY_WITH_QUOTE'),
  22.     'REPLY_IMG'         => ($topic_data['forum_status'] == ITEM_LOCKED || $topic_data['topic_status'] == ITEM_LOCKED) ? $user->img('button_topic_locked', 'TOPIC_LOCKED') : $user->img('button_topic_reply', 'REPLY_TO_TOPIC'),
  23.     'EDIT_IMG'          => $user->img('icon_post_edit', 'EDIT_POST'),
  24.     'DELETE_IMG'        => $user->img('icon_post_delete', 'DELETE_POST'),
  25.     'INFO_IMG'          => $user->img('icon_post_info', 'VIEW_INFO'),
  26.     'PROFILE_IMG'       => $user->img('icon_user_profile', 'READ_PROFILE'),
  27.     'SEARCH_IMG'        => $user->img('icon_user_search', 'SEARCH_USER_POSTS'),
  28.     'PM_IMG'            => $user->img('icon_contact_pm', 'SEND_PRIVATE_MESSAGE'),
  29.     'EMAIL_IMG'         => $user->img('icon_contact_email', 'SEND_EMAIL'),
  30.     'WWW_IMG'           => $user->img('icon_contact_www', 'VISIT_WEBSITE'),
  31.     'ICQ_IMG'           => $user->img('icon_contact_icq', 'ICQ'),
  32.     'AIM_IMG'           => $user->img('icon_contact_aim', 'AIM'),
  33.     'MSN_IMG'           => $user->img('icon_contact_msnm', 'MSNM'),
  34.     'YIM_IMG'           => $user->img('icon_contact_yahoo', 'YIM'),
  35.     'JABBER_IMG'        => $user->img('icon_contact_jabber', 'JABBER') ,
  36.     'REPORT_IMG'        => $user->img('icon_post_report', 'REPORT_POST'),
  37.     'REPORTED_IMG'      => $user->img('icon_topic_reported', 'POST_REPORTED'),
  38.     'UNAPPROVED_IMG'    => $user->img('icon_topic_unapproved', 'POST_UNAPPROVED'),
  39.     'WARN_IMG'          => $user->img('icon_user_warn', 'WARN_USER'),
  40.  
  41.     'S_IS_LOCKED'           =>($topic_data['topic_status'] == ITEM_UNLOCKED) ? false : true,
  42.     'S_SELECT_SORT_DIR'     => $s_sort_dir,
  43.     'S_SELECT_SORT_KEY'     => $s_sort_key,
  44.     'S_SELECT_SORT_DAYS'    => $s_limit_days,
  45.     'S_SINGLE_MODERATOR'    => (!empty($forum_moderators[$forum_id]) && sizeof($forum_moderators[$forum_id]) > 1) ? false : true,
  46.     'S_TOPIC_ACTION'        => append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&amp;t=$topic_id&amp;start=$start"),
  47.     'S_TOPIC_MOD'           => ($topic_mod != '') ? '<select name="action" id="quick-mod-select">' . $topic_mod . '</select>' : '',
  48.     'S_MOD_ACTION'          => append_sid("{$phpbb_root_path}mcp.$phpEx", "f=$forum_id&amp;t=$topic_id&amp;start=$start&amp;quickmod=1&amp;redirect=" . urlencode(str_replace('&amp;', '&', $viewtopic_url)), true, $user->session_id),
  49.  
  50.     'S_VIEWTOPIC'           => true,
  51.     'S_DISPLAY_SEARCHBOX'   => ($auth->acl_get('u_search') && $auth->acl_get('f_search', $forum_id) && $config['load_search']) ? true : false,
  52.     'S_SEARCHBOX_ACTION'    => append_sid("{$phpbb_root_path}search.$phpEx", 't=' . $topic_id),
  53.  
  54.     'S_DISPLAY_POST_INFO'   => ($topic_data['forum_type'] == FORUM_POST && ($auth->acl_get('f_post', $forum_id) || $user->data['user_id'] == ANONYMOUS)) ? true : false,
  55.     'S_DISPLAY_REPLY_INFO'  => ($topic_data['forum_type'] == FORUM_POST && ($auth->acl_get('f_reply', $forum_id) || $user->data['user_id'] == ANONYMOUS)) ? true : false,
  56.  
  57.     'U_TOPIC'               => "{$server_path}viewtopic.$phpEx?f=$forum_id&amp;t=$topic_id",
  58.     'U_FORUM'               => $server_path,
  59.     'U_VIEW_TOPIC'          => $viewtopic_url,
  60.     'U_VIEW_FORUM'          => append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $forum_id),
  61.     'U_VIEW_OLDER_TOPIC'    => append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&amp;t=$topic_id&amp;view=previous"),
  62.     'U_VIEW_NEWER_TOPIC'    => append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&amp;t=$topic_id&amp;view=next"),
  63.     'U_PRINT_TOPIC'         => ($auth->acl_get('f_print', $forum_id)) ? $viewtopic_url . '&amp;view=print' : '',
  64.     'U_EMAIL_TOPIC'         => ($auth->acl_get('f_email', $forum_id) && $config['email_enable']) ? append_sid("{$phpbb_root_path}memberlist.$phpEx", "mode=email&amp;t=$topic_id") : '',
  65.  
  66.     'U_WATCH_TOPIC'         => $s_watching_topic['link'],
  67.     'L_WATCH_TOPIC'         => $s_watching_topic['title'],
  68.     'S_WATCHING_TOPIC'      => $s_watching_topic['is_watching'],
  69.  
  70.     'U_BOOKMARK_TOPIC'      => ($user->data['is_registered'] && $config['allow_bookmarks']) ? $viewtopic_url . '&amp;bookmark=1&amp;hash=' . generate_link_hash("topic_$topic_id") : '',
  71.     'L_BOOKMARK_TOPIC'      => ($user->data['is_registered'] && $config['allow_bookmarks'] && $topic_data['bookmarked']) ? $user->lang['BOOKMARK_TOPIC_REMOVE'] : $user->lang['BOOKMARK_TOPIC'],
  72.  
  73.     'U_POST_NEW_TOPIC'      => ($auth->acl_get('f_post', $forum_id) || $user->data['user_id'] == ANONYMOUS) ? append_sid("{$phpbb_root_path}posting.$phpEx", "mode=post&amp;f=$forum_id") : '',
  74.     'U_POST_REPLY_TOPIC'    => ($auth->acl_get('f_reply', $forum_id) || $user->data['user_id'] == ANONYMOUS) ? append_sid("{$phpbb_root_path}posting.$phpEx", "mode=reply&amp;f=$forum_id&amp;t=$topic_id") : '',
  75.     'U_BUMP_TOPIC'          => (bump_topic_allowed($forum_id, $topic_data['topic_bumped'], $topic_data['topic_last_post_time'], $topic_data['topic_poster'], $topic_data['topic_last_poster_id'])) ? append_sid("{$phpbb_root_path}posting.$phpEx", "mode=bump&amp;f=$forum_id&amp;t=$topic_id&amp;hash=" . generate_link_hash("topic_$topic_id")) : '')
  76. );

esas variables las pones en el html y se muestra en pantallas la funcion que esta despues del "=>" ahora como sabe viewtopic que debe de cargar el archivo viewtopic_body.html de la carpeta templates, facil:

Código php:
Ver original
  1. $template->set_filenames(array(
  2.     'body' => ($view == 'print') ? 'viewtopic_print.html' : 'viewtopic_body.html')
  3. );

y te preguntaras como meto las variables que mencionaste antes en el html ok aqui te dejo un ejemplo:

viewtopic.php tiene esta variable dentro de su codigo:

Código php:
Ver original
  1. 'FORUM_DESC'    => generate_text_for_display($topic_data['forum_desc'], $topic_data['forum_desc_uid'], $topic_data['forum_desc_bitfield'], $topic_data['forum_desc_options']),

y en viewtopic_body.html lo vemos asi:

Código html:
Ver original
  1. <!-- IF FORUM_DESC --><span style="display: none">{FORUM_DESC}<br /></span><!-- ENDIF -->

y bueno basicamente asi es como phpBB llama sus styles en html, alguna duda?
__________________
"Si necesitas ayuda para tu foro en phpBB solo buscanos en google como montatuforo y la obtendras"
  #11 (permalink)  
Antiguo 14/08/2009, 05:03
Avatar de chechu_  
Fecha de Ingreso: mayo-2007
Mensajes: 282
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: Style para php | Acerca de plantillas de phpBB

A ver, Creo que he comprendido la idea, pero no veo como hacerlo, tenemos esto (por ejemplo).

Código PHP:
$html="<h1>Cuarto {DAY}</h1><p>faltan 3 {WEEKS} para completar el {MONTH}</p>";

$lang = array(
    
'DAY'          => 'dia',
    
'MONTH'    => 'mes',
    
'WEEKS'    => 'semanas',
    );

preg_match_all ('/\{(.*?)\}/'$html$coincidencias);

print_r ($coincidencias[1]); 
Para poder reemplazar los {contenidos} debería tener un array con el nombre de dicho contenido ¿no? Por ejemplo.
$coincidencias[contenidos]
O en este ejemplo seria
$coincidencias[DAY] o $coincidencias[MONTH]

No sé, creo que he captado la idea de reemplazar los contenidos, pero no veo la forma de hacerlo en práctica.
  #12 (permalink)  
Antiguo 14/08/2009, 07:19
Avatar de chechu_  
Fecha de Ingreso: mayo-2007
Mensajes: 282
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: Style para php | Acerca de plantillas de phpBB

A ver si consigo explicarme.

Código PHP:
$html="<h1>Cuarto {/DAY/}</h1><p>faltan 3 {/WEEKS/} para completar el {/MONTH/}</p>";

$lang = array(    
    
'DAY'    => 'dia',
    
'MONTH'    => 'mes',
    
'WEEKS'    => 'semanas',
    );

preg_match_all ('/\{([a-z0-9]+)\}/is'$html$coincidencias);



echo 
preg_replace($coincidencias[0], $lang$html); 
La idea es que el resultado final sea:
Cuarto {día}
Faltan 3 {semanas} para completar el {mes}

y el resultado obtenido es
Cuarto {dia}
faltan 3 {mes} para completar el {semanas}

Última edición por chechu_; 14/08/2009 a las 09:07
  #13 (permalink)  
Antiguo 14/08/2009, 10:05
Avatar de chechu_  
Fecha de Ingreso: mayo-2007
Mensajes: 282
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: Style para php | Acerca de plantillas de phpBB

Bueno, ya lo he comprendido y lo he conseguido realizar en prácticas, muchísimas gracias a todos por la ayuda , soy un poco duro .

Última edición por chechu_; 14/08/2009 a las 13:13
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 22:10.