0

以下のスクリプトに奇妙な問題があります。私は一日中それに取り組んできました。Magento ショッピング カートの製品ビュー ページのサイド ブロックにカテゴリごとのトップセラーを表示しようとしています。このスクリプトは機能しますが、IE (すべて) では同じではありません。実際、IE は正しく、私が試した他のすべてのブラウザは正しくありません。

これが問題です。それはphpであり、phpはサーバー側の言語であると想定されています。しかし、IE は別のメッセージを受け取っているようです。以下では、ある部分の周りに赤い境界線があり、別の部分の周りに緑の境界線があることに気付くでしょう. IE は赤い境界線を取得し、残りは緑の境界線を取得します。赤い境界線には「カテゴリ名」があり、IE で動作しますが、緑色の境界線...カテゴリ名のスクリプトを配置すると、エラー メッセージが出力されます。

複数の「ゼロ除算」警告を除いて(理由はわかりません)、phpがサーバー側言語である場合、2種類のブラウザが2つの異なるメッセージを受け取る理由を知りたいです!?

ありがとう

<?php

/**
 * @author Branko Ajzele | http://activecodeline.com | branko.ajzele@surgeworks.com
 * @license GPL
 */

/**
*
*
05/06/2011 Modified by Erik Gabor | erikvail@gmail.com | http://www.mage-contacts.com
* @license GPL

*/ 

$storeId = Mage::app()->getStore()->getId();

$totalPerPage = ($this->show_total) ? $this->show_total :1;
$counter = 1;
$visibility = array(
                      Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH,
                      Mage_Catalog_Model_Product_Visibility::VISIBILITY_IN_CATALOG
                  );

$storeId = Mage::app()->getStore()->getId();
$_productCollection = Mage::getResourceModel('reports/product_collection')
                              ->addAttributeToSelect('*')
                              ->setStoreId($storeId)
                  ->addStoreFilter($storeId)
                              ->addOrderedQty()
                              ->addAttributeToFilter('visibility', $visibility);


        if ($current_category = Mage::registry('current_category'))
    $_productCollection->addCategoryFilter($current_category);
    $_productCollection->setPage(1,$totalPerPage);  
        $_productCollection->setOrder('ordered_qty', 'desc');

        Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($_productCollection);
        Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($_productCollection);

        $_helper = $this->helper('catalog/output');


//Mage_Reports_Model_Mysql4_Product_Collection
?>

<?php

/**
 * Each product in foreach loop is array of following fields
 *

Array
(
    [ordered_qty] => 2.0000
    [entity_id] => 150
    [entity_type_id] => 10
    [attribute_set_id] => 62
    [type_id] => simple
    [sku] => 500gb7200
    [category_ids] => 29,36
    [created_at] => 2008-07-25 01:12:44
    [updated_at] => 2008-07-25 02:09:26
    [has_options] => 0
    [visibility] => 4
    [hardrive] => 500 GB
    [meta_keyword] =>
    [description] => 500GB- 7200RPM, SATA 3.0Gb/s, 32MB Cache
    [short_description] => 500GB - 7200RPM, SATA 3.0Gb/s, 32MB Cache
    [custom_layout_update] =>
    [status] => 1
    [tax_class_id] => 1
    [manufacturer] => 118
    [weight] => 1.0000
    [price] => 299.0000
    [name] => Western Digital 500GB HD - 7200RPM
    [url_key] => 500gb-7200rpm
    [gift_message_available] => 2
    [harddrive_speed] => 7200 rpm
    [meta_title] =>
    [meta_description] =>
    [thumbnail] => /w/e/western-digital-500gb-hd-7200rpm.jpg
    [small_image] => /w/e/western-digital-500gb-hd-7200rpm.jpg
    [image] => /w/e/western-digital-500gb-hd-7200rpm.jpg
    [custom_design] =>
    [options_container] => container2
    [stock_item (Mage_CatalogInventory_Model_Stock_Item)] => Array
        (
            [item_id] => 119
            [product_id] => 150
            [stock_id] => 1
            [qty] => 999994.0000
            [min_qty] => 0.0000
            [use_config_min_qty] => 1
            [is_qty_decimal] => 0
            [backorders] => 0
            [use_config_backorders] => 1
            [min_sale_qty] => 1.0000
            [use_config_min_sale_qty] => 1
            [max_sale_qty] => 0.0000
            [use_config_max_sale_qty] => 1
            [is_in_stock] => 1
            [low_stock_date] => 0000-00-00 00:00:00
            [use_config_notify_stock_qty] => 1
            [manage_stock] => 0
            [use_config_manage_stock] => 1
            [product (Mage_Catalog_Model_Product)] => *** RECURSION ***
        )

    [is_salable] => 1
)


 */
 $_collectionSize = $_productCollection->count();


 if($current_category && $_collectionSize) :

?>
<div class="block" style="border:1px solid red">
<div class="block-title">
<strong><span><?php echo $current_category->getName()  ?> <?php echo $this->__('Bestseller') ?></span></strong>
</div>
<?php else: ?>
<div class="block" style="border:1px solid green">
<div class="block-title">
<strong><span> <?php echo $this->__('Bestseller') ?></span></strong>
</div>
 <?php endif;?>
  <?php $_collectionSize = $_productCollection->count() ?>
    <?php $_columnCount = $this->getColumnCount(); ?>
    <?php $i=0; foreach ($_productCollection as $_product): ?>
        <?php if ($i++%$_columnCount==0): ?>
        <ul>
        <?php endif ?>
            <li class="">
                <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" class="product-image"><img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->constrainOnly(TRUE)->keepAspectRatio(TRUE)->keepFrame(FALSE)->resize(195); ?>" width="195" height="284" alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" /></a>

                <h2 class="product-name" style="float:left;width:180px;margin:7px"><a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->stripTags($_product->getName(), null, true) ?>"><?php echo $_helper->productAttribute($_product, $_product->getName(), 'name') ?></a></h2>
                 <div style="float:left;width:180px;margin:7px">
                <?php if($_product->getRatingSummary()): ?>
                <?php echo $this->getReviewsSummaryHtml($_product, 'short') ?>
                <?php endif; ?>
                <?php  echo Mage::helper('core')->currency($_product->getPrice()) ?>

                    <?php if($_product->isSaleable()): ?>
                        <button type="button" title="<?php echo $this->__('Add to Cart') ?>" class="button btn-cart" onclick="setLocation('<?php echo Mage::getUrl('checkout/cart/add', array('product' => $_product->getId())) ?>')"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button>
                    <?php else: ?>
                        <p class="availability out-of-stock"><span><?php echo $this->__('Out of stock') ?></span></p>
                    <?php endif; ?>
                    <ul class="add-to-links">
                        <?php if ($this->helper('wishlist')->isAllow()) : ?>
                            <li><a id="wish" href="<?php echo $this->helper('wishlist')->getAddUrl($_product) ?>" class="link-wishlist"><?php echo $this->__('Add to Wishlist') ?></a></li>
                        <?php endif; ?>
                        <?php if($_compareUrl=$this->getAddToCompareUrl($_product)): ?>
                            <li><a id="compare" href="<?php echo $_compareUrl ?>" class="link-compare"><?php echo $this->__('Add to Compare') ?></a></li>
                        <?php endif; ?>
                    </ul>
                </div>
            </li>
        <?php if ($i%$_columnCount==0 || $i==$_collectionSize): ?>
        </ul>
</div>
        <?php endif ?>
        <?php endforeach ?>
4

1 に答える 1

0

問題をすばやくデバッグするための十分な情報はありません(このコードはどこにあり、どのように実行されていますか)が、正しい方向を示す可能性のある2つの簡単な提案があります。

まず、Webブラウザーのソース([表示]-> [ソース]を使用)コマンドを保存し(さまざまなWebインスペクターではなく、DOMを正しい形式にマッサージすることがあります)、2つのブラウザーからの出力を比較します。出力が同じである場合がありますが、CSSルールとjavascriptに関する何かにより、ブラウザーページの外観が異なります。

ページに違いがある場合は、ブラウザがIEと他のブラウザからPHPに異なる情報を送信している、および/または異なるブラウザのPHPセッションに異なる情報があり、PHPコードが表示される可能性があります。異なる結果になります。

お役に立てば幸いです。

于 2013-01-11T22:56:40.617 に答える