подсчет количества объявлений в категориях и подкатегориях и кнопка запомнить меня

_han

Создатель
Регистрация
28 Дек 2014
Сообщения
30
Реакции
0
Всем доброго времени суток, подскажите пожалуйста как сделать подсчет количества объявлений, объектов и статей в категориях и подкатегориях, а также как добавить кнопку "запомнить меня"? Если кто реализовал это чудо, поделитесь или подскажите как и где что править. Буду очень благодарен.
Версия - boxcode 8.5
 
для того,чтобы сделать подсчет количества объявлений в категории ,вам нужно :

1) в файле /moduls/doska/doska.php
добавить код в любое место в конце кода (к примеру ,после функции serias_lvl_num_category)
Код:
function count_advert($id_category){
  
     $this->kolvo_advert='';
     $db_query="select count(*)
        from ".DB_PREF."advert advert "
        ." where "
        ." n_category=".$id_category." and advert.hide='show' "
        ."  and advert.end_putdate > ".$GLOBALS["timeGlobal"]."   "
        .$this->add_db_query_country().$this->add_db_query_region().$this->add_db_query_city();
       
     $q_ident=obr_db_query($db_query);
     $this->kolvo_advert=mysql_result($q_ident,0);
       
         return ($this->kolvo_advert);

    }



2) заходите в файл /templates/шаблон/moduls/doska/mtemplates/page/category_to_glav_page_site.html


в цикле ,который начинается с таких строк {foreach from = $mas_category value="category"}

счетчки ставите так : { $obj_doska->count_advert($category['id_category'])} счетчик для категорий

а в цикле ,который начинается с таких строк {foreach from = $mas_inferiorcategory value="podcategory" }

счетчки ставите так : { $obj_doska->count_advert($podcategory['id_category'])} счетчик для подкатегорий


Все ............
 
Спасибо за столь быстрый ответ, но...

Чтото не получается в файле /moduls/doska/doska.php добавить код в любое место в конце кода (к примеру ,после функции serias_lvl_num_category:(

function count_advert($id_category){

$this->kolvo_advert='';
$db_query="select count(*)
from ".DB_PREF."advert advert "
." where "
." n_category=".$id_category." and advert.hide='show' "
." and advert.end_putdate > ".$GLOBALS["timeGlobal"]." "
.$this->add_db_query_country().$this->add_db_query_region().$this->add_db_query_city();

$q_ident=obr_db_query($db_query);
$this->kolvo_advert=mysql_result($q_ident,0);

return ($this->kolvo_advert);

}

Вот часть моего кода в конце:

else
{

$mas_series_num_category = $this->serias_lvl_num_category($num_category);
if ( $mas_series_num_category )
{

$mas_data_category = $this->obj_cache_category->get_data_mas_num($mas_series_num_category);
$link = $this->dir_http."/alladv/";
foreach ( $mas_data_category as $one_category )
{
$link .= $one_category["united_name_url"]."/";
$mas_links_series_category[] = array( "link" => $link, "name" => $one_category["name"]);
}

}

после добавления вылетала ошибка.

И еще в файле /templates/шаблон/moduls/doska/mtemplates/page/category_to_glav_page_site.html

в цикле ,который начинается с таких строк {foreach from = $mas_category value="category"}
счетчки ставите так : { $obj_doska->count_advert($category['id_category'])} счетчик для категорий

а в цикле ,который начинается с таких строк {foreach from = $mas_inferiorcategory value="podcategory" }
счетчки ставите так : { $obj_doska->count_advert($podcategory['id_category'])} счетчик для подкатегорий

Тоже похоже чтото не допонял куда именно вставлять или заменять?

<ul id="tab_gl_page_category_idoska">

{foreach from = $mas_category value="category"}
<li class="item">

<div class="block_name_category_tab_glpage_adv">
{if $category["image"] }

и ниже:

<ul class="list_podcategory_glpage_adv">
{foreach from = $mas_inferiorcategory value="podcategory" }
<li>
<a href="{$obj_doska->forming_all_name_url_category($podcategory['id_category'],'inferior')}">{ $podcategory["name"] }</a>
</li>
{/foreach}
</ul>
 
у вас есть функция

Код:
 function serias_lvl_num_category($num_category)
     {
      $rez = false;
      if ( isset($this->cache_series_mas_num_category[$num_category]) )
        {
         $rez = $this->cache_series_mas_num_category[$num_category];
        }
       else
         {
          //$rez = search_series_num_lvl_category($this->mas_all_category,$num_category);
          $rez = $this->obj_cache_category->search_series_num_data($num_category);
          $this->cache_series_mas_num_category[$num_category] = $rez;
         }
     
      return ($rez);
     }


сразу после этой функции добавляете мою функцию ,которую написал выше .

-------------------------------------------------------------------
в самом шаблоне есть два цикла для вывода :
1) категорий {foreach from = $mas_category value="category"}
2) подкатегорий {foreach from = $mas_inferiorcategory value="podcategory" }

в каждый цикл (во внутрь ) добавьте соответствующий счетчик
 
ок, спасибо разобрался... видать с утра спал еще )) ... но есть пару моментов:

1. в категории показывается (0) например "Строительство и ремонт 0" хотя объявления там есть
2. после добавления объявления в категории и подкатегории цифра кол-ва объявлений не меняется (если конечно через админку в категориях пересохранить какую нибуть категорию)

Например:
Строительство и ремонт (0)

Отделочные материалы (15)
Строительные материалы (7)
Разное (1)


В чем может быть причина?
 
/moduls/doska/filesmodul/forming_to_glav_page_site.php


$tpl->caching = 0;
$tpl->cache_lifetime = -1;

$tpl->template_dir = $this->dir_template_mfile."/page/";

$tpl->assign($mas_perem);
$text = $tpl->fetch("category_to_glav_page_site.html",$cache_category == 0 ? true : false);


Замените свой код на этот ..Он отключает кеш
 
Спасибо, помогло с ПОДкатегориями, но в категориях цифра с нуля не меняется. Вопрос, а отключение кеша на работоспособность доски не повлияет?
 
на работоспособонсть не повлияет ..
Сорри , данный код не для категорий ,а только для подкатегорий ..Не досмотрел ...
Позже будет решение
 
понятно, а еще вопрос: для объектов и статей аналогично делать? или там ньюансы есть
 
кнопку "запомнить меня" установил воспользовавшись подсказкой в этой теме: Для просмотра ссылки Войди или Зарегистрируйся

Может кому пригодится:
1. в файле hablon_form_enter_site, который лежит в шаблоне вставляем в удобное место:
<label><input name="save" type="checkbox" value='1'> Запомнить меня</label>

2. в самом конце кода ищем:
function focus_pf_login_authorize_light(type)
{
var obj_form = document.forms.form_authorize_light;
//alert(23);
if ( type == 1 )
{
if ( gv_authorize_focus_pf_login ) return;
obj_form.name_user.value = "";
}
else
{

}

и перед последней скобкой вставляем:
if (isset($_POST['save'])){
setcookie("login","", time()+604800,"/");
setcookie("pass","", time()+604800,"/");
session_destroy();

}


Должно получиться так:
function focus_pf_login_authorize_light(type)
{
var obj_form = document.forms.form_authorize_light;
//alert(23);
if ( type == 1 )
{
if ( gv_authorize_focus_pf_login ) return;
obj_form.name_user.value = "";
}
else
{
if ( gv_authorize_focus_pf_password ) return;
obj_form.password_user.value = "";
}
if (isset($_POST['save'])){
setcookie("login","", time()+604800,"/");
setcookie("pass","", time()+604800,"/");
session_destroy();

}


}

Вот и все...
 
Последнее редактирование:
Назад
Сверху