Kors Опубликовано 13 ноября, 2016 Жалоба Поделиться Опубликовано 13 ноября, 2016 Скажите, как Cookie сохранять? Чтобы после закрытия браузера оставались товары в избранном и в сравнении ?Спасибо. Специально для сохранения Cookie ничего не предусмотрено. Куки можно создавать с указанием времени жизни. Смотрите мануалы или рабочий код, например, в view/ProductView.php.Чтобы после закрытия браузера оставались товары в избранном и в сравнении, надо переделывать всю работу, заменяя сессии на куки. Образец - стандартная работа Simpla с последними просмотренными... Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 13 ноября, 2016 Жалоба Поделиться Опубликовано 13 ноября, 2016 Скажите, как Cookie сохранять? Чтобы после закрытия браузера оставались товары в избранном и в сравнении ?Спасибо.Примеров в сети море. Цитата Ссылка на сообщение Поделиться на другие сайты
MStyle28 Опубликовано 28 ноября, 2016 Жалоба Поделиться Опубликовано 28 ноября, 2016 Такая проблема,раньше на сайте были товары,их люди добавили в закладки и сравнения,потом товары с сайта удалили,но в информерах кол-во этих товаров осталось.При заходе на страницы "Избранное" и "Сравнения" пусто.Но в информерах отображаются цифры. Цитата Ссылка на сообщение Поделиться на другие сайты
xikarx Опубликовано 15 января, 2017 Жалоба Поделиться Опубликовано 15 января, 2017 (изменено) Народ, помогите решить проблему, пожалуйста.При добавлении в списки избранного - на информере появляется "уже в списке", а при переходе на страницу /wishlist - имею "товары не найдены."при этом добавление в списки сравнения работает полностью корректно.Simpla 2.2.4,php 5.3 и второе - у товаров, которые выводятся на главной странице - при перезагрузке страницы информеры сбрасываются (т.е. добавишь в спсикис равнения, перезагрузишь страницу - информер снова показывает "добавить к сравнению". при этом на странице сравнения товар уже есть.). На других страницах сайта - информеры работает корректно. подключенные библиотеки:: jquerry 3.1.0jquerry.migrate.1.4.1 что сделано: в ajax/product_to_session.php добавлено chdir('..');require_once('api/Simpla.php'); в product_to_session.js менял .live на .on и обратно - без результата. где еще искать траблу - не соображу. в общем не откажите в совете, хотя бы.. Изменено 15 января, 2017 пользователем xikarx Цитата Ссылка на сообщение Поделиться на другие сайты
xikarx Опубликовано 22 января, 2017 Жалоба Поделиться Опубликовано 22 января, 2017 все, решил проблему Цитата Ссылка на сообщение Поделиться на другие сайты
Alexand25 Опубликовано 21 февраля, 2017 Жалоба Поделиться Опубликовано 21 февраля, 2017 (изменено) Добрый деньСимпла 2.3.7Сделал все по инструкции, но выдает:Fatal error: Uncaught --> Smarty Compiler: Syntax error in template "/home/c17525/public_html/dobrii-ogon.ru/design/media_42018/html/index.tpl" on line 97 "{get_session_products key=compare}" unknown tag "get_session_products" <-- thrown in /home/c17525/public_html/dobrii-ogon.ru/Smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php on line 97 При заходе в любую категорию аналогично Спасибо за помощь заранее! Изменено 21 февраля, 2017 пользователем Alexand25 Цитата Ссылка на сообщение Поделиться на другие сайты
Smartycms Опубликовано 21 февраля, 2017 Жалоба Поделиться Опубликовано 21 февраля, 2017 Добрый деньСимпла 2.3.7Сделал все по инструкции, но выдает:Fatal error: Uncaught --> Smarty Compiler: Syntax error in template "/home/c17525/public_html/dobrii-ogon.ru/design/media_42018/html/index.tpl" on line 97 "{get_session_products key=compare}" unknown tag "get_session_products" <-- thrown in /home/c17525/public_html/dobrii-ogon.ru/Smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php on line 97 При заходе в любую категорию аналогично Спасибо за помощь заранее! Вы видимо в view/View.php правки не внесли, или внесли но не правильно Цитата Ссылка на сообщение Поделиться на другие сайты
Alexand25 Опубликовано 21 февраля, 2017 Жалоба Поделиться Опубликовано 21 февраля, 2017 Вы видимо в view/View.php правки не внесли, или внесли но не правильно Вставил блок сравнения с данными тегами, но сайт говорит что не знает их: <?PHP /** * Newcms CMS * * * Базовый класс для всех View * */ require_once('api/Newcms.php'); class View extends Newcms { /* Смысл класса в доступности следующих переменных в любом View */ public $currency; public $currencies; public $user; public $group; public $page; /* Класс View похож на синглтон, храним статически его инстанс */ private static $view_instance; public function __construct() { parent::__construct(); // Если инстанс класса уже существует - просто используем уже существующие переменные if(self::$view_instance) { $this->currency = &self::$view_instance->currency; $this->currencies = &self::$view_instance->currencies; $this->user = &self::$view_instance->user; $this->group = &self::$view_instance->group; $this->page = &self::$view_instance->page; } else { // Сохраняем свой инстанс в статической переменной, // чтобы в следующий раз использовать его self::$view_instance = $this; // Все валюты $this->currencies = $this->money->get_currencies(array('enabled'=>1)); // Выбор текущей валюты if($currency_id = $this->request->get('currency_id', 'integer')) { $_SESSION['currency_id'] = $currency_id; header("Location: ".$this->request->url(array('currency_id'=>null))); } // Берем валюту из сессии if(isset($_SESSION['currency_id'])) $this->currency = $this->money->get_currency($_SESSION['currency_id']); // Или первую из списка else $this->currency = reset($this->currencies); // Пользователь, если залогинен if(isset($_SESSION['user_id'])) { $u = $this->users->get_user(intval($_SESSION['user_id'])); if($u && $u->enabled) { $this->user = $u; $this->group = $this->users->get_group($this->user->group_id); } } // Текущая страница (если есть) $subdir = substr(dirname(dirname(__FILE__)), strlen($_SERVER['DOCUMENT_ROOT'])); $page_url = trim(substr($_SERVER['REQUEST_URI'], strlen($subdir)),"/"); if(strpos($page_url, '?') !== false) $page_url = substr($page_url, 0, strpos($page_url, '?')); $this->page = $this->pages->get_page((string)$page_url); $this->design->assign('page', $this->page); // Передаем в дизайн то, что может понадобиться в нем $this->design->assign('currencies', $this->currencies); $this->design->assign('currency', $this->currency); $this->design->assign('user', $this->user); $this->design->assign('group', $this->group); $this->design->assign('config', $this->config); $this->design->assign('settings', $this->settings); // Настраиваем плагины для смарти $this->design->smarty->registerPlugin("function", "get_posts", array($this, 'get_posts_plugin')); $this->design->smarty->registerPlugin("function", "get_brands", array($this, 'get_brands_plugin')); $this->design->smarty->registerPlugin("function", "get_browsed_products", array($this, 'get_browsed_products')); $this->design->smarty->registerPlugin("function", "get_featured_products", array($this, 'get_featured_products_plugin')); $this->design->smarty->registerPlugin("function", "get_new_products", array($this, 'get_new_products_plugin')); $this->design->smarty->registerPlugin("function", "get_discounted_products", array($this, 'get_discounted_products_plugin')); $this->design->smarty->registerPlugin("function", "get_popular_products", array($this, 'get_popular_products_plugin')); } } /** * * Отображение * */ function fetch() { return false; } // SimplaDev DaVinci MyList public function add_product_session_plugin($params, &$smarty) { $key = $params['key']; $id = $params['id']; if(empty($key) && empty($id)) return false; if(!$this->design->smarty->templateExists('products_session_'.$key.'_informer.tpl')) return false; $product = $this->products->get_product((int)$id); if(empty($product)) return false; $_SESSION[$key][$product->id] = $product->id; } public function remove_product_session_plugin($params, &$smarty) { if(!empty($params['key']) && $params['remove'] && !empty($_SESSION[$params['key']][$params['remove']])) { unset($_SESSION[$params['key']][$params['remove']]); } } public function get_session_products_plugin($params, &$smarty) { if(!empty($_SESSION[$params['key']])) { $result->key = $params['key']; // ключ $result->ids = $_SESSION[$params['key']]; // сессия $result->count = count($_SESSION[$params['key']]); // количество $smarty->assign($params['key'], $result); } } public function get_products_plugin($params, &$smarty) { if(!empty($params['var'])) { if(!empty($params['get_session_products'])){ if(!empty($_SESSION[$params['get_session_products']])){ $params['id'] = $_SESSION[$params['get_session_products']]; $params['visible'] = 1; } else{ return false; } } foreach($this->products->get_products($params) as $p) $products[$p->id] = $p; if(!empty($products)) { $products_ids = array_keys($products); $variants = $this->variants->get_variants(array('product_id'=>$products_ids, 'in_stock'=>true)); foreach($variants as &$variant) { $products[$variant->product_id]->variants[] = $variant; } $images = $this->products->get_images(array('product_id'=>$products_ids)); foreach($images as $image) $products[$image->product_id]->images[] = $image; if(!empty($params['data_features'])){ $properties = $this->features->get_product_options($products_ids); foreach($properties as $property) $products[$property->product_id]->options[] = $property; } if(!empty($params['data_categories'])){ $categories = $this->categories->get_categories(array('product_id'=>$products_ids)); $product_categories = $this->categories->get_product_categories($products_ids); foreach($product_categories as $category) $products[$category->product_id]->categories[$category->category_id] = $categories[$category->category_id]; } foreach($products as &$product) { if(isset($product->variants[0])) $product->variant = $product->variants[0]; if(isset($product->images[0])) $product->image = $product->images[0]; if(!empty($product->categories)) $product->category = reset($product->categories); } } $smarty->assign($params['var'], $products); } } // SimplaDev DaVinci MyList END /** * * Плагины для смарти * */ public function get_posts_plugin($params, &$smarty) { if(!isset($params['visible'])) $params['visible'] = 1; if(!empty($params['var'])) { $posts = $this->blog->get_posts($params); if(!empty($posts)) foreach($posts as $post) $post->comments_count = $this->comments->count_comments(array('type'=>'blog', 'object_id'=>$post->id, 'approved'=>1)); $smarty->assign($params['var'], $posts); } } /** * * Плагины для смарти * */ public function get_brands_plugin($params, &$smarty) { if(!isset($params['visible'])) $params['visible'] = 1; if(!empty($params['var'])) $smarty->assign($params['var'], $this->brands->get_brands($params)); } public function get_browsed_products($params, &$smarty) { if(!empty($_COOKIE['browsed_products'])) { $browsed_products_ids = explode(',', $_COOKIE['browsed_products']); $browsed_products_ids = array_reverse($browsed_products_ids); if(isset($params['limit'])) $browsed_products_ids = array_slice($browsed_products_ids, 0, $params['limit']); $products = array(); foreach($this->products->get_products(array('id'=>$browsed_products_ids, 'visible'=>1)) as $p) $products[$p->id] = $p; // Категория товара $categories = $this->categories->get_product_categories($browsed_products_ids); foreach($categories as $cat) $products[$cat->product_id]->category = $this->categories->get_category((int)$cat->category_id); $variants = $this->variants->get_variants(array('product_id'=>$browsed_products_ids, 'in_stock'=>true)); foreach($variants as &$variant) $products[$variant->product_id]->variants[] = $variant; $browsed_products_images = $this->products->get_images(array('product_id'=>$browsed_products_ids)); foreach($browsed_products_images as $browsed_product_image) if(isset($products[$browsed_product_image->product_id])) $products[$browsed_product_image->product_id]->images[] = $browsed_product_image; foreach($browsed_products_ids as $id) { if(isset($products[$id])) { if(isset($products[$id]->images[0])) $products[$id]->image = $products[$id]->images[0]; if(isset($products[$id]->variants[0])) $products[$id]->variant = $products[$id]->variants[0]; $result[] = $products[$id]; } } $smarty->assign($params['var'], $result); } } public function get_featured_products_plugin($params, &$smarty) { if(!isset($params['visible'])) $params['visible'] = 1; $params['featured'] = 1; if(!empty($params['var'])) { foreach($this->products->get_products($params) as $p) $products[$p->id] = $p; if(!empty($products)) { // id выбраных товаров $products_ids = array_keys($products); // Категория товара $categories = $this->categories->get_product_categories($products_ids); foreach($categories as $cat) $products[$cat->product_id]->category = $this->categories->get_category((int)$cat->category_id); // Выбираем варианты товаров $variants = $this->variants->get_variants(array('product_id'=>$products_ids, 'in_stock'=>true)); // Для каждого варианта foreach($variants as &$variant) { // добавляем вариант в соответствующий товар $products[$variant->product_id]->variants[] = $variant; } // Выбираем изображения товаров $images = $this->products->get_images(array('product_id'=>$products_ids)); foreach($images as $image) $products[$image->product_id]->images[] = $image; foreach($products as &$product) { if(isset($product->variants[0])) $product->variant = $product->variants[0]; if(isset($product->images[0])) $product->image = $product->images[0]; $product->comments_count = $this->comments->count_comments(array('type'=>'product', 'object_id'=>$product->id, 'approved'=>1)); } } $smarty->assign($params['var'], $products); } } public function get_new_products_plugin($params, &$smarty) { if(!isset($params['visible'])) $params['visible'] = 1; if(!isset($params['sort'])) $params['sort'] = 'created'; if(!empty($params['var'])) { foreach($this->products->get_products($params) as $p) $products[$p->id] = $p; if(!empty($products)) { // id выбраных товаров $products_ids = array_keys($products); // Категория товара $categories = $this->categories->get_product_categories($products_ids); foreach($categories as $cat) $products[$cat->product_id]->category = $this->categories->get_category((int)$cat->category_id); // Выбираем варианты товаров $variants = $this->variants->get_variants(array('product_id'=>$products_ids, 'in_stock'=>true)); // Для каждого варианта foreach($variants as &$variant) { // добавляем вариант в соответствующий товар $products[$variant->product_id]->variants[] = $variant; } // Выбираем изображения товаров $images = $this->products->get_images(array('product_id'=>$products_ids)); foreach($images as $image) $products[$image->product_id]->images[] = $image; foreach($products as &$product) { if(isset($product->variants[0])) $product->variant = $product->variants[0]; if(isset($product->images[0])) $product->image = $product->images[0]; } } $smarty->assign($params['var'], $products); } } public function get_discounted_products_plugin($params, &$smarty) { if(!isset($params['visible'])) $params['visible'] = 1; $params['discounted'] = 1; if(!empty($params['var'])) { foreach($this->products->get_products($params) as $p) $products[$p->id] = $p; if(!empty($products)) { // id выбраных товаров $products_ids = array_keys($products); // Категория товара $categories = $this->categories->get_product_categories($products_ids); foreach($categories as $cat) $products[$cat->product_id]->category = $this->categories->get_category((int)$cat->category_id); // Выбираем варианты товаров $variants = $this->variants->get_variants(array('product_id'=>$products_ids, 'in_stock'=>true)); // Для каждого варианта foreach($variants as &$variant) { // добавляем вариант в соответствующий товар $products[$variant->product_id]->variants[] = $variant; } // Выбираем изображения товаров $images = $this->products->get_images(array('product_id'=>$products_ids)); foreach($images as $image) $products[$image->product_id]->images[] = $image; foreach($products as &$product) { if(isset($product->variants[0])) $product->variant = $product->variants[0]; if(isset($product->images[0])) $product->image = $product->images[0]; } } $smarty->assign($params['var'], $products); } } public function get_popular_products_plugin($params, &$smarty) { if(!isset($params['visible'])) $params['visible'] = 1; if(!isset($params['limit'])) $params['limit'] = 10; foreach($this->orders->get_purchases($params) as $p) $purchases_ids[] = $p->product_id; if(!empty($purchases_ids)) { $purchases_ids = array_count_values($purchases_ids); arsort($purchases_ids); $params['id'] = array_keys($purchases_ids); } if(!empty($params['var']) && !empty($params['id'])) { foreach ($params['id'] as $key => $id){ $products[$id] = $this->products->get_product($id); if ($key == $params['limit'] -1) break; } $products_ids = array_keys($products); // Выбираем варианты товаров $variants = $this->variants->get_variants(array('product_id'=>$products_ids, 'in_stock'=>true)); // Для каждого варианта foreach($variants as &$variant) { // добавляем вариант в соответствующий товар $products[$variant->product_id]->variants[] = $variant; } // Выбираем изображения товаров $images = $this->products->get_images(array('product_id'=>$products_ids)); foreach($images as $image) $products[$image->product_id]->images[] = $image; foreach($products as &$product) { if(isset($product->variants[0])) $product->variant = $product->variants[0]; if(isset($product->images[0])) $product->image = $product->images[0]; } $smarty->assign($params['var'], $products); } } } Цитата Ссылка на сообщение Поделиться на другие сайты
Smartycms Опубликовано 21 февраля, 2017 Жалоба Поделиться Опубликовано 21 февраля, 2017 (изменено) // Настраиваем плагины для смарти Не прописаны функции Изменено 21 февраля, 2017 пользователем smartycms Цитата Ссылка на сообщение Поделиться на другие сайты
Gruzin Опубликовано 21 апреля, 2017 Жалоба Поделиться Опубликовано 21 апреля, 2017 В новых jQuery надо менять: .live на .on Здравствуйте, подскажите пожалуйста как это сделать. Цитата Ссылка на сообщение Поделиться на другие сайты
Gruzin Опубликовано 21 апреля, 2017 Жалоба Поделиться Опубликовано 21 апреля, 2017 Всем привет, всё сделал по инструкции и всё вроде как работает, только если нахожусь на главной, где выводятся рекомендуемые товары , новинки и акционные товары , если список сравнения пуст то добавляется только первый товар , а все последующие нажатия на ссылку добавить к сравнению товар к списку не добавляет, хотя пишет что товар добавлен. Если перехожу в какую нибудь категорию то всё работает как надо. Подскажите пожалуйста как победить проблему.Автору большое спасибо. Цитата Ссылка на сообщение Поделиться на другие сайты
Gruzin Опубликовано 23 апреля, 2017 Жалоба Поделиться Опубликовано 23 апреля, 2017 все, решил проблемуЗдравствуйте, расскажите пожалуйста как решили. У меня такие же проблемы. Цитата Ссылка на сообщение Поделиться на другие сайты
Gruzin Опубликовано 23 апреля, 2017 Жалоба Поделиться Опубликовано 23 апреля, 2017 Здравствуйте, подскажите пожалуйста почему у меня не работает скрипт и по нажатию на ссылку добавить к сравнению открывается список сравнения. oldtiflis.zz.mu Цитата Ссылка на сообщение Поделиться на другие сайты
DmitryCH Опубликовано 5 февраля, 2018 Жалоба Поделиться Опубликовано 5 февраля, 2018 (изменено) Всем привет! Все вроде сделал - работает нормально, все добавляется в избранное. Но при переходе на страницу /wishlist выдает 404-ю ошибку... С чем это может быть связано?Папку compiled чистилSimpla 2.3.6Ставил не на чистую CMS, но функционал работает. Заранее благодарю Изменено 5 февраля, 2018 пользователем DmitryCH Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 5 февраля, 2018 Жалоба Поделиться Опубликовано 5 февраля, 2018 Значит не вроде а ТОЧНО сделали не всё, слишком банально это выглядит. Ещё раз пройдитесь по инструкции и гляди заработает! Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 5 февраля, 2018 Жалоба Поделиться Опубликовано 5 февраля, 2018 Всем привет! Все вроде сделал - работает нормально, все добавляется в избранное. Но при переходе на страницу /wishlist выдает 404-ю ошибку... С чем это может быть связано?Папку compiled чистилSimpla 2.3.6Ставил не на чистую CMS, но функционал работает. Заранее благодарюскорее всего не создали нужную страницу в админке или же не поправили page.tpl вашей темы Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 5 февраля, 2018 Жалоба Поделиться Опубликовано 5 февраля, 2018 скорее всего не создали нужную страницу в админке или же не поправили page.tpl вашей темыКак показала практика все забывают о .htaccess. Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 5 февраля, 2018 Жалоба Поделиться Опубликовано 5 февраля, 2018 (изменено) Как показала практика все забывают о .htaccess.а модуль что htaccess использует? У него нет контроллера. Он инклудит tpl исходя из $page->url в page.tplя на 80% уверен что через админку не создана страница и 19% что допущена ошибка в условиях для инклуда что может приравнять контент к пустой строке. 1% на что то индивидуальное Изменено 5 февраля, 2018 пользователем yr4ik Цитата Ссылка на сообщение Поделиться на другие сайты
DmitryCH Опубликовано 5 февраля, 2018 Жалоба Поделиться Опубликовано 5 февраля, 2018 а модуль что htaccess использует? У него нет контроллера. Он инклудит tpl исходя из $page->url в page.tplя на 80% уверен что через админку не создана страница и 19% что допущена ошибка в условиях для инклуда что может приравнять контент к пустой строке. 1% на что то индивидуальное Вы абсолютно правы )) Не создана страница.Спасибо ОГРОМНОЕ! Цитата Ссылка на сообщение Поделиться на другие сайты
DmitryCH Опубликовано 12 февраля, 2018 Жалоба Поделиться Опубликовано 12 февраля, 2018 (изменено) Всем привет еще раз.А как в шаблон products_list.tpl добавить возможность подсчета related_products?Пишу: {$product->related_products|count}, но на странице избранного не работает. На всех остальных страницах работает (в других .tpl) Пробовал в ProductsView.php добавить:$this->body = $this->design->fetch('products_list.tpl'); но тоже не помогает. Заранее благодарен. Изменено 12 февраля, 2018 пользователем DmitryCH Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.