foto
Alisson O Blog

Alisson O Blog

Magento e os idiomas que o computador fala…

Template Hints no Admin do Magento .. Como? Usando o __FILE__

24 de agosto de 2009

Olá a todos!

Esta semana tive o seguinte desafio: customização do ambiente administrador (ou “admin”, ou “backend”) do Magento. Em uma primeira vista, tem-se a impressão de que o backend do Magento (cheio de campos obrigatórios as vezes não tão necessários, ou vazio de informações instrucionais para funcionalidades importantes, como preferir) não foi feito pra ser tão facilmente customizado como o frontend, principalmente pela falta da IMPORTANTE opção de se ligar os “Template Hints”, ou “Dicas de caminho de modelo”. O primeiro passo para se alterar alguma parte do layout/design do backend do Magento é descobrir em que arquivo cada parte está, porém sem a possibilidade das “template hints” a coisa complica um pouco mais.

* Esta opção fica dentro de Sistema->Configuração->Desenvolvedor. Alterando-se o Escopo para o website atual, tem-se opções para ligar as “Dicas de caminho de modelo”, porém isso só funciona para o frontend.

Eu recomendo que, antes de tudo, o cache do Magento seja desligado e devidamente limpo. Continuando, primeiro faça um backup dos arquivos do tema “default”. O método que utilizei é meio agressivo e pode danificar os arquivos do template. Enfim, para se conseguir um efeito parecido no backend, tive a seguinte abordagem (Magento 1.3.2.2):

  1. Encontre um editor que faça substituição de texto em massa. Eu utilizei o já descontinuado, porém muito bom, Macromedia Homesite. Nele temos a opção “Extended Replace” que fará o trabalho.
  2. Todos os arquivos do template default do backend (ao menos não encontrei um que não tenha até agora) tem um comentário logo no início, sobre a licença e etc., será esse texto que tuilizaremos como base da nossa mudança.
  3. Você irá procurar por:
    <?php
    /**
    * Magento
    *
    * NOTICE OF LICENSE
    

    Em todos os arquivos (incluindo subdiretórios) do diretório /app/design/adminhtml/default/default/template/ e substituirá por:

    <?php
    
    echo "<div style='border: 1px solid red;'>".__FILE__."</div>";
    
    ?><?php
    /**
     * Magento
     *
     * NOTICE OF LICENSE
    
  4. Se tudo der +ou- certo, você verá uma tela assim:Resultado Homesite
  5. Devolta ao admin, temos o seguinte resultado:Resultado Backend Magento

Pronto, seu admin já tem todas as dicas necessárias para se começar a descobrir onde e o que alterar. Dicas:

  • Se você colocar um if antes do echo, você pode controlar a impressão ou não das hints com uma simples variável de controle. Esta variável pode, por exemplo, estar dentro de index.php.
  • Caso não queira inserir este “echo” dentro dos arquivos do template que terá seu layout modificado, trabalhe com 2 instalações ou 2 temas diferentes para o admin. No meu caso, eu trabalhei com uma instalação local diferente da que seria modificada. Assim você pode ter um tema ligado só para descobrir caminhos.


Edit: Acabei descobrindo um outro jeito muito bom neste link: http://classyllama.com/magento/development/enable-templateblock-hints-in-admin-panel/. Em resumo seria:
1) Conecte-se ao banco;
2) Execute esta query:

INSERT INTO core_config_data (scope, scope_id, path, value)
VALUES ('default', 0, 'dev/debug/template_hints', 1),
('default', 0, 'dev/debug/template_hints_blocks', 1);

Feito! Para desligar os hints abra a tabela core_config_data table e mude a coluna “value” da linha que você adicionou para o valor “0″.

T+!

Tags: , , , , , ,

7 comentários para “Template Hints no Admin do Magento .. Como? Usando o __FILE__”

  1. Alexandre disse:

    Boa dica, mas gostaria na verdade é saber como fazer minhas alterações voltarem a funcionar. Instalei o Lightbox e estava funcionando, tinha até traduzido ele, quando atualizamos o lightbox não funciona, a validação de CPF também não, e uma tabela que fizemos para calcular parcelas automaticamente também não aparece mais!

    No demais, como colocar foto ao lado da checkbox no Bundle product no modo checkbox (DUH! :P ). Ninguém responde essas, pura maldade, ou será um caso específico?

    Quanto ao admin, o admin está bom por enquanto, só no newsletter que não entendo nada XD

    Tem um tópico aí mas falta coragem pra mexer, é como costumo dizer aqui na empresa, mexer no server é mesma coisa que fazer uma cirurgia no cérebro, hehe, um erro, uma dor de cabeça.

  2. Alisson Oldoni disse:

    Olá Alexandre… As suas atualizações provavelmente foram perdidas… A atualização do Magento sobrescreve muitos arquivos, principlamente dentro da pasta “core”, que é provavelmente aonde você fez suas alterações.

    Tens como explicar melhor seus problemas no bundle products? O que você não entende da newsletter? – De qualquer forma não garanto conseguir responder todas as suas dúvidas aqui no meu blog, então recomendo a você fazê-las de forma mais pontual diretamente no fórum MagentoCommerce, onde o pessoal tentará te ajudar.

    Abraço!

  3. Alexandre disse:

    Odeio ter que fazer isso!(Postar em Blogs me consome muito tempo.)
    Então uma pergunta simples com uma resposta simples, porém incompleta.
    No Bundle product você pode realizar a seguinte alteração:

    Vá em /app/design/frontend/default/blank/template/bundle/catalog/product/view/type/option/checbox.phtml ou no template que estiver usando e coloque este código dentro do foreach:

    helper(‘catalog/output’);
    echo ‘helper(‘catalog/image’)->init($_selection, ‘image’)->resize(95,135).’” alt=”" />’;
    ?>

    Funcionar funciona, mas a imagem não é a do produto, e sim a principal, ou seja, ficará igual ao Grouped product, onde as imagens são idênticas as da imagem principal.

    Se houver alguma maneira de alinhar a esquerda as fotos e que cada produto tenha a foto respectiva de seu anúncio me digam por favor.

  4. Alexandre disse:

    Mais uma vez!

    Testando a nova configuração percebi que não “puxa” foto alguma este código. Não deveria ser algo automático? ¬_¬

  5. Alexandre disse:

    Boa noite! Alterei algumas coisas e deixei do jeito que queria, como de esperado um Blog pouco me ajudou fui na raça mesmo, as imagens ainda não funcionam, mas o estilo ficou legal, fiz algo meio “Bruto” na tabela.

    helper(‘catalog/output’);
    echo ‘helper(‘catalog/image’)->init($_selection, ‘image’)->resize(95,135).’” alt=”" />’;
    ?>

     

    <input onclick="bundle.changeSelection(this)" class="checkbox bundle-option-getId() ?> getRequired() ? ‘validate-one-required-by-name’ : ” ?>” id=”bundle-option-getId() ?>-getSelectionId() ?>” type=”checkbox” name=”bundle_option[getId() ?>][]“getIsDefault() && $_selection->isSaleable())?’ checked=”checked” ‘:” ?>isSaleable()?’ disabled=”disabled” ‘:” ?> value=”getSelectionId() ?>” />
    <label for="bundle-option-getId() ?>-getSelectionId() ?>”>getSelectionQtyTitlePrice($_selection) ?>
    getRequired()): ?>
    setValidationContainer(‘bundle-option-’.$_option->getId().’-’.$_selection->getSelectionId(), ‘bundle-option-’.$_option->getId().’-container’) ?>

    Caso alguém descubra como “aparecer as imagens” me diga por gentileza, estou revoltado apenas hoje 25/08/09, costumo ser mais amigável em dias normais.

    Acho que por enquanto só! Brigadão Alisson, apenas usei sua dica como alavanca.

    alexandre@moveispinheiro.com.br

  6. Alexandre disse:

    O código saiu zuado! Boa sorte agora. caso precisem entrem em contato por email, eu passo um txt.

  7. Alexandre disse:

    RESOLVIDO O PROBLEMA ACIMA!!!

    Andando e tropeçando pela comunidade achei a resposta para minhas questões, http://www.magentocommerce.com/boards/viewthread/31267/

    Vai ser necessário algumas alterações de código, mas HMTL básico é necessário, nada de alterações no php ok.

    Boa Sorte!

Deixe um comentário



© 2014 - Indexa Ltda. Todos os direitos reservados.