Как я уже ранее обещал, пишу о том как доработать доску объявлений на CMS jbc 3.0 Будем: добавляем фото в листинг (список объявлений), делать вывод цены, вывод короткого описания, добавим список последних объявлений на главную.
Фото в листинг
Начнем со страницы свежих объявлений, и для этого открываем файл inc/last_add.inc.php
На 20 строчке, где <div class=”o3 alcenter”> удаляем все содержимое этого контейнера, и вставляем
<? echo($last[‘photo_name’])?” <a href=\”c”.$last[‘id_category’].”-“.””.$last[‘board_id’].”.html\”> <img src=\””.$u.”small/”.$last[‘photo_name’].”\” width=\”80\” height=\”80\” alt=\”photo\” /></a>”:” <a href=\”c”.$last[‘id_category’].”-“.””.$last[‘board_id’].”.html\”> <img src=\””.$im.”nofoto.gif\” width=\”80\” height=\”80\” alt=\”nophoto\” /></a>”;?>
Вставляем фото в листинг на страницах категорий, для этого открываем файл inc/last_ads.inc.php
На 21 строчке, контейнер <div class=”o4 alcenter”> в нем все удаляем, и вставляем тот же самый код
<? echo($last[‘photo_name’])?” <a href=\”c”.$last[‘id_category’].”-“.””.$last[‘board_id’].”.html\”> <img src=\””.$u.”small/”.$last[‘photo_name’].”\” width=\”80\” height=\”80\” alt=\”photo\” /></a>”:” <a href=\”c”.$last[‘id_category’].”-“.””.$last[‘board_id’].”.html\”> <img src=\””.$im.”nofoto.gif\” width=\”80\” height=\”80\” alt=\”nophoto\” /></a>”;?>
Все, с фотками разобрались, давайте сделаем вывод короткого описания в списке объявлений. Для этого открываем файл conf.php который лежит в папке admin, и в самом конце, перед закрытием php (?>) вставляем
Function cutstring( $stranb, $lengthanb, $theend=”…” ) { if (strlen($stranb)>30) {$text2=substr($stranb, 0, $lengthanb); $words=explode(” “, $text2); $words=array_reverse($words); array_splice($words,0,1); $alexxnb=0; for ($i=0; $i<count($words); $i++) { $i=$i–$alexxnb; if (substr($words[$i], -1)==”,” OR substr($words[$i], -1)==”.” OR substr($words[$i], -1)==”:” OR substr($words[$i], -1)==”;”) {$words[$i]=substr($words[$i],0, strlen($words[$i])-1);}; $wrd=$words[$i]; if (strlen($wrd)<4){ array_splice($words,$i,1);$alexxnb=1; } else { $i=1985;}; }; $mwords=””; $words=array_reverse($words); for ($i=0; $i<count($words); $i++) { $mwords=$mwords.$words[$i]; if ($i!=count($words)-1) {$mwords=$mwords.” “;} else {$mwords=$mwords.$theend;}; }; } else {$mwords=$stranb;}; return $mwords; }
Для начала давайте сделаем вывод на странице свежие объявления, и открываем файлinc/last_add.inc.php
На 16 строчке подключаем таблицу jb_board.text и теперь у вас эта строчка должна выглядеть так
$last_add=mysql_query(“SELECT jb_board.id AS board_id, jb_board.id_category, jb_board.title, jb_board.text, jb_board.city, DATE_FORMAT(jb_board.date_add,’%d.%m.%Y’) AS dateAdd, jb_board.checkbox_top, jb_board.checkbox_select, jb_board_cat.id, jb_board_cat.”.$name_cat.”, jb_photo.photo_name, jb_city.city_name, jb_city.en_city_name FROM jb_board RIGHT JOIN jb_board_cat ON jb_board.id_category = jb_board_cat.id LEFT JOIN jb_city ON jb_board.city_id = jb_city.id LEFT JOIN jb_photo ON jb_board.id = jb_photo.id_message WHERE old_mess = ‘old’ “.$subQuery.” GROUP by board_id ORDER BY board_id DESC LIMIT “.$start.”, “.$c[‘count_adv_on_index’]); cq();
Достаем краткое описание, строчка 20 где <div class=”o1″> перед закрытием контейнера, ничего не удаляя, вставляем
<? # Следующая строка выводит обрезанное содержание # ?> </br><?=cutstring($last[‘text’],150)?>
Все точно так же делаем с файлом inc/last_ads.inc.php для вывода описания в категориях.
Давайте теперь сделаем вывод цены под населенным пунктом, начнем с страницы свежих объявленийinc/last_add.inc.php для начала нужно подключить таблицу jb_board.price и делаем это по принципу как и с коротким описанием. Затем делаем вывод цены в контейнере <div class=”o5″> сразу перед закрытием (</div>) вставляем
<? if($last[‘price’]!=0) echo “<div class=\”b orange\”>”.$last[‘price’].”$</div>”; ?>
Точно также делаем в категориях, в файле inc/last_ads.inc.php
Все, с внешним видом списка объявлений мы закончили, и теперь доска выглядит не хуже авито и олх=)
Давайте теперь добавим вывод последних объявлений на главную страницу доски.
Для начала создайте файл в папке inc с именем last_add_in_main.inc.php и вставьте в него этот код
<? if (defined(‘JBCITY’)) $subQuery=’ AND jb_board.city_id = ‘.JBCITY; else $subQuery=”; $name_cat=(defined(‘JBLANG’)&& constant(‘JBLANG’)==’en’)?’en_name_cat’:’name_cat’; $last_add=mysql_query(“SELECT jb_board.id AS board_id, jb_board.id_category, jb_board.title, jb_board.text, jb_board.city, DATE_FORMAT(jb_board.date_add,’%d.%m.%Y’) AS dateAdd, jb_board.checkbox_top, jb_board.checkbox_select, jb_board_cat.id, jb_board_cat.”.$name_cat.”, jb_photo.photo_name, jb_city.city_name, jb_city.en_city_name FROM jb_board RIGHT JOIN jb_board_cat ON jb_board.id_category = jb_board_cat.id LEFT JOIN jb_city ON jb_board.city_id = jb_city.id LEFT JOIN jb_photo ON jb_board.id = jb_photo.id_message WHERE old_mess = ‘old’ “.$subQuery.” GROUP by board_id ORDER BY board_id DESC LIMIT 5″); cq(); if(mysql_num_rows($last_add)){ while ($last=mysql_fetch_assoc($last_add)){ ?><div class=”<?=smsclass($last[‘checkbox_top’],$last[‘checkbox_select’])?>”> <div class=”o1″><a class=”b” title=”<?=$last[‘title’]?>” href=”<?=”c”.$last[‘id_category’].”-“.$last[‘board_id’]?>.html”><?=$last[‘title’]?></a><br /> <? # Следующая строка выводит обрезанное содержание # ?> <?=cutstring($last[‘text’],150)?> </div> <div class=”o2 alcenter”> </div> <div class=”o3 alcenter”><? echo($last[‘photo_name’])?” <a href=\”c”.$last[‘id_category’].”-“.””.$last[‘board_id’].”.html\”> <img src=\””.$u.”small/”.$last[‘photo_name’].”\” width=\”80\” height=\”80\” alt=\”\” /></a>”:” <a href=\”c”.$last[‘id_category’].”-“.””.$last[‘board_id’].”.html\”> <img src=\””.$im.”nofoto.gif\” width=\”80\” height=\”80\” alt=\”\” /></a>”;?></div> <div class=”o4″><a class=”dgray” title=”<?=$last[$name_cat]?>” href=”<?=”c”.$last[‘id_category’]?>.html”><?=$last[$name_cat]?></a></div> <div class=”clear”></div></div><? } } ?>
Теперь давайте его подключим. Открываем index.php в корне вашего сайта и приблизительно 105 строка, где
elseif(!@$_GET[‘id_cat’] && !@$_GET[‘id_mess’] && !@$_GET[‘op’]){ require_once(“inc/head.inc.php”); require_once(“inc/top.inc.php”); echo $design_div; // вывели открывающие блоки дизайна if(defined(‘JBCITY’))$page_uri=”index_”.JBLANG.JBCITY; else $page_uri=”index_”.JBLANG; if($JBSCACHE==”1″){ $flnm=$cdir.$page_uri; ob_start(); if(!$cat_index=readData($flnm,$JBSCACHE_expire)){ require_once(“inc/cat_index.inc.php”); $cat_index=ob_get_contents(); ob_clean(); writeData($flnm,$cat_index); }echo $cat_index; } else require_once(“inc/cat_index.inc.php”); }
Заменяем наelseif(!@$_GET[‘id_cat’] && !@$_GET[‘id_mess’] && !@$_GET[‘op’]){ require_once(“inc/head.inc.php”); require_once(“inc/top.inc.php”); echo $design_div; // вывели открывающие блоки дизайна if(defined(‘JBCITY’))$page_uri=”index_”.JBLANG.JBCITY; else $page_uri=”index_”.JBLANG; if($JBSCACHE==”1″){ $flnm=$cdir.$page_uri; ob_start(); if(!$cat_index=readData($flnm,$JBSCACHE_expire)){ require_once(“inc/cat_index.inc.php”); $cat_index=ob_get_contents(); ob_clean(); writeData($flnm,$cat_index); }echo $cat_index; } else require_once(“inc/cat_index.inc.php”); if(defined(‘JBCITY’))$page_uri=”last_add_in_main_”.JBLANG.JBCITY;else $page_uri=”last_add_in_main_”.JBLANG; if($JBSCACHE==”1″){ $flnm=$cdir.$page_uri; ob_start(); if(!$adv_index=readData($flnm,$JBSCACHE_expire)){ require_once(“inc/last_add_in_main.inc.php”); $adv_index=ob_get_contents(); ob_clean(); writeData($flnm,$adv_index); }echo $adv_index; } else require_once(“inc/last_add_in_main.inc.php”); }
Добавляем ЧПУ
в корневом .htaccess находим:
RewriteRule ^c([0-9]+)-([0-9]+).html$ index.php?id_cat=$1&id_mess=$2
Это стандартный вывод url для объявлений. Эту строку не трогаем! Так как править все ссылки просто )( , и где то какая то все равно будет нуждаться в ней.
Вставляем после неё:
RewriteRule ^c([0-9]+)-([0-9]+)-([-a-zA-Z0-9_]+).html$ index.php?id_cat=$1&id_mess=$2&tile=$3
Файлы которые я правил:
list_ads.inc.php search.inc.php vip.inc.php user.inc.php note.inc.php
Для примера возьму блокнот note.inc.php примерно 33 строка.. ссылка:
<a class=”b” title=”<?=$last[‘title’]?>” href=”<?=”c”.$last[‘id_category’].”-“.$last[‘board_id’]?>.html”><?=$last[‘title’]?></a>
Вставляем в нее тайтл конечно же транслированный и получаем:
<a class=”b” title=”<?=$last[‘title’]?>” href=”<?=”c”.$last[‘id_category’].”-“.$last[‘board_id’].”-“.$t=translit($last[‘title’])?>.html”><?=$last[‘title’]?></a>
Будьте внимательны с переменной, в этом примере это $last и она отличается от переменной в vip.inc.php
Все, радуемся, сайт имеет хороший вид и функционал, вообще хотел больше написать, но уже всего что можно сделать и не помню. Если я что то упустил, или Вы хотите еще как то переделать joker board 3 пишите в комментариях, постараюсь помочь.
Пост из курса “Как создать доску объявлений“
Так может у вас сохраненный бэкап где нибудь завалялся исправленный уже? Я бы не отказался взглянуть на него!
есть бэкап от kharkovboard.pp.ua продаеться за 10 долларов
Вы пишите: “Начнем со страницы свежих объявлений, и для этого открываем файл inc/last_add.inc.php
На 20 строчке, где удаляем все содержимое этого контейнера, и вставляем”
Напутали немного.: удалять не нужно, а из приведённого вами кода взять только часть, т.к. весь код даёт некорректное отображение на небольших, по крайней мере экранах. Таким образом у меня получилось так:
<? echo($last[‘photo_name’])?””:””;?>
Да, width и height ставил 25., а то фото перекрывает дату
unisite-board-v3.0-nulled_by_troxx
речь идет об этом движке?
сайта пока нет
но пробую.
Где можно взять рабочий Joker Board 3.0 ?
нульц естественно )
Заранее благодарю)
Не смогу подсказать) Гугл в помощь)