Как встраивать модули на страницы?

Я создал свое собственное расширение и модули. Я могу просматривать модули нормально, перейдя по их URL. Однако теперь я хочу встроить их в страницу, как класс контента. Как мне это сделать?

Спасибо!

2 ответа

Невозможно "встроить" модуль в страницу, кроме случаев, когда вызываемый модуль делает это на уровне PHP.

Например, можно написать это:

$module = eZModule::findModule( 'content' );
$result = $module->run( 'history', array( 1 ) );

Но если вы хотите отобразить что-либо, связанное с вашим модулем, вы должны объявить, что ваше расширение содержит несколько шаблонов и переопределить некоторые шаблоны.

Допустим, вы хотели бы создать свой собственный модуль регистрации.

Шаг 1, возможно, вам придется добавить это в your_extension/settings/design.ini.append.php:

[ExtensionSettings]
DesignExtensions[]=your_extension

Теперь вы можете добавлять свои собственные user/register.tpl

Этот шаблон содержит такую ​​форму:

<form action={'/user/register'|ezurl}...

Так что вам просто нужно скопировать шаблон, но с:

<form action={'/your_module/register'|ezurl}...

Теперь предположим, что ваш шаблон должен отображать некоторую информацию, связанную с вашим модулем. Возможно, вам придется определить некоторые функции извлечения, чтобы вы могли написать что-то вроде этого:

{def $nb = fetch('your_module','beta_accounts')}

<h2>Hurry up! There are only {$nb|wash} available accounts for free!</h2>
<form action={'/your_module/register'|ezurl} method="POST">
   ...
</form>

Я надеюсь, что это поможет...

Вы должны создать шаблон оператора или функцию и использовать их в шаблоне.

Другие вопросы по тегам