este tutorial es válidao para versiones 1.1.x y 2.0
para agregar paginas a smf se necesitan dos archivos, uno en Sources y un template que se subirá a /Themes/default/
primero, nos vamos a nuestro archivo index.php , y buscamos esto:
'activate' => array('Register.php', 'Activate'),
y despues agregamos esto:
'nombre de tu pagina' => array('Pagina.php', 'Pagina'), cambiandolo por lo que quieras ponerle, por ejemplo, vamos a hacer una pagina que se llame afiliados:
'afiliados' => array('Afiliados.php', 'Afiliados'),
luego creamos un archivo llamado Afiliados.php y lo subimos a la carpeta /Sources con lo siguiente:
<?php
if (!defined('SMF'))
die('Hacking attempt...');
function Afiliados() { //cambiamos el afiliados por el nombre de nuestra pagina
global $context;
$context['page_title'] = 'el titulo de mi pagina'; //este será el título que aparecera en tu página
// necesitamos llamar a el template
loadTemplate('Afiliados'); // aquí también cambiamos el nombre con el de la página que estés haciendo
}
?>
en esta página puedes poner todas tus funciones que vayas a necesitar en tu página, de esta manera te evitas de poner querys u otras funciones directamente en los archivos template.
luego creamos un archivo template con el nombre Mipaginaa.template.php <= es importante que escribas el nombre con mayúscula y le agregues el .template
y lo subimos a /Themes/default/ con lo siguiente:
<?php
function template_main()
{
global $context, $settings, $options, $txt, $scripturl;
echo '
<table width="100%" border="0" cellspacing="0" cellpadding="3" >
<tr>
<td>', theme_linktree(), '</td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="4" align="center" class="tborder">
<tr class="titlebg">
<td align="center" >mi pagina</td>
</tr><tr>
<td class="windowbg">';
echo '<table border="0" cellpadding="0" cellspacing="3" width="100%">
<tr>
<td width="100%" valign="top">
aqui va mi contenido
</td></tr></table>';
echo '
</td>
</tr>
</table><br /><br />
';
}
?>
este es un ejemplo para 1.1.11 con tablas, pero puedes poner lo que tu quieras dentro del echo ' ';
y listo, ya tienes tu pagina, ahora simplemente la llamas asi: misitio.com/index.php?action=afiliados o el nombre que le diste a tu pagina
que bueno que lo pusieron como tutorial.
si a muchos les servira.. excelente mirahalo
gracias por el aporte :)
Buenísimo el aporte (Y)
Funciona sobre smf 2.0 Rc X ?
Quote from: 130860 on March 16, 2010, 11:25:49 AM
este tutorial es válidao para versiones 1.1.x y 2.0
como lo señalo al comienzo de el tutorial, si, si es compatible.
Quote from: 130860 on March 29, 2010, 08:22:23 PM
Quote from: 130860 on March 16, 2010, 11:25:49 AM
este tutorial es válidao para versiones 1.1.x y 2.0
como lo señalo al comienzo de el tutorial, si, si es compatible.
(http://i44.tinypic.com/2q8vzw2.jpg)
disculpa si mi pregunta es algo tonta, pero es que en ediccion de estos foros soy un noob aun, primero
'activate' => array('Register.php', 'Activate'),
active es el nombre de la variable verdad?
y Register.php es nombre con el cual llamare el url verdad? ejemeplo.
www.miforo.como/foro/register.php
si cambio el nombre
'activate' => array('Register.php', 'Activate'),
a
'activate' => array('duda.php', 'Activate'),
entonces sera
www.miforo.como/foro/duda.php
verdad?
Gracias man, por el manual. :)
si, son tres las variables que se manejan:
'activate' => array('Register.php', 'Activate'),
'activate' => es el nombre que tendra tu pagina al llamarla, por ejemplo, con este ejemplo para llamar a tu pagina lo haras asi: misitio.com/foro/index.php?action=activate
array('Register.php', el Register es el nombre de tu archivo donde pondras tus querys, funciones y demas, si no vas a poner querys o funciones solo basta con poner lo que puse al inicio de tutorial para llamar a el template correspondiente. este archivo lo tendras que subir a tu carpeta Sources.
'Activate'), es el nombre de tu pagina y el del template, por ejemplo quedaria Activate.template.php y lo tienes que subir a /Themes/default/
excelente tuto mirahalo, nose si lo has aclarado pero estaria bueno que explicaras esta parte para que no halla confusiones
'activate' => array('Register.php', 'Activate'),
'activate' (Nombre de la accion)
'Register.php' (Archivo sources)
'Activate' (Nombre de la funcion a llamar)
Saludos y buen tuto de nuevo ^^
según yo lo expliqué en el post anterior a el tuyo ;)
Ok man, solo por el tercer punto lo decia.
Saludos ^^
Que pasa si tengo muchos botones/pestañas/enlaces en el menu, se deformara¿?
si, por que depende de tu theme, pero si, se deformara si agregas demasiados, dependera de las resoluciones de el monitor de cada usuario que tengas
Hola
Ya hice tal cual como dice el tutorial, mi consulta es que si lo activas y luego aparece la misma direccion de tu pagina misitio.com/index.php?action=afiliados
Nada mas?
O como aparece? Si esta bien instalado el tutorial?
si tu pagina se llama afiliados entonces si, tienes que llamarla asi, por ejemplo, al hacer un boton pones el enlace asi misitio.com/index.php?action=afiliados
SI eso hice, solo aparece mi foro de nuevo nomas?
Vendria a ser un enlace mas para el foro pero con diferente nombre?
a que te refieres, no logro entenderte, la direcicon es esa, si acedes a esa direccion aparecera lo que sea que hayas puesto en el template Afiliados.templete.php
si no pusiste nada ahi entonces solo te aparecera la cabecera y el footer de tu foro.
no e sun enlace mas, es un pagina, en esa pagina tu le agregas lo que tu quieras agregarle.
Gracias, es que yo no le habia agregado nada y entonces al poner la url como dice el tutorial, me salia el foro tal cual como esta.
En que parte le puedo agregar cosas o algo senccillo para ir viendo como puedo ir agregando?
Y luego para aplicar esa URL con un boton, por ejemplo a pie de pagina, como se debe hacer?
el tutorial explica a detalle cual es el archivo que peudes modificar para agregar contenido, por favor, leelo detenidamente.
para el boton, es un simple enlace, ponlo entre [url]miforo.com/index.php?action=afiliados[/url]
Quote from: 130860 on June 06, 2010, 05:31:12 PM
el tutorial explica a detalle cual es el archivo que peudes modificar para agregar contenido, por favor, leelo detenidamente.
para el boton, es un simple enlace, ponlo entre [url]miforo.com/index.php?action=afiliados[/url]
Es que si lo he leido, solo te habia pedido una funcion de codigo para ver como aplica los cambios
Gracias.
simplemente copia y pega el tutorial y listo, ahi esta tu ejemplo.
Quote from: 130860 on June 07, 2010, 10:34:37 AM
simplemente copia y pega el tutorial y listo, ahi esta tu ejemplo.
Eso ya lo habia hecho. Y dije tambien que solo aparece el foro pero con otra direccion de url.
Me entendes 130860?
no estas haciendo lo que dice el tutorial, el tutorial dice que hay que crear dos archivos uno en sources y otro con nombre:
mipagina.template.php que va en themes-default-
con esto:
<?phpfunction template_main(){global $context, $settings, $options, $txt, $scripturl;echo '<table width="100%" border="0" cellspacing="0" cellpadding="3" ><tr><td>', theme_linktree(), '</td></tr></table><table width="100%" border="0" cellspacing="0" cellpadding="4" align="center" class="tborder"><tr class="titlebg"><td align="center" >mi pagina</td></tr><tr><td class="windowbg">'; echo '<table border="0" cellpadding="0" cellspacing="3" width="100%"> <tr> <td width="100%" valign="top"> aqui va mi contenido </td></tr></table>';echo '</td></tr></table><br /><br />';}?>
fijate que ya te pone todo, solo falta cambiar lo de aqui mi contenido por lo que tu quieras que salga o quitar tosa la tabla y poner lo que tu quieras la tabla solo es un ejemplo
Quote from: Suki on June 12, 2010, 09:50:34 PM
no estas haciendo lo que dice el tutorial, el tutorial dice que hay que crear dos archivos uno en sources y otro con nombre:
mipagina.template.php que va en themes-default-
con esto:
<?phpfunction template_main(){global $context, $settings, $options, $txt, $scripturl;echo '<table width="100%" border="0" cellspacing="0" cellpadding="3" ><tr><td>', theme_linktree(), '</td></tr></table><table width="100%" border="0" cellspacing="0" cellpadding="4" align="center" class="tborder"><tr class="titlebg"><td align="center" >mi pagina</td></tr><tr><td class="windowbg">'; echo '<table border="0" cellpadding="0" cellspacing="3" width="100%"> <tr> <td width="100%" valign="top"> aqui va mi contenido </td></tr></table>';echo '</td></tr></table><br /><br />';}?>
fijate que ya te pone todo, solo falta cambiar lo de aqui mi contenido por lo que tu quieras que salga o quitar tosa la tabla y poner lo que tu quieras la tabla solo es un ejemplo
Gracias suki, lo estaba haciendo mal.
Con este sistema se podria hacer que el boton llevase a una nueva pagina embebida en un iframe con la plantilla del foro
cual boton? aqui es para agregar páginas, no botones, hay un tutorial aparte para crear botones.
Bueno la pregunta sigue siendo valida si quitamos lo de boton ¿Podría agregar una página que carge en un frame por ejemplo con la instrucción iframe.
Saludos
puedes crear una pagina con un iframe adentro si eso es a lo que te refieres.
Hola amigo, tengo una duda.
Porque mas que me canso de buscar en mi foro 2.0 RC3, en el archivo index o index template no encuentro nada de activate.
Como se llama ahora
activate?
Osea la primera parte del tuto.
primero, nos vamos a nuestro archivo index.php , y buscamos esto:
'activate' => array('Register.php', 'Activate'),
y despues agregamos esto:
'nombre de tu pagina' => array('Pagina.php', 'Pagina'), cambiandolo por lo que quieras ponerle, por ejemplo, vamos a hacer una pagina que se llame afiliados:
:)
el array sigue siendo el mismo...
index.php
$actionArray = array(
'activate' => array('Register.php', 'Activate'),
pero esto es lo que sale en el index.php
<?php
// Try to handle it with the upper level index.php. (it should know what to do.)
if (file_exists(dirname(dirname(__FILE__)) . '/index.php'))
include (dirname(dirname(__FILE__)) . '/index.php');
'ReportaLink' => array('ReportarLink.php', 'ReportarLink'),
else
exit;
?>
estas en otra carpeta....
El index.php es el archivo que está en la misma carpeta que tu archivo SSI.php y Settings.php
Hola ahora si halle el index que me decia y hice lo demas un php en sources y el otro en el default del foro pero no habre la pagina
esto es lo que me sle
Not Found
The requested URL /Forum/ReportaLink.php was not found on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
Es mas copie y pegue haber si erra un error de yo al escribir los nombre de la pagina o variables y nada
no carga
la página NO es /ReportarLink......
la página va a ser llamada desde el index.php:
index.php?action=reportarpagina
o cualquiera que haya sido l nombre que le hayas puesto, por favor, vuelve a leer el tutorial detenidamente, ahí se explica la forma de llamar a tu página.
uy en verdad me disculpo por no haber leido la ultima parte que es donde dice como se llama. Pero ahora tengo una ultima pregunta y en verdad dejo de molestar. Como puedo hacer para que la pagina sea idependiente, osea se abra en una nueva pagina, y solo sea el formulario sin la plantilla de mi foro. Solo sea el formulario y listo.
Saludos
para que tu página sea independiente lo unico que tienes que hacer es crear tu página en html o en php desde cero y subirla a tu servidor... la subes en una carpeta "formulario" y la llamas desde misitio.com/formulario/index.php y listo tienes tu pagina independiente...
Esta es la respuesta que busco, Muchas gracias por todos ;D
Hola, a ver si alguien me puede ayudar por favor, no sé si se me está pasando algo por encima o no es compatible mi theme u otra cosa, la verdad es que estoy bloqueado, he revisado y no encuentro dónde puede estar el error.
Uso SMF 2.0
cuando entro en la página:
http://www.asistenciaexperta.com/index.php?action=comparador
Me aparece:
¡Un error ha ocurrido!
No se pudo cargar la plantilla 'comparador'.
Los pasos que he seguido han sido estos:
he añadio la siguiente línea en index.php
// Here's the monstrous $_REQUEST['action'] array - $_REQUEST['action'] => array($file, $function).
$actionArray = array(
'activate' => array('Register.php', 'Activate'),
'comparador' => array('Comparador.php', 'Comparador'),
....
he subido a la carpeta de sources el archivo llamado Comparador.php
<?php
if (!defined('SMF'))
die('Hacking attempt...');
function Comparador() { //cambiamos el afiliados por el nombre de nuestra pagina
global $context;
$context['page_title'] = 'Comparador de dispositivos'; //este será el título que aparecera en tu página
// necesitamos llamar a el template
loadTemplate('Comparador'); // aquí también cambiamos el nombre con el de la página que estés haciendo
}
?>
y por último he creado Comparador.template.php y lo he subido a /Themes/default
con el siguiente código de prueba:
<?php
function template_main()
{
global $context, $settings, $options, $txt, $scripturl;
echo '
<table width="100%" border="0" cellspacing="0" cellpadding="3" >
<tr>
<td>', theme_linktree(), '</td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="4" align="center" class="tborder">
<tr class="titlebg">
<td align="center" >mi pagina</td>
</tr><tr>
<td class="windowbg">';
echo '<table border="0" cellpadding="0" cellspacing="3" width="100%">
<tr>
<td width="100%" valign="top">
aqui va mi contenido
</td></tr></table>';
echo '
</td>
</tr>
</table><br /><br />
';
}
?>
Necesitáis algún dato más?, me podéis ayudar?, muchas gracias.
Muchas gracias, necesitaba esto :)
Bueno, al final no lo he podido conseguir hacer de este modo, pero he instalado el siguiente mod que hace la función justo que quería.
http://custom.simplemachines.org/mods/index.php?mod=331
Algo no hacía bien, gracias por el tuto, saludos.
simplemente tu error fue que le pusiste
function template_main()
a la ultima parte siendo que deberia haber sido
function template_Comparador()
Ya que vos le dices aqui
loadTemplate('Comparador');
que lea un template que tiene el nombre de Comparador...
si no le colocas esa parte entonces el por defecto busca uno que se llama "main"...
si haces asi como te digo te va a funcionar que es lo que ya esta controlado en el mod que instalaste... prueba de nuevo hacer como tu lo querias y dinos luego ;)
Quote from: vicram10 on December 27, 2011, 09:01:39 AM
simplemente tu error fue que le pusiste
function template_main()
a la ultima parte siendo que deberia haber sido
function template_Comparador()
Ya que vos le dices aqui
loadTemplate('Comparador');
que lea un template que tiene el nombre de Comparador...
si no le colocas esa parte entonces el por defecto busca uno que se llama "main"...
si haces asi como te digo te va a funcionar que es lo que ya esta controlado en el mod que instalaste... prueba de nuevo hacer como tu lo querias y dinos luego ;)
Muchas gracias por tu ayuda.
Al final he instalado el mod que comento y es que está genial, no sólo me permite poner body, si no que también Headers en html, echa un vistazo cómo queda.
http://www.applemaniacos.es/index.php?action=iphone
No obstante, seguro que lo necesitaré algún día, si no encuentro un mod compatible.
Gracias de nuevo y Saludos.
El tutorial me ha ido muy bien, me ha creado la página, pero no sale en el menú. ¿Álguien me podría ayudar para poner un nuevo botón en el menú?
Gracias.
Existe otro tutorial para agregar botones al menu en este mismo foro, búscalo.
Muy bueno gracias me sera de mucha utilidad :)
Un saludo!
Hola, muchas gracias por ele tuto. Tengo un problema que espero me puedan ayudar a solucionar:
Lo que yo quiero hacer es que por ejemplo en el action=formulario se pueda llenar un form con algunos datos que ingresan a la base. Mis problemas son los dos siguientes:
- Probando el formulario en un archivo por ejemplo form.php no asociado a mi SMF (creandolo con el wizard de dreamweaver para la conexion a la bd) y agregandole algunos estilos que tengo en un .css y tambien un poco de javascript, queda perfecto e ingresa los datos de manera correcta, pero cuando lo intento poner en mi "formulario.template.php" no me carga ni los estilos ni el javascript (porque no se bien desde donde llamar los archivos)
- El segundo problema, es que mas allá de no poder verlo con el estilo que le hice, cuando intento enviar el formulario me pone "You don't have permission to access /xxx/SMF/< on this server."
Espero me puedan dar una mano.
Saludos!
para hacer asi como tu quieres es mas complejo.. ya que deberias hacer la insercion de los registros usando los propios codigos del smf..
depende mucho de tu nivel de php para decirte y del nivel de conocimientos que tienes de la estructura del smf..
usando los propios codigos del smf te permitira tener mas seguridad.. por eso es mejor usar los codigos de smf.. pero para eso necesitas un poquito de conocimientos..
Ok gracias Vicram, sera cuestion de ponerme a estudiar los codigos que usa smf.
En que archivos los guarda? por ejemplo al crear un post?
Si es para crear post.. es en el Post.Template.php y Post.php (si mas recuerdo) y en el Subs-Post.php
Edit puedes mirar este mod Custom Form Mod (http://custom.simplemachines.org/mods/index.php?mod=1279) es practicamente lo que necesitas
He leido que en el archivo de la carpeta sources de la pagina que creemos se pueden meter funciones, etc. Pues me gustaría meter unas cuantas variables pero no sé donde. ¿Sabeis donde es?
Saludos
Quote from: 1van10 on April 01, 2012, 01:14:16 PM
He leido que en el archivo de la carpeta sources de la pagina que creemos se pueden meter funciones, etc. Pues me gustaría meter unas cuantas variables pero no sé donde. ¿Sabeis donde es?
Saludos
Te recomiendo crear un tema en la seccion de soporte para conseguir respuestas mas rapidas.
Quote from: anicolac on December 25, 2011, 05:54:23 AM
Bueno, al final no lo he podido conseguir hacer de este modo, pero he instalado el siguiente mod que hace la función justo que quería.
http://custom.simplemachines.org/mods/index.php?mod=331
Algo no hacía bien, gracias por el tuto, saludos.
Justo lo que estaba buscando, gracias!
Se que es antiguo el post pero me parece muy bueno y quiero aportar un granito.
Si poneis esto :
header('Content-Type: text/html; charset=UTF-8');
Se os vera lo que pongais con todos los acentos y no con las letras raras.
Quedaria asi:
<?php
function template_main()
{
global $context, $settings, $options, $txt, $scripturl;
header('Content-Type: text/html; charset=UTF-8');
echo '
<table width="100%" border="0" cellspacing="0" cellpadding="3" >
<tr>
<td>', theme_linktree(), '</td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="4" align="center" class="tborder">
<tr class="titlebg">
<td align="center" >mi pagina</td>
</tr><tr>
<td class="windowbg">';
echo '<table border="0" cellpadding="0" cellspacing="3" width="100%">
<tr>
<td width="100%" valign="top">
aqui va mi contenido
</td></tr></table>';
echo '
</td>
</tr>
</table><br /><br />
';
}
?>
Quote from: rutenio3 on June 16, 2013, 12:24:12 PM
Se que es antiguo el post pero me parece muy bueno y quiero aportar un granito.
Si poneis esto :
header('Content-Type: text/html; charset=UTF-8');
Se os vera lo que pongais con todos los acentos y no con las letras raras.
Quedaria asi:
<?php
function template_main()
{
global $context, $settings, $options, $txt, $scripturl;
header('Content-Type: text/html; charset=UTF-8');
echo '
<table width="100%" border="0" cellspacing="0" cellpadding="3" >
<tr>
<td>', theme_linktree(), '</td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="4" align="center" class="tborder">
<tr class="titlebg">
<td align="center" >mi pagina</td>
</tr><tr>
<td class="windowbg">';
echo '<table border="0" cellpadding="0" cellspacing="3" width="100%">
<tr>
<td width="100%" valign="top">
aqui va mi contenido
</td></tr></table>';
echo '
</td>
</tr>
</table><br /><br />
';
}
?>
Gracias por el aporte muy puntual y valioso, saludos!
esta bueno gracias brother un amigo me lo andaba preguntando, saludos ;D
Gracias mirahalo por el tutorial. Breve, claro y conciso.
Me gustaría hacer una pregunta al respecto. ¿Sería posible crear una página pero sin la plantilla del theme? Quiero una página totalmente en blanco para poner luego lo que yo quiera.
Un saludo y gracias de nuevo.