Писать на форуме DIAFAN.CMS могут только зарегистрированные пользователи. Войдите или зарегистрируйтесь.
Счетчик просмотров в списке статей
-
04 февраля 2016 г.
-
Подскажите пожалуйста как вывести счетчик просмотров в СПИСКЕ статей?
-
-
-
-
04 февраля 2016 г.
-
Неужели никто не делал такого?
-
-
-
-
08 февраля 2016 г.
-
Вот так не выходит :Код
echo '<div>'.$this->diafan->_('Просмотров').': '.$row["counter"].'</div>';
-
-
-
-
08 февраля 2016 г.
-
Все проще. В административной части сайта выбираем раздел "Статьи", далее идем в "Настройки модуля" и отмечаем пункт "Выводить счетчик на сайте". Вот и все, успехов.
-
-
-
-
08 февраля 2016 г.
-
Галочка стоит! НО ничего не выводит... вернее выводит количество просмотров на странице самой статьи, а вот в списке статей не выводит. Думаю и галочка влияет на вывод счетчика именно на странице статьи отдельной.
-
-
-
-
08 февраля 2016 г. , редакция: 08 февраля 2016 г.
-
Для страницы статьи и для страницы списка статей в model формируются значения. Соответственно у Вас не выводится значение на страницы списка статей, т.к. это значение в model не было передано. Вам нужно по аналогии с функцией подготовки значений для страницы статьи скорректировать функцию подготовки значений для страницы списка статей. Дело минутное, но у меня сейчас в распоряжении только телефон. А на нем сложно вывести сюда нужное Вам решения. В принципе я уверен, что у Вас получится сделать это самостоятельно. Если нет, пишите постараюсь помочь или кто-то еще поможет.
-
-
-
-
10 февраля 2016 г.
-
Ну я так и думал тоже, подобные задачи решал в других модулях. Когда нужно было вывести какие-нибудь значения в списке или в элементе, то в model в соответствующих функциях в запросах к БД добавлял необходимые мне значения...
А тут как то по другому... не как обычно... даже запутался и не понимаю. Получается на странице элемента количество просмотров выводится вот так $result["counter"], НО в моделе вообще нет нигде counter. Есть только в функции элемента вот такая запись $this->counter_view(); - это всё что я вижу на тему counter. Я так понимаю, что это функция такая... но где она, и как работает и как вывести счетчик в список так и не понял :(.
Виталий, если можете, то прошу вас помочь :)
-
-
-
-
10 февраля 2016 г. , редакция: 10 февраля 2016 г.
-
В файл clauses.model.php добавте следующую функциюКодfunction get_counter_view($element_id)
{
if (! $element_id)
{
return 0;
}
if($this->diafan->configmodules('counter'))
{
$counter = DB::query_fetch_array("SELECT id, count_view FROM {%s_counter} WHERE element_id=%d LIMIT 1", $this->diafan->_site->module, $element_id);
if($counter){
if(empty($_SESSION[$this->diafan->_site->module."_view"][$element_id]))
{
$_SESSION[$this->diafan->_site->module."_view"][$element_id] = 1;
DB::query("UPDATE {%s_counter} SET count_view=%d WHERE id=%d LIMIT 1", $this->diafan->_site->module, ++$counter["count_view"], $counter["id"]);
}
}
else
{
DB::query("INSERT INTO {%s_counter} (count_view, element_id) VALUES (1, %d)", $this->diafan->_site->module, $element_id);
$counter["count_view"] = 1;
$_SESSION[$this->diafan->_site->module."_view"][$element_id] = 1;
}
if($this->diafan->configmodules('counter_site'))
{
return $counter["count_view"];
}
}
else return 0;
}
Теперь ей можно воспользоваться так, как Вам угодно. Т.е. в параметр функции $element_id записываем id конкретной статьи и получаем на выходе количество просмотров. При этомЦитатаКоличество просмотров на сайте текущей статьи. Статистика ведется и параметр выводится, если в настройках модуля отмечена опция «Подключить счетчик просмотров».
Пример:
ПЕРЕМЕННАЯ_ДЛЯ_КОЛИЧЕСТВА_ПРОСМОТРОВ = get_counter_view(ЗДЕСЬ_id_СТАТЬИ); -
-
Поблагодарили: Максим (web-prosto)
-
-
-
10 февраля 2016 г. , редакция: 10 февраля 2016 г.
-
Виталий, спасибо за ответ, но видать я не то делаю что-то...
Вставил функцию в model... затем во вьюхе списка указал:Код$cnt = get_counter_view($result["id"]);
echo 'Просмотров'.$row["name"].'';
Выдает ошибку:
Call to undefined function get_counter_view()
...\modules\clauses\views\clauses.view.list.php:198
Объясните пожалуйста "на пальцах" что не так? Просто я не спец... учусь пока :) -
-
-
-
10 февраля 2016 г. , редакция: 13 октября 2016 г.
-
ЦитатаВставил функцию в model... затем во вьюхе списка указал:
Нее. Все сначало.
Берем файл clauses.model.php и вставляем кодКод// это то, что добавили
function get_counter_view($element_id)
{
if (! $element_id)
{
return 0;
}
$counter = DB::query_fetch_array("SELECT id, count_view FROM {%s_counter} WHERE element_id=%d LIMIT 1", "clauses", $element_id);
return intval(! $counter || ! $counter["count_view"] ? 1 : $counter["count_view"]);
}
Далее в том же файле ищем функциюКодprivate function list_category_elements_query($time, $cat_ids){ ... }
и излогаем ее такКодprivate function list_category_elements_query($time, $cat_ids)
{
$rows = DB::query_range_fetch_all(
"SELECT e.id, e.[name], e.timeedit, e.[anons], e.site_id, e.created FROM {clauses} AS e"
.($this->diafan->configmodules('where_access_element') ? " LEFT JOIN {access} AS a ON a.element_id=e.id AND a.module_name='clauses' AND a.element_type='element'" : "")
." INNER JOIN {clauses_category_rel} AS r ON e.id=r.element_id AND r.cat_id IN (%s)"
." WHERE e.[act]='1' AND e.trash='0' AND e.created<%d"
." AND e.date_start<=%d AND (e.date_finish=0 OR e.date_finish>=%d)"
.($this->diafan->configmodules('where_access_element') ? " AND (e.access='0' OR e.access='1' AND a.role_id=".$this->diafan->_users->role_id.")" : '')
." GROUP BY e.id ORDER BY e.sort DESC, e.id DESC",implode(',', $cat_ids), $time, $time, $time,
$this->diafan->_paginator->polog, $this->diafan->_paginator->nastr
);
// это то, что добавили
foreach ($rows as $key => $r_w)
$rows[$key]["counter"] = $this->get_counter_view($r_w["id"]);
return $rows;
}
Затем в том же файле ищем функциюКодprivate function list_query($time){ ... }
и излагаем ее такКодprivate function list_query($time)
{
$rows = DB::query_range_fetch_all(
"SELECT e.id, e.created, e.[name], e.[anons], e.timeedit, e.site_id FROM {clauses} AS e"
.($this->diafan->configmodules('where_access_element') ? " LEFT JOIN {access} AS a ON a.element_id=e.id AND a.module_name='clauses' AND a.element_type='element'" : "")
." WHERE e.[act]='1' AND e.trash='0' AND e.site_id=%d AND e.created<%d"
." AND e.date_start<=%d AND (e.date_finish=0 OR e.date_finish>=%d)"
.($this->diafan->configmodules('where_access_element') ? " AND (e.access='0' OR e.access='1' AND a.role_id=".$this->diafan->_users->role_id.")" : '')
." GROUP BY e.id ORDER BY e.sort DESC, e.id DESC",
$this->diafan->_site->id, $time, $time, $time,$this->diafan->_paginator->polog, $this->diafan->_paginator->nastr
);
// это то, что добавили
foreach ($rows as $key => $r_w)
$rows[$key]["counter"] = $this->get_counter_view($r_w["id"]);
return $rows;
}
Затем в том же файле ищем функциюКодfirst_page_elements_query($time, $cat_ids){ ... }
и излагаем ее такКодprivate function first_page_elements_query($time, $cat_ids)
{
$rows = DB::query_range_fetch_all(
"SELECT e.id, e.[name], e.timeedit, e.[anons], e.site_id, e.created FROM {clauses} AS e"
." INNER JOIN {clauses_category_rel} AS r ON e.id=r.element_id"
.($this->diafan->configmodules('where_access_element') ? " LEFT JOIN {access} AS a ON a.element_id=e.id AND a.module_name='clauses' AND a.element_type='element'" : "")
." WHERE r.cat_id IN (%s) AND e.[act]='1' AND e.trash='0' AND e.created<%d"
." AND e.date_start<=%d AND (e.date_finish=0 OR e.date_finish>=%d)"
.($this->diafan->configmodules('where_access_element') ? " AND (e.access='0' OR e.access='1' AND a.role_id=".$this->diafan->_users->role_id.")" : '')
." GROUP BY e.id ORDER BY e.sort DESC, e.id DESC",implode(',', $cat_ids), $time, $time, $time, 0, $this->diafan->configmodules("count_list")
);
// это то, что добавили
foreach ($rows as $key => $r_w)
$rows[$key]["counter"] = $this->get_counter_view($r_w["id"]);
return $rows;
}
Теперь во вьюхах вывода первой страницы статей, страницы списка статей стало доступено, как и во вьюхе страницы конкретной статьи, значение ["counter"]
Пример, берем вьюху страницы списка статей clauses.view.list.php и в определенные строчки вносим такие измененияКод//статьи подкатегории
if (! empty($child["rows"]))
{
foreach ($child["rows"] as $row)
{
echo '<div class="block">';
...
// это то, что добавляем в конец данного цикла перед последним закрывающим тегом div
echo '<div>Количество просмотров: '.$row["counter"].'</div>';
echo '</div>';}
}
Тоже в циклеКод//статьи
if (! empty($result["rows"]))
{
foreach ($result["rows"] as $row)
{
echo '<div class="block">';
...
// это то, что добавляем в конец данного цикла перед последним закрывающим тегом div
echo '<div>Количество просмотров: '.$row["counter"].'</div>';
echo '</div>';}
}
Успехов. -
-
10 февраля 2016 г. , редакция: 10 февраля 2016 г.
-
Максим (web-prosto), я уверен, что для Вас web - это prosto. Имейте меру в своих желаниях. Может быть Вам сюда http://pro.user.diafan.ru/ или сюда http://www.prosto-web.pro/uslugiЦитата... а вот в блоке нет :/
-
-
-
-
10 февраля 2016 г.
-
мда... сарказм пошёл теперь.
Виталий, я периодически обращаюсь сюда http://pro.user.diafan.ru... многие моменты и сам делаю пользуясь документацией, информацией с форума, ТП иногда подсказывает, а также по аналогии с тем, как делали мне, когда обращался сюда http://pro.user.diafan.ru. Да, я далеко не спец в этой области, но потихоньку растём.ЦитатаИмейте меру в своих желаниях.
Виталий, я не думаю, что моя мера желаний в данной теме настолько была велика или вышла за рамки. Я же не прошу: "О! А тогда ещё мне напишите как каталог вывести в статье, и чтобы слайдеры были и ...".
Я просил в рамках темы, т.е. про тот же счетчик, но еще и в блоке. Согласен, в начале про блок ничего не говорилось, но я предполагал, что в блоке будет тоже самое что и в списке - следующий раз буду учитывать такие моменты в своих вопросах.
Но видать у вас другое мнение по поводу меры желаний.
По поводу ника :) Ок, понял, что теперь нужно завести себе второй аккаунт на диафане что то типа "ПРОСТО ЧАЙНИК", чтобы не было желания у вас, да и ещё у кого нибудь "подкалывать" меня. Честно говоря у меня уже была такая мысль, а то смотрю на форуме кому-то на несколько страниц разжевывают, а кому то вообще ничего не отвечают. Вот и закралась мысль о том, что некоторые мои вопросы вообще без ответа скорее всего из-за ника :)
Ну всё равно, Виталий, без сарказма и подкола - Спасибо ещё раз вам за вашу помощь! Вы единственный, кто мне тут вообще ответил, и не просто ответил, а по делу и подробно! ) -
-
-
-
10 февраля 2016 г. , редакция: 10 февраля 2016 г.
-
Цитатамда... сарказм пошёл теперь
Не сарказм! Я привел подробное описание, включая вывод списка с категориями, без категории, вывод на первой странице. То есть три примера, а мог ограничится лишь одним примером - вывод в списке без категорий (который Вы изначально хотели). Если Вам нужно вывести в блоке - это аналогично этим примерам. Учитывая, что Вы разрабатываете сайты, получая за это деньги, то сложность такой задачи после приведенных примеров для Вас равна нулю. Отсюда сделал вывод, что Вам лень подумать и вникнуть, а проще заниматься копированием. Если Вы хотя бы попытались написать вывод в блоке, но у Вас не вышло и привели свой пример с ошибкой, то не вопрос, многие Вам бы помогли. А так, вывод: Вам лень. Но раз лень, пусть так и будет.
Попробуйте сделать самостоятельно, не получится - пишите. Помогут. -
-
-
-
10 февраля 2016 г. , редакция: 10 февраля 2016 г.
-
Да в том то и дело что не лень, обращаюсь за помощью на форум или в ТП только тогда, когда уже сам пытался по инструкции, по темам форума и т.д. И когда вижу, что не получается, или не понимаю, не сходится... то обращаюсь за помощью.
Можно конечно разбираться неделями, месяцами, годами :)... и добиться результата, но думаю форум для разработчиков для того и нужен, чтобы тут делиться опытом, подсказывать, помогать. Пока от меня помощи мало кончено, больше беру от форума, чем даю, НО это пока. Когда мои задачи/вопросы решаются (самостоятельно, либо с помощью ТП, либо за платно или еще как-нибудь), то обязательно на форуме выкладываю решение/итог, чтобы кому то когда то это помогло.
Ладно, а то уже от темы отошли тут... пойду дальше пытаться разбираться... когда решится задача, то отпишусь и тут... -
-
-
-
30 сентября 2016 г.
-
Вы разобрались с выводом счётчика в блок? А то у меня тоже возникла такая проблема. Если разобрались, пожалуйста выложите сюда результат, очень поможете.
-
-
-
-
11 октября 2016 г. , редакция: 13 октября 2016 г.
-
Эхх. Что с Вами будешь делать. Думал Максим (web-prosto) отпишется, что решил.Наверно забыл.ЦитатаЛадно, а то уже от темы отошли тут... пойду дальше пытаться разбираться... когда решится задача, то отпишусь и тут...
Продолжаю. Берем файл clauses.model.php, ищем функциюи излагаем ее вот такКодpublic function show_block($count, $site_ids, $cat_ids, $sort, $images, $images_variation, $tag){ ... }
Кодpublic function show_block($count, $site_ids, $cat_ids, $sort, $images, $images_variation, $tag)
{
$time = mktime(23, 59, 0, date("m"), date("d"), date("Y"));
if($sort == 'keywords')
{
if($this->diafan->_site->titlemodule)
{
$title = $this->diafan->_site->titlemodule;
}else
{
$title = $this->diafan->_site->name;
}
}
$where = '';
//кеширование
$cache_meta = array(
"name" => "block",
"cat_ids" => $cat_ids,
"site_ids" => $site_ids,
"count" => $count,
"lang_id" => _LANG,
"time" => $time,
"sort" => $sort.($sort == 'keywords' ? $title : ''),
"current" => ($this->diafan->_site->module == 'clauses' && $this->diafan->_route->show ? $this->diafan->_route->show : ''),
"images" => $images,
"images_variation" => $images_variation,
"access" => ($this->diafan->configmodules('where_access_element', 'clauses') || $this->diafan->configmodules('where_access_cat', 'clauses') ? $this->diafan->_users->role_id : 0),
"tag" => $tag,
);
if ($sort == "rand" || ! $result = $this->diafan->_cache->get($cache_meta, "clauses"))
{
$minus = array();
$one_cat_id = count($cat_ids) == 1 && substr($cat_ids[0], 0, 1) !== '-' ? $cat_ids[0] : false;
if(! $this->validate_attribute_site_cat('clauses', $site_ids, $cat_ids, $minus))
{
return false;
}
$inner = "";
if($cat_ids)
{
$inner = " INNER JOIN {clauses_category_rel} as r ON r.element_id=e.id"
." AND r.cat_id IN (".implode(',', $cat_ids).")";
}
elseif(! empty($minus["cat_ids"]))
{
$inner = " INNER JOIN {clauses_category_rel} as r ON r.element_id=e.id"
." AND r.cat_id NOT IN (".implode(',', $minus["cat_ids"]).")";
}
$where = '';
if($site_ids)
{
$where .= " AND e.site_id IN (".implode(",", $site_ids).")";
}
elseif(! empty($minus["site_ids"]))
{
$where .= " AND e.site_id NOT IN (".implode(",", $minus["site_ids"]).")";
}
if($sort == 'keywords')
{
Custom::inc('includes/searchwords.php');
$searchwords = new Searchwords();
$searchwords->max_length = $this->diafan->configmodules("max_length", "search");
$names = $searchwords->prepare($title);
if(empty($names))
{
return false;
}
$keys = DB::query_fetch_key_value("SELECT id, keyword FROM {search_keywords} WHERE keyword IN ('".implode("', '", $names)."')", "keyword", "id");
if(count($keys) < count($names))
{
return;
}
$inner .= " INNER JOIN {search_results} AS sr ON sr.element_id=e.id AND sr.table_name='clauses'";
$inner .= " INNER JOIN {search_index} AS i ON sr.id=i.result_id AND i.keyword_id IN ('".implode("', '", $keys)."') AND i.rating=0";
}
if($this->diafan->_site->module == 'clauses' && $this->diafan->_route->show)
{
$where .= $where.' AND e.id<>'.$this->diafan->_route->show;
}
if($tag)
{
$t = DB::query_fetch_array("SELECT id, [name] FROM {tags_name} WHERE [name]='%s' AND trash='0'", $tag);
if(! $tag)
{
return false;
}
$inner .= " INNER JOIN {tags} AS t ON t.element_id=e.id AND t.element_type='element' AND t.module_name='clauses' AND t.tags_name_id=".$t["id"];
}
if ($sort == "rand")
{
$max_count = DB::query_result(
"SELECT COUNT(DISTINCT e.id) FROM {clauses} as e"
.$inner
.($this->diafan->configmodules('where_access_element', 'clauses') ? " LEFT JOIN {access} AS a ON a.element_id=e.id AND a.module_name='clauses' AND a.element_type='element'" : "")
." WHERE e.[act]='1' AND e.trash='0' AND e.created<%d"
.($this->diafan->_site->module == 'clauses' && $this->diafan->_route->show ? " AND e.id<>".$this->diafan->_route->show : '')
." AND e.date_start<=%d AND (e.date_finish=0 OR e.date_finish>=%d)"
.$where
.($this->diafan->configmodules('where_access_element', 'clauses') ? " AND (e.access='0' OR e.access='1' AND a.role_id=".$this->diafan->_users->role_id.")" : ''),
$time, $time, $time
);
$rands = array();
for ($i = 1; $i <= min($max_count, $count); $i++)
{
do
{
$rand = mt_rand(0, $max_count - 1);
}
while (in_array($rand, $rands));
$rands[] = $rand;
}
}
else
{
$rands[0] = 1;
}
$result["rows"] = array();
foreach ($rands as $rand)
{
switch($sort)
{
case "date":
$order = ' ORDER BY e.created DESC, e.id DESC';
break;
case "rand":
$order = '';
break;
default:
$order = ' ORDER BY e.sort DESC, e.id DESC';
break;
}
$rows = DB::query_range_fetch_all(
"SELECT e.id, e.[name],e.[anons], e.timeedit, e.site_id, e.created FROM {clauses} AS e"
.$inner
.($this->diafan->configmodules('where_access_element', 'clauses') ? " LEFT JOIN {access} AS a ON a.element_id=e.id AND a.module_name='clauses' AND a.element_type='element'" : "")
." WHERE e.[act]='1' AND e.trash='0' AND e.created<%d"
.($this->diafan->_site->module == 'clauses' && $this->diafan->_route->show ? " AND e.id<>".$this->diafan->_route->show : '')
." AND e.date_start<=%d AND (e.date_finish=0 OR e.date_finish>=%d)"
.$where
.($this->diafan->configmodules('where_access_element', 'clauses') ? " AND (e.access='0' OR e.access='1' AND a.role_id=".$this->diafan->_users->role_id.")" : '')
." GROUP BY e.id"
.$order,
$time, $time, $time,
$sort == "rand" ? $rand : 0,
$sort == "rand" ? 1 : $count
);
$result["rows"] = array_merge($result["rows"], $rows);
}
$this->elements($result["rows"], array("count" => $images, "variation" => $images_variation));
// если категория только одна, задаем ссылку на нее
if (!empty($result["rows"]) && $one_cat_id)
{
$cat = DB::query_fetch_array("SELECT [name], site_id, id FROM {clauses_category} WHERE id=%d LIMIT 1", $one_cat_id);
$result["name"] = $cat["name"];
$result["link_all"] = $this->diafan->_route->link($cat["site_id"], $cat["id"], 'clauses', 'cat');
$result["category"] = true;
}
// если раздел сайта только один, то задаем ссылку на него
elseif (!empty($result["rows"]) && count($site_ids) == 1)
{
$result["name"] = DB::query_result("SELECT [name] FROM {site} WHERE id=%d LIMIT 1", $site_ids[0]);
$result["link_all"] = $this->diafan->_route->link($site_ids[0]);
$result["category"] = false;
}
if(! empty($result["rows"]) && $tag)
{
$result["name"] .= ': '.$t["name"];
}
//сохранение кеша
if ($sort != "rand")
{
$this->diafan->_cache->save($result, $cache_meta, "clauses");
}
}
foreach ($result["rows"] as &$row)
{
$this->prepare_data_element($row);
}
foreach ($result["rows"] as &$row)
{
$this->format_data_element($row);
}
// это то, что добавили
foreach ($result["rows"] as $key => $r_w)
$result["rows"][$key]["counter"] = $this->get_counter_view($r_w["id"]);
return $result;
}
Можно продолжить теперь не только для шаблонного тега статей, но и для вывода похожих статей. Находим функциюи излагаем ее вот такКодpublic function show_block_rel($count, $images, $images_variation){ ... }
Кодpublic function show_block_rel($count, $images, $images_variation)
{
$time = mktime(23, 59, 0, date("m"), date("d"), date("Y"));
//кеширование
$cache_meta = array(
"name" => "block_rel",
"count" => $count,
"lang_id" => _LANG,
"element_id" => $this->diafan->_route->show,"images" => $images,
"images_variation" => $images_variation,
"access" => ($this->diafan->configmodules('where_access_element', 'clauses') || $this->diafan->configmodules('where_access_cat', 'clauses') ? $this->diafan->_users->role_id : 0),
"time" => $time
);
if (! $result = $this->diafan->_cache->get($cache_meta, "clauses"))
{
$result["rows"] = DB::query_range_fetch_all(
"SELECT e.id, e.[name], e.[anons], e.created, e.timeedit, e.site_id FROM {clauses} AS e"
." INNER JOIN {clauses_rel} AS r ON e.id=r.rel_element_id AND r.element_id=%d"
.($this->diafan->configmodules("rel_two_sided") ? " OR e.id=r.element_id AND r.rel_element_id=".$this->diafan->_route->show : '')
.($this->diafan->configmodules('where_access_element', 'clauses') ? " LEFT JOIN {access} AS a ON a.element_id=e.id AND a.module_name='clauses' AND a.element_type='element'" : "")
." WHERE e.[act]='1' AND e.trash='0' AND e.created<%d"
." AND e.date_start<=%d AND (e.date_finish=0 OR e.date_finish>=%d)"
.($this->diafan->configmodules('where_access_element', 'clauses') ? " AND (e.access='0' OR e.access='1' AND a.role_id=".$this->diafan->_users->role_id.")" : '')
." GROUP BY e.id"
." ORDER BY e.sort DESC",
$this->diafan->_route->show, $time, $time, $time, 0, $count
);
$this->elements($result["rows"], array("count" => $images, "variation" => $images_variation));
$this->diafan->_cache->save($result, $cache_meta, "clauses");
}
foreach ($result["rows"] as &$row)
{
$this->prepare_data_element($row);
}
foreach ($result["rows"] as &$row)
{
$this->format_data_element($row);
}
// это то, что добавили
foreach ($result["rows"] as $key => $r_w)
$result["rows"][$key]["counter"] = $this->get_counter_view($r_w["id"]);
return $result;
}
М-да. Если у кого-нибудь не получилось (а данный код я проверил - работает), то не забудьте в настройках модуля отметить следующие пункты, а то наверняка будите думать, что приведенный код - ошибочный. См. картинку.
Ну, как-то так. Надеюсь принцип понятен. Успехов, коллеги. -
-
Поблагодарили: Евгений (mbytez), Михаил (ZzzBep)
-
-
-
30 сентября 2016 г.
-
ВИТАЛИЙ (NVGPRO), огромное спасибо за то что подробно расписали установку кода. .
-
-
-
-
15 октября 2024 г.
-
А как для тегов вывести кол-во просмотров, если статьи обьеденены тегом и имеют свой список ?
-
-
-
-
15 октября 2024 г.
-
Можно получить список id элементов, прикрепленных к тегу из {tags} далее по id получить количество просмотров каждой статьи {.'$module_name'._counter}. По сути одним sql запросом и можно вывести куда хочется.
Прописать можно в tags.inc.php как отдельную функцию. -
-
-
Новости
-
Вчера, 09:47
-
В преддверии 2025 года была выпущена сборка 7.2.5, которая не приносит радикальных изменений в функциональности, но способствует повышению стабильности работы системы и расширению возможностей облачного сервиса для создания сайтов.
-
18 июня 2024 г.
-
В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
-
24 апреля 2024 г.
-
В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
Блоги
-
24.04.2024
-
Выпустили новую сборку DIAFAN.CMS 7.1.4.
Блоги
-
12.01.2024
-
В данном руководстве познакомим вас с панелью управления DIAFAN.CMS