我想更改已安裝的Clementine Framework模塊的行爲。如何覆蓋Clementine Framework中的模塊
我知道我不應該改變app/share/
中的代碼,因爲我的更改會被破壞。我如何讓他們堅持下去?
我想更改已安裝的Clementine Framework模塊的行爲。如何覆蓋Clementine Framework中的模塊
我知道我不應該改變app/share/
中的代碼,因爲我的更改會被破壞。我如何讓他們堅持下去?
只需覆蓋您想要的功能。您可以覆蓋控制器,模型,幫助程序,視圖塊和配置文件。
對於控制器,模式和助手,您擴展定義要改變代碼的類。 Clementine Framework將自動地使用使用您的代碼而不是您重寫的代碼。
例如,要覆蓋控制器Users::createAction()
(在app/share/users/ctrl/usersUsersController.php
定義)IL,創建一個新的文件app/local/site/ctrl/siteUsersController.php
這樣看:如果你想覆蓋一個視圖塊
<?php
class siteUsersController extends siteUsersController_Parent
{
public function indexAction($request, $params = null)
{
//do your specific stuff here
//then return parent:: function
return parent::indexAction($request, $params);
}
}
,例如是在app/share/users/view/users/index.php
定義的塊,創建一個新的文件app/local/site/view/users/index.php
看起來像這樣:
<?php
//display specific stuff here
//then display parent block
$this->getParentBlock($data, $request);
如果你想覆蓋一些配置,例如是在文件app/share/users/etc/config.ini
的[module_users]
部分定義的send_account_confirmation
選項,編輯您app/local/site/etc/config.ini
文件,添加一個[module_users]
部分和覆蓋選項:
[module_users]
send_account_confirmation="1"