Hacer que un archivo php este asociado con global.php

Klaus234 Seguir

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
14 Abr 2005
Mensajes
37
Bueno esto lo pongo por que me ayudaron mucho en este foro ^_^ .. espero que sirva de algo .. ??? :

Pasos a realizar:
-Crear una template
-Crear un archivo php
-Editarlos ( ambos)
¿Para que sirve esto? :
Esto sirve para hacer que el archivo php . Ej.: mensaje.php , y hacer que se vea como:
index.php
arcade.php
etc
(que se vea como contenido del foro)


1) Crear un archivo php cualquiera:
-Borra todo lo que diga en ese archivo . e ingresar absolutamente todo esto :
PHP:
<?php
require_once('./global.php');
eval('$navbar = "' . fetch_template('navbar') . '";');
eval('print_output("' . fetch_template('[Acá va el nombre de la template]') . '");');
?>
-En donde dice [Acá va el nombre de la template] : Ingresa el nombre del cual en el paso dos vas a llamar al template.
2)Crear una template :
Ir a : Panel de Administrador > Estilos y plantillas > Administrador de Estilos >[Plantilla que usas].. tocas la flecha que está en dirección para abajo > Opciones de plantilla > Agregar nueva plantilla / Crear nueva plantilla
Titulo:[Pone el nombre que le vas a poner en el archivo php que creaste:``[Acá va el nombre de la template]´´.
-Y en la plantilla agregá lo siguiente:
PHP:
$stylevar[htmldoctype]
<html dir="$stylevar[textdirection]" lang="$stylevar[languagecode]">
<head>
<!-- no cache headers -->
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="-1" />
<meta http-equiv="Cache-Control" content="no-cache" />
<!-- end no cache headers -->
<title><phrase 1="$vboptions[bbtitle]">$vbphrase[x_powered_by_vbulletin]</phrase></title>
$headinclude
</head>
<body>
$header
$navbar
$footer
</body>
</html>
-Guarda los cambios .
3)Acordate de editar el archivo php que creaste poniendole el titulo que le pusiste al template .. eh!!.
4)Subí el archivo php , en donde quieras .
5)Y probalo en donde lo pusiste y te aparecerá :
-El header
-navbar
-footer
6)Para agregar cosas recorda que lo podes hacer con un Editor de php , o con el Bloc de notas en su defecto.
-Espero que les haya servido , a mi me está sirviendo por que estoy haciendo una especie de hack .
NOTA: Esto no es un hack .

Saludos
 
D

DuckMan

muy buena guia! sirve para hacer paginas q mantengan el estilo del vbulletin, pero con el contendio q quieran, para insertar bloques en vbadvanced es el mismo prodecimiento, pero no es nesesario crear un archivo, aunq si kieres mas profecionalismo eres libre de hacerlo :p
 

imported_munir

Gamma
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
5 Abr 2005
Mensajes
218
tambien puede servir para hacer una hoja de noticias o una hoja de publicidad sin perder los marcos del foro
 

Klaus234

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
14 Abr 2005
Mensajes
37
:) Con eso estoy en creación de un hack ... es un poco difícil ya que aprendí hace poco php :D . Pero por lo menos me sale el archivo de instalación .. >>>
 
D

DuckMan

una pregunta.. los scripts sql donde irian? porq veo q en la plantilla hay html y variables.. se supone q tengo q llamarlas desde el archivo creado no?
u otra opcion mas facil, puedo crear la pagina en el archivo php directamente?
 
L

LoLz

munir dijo:
tambien puede servir para hacer una hoja de noticias o una hoja de publicidad sin perder los marcos del foro

Yo ya lo hice todo pero me quedo como la pantalla principal del cmps pero vacia... :rolleyes: je!

ahora como hago para agregarle un tema o una noticia como el dice munir... ^^

Tendre que linquearlo a algun tema ? o_O

Gracias
 

imported_munir

Gamma
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
5 Abr 2005
Mensajes
218
no me funciona
cree la plantilla amiga1 con este contenido:
Insertar CODE, HTML o PHP:
$stylevar[htmldoctype]
<html dir="$stylevar[textdirection]" lang="$stylevar[languagecode]">
<head>
<!-- no cache headers -->
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="-1" />
<meta http-equiv="Cache-Control" content="no-cache" />
<!-- end no cache headers -->
<title><phrase 1="$vboptions[bbtitle]">$vbphrase[x_powered_by_vbulletin]</phrase></title>
$headinclude
</head>
<body>
$header
$navbar
"Estas paginas son nuestras amigas"

http://iguanas.cl : 

http://www.yacarecoli.com.ar :

http://www.btarg.com.ar

http://www.exeemarg.com.ar

http://munir.com.ar 

http://argentop2p.com.ar

http://okoronko.com.ar

http://www.revistaarabe.com.ar
$footer
</body>
</html>

tambien cree e larchivo amiga1.php con este contenido:
Insertar CODE, HTML o PHP:
<?php
require_once('./global.php');
eval('$navbar = "' . fetch_template('navbar') . '";');
eval('print_output("' . fetch_template('[amiga1]') . '");');
?>

y se ve en blanco
no muestra nada de nada
 
I

imported_Carlo

que tal si la pagina que quiero asociar con vBulletin no esta en el mismo folder que vBulletin?

ejemplo:

/public_html/forum/

/public_html/pagina_asociada.php

como hago en ese caso?
 
I

imported_Carlo

Ya arregle el problema de si esta en una carpeta afuera de la de vBulletin. PERO, ahora tengo una pregunta.. como hago para incluir mas de una plantilla?

Insertar CODE, HTML o PHP:
eval('print_output("' . fetch_template('Site_Login') . '");');
eval('print_output("' . fetch_template('Latest_Active_Threads') . '");');

Creo dos plantillas diferentes.. pero al poner eso en el archivo PHP.. solo me sale lo de la primera plantilla, y no lo de la segunda :s
 

dbembibre

Gamma
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
30 Sep 2004
Mensajes
453
Lo cierto es que te faltan bastantes cosas por incluir en el archivo php.
Sino cacheas los templates estás añadiendo una query extra para obtener el template por cada vez que se pide la página.

Este es el template que uso para crear todos mis formularios.
El archivo se llama prueba.php

PHP:
<?php 

// ####################### SET PHP ENVIRONMENT ########################### 
error_reporting(E_ALL & ~E_NOTICE); 

// #################### DEFINE IMPORTANT CONSTANTS ####################### 
define('NO_REGISTER_GLOBALS', 1); 
define('THIS_SCRIPT', 'prueba'); // el nombre del script ha de ser siempre el del archivo php

// ################### PRE-CACHE TEMPLATES AND DATA ###################### 
// get special phrase groups 
$phrasegroups = array( 

); 

// get special data templates from the datastore 
$specialtemplates = array( 
     
); 

// pre-cache templates used by all actions 
//Si quieres cachear más de un template usa una coma seguido del nombre del template
$globaltemplates = array( 
    'PRUEBA'
     
); 

// pre-cache templates used by specific actions 
$actiontemplates = array( 

); 

// ######################### REQUIRE BACK-END ############################ 
require_once('./global.php'); 

// ####################################################################### 
// ######################## START MAIN SCRIPT ############################ 
// ####################################################################### 

$navbits = array(); 
$navbits[$parent] = 'Página de Prueba'; 

$navbits = construct_navbits($navbits); 
eval('$navbar = "' . fetch_template('navbar') . '";'); 
eval('print_output("' . fetch_template('PRUEBA') . '");'); 

?>

Crea el template PRUEBA dentro de tu estilo

Insertar CODE, HTML o PHP:
$stylevar[htmldoctype]
<html dir="$stylevar[textdirection]" lang="$stylevar[languagecode]">
<head>
<title>$vboptions[bbtitle]</title>
$headinclude
</head>
<body>
$header

$navbar

<table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center">
<tr>
	<td class="tcat">Página de prueba</td>
</tr>
<tr>
	<td class="alt1">Contenido del texto</td>
</tr>
</table>

$footer
</body>
</html>

Mañana añado como usar $_REQUEST['do'] y más de un template
 

Klaus234

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
14 Abr 2005
Mensajes
37
Eso es lo que estoy buscando .. como hago funcionar lo de $_REQUEST['do] , bah el ejemplo que puse arriba lo puse lo mas simple posible se que se le pueden agregar todo eso :)
 

dbembibre

Gamma
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
30 Sep 2004
Mensajes
453
Klaus234 dijo:
Eso es lo que estoy buscando .. como hago funcionar lo de $_REQUEST['do] , bah el ejemplo que puse arriba lo puse lo mas simple posible se que se le pueden agregar todo eso :)

Es un poco tarde mañana te lo explico bien pero es muy facil de hacer.
Te pego un trozo de uno de mis formularios de verdad para que lo vayas viendo.
Mira el siguiente archivo php, siguiendo con nuestro ejemplo de antes de prueba.php lo completariamos con lo siguiente.
Este archivo se llamaría asi www.tuforo.com/prueba.php?do=Register
HAces dentro de register tu operación php y devuelves una variable que este puesta en un template o bien llamas a otra página como hace la función PrintError, que en mi caso muestra el error de campos que faltan en el formulario o inserta los datos en mysql y le muestra al usuario el final del proceso

Insertar CODE, HTML o PHP:
require_once('./global.php');

function PrintError($error, $normal)
{
        if ($normal==1)
        {
                $error=base64_encode($error . "" . "<strong><p>Presiona la tecla atrás de tu navegador y rellena el dato que te falta </p></srong>");
                $link="Location:Prueba3.php?do=showerror&view=" . $error;
                header($link);
                exit;
        }else {
                $error=base64_encode($error);
                $link="Location:Prueba3.php?do=showerror&view=" . $error;
                header($link);
                exit;
        }
}


if ($_REQUEST['do']=="Register")
{
        $Myusername = $vbulletin->userinfo[username];
        $email=$vbulletin->userinfo[email];
        //$Myusername = $bbuserinfo[username];
        //$email=$bbuserinfo[email];
        $Nombre = $_POST['nombre'];

    if ($error){
                $Mensaje_Usuario ="<center>El proceso de pedido está en marcha, se ha enviado una copia de tu pedido a las oficinas de </center><br>El equipo de *****se pondrá en contacto contigo.";

                PrintError ($Mensaje_Usuario,0);
        }
        else
        {
                $Mensaje_Usuario= "<center>No se ha podido enviar el email</center><br>Error: $error";
                PrintError ($Mensaje_Usuario,0);
        }
 
T

ThevBulletin

PHP:
eval('print_output("' . fetch_template('TEMPLATEUNO') .  fetch_template('TEMPLATEDOS') . '");');
////concatenacion de arrays
Hice una concatenacion, para tener mas de un template, y en el arreglo para templates globales, para hacer el cache

PHP:
$globaltemplates = array(
     'TEMPLATEUNO',
    'TEMPLATESDOS',
);
Posiblemente no debe meter en el eval una concatenacion, por que el vBulletin cuando quieren obtener mas de 1 template, no le hacen asi, si conocen otra manera mas eficiente, por favor, compartanla

Yo tambien no entiendo muy bien para que sirven los specialtemplates , a ver si alguien nos puede explicar
 
T

ThevBulletin

Quiero usar el sistema de templates del vBulletin fuera de la carpeta del vBulletin, hice un include con una ruta absoluta al archivo global.php y funciona todo correctamente, el problema es que trato de poner esto, en el template de mi panel de administrador, pero no agarra la session de usuario:

<if condition="$bbuserinfo['userid']">
$bbuserinfo[username]<br/>
<else />
No esta logeado
</if>

Siempre aparece como deslogueado

¿como le hago?

Gracias de antemano
 
B

booster

muy muy bueno deberian poner una secion de tutoriales apra uno aprender a crear sus propios scripts:rolleyes: e antemano muchas gracias
 
Arriba