Php 将YouTube视频添加到产品和CMS页面Magento
我在我的Magento商店中创建了一个自定义属性,以便通过将视频id添加到文本字段来显示youtube视频 我已将此代码放在Php 将YouTube视频添加到产品和CMS页面Magento,php,zend-framework,magento,module,content-management-system,Php,Zend Framework,Magento,Module,Content Management System,我在我的Magento商店中创建了一个自定义属性,以便通过将视频id添加到文本字段来显示youtube视频 我已将此代码放在video.phtml文件夹中的catalog/product/view中 <p> <?php $attStuff= $_product->getData(); ?> <?php if( !empty( $attStuff['videoid'] ) ): ?> <iframe width="330" height="253"
video.phtml
文件夹中的catalog/product/view
中
<p>
<?php $attStuff= $_product->getData(); ?>
<?php if( !empty( $attStuff['videoid'] ) ): ?>
<iframe width="330" height="253" src="http://www.youtube.com/embed/<?php echo $attStuff['videoid']; ?>" frameborder="0" allowfullscreen></iframe>
<?php endif; ?>
</p>
我现在得到以下错误:
致命错误:在第13行的/Applications/MAMP/htdocs/mysite/app/design/frontend/bootstrapped/default/template/catalog/product/view/video.phtml中对非对象调用成员函数getData()
我无法诊断问题
你知道这里可能有什么问题吗?你很接近了。您需要使用能够检查当前产品的类,而不是将块类型设置为
core/template
。catalog/product\u abstract
块具有这些功能。对布局文件执行以下操作:
<reference name="right">
<block type="catalog/product_view" name="catalog.product.video" template="catalog/product/view/video.phtml" />
</reference>
在模板代码中,使用以下行:
<?php $_product = Mage::getModel('catalog/product')->load($this->getProductId()); ?>
你非常接近。您需要使用能够检查当前产品的类,而不是将块类型设置为
core/template
。catalog/product\u abstract
块具有这些功能。对布局文件执行以下操作:
<reference name="right">
<block type="catalog/product_view" name="catalog.product.video" template="catalog/product/view/video.phtml" />
</reference>
在模板代码中,使用以下行:
<?php $_product = Mage::getModel('catalog/product')->load($this->getProductId()); ?>
感谢您的回复!进行了更改,但Magento不喜欢它致命错误:无法在第491行的/Applications/MAMP/htdocs/mysite/app/code/local/Mage/Core/Model/Layout.php中实例化抽象类Mage\u Catalog\u Block\u Product\u abstract。我的错-我道歉。我已将块引用更改为目录/产品视图
。如果答案有效,请记住接受。这实际上在产品视图页面中有效,没有错误,但在CMS页面中存在问题。在进行更改后,我仍然会遇到一个错误:致命错误:在第56行的/Applications/MAMP/htdocs/mysite/app/code/local/Mage/Catalog/Block/Product/View.php中对非对象调用成员函数getMetaTitle(),谢谢。我可以使用productId而不是SKU吗?我想我确实需要创建一个模块,以便在CMS页面中使用。在对代码进行更改后,我仍然会遇到一个错误:致命错误:在第56行的/Applications/MAMP/htdocs/mysite/app/code/local/Mage/Catalog/Block/Product/View.php中对非对象调用成员函数getMetaTitle()
我需要创建一个模块,以使其正常工作。实际上需要写两个简短的回复!进行了更改,但Magento不喜欢它致命错误:无法在第491行的/Applications/MAMP/htdocs/mysite/app/code/local/Mage/Core/Model/Layout.php中实例化抽象类Mage\u Catalog\u Block\u Product\u abstract。我的错-我道歉。我已将块引用更改为目录/产品视图
。如果答案有效,请记住接受。这实际上在产品视图页面中有效,没有错误,但在CMS页面中存在问题。在进行更改后,我仍然会遇到一个错误:致命错误:在第56行的/Applications/MAMP/htdocs/mysite/app/code/local/Mage/Catalog/Block/Product/View.php中对非对象调用成员函数getMetaTitle(),谢谢。我可以使用productId而不是SKU吗?我想我确实需要创建一个模块,以便在CMS页面中使用。在对代码进行更改后,我仍然会遇到一个错误:致命错误:在第56行的/Applications/MAMP/htdocs/mysite/app/code/local/Mage/Catalog/Block/Product/View.php中对非对象调用成员函数getMetaTitle()
我需要创建一个模块,以使其正常工作。实际上需要尽快写两封信
<?php $_product = Mage::getModel('catalog/product')->load($this->getProductSku(), 'sku'); ?>
<?php if ($_product->getId() && $_product->getVideoid()): ?>
<p>
<iframe width="330" height="253" src="http://www.youtube.com/embed/<?php echo $_product->getVideoid(); ?>" frameborder="0" allowfullscreen></iframe>
</p>
<?php endif;?>
<block type="core/template" name="catalog.product.video" template="catalog/product/view/video.phtml">
<action method="setProductId"><id>id-here</id></action>
</block>
<?php $_product = Mage::getModel('catalog/product')->load($this->getProductId()); ?>