gpt4 book ai didi

php - magento - 静态 block 中的类别名称和图像?

转载 作者:行者123 更新时间:2023-12-04 05:44:17 25 4
gpt4 key购买 nike

如何通过 magento 后端从 magento 中的静态块引用类别名称和图像?我正在运行 1.7。

最佳答案

我不知道您可以轻松地从静态块中引用这些值的方法。

相反,我建议您创建并使用一个小部件(在我看来,这是 Magento 中最未被充分利用的功能之一),它将提供一种更清晰、更可扩展的方式来实现这一点——尽管它确实需要更多的前期工作:)

请参阅下面的代码以获取 Magento Widget 的完整(简化)示例,该示例完全符合您从静态块中提出的要求:

app/etc/modules/YourCompany_Categorywidget.xml

<config>
<modules>
<MyCompany_Categorywidget>
<active>true</active>
<codePool>community</codePool>
</MyCompany_Categorywidget>
</modules>
</config>

应用程序/代码/社区/MyCompany/Categorywidget/etc/config.xml
<?xml version="1.0"?>

<config>
<modules>
<MyCompany_Categorywidget>
<version>1.0.0</version>
</MyCompany_Categorywidget>
</modules>
<global>
<blocks>
<categorywidget>
<class>MyCompany_Categorywidget_Block</class>
</categorywidget>
</blocks>
<helpers>
<categorywidget>
<class>MyCompany_Categorywidget_Helper</class>
</categorywidget>
</helpers>
</global>
</config>

应用程序/代码/社区/MyCompany/Categorywidget/etc/widget.xml
<?xml version="1.0"?>

<widgets>
<category_widget type="categorywidget/catalog_category_widget_info" translate="name description" module="categorywidget">
<name>Category Info Block</name>
<description>Category Info Block showing name, image etc</description>
<parameters>
<block_title translate="label">
<required>1</required>
<visible>1</visible>
<label>Block Title</label>
<type>text</type>
</block_title>
<template>
<required>1</required>
<visible>1</visible>
<label>Template</label>
<type>select</type>
<value>categorywidget/info.phtml</value>
<values>
<default translate="label">
<value>categorywidget/info.phtml</value>
<label>Category Widget Info Block - Default Template</label>
</default>
<!-- Add different temmplates here for different block positions -->
</values>
</template>
<category translate="label">
<visible>1</visible>
<required>1</required>
<label>Category</label>
<type>label</type>
<helper_block>
<type>adminhtml/catalog_category_widget_chooser</type>
<data>
<button translate="open">
<open>Select Category...</open>
</button>
</data>
</helper_block>
<sort_order>10</sort_order>
</category>
</parameters>
</category_widget>
</widgets>

应用程序/代码/社区/MyCompany/Categorywidget/Helper/Data.php
<?php

class MyCompany_Categorywidget_Helper_Data extends Mage_Core_Helper_Abstract
{}

app/code/community/MyCompany/Categorywidget/Block/Catalog/Category/Widget/Info.php
<?php

class MyCompany_Categorywidget_Block_Catalog_Category_Widget_Info
extends MyCompany_Categorywidget_Block_Catalog_Category_Info
implements Mage_Widget_Block_Interface
{
protected function _prepareCategory()
{
$this->_validateCategory();

$category = $this->_getData('category');
if (false !== strpos($category, '/')) {
$category = explode('/', $category);
$this->setData('category', (int)end($category));
}
return parent::_prepareCategory();
}
}

app/code/community/MyCompany/Categorywidget/Block/Catalog/Category/Info.php
<?php

class MyCompany_Categorywidget_Block_Catalog_Category_Info extends Mage_Core_Block_Template
{
protected $_category;

protected function _beforeToHtml()
{
$this->_category = $this->_prepareCategory();
return parent::_beforeToHtml();
}

protected function _prepareCategory()
{
$this->_validateCategory();
return Mage::getModel('catalog/category')->load($this->_getData('category'));
}

protected function _validateCategory()
{
if (! $this->hasData('category')) {
throw new Exception('Category must be set for info block');
}
}

public function getCategoryName()
{
return $this->_category->getName();
}

public function getCategoryImage()
{
return $this->_category->getImageUrl();
}
}

应用程序/设计/前端/基础/默认/模板/categorywidget/info.phtml
<?php
$_categoryName = $this->getCategoryName();
$_categoryImage = $this->getCategoryImage();
?>

<div class="categoryinfo_block block">
<p><strong><?php echo $_categoryName ?></strong></p>
<img src="<?php echo $_categoryImage ?>" alt="<?php echo $_categoryName ?>" />
</div>

关于php - magento - 静态 block 中的类别名称和图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10889747/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com