Como você encontra o bloco de código que você está procurando em Magento?

StackOverflow https://stackoverflow.com/questions/1615961

  •  06-07-2019
  •  | 
  •  

Pergunta

Eu tenho lutado com uma situação estúpida. Um cliente me pediu para alterar sua página 'pesquisa avançada' para adicionar algumas opções. O URL da página é como http://www.domainname.com/index.php/catalogsearch/advanced/

Esta é uma loja de Magento e eu não tenho nenhuma experiência com este quadro. Eu tentei aprender, mas encontrou a curva de aprendizado muito íngreme para adquirir conhecimento suficiente para terminar o projeto dentro do prazo.

Então eu fiz pela primeira vez uma pequena ferramenta de PHP que as buscas em todos os arquivos de origem para um termo de pesquisa e relatórios de volta te número de acessos. Eu usei esta ferramenta para procurar por seqüências únicas que aparecem na página de pesquisa avançada. Mas o texto é longe de ser encontrado!

A minha próxima tentativa estava olhando para o banco de dados para encontrar a string. Então eu exportados todos os dados DB e copiado as consultas resultantes para o meu editor de código e procurou de novo, e não encontrou nada!

Isto é muito estranho e está me deixando louco. Não consigo encontrar o bloco de código que gera as opções de pesquisa avançada!

'ANY' ajuda seria muito apreciada.

Obrigado, Majid

Foi útil?

Solução

As URLs em Magento dizer onde os arquivos de modelo são para um determinado módulo.

Por exemplo, quando você está procurando catalogsearch/advanced/, todos os arquivos de modelo são localização em app/design/frontend/default/your-theme/.

Olhe dentro dessa pasta e deveria ser óbvio. Você terá uma pasta chamada catalogsearch e dentro de que uma pasta chamada advanced; dentro do qual existem dois arquivos:

  • form.phtml
  • result.phtml

Outras dicas

!

Até agora eu tenho usado as seguintes táticas em uma caixa de dev local - não tente fazer isso em uma loja ao vivo, obviamente:

  1. Ligue modelo Sugestões Caminho + Bloco Nomes em Sistema -> Configuração -> Developer. Isto fará você para o arquivo phtml que faz a renderização final e também o tipo de bloco objeto que ele usa. A menos que você IP limitado isso, cada visitante vai ver estes!
  2. Em seguida, nos arquivos PHTML para cavar ainda mais você pode facilmente Zend_Debug :: despejo ($ var) para inspecionar a variável / objeto em questão e encontrar o tipo de objeto etc.
  3. Pesquisar no seu editor ou grep através de diretórios / app / código para encontrar os arquivos que definem o tipo de objeto que você acabou de encontrar - embora como ele baseado em Zend o caminho do arquivo correto pode ser trabalhado a maior parte do tempo a partir do objeto classe.

Além disso

  • Um truque útil é deliberadamente inserir um erro em um arquivo php / phtml, Magento lhe dá uma tela de erro bem formatado com uma pilha de chamadas que é interessante leitura
  • echo () declarações nos arquivos do núcleo normalmente funcionam muito bem, no Magento configurar eles normalmente não acionar os cabeçalhos HTML para ser enviado no momento errado
  • Use um IDE como Netbeans / Eclipse / Zend Studio etc e colocar todo o código Magento em seu projeto, as informações phpdoc resultante, 'declaração aberta' e código de ajudar você vai economizar horas de busca
  • Passe o tempo para obter Xdebug de trabalho no seu servidor de teste com uma IDE que permite que você faça uso dele. O mais fácil que eu encontrei para instalação a partir do zero (em um Mac) é um Mamp instalação local com Netbeans como o IDE - o site Netbeans irá orientá-lo através deste, uma vez que tenho esta trabalhando bem, você pode esquecer-se sobre a maior parte os outros truques!

Estas são apenas as coisas que eu tentei até agora - mais sugestões, por favor! Eu ainda não encontrei uma técnica para problemas de depuração de configuração de questões XML na multidão de arquivos XML que usa Magento, os problemas aqui tendem a falhar silenciosamente e são realmente difíceis de rastrear, como resultado + a documentação xml é horrível.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top