Pergunta

Quero exibir a lista de bloqueios estáticos na página de criação de produtos de administração do magento.
indiquei este link http://www.milessebesta.com/web-design/magento-use-custom-product-attributes-to-add-cms-static-block-to-product-page/
Mas mostra a entrada manual de nomes de blocos estáticos em opções personalizadas.
Quero mostrar o menu suspenso da lista de opções de blocos estáticos como dinâmico.

Foi útil?

Solução

Você pode encontre aqui e explicação de como você pode adicionar um atributo de produto com um modelo de origem personalizado.
A ideia é adicionar um atributo simples como qualquer outro (através de um script de instalação) e preencher o campo source_model com o apelido de um modelo.
Desta forma, quando as opções são recuperadas, o método getAllOptions da classe de modelo de origem é chamada.E esse método pode conter qualquer coisa.

No seu caso, basta alterar no exemplo que vinculei o método getAllOptions e faça com que fique assim:

public function getAllOptions($withEmpty = false)
{
    if (is_null($this->_options)){
        $this->_options = array();
        $collection = Mage::getModel('cms/block')->getCollection();
        foreach ($collection as $block) {
            $this->_options[] = array('label'=> $block->getTitle(), value => $block->getId());
        }
    }
    $options = $this->_options;
    if ($withEmpty) {
        array_unshift($options, array('value'=>'', 'label'=>''));
    }
    return $options;
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top