Форум русской поддержки Joomla!® CMS
04.12.2016, 18:23:47 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Ошибка "Представление не найдено" в публичной части компонента

 (Прочитано 57 раз)
0 Пользователей и 1 Гость смотрят эту тему.
denism300
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 99


« : 15.11.2016, 13:29:17 »

При попытке зайти на публичную часть своего компонента по адресу: site.local/index.php?option=com_mycomp получаю ошибку:
Цитировать
Представление не найдено [name, type, prefix]: mycomp, HTML, mycompView

к публичной части только приступил, поэтому, создал лишь основной каркас
site.local/components/com_mycomp/mycomp.php
Код
<?php defined('_JEXEC') or die('Restricted access');
 
jimport('joomla.application.component.controller');
 
$controller = JControllerLegacy::getInstance('MyComp');
$input = JFactory::getApplication()->input;
$controller->execute($input->getCmd('task', 'display'));
$controller->redirect();

site.local/components/com_mycomp/controller.php
Код
<?php defined('_JEXEC') or die('Restricted access');
 
jimport('joomla.application.component.controller');
class MyCompController extends JControllerLegacy {
}

site.local/components/com_mycomp/views/objects/view.html.php
Код
<?php defined('_JEXEC') or die('Restricted access');
 
jimport('joomla.application.component.view');
 
class MyCompViewObjects extends JViewLegacy {
 
   protected $item;  
 
public function display($tpl = null) {
 
$this->item = 'Hello World';
        parent::display($tpl);
}
} ?>

site.local/components/com_mycomp/views/objects/tmpl/default.php
Код
<?php defined('_JEXEC') or die('Restricted access');
 
echo $this->item; ?>

пользовался материалами отсюда
« Последнее редактирование: 15.11.2016, 13:34:52 от denism300 » Записан
SmokerMan
Профи
********

Репутация: +692/-25
Online Online

Пол: Мужской
Сообщений: 5216



« Ответ #1 : 15.11.2016, 13:47:14 »

site.local/components/com_mycomp/views/objects/tmpl/default.php
а с чего он узнает что ему по дефолту надо ставить вид objects?
Цитировать
class MyCompController extends JControllerLegacy
{
   public function display($cachable = false, $urlparams = false)
   {
      $app = JFactory::getApplication();
      if ($app->input->get('view') == '')
         $app->input->set('view', 'objects');

      parent::display($cachable, $urlparams);
   }
}
либо создать пункт меню на этот вид
Записан
Aleks.Denezh
Практически профи
*******

Репутация: +372/-4
Offline Offline

Пол: Мужской
Сообщений: 2762



« Ответ #2 : 15.11.2016, 15:08:34 »

Или так класс контроллер написать:
Код
class MyCompController extends JControllerLegacy { 
 
protected $default_view = 'objects';
 
}
Записан
denism300
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 99


« Ответ #3 : 16.11.2016, 00:37:41 »

я разобрался, просто на cmscafe класс контроллера пустой, вот и затупил изначально. потом посмотрел, как в com_content реализовано.
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet