Как я уже ранее обещал, пишу о том как доработать доску объявлений на 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 ?
нульц естественно )
Заранее благодарю)
Не смогу подсказать) Гугл в помощь)