a777d2
Создатель
- Регистрация
- 17 Сен 2012
- Сообщения
- 31
- Реакции
- 10
- Автор темы
- #1
Добрый день, решил поделиться если кому понадобится, темой создания дополнительных полей компонента k2, к примеру мы хотим создать 2 поля: первое будет цена (price), второе будет скидка (sale) скидка будет выбираться, да или нет, для отображения картинки на фото.
Первое что нам нужно будет сделать, это создать в базе данных 2 поля:
Заходим в базу данных, ищем таблицу k2_items,
добавляем поля
price - varchar(255) - по умолчанию (нет)
sale - smallint(6) - по умолчанию (0)
Далее выходим из базы и идем править код, для начала идем сюда administrator/components/com_k2/tables/k2item.php
Добавляем поля в код
Далее нужно поправить следующий файл administrator/components/com_k2/views/item/view.html.php
Номер строки 205 для sale
Номер строки 551 для price
Теперь добавим поля в шаблон item: administrator/components/com_k2/views/item/tmpl/default.php
Для вывода на сайте идем в файл шаблона, и добавляем код в любое место
Для цены
Для скидки
Вот и все, всем спасибо) Если возникнут вопросы, с радостью отвечу!
Первое что нам нужно будет сделать, это создать в базе данных 2 поля:
Заходим в базу данных, ищем таблицу k2_items,
добавляем поля
price - varchar(255) - по умолчанию (нет)
sale - smallint(6) - по умолчанию (0)
Далее выходим из базы и идем править код, для начала идем сюда administrator/components/com_k2/tables/k2item.php
Добавляем поля в код
Код:
?php
defined('_JEXEC') or die ;
class TableK2Item extends K2Table
{
var $id = null;
var $title = null;
var $price = null;
var $sale= null;
var $alias = null;
var $catid = null;
var $published = null;
var $introtext = null;
var $fulltext = null;
var $image_caption = null;
var $image_credits = null;
var $video = null;
var $video_caption = null;
var $video_credits = null;
var $gallery = null;
var $extra_fields = null;
var $extra_fields_search = null;
var $created = null;
var $created_by = null;
var $created_by_alias = null;
var $modified = null;
var $modified_by = null;
var $publish_up = null;
var $publish_down = null;
var $checked_out = null;
var $checked_out_time = null;
var $trash = null;
var $access = null;
var $ordering = null;
var $featured = null;
var $featured_ordering = null;
var $hits = null;
var $metadata = null;
var $metadesc = null;
var $metakey = null;
var $params = null;
var $plugins = null;
var $language = null;
Далее нужно поправить следующий файл administrator/components/com_k2/views/item/view.html.php
Номер строки 205 для sale
Код:
$document->addScriptDeclaration("function onK2EditorSave(){ ".$onSave." }");
$lists['published'] = JHTML::_('select.booleanlist', 'published', 'class="inputbox"', $item->published);
$lists['featured'] = JHTML::_('select.booleanlist', 'featured', 'class="inputbox"', $item->featured);
$lists['sale'] = JHTML::_('select.booleanlist', 'sale', 'class="inputbox"', $item->sale);
$lists['access'] = version_compare(JVERSION, '3.0', 'ge') ? JHTML::_('access.level', 'access', $item->access) : JHTML::_('list.accesslevel', $item);
Номер строки 551 для price
Код:
$this->assignRef('extraFields', $extraFields);
$this->assignRef('options', $options);
$this->assignRef('row', $item);
$this->assignRef('lists', $lists);
$this->assignRef('params', $params);
$this->assignRef('user', $user);
(JRequest::getInt('cid')) ? $title = JText::_('K2_EDIT_ITEM') : $title = JText::_('K2_ADD_ITEM');
$this->assignRef('title', $title);
$this->assignRef('price', $price);
$this->assignRef('mainframe', $mainframe);
Теперь добавим поля в шаблон item: administrator/components/com_k2/views/item/tmpl/default.php
Код:
<tr>
<td class="adminK2LeftCol">
<label for="price">Цена</label>
</td>
<td class="adminK2RightCol">
<input class="text_area k2TitleBox" type="text" name="price" id="price" maxlength="250" value="<?php echo $this->row->price; ?>" />
</td>
</tr>
<tr>
<td class="adminK2LeftCol">
<label for="sale">Скидка</label>
</td>
<td class="adminK2RightCol">
<?php echo $this->lists['sale']; ?>
</td>
</tr>
Для вывода на сайте идем в файл шаблона, и добавляем код в любое место
Для цены
Код:
<?php echo $item->price; ?>
Код:
<?php if($item->sale== 1) {?>
<img class="sale" src="sale.png" />
<?php}else{}?>
Вот и все, всем спасибо) Если возникнут вопросы, с радостью отвечу!