Спасибо. Если что, буду постить туда. :)
Уважаемые Господа. Данная заметка относится в первую очередь к людям, которые мало знакомы с программированием. Как вы уже убедились функционал данного движка - выше всяких похвал ☝, а грамотно прописанные скрипты дают движку прекрасную гибкость, как, непосредственно, для использования движка "как есть", так и для модернизации самих модулей.
И так задача - создание полнофункционального магазина на базе diafan CMS 4.2.4. Если мы зайдем на страницу конкретного товара в конкретной категории, то увидим такую картинку:
В принципе так все можно и оставить, но как то хотелось бы по красивее. Для этого нам потребуется немного "подпилить " движок.
Шаг 1
Открываем скрипт modules/shop/shop.view.php и находим в нем фукцию:
...
public function show_id_module($row)
{
echo '
<div class="shop-id">'
//рейтинг товара
.$row["show-rating"]
//форма оценки товара
.$row["add-rating"]
.(!empty($row["price"])?'<div class="shop-price">'._LANG_PRICE.': <span class="shop-price-value">'.$row["price"].'</span></div>':'');
self::show_form_module($row["id"],$row["depend"],$row["do_load"]);
if(!empty($row["param"]))
foreach($row["param"] as $k=>$v)
<div class="shop-param">'.$k.($v?': <span class="shop-param-value">'.$v.'</span>':'')."</div>\n";
}
<div class="shop-text">'.$row["text"].'</div>
<div class="shop-all-img">'.$row["img"].'</div>'
.(!empty($row["tags"])?$row["tags"]:'').'
</div>';
echo (!empty($row["comments"])?$row["comments"]:'');
Именно она отвечает за вывод конкретного товара в конкретной категории и меняем его следующим образом:
.'<div class="shop-all-img">'.$row["img"].'</div>'
echo '<div class="shop-text2">'.'<table width="100%" border="0"><tr><td width="460">'.$row["text"].'</td></tr></table>'.'</div>';
<div class="shop-text">'.'</div>'
Шаг 2
Правим таблицу стилей. Тут надо сделать оговорку - поскольку данный стиль написан под мой конкретный шаблон, то возможно потребуется подправить некоторые числовые значения особенно если число выводимых дополнительных характеристик будет отлично от 3.
Открываем таблицу стилей и находим в ней класс .shop-text и вписываем следующий стиль:
/*******************************************************/
.shop-text{
text-align: left;
vertical-align: middle;
margin-left: 10px;
margin-right: 10px;
margin-bottom: 5px;}
.shop-text2{
width: 72%;
height: auto;
border: none;
background: url(img/hr.gif) repeat-x top left;
margin-left: 27%;
margin-top: -17.9em;
margin-bottom: 0.5em;
.shop-text2 ul li, .shop-text2 ol li{
list-style: none;
/*************характеристики товара*******************/
.tie{
width: 100%;
.tie table {
background-color: transparent;
border: #F4F6FC 1px solid;
border-collapse: collapse;
.tie th {
border: 1px outset #F4F6FC;
background-color: orange;
height: 20px;
color: white;
text-align: center;
.tie tr {
background-color: #F4F6FC;
margin: 1px;
.tie tr.striped {
background-color: #fff;
.tie td {
padding: 1px 8px;
/*****************************************************/
Шаг 3
Заходим в админку сайта. Выбираем конкретный товар (в моем случае Страницы сайта > Магазин > Компьютеры > Настольные РС > Коршун). В текстовом редакторе нажимаем "Источник" и вставляем таблицу следующего содержания:
****************************************
<div class="tie">
<table>
<tbody>
<tr>
<th>
наименование</th>
показатели</th>
</tr>
<td>
Производитель процессора</td>
Intel</td>
Тип процессора</td>
Core i3</td>
Частота процессора</td>
3,06ГГц</td>
Набор микросхем</td>
Intel® P55 + Intel® ICH10R</td>
Оперативная память</td>
2048 Мб</td>
Тип оперативной памяти</td>
DDR3</td>
Частота шины</td>
1333 МГц</td>
Объем жесткого диска</td>
1000 Гб</td>
Интерфейс жесткого диска</td>
SATAII</td>
Скорость вращения жесткого диска</td>
7200 pm</td>
Дисковод</td>
3.5</td>
Оптический привод</td>
DVD±R/RW-CD-R/RW</td>
Видео</td>
PCI-E 768Mb NVIDIA®GeForse™ GTX460</td>
Аудио</td>
8-Channel High Definition Audio кодек</td>
Сетевой адаптер</td>
Интегрирован 10/100/1000</td>
Мощность блока питания</td>
460 Вт</td>
Разъемы на лицевой панели</td>
USB 2.0 - 2шт / Audio out / Mic in</td>
Картридер</td>
да</td>
Высота</td>
421 мм</td>
Ширина</td>
191 мм</td>
Длина</td>
484 мм</td>
Код товара</td>
40045682</td>
</tbody>
</table>
</div>
Для вывода таблицы характеристик мы используем JQuery. Можно скачать либо здесь http://nosorog.webasyst.net/DD/2.0/file_link.php?sl=03aa016e8e8be8a43a870a5de318ad03&DB_KEY=T04xNjI5, либо здесь http://jquery.com/. Создадим скрипт shop-tables.js следующего содержания:
// технические характеристики
$(function() {
$("table tr:nth-child(even)").addClass("striped");
});
и поместим ее в каталог со скриптами js/scripts, собственно туда помещаем и саму библиотеку JQuery. Подключение скриптов осуществляется следующим образом:
<script type="text/javascript" src="<insert name="path">js/scripts/jquery-1.3.2.js"></script>
<script type="text/javascript" src="<insert name="path">js/scripts/shop-tables.js"></script>
В итоге получаем такую вот картинку:
Очень рекомендую проверить данный метод сначала на локальной машине, ну или хотябы выполнить резервное копирование скрипта shop.view.php и style.css
Вот и все :)
Странно. Все именно так. Но почему не рулит? Надо разбираться.
Уважаемые Господа. Есть вопрос немного не в тему. У меня возникли трудности установки движка на локальную машину - все идет нормально до 5 шага,
Шаг_1
Шаг_2
Шаг_3
а потом:
Parse error: syntax error, unexpected T_STRING in D:\Site\localhost\WWW\diafan\ on line 5
Отсюда вопрос - кто нибудь ставил на локальную машину? Причем речь идет о том, что связка А+М+Р+Р устанавливалась не в виде Денвер, ХАМРР и т.д., а как самостоятельные приложения. Если такие люди на форуме есть, пожалуйста сбросьте мне на мыло nosorog@bk.ru 5-ю строку из файла bdcfg.php . Пароль, разумеется, замените *******, ну чтобы я не видел его. Мне нужен сам вид этой строки при инсталляции.
Спасибо.
Очень полезная фича.
Сегодня закончил портал на этой CMS. Были техвопросы, но все решил непосредственно с diafan. Как говорится РЕСПЕКТ и УВАЖУХА.))) Кое-какие ошибки, касающиеся CSS и кодинга наверняка исчезнут в новой версии. Не знаю, будет ли в новой версии Чат, но сейчас занимаюсь написанием модуля. А вобще - CMS отличная.
Уважаемый diafan, а как можно стать партнером?🍿
Хорошо, но я не в плане недовольства. Просто кто либо столкнется с проблемой и будет знать, что исправить не обращаясь по пустякам в службу поддержки. Но Вы правы наверное. Если, что, буду писать в личку.
Уважаемый diafan, в процессе работы выявил еще одну ошибку кода. Дело в том, что создании собственных характеристик товара выплывала ошибка, сообщающая о том, что второй параметр задан неверно. Ошибка располагается в файле /includes/functionadmin.php:
******************************************************************************
(!empty($this->config_module["edit_enterid"])?
path_module($this->diafan,0,1).'enterid'
:
path_module($this->diafan,0,($this->diafan->enterid && in_array($this->diafan->enterid,$pid_array_up_id)?'1':'0')).'edit'
)
).$row["id"]
'#'
необходимо записать так:
path_module($this->diafan,0,1,($this->diafan->enterid && in_array($this->diafan->enterid,$pid_array_up_id)?'1':'0')).'edit'
Приятно иметь с Вами дело. Спасибо за столь высокую оценку скромной идеи.