support 447 Опубликовано 19 июня, 2015 Жалоба Share Опубликовано 19 июня, 2015 Ой, пардон, /app/Controller/PagesController.php Ссылка на сообщение Поделиться на другие сайты
Adilan 0 Опубликовано 19 июня, 2015 Автор Жалоба Share Опубликовано 19 июня, 2015 Проверили, теперь, кажется работает правильно, но почему-то метка {$city} работает только на уровне Шаблонов, если ее вставлять в Микрошаблоны, она уже не работает. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 19 июня, 2015 Жалоба Share Опубликовано 19 июня, 2015 Вроде как везде должна быть, во всяком случае в шаблоне карточки товара должно работать. Ссылка на сообщение Поделиться на другие сайты
Adilan 0 Опубликовано 19 июня, 2015 Автор Жалоба Share Опубликовано 19 июня, 2015 Ну да, в шаблонах работает, а если в микрошаблоны вставлять, уже нет почему-то. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 19 июня, 2015 Жалоба Share Опубликовано 19 июня, 2015 Наверное для миуро-шаблонов только свои метки, т.е. работают там метки тэга,для которого микро-шаблон создан. Ссылка на сообщение Поделиться на другие сайты
Adilan 0 Опубликовано 19 июня, 2015 Автор Жалоба Share Опубликовано 19 июня, 2015 Т.е. никак не сделать чтобы она в микрошаблоне работала? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 19 июня, 2015 Жалоба Share Опубликовано 19 июня, 2015 А что за шаблон и что за тэг?! Я так думаю, что если попробовать новую метку задать для этого тэга в микро-шаблоне, то опять закэшируется. Но надо попробовать, скажите, что за шаблон (тэг), попробую. Ссылка на сообщение Поделиться на другие сайты
Adilan 0 Опубликовано 19 июня, 2015 Автор Жалоба Share Опубликовано 19 июня, 2015 Микрошаблон my-prod-cart-info-ip, вызывается {content_listing template='my-prod-cart-info-ip'} Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 19 июня, 2015 Жалоба Share Опубликовано 19 июня, 2015 Можно попробовать в /app/Vendor/smarty/vam_plugins/function.content_listing.php поменять: // Cache the output. $cache_name = 'vam_content_listing_output_' . $_SESSION['Customer']['customer_group_id'] . '_' . $content['Content']['id'] . '_' . (isset($params['template'])?$params['template']:'') . (isset($params['parent'])?'_'.$params['parent']:'') . (isset($params['label_id'])?'_'.$params['label_id']:'') . (isset($params['current_order'])?'_'.$params['current_order']:'') . (isset($params['order'])?'_'.$params['order']:'') . '_' . $_SESSION['Customer']['language_id'] . '_' . $_SESSION['Customer']['page'] . (isset($filter_list)?md5(serialize($filter_list)):''); на: App::import('Vendor', 'GeoCity', array('file' => 'GeoCity'.DS.'SxGeo.php')); $SxGeo= new SxGeo(APP.'Vendor/GeoCity/SxGeo.dat'); $city = $SxGeo->get($_SERVER['REMOTE_ADDR']); $city_id = $city['city']['id']; $city = $city['city']['name_ru']; // Cache the output. $cache_name = 'vam_content_listing_output_' . $_SESSION['Customer']['customer_group_id'] . '_' . $content['Content']['id'] . '_' . (isset($params['template'])?$params['template']:'') . (isset($params['parent'])?'_'.$params['parent']:'') . (isset($params['label_id'])?'_'.$params['label_id']:'') . (isset($params['current_order'])?'_'.$params['current_order']:'') . (isset($params['order'])?'_'.$params['order']:'') . '_' . $_SESSION['Customer']['language_id'] . '_' . $_SESSION['Customer']['page'] . (isset($filter_list)?md5(serialize($filter_list)):'').$city_id; и внизу поменять: $vars['ext'] = $config['URL_EXTENSION']; на: $vars['ext'] = $config['URL_EXTENSION']; $vars['city'] = $city; Это что б метка {$city} появилась в шаблонах content_listing тэга. Ссылка на сообщение Поделиться на другие сайты
Adilan 0 Опубликовано 20 июня, 2015 Автор Жалоба Share Опубликовано 20 июня, 2015 Да, спасибо, теперь в микрошаблонах работает! Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 20 июня, 2015 Жалоба Share Опубликовано 20 июня, 2015 Не за что Это только для тэга content_listing будет, Вы ведь шаблон content_listing тэга правите. Но, в общем-то, это пример того как добавлять город для любой другой метки и микро-шаблона. Ссылка на сообщение Поделиться на другие сайты
Adilan 0 Опубликовано 23 июня, 2015 Автор Жалоба Share Опубликовано 23 июня, 2015 Все таки проблема кэширования осталась. Есть 2 товара: Товар1, Товар2 и 2 пользователя: Казань, Самара. Если пользователь Казань открывает Товар1 он видит Казань, если после него этот же Товар1 открывает пользователь Самара, он видит Казань. Если пользователь Самара переходит на Товар2 - он видит Самара, но если пользователь Казань переходит на Товар2 (после пользователя Самара) то но видит Самара. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 23 июня, 2015 Жалоба Share Опубликовано 23 июня, 2015 Это в product_listing шаблоне?! Покажите как Вы выводите в этом шаблоне метку с городом. Ссылка на сообщение Поделиться на другие сайты
Adilan 0 Опубликовано 23 июня, 2015 Автор Жалоба Share Опубликовано 23 июня, 2015 Нет, в шаблоне сontent_listing, метка {$city} Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 23 июня, 2015 Жалоба Share Опубликовано 23 июня, 2015 А в PagesController.php Вы не удалили код?! Есть там код из этого сообщения - Если есть, попробуйте ещё в /app/Vendor/smarty/vam_plugins/function.content.php поменять: global $content,$config,$filter_list,$sort_by; // Cache the output... Don't cache core pages. $cache_name = 'vam_page_content_' . $_SESSION['Customer']['customer_group_id'] . '_' . $content['Content']['id'] . '_' . $_SESSION['Customer']['language_id']. '_' . $_SESSION['Customer']['currency_id']. '_' . (isset($_SESSION['Customer']['page'])?'_'.$_SESSION['Customer']['page']:'') . (isset($sort_by)?'_'.$sort_by:'') . (isset($filter_list)?md5(serialize($filter_list)):''); на: global $content,$config,$filter_list,$sort_by, $city; // Cache the output... Don't cache core pages. $cache_name = 'vam_page_content_' . $_SESSION['Customer']['customer_group_id'] . '_' . $content['Content']['id'] . '_' . $_SESSION['Customer']['language_id']. '_' . $_SESSION['Customer']['currency_id']. '_' . (isset($_SESSION['Customer']['page'])?'_'.$_SESSION['Customer']['page']:'') . (isset($sort_by)?'_'.$sort_by:'') . (isset($filter_list)?md5(serialize($filter_list)):'').'_'.$city; Ссылка на сообщение Поделиться на другие сайты
Adilan 0 Опубликовано 23 июня, 2015 Автор Жалоба Share Опубликовано 23 июня, 2015 Везде коды лишние удалил, код последнего поста вставил, все равно также работает. :o Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 23 июня, 2015 Жалоба Share Опубликовано 23 июня, 2015 А если просто echo $city добавить перед $cache_name, выводит название города?! В function.content.php Ссылка на сообщение Поделиться на другие сайты
Adilan 0 Опубликовано 23 июня, 2015 Автор Жалоба Share Опубликовано 23 июня, 2015 Т.е. сделать вот так? global $content,$config,$filter_list,$sort_by, $city; // Cache the output... Don't cache core pages. echo $city; $cache_name = 'vam_page_content_' . $_SESSION['Customer']['customer_group_id'] . '_' . $content['Content']['id'] . '_' . $_SESSION['Customer']['language_id']. '_' . $_SESSION['Customer']['currency_id']. '_' . (isset($_SESSION['Customer']['page'])?'_'.$_SESSION['Customer']['page']:'') . (isset($sort_by)?'_'.$sort_by:'') . (isset($filter_list)?md5(serialize($filter_list)):'').'_'.$city; а где название города должно выводиться в таком случае, что-то я не догоняю? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 23 июня, 2015 Жалоба Share Опубликовано 23 июня, 2015 Да, так. Должно сверху страницы выводиться. Попробуйте тогда так: global $content,$config,$filter_list,$sort_by; // Cache the output... Don't cache core pages. App::import('Vendor', 'GeoCity', array('file' => 'GeoCity'.DS.'SxGeo.php')); $SxGeo= new SxGeo(APP.'Vendor/GeoCity/SxGeo.dat'); $city = $SxGeo->get($_SERVER['REMOTE_ADDR']); $city_id = $city['city']['id']; $city = $city['city']['name_ru']; $cache_name = 'vam_page_content_' . $_SESSION['Customer']['customer_group_id'] . '_' . $content['Content']['id'] . '_' . $_SESSION['Customer']['language_id']. '_' . $_SESSION['Customer']['currency_id']. '_' . (isset($_SESSION['Customer']['page'])?'_'.$_SESSION['Customer']['page']:'') . (isset($sort_by)?'_'.$sort_by:'') . (isset($filter_list)?md5(serialize($filter_list)):'').'_'.$city_id; Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения