Я собираюсь дать вам несколько ответов. Первый - это прямой ответ на ваш вопрос. Остальные альтернативы, но лучшие способы сделать то, что вы пытаетесь. Последний ответ, на мой взгляд, лучший.
Прямой ответ:
Вместо использования setAttribute, просто используйте магические методы setter / getter:
<?php
// In catalog/product/view.phtml
echo $this->getLayout()
->createBlock('core/template')
->setTemplate('catalog/product/view/addedToCartDialog.phtml')
->setProduct($_product)
->toHtml();
?>
<?php
// In addedToCartDialog.phtml
$_product = $this->getProduct();
echo $_product->getId();
?>
Better:
И, если вы знаете, что находитесь в шаблоне, загруженном каталогом / контроллером продукта, вы можете получить продукт таким образом.
<?php
// In catalog/product/view.phtml
echo $this->getLayout()
->createBlock('core/template')
->setTemplate('catalog/product/view/addedToCartDialog.phtml')
->toHtml();
?>
<?php
// In addedToCartDialog.phtml
$_product = Mage::registry('product');
echo $_product->getId();
?>
Еще лучше
Лучшим способом было бы использовать другой тип блока с уже загруженными методами (опять же, если вы знаете, что находитесь в шаблоне, загруженном каталогом / контроллером продукта)
<?php
// In catalog/product/view.phtml
echo $this->getLayout()
->createBlock('catalog/product_view')
->setTemplate('catalog/product/view/addedToCartDialog.phtml')
->toHtml();
?>
<?php
// In addedToCartDialog.phtml
$_product = $this->getProduct();
echo $_product->getId();
?>
И, наконец, лучший
Последний пункт бизнеса. Лучший способ добавить дополнительные блоки в шаблоны - добавить блок в файл local.xml.
<!-- Local.xml -->
<catalog_product_view translate="label">
<reference name="content">
<block type="catalog/product_view" name="addedToCartDialog" as="addedToCartDialog" template="catalog/product/view/addedToCartDialog.phtml" />
</reference>
</catalog_product_view>
Теперь настройте свой phtml файл
<?php
// In addedToCartDialog.phtml
$_product = $this->getProduct();
echo $_product->getId();
?>
Затем вызовите блок из вашего phtml файла
// In catalog/product/view.phtml
<?php echo $this->getChildHtml('addedToCartDialog'); ?>