Jump to content

Seo & Url : impossible d'utiliser bonton modifier = page blanche


Recommended Posts

Bonjour,

 

Dès que je clique sur le "bouton modifier", sur ma page "Seo & url" j'obtiens une page blanche.

Donc je suis dans l'impossibilité de changer quoi que se soit.

Après consultation du forum, j'ai appliqué la petite technique qui consiste à voir le message d'erreur.

le voici :

 

Parse error: syntax error, unexpected end of file, expecting function (T_FUNCTION) in /home/bougiepa/www/override/controllers/front/AddressController.php on line 6

 

Je ne sait absolument pas décripter les messages d'erreurs.....

 

Malgré toutes mes recherches sur ce forum, je ne trouve pas la solution à mon problème,

je solicite votre aide pour trouver une solution.

 

Merci.

 

 

Link to comment
Share on other sites

apparemment l'un de vos modules a installé un override du controller front d'adresses qui est foireux

pouvez-vous nous copier-coller la ligne 6 de ce fichier ?

 

Je ne sais pas exactement à partir d'où il faut compter, donc j'ai mis le début (dans l'espoir qu'il y a la partie que vous avez demandé) :

 

class AddressControllerCore extends FrontController

{

    public $auth = true;

    public $guestAllowed = true;

    public $php_self = 'address';

    public $authRedirection = 'addresses';

    public $ssl = true;

 

    /**

     * @var Address Current address

     */

    protected $_address;

 

    /**

     * Set default medias for this controller

     */

    public function setMedia()

    {

        parent::setMedia();

        $this->addJS(array(

            _THEME_JS_DIR_.'tools/vatManagement.js',

            _THEME_JS_DIR_.'tools/statesManagement.js',

            _PS_JS_DIR_.'validate.js'

 

Merci de votre aide  :)

Link to comment
Share on other sites

qu'est ce que c'est que ce "class AddressControllerCore extends FrontController" qui ne veut rien dire ?

 

Si vous ne savez pas à quoi sert cet override, essayez de le desactiver.

vous renommez ce fichier, par exemple AddressController_old.php

renommez également cache/class_index.php pour que la modif soit prise en compte.

et videz le cache smarty

 

Vous êtes sur quelle version Presta ?

Link to comment
Share on other sites

J'ai suivi vos instructions et j'obtient un autre message d'erreur :

 

Parse error: syntax error, unexpected '{' in /home/bougiepa/www/controllers/front/AddressController.php on line 28

 

 

Ci-dessous le fichier :

 

 

AddressController_old.php
{
    public $auth = true;
    public $guestAllowed = true;
    public $php_self = 'address';
    public $authRedirection = 'addresses';
    public $ssl = true;

    /**
     * @var Address Current address
     */
    protected $_address;

    /**
     * Set default medias for this controller
     */
    public function setMedia()
    {
        parent::setMedia();
        $this->addJS(array(
            _THEME_JS_DIR_.'tools/vatManagement.js',
            _THEME_JS_DIR_.'tools/statesManagement.js',
            _PS_JS_DIR_.'validate.js'
        ));
    }

    /**
     * Initialize address controller
     * @see FrontController::init()
     */
    public function init()
    {
        parent::init();

        // Get address ID
        $id_address = 0;
        if ($this->ajax && Tools::isSubmit('type'))
        {
            if (Tools::getValue('type') == 'delivery' && isset($this->context->cart->id_address_delivery))
                $id_address = (int)$this->context->cart->id_address_delivery;
            else if (Tools::getValue('type') == 'invoice' && isset($this->context->cart->id_address_invoice)
                        && $this->context->cart->id_address_invoice != $this->context->cart->id_address_delivery)
                $id_address = (int)$this->context->cart->id_address_invoice;
        }
        else
            $id_address = (int)Tools::getValue('id_address', 0);

        // Initialize address
        if ($id_address)
        {
            $this->_address = new Address($id_address);
            if (Validate::isLoadedObject($this->_address) && Customer::customerHasAddress($this->context->customer->id, $id_address))
            {
                if (Tools::isSubmit('delete'))
                {
                    if ($this->_address->delete())
                    {
                        if ($this->context->cart->id_address_invoice == $this->_address->id)
                            unset($this->context->cart->id_address_invoice);
                        if ($this->context->cart->id_address_delivery == $this->_address->id)
                        {
                            unset($this->context->cart->id_address_delivery);
                            $this->context->cart->updateAddressId($this->_address->id, (int)Address::getFirstCustomerAddressId(Context::getContext()->customer->id));
                        }
                        Tools::redirect('index.php?controller=addresses');
                    }
                    $this->errors[] = Tools::displayError('This address cannot be deleted.');
                }
            }
            elseif ($this->ajax)
                exit;
            else
                Tools::redirect('index.php?controller=addresses');
        }
    }

Link to comment
Share on other sites

c'est votre fichier controllers/front/AddressController.php ça ?

 

Oui, je confirme, je viens juste de vérifier c'est le début.... je n'ai pas tout mis.

Pourquoi? Ca ne va pas? Vous m'inquièté là !!!!!!!!

Link to comment
Share on other sites

on recapitule car je pense qu'il ya embrouille la.

 

D'origine vous devez avoir un fichier controllers/front/AddressController.php

qui commence comme ceci :

<?php
/*
* PLUSIEURS LIGNES SUR LA LICENCE PRESTASHOP
*/

class AddressControllerCore extends FrontController
{
	public $auth = true;
	public $guestAllowed = true;

Dans votre copier-coller ci-dessus il y a un "AddressController_old.php"

cette ligne est dans le code du fichier ?

remplacez la par class AddressControllerCore extends FrontController

 

ou mieux, retelecharger un Presta 1.6.0.6 vierge, et remplacez ce fichier.

 

Dans votre install, vous avez apparemment un fichier qui surcharge celui, qui est override/controllers/front/AddressController.php

 

Je vous demandais donc dans ma premiere intervention de renommer ce fichier pour qu'il ne soit plus utilisé.
Ca, apparemment ça a été fait puisque c'est bien controllers/front/AddressController.php qui est utilisé.

Link to comment
Share on other sites

Voilà le problème est résolu :) , la solution vous me l'aviez donné depuis le début,

sauf que j'ai mal compris un détail. :rolleyes:

Suite à votre dernier post j'ai tout repris depuis le début, la bonne manipulation est celle-ci :

 

 

vous renommez ce fichier, par exemple AddressController_old.php

renommez également cache/class_index.php pour que la modif soit prise en compte.

et videz le cache smarty

 

 

Merci beaucoup ChDUP pour votre aide.

Link to comment
Share on other sites

attention

Cette manip permet de voir que le problème vient bien de cet override.

Ici, on l'a supprimé.

Mais cet override a bien été installé soit par quelqu'un, soit par un module et devait servir à quelque chose.

Il faut pister de quoi il vient et à quoi il servait.

Quelque chose de special au niveau des adresses des clients sur votre site ?

Link to comment
Share on other sites

Le seul truc étrange au niveau des clients sur une des dernières inscriptions (pas de commandes passées)

- inscription le 10/07/2014

- une commande #6 du 05/05/2014

et quand je clic sur la fameuse commande, j'obtiens une page blanche avec ce message d'erreur :

Fatal error: Call to a member function hasBeenShipped() on a non-object in /home/bougiepa/www/controllers/admin/AdminOrdersController.php on line 261

 

ci-dessous le début du fichier :

 

<?php
/*
* 2007-2014 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to [email protected] so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
*  @author PrestaShop SA <[email protected]>
*  @copyright  2007-2014 PrestaShop SA
*  @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
*  International Registered Trademark & Property of PrestaShop SA
*/

class AdminOrdersControllerCore extends AdminController
{
    public $toolbar_title;
    
    protected $statuses_array = array();

    public function __construct()
    {
        $this->bootstrap = true;
        $this->table = 'order';
        $this->className = 'Order';
        $this->lang = false;
        $this->addRowAction('view');
        $this->explicitSelect = true;
        $this->allow_export = true;
        $this->deleted = false;
        $this->context = Context::getContext();

        $this->_select = '
        a.id_currency,
        a.id_order AS id_pdf,
        CONCAT(LEFT(c.`firstname`, 1), \'. \', c.`lastname`) AS `customer`,
        osl.`name` AS `osname`,
        os.`color`,
        IF((SELECT COUNT(so.id_order) FROM `'._DB_PREFIX_.'orders` so WHERE so.id_customer = a.id_customer) > 1, 0, 1) as new,
        country_lang.name as cname,
        IF(a.valid, 1, 0) badge_success';

        $this->_join = '
        LEFT JOIN `'._DB_PREFIX_.'customer` c ON (c.`id_customer` = a.`id_customer`)
        INNER JOIN `'._DB_PREFIX_.'address` address ON address.id_address = a.id_address_delivery
        INNER JOIN `'._DB_PREFIX_.'country` country ON address.id_country = country.id_country
        INNER JOIN `'._DB_PREFIX_.'country_lang` country_lang ON (country.`id_country` = country_lang.`id_country` AND country_lang.`id_lang` = '.(int)$this->context->language->id.')
        LEFT JOIN `'._DB_PREFIX_.'order_state` os ON (os.`id_order_state` = a.`current_state`)
        LEFT JOIN `'._DB_PREFIX_.'order_state_lang` osl ON (os.`id_order_state` = osl.`id_order_state` AND osl.`id_lang` = '.(int)$this->context->language->id.')';
        $this->_orderBy = 'id_order';
        $this->_orderWay = 'DESC';

        $statuses = OrderState::getOrderStates((int)$this->context->language->id);
        foreach ($statuses as $status)
            $this->statuses_array[$status['id_order_state']] = $status['name'];

        $this->fields_list = array(
            'id_order' => array(
                'title' => $this->l('ID'),
                'align' => 'text-center',
                'class' => 'fixed-width-xs'
            ),
            'reference' => array(
                'title' => $this->l('Reference')
            ),
            'new' => array(
                'title' => $this->l('New client'),
                'align' => 'text-center',
                'type' => 'bool',
                'tmpTableFilter' => true,
                'orderby' => false
            ),
            'customer' => array(
                'title' => $this->l('Customer'),
                'havingFilter' => true,
            ),
        );
 

 

Ha mince, ligne 261, j'en ai pas assez mis, si il faut dites-moi comment vous joindre le fichier.

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

Excusez-moi, j'ai un peu de mal à suivre, c'est pas facile pour les novices....

 

j' ai un texte sur les fiches clients qui me dit ceci :

Aucun gabarit trouvé pour le module referralprogram

 

je recherche au niveau des modules.....en mettant le nom dans la recherche j'obtiens ce module :

Programme de parrainage v1.5.8 - by PrestaShop

 

Le problème viendrait de celui-là? Faut-il le désinstaller?

Link to comment
Share on other sites

Oui on est 2 à travailler sur le site (c'est ma collègue qui a installé les modules),

Elle me dit qu'elle avait installé plusieurs modules et suite à ça, le problème du SEO est apparut.

Elle ne sait pas lequel à pu éventuellement provoquer le problème...

Après j'ai recherché au niveau des modules (adresse/livraison), j'ai que ceux-ci d'actifs

  logo.png
Transporteur et Logistique
Mondial Relay v2.0.3 - by PrestaShop - Officiel

Livrez vos colis en Point Relais®

logo.png
Transporteur et Logistique
Date de livraison v1.4.1 - by PrestaShop

Afficher une date approximative de livraison

 

Par contre Mondial Relay "bug" (je suis le sujet qui est en cours), est-ce que ça peut -être lié?

Link to comment
Share on other sites

le module mondial relay semble être un sacré souci en effet.

Si vous essayez de le desinstaller/réinstaller, vous pouvez regarder si il recrée ce fameux fichier d'override ?

(ou peut être simplement en le réinitialisant)

Link to comment
Share on other sites

J'ai désinstaller et réinstaller les 2 modules séparément en vérifiant bien à chaque fois,

ça n'a pas recrée le fichier d'override.

 

Je poursuis mes recherches au niveau des modules.....

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