{"id":3104,"date":"2013-02-14T09:24:26","date_gmt":"2013-02-14T09:24:26","guid":{"rendered":"http:\/\/www.apprentalonline.es\/blog\/?p=3104"},"modified":"2013-02-14T09:24:26","modified_gmt":"2013-02-14T09:24:26","slug":"modificar-un-modulo-a-un-hook-diferente-en-prestashop-1-5","status":"publish","type":"post","link":"https:\/\/www.k3bone.com\/blog\/2013\/02\/modificar-un-modulo-a-un-hook-diferente-en-prestashop-1-5\/","title":{"rendered":"Modificar un m\u00f3dulo a un hook diferente en Prestashop 1.5"},"content":{"rendered":"<p style=\"text-align: center;\"><a href=\"https:\/\/www.k3bone.com\/blog\/wp-content\/uploads\/2012\/09\/prestashop-tema.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter  wp-image-2510\" title=\"Modificar un m\u00f3dulo a un hook diferente en Prestashop 1.5\" alt=\"hooks Prestashop 1.5\" src=\"https:\/\/www.k3bone.com\/blog\/wp-content\/uploads\/2012\/09\/prestashop-tema.jpg\" width=\"940\" height=\"300\" \/><\/a><\/p>\n<p>Muchas veces los m\u00f3dulos en PrestaShop vienen preparados s\u00f3lo para posicionarlos en algunas partes de nuestra tienda y nos acarrea muchos problemas ya que el cliente se empe\u00f1a en tenerlo en una zona para la que el m\u00f3dulo no est\u00e1 preparado o configurado. Por eso quiero explicar las dos maneras que hay para <b>a\u00f1adir la posici\u00f3n o modificar m\u00f3dulo a un hook diferente en nuestra tienda PrestaShop<\/b>.<\/p>\n<h2>\u00bfC\u00f3mo podemos a\u00f1adir un m\u00f3dulo a un hook diferente?<\/h2>\n<p>Se nos pueden dar 2 casos a la hora de querer modificar un hook de un m\u00f3dulo a otra posici\u00f3n de PrestaShop:<\/p>\n<ul>\n<li><b>El m\u00f3dulo ya est\u00e1 preparado para aparecer en otro hook diferente al que viene por defecto configurado.<\/b><\/li>\n<li><b>El m\u00f3dulo no tiene habilitado el hook al que nosotros queremos cambiarlo.<\/b><\/li>\n<\/ul>\n<h3>Cambiar m\u00f3dulo de hook (Prestashop 1.5)<\/h3>\n<p>Cuando instalamos un m\u00f3dulo, por defecto puede que est\u00e9 posicionado en la columna izquierda, pero nosotros queremos posicionarlo en la columna derecha. Como en este caso el m\u00f3dulo viene preparado para ponerlo en la columna derecha (hookRightColumn), vamos a explicar los pasos a seguir para poderlo modificar, ya que PrestaShop nos proporciona una manera muy sencilla de realizarlo:<\/p>\n<ul>\n<li>Instalamos el m\u00f3dulo que queramos para nuestra tienda el cual se ve en un bloque especifico, por ejemplo en la parte izquierda (hookLeftColumn).<\/li>\n<li>Ahora vamos a la tienda y vemos como se visualiza s\u00f3lo en la parte izquierda de la tienda.<\/li>\n<li>El bloque se puede instalar en la parte derecha ya que est\u00e1 implementado en el m\u00f3dulo (viene preparado para ponerlo en el TOP, LEFT y RIGHT). Eso s\u00ed no podremos cambiarlo a ning\u00fan otro sitio como puede ser el FOOTER a no ser que optemos por el caso 2 que explicaremos despu\u00e9s.<\/li>\n<li>Para <b>cambiar un bloque de sitio en PrestaShop<\/b>, nos vamos al panel de <em>Administraci\u00f3n\/M\u00f3dulos\/Posiciones\/<\/em> y hacemos clic en el bot\u00f3n \u00abTrasladar un m\u00f3dulo\u00bb.<br \/>\n<img decoding=\"async\" alt=\"Trasladar m\u00f3dulo en PrestaShop 1.5\" src=\"http:\/\/imageshack.us\/a\/img832\/3677\/trasladarmoduloprestash.png\" \/><\/li>\n<li>Ahora tendremos que seleccionar el M\u00f3dulo que queremos cambiar de zona, y el Hook donde vamos a posicionarlo. El campo excepciones no lo rellenamos:<br \/>\n<img decoding=\"async\" alt=\"Trasladar m\u00f3dulo en PrestaShop 1.5\" src=\"http:\/\/imageshack.us\/a\/img560\/3677\/trasladarmoduloprestash.png\" \/><\/li>\n<li>Ahora que hemos hecho el cambio podremos ver el bloque en la nueva zona que hemos configurado, siempre y cuando est\u00e9 disponible ese hook para ese m\u00f3dulo, en caso contrario, nos aparecer\u00e1 este mensaje: \u00ab<em>este m\u00f3dulo ya est\u00e1 copiado en este hook<\/em>\u00ab. En este caso, ir al paso 2.<\/li>\n<\/ul>\n<h3>A\u00f1adir m\u00f3dulo a un nuevo Hook (Prestashop 1.5)<\/h3>\n<p>En el caso en el que el m\u00f3dulo no venga configurado para que aparezca en la zona que nosotros queremos, tendr\u00edamos que diferencias dos partes, una en la que el cambio no afecta al dise\u00f1o y no descoloca ning\u00fan otro elemento de la tienda y otra en la que el cambio crea descuadres en el dise\u00f1o.<\/p>\n<ul>\n<li>Para el caso en el que no interfiere en el dise\u00f1o de la tienda:\n<ul>\n<li>Editamos el archivo .php del m\u00f3dulo (por ejemplo para el m\u00f3dulo blocknewproducts ser\u00eda \u201cblocknewproducts.php\u201d). En este caso no viene la opci\u00f3n de poder colocarlo en el Footer. As\u00ed que lo abrimos y vemos el siguiente c\u00f3digo:\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">\npublic function hookRightColumn($params)\n\t{\n\t\t$newProducts = Product::getNewProducts((int)($params&#x5B;'cookie']-&gt;id_lang), 0, (int)(Configuration::get('NEW_PRODUCTS_NBR')));\n\t\tif (!$newProducts &amp;&amp; !Configuration::get('PS_BLOCK_NEWPRODUCTS_DISPLAY'))\n\t\t\treturn;\n\n\t\t$this-&gt;smarty-&gt;assign(array(\n\t\t\t'new_products' =&gt; $newProducts,\n\t\t\t'mediumSize' =&gt; Image::getSize('medium_default'),\n\t\t));\n\n\t\treturn $this-&gt;display(__FILE__, 'blocknewproducts.tpl');\n\t}\n\n<\/pre>\n<\/li>\n<li>A\u00f1adimos el siguiente c\u00f3digo:\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">\npublic function hookFooter($params)\n\t{\n\t\treturn $this-&gt;hookFooter($params);\n\t}\n\n<\/pre>\n<\/li>\n<li>Una vez hemos modificado el archivo, tenemos que TRASLADAR el m\u00f3dulo de la misma manera que hemos hecho en el paso 1, ya que ahora si que estar\u00e1 preparado para el cambio.<\/li>\n<\/ul>\n<\/li>\n<li><b>Para el caso en el que el cambio interfiere en el dise\u00f1o de la tienda, habr\u00eda que crear un archivo .TPL<\/b>:\n<ul>\n<li>Creamos el archivo .TPL con la nueva maquetaci\u00f3n (por ejemplo, nuestronuevoarchivo.tpl)<\/li>\n<li>Volvemos al archivo .PHP del m\u00f3dulo (en el ejemplo blocknewproducts.php) e indicamos que vamos a usar esta \u00abplantilla\u00bb (archivo .TPL). Si vamos al c\u00f3digo, tendr\u00edamos que cambiar lo siguiente:\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">\nreturn $this-&gt;display(__FILE__, 'blocknewproducts.tpl');\n<\/pre>\n<p>Por esto:<\/p>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">\nreturn $this-&gt;display(__FILE__, 'nuestronuevoarchivo.tpl');\n<\/pre>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Explicado puede parecer algo complicado, pero os aseguro que no lo es, el tema es hacer el primero y los siguientes ver\u00e9is como no tendr\u00e9is problemas.<\/p>\n<p>Pr\u00f3ximamente veremos c\u00f3mo llevar el <strong>mantenimiento del stock y del almac\u00e9n<\/strong>, imprescindible para llevar una buena gesti\u00f3n avanzada de stock en prestahop.<\/p>\n<ul>\n<li><a title=\"Tu tienda online con Prestashop desde 5,45\u20ac\/mes!\" href=\"http:\/\/www.apprentalonline.es\/prestashop.php\" target=\"_blank\" rel=\"noopener\">Tu tienda online con Prestashop desde 5,45\u20ac\/mes!<\/a><\/li>\n<li><a title=\"11 Temas Gratis Prestashop 1.5\" href=\"http:\/\/www.apprentalonline.es\/blog\/2013\/01\/11-temas-gratis-prestashop-1-5\/\" target=\"_blank\" rel=\"noopener\">11 Temas Gratis Prestashop 1.5<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Muchas veces los m\u00f3dulos en PrestaShop vienen preparados s\u00f3lo para posicionarlos en algunas partes de nuestra tienda y nos acarrea muchos problemas ya que el cliente se empe\u00f1a en tenerlo en una zona para la que el m\u00f3dulo no est\u00e1 preparado o configurado. Por eso quiero explicar las dos maneras que hay para a\u00f1adir la [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":2510,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[26,42,34,36],"tags":[77,60,68,29],"class_list":["post-3104","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-comercio-electronico","category-prestashop","category-programacion-de-sitios-web","category-web-apps","tag-comercio-electronico-2","tag-customizacion","tag-plugins","tag-prestashop"],"featured_image_src":{"landsacpe":false,"list":false,"medium":false,"full":false},"_links":{"self":[{"href":"https:\/\/www.k3bone.com\/blog\/wp-json\/wp\/v2\/posts\/3104","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.k3bone.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.k3bone.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.k3bone.com\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.k3bone.com\/blog\/wp-json\/wp\/v2\/comments?post=3104"}],"version-history":[{"count":0,"href":"https:\/\/www.k3bone.com\/blog\/wp-json\/wp\/v2\/posts\/3104\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.k3bone.com\/blog\/wp-json\/wp\/v2\/media?parent=3104"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.k3bone.com\/blog\/wp-json\/wp\/v2\/categories?post=3104"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.k3bone.com\/blog\/wp-json\/wp\/v2\/tags?post=3104"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}