Я делаю несколько пользовательских кодов для установки Joomla, которая использует jReviews.В модуле на моей домашней странице я передаю массив идентификаторов контента в переменную сеанса (шаг 1), а затем на других страницах, таких как «Лучшие продукты» или «Специальные предложения», я могу отправить другой набор значений в ту же переменную сеанса (шаг 2).), каждый раз, когда значения связаны с определенными атрибутами, что-то вроде функции «связанных продуктов».Когда я наконец просматриваю продукт, я должен получить значения, отправленные на шаге 2, но вместо этого я получаю значения с шага 1.
Вот что я делаю:
Шаг1:
$db =& JFactory::getDBO();
$query = "select * from jos_jreviews_content jrc
join jos_content jc on jrc.contentid = jc.id
where jc.state=1 and jc.catid=10 order by jc.id desc limit 100";
//state 1= published, catid 10= products,
$db->setQuery($query);
$allproducts = $db->loadObjectList();
$nav_session = JFactory::getSession();
$nav_listings_ids = array();
if(count($allproducts)) {
$i=0;
foreach($allproducts as $relatedproduct) {
$listingid = $relatedproduct->id;
$alias = $relatedproduct->alias;
$nav_listings_ids[$i]["id"] = $relatedproduct->contentid;
$nav_listings_ids[$i]["link"] = "index.php?option=com_content&view=article&catid=10:products&id=".$listingid.":".$alias."&Itemid=16";
$nav_listings_ids[$i]["title"] = $relatedproduct->title;
$i++;
}
}
// Save to session var
$nav_session->set('related_results_listings', $nav_listings_ids);
Шаг 2:
$jrcompanyname = '*'.$listing['Field']['pairs']['jr_companyname']['value'][0].'*';
$db =& JFactory::getDBO();
$query = "select * from jos_jreviews_content jrc
join jos_content jc on jrc.contentid = jc.id
where jrc.jr_companyname = '".$jrcompanyname."' and jc.state=1 and jc.catid=10 order by jrc.contentid desc";
$db->setQuery($query);
$relatedproducts = $db->loadObjectList();
$nav_session = JFactory::getSession();
$nav_listings_ids = array();
if(count($relatedproducts)) {
$i=0;
foreach($relatedproducts as $relatedproduct) {
$listingid = $relatedproduct->id;
$alias = $relatedproduct->alias;
$nav_listings_ids[$i]["id"] = $relatedproduct->contentid;
$nav_listings_ids[$i]["link"] = "index.php?option=com_content&view=article&catid=10:products&id=".$listingid.":".$alias."&Itemid=16";
$nav_listings_ids[$i]["title"] = $relatedproduct->title;
$i++;
}
}
// Save session
$nav_session->set('related_results_listings', $nav_listings_ids);
На странице своего продукта я перебираю значения $ _SESSION ['related_results_listings'], чтобы найти позицию элемента, на котором я нахожусьпросмотр:
$nav_session = JFactory::getSession();
$nav_listings = $nav_session->get("related_results_listings");
// Locate the current listing in the search results list and retrieve the previous and next items
$index = 0;
for( $i=0; $i<count($nav_listings); $i++ )
{
if( $nav_listings[$i]["id"] == $listing['Listing']['listing_id'] )
{
$index = $i;
break;
}
}
Я буду рад объяснить все вышеперечисленное, если кто-то захочет мне помочь.Заранее спасибо и с наступающим Новым годом всех!