借助我从最近的 Magento 升级和随后的修复中学到的知识,请帮助我解决我最大的 UI 抱怨之一:日期。这是愚蠢的:
我破解了核心文件app/code/core/Mage/Adminhtml/Block/Sales/Order/Grid.php
并将“100px”更改为“165px”,这样可以防止日期换行。我真的很想将日期从“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
如果您的语言环境不是 en_us(其文件为空),则可能会被覆盖。为了阐述 RS 答案的第一部分,日期“格式”不是 phpdate()
样式,我尝试过并得到了非常奇怪的结果。仔细阅读 Locale 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
));
致力于制作自定义模块以覆盖块渲染器。如图所示,RS 代码的第 2 部分不起作用,但他的链接给了我一个秘诀。将再次更新结果。
更新:
我尝试(但失败)覆盖 Adminhtml 块销售订单网格(absog
)。另一个模块 EM_DeleteOrder 已经被覆盖了absog
。我搜索了一个没有覆盖的替换模块,并absog
找到了一个在销售网格方面具有强大功能的扩展:MageWorx 增强订单。所以我安装了它,并破解了我想要的日期格式的源代码!我很高兴并且完成了,不再更新这个问题。