Как устроен компонент places

 
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1159
Вопрос больше всего к администрации или к разработчикам которые сталкивались с такой проблемой.
Есть тип контента places и есть компонент places, со своим frontend.php model.php и т.д. и вот возникает вопрос, почему нет конфликта?
Пытаюсь доработать тип контента, создаю папку в controllers, создаю frontend.php и model.php но на сайте получаю индексную страницу из frontend.php, если убрать actionIndex() то получаю ошибку 404
Как в InstantMaps это устроено?
Дополнения для InstantCMS 2 | Готовый сайт Доска объявлений
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3549
Тоже интересен такой вопрос: Как увязать тип контента и компонент с таким же системным именем? Есть лишь предположение, что они связанны роутерами и хуками. Но пока у меня маловато знаний движка и времени на поиски решения в этом вопросе.
Реклама
cms
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 1827
Loadырь:
Как увязать тип контента и компонент с таким же системным именем
Я так форум начал делать.
Как только есть тип контента и такая же папка, между ними появляется связь.
Создается компонент и играет по правилам и настройкам созданного контента.
Т.е. все что в админке в типе контента настраивается, можно использовать в компоненте.
Теперь нужно создавать свои файлы обработки и функции.
Большинство наследуется из стандартных системных.
Может не правильно как то выражаюсь конечно, но я два дня убил чтоб немного понять что-куда.
И получилось такое начало компонента форум: http://instantcms.2bl.ru/topic
Соответственно все разделы управляются штатно, и записи тоже из админки.
Мой блог с плюшками
Посетитель
small user social cms
Медаль
Сообщений: 539
kreator:

Loadырь:
Как увязать тип контента и компонент с таким же системным именем
Я так форум начал делать.
Как только есть тип контента и такая же папка, между ними появляется связь.
Создается компонент и играет по правилам и настройкам созданного контента.
Т.е. все что в админке в типе контента настраивается, можно использовать в компоненте.
Теперь нужно создавать свои файлы обработки и функции.
Большинство наследуется из стандартных системных.
Может не правильно как то выражаюсь конечно, но я два дня убил чтоб немного понять что-куда.
И получилось такое начало компонента форум: http://instantcms.2bl.ru/topic
Соответственно все разделы управляются штатно, и записи тоже из админки.

Здорово... Если бы поля и свойства типов контента были функциональней и более расширенными..
То наверное и форум можно было сваять с помощью УК.)) Теоретически...)))
instantcms.su - официальная поддержка SiteKreator, UserPay, SiteStroi, ForumKreator
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1035
Evanescence:
Пытаюсь доработать тип контента, создаю папку в controllers, создаю frontend.php и model.php но на сайте получаю индексную страницу из frontend.php, если убрать actionIndex() то получаю ошибку 404
Как в InstantMaps это устроено?
присоединяюсь к вопросу. Тоже самое происходит
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1035
Вообщем получилось разобраться. Огромное спасибо Val за огромную помощь!!!
Чтобы соединить компонент и тип контента, нужно в файле фронтенд добавить две функции:
Код PHP:
  1.  
  2. public function routeAction($action_name) {
  3. $core = cmsCore::getInstance(); // подключаем ядро
  4.  
  5. if (!$core->uri_params) { // если параметров в ссылке нет, то
  6. $core->uri_controller = 'content'; // указываем имя нужного контроллера
  7. $core->runController(); // и запускаем его
  8.  
  9. $this->current_params = array();
  10. return 'close'; // после вывода шаблона, показываем пустой экшен первого контроллера
  11. }
  12. return $action_name; // возвращаем имя экшена, если есть параметры в ссылке
  13.  
  14. }
  15.  
  16. public function actionClose(){
  17. return false;
  18. }
  19.  
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3549
Rossoman, зачем вызывать пустой экшн
Код PHP:
  1. return 'close'; // после вывода шаблона, показываем пустой экшен первого контроллера
если можно сразу вернуть пустоту?
Код PHP:
  1. return false; // после вывода шаблона, выводим ничего
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1164
Loadырь, если вернуть return false внутри условия, то результат работы функции routeAction() будет false ))) и, следовательно, система решит что запрашиваемой страницы/контроллера нет и покажет 404. В приведенном примере, результат работы функции будет вызов экшена Close() (а уж что там close возвращает нам не интересно)), т.к. заранее мы передали управление контроллеру content).
Как то так smile
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3549
Val, спасибо, ещё пару-тройку недель и я доберусь до своего компонента. Какие ещё есть нюансы?
InstantCMS Team
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1343
В InstantMaps сделано так:

Код PHP:
  1.  
  2. public function routeAction($action_name) {
  3.  
  4. $core = cmsCore::getInstance();
  5.  
  6. if (!$this->isActionExists($action_name)){
  7. $core->uri_controller = 'content';
  8. $core->runController();
  9. $this->current_params = array();
  10. return 'exit';
  11. }
  12.  
  13. return $action_name;
  14.  
  15. }
  16.  
  17. public function actionExit(){ return; }
  18.  
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1035
r2:
В InstantMaps сделано так:
Вот спасибо. А то покоя не давало что в условии приходиться помимо проверки на параметры напрямую указывать нужные экшены, иначе не работало редактирование/удаление
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.