Domanda

Sono stato alle prese con una situazione stupida. Un cliente mi ha chiesto di modificare la sua pagina "Ricerca avanzata" per aggiungere alcune opzioni. L'URL di questa pagina è come http://www.dominioname.com/index.php/catalogsearch/advanced/

Questo è un negozio Magento e non ho esperienza con questo framework. Ho cercato di impararlo, ma ho trovato la curva di apprendimento troppo ripida per acquisire conoscenze sufficienti per completare il progetto in tempo.

Quindi per prima cosa ho creato un piccolo strumento PHP che cerca in tutti i file di origine un termine di ricerca e riporta il numero di hit. Ho usato questo strumento per cercare stringhe uniche che compaiono nella pagina di ricerca avanzata. Ma il testo non si trova da nessuna parte!

Il mio prossimo tentativo è stato quello di guardare il database per trovare la stringa. Quindi ho esportato tutti i dati DB e copiato le query risultanti nel mio editor di codice, ho cercato di nuovo e non ho trovato nulla!

Questo è molto imbarazzante e mi sta facendo impazzire. Non riesco a trovare il blocco di codice che genera le opzioni di ricerca avanzata!

L'aiuto di "QUALSIASI" sarebbe MOLTO apprezzato.

Grazie, Majid

È stato utile?

Soluzione

Gli URL di Magento indicano dove si trovano i file modello per un determinato modulo.

Ad esempio, quando stai cercando catalogsearch / advanced / , tutti i file di modello si trovano nell'app / design / frontend / default / your-theme / .

Guarda dentro quella cartella e dovrebbe essere ovvio. Avrai una cartella chiamata catalogsearch e al suo interno una cartella chiamata advanced ; all'interno del quale sono presenti due file:

  • form.phtml
  • result.phtml

Altri suggerimenti

Finora ho usato le seguenti tattiche su un box di sviluppo locale - ovviamente non provarlo su un negozio dal vivo !:

  1. Attiva Suggerimenti percorso modello + Blocca nomi nel sistema - > Config - > Sviluppatore. Questo ti porterà al file phtml che esegue il rendering finale e anche al tipo di oggetto a blocchi che utilizza. A meno che tu non abbia limitato l'IP, tutti i visitatori li vedranno!
  2. Quindi nei file phtml per scavare ulteriormente puoi facilmente Zend_Debug :: dump ($ var) per ispezionare la variabile / oggetto in questione e trovare il tipo di oggetto ecc.
  3. Cerca nel tuo editor o sfoglia le directory / app / code per trovare quali file definiscono il tipo di oggetto che hai appena trovato, anche se, poiché basato su Zend, il percorso del file corretto può essere elaborato la maggior parte delle volte dall'oggetto classe.

Anche

  • Un trucco utile è inserire deliberatamente un errore in un file php / phtml, Magento ti offre una schermata di errore ben formattata con uno stack di chiamate che è interessante leggere
  • le istruzioni echo () nei file core normalmente funzionano abbastanza bene, nell'impostazione Magento normalmente non attivano l'invio delle intestazioni HTML nel momento sbagliato
  • Usa un IDE come Netbeans / Eclipse / Zend studio ecc. e inserisci tutto il codice Magento nel tuo progetto, le informazioni phpdoc risultanti, la 'dichiarazione aperta' e l'assistenza al codice ti faranno risparmiare ore di ricerca
  • Dedica del tempo a far funzionare Xdebug sul tuo server di prova con un IDE che ti consenta di utilizzarlo. La più semplice che ho trovato da installare da zero (su un Mac) è un'installazione locale di Mamp con Netbeans come IDE: il sito Netbeans ti guiderà attraverso questo, una volta che avrai funzionato bene, puoi dimenticare la maggior parte di gli altri trucchi!

Queste sono solo le cose che ho provato finora - altri suggerimenti per favore! Non ho ancora trovato una tecnica per eseguire il debug di problemi di configurazione da problemi XML nella moltitudine di file XML utilizzati da Magento, i problemi qui tendono a fallire silenziosamente e sono davvero difficili da rintracciare di conseguenza + la documentazione xml è terribile.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top