Jump to content

Modifier le classe "EditorialClass.php"


Claw

Recommended Posts

Bonjour, :)

 

Prestashop v1.4.4

 

Voilà je souhaiterais modifier la classe EditorialClass car j'aurais des champs perso à ajouter (bon ça c'est pas gagné je ne l'ai jamais fait encore! :lol: ).

 

J'ai vu que si on voulait modifier une classe sans toucher au coeur de Prestashop on devait copier et modifier cette dernière dans le répertoire /override/classes/.

 

Ensuite pour que ça marche, j'ai vu qu'il fallait modifier la première ligne de la classe comme ci-dessous (exemple):

class ProductCore extends ObjectModel

remplacée par

class Product extends ProductCore

 

 

 

Mon problème est que si j'ouvre la classe EditorialClass.php, j'ai :

class EditorialClass extends ObjectModel

 

 

sous-entendu je pensais avoir une ligne qui ressemblerait à ça :

class EditorialCore extends ObjectModel

 

 

Est-ce que je dois créer une ligne qui ressemble à ça :

class Editorial extends EditorialClass ?

 

 

Et si oui, dois-je renommer mon fichier EditorialClass.php en Editorial.php ?

 

 

Merci bcp par avance, c'est encore assez flou pour moi ces histoires de classes et cie !

 

Claw

Link to comment
Share on other sites

Salut,

 

En fait concernant la modifications de classe à reporter dans le dossier "override/classes/", ça ne fonctionne qu'avec les classes qui sont dans le dossier "classes/" en général.

 

Là pour modifier ta classe, tu dois le faire dans le dossier du module directement. Il n'y a hélas, pas d'autre moyen pour le moment.

Link to comment
Share on other sites

Salut Pierre-Yves et merci beaucoup pour ton retour, je voulais juste avoir cette confirmation ! :)

 

Bon maintenant j'ai plus qu'à me remonter les manches, en l'occurrence pourvoir récupérer des URLs saisies en BO dans des nouveaux champs de l'editorial bloc.

Pas gagné ... mais pas perdu non plus ! On y croit... ^_^

Link to comment
Share on other sites

Salut! :)

 

Je reviens par ici car je désespère un peu ! :mellow:

Il me manque un élément et je n'arrive pas à savoir où ça coince... et j'aurais besoin d'un coup d'main svp ...

 

En fait j'ai ajouté dans l'editorial block:

- côté FO : un slider d'images, 6 max, cliquables si l'on veut

- coté BO - module éditorial block: 6 input files (pour les images à uploader) avec pour chacun d'entre eux, un input text en dessous pour saisir une URL si on souhaite que l'image soit cliquable dans le slider.

 

Côté FO, le slider fonctionne bien, je récupère bien mes images, et elles sont bien cliquables si une URL a été associée...

 

...MAIS ...

 

....côté BO j'ai un souci.... :

qd je remplie un ou plusieurs champs d'URL, cette ou ces URLs va/vont bien s'enregistrer en BDD dans la table "ps_editorial_lang" dans les 6 nouveaux champs correspondants que j'ai créé (=> body_url_img_n" (où n = 1, 2, 3 4 , 5 ou 6)) MAIS une fois la mise à jour effectuée, les champs d'URLs côté BO sont remis à blanc et je n'arrive pas à comprendre pourquoi.

 

Pour créer/gérer ces 6 nouveaux champs d'URL côté BO, je me suis appuyé sur ce qui avait été fait pour les autres champs comme le "body_title"... mais visiblement il manque un truc. :(

 

Voilà ce que j'ai fait au niveau "editorial.php":


[.....]

$e=1; // Sert à identifier le chiffre des noms des images
// On lance une boucle qui parcourt l'array d'images du slider
for($i=0; $i<count($this->listeImg); $i++) {
 // Le nom de l'image
 $nameImg = $this->listeImg[$i];
 // Son chemin complet
 $cheminImg = $this->_path.$nameImg.'.jpg';

 // Div contenant 3 input:
 // 1 pour uploader une image
 // 1 autre de type checkbox qui permet de pouvoir supprimer l'image
 // 1 champ d'URL pour que l'image soit cliquable dans le slider
 $this->_html .= '
  <div class="margin-form"><hr /><br />
  Image '.$e.' : <input type="file" name="'.$nameImg.'" /><br /><br /><br />
  <input type="checkbox" name="sup_'.$nameImg.'" /> Cochez la case pour supprimer l\'image ci-dessous<br /><br />';

 // Affichage de l'image une fois uploadée:
 if(file_exists(dirname(__FILE__).'/'.$nameImg.'.jpg'))
  $this->_html .= '<img style="width:275px; height:139px;" src="'.$cheminImg.'" alt="" title="" /><br /><br />';
	 foreach ($languages as $language)
 {
  $this->_html .= '
  <div id="body_url_img_'.$e.'_'.$language['id_lang'].'" style="display: '.($language['id_lang'] == $defaultLanguage ? 'block' : 'none').';float: left;">
   URL '.$e.'   : <input type="text" name="body_url_img_'.$e.'_'.$language['id_lang'].'" id="body_url_img_'.$e.'_'.$language['id_lang'].'" size="64" value="'.(isset($editorial->body_url_img_1_[$language['id_lang']]) ? $editorial->body_url_img_1_[$language['id_lang']] : '').'" /><br />  
  </div>'; // <== j'ai aussi un souci ici au niveau du value, je voudrais mettre un truc du genre '.isset($editorial->body_url_img_.$e._[$language['id_lang']]) ? ...' mais j'arrive pas a integrer le "$e" sans que ca me fasse pas une erreur de syntaxe  )
 }

 /*$this->_html .= $this->displayFlags($languages, $defaultLanguage, $divLangName, 'body_url_img', true);*/

 $this->_html .= '</div><br />';
 $e++; // On incrémente le numéro de l'image
}

$this->_html .='<hr /><br />

[.....]

 

Merci bcp par avance pour votre aide.

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...