Páginas (2): 1 2   
Saydead   10 Aug, 2011, 4:04 pm
#1

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.

define ( 'IN_MYBB' , 1 );
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)

  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.
Gypaete   10 Aug, 2011, 4:09 pm
#2
Sí, te entiendo es muy común, me pasaba.

Puedes usar algo como esto:
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.
Saydead   10 Aug, 2011, 4:23 pm
#3
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.
Gypaete   10 Aug, 2011, 4:28 pm
#4
$mybb->input['action'] es igual a $_GET, por ejemplo esta línea:
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í:
elseif($mybb->request_method == "post" && $mybb->input['action'] == 'Tu_page')

Eso sería más o menos. ¿Algo más? xD
Saydead   10 Aug, 2011, 4:35 pm
#5
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.
Gypaete   10 Aug, 2011, 4:37 pm
#6
Plantillas enteras, como puedes ver:
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.
Saydead   10 Aug, 2011, 4:41 pm
#7
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.
Gypaete   10 Aug, 2011, 4:48 pm
#8
Okas, te funcionará.

Oh, otra forma por si quieres tener un plantilla con un contenido diferente:
<?
$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í:
<html>
<head>
	<title>{$Titulo}</title>
</head>
<body>
{$header}
{$Script}
{$footer}
</body>
</html>

Saydead   10 Aug, 2011, 5:15 pm
#9
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.
Gypaete   10 Aug, 2011, 5:16 pm
#10
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?
Páginas (2): 1 2   
  
Powered By MyBB, © 2002-2025 MyBB Group.
Made with by Curves UI.