[Error]  problemas a crear paginas y colocar una plantilla en ella.
* URL del foro: http://localhost * Versión del foro: 1.6.4 * Actualización: 1.6.4 Hola a todos estoy creando un formulario para poder insertar las...


Hola a todos estoy creando un formulario para poder insertar las noticias y mostrarlas en el portal pero tengo un problema. Creo un nuevo archivo.php y en el agrego esto.

Código PHP:
define 'IN_MYBB' );
require 
"./global.php" ;

add_breadcrumb "news" "news.php" );

eval( 
"\$news = \"" $templates -> get "news" ). "\";" );
output_page $news ); 

Y agrego una plantilla global, y la creo con el nombre news, aquí todo esta bien pero cuando estoy programando en el archivo no puedo colocar la pantillas x que necesito, me explico

cree una plantilla llamada news_insert y le agrege un formulario yo todo eso, y cuando quiero llamar esa plantilla pongo en el archivo.php (news.php el nombre del archivo)

Código PHP:
eval( "\$news_insert = \"" $templates -> get "news_insert" ). "\";" );
  
output_page ($news_insert); 

con esto me muestra la plantilla de new_insert que cree pero me la pone demoforme a esto refiero que se sale del cuerpo del diseño del foro.

no se si me entienden dejo un archivo adjunto de la imagen.

Gracias por la ayuda.

Como ven no puedo trabajar sin oír música xD.
Última modificación: 10 Aug, 2011, 4:06 pm por ermarco.
Sí, te entiendo es muy común, me pasaba.

Puedes usar algo como esto:
Código PHP:
if(!$mybb->input['action'])
{
    eval(
"\$news_insert = \"".$templates->get("news_insert")."\";");
}
elseif(
$mybb->input['action'] == 'Tu_page')
{
    eval(
"\$news_insert = \"".$templates->get("news_form")."\";");
}

output_page($news_insert); 

No sé si lo entiendes pero es una buena forma de hacerlo ó puedes usar exit(); y sólo se vería esa page, tú decides.
Bueno no comprendo muy bien el script, según lo que comprende $mybb->input['action'] identifica la acción de enviar formulario o me equivoco es decir que es igual a poner
if(!$_POST) ??? y sobre el elseif si no entiendo bien, dice que esta extrayendo la plantilla pero no tengo una plantilla formulario ??? me puedes explicar un poco te lo agradecería.

También si puedes explicarme de la forma de la función exit();
Última modificación: 10 Aug, 2011, 4:25 pm por ermarco.
$mybb->input['action'] es igual a $_GET, por ejemplo esta línea:
Código PHP:
elseif($mybb->input['action'] == 'Tu_page'
Sería: TUFORO/news.php?action=Tu_page
Y elseif, es básico xD.

Si quieres utilizar el $post, sería algo así:
Código PHP:
elseif($mybb->request_method == "post" && $mybb->input['action'] == 'Tu_page'

Eso sería más o menos. ¿Algo más? xD
dices que crea plantillas completas a esto me refiero con <html>...</html> y así mostrar plantillas enteras en ves de solo trosos de plantillas o me equivoco ???.
Última modificación: 10 Aug, 2011, 4:38 pm por ermarco.
Plantillas enteras, como puedes ver:
Código PHP:
if(!$mybb->input['action'])
{
    eval(
"\$news_insert = \"".$templates->get("news_insert")."\";");
}
elseif(
$mybb->input['action'] == 'Tu_page')
{
    eval(
"\$news_insert = \"".$templates->get("news_form")."\";");
}

output_page($news_insert); 
Los nombres de la plantilla van cambiando. Tan sólo es agregar las plantillas y listo.
jajaja buena forma de quitar ese problema, no la a vía pensado ya que ni siquiera me podía el $mybb->input['action'] ni el otro, lo voy a probar y aviso.
Okas, te funcionará.

Oh, otra forma por si quieres tener un plantilla con un contenido diferente:
Código PHP:
<?
$Script = '';
if(!$mybb->input['action'])
{
    $Titulo = 'Mi web - Nueva noticia';
    eval("\$Script = \"".$templates->get("news_insert")."\";");
}
elseif($mybb->input['action'] == 'Tu_page')
{
    $Titulo = 'Mi web - Rellenando';
    eval("\$Script = \"".$templates->get("news_form")."\";");
}
eval("\$news_insert = \"".$templates->get("LA_PAGINA_GENERAL")."\";");
output_page($news_insert); 
?>

Y el HTML algo así:
Código:
<html>
<head>
    <title>{$Titulo}</title>
</head>
<body>
{$header}
{$Script}
{$footer}
</body>
</html>
me funciono y en esta ultima, es mucho mas rápida que la otra o es igual ???. por lo que veo insertas trosos de código de las plantillas a la general y pienso que esta sería mas rápida o seria igual a la anterior.
Última modificación: 10 Aug, 2011, 5:16 pm por ermarco.
Sería igual que la anterior, si la cosas es no acumular tantas plantillas, pero igualmente de las dos se consume igual, así que no sabría decirte. Me alegro que te haya servido, ¿Solucionado?