Jump to content

Añadir JS a override


gajofe

Recommended Posts

Amigos estoy realizando un override de AdminProductController ahi todo bien.

ahora hize algunas modificaciones y necesito usar un JS, ahora mi pregunta es :

 

donde coloco ese js para este override y como lo añado para usarlo en mi tpl. 

ojo quiero mantener todo en la carpeta override para no peder esos archivos al actualizar o instalar de nuevo.

muchas gracias..!! 

Edited by gajofe (see edit history)
Link to comment
Share on other sites

gracias intente como me comentaste.

class AdminProductsController extends AdminProductsControllerCore {
.
.
.
.
 public function setMedia() {
        $this->addJS(_PS_BASE_URL_ . "/override/js/arhivo.js");
        parent::setMedia();
    }

}

pero te cuento que me sale un error de no encontrado 

 

GET 
http://localhost/override/js/archivo.js [HTTP/1.1 404 Not Found 10ms]
ParamsHeadersPostResponse
Response HeadersView source
Accept-RangesbytesConnectionKeep-AliveContent-LanguageesContent-Typetext/htmlDateFri, 29 May 2015 15:47:14 GMTKeep-Alivetimeout=5, max=88ServerApache/2.4.10 (Win32) OpenSSL/1.0.1i PHP/5.6.3Transfer-EncodingchunkedVaryaccept-language,accept-charset
Request HeadersView source
Accept*/*Accept-Encodinggzip, deflateAccept-Languagees-ES,es;q=0.8,en-US;q=0.5,en;q=0.3Cache-Controlmax-age=0Connectionkeep-aliveHostlocalhostRefererhttp://localhost/xxxxxx....controller=AdminProducts&id_product=XXXX&updateproduct&token=XXXXXX User-AgentMozilla/5.0 (Windows NT 6.3; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0
CachedResponseHeaders
PostRequestHeaders
Link to comment
Share on other sites

Si el archivo existe en esa ruta lo encontraría. lo que pasa que la carpeta override (como otras) tiene un htaccess para "prohibilr" el acceso -> te lanza un 403 forbidden..(o quizás un 404 en función del servidor.. no lo se)

 

si lo quitas te deja acceder al contenido de la carpeta js sin problemas, pero quizás por seguridad es mejor dejarlo como esta..

 

Entonces lo mejor es que

 

Te creas una carpeta nueva en la instalación raíz y ahí pones lo que quieras

 

$this->addJS(__PS_BASE_URI__.'tu_carpeta_nueva/tus_directorios/...etc/tu_fichero.js');

 

O bién si pones tu js en  un módulo también puedes acceder (hay no hay problema de 403)

 

$this->addJS(__PS_BASE_URI__.'modules/tu_modulo/...etc/tu_fichero.js');

 

Nota: la constante __PS_BASE_URI__ ya acaba con / por lo que no hace falta que lo añadas en lo que concatenes después.

 

Por último si instalas un módulo que este en el hook hookActionAdminControllerSetMedia. Prestashop te añade directamente ese js al backoffice

 

Pudiendo incluso filtrar en que controlador quieres que aparezca..

public function hookActionAdminControllerSetMedia($params)
	{
	
		// add necessary javascript to products back office
		if($this->context->controller->controller_name == 'AdminOrders' )
		{
			$this->context->controller->addJS($this->_path.'/js/pele_fbg_backoffice.js');
		}
	
	}
Edited by Enrique Gómez (see edit history)
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...