2016-05-30 1 views
1

私はこれに苦労しました。joomlaフレームワーク以外のカートの合計を表示

私はjoomla/virtuemartを "store"というディレクトリで実行しています。私はjoomlaフレームワーク外のカートにある製品の総数を表示したいと考えています。だから、私は旧バージョンのvirtuemart(< v3)でうまく動作するこのコードを思いついた。

コード(「含み」というディレクトリにある)

<?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; 
?> 

とエラー:Virtuemart 3.0.16でそれをしようとしたときしかし、私はこれらの問題に実行しているよ

私は、カート

内のアイテムを持っていた時に私はPHPの専門家ではないんだけど、それは私の$ように私には思える、というオープングーグル以来0は、1を示すべき、カートの合計を表し

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

0

配列はありません問題を引き起こしているアレイですか?

旧バージョンのvirtuemartではうまくいきましたので、これは本当に混乱しています。

- 以下の答えを考える

は、私はこれを実行しようとしています:

<?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); 
    ?> 

...しかし、成功せず。これは、継続的に0

答えて

0

はJoomlaのフレームワークをロードした後

はちょうどそれが

 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'; 
     } 

配列がすべてのカートアイテムの詳細は、ちょうどあなたがほしいと思うものを選択する必要があり動作するはずのコードの下に使用し、これを試してみてくださいと言います。

希望します。

+0

ありがとう、私はそれを試みたが、それは私に "あなたのカートは空です"を与え続ける。 – ak1652

+0

私が今実行しようとしていることを元の質問に入れました。 – ak1652

+0

ok virtuemart cartという名前のモジュールをチェックしてください。あなたは外部のPHPの内部でもそのコードを使用することができますサイドVMコンポーネントのカートアイテムを読み込むのトリック。 –

関連する問題