[Typo3-UG Spain] Acceso a variables desde PHP
Raúl Romero
typo3 at bgta.net
Fri Jul 23 09:54:00 CEST 2004
On vie, 2004-07-23 at 09:10 +0200, Carlos J. Escudero wrote:
> Hola a todos,
>
> Estoy comenzando a programar extensiones y tengo algunas dudas que no me dan
> seguridad en lo que hago. Os comento estas, para ver si me podéis contestar
> o asesorar que documentación debo consultar:
>
> 1.- ¿Cúales son las variables que conectan el backend y el typoscript con el
> código PHP? Por ejemplo, ¿cómo puedo acceder a la variable CODE que me
> aparece en la introducción de un contenido correspondiente a un frontend
> plugin? Y, ¿cómo puedo hacer que una variable sea accesible desde
> typoscript?
>
Bien te responderé en medida de lo que se....
te recomiendo que en tu extension, te hagas un "debug mode", es decir,
que cuando se le pase por ejemplo por get el parametro: tx_debug_mode=1,
obtengas una salida especial......
Dicha salida pues puedes poner de momento lo siguiente:
echo "<pre>\n";
echo "<h1>TSFE</h1>\n";
print_r($GLOBALS['TSFE']);
echo "<h1>cOBJ</h1>\n";
print_r($this->cObj);
echo "</pre>"
...
Eso te puede ser util para que vayas trasteando las variables que se
mueven por el Backend...
Por ejemplo, si quieres coger el nombre del user que se ha logueado en
el Frontend, con un : $GLOBALS['TSFE']->fe_user->user['name'];
pues lo tienes listo.....
el tema del CODE, no recuerdo si era: $this->cObj->data
['tx_extname_code'] // o como se llame el campo en la BBDD
tt_content....
o era a trabes de TSFE.... con $GLOBALS['TSFE']->page
['tx_extname_code'];
...
Variables accesibles desde TypoScript?....pos no se si se puede...de
momento no he hecho nada similar, excepto pasar parametros desde el
typoScript al PHP a traves de los ficheros de setup y constants que se
pueden crear-configurar desde el propio Ext. Manager, cuando creas la
Extension.
... por poner un ejemplo:
* Fichero ext_typoscript_constants.txt:
plugin.tt_news {
# cat=plugin.news/file; type=file[html,htm,tmpl,txt]; label=
Template File: HTML-template file for display of news. See EXT:
tt_news/pi/news_template.tmpl for an example
file.templateFile = EXT:tt_news/pi/news_template.tmpl
...etc
}
Esto hara, que al editar el template y estar la extension instalada,
pues en el editor de constantes exista la seccion plugin.news, que tiene
el apartado file, y un campo que pondra Template File: seguido de una
descripción, y sera un campo del tipo fichero. Por defecto el valor que
tiene es EXT:tt_news/pi/news_template.tmpl donde EXT le indica a typo3
que busque ese path dentro de los directorios de extensiones (typo3/ext
y typo3conf/ext/)
...
Eso se compagina luego con:
* Fichero ext_typoscript_setup.txt:
plugin.tt_news {
templateFile = {$plugin.tt_news.file.templateFile}
..etc
}
Lo cual pillara el balor de la constante y lo metera en templateFile del
Setup.....que es directamente accesible desde PHP con:
$this->conf['templateFile'], siempre que en la funcion main, tengamos
puesto que $this->conf = $conf;
...Ahora pasar valores de PHP a TypoScript....como no sea por GET o
POST...... no he conseguido nada ...
> 2.- La extensión que estoy haciendo presenta un frontend diferente,
> dependiendo del estado del proceso que maneja. ¿Cuál es la mejor manera que
> tengo para que un administrador indique el estado en el que se encuentra?
>
No entendi la pregunta.... pero te diria....que hay 100 caminos para
llegar a un mismo sitio....depende un poco de las necesidades y
preferencias...
> 3.- Para el plugin que estoy desarrollando, estoy utilizando el cwt_feedit
> (gracias Raul Romero por tu recomendación). Sin embargo, este plugin tiene
> unas carencias que estoy solucionando mediante la modificación del código de
> éste. ¿Cuál es la mejor forma de proceder en este caso? ¿Modificar el código
> y copiarlo a mi extensión? ¿Modificar el código y hacérselo llegar a su
> creador? En este último caso, ¿cómo?
Bien....depende..... la modificación es algo "necesario" para dicha
extension...es decir...es alguna Feature que el autor de la extension no
a previsto o no a añadido todavia?...si es así...ponte en contacto con
el (su correo....) y diselo que lo tienes hecho o lo estas
haciendo...que si tenia previsiones......
Si la feature es algo que se ajusta a tu caso en concreto.....crea una
extension nueva....que "herede" dicha extension......
por ejemplo....
en tu code imaginate que quieres ampliar la extension tt_news...
pues puedes hacer lo siguiente:
include(t3lib_extMgm::extPath('tt_news').'/pi/class.tt_news.php');
class myExt extends tt_news {
...etc...
}
Y luego, sobrecargar funciones o algo por el estilo
o bien hacer una copia de la extension y renombrarla...creando una
extension diferente....
More information about the TYPO3-UG-spain
mailing list