Привет! По просьбе oPPPs, делюсь гайдом, как создать дополнительное поле для компонента "Статьи". 1. Редактируем базу Необходимо добавить новую строчку в cms_content. Назовем ее istochnik. Заходим в базу данных. Открываем cms_content и добавляем новую строку со следующими параметрами: Код: поле istochnik Тип Varchar длина значения 200 по умолчанию нет Сравнение cp1251_general_ci Все работы с базой закончены. 2. Открываем файл frontentd.php из папки components/content находим код, примерно строка 173 после PHP: $smarty->assign('showdate', $showdate);$smarty->assign('showcomm', $showcomm);$smarty->assign('pagetitle', $pagetitle); Добавляем PHP: $smarty->assign('istochnik', $istochnik);[PHP]находим код, примерно строка 428 после [PHP] $smarty->assign('cfg', $cfg);$smarty->assign('pubcats', $pubcats);$smarty->assign('pagetitle', $pagetitle); Добавляем PHP: $smarty->assign('istochnik', $istochnik); находим код, примерно строка 448 PHP: $article['user_id'] = $mod['user_id'] ? $mod['user_id'] : $user_id;$article['title'] = $inCore->request('title', 'str', ''); Добавляем PHP: $article['istochnik'] = $inCore->request('istochnik', 'str', ''); Находим код, примерно строка 470 PHP: $article['showtitle'] = $do=='editarticle' ? $mod['showtitle'] : 1;$article['meta_desc'] = strtolower($article['title']); Добавляем PHP: $article['istochnik'] = strtolower($article['istochnik']); Сохраняем файл 3. Далее открываем файл model.php из папки components/content Находим код, примерно строка 708 Код: $sql = "INSERT INTO cms_content (category_id, user_id, pubdate, enddate, is_end, title, description, content, published, hits, meta_desc, meta_keys, showtitle, showdate, showlatest, Добавляем istochnik после title, должно получиться следующее Код: $sql = "INSERT INTO cms_content (category_id, user_id, pubdate, enddate, is_end, title, istochnik, description, content, published, hits, meta_desc, meta_keys, showtitle, showdate, showlatest, Находим код, примерно строка 715 PHP: '{$article['is_end']}', '{$article['title']}', '{$article['description']}', '{$article['content']}', '{$article['published']}', 0,/[PHP]и добавляем[PHP]'{$article['istochnik']}' после PHP: '{$article['title']}' должно получиться следующее: PHP: '{$article['is_end']}', '{$article['title']}', '{$article['istochnik']}', '{$article['description']}', '{$article['content']}', '{$article['published']}', 0, Находим код, строка примерно 762 PHP: $sql = "UPDATE cms_content SET category_id = {$article['category_id']}, pubdate = '{$article['pubdate']}', enddate = '{$article['enddate']}', is_end = '{$article['is_end']}', title='{$article['title']}', в предпоследнюю строчку добавляем PHP: istochnik='{$article['istochnik']}' должно получиться следующее: PHP: $sql = "UPDATE cms_content SET category_id = {$article['category_id']}, pubdate = '{$article['pubdate']}', enddate = '{$article['enddate']}', is_end = '{$article['is_end']}', istochnik='{$article['istochnik']}', title='{$article['title']}', Все сохраняем файл, основная работа закончена, теперь осталось сделать вывод нового поле. 4. Открываем файл com_content_edit.tpl по умолчанию он находиться в папки templates/_default_/components этот файл отвечает за добавления/редактирования статей пользователей. В нужное место вставляем: Для добавления поля HTML: <tr> <td width="230" valign="top"> <strong>Источник:</strong> <span class="hinttext">{$LANG.SHOW_ON_SITE}</span> </td> <td valign="top"> <input name="istochnik" type="istochnik" class="text-input" id="title" style="width:350px" value="{$mod.istochnik|escape:'html'}" /> </td> </tr> Если, вы планируете, что бы пользователь в это поле вставлял с ссылку на другой сайт, тогда замените HTML: : <span class="hinttext">{$LANG.SHOW_ON_SITE}</span> На это правило HTML: <span class="hinttext">Добавляйте ссылку без htpp://</span> Все с этим файлом мы закончили, теперь поле выводиться при добавлении/редактировании статьи. 5. Далее нам необходимо сделать вывод этого поля при чтении статьи Для этого открываем файл com_content_read.tpl по умолчанию он находиться в папки templates/_default_/components и в нужном нам месте вставляем Если необходимо просто текстом PHP: {$article.istochnik} Если необходимо ссылкой PHP: <a href="http://{$article.istochnik}">{$article.istochnik}</a> 6. Если необходимо это поле редактировать через админ панель. Открываем файл content.php из папки admin/applets Находим код, примерно строка 248 PHP: : $id = $inCore->request('id', 'int', 0);$article['category_id'] = $inCore->request('category_id', 'int', 1);$article['title'] = $inCore->request('title', 'str'); И добавляем следующую функцию PHP: $article['istochnik'] = $inCore->request('istochnik', 'str'); у нас должно получиться PHP: $id = $inCore->request('id', 'int', 0);$article['category_id'] = $inCore->request('category_id', 'int', 1);$article['title'] = $inCore->request('title', 'str');$article['istochnik'] = $inCore->request('istochnik', 'str'); Находим код, примерно строка 342 PHP: if ($do == 'submit'){$article['category_id'] = $inCore->request('category_id', 'int', 1);$article['title'] = $inCore->request('title', 'str'); И добавляем следующую функцию PHP: $article['istochnik'] = $inCore->request('istochnik', 'str'); у нас должно получиться PHP: if ($do == 'submit'){$article['category_id'] = $inCore->request('category_id', 'int', 1);$article['title'] = $inCore->request('title', 'str');$article['istochnik'] = $inCore->request('istochnik', 'str'); И последнее после кода, примерно строка 537 PHP: <div><strong>Теги статьи</strong></div><div><input name="tags" type="text" id="tags" style="width:99%" value="<?php if (isset($mod['id'])) { echo cmsTagLine('content', $mod['id'], false); } ?>" /></div> Добавляем следующее PHP: <div><strong>Источник</strong></div><div><input name="istochnik" type="istochnik" id="istochnik" style="width:100%" value="<?php echo @$mod['istochnik'];?>" /></div> Все. готово. можно тестировать
Для 1.9 этот же гайд имеется на сайте инстанта. К сожалению ничего нового. Но 1.9 по ряду причин нет желания использовать.