ARGOS multigaming cms

Написах малък js код с помощта на бота, който е вид addon за екстеншъна за регистрацията. Работи автоматично и изкарва бутон за random генериране на парола. Тестван е на default темплейта, но за други ще трябва леко да се пипне.
Има проверка и се съобразява с полето, ако има maxlength атрибут. В случая е 10 символа, ако го няма паролите са по 32 символа. Сложил съм да генерира само малки букви и числа, съобразено с Mu online изискванията, но разбирасе всичко може да се изменя, включително и стила на самия бутон от js скрипта.
Който си го хареса е негов срещу 5 евро.
 

Прикачени файлове

  • Screenshot_20240804-185614.png
    Screenshot_20240804-185614.png
    386.1 KB · Преглеждания: 11
От доста отдавна под файърфокс (мозила) каптчата не се обновява при клик заради inline js на бутона, който работи само за хром. Вече имам фикс и той ще бъде приложен във версия 9.0, но ще го споделя и тук.
В админ панела като js инжекция или в globals.js (да не забравите да вдигнете css/js версиите след това), слагате:
Код:
$('.fa-refresh').on('click', function(event) {
    event.preventDefault(); // Prevent the default anchor behavior
    
    var timestamp = new Date().getTime(); // Get the current timestamp
    var newSrc = '/captcha.php?' + timestamp; // Append timestamp to bypass cache
    
    // Use fetch to load the image
    fetch(newSrc)
        .then(response => {
            if (response.ok) {
                $('#capImage').attr('src', newSrc); // Update the image source
            } else {
                console.error('Failed to load image:', response.statusText);
            }
        })
        .catch(error => {
            console.error('Error fetching image:', error);
        });
});
и проблемът е решен :)
 
Последно редактирано:
Токущо ъпдейтнах екстеншъна за стийм инвентара, добавих trim за стойността в полето и use \Exception, че не излизаха грешките нормално, а вадеше бяла страница.

Също така направих още един екстеншън за архив на новините по месеци и години


Цена 10 евро
 

Прикачени файлове

  • Screenshot_20240805-122551.png
    Screenshot_20240805-122551.png
    523.2 KB · Преглеждания: 11
  • Screenshot_20240805-122522.png
    Screenshot_20240805-122522.png
    411.7 KB · Преглеждания: 11
Готов е нов екстеншън за проста смяна на аватар. Цената му е 5 евро.
За да работи коректно от админ панела на phpbb трябва да разрешите опцията за remote (външен) ъплоуд в настройките за аватарите. Също така в uploads/images в главната директория на аргос трябва да създадете папка avatars със 777 права. Това е!
 

Прикачени файлове

  • Screenshot_20240805-145508.png
    Screenshot_20240805-145508.png
    564.9 KB · Преглеждания: 8
Завърших и steam login екстеншъна, който е цялостно интегриран с phpbb. Работи с lightopenid библиотеката и стийм апи кей с цел извличане на повече инфо. Изисква и попълване само на емейл преди логина в phpbb, заради забравената парола. Стийм от своя страна не предлагат извличане на емейла.
Цената е 15 евро.
Като се прибера ще доизпипам дизайна.
 

Прикачени файлове

  • Screenshot_20240806-001847.png
    Screenshot_20240806-001847.png
    240.1 KB · Преглеждания: 2
От доста отдавна под файърфокс (мозила) каптчата не се обновява при клик заради inline js на бутона, който работи само за хром. Вече имам фикс и той ще бъде приложен във версия 9.0, но ще го споделя и тук.
В админ панела като js инжекция или в globals.js (да не забравите да вдигнете css/js версиите след това), слагате:
Код:
$('.fa-refresh').on('click', function(event) {
    event.preventDefault(); // Prevent the default anchor behavior
   
    var timestamp = new Date().getTime(); // Get the current timestamp
    var newSrc = '/captcha.php?' + timestamp; // Append timestamp to bypass cache
   
    // Use fetch to load the image
    fetch(newSrc)
        .then(response => {
            if (response.ok) {
                $('#capImage').attr('src', newSrc); // Update the image source
            } else {
                console.error('Failed to load image:', response.statusText);
            }
        })
        .catch(error => {
            console.error('Error fetching image:', error);
        });
});
и проблемът е решен :)
От любимия ти бот:
Код:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Change Image on Button Click</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>

<img id="myImage" src="image1.jpg" alt="Image" width="300">
<button id="changeImageBtn">Change Image</button>

<script>
    $(document).ready(function(){
        $("#changeImageBtn").click(function(){
            $("#myImage").attr("src", "image2.jpg");
        });
    });
</script>

</body>
</html>
 
Пробвах го, първо ми даваше същите варианти със attr, но не сработи под моя файърфокс на motorola g23, само с fetch метода проработи..
 
Вече е готов и дискорд логин екстеншън. Изисква secret,client id от https://discord.com/developers/applications.
Redirect uri трябва да е https://your-site.com/pages/discord_login
Същото трябва да е и в ext.php.
Работи по същия начин като стийм екстеншъна, изисква емейл при първия логин и от там нататък се логва автоматично.
На демото има бутон, който иска да тества.

Цена 15 евро

ПС: Като се върна ще изпипам дизайна и на този и на стийм екстеншъна, ще им сложа икони и т.н. При вече логнат потребител ще скрия бутоните и т.н.
Правя ги сега, за да нямам повече работа като се прибера. Искам да почна стилове да правя, вече има предостатъчно екстеншъни и съм пълен с всякакви кодове. Мисля, че е време за готини темплейти...
 
Последно редактирано:
Във версия 9.0 ще добавя колона show в pages таблицата. Така в екстеншъните ако е null или различно от 0 ще се показват линковете в менюто, иначе ако е 0 няма да се показват. Има сега някои линкове, които не са за показване, но ако се изтрият от таблицата въобще няма да могат да се достъпват. Целта е просто визуално да не се показват.
В екстеншъна down_up_pages който ги преподрежда, мога да му добавя ios switch и от там директно да решавате кои да се показват и кои не и да ги пренареждате едновременно. :]
Ще стане супер!
 
Завърших и банлист страница работеща с gmbans/amxbans/freshbans. Има проверка за бан по айпи адрес и търсачка. Всичко е със странициране.
Демо на https://argoscms.pw/pages/banlist
Резултатите са генерирани рандом.
Цена 15 евро
 

Прикачени файлове

  • Screenshot_20240807-162858.png
    Screenshot_20240807-162858.png
    392.9 KB · Преглеждания: 13
Има хора, които решават да скрият форумите си и да ползват системата без тях. Направих малка статистика за сайта вместо форума и винаги лесно може да я надграждате и да извеждате още и още информация благодарение на user friendly масив от който се черпи информацията.
Код:
    private $stats_config = [
        ['name' => 'News', 'table' => 'news', 'column' => 'id', 'icon' => ' fa-newspaper-o'],
        ['name' => 'Comments', 'table' => 'replies', 'column' => 'id', 'icon' => 'fa-comments'],
        ['name' => 'Banners', 'table' => 'banners', 'column' => 'id', 'icon' => 'fa-code'], 
        ['name' => 'Servers', 'table' => 'greyfish_servers', 'column' => 'id', 'icon' => 'fa-server'],
        ['name'=>'Gallery images' , 'table' => 'gallery', 'column' => 'id', 'icon' => 'fa-picture-o'] 
    ];
Има и condition ключ, но не съм го ползвал с цел вие да поставяте условията в sql заявките в WHERE.

Цената му е 5 евро.
 

Прикачени файлове

  • Screenshot_20240807-223203.png
    Screenshot_20240807-223203.png
    234.8 KB · Преглеждания: 15
Много ще забози, вече са към 200, само за 5 дни от телефона написах 38.
Идеята ми е версия 9.0 да я пренапиша с prepare statements и да сбия с compact масивите и после метод по метод да ги давам на бота, за да ги оптимизира.
Също така някои екстеншъни (главно тези за админ панела) се инжектират в евент и след това има проверка за админската страница, което според мен не е ок.
По добре един иф отпред дали си в страницата и тогава да идва инжектирането. Защото един прост иф е по бърз от инжекцията в евента, поне така мисля. А тези екстеншъни не са малко...

Има доста лоши похвати в кодовете и се надявам с бота да ги оправим. Но знам, че трябва след всяка промяна да тествам, защото не му знам акъла, къде може да е пипнал я по име на метод, я по нещо друго. Ще стане бавно, но мисля че 9.0 ще е едно добро начало за нататък. Сега ще излезе и php 8.4, дано няма проблеми там, въпреки че аутолоудъра вече има промени за нея, виждам по комитите. Ако трябва ще се пренаписва...

След като оправя ядрото и всичко работи, ще започна да правя същото и с екстеншъните, които вече са създадени. Ще оптимизирам и тях.
Само тези за Му онлайн няма да ги пипам, че нямам човек със сървър и няма как да ги тествам.. Тях за по късно..

Тази версия на демото е много стара и няма смисъл да се занимавам с нея. Тя е само за тестове на екстеншъни...
Дано имам време само, че като се прибера ще имам малко работа в БГ и като всичко е ок, се захващам здраво да я оправям и оптимизирам.
 
Още един е готов. Този път става дума за кирилизация на emojionearea-та, ако щете вярвайте 6 часа си играх с бота и накрая заработи. Много мъка беше. Бутона е зелен когато е кликнат, а иначе е син.
Цена 5 евро.
 

Прикачени файлове

  • Screenshot_20240808-224231.png
    Screenshot_20240808-224231.png
    229.7 KB · Преглеждания: 13
Днес в 18:00 тръгвам за Франция, ще съм там месец и половина или два и се прибирам.

Завърших още един екстеншън, който вади статистика за сървъра на който се намирате в момента. Аз съм на споделен хост на jump.bg и изведох следната информация (вижте снимката).

Не ползвам shell_exec, а file_get_contents в /proc/ директорията.
Също така този екстеншън ще работи само на линукс, на windows няма да работи.
Цена 5 евро
 

Прикачени файлове

  • Screenshot_20240816-002315.png
    Screenshot_20240816-002315.png
    133.5 KB · Преглеждания: 24
Мислих го, но така или иначе има още работа по системата, а и не съм сигурен дали ще е ок там да спамя и да ме критикуват за това. За сега само в 3 форума съм я публикувал (amxx-bg.info, darksteam.net и тук)

Пиша всичко в отделни постове за всеки случай, за да мога да линквам, ако реша да пиша и на друго място. Надявам се и трите форума да продължат да работят и занапред. Не искам да губя темите на никое място, за това и пиша всичко еднакво, с цел някой да не спре и да си загубя част от индексираното съдържание в търсачките.
Щом преценя че системата е в приличен вид, мога да я пусна и на други места, ако ми бъде разрешено.
Първия пост трябва да го едитна, но като се прибера и завърша версия 9.0. Ще опиша промените и всички екстеншъни, но не съм сигурен дали ще ми стигне само първия пост хаха, много неща станаха..
 
Преди известно време бях попитан дали рутиранията могат да избегнат ?page=1/?view=2 и т.н., и тогава категорично отказвах, тъй като знаех, че ще трябва играчка и пипане по рутиращия клас.
Днес вече е възможно да се избегнат и с помощта на бота го направихме.
Добавен е нов параметър в рутиранията, ето пример:
Код:
        // Define the route dynamically
        $collection->attachRoute(new PHPRouter\Route('/pages/'.$page_name, [
            '_controller' => 'App\Controllers\CustomPage::CustomPage',
            'methods' => ['POST', 'GET'],
            'parameters' => ['template_file' => $template_file, 'addon_regex' => '(/p/\d+)?'],
        ]));
Става дума за addon_regex параметъра, който ще слухти за добавки с regex правила. В случая става дума за добавка с /p/ или page.
Добавил съм следното htaccess правило:
Код:
RewriteRule ^pages/banlist/p/([0-9]+)$ /pages/banlist?page=$1 [L,QSA]
и така вече от:
Код:
https://argoscms.pw/pages/banlist?page=2
може да го достъпите и от:
Код:
https://argoscms.pw/pages/banlist/p/2
Естествено в момента е хардкоднато, но от екстеншъните в sql.php при sql заявките за нова страница ще добавя нова колона 'regex' и именно от там ще вкарвате regex правилата за страниците генерирани от екстеншъни.
И така вече ще може да избягвате ? query параметъра и вашите линкове ще са идея по-четливи.
Мога да си поиграя и със страницирането, да направя да слухти за /p/ в url, но това не го обещавам. Идеята е страницирането да си остане с ?page=страница, а страници без странициране главно да се правят с regex правила, като pages/server?vew=1 да стане pages/server/view/1, естествено ако си има странициране вътре би трябвало да си работи.
Не съм го тествал обстойно, но във версия 9.0 ще го вкарам като новост и ще пренапиша gmon екстеншъна, който ще търпи още промени и нови функционалности.

Предстоят много нови неща, като повечето екстеншъни ще се сдобият и с админ панели, където е имало пипане в ext.php, за да е по-удобно за вас.
 
Бота подготви и функция, която ще вкарам в системата и ще се ползва от екстеншъните с горната добавка - https://onlinephp.io/c/c29b4
 

Back
Горе