Разработка доски объявлений под ключ › Boxcode › Программная часть (back-end) › Личный кабинет и неактивные объявления — boxcode 8.5
- В этой теме 8 ответов, 2 участника, последнее обновление 6 лет, 6 месяцев назад сделано
sarkis.
-
АвторСообщения
-
23.04.2016 в 15:59 #842
Евгений
УчастникХотелось бы узнать как реализовать в личном кабинете показ кол-ва неактивных объявлений.
Например сейчас когда добавил «Фильтр на просроченные объявления» и заходишь в личный кабинет есть такое:
….
Мои объявления: просмотреть (8шт.) / просмотреть неактивные объявления
Мои организации: вы не добавили ни одной организации
Мои статьи: вы не добавили ни одной статьи
….Нехотелось бы чтобы ссылка на неактивные объявления НЕ исчезала при отсутсвии таковых, а наоборот бы как то удобней сделать, например:
….
Мои объявления (активные): просмотреть (7шт.)
Мои объявления (неактивные): просмотреть (1шт.)
Мои организации: вы не добавили ни одной организации
Мои статьи: вы не добавили ни одной статьи
….
Тоесть если есть просроченое объявление, чтобы оно минусовалось и естественно не показывалось в активных объявлениях, при этом отображалось в НЕактивных, (т.е. всего было 8 шт. объявлений, одно стало неактивное и теперь в активных 7 шт., а в неактивных 1 шт.)это конечно делается в www\templates\шаблон\moduls\doska\mtemplates\block_advert_page_info_user.html
код:
div class=’data_info_registr’
Мои объявления: a href=»{$dir_http}/myadverts/»>{ $kolvo_advert_user ? «просмотреть («.$kolvo_advert_user.» шт.)» : «вы не добавили ни одного объявления» } /a
/divчто тут — …»{$dir_http}/myadverts/»>{ $kolvo_advert_user ? «просмотреть («.$kolvo_advert_user.» шт.)»… нужно прописать чтобы выводилось кол-во неактивных объявлений? Или еще гдето надо править?
Заранее спасибо.
23.04.2016 в 18:24 #843sarkis
Хранительвам нужно в
1modul/doska/filesmodul/forming_block_page_info_user.phpдобавить новую выборку для подсчета количества неактивных объявлений
123456$db_query="select count(*) from ".DB_PREF."advert advert "." where ".( $t_db_query_category ? " ( ".$t_db_query_category." ) and " : "" )." and advert.end_putdate < ".$GLOBALS["timeGlobal"]." type_user='user' and num_user='".$GLOBALS["id_user_to_site"]."' ";$this->kolvo_vsego_not_activ=obr_db_query_count($db_query);потом, вам нужно передать переменную в шаблон (пишите ниже после $mas_perem[«kolvo_advert_user»] = $kolvo_advert_user;)
1$mas_perem["kolvo_vsego_not_activ"] = $this->kolvo_vsego_not_activ;Чтобы вычислить отдельно активные объявления, вам просто нужно сделать обычное математическое выражение
1{?$activ_advert_count=$kolvo_advert_user-$kolvo_vsego_not_activ}Все! В шаблоне у вас есть три переменные(счетчики)
-
{$kolvo_advert_user} — все объявления
{$kolvo_vsego_not_activ} — неактивные объявления
{$activ_advert_count} — активные объявления-
Ответ изменён 6 лет, 9 месяцев назад пользователем
sarkis.
24.04.2016 в 12:20 #847Евгений
УчастникВсе вроде легко, сделал, неактивное объявление показывется перейдя по ссылке. НО в активных неактивное всеровно есть, и кол-во объявлений в личном кабинете не меняется — не в активных, не в неактивных.
Я делал все по инструкции! Вот мои отрывки исправленных файлов (жирным шрифтом выделяю, что я исправил и добавил):
1. \moduls\doska\mas_init_component.php
было:
«myadvert» => array( true, array(
//array(«addcatalog»,»get»,»addcatalog»,»text»,true,true,»value»,»on»,false,false,false,false),
array(«page_myadvert»,»get»,»num_page»,»numeric»,false,true,false,false,false,false,false,false)
)
),
стало:
«myadvert» => array( true, array(
//array(«addcatalog»,»get»,»addcatalog»,»text»,true,true,»value»,»on»,false,false,false,false),
array(«page_myadvert»,»get»,»num_page»,»numeric»,false,true,false,false,false,false,false,false),
array(«activ»,»get»,»activ»,»text»,false,true,»value»,»false»,false,»trcd»,false,false)
)
),2. \moduls\doska\filesmodul\myadvert\control_data.php
в начало файла поставил этот код:
$notactiv =»»;
if($this->mas_inbox[«activ»] ){
$this->add_param_url[«activ»] = $this->mas_inbox[«activ»];
$this->data_light_search[«activ»] = $this->mas_inbox[«activ»];
$notactiv .= » and advert.end_putdate < «.$GLOBALS[«timeGlobal«].» «;
}далее ниже было:
$db_query=»select count(*) from «.DB_PREF.»advert advert »
.» where »
//.» advert.n_category IN («.$this->list_id_inferiorcategory(false,true).») »
.( $t_db_query_category ? » ( «.$t_db_query_category.» ) and » : «» )
//.» and advert.hide=’show’ »
//.» and advert.end_putdate > «.$GLOBALS[«timeGlobal»]
.» type_user=’user’ and num_user='».$GLOBALS[«id_user_to_site»].»‘ «;
$this->kolvo_vsego_myadverts=obr_db_query_count($db_query);стало:
$db_query=»select count(*) from «.DB_PREF.»advert advert »
.» where »
//.» advert.n_category IN («.$this->list_id_inferiorcategory(false,true).») »
.( $t_db_query_category ? » ( «.$t_db_query_category.» ) and » : «» )
//.» and advert.hide=’show’ »
//.» and advert.end_putdate > «.$GLOBALS[«timeGlobal»]
.» type_user=’user’ and num_user='».$GLOBALS[«id_user_to_site»].»‘ «.$notactiv.» «;
$this->kolvo_vsego_myadverts=obr_db_query_count($db_query);в этом же файле ниже:
было:
$db_query=»select advert.id_advert,advert.torg, advert.name_adv, advert.text, advert.image, advert.start_putdate, advert.end_putdate,
advert.name_country_adv, advert.name_region_adv,advert.name_city_adv,advert.cost,
advert.pick_out_adv , advert.is_makegood ,advert.status_adv, advert.n_category, advert.currency,
advert.premium_adv
from «.DB_PREF.»advert advert »
.» where »
//.» advert.n_category IN («.$this->list_id_inferiorcategory(false,true).») »
.( $t_db_query_category ? » ( «.$t_db_query_category.» ) and » : «» )
//.» and advert.hide=’show’ »
//.» and advert.end_putdate > «.$GLOBALS[«timeGlobal»].» »
.» advert.type_user=’user’ and advert.num_user=».$GLOBALS[«id_user_to_site»].» »
.» order by advert.premium_adv DESC, advert.sort_time DESC limit «.($this->open_num_page_myadverts-1)*KOL_ADVERT_TO_ALL_PAGE.» , «.KOL_ADVERT_TO_ALL_PAGE;list($kolvo,$this->data_myadverts)=obr_db_query_select_assoc($db_query);
if ($kolvo==0) return (false);
стало:
$db_query=»select advert.id_advert,advert.torg, advert.name_adv, advert.text, advert.image, advert.start_putdate, advert.end_putdate,
advert.name_country_adv, advert.name_region_adv,advert.name_city_adv,advert.cost,
advert.pick_out_adv , advert.is_makegood ,advert.status_adv, advert.n_category, advert.currency,
advert.premium_adv
from «.DB_PREF.»advert advert »
.» where »
//.» advert.n_category IN («.$this->list_id_inferiorcategory(false,true).») »
.( $t_db_query_category ? » ( «.$t_db_query_category.» ) and » : «» )
//.» and advert.hide=’show’ »
//.» and advert.end_putdate > «.$GLOBALS[«timeGlobal»].» »
.» advert.type_user=’user’ and advert.num_user=».$GLOBALS[«id_user_to_site»].» »
.$notactiv
.» order by advert.premium_adv DESC, advert.sort_time DESC limit «.($this->open_num_page_myadverts-1)*KOL_ADVERT_TO_ALL_PAGE.» , «.KOL_ADVERT_TO_ALL_PAGE;list($kolvo,$this->data_myadverts)=obr_db_query_select_assoc($db_query);
if ($kolvo==0) return (false);
3. \moduls\doska\filesmodul\forming_block_page_info_user.php
было:
$kolvo_advert_user = 0;if ( $GLOBALS[«user_to_site»] )
{$t_db_query_category = $this->get_text_db_query_part_category( «advert.n_category», 0 );
$db_query=»select count(*) from «.DB_PREF.»advert advert »
.» where »
//.» advert.n_category IN («.$this->list_id_inferiorcategory(false,true).») »
.( $t_db_query_category ? » ( «.$t_db_query_category.» ) and » : «» )
//.» and advert.hide=’show’ »
//.» and advert.end_putdate > «.$GLOBALS[«timeGlobal»]
.» type_user=’user’ and num_user='».$GLOBALS[«id_user_to_site»].»‘ «;
$kolvo_advert_user = obr_db_query_count($db_query);//$db_query=»select count(*) from «.DB_PREF.»advert where n_category IN («.$list_mas_id.») and hide=’show’ and end_putdate >= «.$GLOBALS[«timeGlobal»];
//$all_advert = obr_db_query_count($db_query);
}$mas_perem[«kolvo_advert_user»] = $kolvo_advert_user;
стало:
$kolvo_advert_user = 0;if ( $GLOBALS[«user_to_site»] )
{$t_db_query_category = $this->get_text_db_query_part_category( «advert.n_category», 0 );
$db_query=»select count(*) from «.DB_PREF.»advert advert »
.» where »
//.» advert.n_category IN («.$this->list_id_inferiorcategory(false,true).») »
.( $t_db_query_category ? » ( «.$t_db_query_category.» ) and » : «» )
//.» and advert.hide=’show’ »
//.» and advert.end_putdate > «.$GLOBALS[«timeGlobal»]
.» type_user=’user’ and num_user='».$GLOBALS[«id_user_to_site»].»‘ «;
$kolvo_advert_user = obr_db_query_count($db_query);
$this->kolvo_vsego_not_activ=obr_db_query_count($db_query);//$db_query=»select count(*) from «.DB_PREF.»advert where n_category IN («.$list_mas_id.») and hide=’show’ and end_putdate >= «.$GLOBALS[«timeGlobal»];
//$all_advert = obr_db_query_count($db_query);
}$mas_perem[«kolvo_advert_user»] = $kolvo_advert_user;
$mas_perem[«kolvo_vsego_not_activ»] = $this->kolvo_vsego_not_activ;4. Личный кабинет сейчас выглядит так:
Мои объявления (активные): 8 шт. / просмотреть и приминить доп. услуги
Мои объявления (неактивные): 8 шт. / просмотреть и активироватьа хотелось бы так:
Мои объявления (активные): 7 шт. / просмотреть и приминить доп. услуги
Мои объявления (неактивные): 1 шт. / просмотреть и активировать\templates\шаблон\moduls\doska\mtemplates\block_advert_page_info_user.html
{* в шаблоне формируется информация на странице infoUser соответствующая модулю doska *}Мои объявления (активные): a href=»{$dir_http}/myadverts/»>{ $kolvo_advert_user ? «<b>».$kolvo_advert_user.» шт.</b> / просмотреть и приминить доп. услуги» : «вы не добавили ни одного объявления» }
<br>
Мои объявления (неактивные): a href=»{$dir_http}/myadverts/?activ=false»>{ ЧТО СЮДА НАДО ПРОПИСАТЬ? «<b>»и ЧТО СЮДА НАДО ПРОПИСАТЬ?» шт.</b> / просмотреть и активировать» : «просроченных объявлений нет» }С этим вообще запутался:
Чтобы вычислить отдельно активные объявления, вам просто нужно сделать обычное математическое выражение
{?$activ_advert_count=$kolvo_advert_user-$kolvo_vsego_not_activ} — где прописать эту строку надо, подскажите пожалуйста )))){$kolvo_advert_user} – все объявления
{$kolvo_vsego_not_activ} – неактивные объявления
{$activ_advert_count} – активные объявленияПытался сделать из этого:
Мои объявления (неактивные): a href=»{$dir_http}/myadverts/?activ=false»>{ $kolvo_advert_user ? «<b>«.$kolvo_advert_user.» шт.</b> / просмотреть и активировать» : «просроченных объявлений нет» }
это:
Мои объявления (неактивные): a href=»{$dir_http}/myadverts/?activ=false»>{ $kolvo_vsego_not_activ ? «<b>».$kolvo_vsego_not_activ.» шт.</b> / просмотреть и активировать» : «просроченных объявлений нет» }
— не помогает……Я конечно извиняюсь, за то что надоел со своими вопросами, но охото разобраться, что я делаю не так )))) Говорю все вроде легко, а вот гдето споткнулся. Думаю не только мне будет это интересно и полезно добавить в личный кабинет.
24.04.2016 в 12:34 #848sarkis
Хранителья вам не давал кода, для того, чтобы в моих объявлениях отображались только активные. Вам нужно тогда добавлять в выборку активных объявлений (всех объявлений) условие (/myadvert/control_data.php и forming_block_page_info_user.php)
1and advert.end_putdate > “.$GLOBALS[“timeGlobal”]дословно : если время окончания объявлений будет больше текущей даты
Далее, в шаблоне добавляете счетчики все, только теперь считать активыне не надо, т.к мы внесли корректировки .. Итого две переменные
{$kolvo_advert_user} – активные объявления
{$kolvo_vsego_not_activ} – неактивные объявленияДабы не путаться , рекомендую вам формулировать свои вопросы по частям, т.к путаете вы сами себя !
-
Ответ изменён 6 лет, 9 месяцев назад пользователем
sarkis.
24.04.2016 в 12:44 #850Евгений
УчастникСпасибо огромное за ответ, буду пробовать, если что напишу ))))
03.07.2016 в 17:02 #965Евгений
УчастникДоброе время суток всем.
В общем бился бился я над тем как сделать, чтобы просроченные объявления показывались отдельно от активных (вместе с показом колличества объявлений), а не вместе с активными, так и не получилось )))) вроде все просто и легко, а не получилось.
Уважаемый sarkis, если вам не сложно, то доработайте пожалуйста эту функцию и инструкцию, многим будет полезно так себе сделать.
Заранее спасибо )))Пример:
Личный кабинет сейчас выглядит так:
Мои объявления (активные): 8 шт. / просмотреть и приминить доп. услуги. (в списке есть одно просроченное объявление)
Мои объявления (неактивные): 8 шт. / просмотреть и активировать. (тут одно неактивное объявление, а показывает что 8-мь)а хотелось бы так:
Мои объявления (активные): 7 шт. / просмотреть и приминить доп. услуги. (при этом, чтобы тут просроченых в списке небыло, а отображались в неактивных)
Мои объявления (неактивные): 1 шт. / просмотреть и активировать.04.07.2016 в 00:33 #966sarkis
Хранительвам нужно в
1modul/doska/filesmodul/forming_block_page_info_user.phpдобавить новую выборку для подсчета количества неактивных объявлений
123456$db_query=«select count(*) from «.DB_PREF.«advert advert «.» where «.( $t_db_query_category ? » ( «.$t_db_query_category.» ) and « : «» ).» and advert.end_putdate < «.$GLOBALS[«timeGlobal»].» type_user=’user’ and num_user='».$GLOBALS[«id_user_to_site»].«‘ «;$this->kolvo_vsego_not_activ=obr_db_query_count($db_query);потом, вам нужно передать переменную в шаблон (пишите ниже после $mas_perem[“kolvo_advert_user”] = $kolvo_advert_user;)
1$mas_perem[«kolvo_vsego_not_activ»] = $this->kolvo_vsego_not_activ;Чтобы вычислить отдельно активные объявления, вам просто нужно сделать обычное математическое выражение
1{?$activ_advert_count=$kolvo_advert_user—$kolvo_vsego_not_activ}Все! В шаблоне у вас есть три переменные(счетчики)
-
{$kolvo_advert_user} – все объявления
{$kolvo_vsego_not_activ} – неактивные объявления
{$activ_advert_count} – активные объявлениявы выполнили этот пункт ?
24.07.2016 в 09:06 #992Евгений
УчастникКонечно выполнил этот пункт.
Единственное меня смущает, что я {?$activ_advert_count=$kolvo_advert_user–$kolvo_vsego_not_activ} не туда добавлял.
Скажите пожалуйста где именно должна быть эта строка, или заменена.24.07.2016 в 11:11 #993sarkis
Хранительwww\templates\шаблон\moduls\doska\mtemplates\block_advert_page_info_user.html
-
Ответ изменён 6 лет, 9 месяцев назад пользователем
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.