Здравствуйте, есть ли книга, статья, где пошагово рассказывается, как создать свой компонент на J1.5 ?
http://www.webflasher.net/ru/webmasteru/components-urok-1.html вот отсюда первоначально смотрел, но все равно делая - смотриет примеры стандартных компонентов админки (только не com_content)
Да, это уже смотрел, это не то. Мне нужно сделать простой компонент, с формочкой, доступ к которой будут иметь только зарегестрированные пользователи, в этой формочке будут всего пара полей для ввода и таблица, с ранее введёнными данными, нужно чтобы пользователь просто мог сохранить эти два поля в таблицу(добавить новую записть) и отредактировать, удалить уже существующие.
Так правильно Вам подсказывает коллега по цеху ) ... по этому линку очень подробно расписано создание простейшего компонента. Вот моя статья, где описано создание компонента. Что касается зарегистрированных пользователей - при создании кнопки в меню для вашего компонента, указываете группу пользователей - "Зарегистрированные". Форму реализуйте сами, по работе с БД и прочим функционалом джумлы - рекомендую посетить http://api.joomla.org, а также местный раздел документации.
Ну это не совсем спасение, надо бедет при получении данных во View проверять на значение глобальной переменной $user, так как просто узнав линк любой пользователь сможет получить любые данные в Вашем конмоненте!
Что касается доступа по урлу - если вы знаете урл, то его нужно немного модифицировать что бы добраться к этому компоненту. А что касается View - то там таких вещей не делается, проверка и редирект осуществляется на уровне модели или на крайний случай - контроллера.
ну или так - просто глядя на все многообразие компонентов в Джумле - там и в view проверки тоже имеются
Не совсем понятно как по этому линку учится, вот на четвертом уроке, есть код /** * display method of Hello view * @return void **/ function display($tpl = null) { //получаем приветствие $hello => $this->get('Data'); $isNew = ($hello->id < 1); $text = $isNew ? JText::_( 'New' ) : JText::_( 'Edit' ); JToolBarHelper::title( JText::_( 'Hello' ).': <small><small>[ ' . $text.' ]</small></small>' ); JToolBarHelper::save(); if ($isNew) { JToolBarHelper::cancel(); } else { // для существующих записей кнопка переименовывается на `close` JToolBarHelper::cancel( 'cancel', 'Close' ); } $this->assignRef('hello', $hello); parent::display($tpl); } Его в каком файле надо писать ? в \hello\admin\views\hellos\view.html.php или в файле \hello\site\views\hello\view.html.php Если в первом, то там в этой же статье было написан, код функции display { /** * Hellos view display method * @return void **/ function display($tpl = null) { JToolBarHelper::title( JText::_( 'Hello Manager' ), 'generic.png' ); JToolBarHelper::deleteList(); JToolBarHelper::editListX(); JToolBarHelper::addNewX(); // Get data from the model $items = > $this->get( 'Data'); $this->assignRef('items', $items); parent::display($tpl); } } А если для второго файла, то как то нелогично получается, пишется админка, а действие происходит в фронтэнде. Вобщем эта статья? кривой-перевод и как- то непонятно написанна, есть ли ещё какие нибудь учебные примеры, как написать компонент для джумлы ?
Это надо писать в \hello\admin\views\hello\view.html.php или в файле т.к. насколько я помню эта View разгребает конкретный Итем из набора записей. Она даже тулбар устанавливает Код (PHP): JToolBarHelper::save(); .. JToolBarHelper::cancel() ; и надпись слева от тулбара ИМЕННО в HELLO - там это я же потом понял (когда набрался опыта в написании компонентов) что ошибка (тут название в единственом числе и этот класс обрабатывает одну запись) У этого класса (View) - и модель как вы долны понять своя! Код (PHP): $text = $isNew ? JText::_( 'New' ) : JText::_( 'Edit' ); JToolBarHelper::title( JText::_( 'Hello' ).': <small><small>[ ' . $text.' ]</small></small>' ); Таким отбразом это View детельной записи, и у нее контроллер HelloControllerHellos (на сколько я помню ) А есть еще один единсивенный контроллер (главный), который надохится в корне админки этого компонента, а не в папке controllers А это View, которая формирует (выводит) список итемов (обычный менеджер заисей в админке) и этот код в ней находится в ней к (во View) формируется свой тулбар по добавлению/редактированию Итемов и надпись соответствующая. Код (PHP): JToolBarHelper::title( JText::_( 'Hello Manager' ), 'generic.png' ); JToolBarHelper::deleteList(); JToolBarHelper::editListX(); JToolBarHelper::addNewX(); Т.е Вы ошибаетесь!!! этод метов должен быть в этом файле \hello\admin\views\hellos\view.html.php или в файле посмотрите внимательно, в этой View для Front end(a) должен быть другой код. Я вообще не помню, по некоторые уроки по созданию MVC компонента есть на joomla.org ..Фух.. Ладно, спрашивайте еще если что
Вот нашёл информацию по написанию компонента для джумлы - http://blog.contra.lv/category/joomla/ - разбираюсь. Блин правда нагородили они там с этим MVC, написали бы джумлу на Delphi