Перейти к содержимому


Правила форума

Внимание!!! Если не можете скачать, пожалуйста ознакомьтесь с условиями получения доступа с файлам форума. Правила форума


ShopCMS 3.1.3 Доводим до "ума"

ShopCMS

Сообщений в теме: 25

Опрос: Дороботка ShopCMS - голосование (7 пользователей проголосовало)

Хотите ли вы принять участие в доработке ShopCMS?

  1. Да (4 голосов [57.14%] - Просмотр)

    Процент голосов: 57.14%

  2. Нет (3 голосов [42.86%] - Просмотр)

    Процент голосов: 42.86%

Голосовать Гости не могут голосовать

#21 Robby

    Продвинутый пользователь

  • Assistent vsupport.ru
  • PipPipPip
  • 161 сообщений
Репутация: 75
Продвинутый

Отправлено 14 января 2016 - 00:06

Нашлось одно неудобство. Если в магазине есть несколько шаблонов, и в пользовательской части позволить их изменять, то будут всякие неожиданности из-за существующего кэша. По хорошему при смене шаблона нужно очистить кэш.
Чтобы это сделать нужно в index.php найти код
    if (isset($_POST["change_design"]))
        $_SESSION['CUSTOM_DESIGN'] = $_POST["change_design"];
и изменить его так:

    if (isset($_POST["change_design"])){
        $_SESSION['CUSTOM_DESIGN'] = $_POST["change_design"];
       // очищаем все файлы кэша
      $smarty->clear_all_cache();
}


#22 badisoft

    Продвинутый пользователь

  • VIP
  • 5 006 сообщений
Репутация: 766
Мастер

Отправлено 14 января 2016 - 12:35

Просмотр сообщенияRobby сказал:

и изменить его так:
Это не поможет. Кэш один, а клиентов несколько с разным шаблоном, будут глюки.
лучше так:
В файле index.php после
$smarty_mail->template_dir = "core/tpl/email";

вставляем
$smarty->compile_id = TPL;

тогда у кэш-файлов разных шаблонов будут разные имена (префиксы).
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#23 Robby

    Продвинутый пользователь

  • Assistent vsupport.ru
  • PipPipPip
  • 161 сообщений
Репутация: 75
Продвинутый

Отправлено 14 января 2016 - 13:24

Просмотр сообщенияbadisoft сказал:

Это не поможет. Кэш один, а клиентов несколько с разным шаблоном, будут глюки.
Похоже что именно так и будет...
Тестовый сайт test.needful.co.ua
На косяки с кодировками в некоторых местах и в шаблонах пока внимание не обращаем.
Используется обновленная капча, кнопки плюс-минус в добавление товара, аякс оценка товара. Кому интересно может посмотреть.
Демо базу позже сделаю, сейчас не успеваю.
Доступа к админке нет! Работает сайт на PHP 5.6

#24 kery

    Продвинутый пользователь

  • Assistent vsupport.ru
  • PipPipPip
  • 128 сообщений
Репутация: 16
Начинающий

Отправлено 19 января 2016 - 08:23

Обновляем shopcms для перехода на версию php 5.4 +

Удаляем вызовы
session_unregister
которые устарели для работы ajax козины в php 5.4

1.в файле cart_functions.php
удаляем все вызовы
session_unregister

1.1 в файле functions.php
удаляем все вызовы
session_unregister

1.2 в файле order_functions.php
удаляем все вызовы
session_unregister

1.3 в файле registration_functions.php
удаляем все вызовы
session_unregister

1.4 в файле authorization.php
удаляем все вызовы
session_unregister

1.5 в файле last_items_view_new.php
строку
{ session_unregister("last_items_view"); }
заменяем на
{ unset($_SESSION["last_items_view"]); }

1.5 в файле quick_order.php
удаляем все вызовы
session_unregister

1.6 в файле shopping_cart.php
удаляем все вызовы
session_unregister

1.7 в файле modules.export_products.php
удаляем все вызовы
session_unregister

1.8 в файле cart.php
удаляем все вызовы
session_unregister

Удаляем передачу по ссылке
&
которая изменилась в php 5.4

2. в файле class.ajax.php
строку
$JsHttpRequest = & new JsHttpRequest(DEFAULT_CHARSET);
заменяем на
//$JsHttpRequest = & new JsHttpRequest(DEFAULT_CHARSET);
$JsHttpRequest =  new JsHttpRequest(DEFAULT_CHARSET);

2.1 в файле compare.php
строку
$JsHttpRequest = & new JsHttpRequest(DEFAULT_CHARSET);
заменяем на
//$JsHttpRequest = & new JsHttpRequest(DEFAULT_CHARSET);
$JsHttpRequest =  new JsHttpRequest(DEFAULT_CHARSET);


Заменяем функцию ereg которая устарела с php 5.4

3. в файле setting_functions.php в двух местах
строку
if ((!ereg("[.]",$file)))
заменяем на
//if ((!ereg("[.]",$file)))
if ((!preg_match("/[.]/",$file)))

3.1 в файле class.htmlparser.php
строку
return ereg ("^[A-Za-z0-9_\\-]+$", $name);
заменяем на
 //return ereg ("^[A-Za-z0-9_\\-]+$", $name);
return preg_match ("/^[A-Za-z0-9_\\-]+$/", $name);

3.2 в файле class.phpmailer.php
строку
 if(eregi('^(.+):([0-9]+)$', $hosts[$index], $hostinfo))
заменяем на
//if(eregi('^(.+):([0-9]+)$', $hosts[$index], $hostinfo))
if(preg_match('/^([^:]+):([0-9]+)$/', $hosts[$index], $hostinfo))

3.3 в файле catalog_excel_export.php
строку
if(ereg("[$d$q\n\r]", $field))
заменяем на
//if(ereg("[$d$q\n\r]", $field))
if(preg_match("/[$d$q\n\r]/", $field))

3.4 в файле conf_blocks_edit.php
строку
if ((ereg("[html]",$file)))
на
//if ((ereg("[html]",$file)))
if ((preg_match("/[html]/",$file)))

Модернизируем функцию htmlspecialchars и html_entity_decode которая в php 5.4 по умолчнию стала в кодировке UTF-8, добавляем
кодировку cp1251

4. в файле class.ajax.php
строку
return htmlspecialchars($s, 'ENT_COMPAT | ENT_HTML401');
заменяе на
//return htmlspecialchars($s, 'ENT_COMPAT | ENT_HTML401');
return htmlspecialchars($s, 'ENT_COMPAT | ENT_HTML401', 'cp1251' );

4.1 в файле functions.php
два вхождения строки
return htmlspecialchars($_data, ENT_QUOTES);
заменяем на
//return htmlspecialchars($_data, ENT_QUOTES);
return htmlspecialchars($_data, ENT_QUOTES, 'cp1251');
строку
$str = htmlspecialchars(trim($str), ENT_QUOTES);
заменяем на
//$str = htmlspecialchars(trim($str), ENT_QUOTES);
$str = htmlspecialchars(trim($str), ENT_QUOTES, 'cp1251');
строку
return html_entity_decode($_Data, ENT_QUOTES);
заменяем на
//return html_entity_decode($_Data, ENT_QUOTES);
return html_entity_decode($_Data, ENT_QUOTES, 'cp1251');

5. Качаем и заменяем class asido в посте http://vsupport.ru/t...dpost__p__34156

По установленным у меня модулям, у вас если их нет то править не нужно

1.Дополнение которое меняет шаблон при заходе с мобильного
в файле is_mobile.php
строку
if ((!ereg("[.]",$file)))
меняем на
//if ((!ereg("[.]",$file)))
if ((!preg_match("/[.]/",$file)))
в файле admin.php
строку
if ($file != ".htaccess" && $file != "." && $file != "..") unlink($path."/".$file);
меняем на
if ($file != ".htaccess" && $file != "." && $file != "..") @unlink($path."/".$file);

2. Дополнение Карта сайта доделаная для модуля Простенький модуль ЧПУ, версия 2
выдает ошибку при удалении заказа из корзины с включенными ошибками т.е. посылает тело страницы и поэтому не посылаются заголовки и не срабатывает location в functions.php on line 72
Warning: Cannot modify header information - headers already sent by (output started at modules_xml_sitemap.php:87.......... functions.php on line 72
с этим дополнением надо разбираться или удалять карту сайту или включать буферизацию в php.ini или если позволяет хостер в
в файле .htaccess
php_value output_buffering		 1
но при включенной буферизации не будет работать Простенький модуль ЧПУ, версия 2.

По остальным модулям дальнейшей проверкой буду отписываться.

#25 Robby

    Продвинутый пользователь

  • Assistent vsupport.ru
  • PipPipPip
  • 161 сообщений
Репутация: 75
Продвинутый

Отправлено 20 января 2016 - 10:44

В шаблоне скрипта файл links_exchange.tpl.html содержит включения файла header.tpl который удален в версии 3.1.3 поэтому удаляем в этом файле строку:
{include file="header.tpl.html" header=$postheader}
Сейчас немного обновлю тестовый сайт. Подправлены темы оформления, исправлено голосование в карточке детального описания товара в IE (это своеобразный браузер :) ) когда после отправки запроса не удалялась подсказка.

#26 Salp

    Продвинутый пользователь

  • Assistent vsupport.ru
  • PipPipPip
  • 209 сообщений
Репутация: 54
Продвинутый

Отправлено 27 октября 2016 - 15:16

Просмотр сообщенияRobby сказал:

Тестовый сайт test.needful.co.ua
Техническое обслуживание
Приносим свои извинения за временные неудобства