Переменные сессии Joomla и получение неправильных значений - PullRequest
1 голос
/ 02 января 2012

Я делаю несколько пользовательских кодов для установки 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;
    }   
}

Я буду рад объяснить все вышеперечисленное, если кто-то захочет мне помочь.Заранее спасибо и с наступающим Новым годом всех!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...