2008-11-15 12 views
6

Tengo una extensión de trabajo TYPO3. Se adjunta this wiki page. ¿Cómo puedo cambiar el código de esta extensión para que sea del tipo USER_INT? Es decir. No quiero que TYPO3 almacene en caché el resultado de este complemento, y quiero que TYPO3 invoque siempre la extensión de una página que use la extensión, es decir, deshabilite el almacenamiento en caché para esta extensión.TYPO3: Cambie el complemento de USER_INT a USUARIO_INT tipo

Respuesta

6

Para deshabilitar el almacenamiento en caché para su extensión ir a su archivo FOTO/class.tx_XXX_piX.php y quitar la línea siguiente (por debajo de su declaración de la clase):

var $pi_checkCHash = true; 

También es necesario añadir la siguiente línea en el método principal (por debajo de $ this-> pi_loadLL();):

$this->pi_USER_INT_obj=1; // Configuring so caching is not expected. This value means that no cHash params are ever set. We do this, because it's a USER_INT object! 
+0

Ahora estoy en otro proyecto y no tengo el entorno para probar esto, pero esta será información útil para otras personas que tienen el mismo problema. Gracias por su respuesta. – avernet

+0

Esto no desactiva el almacenamiento en caché, solo desactiva la comprobación del parámetro cHash. – Sebs

+0

Aunque su respuesta es correcta, siempre es mejor no cambiar los archivos de la clase php de una extensión. Intente modificarlo mediante una función XCLASS o utilice el método (anónimo) a continuación, cambiando solo el archivo 'ext_localconf.php'. – Mateng

0

Cuando haya creado su extensión con el pedal de arranque también tiene que ir al archivo [yourextension] /ext_localconf.php y cambiar esta línea

t3lib_extMgm::addPItoST43($_EXTKEY,'piX/class.tx_yourextension_piX.php','_piX','list_type',0); 

a esto:

t3lib_extMgm::addPItoST43($_EXTKEY,'piX/class.tx_yourextension_piX.php','_piX','list_type',1); 
4

grunwalski es todo lo contrario usted tiene que cambiar esta situación:

t3lib_extMgm::addPItoST43($_EXTKEY,'piX/class.tx_yourextension_piX.php','_piX','list_type',1); 

a esto:

t3lib_extMgm::addPItoST43($_EXTKEY,'piX/class.tx_yourextension_piX.php','_piX','list_type',0); 
+0

Exactamente. "Si $ en caché está configurado como objeto de contenido USER (cObject), de lo contrario se crea un objeto USER_INT". –

2

La forma más simple de resolver el problema es para volver a Extension Maganer, seleccione su extensión, elija "Editar en Kickstarter" de los menús desplegables u, y luego seleccione el complemento Frontend correspondiente para editar sus propiedades.

Marque la primera casilla de verificación, lo que significa que desea que sus complementos se representen como USER_INT cObjects. Luego, haga clic en el botón Ver resultado, desmarque todos los archivos PHP personalizados (su propio código, como módulos y complementos) en el lado derecho y haga clic en el botón ESCRIBIR. Por favor tenga cuidado. Si no desmarca las casillas de verificación de sus propios archivos, se sobrescribirán con archivos ficticios.

1

La forma correcta y comlete de hacer esto es una combinación de las respuestas de @arturh y @Mehdi Guermazi:

  1. el último cambio de parámetro en la llamada addPItoST43() en ext_localconf.php de 1 a 0
  2. elimina la línea var $pi_checkCHash = true; de las definiciones de propiedad en el encabezado de la clase pi1.
  3. agregue la línea $this->pi_USER_INT_obj=1; al inicio de la función main() en pi1.

Estos cambios son idénticos a los que obtendrá cuando use el método kickstarter explicado en la solución de @bencuss.

0

Edite el archivo setup.txt de su extensión "myext". Cambiar "USUARIO" en "USER_INT".

plugin.tx_myext = USER_INT 
plugin.tx_myxt { 

Esta extensión nunca se almacenará en caché.

Cuestiones relacionadas