ARGOS multigaming cms

Продължавам да си играя с Админ панела. Добавих функция, която парсва фийда на fakti.bg (известния български сайт за новини).
Функцията проверява дали сте с български език или с друг, ако сте с друг превеждам новиние с rss app (https://rss.app/feeds/5XJAdYWRlICLBeys.xml) от bg на en. (Не мога да дам гаранция за този сайт, но има безплатен абонамент и засега се вписва добре като преводач, но да видим линка колко време ще е активен)
Функцията работи с php fast cache и кешира новините за 1 час в хранилището. След 1 час ще ги извлече отново (опресни)
Бутона за новините се намира до заглавката най-горе в ляво и когато се кликне, се отваря бокс с всички новини, а бутона гладко пада по-надолу, ако го кликнете отново бокса ще се скрие.

Целта е админ панела да е наистина полезен и всичко да е вътре, за да се чувствате добре докато поддържате сайта си или сайтовете си (ако имате няколко)

Снимка:
cxQtL9e.png
 
12.9:

Нови ъпдейти:
- Пълно аяксицифиране на админ панела (КРАЙ с досадните рефрешвания, за да видите актуално съдържание след редакциите)
- Фикснат бъг с логаута в админ панела. (Най-горе в падащото меню в дясно)
- Добавени са RSS емисии в админ панела, за да следите новините около света
- Добавени са нови custom helper-и в mustache (includes/Mustache_Helpers.php)
- Добавено е ново мини сайд меню в админ панела и опция за запомняне на изобра (свито или разгърнато)

По-стари ъпдейти свързани с 12.9:
- Оправен е цвета 128 128 128 (Grey) на 0 64 0 (Dark Grey) при функцията за но аватарите с цвят по първатта буква. Иначе не се четеше текста, ако съвпаднат.
- Добавена е нова функция sql_escape (може да потрябва някой път за нещо не-толкова важно), ползва $pdo->quote(), обвивка.
- Добавено е балонче в дясно в админ панела с цел по-бърз достъп до къстъм страниците от екстеншъните.
- Нови промени в помощната функция за страницирането с цел по-добро прихващане на url сегменти.
- Добавен е кеш в translate() функцията с цел по-бързо зареждане на системата.
- Добавени са phpDOC коментари в App/Entity.
- 3 библиотеки бяха ъпдейтнати през composer.
- В PW Manager-a в админ панела е добавена js функция през бутон за генериране на случайни силни пароли.
- Изкарано е потребителското АЙПИ + Флаг на държава в индекс страницата на админ панела (за ваше улеснение)
- Махнати са IP Api-тата и са заменени от нова локална библиотека + GeoIP Maxmind free базаданни.
- Фикснат е бъг с но аватарите, не се е изобразявала кирилицата, вече е оправено.
- Добавен е нов шрифт за каптчата и за но-аватарите.
- Изцяло нова логика за бележките в админ панела. (Вече пътя към тях е с уникален md5 в имената им)
- Фиксната е грешката в индекса в админ панела ("Uncaught TypeError: google.visualization.DataTable is not a constructor(…)) - От нея не е могло да скрива правилно страниците при къстъм достъпа (само в индекса). Вече е ОК!
- Добавен е нов слайдър с времето, махната е старата accuweather библиотека, която товареше...
- Добавена е нова функция getCityCoordinates($country_code), връща longitude/latitude и име на столица.
- Добавена е нова функция base_dir_url(), чрез която ще фикснем това Аргос да може да се инсталира в под папка. (Има промени по темплейтите), Сменя се само мета тага с този:
Код:
<base href="{{base_dir_url}}/">
най-горе в header.html
- Промени в readme.

Общо взето 12.9 е готова, остава да завърша и 13.0. Където ще има изцяло нов дефолт стил и индентация на кода.
След което мисля да спра с ъпдейтите по ядрото, докато не премина на PHP 8.4.
В същото време, ако някой закупи системата може да открие нещо и аз ще го оправя бързо, ако се открие някакъв бъг или разминаване!

Това е една много стабилна версия на ядрото, защото почти всичко е преминало през ръцете ми.
За връзка с мен:
Discord: .pok4
Цена на ядрото: 140 лв.
 
Имам новина :)
Както знаете в екстеншъните не можеше да се ползват global темплейтните дефиниции от includes/global_vars.php, трябваше да се предефинират с php. Същото се отнасяше и за новите helper-и.
Е, новината е такава, че вече може да си ги ползвате в екстеншънските темплейти без никакъв проблем. Всичко работи повече от добре.
С бота си поиграхме малко и го напаснахме така, че да не мърда (haha)
Също така добавих още Lambda helper-и, и те са:
Код:
            // Base64 encode
            'base64' => fn($text) => base64_encode($text),
            
            // Time ago helper
            'timeago' => fn($timestamp) => timeago($timestamp),

Днес бях зает, но тези дни ще направя още някои малки промени по админ панела.
Засега всичко е ТОК И ЖИЦА!
 
Здравейте,
Разцепих js_libs.html от admin/ папката. Беше много голям и беше пълен с Js код. Преместил съм всеки код по админските страници, които се отнасят за него.
Оставил съм само базов код там и малко от конфигурацията...
Мисля, че така е по-добре.

Също така вече в екстеншъните може да ползвате всички lang_ дефиниции без предефиниране (както написах по-горе, може да ползвате глобалните темплейт дефиниции и helper-ите) Тоест - $lang_sys, $global_vars и $helpers са прекарани през $this->m (рендера на mustache в екстеншъните)
Мога да предам и $event_dispatcher-a, но не виждам смисъл. Не знам и как точно ще работи, за това се отказах от това... Писал съм го TODO, ако някога ми се наложи да прекарам темплейтна дефиниция от папката templates/ в екстеншън може и да пробвам... Просто на този етап съм объркан и не мога да преценя дали си струва. За това ако ми се наложи ще го активирам и него...

Сега пак ще трябва да тествам админ панела, за да съм сигурен, че всичко работи. Ще съобщя в следващ пост дали всичко е ОК!
 
Завърших и lambda helper-ите, добавени са още:
Код:
            // Format timestamp as DD-MM-YYYY
            'date_dmy' => fn($ts) => date('d-m-Y', (int)$ts),

            // Remove non-alphanumeric characters
            'alphanumeric' => fn($text) => preg_replace('/[^a-zA-Z0-9]+/', '', $text),

            // Convert URLs to clickable links
            'linkify' => fn($text) => preg_replace('~(https?://[^\s]+)~', '<a href="$1" target="_blank">$1</a>', $text),

            // JSON encode
            'json_encode' => fn($text) => json_encode($text, JSON_UNESCAPED_UNICODE),

            // JSON decode (returns value only if scalar)
            'json_decode' => fn($text) => is_scalar(json_decode($text, true)) ? json_decode($text, true) : '',

            // Is only letters
            'is_alpha' => fn($text) => ctype_alpha($text) ? 'true' : 'false',

            // Is only alphanumeric
            'is_alnum' => fn($text) => ctype_alnum($text) ? 'true' : 'false',

            // Is empty string
            'is_empty' => fn($text) => trim($text) === '' ? 'true' : 'false',

            // MD5 hash
            'md5' => fn($text) => md5($text),

            // SHA1 hash
            'sha1' => fn($text) => sha1($text),

            // Lowercase
            'lower' => fn($text) => mb_strtolower($text, 'UTF-8'),

            // Uppercase
            'upper' => fn($text) => mb_strtoupper($text, 'UTF-8'),

            // Capitalize first letter
            'ucfirst' => fn($text) => mb_strtoupper(mb_substr($text, 0, 1, 'UTF-8'), 'UTF-8') . mb_substr($text, 1, null, 'UTF-8'),

            // Capitalize each word
            'ucwords' => fn($text) => mb_convert_case($text, MB_CASE_TITLE, 'UTF-8'),

            // Is valid email
            'is_email' => fn($text) => filter_var($text, FILTER_VALIDATE_EMAIL) ? 'true' : 'false',

            // Is numeric
            'is_numeric' => fn($text) => is_numeric($text) ? 'true' : 'false',

            // Is valid URL
            'is_url' => fn($text) => filter_var($text, FILTER_VALIDATE_URL) ? 'true' : 'false',

Тях може да ги ползвате по темплейти и екстеншъни. Полезни са много. Ето го и пълния списък:
Код:
        return [
            // Escape HTML
            'escape' => fn($text) => htmlspecialchars($text, ENT_QUOTES, 'UTF-8'),

            // Convert newlines to <br />
            'nl2br' => fn($text) => nl2br($text),

            // Truncate to 100 characters with ellipsis
            'truncate' => fn($text) => mb_strimwidth($text, 0, 100, '...'),

            // String length
            'length' => fn($text) => (string)mb_strlen($text, 'UTF-8'),

            // Strip HTML tags
            'strip_tags' => fn($text) => strip_tags($text),

            // Trim whitespace
            'trim' => fn($text) => trim($text),

            // URL encoding
            'urlencode' => fn($text) => urlencode($text),

            // Raw URL encoding
            'rawurlencode' => fn($text) => rawurlencode($text),

            // Base64 encoding
            'base64' => fn($text) => base64_encode($text),

            // Human-readable "time ago"
            'timeago' => fn($timestamp) => timeago($timestamp),

            // Format timestamp as DD-MM-YYYY
            'date_dmy' => fn($ts) => date('d-m-Y', (int)$ts),

            // Remove non-alphanumeric characters
            'alphanumeric' => fn($text) => preg_replace('/[^a-zA-Z0-9]+/', '', $text),

            // Convert URLs to clickable links
            'linkify' => fn($text) => preg_replace('~(https?://[^\s]+)~', '<a href="$1" target="_blank">$1</a>', $text),

            // JSON encode
            'json_encode' => fn($text) => json_encode($text, JSON_UNESCAPED_UNICODE),

            // JSON decode (returns value only if scalar)
            'json_decode' => fn($text) => is_scalar(json_decode($text, true)) ? json_decode($text, true) : '',

            // Is only letters
            'is_alpha' => fn($text) => ctype_alpha($text) ? 'true' : 'false',

            // Is only alphanumeric
            'is_alnum' => fn($text) => ctype_alnum($text) ? 'true' : 'false',

            // Is empty string
            'is_empty' => fn($text) => trim($text) === '' ? 'true' : 'false',

            // MD5 hash
            'md5' => fn($text) => md5($text),

            // SHA1 hash
            'sha1' => fn($text) => sha1($text),

            // Lowercase
            'lower' => fn($text) => mb_strtolower($text, 'UTF-8'),

            // Uppercase
            'upper' => fn($text) => mb_strtoupper($text, 'UTF-8'),

            // Capitalize first letter
            'ucfirst' => fn($text) => mb_strtoupper(mb_substr($text, 0, 1, 'UTF-8'), 'UTF-8') . mb_substr($text, 1, null, 'UTF-8'),

            // Capitalize each word
            'ucwords' => fn($text) => mb_convert_case($text, MB_CASE_TITLE, 'UTF-8'),

            // Is valid email
            'is_email' => fn($text) => filter_var($text, FILTER_VALIDATE_EMAIL) ? 'true' : 'false',

            // Is numeric
            'is_numeric' => fn($text) => is_numeric($text) ? 'true' : 'false',

            // Is valid URL
            'is_url' => fn($text) => filter_var($text, FILTER_VALIDATE_URL) ? 'true' : 'false',
        ];
 
Покрай ъпдейтите, които направих вече не е нужно да предефинирате екстеншънските езикови файлове, пример:
Код:
              'ext_gmon_warning_vip_packages'=>$this->lang['ext_gmon_warning_vip_packages'],
              'ext_gmon_report_explain'=>$this->lang['ext_gmon_report_explain'],
              'ext_gmon_claim_explain'=>$this->lang['ext_gmon_claim_explain'],
              'ext_gmon_claim_explain2'=>$this->lang['ext_gmon_claim_explain2'],
              'ext_gmon_canceled'=>$this->lang['ext_gmon_canceled'],
              'ext_gmon_cancel'=>$this->lang['ext_gmon_cancel'],
              'ext_gmon_accept'=>$this->lang['ext_gmon_accept'],
              'ext_gmon_banned'=>$this->lang['ext_gmon_banned'],
              'ext_gmon_remove_ban'=>$this->lang['ext_gmon_remove_ban'],
              'ext_gmon_ban_server'=>$this->lang['ext_gmon_ban_server'],
              'ext_gmon_delete_server'=>$this->lang['ext_gmon_delete_server'],
              'ext_gmon_last_update'=>$this->lang['ext_gmon_last_update'],
              'ext_gmon_owner'=>$this->lang['ext_gmon_owner'],
Това вече е отживелица, защото с вкарването на $lang_sys автоматично ще могат да се викат в темплейтите и няма нужда да ги викате в екстеншъна. Директно си ги ползвате с mustache {{ext_gmon_owner}}. :)
Като ми остане повече време ще ъпдейтна темата как да пишем екстеншъни.
 
Последно редактирано:
НОВО!
Вкарана е нова функция: get_user_groups_by_id($user_id) - връща в масив групите в които дадения потребител членува + цвета им.
Добавен е нов Entity клас - Notification Manager, чрез него може да разпращате нотификации към потребителите, добавил съм му и транслейт функцията.
В екстеншъните:
Код:
  * // Send global notification
 * $this->notification->addNotification(0, 'test.', true);
 * // Send specific notification
 * $this->notification->addNotification(2, 'test.');
 * // Get user notifications by user_id and the second option is limit
 * $this->notification->getNotifications(2, 2);
 * // Get all global notifications (the integer is limit)
 * $this->notification->getGlobalNotifications(2);
 * // Get all notifications for user and global (the firs integer is userid and the second is limit)
 * $this->notification->getAllNotifications(2,2);
 * // Delete specific notification by notification_id
 * $this->notification->deleteNotification(1);
 * // Delete all notifications for user by user_id
 * $this->notification->clearUserNotifications(2);
 * // Get all notifications with pagination (user id, results per page, per side, get parameter name)
 * $this->notification->getAllNotificationsPaginated(2,2,3,'npage')['notifications']; //print the results within array
 * $this->notification->getAllNotificationsPaginated(2,2,3,'npage')['pagination']; //print pagination pages

Нотификейшън мениджъра е тестван от мен на phpbb 3.3.15 и работи отлично!
Работи с phpbb_notifications таблицата.
 
Последно редактирано:
Добавени са още глобални променливи:
Код:
    'user_email' => fn() => $phpBB->get_user_email(),
    'user_warnings' => fn() => $phpBB->get_user_warnings(),
    'user_regdate' => fn() => $phpBB->get_user_regdate(),

Добавена са и нови функции:
Код:
add_to_users_table($column_name,$column_type);
Пример:
Код:
add_to_users_table("price2","varchar(255)");
Защо ни е? Ами много просто, после може да се вземе с $user->data['price2']; през сесията.

Другата нова функция е:
Код:
update_users_table_column($user_id, $column_name, $value);
пример:
Код:
update_users_table_column(2, price2, 15);
Според примера, ъпдейтваме price2 колоната на user с потребителско айди 2 с 15. Това 15 може да са стойност в заредени кредити/пари.

Мисля, че това ще се впише идеално в екстеншъните.
 
Днес реших да тествам къстъм достъпа до определени страници с демо потребител. Да, достъпът се дава, но реално аякс заявките не работеха и дефакто потребителя не можеше да прави почти нищо. За това оправих функцията, която дава достъпа, така, че да работи. Също и бележките в хоум страницата не работеха. Всичко вече е оправено.
Също така съм разширил текстареата с бележките, че седеше свита, сега е колкото първия бокс от ляво на дясно.
Също така съм добавил и кои админи са онлайн в админ панела, демо: https://i.ibb.co/QFV6YZKB/image.png (показват се и потребителите с къстъм достъп)
Така винаги ще знаете кой е до 'вас'. :)
 
Нови 2 функции са добавени:
Код:
add_user_in_group($user_id,$group_id);
remove_user_from_group($user_id,$group_id);

с тях може да вкарвате и изкарвате хора от определени групи в phpbb3.
Знам, че phpbb има вградена функция, но реших да ги изпиша и отделно, за да са си във functions.php на системата + PHPDOC коментари и т.н.

Мисля, че вече всичко е ОК, остава да интегрирам темплейта само и това е... Повече не се сещам какво може да се направи. Ще ви държа в течение :)
 
Утре ще имам още малко работа, днес я довърших, а утре ще бъде интегрирано.
Става дума за възможност да викате аякс заявки директно от темплейта ви.
Трябва да достъпвате този url: И да създадете ajax.php в папката на вашия темплейт с подобно съдържание:
Код:
<?php
namespace Style;

class Style extends \App\Controllers\BaseController
{
    public function __construct()
    {
        parent::__construct();
    }

    public function Ajax()
    {
        if (is_ajax()) {
            if (isset($_POST['username'])) {
                echo $this->username;
            }

            if (isset($_POST['myform'])) {
                echo $this->myform();
            }
        }
    }

    public function myform()
    {
        return alert('success', $this->lang['lang_success']);
    }
}
Това е примерно съдържание, само да се ориентирате
Може да викате всичко от системата, функции, entity класове и т.н.

Другото е, че бота ми написа wrapper за Nette Utils, която и без това е в системата заради емейл библиотеката и ще го прасна в Entity папката. Полезен е, има доста неща...

Това ще е май последно..
 
Още малко:
- Оптимизации в get_user_ava функцията
- Добавен е ErrorHandler клас, който представя грешките в Аргос в по-четлив и стилизиран вид. (500 грешките)

Правя бекъп и спирам докато не завърша темплейта и не мина след това на PHP 8.4.
 
Снощи бота ми написа един jquery плъгин, който ще вградя заедно с новия дизайн.
Става дума за това: https://i.ibb.co/PqFkrGC/Screenshot-20250510-102828.png
Това ще е вид защита на админ панела ви. При първа визита ще ви иска отново админската парола, за да продължите. Вече ако 2 минути не сте били активни ще ви я поиска пак.
В админ панела има проверка за изключен javascript + redirect, но въпреки всичко отново може да бъде заобиколено през конзолата или хром / файърфокс екстеншън, но само от хора, които разбират.
За това аз ще го сложа, защото има много хора, които не разбират толкова, а ако имат достъп може да направят нещо нередно.
Давам пример: имате брат, сестра и си седите на лаптопа вкъщи и сте в админ панела, отивате за малко някъде, а лаптопът ви е отворен и сте в админ панела. Тогава мисля, че това ще е от полза, за да не пипат в него.
С 2 думи проверка за noobs.
Аз съм го тествал вече през телефона и работи повече от добре.

Също така ще добавя и нова темплейт дефиниция, а именно {{current_url}}, че в момента такава няма, а ще ми трябва за в бъдеще.

Ако някой има съвет за нещо, което да се добави, то нека пише в темата. :)
 
Последно редактирано:
Започнах да събирам в свободното време разни jquery библиотеки за новия дизайн. Back to top, Notify alerts, Tables, Confirmation и т.н.

С Бота направихме едно превю за системата, което ще постна тук, за да си знаете, а и да го индексират ботовете.
🎮 Какво представлява ArgosCMS?
- 🛠️ Аргос е мулти гейминг система за управление на съдържанието (CMS), насочена към хора, които искат да стартират гейминг сървъри (на която и да било игра) или блог, в който да пишат гейминг новини.
- 🧩 Аргос е разширяем, поддържа екстеншъни (добавки), които се активират от админ панела с 1 клик и се пишат също толкова лесно.
- 🌍 Поддържа вградени езици за превод: 🇧🇬 Български, 🇬🇧 Английски, 🇪🇸 Испански, 🇫🇷 Френски и 🇷🇺 Руски.
- 🎨 Поддържа стилове на база Bootstrap 3, 4 и 5 + jQuery 3.x, благодарение на Mustache темплейтния енджин. Смяната става с 1 клик от админ панела.

💻 На какъв програмен език е написана системата?
- 🧠 Ядрото на Argos е написано на PHP и е тествано до PHP 8.3. Подготвено е за работа с PHP 8.4.
- 🏗️ Изградена по MVC архитектура с къстъм рутиращ клас и Robot Autoloader от Nette, който кешира автоматично.
- 🧰 Използва библиотеки от GitHub: Nette Mail, IMAP, LGSL, phpFastCache, Pimple Container, Event Dispatcher, Env, MobileDetect, Html Minifier и др.

⚙️ Как се инсталира?
- 🧵 Аргос е интегриран с phpBB форумен софтуер. Той трябва да бъде инсталиран преди Argos.
- 🧑‍💻 Аргос използва ядрото и сесийната система на phpBB. Инсталаторът стартира при първо отваряне и инсталацията отнема секунди.

🧩 Какви екстеншъни (модули) са направени до момента?
- 📦 Общо 230 добавки.
- 🧙‍♂️ 45 за Mu Online: онлайн магазини, точки, инвентар, предмети и др.
- 🔫 Поддръжка за CS 1.6 и Half-Life. CS2 модулите са в разработка.
- 🌐 Общи екстеншъни: Steam/Discord логини, style switcher, RSS парсери, Google Translate с флагове, Facebook feed, auto save, логове, файлов мениджър, Welcome съобщения, Tickets система, e-mail абонаменти, Stripe/PayPal магазини, SEO модули и още!

📉 Защо само толкова малко сайтове?
- 📣 Липса на сериозна реклама. Системата е рекламирана в:
- https://amxx-bg.info/forum/viewtopic.php?t=11424
- https://web-tourist.net/threads/argos-multigaming-cms.131376/page-21#post-682584
- https://darksteam.net/threads/sell-argos-cms-mvc-logic-less.25638/page-9#post-221053

🧑‍💻 Кой я разработва?
- 👤 Разработва се от мен (pok4). Уча PHP отдавна и продължавам да уча чрез нови API-та и GPT.
- 🤖 GPT е като съ-разработчик и помага в съмнителни моменти – затова може да я наречете ArgosGPT 😂

💰 Цена на системата:
- 🧾 Ядро + default стил + няколко екстеншъна: **140 лв**
- 🧱 Интеграция на нов Bootstrap темплейт: **60 лв**
- 🧑‍💻 Изработка на нов екстеншън (1000 реда PHP код): **60 лв**
- JS/HTML/CSS е бонус – безплатно 🎁

🔄 Само за гейминг ли става?
- ❌ Не! С подходящи темплейти и екстеншъни може да се ползва и за други цели.
- 🕵️‍♂️ Има екстеншън, който скрива форума и го прави достъпен само за админи.

📖 Документация и демо:
- README (английски): https://argoscms.xyz/readme
- Live demo: https://argoscms.xyz

📬 Контакт:
- 💬 Discord: .pok4
- 💌 Плащане чрез: Easypay, Еконт/Спиди, банков превод

🎉 Enjoy life!


И като за финал, ето какво ще съдържа версия 13.0 (Final), но не завинаги, а за малко по-дълъг период от време. Защото имам в момента други ангажименти и може би зимата ще съм свободен за нови приключения и оптимизаци..
Е, ето каква ще е версия 13.0:
- Добавени са 2 нови функции add_user_in_group и remove_user_from_group чрез които може да вкарвате/изкарвате потребители в групите на форума ви. (includes/functions.php)
- Оправен е къстъм достъпа до страници за потребителите, които не са реални администратори във вашия форум
- Добавени са 3 нови глобални темплейтни дефиниции: {{user_email}}, {{user_regdate}} и {{user_warnings}}.
- Добавени са 2 нови функции add_to_users_table и update_users_table_column чрез които може да добавяте/обновявате информация в phpbb_users таблицата.
- Добавен е нов клас в Entity папката. Става дума за нотификейшън мениджър, чрез който може да разпращате известия, да ги взимате и т.н.
- js_libs.html е разцепен и вече не е наблъскан с js код, останалия код е разпръснат из админските темплейтни файлове, които са за него.
- Добавени са още lambda helper-и, които може да ги използвате в темплейтите и в екстеншъните. (includes/Mustache_Helpers.php)
- Вече не е нужно да редекларирате ланг ключове в екстеншъните, пример: $this->lang['lang_test'], а може да ги ползвате директно в темплейтите {{lang_test}}. Нужно е само да сте превели екстеншъните в папка /lang/.
- Аргос разполага с нов дефолт темплейт.
- Добавен е нов помощен клас в Entity/ папката - Utils.php
- Добавена е възможност да викате аякс заявки от папката на темплейта ви. (Файл: ajax.php)
- Оптимизации в get_user_ava функцията
- Добавен е ErrorHandler клас, който представя грешките в Аргос в по-четлив и стилизиран вид. (500 грешките)
- Добавено е поле в конфигурацията за въвеждане на Телеграм линк към социалната мрежа и {{telegram_link}} темплейтна дефиниция
- Добавени са FontAwesome 6.7 + 4 shiv в админ панела (вече може да ползвате и новите и старите иконки)
- Добавена е защита за админ панела на всеки 120 секунди с цел превенция на достъпа от злонамерени хора. (Може да се изключва от env "ACP_SECURE"="0")
- Добавена е нова глобална темплейт дефиниция {{current_url}} - връща настоящия адрес на който сте в момента.
 
https://argoscms.xyz/test_things/argos/ - тук може да разгледате новият дизайн за Аргос.
Това демо не е завършено и неоптимизирано.
Дизайна е дело на jerryborisov и с леки пипвания от моя страна.
Всичко ще бъде прегледано и оптимизирано в бъдеще.
Може би ще има и style switcher с тъмна тема, но ще видим дали chatGPT ще може да пресъздаде хедъра с тъмен такъв.
Да, в момента хедъра е правен с изкуствен интелект и се получи супер според мен.

Дизайна ще бъде интегриран едва когато свърша с това, което правя и в момента.
Може да дадете вашите отзиви за дизайна и да дадете насоки, кое и как може да се промени.
 
Бота направи хедър и за тъмната тема: https://i.ibb.co/Lzm3xks1/argosheader-bg.jpg
Искам само да кажа, че този нов дефолт темплейт ще разполага с:
- Собствена lang/ папка с преводи
- Ajax файл, защото ще има някои неща с аякс, като изкарването на топ 5 потребители, нови потребители и може би и малко за чата (само моделите ще викна от ядрото)
- Ще има къстъм код във _functions.php, където ще има и няколко къстъм евента за темплейта.
- Конфигурационен файл (config.json), от където ще променяте разни неща по темплейта. (линк към хедъра, спиране/пускане на текста в хедъра, беграунд на фуутъра и т.н.) Ще е по-лесно, иначе трябва да ровите код
- Ще има pagination.json с редекларирани класове на страницирането.

Общо взето това ще е един солиден темплейт пълен с всички екстри на системата и идеално показно за всеки, който иска да си прави свой темплейт.
 
Дизайна е много ретро а уж се стремиш да правиш модерна система?
Какви плъгини има за CS?
Мога да ли да си гледам конзолата, да сменям карти? Да раздавам банове на играчи? Вип система има ли? Добавя ли играчите в сървъра или ръчно?

Ей тия ако ги нямаш значи нищо нямаш.
 
Дизайна е много ретро а уж се стремиш да правиш модерна система?
Какви плъгини има за CS?
Мога да ли да си гледам конзолата, да сменям карти? Да раздавам банове на играчи? Вип система има ли? Добавя ли играчите в сървъра или ръчно?

Ей тия ако ги нямаш значи нищо нямаш.
За конзолата нямам, за банове се ползва gmbans/amxbans/freshbans/друг и от там се банва. Имам малък екстеншън, който изкарва последните банове, работещ с банлистите. (те ползват еднакви таблици)
Имам екстеншън за закупуване на флагове със select2, всеки флаг е определени кредити, работи с горните бан листи и е автоматизиран(добавя админите автоматично). Към него върви и профил екстеншън за закупуване на кредити през пейпал с IPN.
Общо взето вече съм забравил какво има, помня че и calladmin има, изкарва последните повиквания с аякс + cs 1.6 плъгин.
Всъщност това няма значение, защото всичко може да се донапише с екстеншъни.
Дизайна не е завършен, ще има още пипания по него, но концепцията е такава и така ще изглежда.
Може тъмната версия да се получи по-добре, ще видим.

При мен в ext/ папката имам 170 екстеншъна и останалите са на телефона ми.
Писах ги през телефона докато бях в чужбина.
Не ми се рови в момента, има доста неща, който има интерес, нека се свърже с мен и ще обсъдим всичко.
 
Последно редактирано:
Аргос ще придобие още една новост чрез библиотеката https://github.com/matthiasmullie/minify
Тази библиотека е една, да не кажа единствената, която се поддържа.
Бота ми изработи скрипт (min.php) чрез който чрез get параметри ще му се подават css/js файлове и ще ги обединява и минифицира с кеш.
Има и допълнителна защита към скрипта, да не ровят назад (../) и да не могат да се слагат чужди линкове.
Ще се поддържа и version параметър, чрез който може да обновявате кеша, като му подадете темплейтна дефиниция от Аргос.
Защо ни е всичко това ?
Това е с цел да не блъскате много css/js файловете, а да обедините всичко само в 1.
Пробвах много пъти да изградя сам css клас за минификация, но трябва да се парсва css, за да се оправят пътищата към файловете, които fontawesome и други библиотеки изискват.
Бота ме увери, че с тази библиотека проблеми няма да има.
Ако всичко мине по план, то вашите темплейти ще са идея по-оптимизирани, особено, ако не ползвате cdn, а локални библиотеки.
Така ще ги обедините само в 1 файл и сайтът ви ще зарежда по- бързо.
Ето и как:
Код:
<link rel="stylesheet" href="min.php?type=css&f=assets/css/style.css,assets/css/theme.css&version=3">
<script src="min.php?type=js&f=assets/js/app.js,assets/js/utils.js&version=3"></script>

Скрипта min.php ще седи в главната папка, ще съхранява кеша в assets/cache, а в конфигурация ще се добави при изтриването на кеша, да трие и този кеш от скрипта min.php.

Това ще е във версия 13.1, мога да я пусна веднага след 13.0.
 
Последно редактирано:
Вече е направено горното, имах малко свободно време и се заиграх.
Лайв демо може да видите на новия дизайн: https://argoscms.xyz/test_things/argos/
Вижте в сорса как са заредени вече библиотеките.
Нарочно файла ще е отделен + самата библиотека е инклудната ръчно (седи в папка includes/), защото ако го мина през рутиране и клас, то това ще отнеме доста време, там е и аутолоудъра от composer и става излишно закъснение. За това този файл остава част от Аргос и всеки може да го ползва Пожелание.
 

Back
Горе