2015-02-24 1 views
2

J'ai posé cette question sur le forum d'OpenCart mais je n'ai pas obtenu de réponse alors j'essaie de le demander ici et j'espère avoir une bonne réponse :).ocmod, remplacer dans le contrôleur Opencart 2.0.1.1

Ok, passons à mon problème. J'essaie de supprimer le champ requis pour le nom du produit sur la page du produit dans admin. C'est parce que si vous avez une installation multilingue mais que vous voulez seulement nommer le produit pour 1 langue vous obtenez une erreur si vous ne le nommez pas dans toutes les langues (ouais c'est stupide).

Bien. Je sais comment rendre cela possible et je voulais le faire avec le nouveau OCMOD. Je l'ai testé dans des fichiers core "live" et ça marche comme il le devrait. Mais quand je l'implémente dans un fichier ocmod xml, il ne veut pas fonctionner.

 <file path="admin/view/template/catalog/product_form.tpl"> 
     <operation> 
     <search><![CDATA[ 
        <div class="form-group required"> 
        <label class="col-sm-2 control-label" for="input-name<?php echo $language['language_id']; ?>"><?php echo $entry_name; ?></label>]]></search> 
     <add position="replace"><![CDATA[ 
        <div class="form-group"> 
        <label class="col-sm-2 control-label" for="input-name<?php echo $language['language_id']; ?>"><?php echo $entry_name; ?></label> 
]]></add> 
     </operation> 
    </file> 

    <file path="admin/controller/catalog/product.php"> 
     <operation> 
     <search><![CDATA[ 
     foreach ($this->request->post['product_description'] as $language_id => $value) { 
     if ((utf8_strlen($value['name']) < 3) || (utf8_strlen($value['name']) > 255)) { 
      $this->error['name'][$language_id] = $this->language->get('error_name'); 
     } 

     if ((utf8_strlen($value['meta_title']) < 3) || (utf8_strlen($value['meta_title']) > 255)) { 
      $this->error['meta_title'][$language_id] = $this->language->get('error_meta_title'); 
     } 
     } 
]]></search> 
     <add position="replace"><![CDATA[ 

]]></add> 
     </operation> 
    </file> 


    <file path="admin/controller/setting/setting.php"> 
     <operation> 
     <search><![CDATA[ 
     if (isset($this->error['name'])) { 
     $data['error_name'] = $this->error['name']; 
     } else { 
     $data['error_name'] = ''; 
     } 
]]></search> 
     <add position="replace"><![CDATA[ 

]]></add> 
     </operation> 
    </file> 

J'espère que quelqu'un ici peut m'aider avec mon petit problème. Tout devrait bien fonctionner, mais d'une manière ou d'une autre ça ne marchera pas pour moi.

Répondre

0

J'ai le même problème, ce que je fais (comme une solution laide) pendant que je reçois une réponse ou trouver la bonne façon est une seule recherche en ligne avec l'index, comme:

<search index="131"><![CDATA[ 
    } 
]]></search> 

Ainsi, au lieu de la recherche :

<search><![CDATA[ 
    <div class="form-group required"> 
     <label class="col-sm-2 control-label" for="input-name<?php echo $language['language_id']; ?>"><?php echo $entry_name; ?></label> 
]]></search> 

Vous pouvez utiliser quelque chose comme:

<search index="X"><![CDATA[ 
    <div class="form-group required"> 
]]></search> 

Rappelez-vous que l'indice est 0 basé, et aussi le numéro de ligne dans les journaux.

+0

Merci pour votre aide! *Pouces vers le haut* –