VirtueMart 1.1.2, Joomla 1.5 si ItemId PDF Listeaza E-mail
Nota data de utilizatori: / 5
Cu cele mai mici noteCele mai bune 
VirtueMart

Descrierea problemei:

In cazul in care componenta VirtueMart este referita din mai multe elemente de meniu, structura meniului nu este pastrata cand se afiseaza un produs in mod detaliat.

Acest lucru poate fi foarte deranjant pentru utilizatori.

De ex, pentru urmatoarea structura a meniurilor

 Home / Notebooks / Dell si Home / Desktop / IBM, ambele publicate,

unde Desktop si Notebook sunt doua meniuri, iar Dell si IBM sunt elemente de meniu care pointeaza catre componenta VirtueMart, pagina de detalii a produselor din ambele categorii 

va afisa in loc de meniu potrivit, una dintre cele doua categorii, in functie de ordinea cronologica a elementelor de meniu (depinde care a fost creat primul).

Cauza problemei:

Problema apare pentru ca in momentul in care se genereaza link-urile pentru o categorie de produse, functia folosita este:

function getShopItemid() {
        if( empty( $_REQUEST['shopItemid'] )) {
            $db = new ps_DB;
            $db->query( "SELECT id FROM #__menu WHERE link='index.php?option=com_virtuemart' AND published=1");
            if( $db->next_record() ) {
                $_REQUEST['shopItemid'] = $db->f("id");
            }
            else {
                if( !empty( $_REQUEST['Itemid'] )) {
                    $_REQUEST['shopItemid'] = intval( $_REQUEST['Itemid'] );
                }
                else {
                    $_REQUEST['shopItemid'] = 1;
                }
            }
        }
        return intval($_REQUEST['shopItemid']);
    }

 din fisierul /administrator/components/com_virtuemart/classes/ps_session.php

Logica este urmatoare:

- se itereaza peste elementele de meniu, publicate, care refera virtuemart, si se alege primul dintre ele. Acesta determina valoare pentru ItemId, care va fi memorata pe sesiune, si folosita pentru generarea link-urilor cu probleme (si in final detemina meniul folosit)

In cazul in care este folosit doar un element de meniu catre VirtueMart in toata aplicatia, este in regula, problema apare in cazul in care sunt folosite mai multe astfel de elemente de meniu.

Rezolvarea problemei:

O solutie rapida este sa inlocuiti acest cod cu urmatorul:

    function getShopItemid() {
        if( !empty( $_REQUEST['Itemid'] )) {
                    $_REQUEST['shopItemid'] = intval( $_REQUEST['Itemid'] );
        }
        else {
                    $_REQUEST['shopItemid'] = 1;
        }
        return intval($_REQUEST['shopItemid']);
    }

 

 

 
 

Este Joomla! 1.5 stabil?

Cand ai facut ultimul update al site-ului tau Joomla! ?
 

Stiri

Cea mai noua extensie Muhaha, modului YourPHP! va permite folosirea unui document php pentru ca genera continutului unui modul. Acest component este oferit sub licenta GNU GPLv2. Descarcati de aici.
 
A patra editie a Open Source CMS Awards , sponsorizata de Packt Publishing este deschisa pentru propuneri. Joomla is eligibil pentru Best PHP Open Source CMS . Inscrierile sunt deschise pana in The nominations are open until September 11. Pentru primii 5 inscrisi, votul va incepe in 18 September 2009.
 

Muhaha twitter

Joomla.org Joomla.org Director Web Energy