Magento安装流程概述
安装包括License、时区设置、数据库设置、管理员设置、完成页面。安装的步骤在app\code\core\Mage\Install\etc\install.xml当中,需要增加一个步骤,首先在该文件中添加一个节点。
1.License对应于app\code\core\Mage\Install\controllers \WizardController.php中beginAction函数,对应Block/Begin.php和app\design\install \default\default\template\install\begin.phtml文件。读取更目录下的LICENSE.html中的文件内容。
2.时区和上面的情况类似,通过Zend Locale获取数据,在用户选择后,在Session中进行保存。
Mage::getSingleton(‘install/session’)->setContactData($data);
3.数据库配置Block和模板文件和上面类似。提交之后,会执行 Mage_Core_Model_Resource_Setup::applyAllUpdates();要求每个模块安装数据库,同时进行数据库的更新操作。最后将第二步的时区信息更新到core_config_data表中。
4.设置管理员相关性信息提交后,密码c12dac875064706cd59ff78ee4ee6b24:KI,表示最后两个字符KI和密码连接,然后再进行md5,最终得到前面32个字符。
5.最后一步的Block和模板文件和上面类似。
1.如果需要新增加一个步骤,那么先在install.xml中增加一个步骤,安装程序根据先后顺序一步一步执行的。
2.然后在WizardController.php中增加对应的相应处理函数,可以仿照其他函数的写法。不带任何处理方法,只显示前台的函数如下:
public function contactAction()
{
$this->_checkIfInstalled();
$this->setFlag('', self::FLAG_NO_DISPATCH_BLOCK_EVENT, true);
$this->setFlag('', self::FLAG_NO_POST_DISPATCH, true);
$this->_prepareLayout();
$this->_initLayoutMessages('install/session');
$this->getLayout()->getBlock('content')->append(
$this->getLayout()->createBlock('install/contact', 'install.contact')
);
$this->renderLayout();
}
3.这个时候前台显示有左边栏目,但是没有右边的内容,需要新建对应的block。如上代码新建app\code\core\Mage\Install\Block\Contact.php文件,基本内容可以如下:
class Mage_Install_Block_Contact extends Mage_Install_Block_Abstract
{
public function __construct()
{
parent::__construct();
$this->setTemplate('install/contact.phtml');
}
public function getPostUrl()
{
return $this->getCurrentStep()->getNextUrl();
}
}
4.前台仍然没有内容,因为没有对应的模板文件。新建E:\xampp\htdocs\shop\magento1401mod\app\design \install\default\default\template\install\contact.phtml,内容可以参考其他目录下的相同文件。
5.提交之后会自动跳转到下一步,但是在跳转之前,需要在下一步的处理函数中增加对应的处理语句。
如时区信息首先存储在Session信息中,在数据库新建之后才手动插入到数据库中。
if ($data = $this->getRequest()->getQuery('config')) {
Mage::getSingleton('install/session')->setLocaleData($data);
}