Перейти к содержанию
Форум поддержки пользователей VamShop

Как вставить php код


Рекомендуемые сообщения

Проверили, теперь, кажется работает правильно, но почему-то метка {$city} работает только на уровне Шаблонов, если ее вставлять в Микрошаблоны, она уже не работает.

Ссылка на сообщение
Поделиться на другие сайты

Наверное для миуро-шаблонов только свои метки, т.е. работают там метки тэга,для которого микро-шаблон создан.

Ссылка на сообщение
Поделиться на другие сайты

А что за шаблон и что за тэг?!

 

Я так думаю, что если попробовать новую метку задать для этого тэга в микро-шаблоне, то опять закэшируется.

 

Но надо попробовать, скажите, что за шаблон (тэг), попробую.

Ссылка на сообщение
Поделиться на другие сайты
Можно попробовать в /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 тэга.
Ссылка на сообщение
Поделиться на другие сайты

Не за что

 

Это только для тэга content_listing будет, Вы ведь шаблон content_listing тэга правите.

 

Но, в общем-то, это пример того как добавлять город для любой другой метки и микро-шаблона.

Ссылка на сообщение
Поделиться на другие сайты

Все таки проблема кэширования осталась.

 

Есть 2 товара: Товар1, Товар2

и 2 пользователя: Казань, Самара.

 

Если пользователь Казань открывает Товар1 он видит Казань, если после него этот же Товар1 открывает пользователь Самара, он видит Казань.

 

Если пользователь Самара переходит на Товар2 - он видит Самара, но если пользователь Казань переходит на Товар2 (после пользователя Самара) то но видит Самара.

Ссылка на сообщение
Поделиться на другие сайты

А в 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;
 
Ссылка на сообщение
Поделиться на другие сайты

Т.е. сделать вот так?

 

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;
 
а где название города должно выводиться в таком случае, что-то я не догоняю?
Ссылка на сообщение
Поделиться на другие сайты
Да, так.
Должно сверху страницы выводиться.
 
Попробуйте тогда так:
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;
Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...