И так в этом примере я опишу, как добавить дополнительное однострочное поле в модуль новостей.
Список файлов в которых будем делать изменения:
Цитата
modules/news/admin/index.php
templates/Audora/Classes/NewsAdmin.php
modules/news/user/index.php
templates/Uniel/Classes/UserNews.php
templates/Audora/Classes/NewsAdmin.php
modules/news/user/index.php
templates/Uniel/Classes/UserNews.php
Для начала нам нужно выполнить SQL заброс, для внесения нужных полей в вашу базу данных:
ALTER TABLE `el_news` ADD `nazvanie_polya` TINYTEXT NOT NULL
Обратите внимание на префикс таблицы, по умолчанию он "el". Если вам нужно добавить сразу несколько полей, то после "NULL" в запросе ставите запятую, пробел и дублируете ADD `nazvanie_polya` TINYTEXT NOT NULL данную часть запроса. Название каждого поля должно быть уникальным.
Теперь преступим к редактированию php файлов:
открываем файл modules/news/admin/index.php
Находим в нём
#Специальные
'_maincat'=>0,
ниже добавляем
'nazvanie_polya'=>'',
Далее в этом же файле находим
$Eleanor->VotingManager->bypost=true;
ниже добавляем
$values['nazvanie_polya']=isset($_POST['nazvanie_polya']) ? (string)$_POST['nazvanie_polya'] : '';
Ещё ниже находим
'show_sokr'=>isset($_POST['show_sokr']),
'tags'=>'',
и ниже добавляем
'nazvanie_polya'=>isset($_POST['nazvanie_polya']) ? (string)$_POST['nazvanie_polya'] : '',
Сохраняем изменения и закрываем файл.
Переходим к файлу templates/Audora/Classes/AdminNews.php
находим в нём
->item(static::$lang['status'],Eleanor::Select('status',Eleanor::Option(static::$lang['waitmod'],-1,$values['status']==-1).Eleanor::Option(static::$lang['blocked'],0,$values['status']==0).Eleanor::Option(static::$lang['active'],1,$values['status']==1),array('tabindex'=>10)))
и сразу после этого вставляем
->item('nazvanie_polya',Eleanor::Input('nazvanie_polya',$values['nazvanie_polya']))
сохраняем изменения, закрываем файл.
Переходим к файлу modules/news/user/index.php
Находим
$R=Eleanor::$Db->Query('SELECT `id`,`cats`,IF(`pinned`=\'0000-00-00 00:00:00\',`date`,`pinned`) `date`,`author`,`author_id`,`show_sokr`,`r_average`,`r_total`,`r_sum`,`status`,`reads`,`comments`,`tags`,`uri`,`title`,`announcement`,`text`,`meta_title`,`meta_descr`,UNIX_TIMESTAMP(`last_mod`) `last_mod`,`voting` FROM `'.$mc['t'].'` INNER JOIN `'.$mc['tl'].'` USING(`id`) WHERE `language`IN(\'\',\''.Language::$main.'\') AND '.$where.' LIMIT 1');
и в этой строке после `voting` добавляем наше дополнительное поле. после добавления поля, строка должна выглядеть так:
$R=Eleanor::$Db->Query('SELECT `id`,`cats`,IF(`pinned`=\'0000-00-00 00:00:00\',`date`,`pinned`) `date`,`author`,`author_id`,`show_sokr`,`r_average`,`r_total`,`r_sum`,`status`,`reads`,`comments`,`tags`,`uri`,`title`,`announcement`,`text`,`meta_title`,`meta_descr`,UNIX_TIMESTAMP(`last_mod`) `last_mod`,`voting`,`nazvanie_polya` FROM `'.$mc['t'].'` INNER JOIN `'.$mc['tl'].'` USING(`id`) WHERE `language`IN(\'\',\''.Language::$main.'\') AND '.$where.' LIMIT 1');
Сохраняем изменение, закрываем файл.
Переходим к файлу templates/Uniel/Classes/UserNews.php
Находим в нём
public static function Show($a,$category,$voting,$comments,$hl)
и сюда (чуть ниже) уже добавляем html код вместе с переменной поп.поля, допустим я это сделал так, перед
.$comments;
добавил следующий код
.'<div>
<img src="'.$a['nazvanie_polya'].'" />
</div>'
тем самым при добавлении новости можно добавлять ссылку на изображение и выводить это изображение в любом нужном месте шаблона полной новости.
Вот собственно и всё.
PS: "nazvanie_polya" меняйте на свои названия, латинскими буквами.