E-mail Печать

Шаг 3. Регистрация компонента в База данных.

Вы теперь знаете, как получить доступ и к фронтенду и к административной части компонента.
Хотя мы могли бы продолжать набирать URL каждый раз, когда хотели бы выполнить часть кода, это не будет приемлемым для пользователей сайта. Зарегистрируем наш компонент в БД, это даст нам что мы сможем создавать ссылки на компонент в меню. Предполагается что префикс у ваших таблиц БД - jos_. В противном случае замените jos_ префиксом, который используется у вас.
При помощи phpMyAdmin или другой аналогичной выполните следующий код над вашей БД:

1
2
3
4
INSERT INTO `jos_components` (`name`, `link`, `admin_menu_link`, `admin_menu_alt`, `option`,
`admin_menu_img`, `params`)
VALUES ('Goodtimes', 'option=com_goodtimes', 'option=com_goodtimes', 'Goodtimes', 'com_goodtimes',
'js/ThemeOffice/component.png', '');

Шаг 3

После того как в БД была добавлена запись, откройте административную часть и в меню «Компоненты» должна появиться ссылка на наш компонент.

Шаг 3

Теперь наш компонент зарегистрирован в CMS Joomla. Создадим ссылку на него в главном меню сайта.
Зайдите «Все меню» -> «mainmenu», нажмите на кнопку «Создать», чтобы добавить новый пункт меню, далее выберите наш компонент, на экране вы увидите что-то подобное:

Шаг 3

Пропишите название пункта меню и псевдоним. Далее нажмите «Сохранить», и откройте фронтенд часть сайта.

Шаг 3

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

Mark
 
Интересная статья? Поделись ей с другими:

Комментарии  

 
+4 # 25.04.2010 04:14
Небольшое дополнение, просто сталкиваюсь с этой неудобной операцией - лезть в phpMyAdmin и писать запросы там не только у Вас. Я предпочитаю не вылазить из кода в момент его написания - поэтому прямо в файле admin.goodtimes.php я пишу следующий код:

$query="INSERT INTO `#__components` (`name`, `link`, `admin_menu_lin k`, `admin_menu_alt `, `option`,
`admin_menu_img `, `params`)
VALUES ('Goodtimes', 'option=com_goodtimes', 'option=com_goodtimes', 'Goodtimes', 'com_goodtimes',
'js/ThemeOffice/component.png', '');";
$db=JFactory::getDB O();
$queryresult = $db->Execute($query) ;
if (!$queryresult) {
die('Invalid query: ' . stderr());
}

После обновления страницы http://ваш_сайт/administrator/index.php?option=com_goodtimes будет достигнут аналогичный эффект. Причем без использования дополнительных инструметов, только через Joomla API.
Ответить | Ответить с цитатой | Цитировать
 
 
+1 # 20.01.2011 18:48
Цитата:
Небольшое дополнение, просто сталкиваюсь с этой неудобной операцией -
...

die('Invalid query: ' . stderr());
}

После обновления страницы http://ваш_сайт/administrator/index.php?option=com_goodtimes будет достигнут аналогичный эффект. Причем без использования дополнительных инструметов, только через Joomla API.

То есть при первом обращении создается запись о компоненте в БД. Ну а если второй раз обновить - ошибок не будет? При попытке еще раз создать ту же запись - запрос просто умрет? То есть можно на постоянку оставить код в ПЫХ файле?
И вообще как установщик собирать? ЧТобы он автоматом разок прописал при установке в БД запись о компоненте и все? А не каждый раз при обращении делал ненужный запрос.

Спасибо
Ответить | Ответить с цитатой | Цитировать
 
 
0 # 23.05.2010 12:56

IN IN `jos_com` (`na`, `link`, `ad_me_link`, `ad_me_alt`, `op`,
`ad_me_img`, `pa`)
VA ('Go', 'op=com_go', 'op=com_go', 'Go', 'com_go',
'js/The/com.png', '');

что это ??? я конечно понял что это СКЛ и т.д. но блин это не статья, а головоломка какая то
Ответить | Ответить с цитатой | Цитировать
 
 
0 # 29.06.2010 18:16
Опять же плагин натворил
Ответить | Ответить с цитатой | Цитировать
 
 
+10 # 13.07.2010 19:51
а как быть если я хочу написать нормальный компонент, который самостоятельно устанавливался бы ?
Ответить | Ответить с цитатой | Цитировать
 
 
0 # 13.08.2010 17:03
$query="INSERT INTO `#__components` (`name`, `link`, `admin_menu_lin k`, `admin_menu_alt `, `option`,
`admin_menu_img `, `params`)
VALUES ('Goodtimes', 'option=com_goodtimes', 'option=com_goodtimes', 'Goodtimes', 'com_goodtimes',
'js/ThemeOffice/component.png', '');";
$db=JFactory::getDB O();
$queryresult = $db->Execute($query) ;
if (!$queryresult) {
die('Invalid query: ' . stderr());
}




не пошло...не хочет
Ответить | Ответить с цитатой | Цитировать
 
 
0 # 05.11.2010 18:08
$query="INSERT INTO `jos_components ` (`name`, `link`, `admin_menu_lin k`, `admin_menu_alt `, `option`,
`admin_menu_img `, `params`)
VALUES ('Goodtimes', 'option=com_goodtimes', 'option=com_goodtimes', 'Goodtimes', 'com_goodtimes',
'js/ThemeOffice/component.png', '');";
$db=JFactory::getDB O();
$queryresult = $db->Execute($query) ;
if (!$queryresult) {
die ('Invalid query: '.stderr());
}

и всё пошло
Ответить | Ответить с цитатой | Цитировать
 

Добавить комментарий


Защитный код
Обновить