Доброго времени суток.
Недавно написал "патч" который позволяет imagecms версии с магазином работать с 1 папокй в которой шаблоны.
Обычно она работает с 2х папками (/commerce/ и /commerce/shop/default)
Согласитесь, не слишком то удобно бегать по папкам и искать нужные tpl файлы.
Итак... что бы заставить работать imagecms shop только с папкой /commerce/shop/default
1) Откройте файл /application/libraries/mabilis/Mabilis.class.php
2) После $file = preg_replace('/.tpl.tpl/', '.tpl', $file); (29 строка) пишем $xtpl = $this->config->tpl_path.'/shop/default/';
3) Заменяем $file_dir = $this->config->tpl_path . $file; на $file_dir = $xtpl . $file; и
$new_file_dir = $this->config->tpl_path . 'modules' . $newFile[1]; на $new_file_dir = $xtpl. 'modules' . $newFile[1];
4) После:
if (preg_match('/application\/modules/', $file_dir, $mm))
{
$newFile = explode('application/modules', $file_dir);
$new_file_dir = $xtpl. 'modules' . $newFile[1];
if (file_exists($new_file_dir))
{
$file_dir = $new_file_dir;
}
}
Пишем:
//////////START PATCH FUTEMP 0.1v///////////////
preg_match_all('@shop/default@i', $file_dir, $file_url_match);
preg_match_all('@/administrator/@', $file_dir, $file_url_admin);
//print_r($file_dir);
if (count($file_url_admin[0]) < 1)
{
if (count($file_url_match[0]) < 1)
{
preg_match_all('@SHOP_MENU@i', $file_dir, $file_match);
if (count($file_match) < 1)
{
$file_dir = preg_replace ('@/commerce/@i', '/commerce/shop/default/', $file_dir);
//$file_dir = preg_replace ('@/sidebar.tpl@i', '/sidebar_shop.tpl', $file_dir);
}
}
else
{
if (count($file_url_match[0]) > 1)
{
$file_dir = preg_replace ('@/commerce/shop/default/@i', '/commerce/', $file_dir);
$file_dir = preg_replace('@/sidebar.tpl@i', '/sidebar_site.tpl', $file_dir);
}
}
}
else
{
$file_dir = preg_replace ('@/shop/default/@i', '', $file_dir);
}
//print_r($file_dir);
//////////END PATCH FUTEMP 0.1v///////////////
5) Теперь идем в папку /templates/commerce/ переименовываем файл sidebar.tpl в sidebar_site.tpl
6) Копируем ВСЕ файлы и папки в /templates/commerce/ КРОМЕ папки shop В /templates/commerce/shop/default/ Если какойто файл потребует замены, отклоняйте его предложение.
Вот в принципе и все.
Если хотите что бы виджеты сохранялись именно в папку с шаблоном а не в корень папки коммерция, то зайдите в базу например через phpmyadmin найдите таблицу settings зайдите в нее и измените одно из полей где написано commerce на commerce/shop/default
После этого все должно работать нормально
Файл sidebar_site.tpl служит для всех остальных страниц которые не относятся к магазину это удобный вариант если вы хотите что бы магазин и остальные страницы сайта жили отдельной жизнью... Это поможет более гибко работать с шаблонами сайта.
Надеюсь эта статья кому ни будь поможет.
Прошу прошения за немного корявый код, если решусь выпустить все это дело в качестве модуля то позабочусь что бы все было нормально и вам бы не пришлось ползать по папкам и что то делать.
Есть проблема, теперь Страницы не показывает...Ссылку раскрывает но содежимое пустое...
ОтветитьУдалитьА какая версия imagecms у вас стоит?
Удалить