Разработка доски объявлений под ключ Boxcode Программная часть (back-end) Личный кабинет и неактивные объявления — boxcode 8.5

Просмотр 9 сообщений - с 1 по 9 (из 9 всего)
  • Автор
    Сообщения
  • #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.» шт.)»… нужно прописать чтобы выводилось кол-во неактивных объявлений? Или еще гдето надо править?

    Заранее спасибо.

    #843
    sarkissarkis
    Хранитель

    вам нужно в

    добавить новую выборку для подсчета количества неактивных объявлений

    потом, вам нужно передать переменную в шаблон (пишите ниже после $mas_perem[«kolvo_advert_user»] = $kolvo_advert_user;)

    Чтобы вычислить отдельно активные объявления, вам просто нужно сделать обычное математическое выражение

    Все! В шаблоне у вас есть три переменные(счетчики)

      {$kolvo_advert_user} — все объявления
      {$kolvo_vsego_not_activ} — неактивные объявления
      {$activ_advert_count} — активные объявления
    • Ответ изменён 4 года, 7 месяцев назад пользователем sarkissarkis.
    #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> / просмотреть и активировать» : «просроченных объявлений нет» }
    — не помогает……

    Я конечно извиняюсь, за то что надоел со своими вопросами, но охото разобраться, что я делаю не так )))) Говорю все вроде легко, а вот гдето споткнулся. Думаю не только мне будет это интересно и полезно добавить в личный кабинет.

    #848
    sarkissarkis
    Хранитель

    я вам не давал кода, для того, чтобы в моих объявлениях отображались только активные. Вам нужно тогда добавлять в выборку активных объявлений (всех объявлений) условие (/myadvert/control_data.php и forming_block_page_info_user.php)

    дословно : если время окончания объявлений будет больше текущей даты

    Далее, в шаблоне добавляете счетчики все, только теперь считать активыне не надо, т.к мы внесли корректировки .. Итого две переменные

    {$kolvo_advert_user} – активные объявления
    {$kolvo_vsego_not_activ} – неактивные объявления

    Дабы не путаться , рекомендую вам формулировать свои вопросы по частям, т.к путаете вы сами себя !

    • Ответ изменён 4 года, 7 месяцев назад пользователем sarkissarkis.
    #850
    ЕвгенийЕвгений
    Участник

    Спасибо огромное за ответ, буду пробовать, если что напишу ))))

    #965
    ЕвгенийЕвгений
    Участник

    Доброе время суток всем.
    В общем бился бился я над тем как сделать, чтобы просроченные объявления показывались отдельно от активных (вместе с показом колличества объявлений), а не вместе с активными, так и не получилось )))) вроде все просто и легко, а не получилось.
    Уважаемый sarkis, если вам не сложно, то доработайте пожалуйста эту функцию и инструкцию, многим будет полезно так себе сделать.
    Заранее спасибо )))

    Пример:

    Личный кабинет сейчас выглядит так:
    Мои объявления (активные): 8 шт. / просмотреть и приминить доп. услуги. (в списке есть одно просроченное объявление)
    Мои объявления (неактивные): 8 шт. / просмотреть и активировать. (тут одно неактивное объявление, а показывает что 8-мь)

    а хотелось бы так:
    Мои объявления (активные): 7 шт. / просмотреть и приминить доп. услуги. (при этом, чтобы тут просроченых в списке небыло, а отображались в неактивных)
    Мои объявления (неактивные): 1 шт. / просмотреть и активировать.

    #966
    sarkissarkis
    Хранитель

    вам нужно в

    добавить новую выборку для подсчета количества неактивных объявлений

    потом, вам нужно передать переменную в шаблон (пишите ниже после $mas_perem[“kolvo_advert_user”] = $kolvo_advert_user;)

    Чтобы вычислить отдельно активные объявления, вам просто нужно сделать обычное математическое выражение

    Все! В шаблоне у вас есть три переменные(счетчики)

      {$kolvo_advert_user} – все объявления
      {$kolvo_vsego_not_activ} – неактивные объявления
      {$activ_advert_count} – активные объявления

    вы выполнили этот пункт ?

    #992
    ЕвгенийЕвгений
    Участник

    Конечно выполнил этот пункт.
    Единственное меня смущает, что я {?$activ_advert_count=$kolvo_advert_user–$kolvo_vsego_not_activ} не туда добавлял.
    Скажите пожалуйста где именно должна быть эта строка, или заменена.

    #993
    sarkissarkis
    Хранитель

    www\templates\шаблон\moduls\doska\mtemplates\block_advert_page_info_user.html

Просмотр 9 сообщений - с 1 по 9 (из 9 всего)
  • Для ответа в этой теме необходимо авторизоваться.