J'essaie de créer un rapport personnalisé dans le back-end Magento; Ma stratégie consiste à faire en sorte que mon nouveau module imite la fonctionnalité Rapports/Ventes/Commandes existante dans le panneau d'administration, puis effectue les changements nécessaires une fois que j'ai vu comment les pièces s'emboîtent. J'ai ajouté mon nouvel élément de menu, et le module charge la mise en page d'administration de base et quelques fils d'Ariane, de sorte que la configuration du module et la configuration du contrôleur sont correctement configurées. Cependant, les blocs de mise en forme ne sont pas en cours de chargement. Voici le code du problème. Supposons que j'ai une copie du fichier de bloc correspondant à app/code/local/BULX/Rapports/Bloc/Rapport/Ventes/Ventes/Grid.php:Configuration de la mise en page Magento pour le nouveau module d'administration
class BULX_Reports_IndexController extends Mage_Adminhtml_Report_SalesController {
public function salesAction {
//...otherwise identical to parent class
//should load reference to Grid block
$gridBlock = $this->getLayout()->getBlock('report_sales_sales.grid');
/* in original Mage module, will output Mage_Adminhtml_Block_Report_Sales_Sales_Grid
in BULX_Report, outputs nothing. */
echo get_class($gridBlock)."<br>";
Mon fichier de configuration a
<global>
<blocks>
<bulx_reports>
<class>BULX_Reports_Block</class>
</bulx_reports>
</blocks>
...
</global>
Si je change le code pour
$gridBlock = $this->getLayout()->getBlock('bulx_reports/test');
avec le fichier suivant app/code/local/BULX/Rapports/Bloc/Test.php
class BULX_Reports_Block_Test extends Mage_Core_Block_Abstract
{
protected function _toHtml() {
echo 'to html';
}
}
-je obtenir le même résultat: non à html 'sortie, pas de sortie de l'appel get_class
J'ai ajouté des déclarations de journaux comme suggéré ici: http://www.fontis.com.au/blog/magento/magento-debugging-loading-blocks-layouts-and-config-files
et il est clair de ce Magento est pas trouver des blocs de mise en page dans mon nouveau module. Les tutoriels d'Alan Storm sont généralement incroyablement utiles, mais je ne trouve pas ce dont j'ai besoin dans alanstorm.com/magento_admin_controllers (désolé pas assez de réputation pour avoir deux hyperliens); pour autant que je sache, j'ai configuré ma configuration de manière identique. Une difficulté est que la chaîne 'report_sales_sales.grid' n'apparaît nulle part - ces Grids apparaissent dans beaucoup d'endroits dans l'admin, et ils sont construits dynamiquement par une structure que je n'ai pas trouvée.
Qu'est-ce qui me manque? C'est Enterprise Edition, 1.8. Merci!
Un gestionnaire de disposition d'administration doit-il toujours commencer par adminhtml? Peut-être que c'est mon problème: mon handle va bulxreport_index_sales, mais peut-être qu'il devrait être adminhtml_bulxreport_index_sales. Cela ne semble pas fonctionner non plus, cependant. J'ai dû mettre cela de côté pendant quelques jours et je ne pourrai pas le remettre en place pour quelques autres, malheureusement – kevinpaulconnor