Jump to content

frontcontroller override conflit


Recommended Posts

Bonjour,

 

J'ai créé 2 fonctions php dans mon frontcontroller dans le dossier override, elles me servent à renvoyer des infos à la vue,

mais voilà mon problème ça fait plusieurs fois que j'installe des plugins et qu'il fonctionne mal, car il y aurait des conflits,

Je ne vois pas du tout comment résoudre mon problème.

 

Merci d'avance,

 

Prestashop 1.6.1 : frontrollerController override

<?php
class FrontController extends FrontControllerCore
    {
        public function fbLikeCount($id,$appid,$appsecret) {
            $json_url ='https://graph.facebook.com/'.$id.'?access_token='.$appid.'|'.$appsecret.'&fields=fan_count';
            $json = file_get_contents($json_url);
            $json_output = json_decode($json);
            if($json_output->fan_count){
                $arr1 = str_split($json_output->fan_count);
                $html = '';
                for ($i = 0; $i < count($arr1); $i++) {
                    $html .= '<li>';
                    $html .= '<p class="up"><span>'.$arr1[$i].'</span></p>';
                    $html .= '<p class="down"><span>'.$arr1[$i].'</span></p>';
                    $html .= '</li>';
                }
                return $html;
            } else{
                return 0;
            }
        }

        private function scrape_insta($username) {
            $url = 'https://www.instagram.com/'.$username.'/?__a=1';
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, $url);                               
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            $output = curl_exec($ch);
            curl_close($ch);
            $data = json_decode($output);
            $insta_array = $data->{'user'}->{'media'}->{'nodes'};
            return $insta_array;
        }

        public function getInstagramPictures($name) {
            $results_array = Frontcontroller::scrape_insta($name);    
            $html = '';
            
            for ($i = 0; $i < 11; $i++) {
                $html .= '<div class="col-xs-3 block-insta"><a href="https://www.instagram.com/p/'.$results_array[$i]->{'code'}.'/?taken-by='.$name.'" target="_blank"><img src="'.$results_array[$i]->{'thumbnail_src'}.'"/></a></div>';
            }

            echo $html;
        }
    }

?> 

 

Edited by vprs (see edit history)
Link to comment
Share on other sites

Bonjour.

Il faudrait être plus spécifique et nous dire :

1. Ce que tu veux obtenir comme résultat

2. De quels conflits tu parles

Ensuite et surtout je ne pense pas qu'un override du Front Controller soit la bonne solution pour afficher de la donnée en provenance de Facebook et Instagram. Là c'est des modules qu'il faut.

Link to comment
Share on other sites

Merci :)

Alors concernant les fonctions elles sont appelées chacune dans des modules distincts, et je n'ai pas trouvé d'exemple pour mettre mes fonctions directement dans le module, je suis preneuse pour apprendre à le faire.

Concernant mes conflits, j'ai pu en savoir un peu plus, c'est en rapport avec un addon installé récemment, il ne fonctionne pas comme prévu et après avoir contacter le développeur, il suppose que mon souci provient d'un conflit avec des overrides, sauf que la plus part proviennent d'autres modules, je suis un peu perdu du coup :/

Il suppose que ça provient de ce fichier :

 

<?php
/**
 *   2009-2016 ohmyweb!
 *
 *   @author    ohmyweb <[email protected]>
 *   @copyright 2009-2016 ohmyweb!
 *   @license   Proprietary - no redistribution without authorization
 */
class Validate extends ValidateCore
{
    /*
    * module: dwfproductextrafields
    * date: 2017-12-03 23:05:54
    * version: 1.6.22
    */
    public static function isDbColumn($column)
    {
        return preg_match('/^[a-z0-9_]{0,127}$/', $column);
    }
}

 

Mais son expertise s'arrête là

Merci à vous

Link to comment
Share on other sites

Non mais vraiment il faudrait plus détailler. Là tout est vague et on comprend rien.

Quels sont les noms des modules qui ont besoin de récupérer des fluxs FB et Instagram ?

Quel est le nom du module qui a été installé récemment et qui ne fonctionne pas comme prévu ?

Et surtout c'est quoi ces conflits ??? Y a des messages d'erreurs ? Et si oui lesquels ?

Edited by BeComWeb
Conjugaison (see edit history)
Link to comment
Share on other sites

Récemment j'ai installé un module payant  :  https://addons.prestashop.com/en/share-buttons-comments/5025-social-plugins.html

mais impossible de le faire fonctionner normalement, il faut enregistrer l'id du compte facebook via la configuration du module mais rien ne s'enregistre.

Les développeurs du module ont vérifiés et pense qu'il s'agit d'un conflit avec mes fichiers override et entre autre le fichier "validate", sauf que celui-ci provient d'un autre module payant installé.

Et donc ils ne veulent pas rechercher plus, ce qui est normal,

Concernant mon fichier frontcontroller je l'avais mis avant que je reçoive la réponse des développeurs en pensant que l'erreur provenait de celui-ci étant donné que je l'ai ai rajouté moi même.

Les modules facebook et instagram sont des modules fait maison, et ils utilisent les fonctions du frontcontroller, je sais pas comment intégrer une fonction php directement dans le module, si vous avez un exemple je suis preneuse, afin d'optimiser mon code.

 

Merci

 

 

Link to comment
Share on other sites

Ah bin voilà, on progresse...

Donc pour l'override de la classe Validate. Vous renommez le fichier en Validate.php.test (peu importe le nom du moment qu'il ne corresponde pas à ce qu'attend PS). Ensuite vous allez supprimer le fichier cache/class_index.php et vous retestez le module "Social Plugins". SI ça fonctionne alors ça vient bien de l'override de Validate.php, sinon c'est autre chose.

Ensuite pour vos modules Facebook et Instagram, postez le code d'un des 2 ici, je vous dirai comment faire.

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