Jump to content

obtener la id de la categoria actual en un modulo


nockbcn

Recommended Posts

Hola muy buenas, estoy haciendo un modulo y me gustaria poder almacenar, para operar con ella mas tarde, la id de la categoria donde se esta montrando en ese momento.

Veo que la clase context->getContext no vale y no consigo hacerlo funcionar tampoco con Tools::getValue('id_category') 
 

Que estoy haciendo mal? muchas gracias por adelantado y felicidades a los creadores! :)

Link to comment
Share on other sites

Hola galindogadea muchas gracias por contestar tan rápido :D 
Mira, he probado a poner 
$cat = (int)Tools::getValue('id_category');

en el hook RightColumnProduct, justo debajo del ($params)  antes y despues de { global $smarty; 

 y así asigno las variables a smarty
 $this->context->smarty->assign('categoria', $cat);,

 el modulo ira debajo del titulo de cada producto, pero en el .tpl no quiero mostrar la id de la categoria, lo que quiero  es poder hacer consultas sql en funcion de la categoria en la que este.

 
He creado un campo  llamado relative en la tabla attribute_group_lang, de esta manera relaciono los atributos con las  categorias. Asignando el mismo valor a los campos id_categoryrelative .
Pues bien si conociera la categoria en la que estoy, podria, o almenos eso creo XD, hacer lo siguiente:
$sql = 'SELECT public_name FROM `'._DB_PREFIX_.'attribute_group_lang` WHERE id_lang = 1 AND relative = $cat ';

donde $cat seria la categoria actual. para  despues hacer

$att_list = Db::getInstance()->executeS($sql);

así almacenar los atributos de esa categoría 

 
Mi idea es hacer combos dependientes de selectores de valores de atributos en cada producto ( cada serie tiene unos motores, cada motor unas cilindradas...) cosa que creo que puedo hacer mediante javascript y llamadas ajax en el tpl, pero para iniciar el primer atributo relacionado con la categoría presente... no se como hacerlo en el archivo php.

Espero saber hacerme entender, muchas gracias por la atención de nuevo, un saludo!
Edited by nockbcn (see edit history)
Link to comment
Share on other sites

 

Prueba añadiendo tambien

if (isset($_GET['id_category']))

hola muchas gracias por contestar ventura, me podrias explicar un poco donde debo añadir 

 if (isset($_GET['id_category']))

he probado 

 

 if(isset($_GET['id_category'])) {
    $cat = $_GET['id_category'];
}

y no consigo obtener la id :( puede tener que ver que el modulo se muestra en un hook que esta dentro de los productos? 

public function hookDisplayRightColumnProduct($params)
{

 

Gracias de nuevo por la atención

Link to comment
Share on other sites

Al final lo he conseguido gracias a una respuesta en el foro en ingles, muchas gracias a todos!!
 

​public function hookDisplayRightColumnProduct($params)
{
    // Define product object
    $product = $params['product'];
    
    // Get the default id category from defined product object
    // Depend to id shop
    $id_category_default = $product->getDefaultCategory();
    
    // Get array of id categories from the defined object product
    // NOT depend to id shop
    $categories = $product->getCategories();
    
    // Alternatively you can also Get array of id categories
    // from the defined object product using its id_product
    // NOT depend to id shop
    $categories_alt = Product::getProductCategories($product->id);
    
}
Link to comment
Share on other sites

  • nadie locked this topic
Guest
This topic is now closed to further replies.
×
×
  • Create New...