2016-05-13 11 views

Antwort

0

Lassen Sie uns Schritt-für-Schritt:

Vorlage (app/design/adminhtml/default/default/template/Armaturenbrett/index.phtml), Linie 98

<div class="dashboard-container"> 
<?php echo $this->getChildHtml('store_switcher') ?> 
<table cellspacing="25" width="100%"> 
    <tr> 
     <td> 
      <!-- Start including the sales blocks --> 
      <?php echo $this->getChildHtml('sales') ?> 
      <!-- End including --> 
      <div class="entry-edit"> 
       <div class="entry-edit-head"><h4><?php echo $this->__('Last 5 Orders') ?></h4></div> 
       <fieldset class="np"><?php echo $this->getChildHtml('lastOrders'); ?></fieldset> 
      </div> 
      <div class="entry-edit"> 
       <div class="entry-edit-head"><h4><?php echo $this->__('Last 5 Search Terms') ?></h4></div> 
       <fieldset class="np"><?php echo $this->getChildHtml('lastSearches'); ?></fieldset> 
      </div> 
      <div class="entry-edit"> 
       <div class="entry-edit-head"><h4><?php echo $this->__('Top 5 Search Terms') ?></h4></div> 
       <fieldset class="np"><?php echo $this->getChildHtml('topSearches'); ?></fieldset> 
      </div> 
     </td> 

Sie können die $this->getChildHtml('sales') einschließlich sehen. Das ist verantwortlich für diese beiden Blöcke Lifetime Sales und Durchschnittliche Verkäufe von Ihrem Screenshot. Diese Vorlage stammt aus dem Block Mage_Adminhtml_Block_Dashboard, in dem Sie eine _prepareLayout() Methode finden können.

Block-Klasse Mage_Adminhtml_Block_Dashboard (app/code/core/Mage/Adminhtml/Block/Dashboard.php)

protected function _prepareLayout() 
{ 
    ... 
     $this->setChild('sales', 
      $this->getLayout()->createBlock('adminhtml/dashboard_sales') 
     ); 
    ... 
} 

Wie Sie sehen können, setzt er den Block 'Umsatz' mit dem Block Klasse Mage_Adminhtml_Block_Dashboard_Sales .

Block-Klasse Mage_Adminhtml_Block_Dashboard_Sales (app/code/core/Mage/Adminhtml/Block/Armaturenbrett/Sales.php)

Jetzt wird es interessant! :)

Überprüfen Sie die _prepareLayout Methode ...

protected function _prepareLayout() 
{ 
    if (!Mage::helper('core')->isModuleEnabled('Mage_Reports')) { 
     return $this; 
    } 
    $isFilter = $this->getRequest()->getParam('store') || $this->getRequest()->getParam('website') || $this->getRequest()->getParam('group'); 

    $collection = Mage::getResourceModel('reports/order_collection') 
     ->calculateSales($isFilter); 

    if ($this->getRequest()->getParam('store')) { 
     $collection->addFieldToFilter('store_id', $this->getRequest()->getParam('store')); 
    } else if ($this->getRequest()->getParam('website')){ 
     $storeIds = Mage::app()->getWebsite($this->getRequest()->getParam('website'))->getStoreIds(); 
     $collection->addFieldToFilter('store_id', array('in' => $storeIds)); 
    } else if ($this->getRequest()->getParam('group')){ 
     $storeIds = Mage::app()->getGroup($this->getRequest()->getParam('group'))->getStoreIds(); 
     $collection->addFieldToFilter('store_id', array('in' => $storeIds)); 
    } 

    $collection->load(); 
    $sales = $collection->getFirstItem(); 

    // HERE YOU GO! 
    $this->addTotal($this->__('Lifetime Sales'), $sales->getLifetime()); 
    $this->addTotal($this->__('Average Orders'), $sales->getAverage()); 
} 

Was Sie (hoffentlich) sehen:

  1. Diese beiden Blöcke nur, wenn Mage_Reports angezeigt wird
  2. Die Blöcke aktiviert sind im Grunde hier fest codiert
  3. Wenn Sie etwas dazwischen wollen, schreiben Sie die _prepareLayout Methode mit Ihrem eigenen
  4. 3.
Verwandte Themen