Creación de un módulo en Prestashop: Error 'El módulo de clase no se puede encontrar'

StackOverflow https://stackoverflow.com/questions/8929302

  •  30-10-2019
  •  | 
  •  

Pregunta

Tengo un módulo presta en Php4. Funciona conectando a la base de datos de un PrestaShop e imprime XML. Mientras intentaba subir a su tienda de aplicaciones, me pidieron que lo haga Php5 y sigo ciertos procedimientos.

  • En pocas palabras, es solo un código estructural completo con 1 método que obtiene conexión con una base de datos Prestashop e imprime XML.

Entonces, el problema es cómo hacer que se ajuste al estándar PHP5 requerido por Prestashop. Cuando lo intenté, recibo este error. "El módulo de clase no se puede encontrar"

<?php
include('config/settings.inc.php');
$con = mysql_connect(_DB_SERVER_, _DB_USER_, _DB_PASSWD_);
mysql_select_db(_DB_NAME_);
$str = '_DB_PREFIX_';
$str1 = constant($str);
$sql = 'SELECT '.
$str1.'product_lang.name,'.
$str1.'product.id_product as id,'.
$str1.'product.quantity,'.
$str1.'product.price,'.
$str1.'product.weight,'.
$str1.'product_lang.description,'.
$str1.'product_lang.link_rewrite as url,'.
$str1.'category_lang.name as category,'.
$str1.'manufacturer.name as manufacturer,'.
$str1.'image.id_image '.

'FROM '.
$str1.'product_lang '.
'INNER JOIN ' .$str1.'product '.
'ON ('.$str1.'product_lang.id_product = '.$str1.'product.id_product) '.
'INNER JOIN ' .$str1.'image '.
'ON ('.$str1.'image.id_product = '.$str1.'product.id_product) '.
'INNER JOIN ' .$str1.'manufacturer '.
'ON ('.$str1.'manufacturer.id_manufacturer = '.$str1.'product.id_manufacturer) '.
'INNER JOIN ' .$str1.'category_lang '.
'ON ('.$str1.'category_lang.id_category = '.$str1.'product.id_category_default) '.
//'WHERE '.$str1.'product_lang.id_lang = 1 AND '.$str1.'category_lang.id_lang = 1';
    'WHERE '.$str1.'product_lang.id_lang = 1';
    $result = mysql_query($sql);

     header("Content-Type: text/xml; charset=ISO-8859-1");
     $output = '<?xml version="1.0" encoding="utf-8"?>
     <products>';
     while($row = mysql_fetch_assoc($result)):
     //echo "<br><br><b>text:</b>".$text = addslashes($text);
     $text = str_replace(chr(145), "\'", $text);
 $output .= '
<product>
    <id>'. $row['id'].'</id>
    <name><![CDATA['.$name.']]></name>
    <description><![CDATA['.$text.']]></description>
            <image><![CDATA['. 'http://'.$_SERVER['HTTP_HOST'].__PS_BASE_URI__.'img/p/'.$row['id'].'-'.$row['id_image'].'.jpg' .']]></image>
        <quantity><![CDATA['. $row['quantity'] .']]></quantity> 
        <price><![CDATA['. $row['price'] .']]></price>
        <weight>'. $row['weight'] .'</weight>
    <category><![CDATA['.$category.']]></category>
    <manufacturer><![CDATA['. $manufacturer.']]></manufacturer>
            <url><![CDATA['.'http://'.$_SERVER['HTTP_HOST'].'/product.php?id_product='.$row['id'].']]></url>

     </product>';
 endwhile;

 print $output .= '
 </products>';

Este es el procedimiento de la codificación que necesito seguir de Prestashop

<?php
       //Your class must have the same name than this file.

      class module_name extends Module
       {
      public function __construct()
       {

    //Name of your module. It must have the same name than the class
    $this->name = 'module_name';

    //You must choose an existing tab amongst the ones that are available
    $this->tab = 'You choose';

    //The version of your module. Do not forget to increment the version for each modification
    $this->version = '1.0';

    //The constructor must be called after the name has been set, but before you try to use any functions like $this->l()
    parent::__construct();

    //Name displayed in the module list
    $this->displayName = $this->l('Display Name on Back Office');

    //Short description displayed in the module list
    $this->description = $this->l('Description On Back Office');    
}

//You must implement the following methods if your module need to create a table, add configuration variables, or hook itself somewhere.
//-------------------------------
public function install()
{
    return parent::install();
}

public function uninstall()
{
    return parent::install();
}
//-------------------------------

//Display Configuration page of your module.
public function getContent()
{
    return 'Hello World!';
}

   }

 ?>

No hay solución correcta

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top