Новости Joomla

Вышел WT Quick links v.2.4.0 - релиз модуля для Joomla

Вышел WT Quick links v.2.4.0 - релиз модуля для Joomla.Это модуль-конструктор для быстрого создания набора элементов. Это могут быть ссылки на компоненты Joomla, пункт меню или пользовательская ссылка. Есть условия для исключений показа элементов списка. Вы можете создавать собственные макеты вывода модуля, создавая таким образом почти всё, что угодно: от простого списка ссылок до стены фотографий на главную страницу или ссылки-теги для перелинковки категорий интернет-магазина, список FAQ, табы или аккордеоны. Модуль позволяет выводить изображения, адаптивные изображения, видео, адаптивные видео.v.2.4.0. Что нового?Добавлена поддержка новых компонентов. Добавлены новые типы ссылок и исключений для них: - Phoca Download, - Phoca Gallery, - RadicalMart (@radicalmart).Joomla 6. Успешно протестирована работа модуля на Joomla 6-alpha2.РазработчикамПроведён большой рефакторинг кода. Для типов ссылок созданы классы-драйверы. Теперь для того, чтобы добавить новый тип ссылки в модуль достаточно скопировать класс-образец из
modules/mod_wt_quick_links/src/Driver/Collection и наполнить его данными по образцу, а так же добавить необходимые языковые константы в панели администратора Joomla.Модуль бесплатный. Страница расширенияGitHub расширенияJoomla Extensions Directory👩‍💻 Подпишись на @joomlafeed.#joomla #разработка

Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много

Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много

👩‍💻 Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много. Самое главное, что возможности применения ограничиваются только вашей больной фантазией. Вы строите интерфейс своего модуля или плагина и вам нужно подтянуть данные из сторонней системы (список чего-нибудь по какому-нибудь API), чтобы сохранить выбранный id в Joomla. Или сделать какую-то проверку и в зависимости от неё показать то или иное сообщение пользователю. Для этого подойдут свои пользовательские типы полей. Интерфейс Joomla по большей части описан в XML-файлах. У каждого из них свои параметры. Некоторые не описаны в документации (manual.joomla.org), поэтому самым любопытным будет полезно заглянуть в собственно файлы фреймворка по пути

libraries/src/Form/FormField.php, а так же в
libraries/src/Form/Fields. У каждого класса поля перечислены его специфические свойства, которые можно описывать в XML. А в своём типе поля вы можете устанавливать эти значения программно. В моём модуле WT Quick links под капотом происходят изменения. Теперь для работы (в админке) ему нужен вспомогательный плагин. А в самом модуле нам бы проверить, а не выключен ли он? В Joomla есть тип поля Note - заметка. Его можно использовать для вывода примечаний.

<field type="note"     name="your_note_for_user"     label="Заголовок примечания"     title="Альтернативный способ для заголовка"     description="Текст примечания"     class="col-12 alert alert-info"     heading="h1"     close="true"/>
heading - указывать уровень заголовка.
close - позволяет закрыть это примечание. В классе поля
libraries/src/Form/Field/NoteField.php описана логика вывода. И в принципе оно нам подходит для нашей задачи. Но оно будет выводить сообщение всегда, а нам нужно только тогда, когда плагин отключён.Поэтому берём и создаём свой класс поля, который мы унаследуем от
NoteField. Это значит, что у нас в руках будет весь инструментарий стандартного поля
Note + то, что мы сами добавим. В XML-манифест добавляем наше поле
<field type="systempluginstatus"      name="systempluginstatus"     addfieldprefix="Joomla\Module\Wtquicklinks\Site\Fields"/>
-
type - имя файла и класса,-
addfieldprefix - указываем namespace к нашему классу, может быть любой нам нужный-
name - нельзя полю без имени...Это означает, что Joomla будет использовать класс поля из файла
modules/mod_wt_quick_links/src/Fields/SystempluginstatusField.php.А в классе поля будет написано следующее:
<?php// namespace для атрибута addfieldprefixnamespace Joomla\Module\Wtquicklinks\Site\Fields;// нельзя напрямую обращаться к этому файлуdefined('_JEXEC') or die;// подключаем родительский класс для переопределенияuse Joomla\CMS\Form\Field\NoteField;use Joomla\CMS\Language\Text;use Joomla\CMS\Plugin\PluginHelper;// имя класса и имя файла точь-в-точьclass SystempluginstatusField extends NoteField{     protected $type = 'Systempluginstatus';     protected function getLabel()          {               // если плагин не включён               if(PluginHelper::isEnabled('system','wtquicklinks')) {                    // меняем свойства родительского класса                    $this->class = 'alert alert-danger w-100';                    $this->element['label'] = '⚠️ А-а-а-а!';                    $this->element['description'] = 'Плагин не включён!!';                    // и просто рендерим его с нашими свойствами                    return parent::getLabel();               }          // А иначе всё хорошо, скрываем поле из виду.          $this->parentclass = 'd-none';          return '';     }}
Просто и удобно. И людям приятно, что о них позаботились и рассказали почему что-то не работает.@webtolkru#joomla #php #webdev #разработка

Обновлена информация в Плане развития Joomla

👩‍💻 Обновлена информация в Плане развития Joomla.Здесь собрана информация о датах релизов, описаны принципы версионирования, указаны ответственные за релизы, а так же даты окончания поддержки релизов. Опираясь на эту информацию вы можете планировать развитие ваших интернет-проектов.👩‍💻 Что нового?⛔️ Joomla 4.Дата окончания исправления ошибок безопасности в версии 4.x - 14 октября 2025г. ⚠️ После этой даты Joomla 4 прекратит получать какие-либо обновления, в том числе безопасности - вообще. Рекомендуем обновить ваши сайты до актуальной Joomla 5.✅ Joomla 5.- Дата окончания исправления ошибок в версии 5.x - 13 октября 2026г.- Дата окончания исправления ошибок безопасности в версии 5.x - 12 октября 2027 года.- Текущая актуальная (на момент написания заметки) версия - 5.3.1.- Опубликовано расписание выхода релизов Joomla 5.4. Стабильный релиз ожидается 14 октября 2025 года.✅ Joomla 6.- Дата окончания исправления ошибок в версии 6.x - 17 октября 2028г.- Дата окончания исправления ошибок безопасности в версии 6.x - 16 октября 2029г.- Опубликовано расписание выхода релизов Joomla 6.0. Стабильный релиз ожидается 14 октября 2025 года.- Для разработчиков уже доступна Joomla 6.0.0-alpha1.✅ Joomla! Framework.Обновлена информация о Joomla! Framework - полноценном PHP-фреймворке для разработки. Он в версиях 1.х и 2.х был самостоятельным параллельным проектом, однако начиная с версии Joomla 4.0 стал её основой. Добавлена информация о Joomla! Framework 3.x, который вышел 6 октября 2023 года. Его можно использовать в тех случаях, когда вам в проекте не нужна CMS Joomla целиком.Подробнее на сайте Joomla-сообщества Joomlaportal.ru#joomla #community

0 Пользователей и 1 Гость просматривают эту тему.
  • 173 Ответов
  • 34269 Просмотров
*

dremora

  • Захожу иногда
  • 461
  • 48 / 12
Помогите разобраться...

Сперва интересует админка и в частности база данных. Под все расширения, теперь одна таблица - jos__extensions.
Но самое непонятное тут:

поле - manifest_cache
Код
a:11:{s:6:"legacy";b:0;s:4:"name";s:14:"PhocaGuestbook";s:4:"type";s:9:"component";s:12:"creationDate";s:10:"04/10/2010";s:6:"author";s:26:"Jan Pavelka (www.phoca.cz)";s:9:"copyright";s:11:"Jan Pavelka";s:11:"authorEmail";s:0:"";s:9:"authorUrl";s:12:"www.phoca.cz";s:7:"version";s:11:"2.0.0 Beta1";s:11:"description";s:15:"Phoca Guestbook";s:5:"group";s:0:"";}

и поле - params
Код
{"display_title_form":"2","display_name_form":"2","display_email_form":"1","display_website_form":"0","display_content_form":"2","enable_editor":"1","display_path_editor":"1","display_form":"0","form_position":"1","editor_width":"350","editor_height":"200","table_width":"350","predefined_name":"","username_or_name":"0","disable_user_check":"0","registered_users_only":"0","review_item":"1","send_mail":"0","display_name":"1","display_email":"0","display_website":"1","date_format":"DATE_FORMAT_LC","font_color":"#000000","second_font_color":"#dddddd","background_color":"#C8DFF9","border_color":"#E6E6E6","default_pagination":"10","pagination":"5,10,15,20,50","pagination_hide_all":"1","forbidden_word_filter":"","forbidden_whole_word_filter":"","ip_ban":"","max_char":"2000","max_url":"5","deny_url_words":"","enable_captcha":"1","enable_captcha_users":"0","standard_captcha_chars":"1,2,3,4,5,6,7,8,9, a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z, A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z","math_captcha_chars":"1,2,3,4,5,6,7,8,9, a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z, A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z","ttf_captcha_chars":"1,2,3,4,5,6,7,8,9, a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z, A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z","recaptcha_publickey":"","recaptcha_privatekey":"","enable_html_purifier":"1"}
Всё что не анархия, то фашизм...
*

dremora

  • Захожу иногда
  • 461
  • 48 / 12
Re: Написание компонента для Joomla 1.6
« Ответ #1 : 03.01.2011, 04:24:58 »
Итак продолжим операцию... ТЗ простое... Нужно всего лишь заполнять, удалять и редактировать строки однои таблицы. Поля таблицы:

Код

CREATE TABLE IF NOT EXISTS `jos_advsearch` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `itemid` int(11) NOT NULL,
  `articleid` int(11) NOT NULL,
  `title` varchar(200) NOT NULL,
  `yearwrite` int(11) NOT NULL,
  `number` varchar(255) NOT NULL,
  `author` varchar(200) NOT NULL,
  `keywords` text NOT NULL,
  `published` tinyint(2) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `id` (`id`),
  UNIQUE KEY `id_3` (`id`),
  KEY `id_2` (`id`),
  KEY `id_4` (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=21 ;


Я не знаю, может теперь нужно дополнительно какие-то поля вводить... Но, если что добавим...

Фронтэнд у меня отлично работает... Писал без MVC, так как задача достаточно специфическая, по сути дела, просто расширенный фильтр(поиск). Фильтр ищет по полям таблицы. Т.к. в контенте не указаны иногда поле автор, ключевые слова и прочие. Возможно это будет несколько неправильно и может неудобно вести контент и заполнять отдельно таблицу. Но, так зато будет работать быстрее. И не нужно будет патчить, добавлять новые поля и редактировать файлы, которые можно случайно при обновлении потрать. Кроме того, это даст возможно некоторые новые возможности.

фронэнд тут:
vmpr.ru

В поиске, если что-то набрать выводиться результат. С постраничной навигацией проблемы. Теряются элементы запроса... Таким образом на второй странице уже неправильный запрос SQL. И с работой в режиме ЧПУ, с постраничной навигацией  были проблемы. Но, это не смертельно важно щас...
« Последнее редактирование: 03.01.2011, 05:24:46 от dremora »
Всё что не анархия, то фашизм...
*

dremora

  • Захожу иногда
  • 461
  • 48 / 12
Re: Написание компонента для Joomla 1.6
« Ответ #2 : 03.01.2011, 06:48:49 »
Легализация

переименовал уже сделанное в \components\temp. Сперва нам нужно, установить компонент... Что почему то у меня не получилось...
Для образца я разобрал XML - PhocaGuestbook ( http://www.phoca.cz/download/category/5-phoca-guestbook-component ). Он кстати уже установлен и работает на этом саите.

Код
<?xml version="1.0" encoding="utf-8"?>
<extension method="upgrade" type="component" version="1.6.0">
<name>PhocaGuestbook</name>
<author>Jan Pavelka (www.phoca.cz)</author>
<creationDate>02/12/2010</creationDate>
<authorEmail></authorEmail>
<authorUrl>www.phoca.cz</authorUrl>
<copyright>Jan Pavelka</copyright>
<license>GNU/GPL</license>
<version>2.0.0 Beta2</version>
<description>Phoca Guestbook</description>

<install>
<sql>
<file driver="mysql" charset="utf8">install.sql</file>
</sql>
</install>

<uninstall>
<sql>
<file driver="mysql" charset="utf8">uninstall.sql</file>
</sql>
</uninstall>

<installfile>install.phocaguestbook.php</installfile>

<uninstallfile>uninstall.phocaguestbook.php</uninstallfile>

<files folder="site">
<filename>controller.php</filename>
<filename>index.html</filename>
<filename>metadata.xml</filename>
<filename>phocaguestbook.php</filename>
<filename>router.php</filename>
<folder>assets</folder>
<folder>controllers</folder>
<folder>helpers</folder>
<folder>models</folder>
<folder>views</folder>
</files>

<languages>
<language tag="en-GB" client="site">language/en-GB/en-GB.com_phocaguestbook.ini</language>
<language tag="en-GB" client="site">language/en-GB/en-GB.com_phocaguestbook.sys.ini</language>
</languages>

<administration>
<menu img="components/com_phocaguestbook/assets/images/icon-16-pgb-menu.png" link="option=com_phocaguestbook">COM_PHOCAGUESTBOOK</menu>
<submenu>
<menu img="components/com_phocaguestbook/assets/images/icon-16-pgb-menu-cp.png" alt="COM_PHOCAGUESTBOOK_CONTROLPANEL" view="phocaguestbookcp" link="option=com_phocaguestbook">COM_PHOCAGUESTBOOK_CONTROLPANEL</menu>
<menu img="components/com_phocaguestbook/assets/images/icon-16-pgb-menu-item.png" alt="COM_PHOCAGUESTBOOK_ITEMS" view="phocaguestbooks" link="option=com_phocaguestbook&amp;amp;view=phocaguestbooks">COM_PHOCAGUESTBOOK_ITEMS</menu>
<menu img="components/com_phocaguestbook/assets/images/icon-16-pgb-menu-guestbook.png" alt="COM_PHOCAGUESTBOOK_GUESTBOOKS" view="phocaguestbookbs" link="option=com_phocaguestbook&amp;amp;view=phocaguestbookbs">COM_PHOCAGUESTBOOK_GUESTBOOKS</menu>
<menu img="components/com_phocaguestbook/assets/images/icon-16-pgb-menu-info.png" alt="COM_PHOCAGUESTBOOK_INFO" view="phocaguestbookin" link="option=com_phocaguestbook&amp;amp;view=phocaguestbookin">COM_PHOCAGUESTBOOK_INFO</menu>
</submenu>

<files folder="admin">
<filename>access.xml</filename>
<filename>config.xml</filename>
<filename>controller.php</filename>
<filename>index.html</filename>
<filename>install.bak.sql</filename>
<filename>install.phocaguestbook.php</filename>
<filename>install.sql</filename>
<filename>phocaguestbook.php</filename>
<filename>phocaguestbook.xml</filename>
<filename>uninstall.phocaguestbook.php</filename>
<filename>uninstall.sql</filename>
<folder>assets</folder>
<folder>controllers</folder>
<folder>help</folder>
<folder>helpers</folder>
<folder>models</folder>
<folder>tables</folder>
<folder>views</folder>
</files>

<languages>
<language tag="en-GB">language/en-GB/en-GB.com_phocaguestbook.ini</language>
<language tag="en-GB">language/en-GB/en-GB.com_phocaguestbook.sys.ini</language>
</languages>

</administration>
</extension>


Вот моё:
Код
<?xml version="1.0" encoding="utf-8"?>
<extension method="upgrade" type="component" version="1.6.0">
<name>AdvSearch</name>
<author>dremora</author>
<creationDate>03/01/2011</creationDate>
<authorEmail></authorEmail>
<authorUrl></authorUrl>
<copyright>dremora</copyright>
<license>GNU/GPL</license>
<version>1.0.0 Beta</version>
<description>AdvSearch for vmpr.ru</description>

<install>
<sql>
<file driver="mysql" charset="utf8">install.sql</file>
</sql>
</install>

<install>
<sql>
<file driver="mysql" charset="utf8">install.sql</file>
</sql>
</install>

<installfile>install.advsearch.php</installfile>

<uninstallfile>uninstall.advsearch.php</uninstallfile>

<files folder="site">
<filename>advsearch.php</filename>
</files>

<languages>
<language tag="en-GB" client="site">language/en-GB/en-GB.com_advsearch.ini</language>
<language tag="en-GB" client="site">language/en-GB/en-GB.com_advsearch.sys.ini</language>
</languages>

<administration>
<menu img="components/com_advsearch/assets/images/icon-16-pgb-menu.png" link="option=com_phocaguestbook">AdvSearch</menu>

<files folder="admin">
<filename>access.xml</filename>
<filename>config.xml</filename>
<filename>controller.php</filename>
<filename>index.html</filename>
<filename>install.bak.sql</filename>
<filename>install.advsearch.php</filename>
<filename>install.sql</filename>
<filename>advsearch.php</filename>
<filename>advsearch.xml</filename>
<filename>uninstall.advsearch.php</filename>
<filename>uninstall.sql</filename>
<folder>assets</folder>
<folder>controllers</folder>
<folder>help</folder>
<folder>helpers</folder>
<folder>models</folder>
<folder>tables</folder>
<folder>views</folder>
</files>

<languages>
 <language tag="en-GB" client="site">language/en-GB/en-GB.com_advsearch.ini</language>
 <language tag="en-GB" client="site">language/en-GB/en-GB.com_advsearch.sys.ini</language>
</languages>


</administration>

</extension>

Создал всё что он требует пустое(без внутреннего содержимого )...



И видимо, потому, что пустое установка дальше не пошла...



---после чашки чаю и немного времени---

Три ошибки в установщике исправил, тем не менее, ошибка 500 сохранилась...

Код
<?xml version="1.0" encoding="utf-8"?>
<extension method="upgrade" type="component" version="1.6.0">
<name>AdvSearch</name>
<author>dremora</author>
<creationDate>03/01/2011</creationDate>
<authorEmail></authorEmail>
<authorUrl></authorUrl>
<copyright>dremora</copyright>
<license>GNU/GPL</license>
<version>1.0.0 Beta</version>
<description>AdvSearch for vmpr.ru</description>

<install>
<sql>
<file driver="mysql" charset="utf8">install.sql</file>
</sql>
</install>

<uninstall>
<sql>
<file driver="mysql" charset="utf8">uninstall.sql</file>
</sql>
</uninstall>

<installfile>install.advsearch.php</installfile>

<uninstallfile>uninstall.advsearch.php</uninstallfile>

<files folder="site">
<filename>advsearch.php</filename>
<filename>index.html</filename>
</files>

<languages>
<language tag="en-GB" client="site">language/en-GB/en-GB.com_advsearch.ini</language>
<language tag="en-GB" client="site">language/en-GB/en-GB.com_advsearch.sys.ini</language>
</languages>

<administration>
<menu img="components/com_advsearch/assets/images/icon-16-pgb-menu.png" link="option=com_advsearch">AdvSearch</menu>

<files folder="admin">
<filename>access.xml</filename>
<filename>config.xml</filename>
<filename>controller.php</filename>
<filename>index.html</filename>
<filename>install.bak.sql</filename>
<filename>install.advsearch.php</filename>
<filename>install.sql</filename>
<filename>advsearch.php</filename>
<filename>advsearch.xml</filename>
<filename>uninstall.advsearch.php</filename>
<filename>uninstall.sql</filename>
<folder>assets</folder>
<folder>controllers</folder>
<folder>help</folder>
<folder>helpers</folder>
<folder>models</folder>
<folder>tables</folder>
<folder>views</folder>
</files>

<languages>
  <language tag="en-GB" client="site">language/en-GB/en-GB.com_advsearch.ini</language>
  <language tag="en-GB" client="site">language/en-GB/en-GB.com_advsearch.sys.ini</language>
</languages>


</administration>

</extension>
« Последнее редактирование: 03.01.2011, 07:29:54 от dremora »
Всё что не анархия, то фашизм...
*

dremora

  • Захожу иногда
  • 461
  • 48 / 12
Re: Написание компонента для Joomla 1.6
« Ответ #3 : 03.01.2011, 09:02:56 »
Итак... Первыи блин оказался комом... И непонятно, почему не захотел устанавливаться.

Зато по инструкции всё хорошо установилось:
http://docs.joomla.org/Developing_a_Model-View-Controller_%28MVC%29_Component_for_Joomla!1.6_-_Part_01#admin.2Fsql.2Fupdates.2Fmysql.2F0.0.1.sql

По видимому все папки должны обязательно содержать index.html, обязательно не пустые.

UPD

Точно, добавил не пустои index.html ко всему, и всё нормально установилось.
« Последнее редактирование: 03.01.2011, 09:09:25 от dremora »
Всё что не анархия, то фашизм...
*

b2z

  • Глобальный модератор
  • 7284
  • 778 / 0
  • Разраблю понемногу
Re: Написание компонента для Joomla 1.6
« Ответ #4 : 03.01.2011, 12:17:23 »
Нового в 1.6 для разработчика много всего. Особенно это касается работой с формами. В соседней теме обсуждаем.
*

SDKiller

  • Живу я здесь
  • 2706
  • 329 / 5
  • ...ergo sum
Re: Написание компонента для Joomla 1.6
« Ответ #5 : 03.01.2011, 12:57:38 »

Но самое непонятное тут:

поле - manifest_cache
Код
a:11:{s:6:"legacy";b:0;s:4:"name";s:14:"PhocaGuestbook";s:4:"type";s:9:"component";s:12:"creationDate";s:10:"04/10/2010";s:6:"author";s:26:"Jan Pavelka (www.phoca.cz)";s:9:"copyright";s:11:"Jan Pavelka";s:11:"authorEmail";s:0:"";s:9:"authorUrl";s:12:"www.phoca.cz";s:7:"version";s:11:"2.0.0 Beta1";s:11:"description";s:15:"Phoca Guestbook";s:5:"group";s:0:"";}


Это массив, преобразованный в строку функцией serialize()

Разворачивается обратно в массив функцией unserialize()
*

dremora

  • Захожу иногда
  • 461
  • 48 / 12
Re: Написание компонента для Joomla 1.6
« Ответ #6 : 03.01.2011, 13:56:57 »
Я продолжу постить сюда... Только чуть позже (спать хочу), в стиле ежедневника/блога. Потом можно отредактировать и выделить главные моменты.
Всё что не анархия, то фашизм...
*

dremora

  • Захожу иногда
  • 461
  • 48 / 12
Re: Написание компонента для Joomla 1.6
« Ответ #7 : 04.01.2011, 05:12:53 »
Запускаем админку...

Итак... Дальше судя по мануалу становиться немного непонятно...

http://docs.joomla.org/Developing_a_Model-View-Controller_%28MVC%29_Component_for_Joomla!1.6_-_Part_06

Нужно создавать на фронте определённые папки и фаилы. Только тогда по идее мы сможем подключить таблицу.

.../administrator/components/com_advsearch/tables/advsearch.php
Код
<?php
// No direct access
defined('_JEXEC') or die('Restricted access');
 
// import Joomla table library
jimport('joomla.database.table');
 
/**
 * Hello Table class
 */
class AdvSearchTableAdvSearch extends JTable
{
        /**
         * Constructor
         *
         * @param object Database connector object
         */
        function __construct(&$db)
        {
                parent::__construct('#__advsearch', 'id', $db);
        }
}

Что делать, если я разрабатывал фронтэнд без MVC?
« Последнее редактирование: 04.01.2011, 08:23:49 от dremora »
Всё что не анархия, то фашизм...
*

dremora

  • Захожу иногда
  • 461
  • 48 / 12
Re: Написание компонента для Joomla 1.6
« Ответ #8 : 04.01.2011, 07:28:22 »
Итак... бекэнд вроде завёлся... Фаил, для работы с БД, описанныи выше, всё-же заработал.

http://docs.joomla.org/Developing_a_Model-View-Controller_%28MVC%29_Component_for_Joomla!1.6_-_Part_07

заполняем
...\administrator\components\com_advsearch\advsearch.php
Код
<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
 
// import Joomla controller library
jimport('joomla.application.component.controller');
 
// Get an instance of the controller prefixed by HelloWorld
$controller = JController::getInstance('AdvSearch');
 
// Perform the Request task
$controller->execute(JRequest::getCmd('task'));
 
// Redirect if set by the controller
$controller->redirect();

?>

заполняем контроллер
...\administrator\components\com_advsearch\controller.php
Код
<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
 
// import Joomla controller library
jimport('joomla.application.component.controller');
 
/**
 * General Controller of HelloWorld component
 */
class AdvSearchController extends JController
{
        /**
         * display task
         *
         * @return void
         */
        function display($cachable = false)
        {
                // set default view if not set
                JRequest::setVar('view', JRequest::getCmd('view', 'AdvSearch'));
 
                // call parent behavior
                parent::display($cachable);
        }
}

Заполняем представление, оно у нас в данном ТЗ одно лишь.
...\administrator\components\com_advsearch\views\advsearch\view.html.php
Код
<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
 
// import Joomla view library
jimport('joomla.application.component.view');
 
/**
 * HelloWorlds View
 */
class AdvSearchViewAdvSearch extends JView
{
        /**
         * HelloWorlds view display method
         * @return void
         */
        function display($tpl = null)
        {
                // Get data from the model
                $items = $this->get('Items');
                $pagination = $this->get('Pagination');
 
                // Check for errors.
                if (count($errors = $this->get('Errors')))
                {
                        JError::raiseError(500, implode('<br />', $errors));
                        return false;
                }
                // Assign data to the view
                $this->items = $items;
                $this->pagination = $pagination;
 
                // Display the template
                parent::display($tpl);
        }
}

И шаблон к нему
...\administrator\components\com_advsearch\views\advsearch\tmpl\default.php
Код
<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted Access');
 
// load tooltip behavior
JHtml::_('behavior.tooltip');
?>
<form action="<?php echo JRoute::_('index.php?option=com_advsearch'); ?>" method="post" name="adminForm">
        <table class="adminlist">
                <thead><?php echo $this->loadTemplate('head');?></thead>
                <tfoot><?php echo $this->loadTemplate('foot');?></tfoot>
                <tbody><?php echo $this->loadTemplate('body');?></tbody>
        </table>
</form>

Связанные шаблоны, head:
...\administrator\components\com_advsearch\views\advsearch\tmpl\default_head.php

Код
<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted Access');
?>
<tr>
        <th width="5">
                <?php echo JText::_('COM_ADVSEARCH_HEADING_ID'); ?>
        </th>
        <th width="20">
                <input type="checkbox" name="toggle" value="" onclick="checkAll(<?php echo count($this->items); ?>);" />
        </th>                    
        <th>
                <?php echo JText::_('COM_ADVSEARCH_HEADING_ITEMID'); ?>
        </th>
<th>
                <?php echo JText::_('COM_ADVSEARCH_HEADING_ARTICLEID'); ?>
        </th>

<th>
                <?php echo JText::_('COM_ADVSEARCH_HEADING_TITLE'); ?>
        </th>

<th>
                <?php echo JText::_('COM_ADVSEARCH_HEADING_YEARWRITE'); ?>
        </th>

<th>
                <?php echo JText::_('COM_ADVSEARCH_HEADING_NUMBER'); ?>
        </th>

<th>
                <?php echo JText::_('COM_ADVSEARCH_HEADING_AUTHOR'); ?>
        </th>

<th>
                <?php echo JText::_('COM_ADVSEARCH_HEADING_KEYWORDS'); ?>
        </th>

<th>
                <?php echo JText::_('COM_ADVSEARCH_HEADING_PUBLISHED'); ?>
        </th>
</tr>

Связанные шаблоны, body:
...\administrator\components\com_advsearch\views\advsearch\tmpl\default_body.php

Код
<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted Access');
?>
<?php foreach($this->items as $i => $item): ?>
        <tr class="row<?php echo $i % 2; ?>">
                <td>
                        <?php echo $item->id; ?>
                </td>
                <td>
                        <?php echo JHtml::_('grid.id', $i, $item->id); ?>
                </td>

                <td>
                        <?php echo $item->itemid; ?>
                </td>

<td>
                        <?php echo $item->articleid ; ?>
                </td>

<td>
                        <?php echo $item->title; ?>
                </td>

<td>
                        <?php echo $item->yearwrite; ?>
                </td>

<td>
                        <?php echo $item->number; ?>
                </td>

<td>
                        <?php echo $item->author; ?>
                </td>

<td>
                        <?php echo $item->keywords; ?>
                </td>

<td>
                        <?php echo $item->published; ?>
                </td>
        </tr>
<?php endforeach; ?>

Связанные шаблоны, foot:
...\administrator\components\com_advsearch\views\advsearch\tmpl\default_foot.php

Код
<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted Access');
?>
<tr>
        <td colspan="10"><?php echo $this->pagination->getListFooter(); ?></td>
</tr>

Педжинация почему-то у меня не заработала, потому я её отключил(закоментировал). Будем потом думать почему...
« Последнее редактирование: 04.01.2011, 08:20:58 от dremora »
Всё что не анархия, то фашизм...
*

dremora

  • Захожу иногда
  • 461
  • 48 / 12
Re: Написание компонента для Joomla 1.6
« Ответ #9 : 04.01.2011, 07:49:22 »
Модель к нему:

\administrator\components\com_advsearch\models\advsearch.php
Код
<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
// import the Joomla modellist library
jimport('joomla.application.component.modellist');
/**
 * HelloWorldList Model
 */
class AdvSearchModelAdvSearch extends JModelList
{
        /**
         * Method to build an SQL query to load the list data.
         *
         * @return      string  An SQL query
         */
        protected function getListQuery()
        {
                // Create a new query object.        
                $db = JFactory::getDBO();
                $query = $db->getQuery(true);
                // Select some fields
                $query->select('id,itemid,articleid,title,yearwrite,number,author,keywords,published');
                // From the hello table
                $query->from('#__advsearch');
                return $query;
        }
}

Итак, всё вроде работает... Кроме "педжинации". Нужен "русик"... Но, я сделал всё на англ. Время перехода на русскии в админке, ещё не пришло.

Удивился, почему в
\administrator\language\en-GB\

нет моих фаилов, которые должны быть после установки...

И пришлось, снова поправить главныи XML фаил.

Код
<?xml version="1.0" encoding="utf-8"?>
<extension method="upgrade" type="component" version="1.6.0">
<name>PhocaGuestbook</name>
<author>Jan Pavelka (www.phoca.cz)</author>
<creationDate>04/10/2010</creationDate>
<authorEmail></authorEmail>
<authorUrl>www.phoca.cz</authorUrl>
<copyright>Jan Pavelka</copyright>
<license>GNU/GPL</license>
<version>2.0.0 Beta1</version>
<description>Phoca Guestbook</description>

<install>
<sql>
<file driver="mysql" charset="utf8">install.sql</file>
</sql>
</install>

<uninstall>
<sql>
<file driver="mysql" charset="utf8">uninstall.sql</file>
</sql>
</uninstall>

<installfile>install.phocaguestbook.php</installfile>

<uninstallfile>uninstall.phocaguestbook.php</uninstallfile>

<files folder="site">
<filename>controller.php</filename>
<filename>index.html</filename>
<filename>metadata.xml</filename>
<filename>phocaguestbook.php</filename>
<filename>router.php</filename>
<folder>assets</folder>
<folder>controllers</folder>
<folder>helpers</folder>
<folder>models</folder>
<folder>views</folder>
</files>

<languages>
<language tag="en-GB" client="site">language/en-GB/en-GB.com_phocaguestbook.ini</language>
<language tag="en-GB" client="site">language/en-GB/en-GB.com_phocaguestbook.sys.ini</language>
</languages>

<administration>
<menu img="components/com_phocaguestbook/assets/images/icon-16-pgb-menu.png" link="option=com_phocaguestbook">COM_PHOCAGUESTBOOK</menu>
<submenu>
<menu img="components/com_phocaguestbook/assets/images/icon-16-pgb-menu-cp.png" alt="COM_PHOCAGUESTBOOK_CONTROLPANEL" view="phocaguestbookcp" link="option=com_phocaguestbook">COM_PHOCAGUESTBOOK_CONTROLPANEL</menu>
<menu img="components/com_phocaguestbook/assets/images/icon-16-pgb-menu-item.png" alt="COM_PHOCAGUESTBOOK_ITEMS" view="phocaguestbooks" link="option=com_phocaguestbook&amp;amp;view=phocaguestbooks">COM_PHOCAGUESTBOOK_ITEMS</menu>
<menu img="components/com_phocaguestbook/assets/images/icon-16-pgb-menu-guestbook.png" alt="COM_PHOCAGUESTBOOK_GUESTBOOKS" view="phocaguestbookbs" link="option=com_phocaguestbook&amp;amp;view=phocaguestbookbs">COM_PHOCAGUESTBOOK_GUESTBOOKS</menu>
<menu img="components/com_phocaguestbook/assets/images/icon-16-pgb-menu-info.png" alt="COM_PHOCAGUESTBOOK_INFO" view="phocaguestbookin" link="option=com_phocaguestbook&amp;amp;view=phocaguestbookin">COM_PHOCAGUESTBOOK_INFO</menu>
</submenu>

<files folder="admin">
<filename>access.xml</filename>
<filename>config.xml</filename>
<filename>controller.php</filename>
<filename>index.html</filename>
<filename>install.bak.sql</filename>
<filename>install.phocaguestbook.php</filename>
<filename>install.sql</filename>
<filename>phocaguestbook.php</filename>
<filename>phocaguestbook.xml</filename>
<filename>uninstall.phocaguestbook.php</filename>
<filename>uninstall.sql</filename>
<folder>assets</folder>
<folder>controllers</folder>
<folder>help</folder>
<folder>helpers</folder>
<folder>models</folder>
<folder>tables</folder>
<folder>views</folder>
</files>

<languages>
<language tag="en-GB">language/en-GB/en-GB.com_phocaguestbook.ini</language>
<language tag="en-GB">language/en-GB/en-GB.com_phocaguestbook.sys.ini</language>
</languages>

</administration>
</extension>

      <languages>
         <language tag="en-GB" client="site">language/en-GB/en-GB.com_phocaguestbook.ini</language>
         <language tag="en-GB" client="site">language/en-GB/en-GB.com_phocaguestbook.sys.ini</language>
      </languages>

должно быть без параметра...

Едем дальше... Язык. Наверное, мы будем к нему ещё возвращаться потом... Кстати не понял, зачем у разработчика com_phocaguestbook ещё есть - en-GB.com_phocaguestbook.sys.ini. Но, с этим мы наверное в будущем разберёмся.

...\administrator\language\en-GB\en-GB.com_advsearch.ini
Код
COM_ADVSEARCH_HEADING_ID="#"
COM_ADVSEARCH_HEADING_ITEMID="ItemID"
COM_ADVSEARCH_HEADING_ARTICLEID="ArticleID"
COM_ADVSEARCH_HEADING_TITLE="Title"
COM_ADVSEARCH_HEADING_YEARWRITE="Year write"
COM_ADVSEARCH_HEADING_AUTHOR="Author"
COM_ADVSEARCH_HEADING_KEYWORDS="Keywords"
COM_ADVSEARCH_HEADING_PUBLISHED="Published"
COM_ADVSEARCH_HEADING_NUMBER="Number"

И результат:



UPD
"педжинация", сама, как-то заработала... Это радует)))
« Последнее редактирование: 04.01.2011, 08:18:20 от dremora »
Всё что не анархия, то фашизм...
*

b2z

  • Глобальный модератор
  • 7284
  • 778 / 0
  • Разраблю понемногу
Re: Написание компонента для Joomla 1.6
« Ответ #10 : 04.01.2011, 10:13:41 »
.sys.ini файлы нужны для локализации админки. Например, для работы с пунктами меню.

Кстати, я заметил, что $db вызывается не по ссылке (не используется &). Интересно, это ошибка или так и должно быть? Походу так и должно быть, потому что во всех примерах JFactory используется без &
*

dremora

  • Захожу иногда
  • 461
  • 48 / 12
Re: Написание компонента для Joomla 1.6
« Ответ #11 : 04.01.2011, 10:56:17 »
.sys.ini файлы нужны для локализации админки. Например, для работы с пунктами меню.

Кстати, я заметил, что $db вызывается не по ссылке (не используется &). Интересно, это ошибка или так и должно быть? Походу так и должно быть, потому что во всех примерах JFactory используется без &
Я фронт делал без ссылки... Хотя, ссылка это полезная вещь... Т.е. работает и так и так...

В общем накуралесил я немного... Это у нас - advsearchs - представление и контроллер. А advsearch будет - редактирование или создание нового. Можно, конечно обоити(оставить) это и сделать через AJAX.

Когда посплю продолжу остался финал.
Всё что не анархия, то фашизм...
*

dremora

  • Захожу иногда
  • 461
  • 48 / 12
Re: Написание компонента для Joomla 1.6
« Ответ #12 : 07.01.2011, 13:23:22 »
Итак поправил, части(advsearch и advsearchs).

Но почему-то нет тулбара...

Для тулбара прописал:
...\administrator\components\com_advsearch\views\advsearchs\view.html.php
Код
<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
 
// import Joomla view library
jimport('joomla.application.component.view');
 
/**
 * HelloWorlds View
 */
class AdvSearchViewAdvSearchs extends JView
{
        /**
         * HelloWorlds view display method
         * @return void
         */
        function display($tpl = null)
        {
                // Get data from the model
                $items = $this->get('Items');
                $pagination = $this->get('Pagination');
 
                // Check for errors.
                if (count($errors = $this->get('Errors')))
                {
                        JError::raiseError(500, implode('<br />', $errors));
                        return false;
                }
                // Assign data to the view
                $this->items = $items;
                $this->pagination = $pagination;
 
                // Display the template
                parent::display($tpl);
        }

protected function addToolBar()
        {
                JToolBarHelper::title(JText::_('COM_ADVSEARCH_TITLE'));
                JToolBarHelper::deleteListX('', 'advsearchs.delete');
                JToolBarHelper::editListX('advsearch.edit');
                JToolBarHelper::addNewX('advsearch.add');
        }

protected function setDocument()
        {
                $document = JFactory::getDocument();
                $document->setTitle(JText::_('COM_ADVSEARCH_ADMINISTRATION'));
        }
}

Добавил в язык нужное и в "sys" то-же. Может быть дело в кнопках, но title(заголовок компонента) почему-то то-же не выводиться.

Думаю почему... У PhocaGuestbook такая же запись(синтаксис), но почему-то всё работает.
Всё что не анархия, то фашизм...
*

zuich

  • Новичок
  • 9
  • 3 / 0
Re: Написание компонента для Joomla 1.6
« Ответ #13 : 07.01.2011, 13:38:55 »
У вас  "addToolBar()" в  "function display" не прописана
*

b2z

  • Глобальный модератор
  • 7284
  • 778 / 0
  • Разраблю понемногу
Re: Написание компонента для Joomla 1.6
« Ответ #14 : 07.01.2011, 13:52:32 »
У вас  "addToolBar()" в  "function display" не прописана
Точнее вот так в display():
$this->addToolBar();

Здесь есть немного основной инфы на русском, а здесь достаточно много на английском.



*

dremora

  • Захожу иногда
  • 461
  • 48 / 12
Re: Написание компонента для Joomla 1.6
« Ответ #15 : 07.01.2011, 13:54:23 »
оу... точно, спс

"+" в карму...

Беда, я немного невнимательный...

UPD

Теперь тулбар заработал...
Всё что не анархия, то фашизм...
*

dremora

  • Захожу иногда
  • 461
  • 48 / 12
Re: Написание компонента для Joomla 1.6
« Ответ #16 : 10.01.2011, 10:37:12 »
Есть одна проблема, которую  никак не могу решить... Казалось бы, опять невнимательность и опечатка... Но, после того, как добавляю или редактирую запись. Когда, жму отмену или сохранить.

Попадаю на - [домен]/administrator/index.php?option=com_advsearch&view=advsearches
И естественно получаю ошибку - 500

А должно быть:
[домен]/administrator/index.php?option=com_advsearch&view=advsearchs

Много раз раз проверял код через поиск -  "advsearches". А так-же фаилы и папки на - "advsearches". Сверился полностью с мануалом. И вроде всё верно. Но, тем не менее, как, чья-то нехороша шутка - не работает. Удаляет хорошо... А добавить или отредактировать запись не получается.

Скорее всего ошибка в контроллере или в модели. Но там её нет..
...\administrator\components\com_advsearch\models\advsearch.php
Код
<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
 
// import Joomla modelform library
jimport('joomla.application.component.modeladmin');
 
/**
 * HelloWorld Model
 */
class AdvSearchModelAdvSearch extends JModelAdmin
{
        /**
         * Returns a reference to the a Table object, always creating it.
         *
         * @param       type    The table type to instantiate
         * @param       string  A prefix for the table class name. Optional.
         * @param       array   Configuration array for model. Optional.
         * @return      JTable  A database object
         * @since       1.6
         */
        public function getTable($type = 'AdvSearch', $prefix = 'AdvSearchTable', $config = array())
        {
                return JTable::getInstance($type, $prefix, $config);
        }
        /**
         * Method to get the record form.
         *
         * @param       array   $data           Data for the form.
         * @param       boolean $loadData       True if the form is to load its own data (default case), false if not.
         * @return      mixed   A JForm object on success, false on failure
         * @since       1.6
         */
        public function getForm($data = array(), $loadData = true)
        {
                // Get the form.
                $form = $this->loadForm('com_advsearch.advsearch', 'advsearch', array('control' => 'jform', 'load_data' => $loadData));
                if (empty($form))
                {
                        return false;
                }
                return $form;
        }
        /**
         * Method to get the data that should be injected in the form.
         *
         * @return      mixed   The data for the form.
         * @since       1.6
         */
        protected function loadFormData()
        {
                // Check the session for previously entered form data.
                $data = JFactory::getApplication()->getUserState('com_advsearch.edit.advsearch.data', array());
                if (empty($data))
                {
                        $data = $this->getItem();
                }
                return $data;
        }
}

...\administrator\components\com_advsearch\controllers\advsearch.php
Код
<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
 
// import Joomla controllerform library
jimport('joomla.application.component.controllerform');
 
/**
 * HelloWorld Controller
 */
class AdvSearchControllerAdvSearch extends JControllerForm
{
}

...\administrator\components\com_advsearch\controllers\advsearch.php
Код
<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
 
// import Joomla controlleradmin library
jimport('joomla.application.component.controlleradmin');
 
/**
 * HelloWorlds Controller
 */
class AdvSearchControllerAdvSearchs extends JControllerAdmin
{
        /**
         * Proxy for getModel.
         * @since       1.6
         */
        public function getModel($name = 'AdvSearch', $prefix = 'AdvSearchModel')
        {
                $model = parent::getModel($name, $prefix, array('ignore_request' => true));
                return $model;
        }
}
Всё что не анархия, то фашизм...
*

b2z

  • Глобальный модератор
  • 7284
  • 778 / 0
  • Разраблю понемногу
Re: Написание компонента для Joomla 1.6
« Ответ #17 : 10.01.2011, 11:07:52 »
dremora - покажите код вида AdvSearchViewAdvSearch и шаблона edit.php

Я так понимаю, что view=advsearchs - это список, а view=advsearch - это одна запись?
А то у Вас написано
Цитировать
попадаю на - [домен]/administrator/index.php?option=com_advsearch&view=advsearches
view=advsearches - ? Тут разве не view=advsearchs?

и

Цитировать
А должно быть:
[домен]/administrator/index.php?option=com_advsearch&view=advsearchs
view=advsearchs - ? Тут по идее должно быть advsearch.
*

dremora

  • Захожу иногда
  • 461
  • 48 / 12
Re: Написание компонента для Joomla 1.6
« Ответ #18 : 10.01.2011, 11:25:03 »
dremora - покажите код вида AdvSearchViewAdvSearch и шаблона edit.php

Код
<?php
// No direct access
defined('_JEXEC') or die('Restricted access');
JHtml::_('behavior.tooltip');
?>
<form action="<?php echo JRoute::_('index.php?option=com_advsearch&layout=edit&id='.(int) $this->item->id); ?>" method="post" name="adminForm" id="advsearch-form">
        <fieldset class="adminform">
                <legend><?php echo JText::_( 'COM_HELLOWORLD_HELLOWORLD_DETAILS' ); ?></legend>
                <ul class="adminformlist">
<?php foreach($this->form->getFieldset() as $field): ?>
                        <li><?php echo $field->label;echo $field->input;?></li>
<?php endforeach; ?>
                </ul>
        </fieldset>
        <div>
                <input type="hidden" name="task" value="advsearch.edit" />
                <?php echo JHtml::_('form.token'); ?>
        </div>
</form>

Я так понимаю, что view=advsearchs - это список, а view=advsearch - это одна запись?

Да вы всё правильно поняли...
Всё что не анархия, то фашизм...
*

dremora

  • Захожу иногда
  • 461
  • 48 / 12
Re: Написание компонента для Joomla 1.6
« Ответ #19 : 10.01.2011, 11:26:13 »
код вида:

Код
<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
 
// import Joomla view library
jimport('joomla.application.component.view');
 
/**
 * HelloWorld View
 */
class AdvSearchViewAdvSearch extends JView
{
        /**
         * display method of Hello view
         * @return void
         */
        public function display($tpl = null)
        {
                // get the Data
                $form = $this->get('Form');
                $item = $this->get('Item');
 
                // Check for errors.
                if (count($errors = $this->get('Errors')))
                {
                        JError::raiseError(500, implode('<br />', $errors));
                        return false;
                }
                // Assign the Data
                $this->form = $form;
                $this->item = $item;
 
                // Set the toolbar
                $this->addToolBar();
 
                // Display the template
                parent::display($tpl);
        }
 
        /**
         * Setting the toolbar
         */
        protected function addToolBar()
        {
                JRequest::setVar('hidemainmenu', true);
                $isNew = ($this->item->id == 0);
                JToolBarHelper::title($isNew ? JText::_('COM_HELLOWORLD_MANAGER_HELLOWORLD_NEW') : JText::_('COM_HELLOWORLD_MANAGER_HELLOWORLD_EDIT'));
                JToolBarHelper::save('advsearch.save');
                JToolBarHelper::cancel('advsearch.cancel', $isNew ? 'JTOOLBAR_CANCEL' : 'JTOOLBAR_CLOSE');
        }
}
Всё что не анархия, то фашизм...
*

dremora

  • Захожу иногда
  • 461
  • 48 / 12
Re: Написание компонента для Joomla 1.6
« Ответ #20 : 10.01.2011, 11:34:37 »
view=advsearchs - ? Тут по идее должно быть advsearch.
После сохранения, мы по идее идём к списку... Соответственно, после записи должно идти на view=advsearchs

Щас уже обдумываю переписать список под - advsearches, т.к. нигде не могу встретить ошибку.
Всё что не анархия, то фашизм...
*

b2z

  • Глобальный модератор
  • 7284
  • 778 / 0
  • Разраблю понемногу
Re: Написание компонента для Joomla 1.6
« Ответ #21 : 10.01.2011, 11:41:59 »
После сохранения, мы по идее идём к списку... Соответственно, после записи должно идти на view=advsearchs

Щас уже обдумываю переписать список под - advsearches, т.к. нигде не могу встретить ошибку.
А, ну да. Здесь верно.
В коде я вроде тоже не заметил ошибок. Но возможно, у Вас где-то ошибка в названиях классов или ещё какая-то мелочь. Я на выходных админку своего компонента начал переделывать, у меня все ок было.
*

SmokerMan

  • Гуру
  • 5291
  • 720 / 26
Re: Написание компонента для Joomla 1.6
« Ответ #22 : 11.01.2011, 12:14:05 »
После сохранения, мы по идее идём к списку... Соответственно, после записи должно идти на view=advsearchs
Во первых какой родительский контроллер используется то ли JControllerForm или JControllerAdmin не понятно.
Если JControllerForm тут написано
*

dremora

  • Захожу иногда
  • 461
  • 48 / 12
Re: Написание компонента для Joomla 1.6
« Ответ #23 : 11.01.2011, 12:17:32 »
Да я уже переписал под "advsearches".

Вообще очень странная ошибка... Ещё более сложно её отловить.

Во первых какой родительский контроллер используется то ли JControllerForm или JControllerAdmin не понятно.
Если JControllerForm тут написано

Я делал строго по мануалу.
Всё что не анархия, то фашизм...
*

dremora

  • Захожу иногда
  • 461
  • 48 / 12
Re: Написание компонента для Joomla 1.6
« Ответ #24 : 11.01.2011, 12:25:24 »
Админка по сути готова... Осталось повозиться с языком, но это мелочи.

Как бонус, нужно сделать импорт записей из com_content. Т.е. импортировать(title, articleid и если возможно itemid). Возможно ещё попробовать импортировать ключевики с метатэгов.

По моему в мануале этот урок не представлен. Либо, можно выполнять импорт при установке компонента. Что, не совсем то.
Всё что не анархия, то фашизм...
*

dremora

  • Захожу иногда
  • 461
  • 48 / 12
Re: Написание компонента для Joomla 1.6
« Ответ #25 : 11.01.2011, 18:43:02 »
Народ, кто поможет... Как будет написать
INSERT запрос новым методом.

Есть таблица:
id session_id this_query life_time

Как составить запрос?

С селектом как то проще всё:

  
Код
$this->query->select($this->db->nameQuote('itemid'));
  $this->query->select($this->db->nameQuote('articleid'));
  $this->query->select($this->db->nameQuote('title'));
  $this->query->select($this->db->nameQuote('yearwrite'));
  $this->query->select($this->db->nameQuote('number'));
  $this->query->select($this->db->nameQuote('author'));
  $this->query->select($this->db->nameQuote('keywords'));
  $this->query->from($this->db->nameQuote('#__advsearch'));

Тут они у меня загнаны в св-ва класса(БД и Объект), а в остальном то-же самое.

То ли устал, то ли что... Но не могу сам въехать.
« Последнее редактирование: 11.01.2011, 18:48:15 от dremora »
Всё что не анархия, то фашизм...
*

dremora

  • Захожу иногда
  • 461
  • 48 / 12
Re: Написание компонента для Joomla 1.6
« Ответ #26 : 11.01.2011, 19:12:27 »
Скорее всего будет так начинаться:

Код
$query->insert($db->nameQuote('#__advsearch_c'));

А дальше как писать? Список параметров и значение?

UPD

вопрос снят:

Код
$query        = $db->getQuery(true);
$query->insert('#__tableName');
 
$query->set('id=4');
 
$db->setQuery( $query );
$result        = $db->loadResult();
« Последнее редактирование: 11.01.2011, 19:38:17 от dremora »
Всё что не анархия, то фашизм...
*

dremora

  • Захожу иногда
  • 461
  • 48 / 12
Re: Написание компонента для Joomla 1.6
« Ответ #27 : 12.01.2011, 03:41:35 »
потёрто
« Последнее редактирование: 12.01.2011, 03:55:53 от dremora »
Всё что не анархия, то фашизм...
*

dremora

  • Захожу иногда
  • 461
  • 48 / 12
Re: Написание компонента для Joomla 1.6
« Ответ #28 : 12.01.2011, 16:27:23 »
В финале... У меня два-три вопроса...

а) Почему в режиме SEF теряется itemid? (Если его отключить, то всё работает как нужно)
Как проверить?
Забиваем в поиск год - 1999, кликаем искать.
Переходим на вторую страницу. Нормально всё... Переходим снова на первую страницу - пропадает Itemid. Соответственно левыи модуль отсутствует и выглядит всё - страшно.
б) Как сделать, что-бы при клике по Искать, сразу была ссылка, в стиле ЧПУ?
в) Как добавить заголовок для компонента - своё содержимое тэга "<title></title>" В 1.0xx я помню как это делается... Но тут...
Всё что не анархия, то фашизм...
*

b2z

  • Глобальный модератор
  • 7284
  • 778 / 0
  • Разраблю понемногу
Re: Написание компонента для Joomla 1.6
« Ответ #29 : 12.01.2011, 17:11:01 »
в) Как добавить заголовок для компонента - своё содержимое тэга "<title></title>" В 1.0xx я помню как это делается... Но тут...
$title = 'Моя страница';
$document = JFactory::getDocument();
$document->setTitle($title);
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Документация по созданию модуля для Joomla 2.5 и Joomla 3.x

Автор b2z

Ответов: 1
Просмотров: 2187
Последний ответ 29.07.2015, 09:40:30
от b2z
Создание компонента MVC

Автор borodatych

Ответов: 36
Просмотров: 4341
Последний ответ 13.04.2015, 08:17:30
от flyingspook
Подскажите как сделать русификацию компонента)

Автор stardel

Ответов: 4
Просмотров: 6832
Последний ответ 08.04.2015, 09:08:00
от oxotnikkz
JPluginHelper::importPlugin('content') в Joomla 1.7

Автор Dutch

Ответов: 2
Просмотров: 4716
Последний ответ 30.03.2015, 14:22:51
от twins717
Документация по созданию компонента для Joomla 2.5

Автор Sulpher

Ответов: 74
Просмотров: 57028
Последний ответ 17.11.2014, 13:43:07
от limon142