Как сделать генератор id страниц в dle

Sinoid
Как сделать вывод статистики общего количества пользователей по каждому значению доп. поля?
Вчера, 20:33
-
в каждый
пару ключ+значение массива $resultArray[] ? Если примерно как ниже, то не знаю, будут ли такие пары без ошибок влезать в html:
+
>
?>
3. Напиши пжл весь country.php ещё раз со всеми изменениями и с кэшированием.
rewenas | Как сделать вывод статистики общего коли . 18

rewenas
Как сделать вывод статистики общего количества пользователей по каждому значению доп. поля?
Вчера, 18:01
Сразу хочу сказать я в этом деле самоучка. Так что могу что то не так понимать и реализовывать
rewenas | Как сделать вывод статистики общего коли . 18

rewenas
Как сделать вывод статистики общего количества пользователей по каждому значению доп. поля?
Вчера, 17:59
1 Если тебе нужно вывести из $iso_countries массива только ключи то:
$keys = array_keys($iso_countries);
2 В смысле переопределять? Его никто даже не трогал. Или я тебя просто не понимаю. Я всего лишь думал что инпутом у тебя пользователи выбирают страну :в следствие чего у тебя в столбец land таблицы dle_users заноситься двухбуквенный код стран.
Ещё сделал выбор страны проживания, который заносится скриптом в стандартный DLE-тег
Поэтому этим кодом:
if (isset($iso_countries[$country])) { $country_name = $iso_countries[$country]; $tpl->set('{land>', $country_name); > else { $tpl->set('{land>', 'Код страны не найден'); >
Заменил этот двухбуквенный код на название страны
3 Тогда тебе нужно:
$result = $db->query("SELECT land, COUNT(*) AS user_count FROM " . USERPREFIX . "_users WHERE land != '' GROUP BY land"); $resultArray = array(); while ($row = $result->fetch_assoc()) { $country = $row['land']; $user_count = $row['user_count']; $country_counts[$country] = $user_count; > foreach ($country_counts as $country => $user_count) { $resultArray[] = array( 'Страна' => $country, 'Количество пользователей' => $user_count ); >
Результат запроса сохраняется в переменной $result. Далее создается пустой массив для хранения данных $resultArray = array(); И далее внутри цикла foreach в этот массив записывается каждый элемент массива $country_counts в виде массива с ключами страна и количество пользователей. Наверное это то что тебе как раз надо
Sinoid | Как сделать вывод статистики общего коли . 18

Sinoid
Как сделать вывод статистики общего количества пользователей по каждому значению доп. поля?
Вчера, 16:53
rewenas, Спасибо. Но:
1. $iso_countries будет содержать только коды. Названия стран потом будет выводить скрипт.
2. нельзя переопределять. Он мне нужен сам по себе как доп. поле каждого юзера. Туда заносится выбор страны юзером и оттуда отображается страна и флаг рядом с аватаром юзера в его комментах и в профиле.
3. На выходе из PHP мне нужен только сортированный (или нет) массив ненулевых количеств юзеров по каждой стране. Далее этот массив будет обрабатываться скриптом через библиотеку Chart.js , чтобы выводить диаграмму по всем странам. Bootstrap не использую. Про графическое представление списка на странице статов можешь не думать. Лучше сделай комментарии в коде PHP или здесь, что там происходит хотя бы в основной логике алгоритма.
rewenas | Как сделать вывод статистики общего коли . 18

rewenas
Как сделать вывод статистики общего количества пользователей по каждому значению доп. поля?
Вчера, 16:21
1 Создать в engine/data/ конфигурационный файл country-configuration.php с массивом ключей, представляющими коды стран и их значения.
"Андорра", 'AE' => "Объединенные Арабские Эмираты", 'AF' => "Афганистан", // Здесь надо добавить все оставшиеся 245 стран из нужных 249. Их очень много и добавлять очень долго, я не стал 'ZW' => "Зимбабве", ); ?>
2 Создать через систему плагинов или просто так в engine/modules/ файл с названием country.php
include_once ENGINE_DIR . "/data/country-configuration.php"; $tpl->load_template('users-country.tpl'); $tpl->result['users-country'] = dle_cache( "users-country_", $tpl->result['users-country'], true); if (!$tpl->result['users-country']) { $result = $db->query("SELECT land, COUNT(*) AS user_count FROM " . USERPREFIX . "_users WHERE land != '' GROUP BY land"); $country_counts = array(); while( $row = $db->get_row($result) ) { $country = $row['land']; $user_count = $row['user_count']; if (isset($iso_countries[$country])) { $country_name = $iso_countries[$country]; $tpl->set('{land>', $country_name); > else { $tpl->set('{land>', 'Код страны не найден'); > $tpl->set('{user-count>', $user_count); $tpl->compile('users-country'); > $tpl->clear(); create_cache( "users-country_", $tpl->result['users-country'], true ); > echo $tpl->result['users-country']; ?>
3 В папке вашего шаблона создать новый users-country.tpl файл. ( Стили в нем написаны просто для примера, их необходимо перенести в свой CSS файл вашего шаблона. Можно их изменять или добавлять новые, делая оформление на ваш вкус и цвет.)
4 В шаблоне stats.tpl вставить строку подключения {include file=»/engine/modules/country.php»>
rewenas | Как сделать вывод статистики общего коли . 18

rewenas
Как сделать вывод статистики общего количества пользователей по каждому значению доп. поля?
Вчера, 01:51
Не знаю насколько конечно это правильно, но я вижу это в голове у себе немного по другому. Завтра постараюсь реализовать
Sinoid | Как сделать вывод статистики общего коли . 18

Sinoid
Как сделать вывод статистики общего количества пользователей по каждому значению доп. поля?
Вчера, 01:11
rewenas, Понятно, что в статистику нет смысла выводить страны, которые никто не выбрал. Но ожидаю, что за несколько месяцев работы моего глобального научного сайта наберутся юзеры из около 60-80 стран. Всё равно много переменных выводить нужно. Допустим, внутри PHP считаем и формируем теги только тех стран zz, где > 0, заносим их в массив, сортируем по убыванию, а на страницу статистики выдаём список рейтинга из пар zz: . Как это всё реализовать в PHP?
rewenas | Как сделать вывод статистики общего коли . 18

rewenas
Как сделать вывод статистики общего количества пользователей по каждому значению доп. поля?
Вчера, 00:32
Можно например вывести только те страны что пользователи отметили у себя и посчитать в них суммарное количество пользователей. Причем сделать это отдельно подключаемым шаблоном, который отдельной строкой можно подключить в шаблоне статистики.
rewenas | Как сделать вывод статистики общего коли . 18

rewenas
Как сделать вывод статистики общего количества пользователей по каждому значению доп. поля?
Вчера, 00:30
Sinoid | Как сделать вывод статистики общего коли . 18

Sinoid
Как сделать вывод статистики общего количества пользователей по каждому значению доп. поля?
18-11-2023, 21:30
rewenas, А что делать? Есть какое-то другое решение. Ну и что, это лишь временные переменные в виде тегов.
- Sign In with Apple для DLE 14 2
- Модуль парсер ссылки с донора и з… 0
- Модификация аватарок DLE 16.1 27
- Модуль — Парсер статей и интеграц… 0
- Добавить поддержку для … 4
- Как обрезать название статьи 1
- Скрипт автозаполнения полей 3
- Парсер/граббер или конвертация БД 1
- Добавление дополнительного функци… 1
- Реализовать адекватную загрузку а… 4
- Запоминание открытой вкладки и со… 0
- Авторизация пользователей через Т… 0
- GeoIP — показ информации в зависи… 0
- Push-уведомление через OneSignal.… 0
- Giphy for comments (TinyMCE) 4
- Множественные опросы — модуль Mul… 0
- Расширенные закладки 0
- Расширение возможностей аккаунта … 0
- ChatGPT Driver 2
- Country Filter 0
Вопросы без ответов
- Как сделать вывод статистики обще . 18
- Как сделать в кратком содержании . 2
- Бан пользователя через SQL запрос . 5
- Генератор QR, что не так с кодом? 2
- Как отцентровать шаблон Default п . 6
- Как добавить к изображениям в ста . 0
- Помогите решить проблему создания . 8
- Не грузит с много фото (gallery) . 4
- Страна регион город для dle ? 0
- Как сделаь редирект страниц с alt . 1
DLE-Faker — модуль для заполнения БД тестовыми данными
Зачастую при разработке нового модуля или функционала для DataLife Engine необходимы испытания на реальных или приближенных к реальным, данных. Вот в такие моменты и пригодится модуль DLE-Faker.
Назначение и особенности
- Лёгкий в использовании. Работает на основе php-класса faker.
- Наполняет БД и структуру сайта приближенными к реальности, данными. Новости разного размера, с картинками, загруженными на сайт, вставленными в текст новостей.
- Добавляет пользователей, при необходимоcти, и загружает для них аватарки на сайт.
Требования к установке
Установка
- Скачать актуальную версию DLE-Faker
- Распаковать содержимое папки upload в корень сайта, запустить faker_install.php и следовать инструкциям.
Использование
Вся работа с модулем сводится к настройке необходимых параметров формы.

- Количество генерируемых новостей.
- Диапазон дат публикации.
- Диапазон длины заголовка новости
- Диапазон длины текста краткой и полной новости.
- Количество, диапазон размеров и тематику картинок, добавляемых в новость.
- Источник для автора новости (из БД или генерация нового автора).
- Категорию новости.

На этом пока всё, надеюсь модуль будет полезен не только мне. Жду ваших отзывов!
Похожие материалы
Комментарии
Добавить комментарий
Комментировать могут только зарегистрированные пользователи
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Облако тегов
модуль 32 jQuery 18 CSS 12 Free 12 вёрстка 12 шаблоны 11 block.pro 11 мелочи для DLE 11 related-news 1 Ддос 1 userbox 1 easylike 1 ajax 1 html5 1 скидка 1 less 1 инструкция 1 dle10.1 1 SmartImages 1 переводчик 1 английская версия 1 blockpro3 1 сервисы 1 htaccsess 1 advanced top 1 лайки 1 QR-codes 1 бетатест 1 дизайн 1 logickboard 1 книги 1 bbcode 1 мои друзья 1 share42 1 автокомпиляция 1 постраничная навигация 1 добавление новостей 1 github 1 хостинг 1 madison 1 карты 1 cookies 1 editrating 1 закруглённые углы 1 icomm 1 Asset 1 rss comments 1 dle 9.7 1 uniform 1 Futurico 1 custom 1 адаптация шаблонов 1 статистика 1 blockpro 3 showstat 2 dle-faq.pro 2 TwoColors 2 подсветка 2 dle 9.8 3 новости в 2 колонки 3 сниппеты 3 dle 10.0 3 обновление сайта 3 оптимизация 2 Turnion 4 новости 4 дополнительные поля 4 полезное 4 вывод новостей 4 платное 5 оформление коментариев 5 хак 5 оформление новостей 7 forum 2 мысли вслух 2 индекс сортировки 1 всплывающая подсказка 1 мультиязычность 1 панель авторизации 1 сайт поддержки 1 домен 1 gzip 1 AdequateBBcode 1 комментарии 1 phpbb3 1 fake users sarch 1 форум 2 социальные закладки 2 javascript 2 yandex 2 последние комментарии 2 sublime text 2 плагины 2 загрузка страниц 2 оформление блоков сайта 2 Полезные программы 2 защита 1
Общая категория faq

2 В смысле переопределять? Его никто даже не трогал. Или я тебя просто не понимаю. Я всего лишь думал что инпутом у тебя пользователи выбирают страну :в следствие чего у тебя в столбец land таблицы dle_users заноситься двухбуквенный код стран.
Ещё сделал выбор страны проживания, который заносится скриптом в стандартный DLE-тег в виде кода 249 стран списка ISO 3166-1 alpha-2
Поэтому этим кодом:
if (isset($iso_countries[$country])) { $country_name = $iso_countries[$country]; $tpl->set('{land>', $country_name); > else { $tpl->set('{land>', 'Код страны не найден'); >
Заменил этот двухбуквенный код на название страны
3 Тогда тебе нужно:
$result = $db->query("SELECT land, COUNT(*) AS user_count FROM " . USERPREFIX . "_users WHERE land != '' GROUP BY land"); $resultArray = array(); while ($row = $result->fetch_assoc()) { $country = $row['land']; $user_count = $row['user_count']; $country_counts[$country] = $user_count; > foreach ($country_counts as $country => $user_count) { $resultArray[] = array( 'Страна' => $country, 'Количество пользователей' => $user_count ); >
Результат запроса сохраняется в переменной $result. Далее создается пустой массив для хранения данных $resultArray = array(); И далее внутри цикла foreach в этот массив записывается каждый элемент массива $country_counts в виде массива с ключами страна и количество пользователей. Наверное это то что тебе как раз надо
Sinoid | Как сделать вывод статистики общего коли . 18

Sinoid
Как сделать вывод статистики общего количества пользователей по каждому значению доп. поля?
Вчера, 16:53
rewenas, Спасибо. Но:
1. $iso_countries будет содержать только коды. Названия стран потом будет выводить скрипт.
2. нельзя переопределять. Он мне нужен сам по себе как доп. поле каждого юзера. Туда заносится выбор страны юзером и оттуда отображается страна и флаг рядом с аватаром юзера в его комментах и в профиле.
3. На выходе из PHP мне нужен только сортированный (или нет) массив ненулевых количеств юзеров по каждой стране. Далее этот массив будет обрабатываться скриптом через библиотеку Chart.js , чтобы выводить диаграмму по всем странам. Bootstrap не использую. Про графическое представление списка на странице статов можешь не думать. Лучше сделай комментарии в коде PHP или здесь, что там происходит хотя бы в основной логике алгоритма.
rewenas | Как сделать вывод статистики общего коли . 18

rewenas
Как сделать вывод статистики общего количества пользователей по каждому значению доп. поля?
Вчера, 16:21
1 Создать в engine/data/ конфигурационный файл country-configuration.php с массивом ключей, представляющими коды стран и их значения.
"Андорра", 'AE' => "Объединенные Арабские Эмираты", 'AF' => "Афганистан", // Здесь надо добавить все оставшиеся 245 стран из нужных 249. Их очень много и добавлять очень долго, я не стал 'ZW' => "Зимбабве", ); ?>
2 Создать через систему плагинов или просто так в engine/modules/ файл с названием country.php
include_once ENGINE_DIR . "/data/country-configuration.php"; $tpl->load_template('users-country.tpl'); $tpl->result['users-country'] = dle_cache( "users-country_", $tpl->result['users-country'], true); if (!$tpl->result['users-country']) { $result = $db->query("SELECT land, COUNT(*) AS user_count FROM " . USERPREFIX . "_users WHERE land != '' GROUP BY land"); $country_counts = array(); while( $row = $db->get_row($result) ) { $country = $row['land']; $user_count = $row['user_count']; if (isset($iso_countries[$country])) { $country_name = $iso_countries[$country]; $tpl->set('{land>', $country_name); > else { $tpl->set('{land>', 'Код страны не найден'); > $tpl->set('{user-count>', $user_count); $tpl->compile('users-country'); > $tpl->clear(); create_cache( "users-country_", $tpl->result['users-country'], true ); > echo $tpl->result['users-country']; ?>
3 В папке вашего шаблона создать новый users-country.tpl файл. ( Стили в нем написаны просто для примера, их необходимо перенести в свой CSS файл вашего шаблона. Можно их изменять или добавлять новые, делая оформление на ваш вкус и цвет.)
4 В шаблоне stats.tpl вставить строку подключения {include file=»/engine/modules/country.php»>
rewenas | Как сделать вывод статистики общего коли . 18

rewenas
Как сделать вывод статистики общего количества пользователей по каждому значению доп. поля?
Вчера, 01:51
Не знаю насколько конечно это правильно, но я вижу это в голове у себе немного по другому. Завтра постараюсь реализовать
Sinoid | Как сделать вывод статистики общего коли . 18

Sinoid
Как сделать вывод статистики общего количества пользователей по каждому значению доп. поля?
Вчера, 01:11
rewenas, Понятно, что в статистику нет смысла выводить страны, которые никто не выбрал. Но ожидаю, что за несколько месяцев работы моего глобального научного сайта наберутся юзеры из около 60-80 стран. Всё равно много переменных выводить нужно. Допустим, внутри PHP считаем и формируем теги только тех стран zz, где > 0, заносим их в массив, сортируем по убыванию, а на страницу статистики выдаём список рейтинга из пар zz: . Как это всё реализовать в PHP?
rewenas | Как сделать вывод статистики общего коли . 18

rewenas
Как сделать вывод статистики общего количества пользователей по каждому значению доп. поля?
Вчера, 00:32
Можно например вывести только те страны что пользователи отметили у себя и посчитать в них суммарное количество пользователей. Причем сделать это отдельно подключаемым шаблоном, который отдельной строкой можно подключить в шаблоне статистики.
rewenas | Как сделать вывод статистики общего коли . 18

rewenas
Как сделать вывод статистики общего количества пользователей по каждому значению доп. поля?
Вчера, 00:30
Sinoid | Как сделать вывод статистики общего коли . 18

Sinoid
Как сделать вывод статистики общего количества пользователей по каждому значению доп. поля?
18-11-2023, 21:30
rewenas, А что делать? Есть какое-то другое решение. Ну и что, это лишь временные переменные в виде тегов.
- Sign In with Apple для DLE 14 2
- Модуль парсер ссылки с донора и з… 0
- Модификация аватарок DLE 16.1 27
- Модуль — Парсер статей и интеграц… 0
- Добавить поддержку для … 4
- Как обрезать название статьи 1
- Скрипт автозаполнения полей 3
- Парсер/граббер или конвертация БД 1
- Добавление дополнительного функци… 1
- Реализовать адекватную загрузку а… 4
- Запоминание открытой вкладки и со… 0
- Авторизация пользователей через Т… 0
- GeoIP — показ информации в зависи… 0
- Push-уведомление через OneSignal.… 0
- Giphy for comments (TinyMCE) 4
- Множественные опросы — модуль Mul… 0
- Расширенные закладки 0
- Расширение возможностей аккаунта … 0
- ChatGPT Driver 2
- Country Filter 0
Вопросы без ответов
- Как сделать вывод статистики обще . 18
- Как сделать в кратком содержании . 2
- Бан пользователя через SQL запрос . 5
- Генератор QR, что не так с кодом? 2
- Как отцентровать шаблон Default п . 6
- Как добавить к изображениям в ста . 0
- Помогите решить проблему создания . 8
- Не грузит с много фото (gallery) . 4
- Страна регион город для dle ? 0
- Как сделаь редирект страниц с alt . 1
BlockPro — модуль профессионального вывода новостей для DLE
Рад представить вам принципиально новую версию одного из лучших модулей для DLE.
Модуль работает в два раза быстрее, чем < custom >, а его возможности и гибкость гораздо шире чем у Block.Pro.3.
Требования к системе
Версия DLE: 10.2 и выше (Поддержка ранних версий пока не планируется.)
Поддерживаемая кодировка: UTF-8
Версия php: 5.3 и выше
Автор: ПафНутиЙ
Максимальная цена: 840р (про скидки ниже).
Почему принципиально новая версия?
Потому, что модуль имеет ряд серьёзных отличий не только от предыдущей версии, но и вообще от всего, что делалось ранее.
— Собственный шаблонизатор. BlockPro использует шаблонизатор fenom , который работает быстрее встроенного, при этом имеет на порядок больше возможностей.
— Собственный класс для работы с БД. Класс SafeMySQL позволяет избавиться от лишних проверок данных, поэтому код модуля выглядит более лаконичным, а работа безопасна.
— Продуманная AJAX навигация. Можно использовать неограниченное число блоков с новостями, имеющими навигацию на любой странице, при этом каждый блок не будет зависеть от остальных, а страницы будут кешироваться. Для удобства использования есть 4 варианта отображения навигации, а изменить внешний вид кнопок навигации очень легко средствами CSS.
Возможности BlockPro
Те, кто знаком с Block.Pro.3 знают насколько удобен в использовании этот модуль. Так вот новая версия BlockPro стала ещё удобнее, а гибкость вывода контента в шаблоне на сегодняшний день не имеет аналогов.
Админка
Админка модуля выполнена по уже хорошо зарекомендовавшей себя схеме, так что у вас не будет проблем с ней на любых вменяемых устройствах.
— Генератор строк подключения в админке. С помощью генератора, учитывающего особенности именно вашего сайта, можно легко составить нужную строку подключения и сразу же посмотреть результат вывода.

— Помощники для правильного составления тегов вывода картинок, категорий и обрезки текста. Сделаны специально для облегчения понимания синтаксиса написания тегов, т.к. по началу не всем легко освоиться с нововведениями.


Вывод контента
— Картинки можно брать из любого источника контента новости в любом количестве и изменять любую из них как угодно. Например можно создать несколько вариантов миниатюр одной картинки для слайдера. При этом даже если картинка лежит в допполе в виде ссылки — можно уменьшить и её . Кстати, страница с примерами постоянно пополняется и по сути будет представлять из себя готовые решения по различным вариантам вывода новостей.
— Фильтрация новостей по значению дополнительных полей. Новости можно фильтровать по значению одного или нескольких дополнительных полей, при этом можно использовать логику «И» (совпадение нескольких значений) или «ИЛИ» (совпадение любого из значений).
— Показ новостей, находящихся на модерации.
— Вывод или игнорирование новостей из подкатегорий. При этом если используется диапазон значений будут обработаны подкатегории и внутри категорий, попавших в диапазон.
— Вывод аватара автора новости без дополнительных запросов. При этом если вывод не включен — лишние данные из БД не запрашиваются.
— Сортировка новостей:
1. Стандартный топ dle
2. Хит (рейтинг*100 + кол-во комментариев*10 + кол-во просмотров)
3. По дате добавления
4. По рейтингу
5. По количеству просмотров
6. По количеству комментариев
7. В случайном порядке
8. В алфавитном порядке
9. Без сортировки (используется, если нужен вывод похожих новостей)
В следующих обновлениях уже запланированы дополнительные сортировки.
— Фильтрация новостей:
1. По авторам
2. По категориям
3. По ID новостей
4. По тегам новостей
5. Новости на модерации
6. По заполненным дополнительным полям
7. По значениям дополнительных полей
8. Фиксированные новости (только фиксированные, только обычные или все подряд)
В следующих обновлениях уже запланированы дополнительные фильтрации, в т.ч. по нестандартным полям.
— Подключение одной строкой в любой шаблон сайта. Как и раньше достаточно одной строки без правок движка!
— Вывод похожих новостей.
— Кеширование каждого блока с возможностью установки времени жизни или отключения кеша для каждого блока. Так же кешируются и блоки, показываемые через ajax.
— Вывод новостей за заданный интервал времени (к примеру новости, добавленные за прошлую неделю)
Установка:
1. Распаковать содержимое папки upload из архива в корень сайта. Имейте ввиду, что необходимо предварительно переименовать папку upload/THEME в соответствии с именем вашего шаблона сайта.
2. Запустить установщик по адресу ваш_сайт/blockpro_install.php и следовать инструкциям.
3. По окончании установки сгенерировать строку подключения модуля, посмотреть полученный результат и, если устроит, вставить строку подключения в нужное место шаблона сайта.
Строка подключения и теги шаблона
Детальная информация о строке подключения, тегах и модификаторах модуля расположена на странице документации к модулю и при появлении нового функционала добавляются соответствующие пункты в документацию.
Про системные требования
Как вы могли заметить, системные требования к модулю так же отличаются от предыдущего.
Модуль с большой вероятностью будет работать и на DLE 9.6 с кодировкой windows-1251, но я не гарантирую корректную работу, да и поддерживать столь старые системы не вижу смысла.
Решение об отказе от 1251 и окончательном переходе на UTF-8 было принято уже давно и переубедить меня в этом вопросе не удастся, считайте это принципиальным моментом.
Однако по заявлениям бетатестеров модуль прекрасно себя чувствует на боевом сайте 10.1 c кодировкой windows-1251.
Небольшой бонус
Всем, кто участвовал в бетатесте модуля я дам купон на 30% скидку.
А тем, кто успеет, вот список из 10 купонов на 15% скидку: