Шаблоны для модулей #обновление

Всем привет.

Добавил для модулей шаблоны (т.к. во всём проекте они используются, а для модулей были не доступны).

Как добавить шаблон и для чего, разберём ниже.

Итак, структура очень простая (при отправке на модерацию на загрузку модуля в систему):

OurModule.php

templates/

Тут лежат шаблоны.

Для чего нужны шаблоны

Для того, чтобы отделять логику от представления.

Проще говоря, чтобы не хранить HTML внутри PHP.

Давайте разберёмся на примере.

Пример

Пусть у нас есть модуль, который на странице профиля выводит случайную фразу из файлика, и если в ней встречается @Funcraft, добавляем в начало строки «Так сказал Funcraft: «.

RandomPhrase.php

<?php
class RandomPhrase extends Module
{
    ... // Тут у нас логика обработки
    public function postOnProfile($context)
    {
         // Т.к. нам контекст не важен, мы его не используем
         $file = file('/phrases.txt');
         $line = mt_rand(0, count($file)-1);// Выбираем случайную фразу   
         return Template::postPhrase(['phrase' => $line], 'return', 'RandomPhrase');
    }
}

templates/postPhrase.php

<div class="col-md-12">
    <?=(strpos($this->phrase, '@Funcraft') !== false) 
     ? Template::funcraftSaid([], 'return', 'RandomPhrase') . $this->phrase
     : $this->phrase
   ?>
</div>

templates/funcraftSaid.php

Так сказал Funcraft: <!-- Если нам понадобится изменить текст, мы не будем трогать основную часть -->

Как видите, всё просто, и в шаблонах также можно использовать шаблоны (:

Есть что сказать (добавить комментарий)

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google photo

Для комментария используется ваша учётная запись Google. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s