2016-05-30 5 views
1

Ich habe damit zu kämpfen.Angezeigte Einkaufswagen insgesamt außerhalb von joomla framework

Ich habe meine Joomla/Virtuemart läuft in einem Verzeichnis namens "Store" und ich möchte die Gesamtzahl der Produkte im Warenkorb außerhalb der Joomla-Framework anzeigen. Also habe ich mir diesen Code ausgedacht, der mit älteren Versionen von virtuemart funktioniert (< v3). Wenn es jedoch mit Virtuemart 3.0.16 versucht, ich laufe in dieser Probleme:

Der Code

<?php 

// Set flag that this is a parent file 

define('_JEXEC', 1); 

define('JPATH_BASE', dirname(realpath(__FILE__)). '/../store'); 

define('DS', DIRECTORY_SEPARATOR); 

require_once (JPATH_BASE .DS.'includes'.DS.'defines.php'); 
require_once (JPATH_BASE .DS.'includes'.DS.'framework.php'); 
jimport('joomla.application.module.helper'); 
jimport('joomla.application.component.helper'); 

$mainframe = JFactory::getApplication('site'); 

    $array = unserialize($_SESSION['__vm']['vmcart']); 
    $total = 0; 
    foreach($array->products as $product){ 
     $total += $product->amount; 
    } 
    echo "" . $total; 
?> 

und der Fehler (die in einem Verzeichnis "includes" genannt ist):

Warning: Invalid argument supplied for foreach() in /home/me/public_html/includes/header.php on line 20

0

wobei 0 den Wagen insgesamt darstellt, die 1 zeigen sollten, da ich zu der Zeit im Warenkorb ein Element hatte

ich bin kein pHP-Experte, aber offen googeln, dass es, dass mein $ erscheint mir Array ist nicht ein Array, das die Probleme verursacht?

Das ist wirklich verwirrend, da es in der älteren Version von virtuemart gut funktioniert.

-

die Antwort Da unten, ich versuche, dies auszuführen:

<?php 
// Set flag that this is a parent file 

define('_JEXEC', 1); 

define('JPATH_BASE', dirname(realpath(__FILE__)). '/../store'); 

define('DS', DIRECTORY_SEPARATOR); 

require_once (JPATH_BASE .DS.'includes'.DS.'defines.php'); 
require_once (JPATH_BASE .DS.'includes'.DS.'framework.php'); 
jimport('joomla.application.module.helper'); 
jimport('joomla.application.component.helper'); 

$mainframe = JFactory::getApplication('site'); 
defined('DS') or define('DS', DIRECTORY_SEPARATOR); 

    if (!class_exists('VmConfig')) 
    require(JPATH_ROOT.DS.'administrator'.DS.'components'.DS.'com_virtuemart'.DS.'helpers'.DS.'config.php'); 

    if(!class_exists('VirtueMartCart')) 
    require(VMPATH_SITE.DS.'helpers'.DS.'cart.php'); 
echo sizeof($cart->products); 
    ?> 

... aber ohne Erfolg. Er sagt ständig 0

Antwort

0

Try this,

nach dem Laden nur Joomla Rahmen unten Codes verwenden sollte es funktionieren

 defined('DS') or define('DS', DIRECTORY_SEPARATOR); 

    if (!class_exists('VmConfig')) 
    require(JPATH_ROOT.DS.'administrator'.DS.'components'.DS.'com_virtuemart'.DS.'helpers'.DS.'config.php'); 

    if(!class_exists('VirtueMartCart')) 
    require(VMPATH_SITE.DS.'helpers'.DS.'cart.php'); 

     $cart = VirtueMartCart::getCart(); 
     if(sizeof($cart->products) > 0){ 
      echo "<pre/>"; 
      print_r($cart); 
     } 
     else{ 
     echo 'Your cart is empty'; 
     } 

Das Array haben alle Warenkorb Artikel Details nur wählen, was immer Sie wollen.

Ich hoffe, es hilft.

+0

Danke, ich habe es versucht, aber es gibt mir immer wieder "Dein Einkaufswagen ist leer". Sogar das Echo von 'sizeof ($ cart-> products)' gibt 0 (wenn es Artikel im Warenkorb gibt. – ak1652

+0

Ich habe meine ursprüngliche Frage gestellt, was ich jetzt versuche auszuführen. – ak1652

+0

ok überprüfe das Modul namens virtuemart cart es tat Der Trick des Ladens von Warenkorb-Elementen außerhalb der VM-Komponente Sie können diesen Code auch in externen PHP verwenden. –