2013-02-16 93 views
2

隨着我從最近的Magento升級和隨後的修復中學到的知識,請幫助我處理我最大的用戶界面之一:日期。這是愚蠢的:Magento日期文本:它來自哪裏,我如何更改它?

enter image description here

我砍死的核心文件app/code/core/Mage/Adminhtml/Block/Sales/Order/Grid.php和改變「100px的」到「165像素」,防止日從包裝。我真的很想將日期從'M n,Y g:i:s A'更改爲Gmail如果今天使用'g:i:s a'或如果不是今天'M n,ga'。如果顯示日期的年份不是當年,我會在年份中添加。

我看到了Overriding Magento Admin Controller, for Beginners,這可能足以讓我在覈心文件中覆蓋_prepareColumns(),但我真的很想知道如何改變這個日期!順便說一句,我grepped整個安裝和日期格式字符串顯示沒有任何部分。


更新:發現日期字符串格式在lib/Zend/Locale/Data/root.xml設置,如果你的語言環境是東西比英語(美國),其文件是空的可能會被改寫。爲了說明R.S的答案的第一部分,日期「格式」不是php date()樣式,我嘗試了並得到了相當奇怪的結果。仔細查看語言環境XML文件,我做了一些實驗,這裏是:

$this->addColumn('created_at', array(
     'header' => Mage::helper('sales')->__('Purchased On'), 
     'index' => 'created_at', 
     'type' => 'datetime', 
     'format' => 'MMM d, h:mm a', // Feb 18, 1:57 PM 
     //'format' => Mage::app()->getLocale()->getDateTimeFormat(Mage_Core_Model_Locale::FORMAT_TYPE_MEDIUM), 
     //'format' => 'MMM d, y G', 
     'width' => '165px', // CKCK: edited to fix date field width was 100px 
    )); 

正在開發一個自定義模塊來覆蓋塊渲染器。所示的R.S代碼的第2部分不起作用,但他的鏈接給了我一個配方。將再次更新結果。


更新: 我試過(and failed)覆蓋Adminhtml塊銷售訂單電網(absog)。另一個模塊EM_DeleteOrder已經覆蓋absog。我搜索了一個沒有重寫absog的替換模塊,並找到了一個關於銷售網格的強大擴展:MageWorx Enhanced Orders。所以我安裝了這個軟件,並且正在竊取他們的源碼以獲得我想要的日期格式!我很高興和完成,沒有更多的這個問題的更新。

回答

2

嘗試

$this->addColumn('created_at', array(
    'header' => Mage::helper('sales')->__('Purchased On'), 
    'index' => 'created_at', 
    'type' => 'datetime', 
    'format' => 'MMM d, h:mm a', 
    'width' => '165px', 
)); 

你也可以使用renderer

$this->addColumn('created_at', array(
    'header' => Mage::helper('sales')->__('Purchased On'), 
    'index' => 'created_at', 
     //'type' => 'datetime', //remove 
     'renderer' = new MageIgniter_FormatDate_Block_Adminhtml_Renderer_Data() 
     'width' => '165px', 
)); 

然後創建

class MageIgniter_FormatDate_Block_Adminhtml_Renderer_Data extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Action 
{ 
    public function render(Varien_Object $row) 
    { 
    return $this->_getValue($row); 
    } 

    public function _getValue(Varien_Object $row) 
    { 
    $val = $row->getData($this->getColumn()->getIndex()); // row value 
    // need to format $val 

    return $val; 

    } 
} 

+0

你確切的代碼崩潰的銷售訂單電網,但是,你讓我正確的道路上,所以明顯'accepted'。謝謝! – 2013-02-19 00:12:21

+0

我能夠對核心文件進行更改(正如我上面更新的那樣),但是我試圖製作adminhtml模塊。請查看http://stackoverflow.com/questions/14948525?謝謝! – 2013-02-19 01:52:30

相關問題