Как мне отделить файлы для «виджетов» в codeigniter? - PullRequest
0 голосов
/ 07 февраля 2011

У меня есть базовый cms, который загружает контент на страницы, на которых есть метки усов, чтобы указать, где в html-коде это содержимое будет отображаться.для отображения, например, свободный текст с идентификатором.или другая модель и идентификатор.каждая из этих моделей будет отображаться по-разному в зависимости от модели, на которой они основаны.

Я могу представить, что это становится немного громоздким, есть ли способ создать отдельную папку для размещения этих виджетов, чтобыне загромождает мой основной код.

Что-то вроде apotomo на рельсах было бы хорошо, но для codeigniter.

Ответы [ 2 ]

2 голосов
/ 07 февраля 2011

Модель виджета?Это не так приятно.Вы пробовали смотреть PyroCMS ?

https://github.com/pyrocms/pyrocms/blob/master/system/pyrocms/modules/widgets/libraries/Widgets.php

Возможно, вас больше заинтересует наша библиотека Плагины как то же самое с другим именем).Он настроен на MY_Parser и работает поверх реализации Simpletags Дэна Хорригана.

В любом случае, этого достаточно.Если вам нужен более конкретный совет, вам может понадобиться продемонстрировать часть кода.

0 голосов
/ 07 февраля 2011

Создайте папку внутри приложения / представления, называемые widgets .Поместите ваши виджеты в эту папку и создайте отдельный файл для каждого виджета (d0h).

Далее у вас есть 2 варианта (по крайней мере, о которых я знаю):

a.) Загрузитевиджеты в переменные внутри контроллера, а затем передать их в основной / общий вид

$data['widget_twitter_feed'] = $this->load->view('widgets/twitter', '', false);
$data['widget_something'] = $this->load->view('widgets/something', '', false);

$this->load->view('my_main_view', $data);

b.) Загрузить виджеты внутри самого основного / общего вида

<html>
...
   <div id="sidebar">
      <?php $this->load->view('widgets/twitter'); ?>
   </div>
   ...
   <div id="footer">
      <?php $this->load->view('widgets/something'); ?>
   </div>
...
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...