2013-09-30 6 views
1

У меня есть интернет-магазин с Prestashop 1.5.4.1, и я бы хотел использовать скрипт для обновления продуктов и других данных. Это скрипт (соответствующая часть):Prestashop: не удается переопределить класс AdminImportControllerCore

define('_PS_ADMIN_DIR_', getcwd()); 
include(_PS_ADMIN_DIR_.'/../config/config.inc.php'); 
include(_PS_ADMIN_DIR_.'/functions.php'); 
include_once '../controllers/admin/AdminImportController.php'; 

$import = New AdminImportControllerCore(); 
switch($_GET['entity']) { 
    case 0: 
     loadCategoriesPost(); 
     $import->categoryImport(); 
     break; 
    case 1: 
     loadProductsPost(); 
     $import->productImport(); 
     break; 
    ... 
} 

function loadCategoriesPost() { 
    ... 
} 

function loadProductsPost() { 
    ... 
} 

Когда вызов $ импортно> productImport() сделана, эта ошибка возникает:

PHP Fatal error: Cannot redeclare class AdminImportControllerCore in /var/www/shop/controllers/admin/AdminImportController.php 

Любой человек может мне помочь? Есть ли лучший способ для импорта CSV-данных (не используя инструмент импорта из панели администрирования Prestashop)? Я застрял в этом вопросе.

Спасибо!

+0

Попробуйте оставить 'суффикс Core' при создании экземпляра' AdminImportController'. Btw. Правильно: '$ import = new AdminImportController();' с небольшим «n» в 'new'. – klimpond

+1

удалите ядро, а также попытайтесь удалить оператор include для AdminImportControllerCore, возможно, он работает –

ответ

0

первую очередь не включают в себя контроллеры или классы от Presta, они будут автоматически загружены, второй, не называйте классов с суффиксом, удалить «ядро», треть, прекратить использование экземпляров контроллеров, как описано выше , Вы должны сделать код, получающий экземпляры классов не контроллером, поэтому, если вам нужен импорт, попробуйте проверить, какой код находится в $ import-> categoryImport(); метод, то вы увидите (или нет), что вы можете сделать это без контроллера.

касается ВОПОГ извините за мой английский

Смежные вопросы