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

В этой теме 8 ответов, 2 участника, последнее обновление sarkis sarkis 4 года/лет, 2 мес. назад.

Просмотр 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
    sarkis
    sarkis
    Хранитель

    вам нужно в

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

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

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

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

      {$kolvo_advert_user} – все объявления
      {$kolvo_vsego_not_activ} – неактивные объявления
      {$activ_advert_count} – активные объявления
    • Этот ответ был изменен 4 года/лет, 5 мес. назад от sarkis sarkis.
    #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
    sarkis
    sarkis
    Хранитель

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

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

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

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

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

    • Этот ответ был изменен 4 года/лет, 5 мес. назад от sarkis sarkis.
    #850
    Евгений
    Евгений
    Участник

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

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

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

    Пример:

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

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

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

    вам нужно в

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

    потом, вам нужно передать переменную в шаблон (пишите ниже после $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
    sarkis
    sarkis
    Хранитель

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

Просмотр 9 сообщений - с 1 по 9 (из 9 всего)

Для ответа в этой теме необходимо авторизоваться.