ARGOS multigaming cms

Здравейте,
Искам да представя новото разширение за gmon екстеншъна - https://game-select.eu/pages/widget?ip=51.89.78.39:27015
Става дума за напълно контрулируем уиджет, който може да ползвате във вашите сайтове, вместо да инсталирате lgsl/greyfish или друга библиотека.

Работи с кеш, като информацията в уиджета се обновява на 5 минути (тоест инфото за вашия сървър). Инфото се съхранява на хоста на game-select в Redis.
Работи с PHP GD и малко jquery + библиотеката за цветовете.
Също така уиджета може да бъде на един от поддържаните езици в системата.

Цена на екстеншъна: 60 лв. (върви само с gmon екстеншъна, иначе не се продава отделно!)
 
Всички мои бъдещи и настоящи клиенти могат да ми пишат, за да им изпратя cronjob файл писан на python за gmon статистиката, която е писана от мен. Екстеншъна вече разполага с cronjob, който е писан на софтуерен език и използва async requests и работи моментално за игрите поддържани от системата. В момента само FiveM не се поддържа, но съм писал на автора на game query-тата, за да видим дали ще добави поддръжката.

Библиотеката е тази - https://github.com/opengsq/opengsq-python

Така вашите сървъри ще се обновяват без видимо закъснение и питон е по-подходящ като цяло за тази работа. Предимствата също така са, че файла може да е винаги с вас на вашия личен компютър и да го пускате от там, независимо дали сте под Windows/Linux. Трябва да си изтеглите python + python mysqldb с pip. Ако сте под Windows Windows Visual Studio Code 143 (около 3гб), на линукс това нещо не ви трябва.
Забележка: Ако го пускате от ваша лична машина, имайте в предвид, че ви трябва отдалечен mysql достъп даден от хостинг компанията ви за вашата машина, за да може да се свържете с датабазата отдалечено.

Питонския скрипт може да се настрои на 3-4 минути, за да обхожда всички сървъри. Аз в момента го тествам със 150 сървъра и работи много добре наведнъж.
:)


Искам да подчертая, че в момента всичко е ОК и без него, но ако имате над 500 сървъра, първите сървъри в моментното обновяване ще са с голямо закъснение докато се обходят всички 500 и се стартира обратно от 1 (първия).
С този питонски скрипт би трябвало всичко да е Ок и да обхожда нормално. Единствено може да има проблем, ако на сървъра/машината от която сте го пуснали е слаба. (малко cpu/ram)

Файла ще е безплатен и ще върви с екстеншъна за статистиката, не се продава отделно!
 
8.7:
- Добавени са нови regex правила във FormValidator класа в Entity папката (Включително и такъв за валидно steam id)
- Оправен е бъг за ънлогин след логин (при кликване на произволен линк) - не се е получавало всеки път, но забелязах, че в global_vars.php:
Код:
'login_proceed' => append_sid("" . removeLastSlash($_SERVER["FORUM_PATH"]) . "/ucp.php", 'mode=login', true, $bb_session_id),
е било с грешна стойност за SID (Session ID)
-->
Код:
'login_proceed' => append_sid("" . removeLastSlash($_SERVER["FORUM_PATH"]) . "/ucp.php", 'mode=login', true, $token),
Трябва да е с $token, който седи в phpbb_bridge.
За сега не съм забелязъл повече проблеми, но ако има - пишете! (това важи и за безплатната версия, която е пусната тук)
- LGSL беше ъпдейтнат и са добавени нови протоколи: (Necesse and BeamMP protocols)
- Леки фиксове по _functions.php в lob2 темплейта (добавена е проверка за налични резултати от sql таблица)

Напомням за _functions.php:
- Toва е файл, който е предвидено в него да няма html, а ако го има, да не се принтва вътре, а да е в променливи за mustache (логично), може да пишете всякакви функции, да си инциирате ajax заявки към него и т.н.
Също така, вътре може да имате ланг дефиниции и дори може да си направите папка в темплейта lang/ и вътре да си създадете всички налични ланг файлове към момента и да си създадете къстъм ланг дефиниции само за вашия нов и уникален темплейт!

Ето как:
Код:
function translate_some() {
    global $lang_sys;

    $languages = ['bg', 'en', 'ru', 'es', 'fr'];

    $current_language = get_current_language();

    if (in_array($current_language, $languages)) {
        $lang_file = "lang/{$current_language}.php";
        if (file_exists(__DIR__.'/'.$lang_file)) {
            require_once($lang_file);
            $lang_sys = array_merge($lang_sys, $lang);
        }
    }
}
translate_some();

Пример за съдържание на bg.php в template/your_template/lang/bg.php:
Код:
<?php
$lang = [
    'lang_arenaplay_news'=>'Новини',
    'lang_arenaplay_more'=>'Още...',
    'lang_arenaplay_up_img'=>'Качи изображение',
    'lang_arenaplay_shop'=>'Магазин',
    'lang_arenaplay_skins'=>'Скинове',
    'lang_arenaplay_stats'=>'Статистика',
    'lang_arenaplay_list_p'=>'Списък с играчи',
    'lang_arenaplay_list_a'=>'Списък на админите',
    'lang_arenaplay_list_v'=>'Списък с ВИП играчите',
    'lang_arenaplay_banlist'=>'Банлист',
    'lang_arenaplay_requests'=>'Заявки',
    'lang_arenaplay_reviews'=>'Отзиви',
    'lang_arenplay_rules'=>'Правила',
    'lang_arenaplay_credits_stats'=>'Статистика на кредитите',
    'lang_arenaplay_turn_on_navi'=>'Превключете навигацията',
    'lang_arenaplay_maybe_search'=>'Може би търсите това?',
    'lang_arenaplay_notices'=>'Уведомления',
    'lang_arenaplay_notices_new'=>'НОВО',
    'lang_arenaplay_notice_v_all'=>'Вижте всички',
    'lang_arenaplay_found_us'=>'Може да ни намерите тук',
    'lang_arenaplay_good_morning'=>'Добро утро',
    'lang_arenaplay_good_day'=>'Добър ден',
    'lang_arenaplay_good_night'=>'Добър вечер',
];

Това са къстъм ланг дефиниции, които може да ги викате по темплейта си с {{lang_arenalay_list_v}} - примерно, това е от самия файл извадка на ключ от масива, който отговаря за превод: 'Списък с ВИП играчите'.
В останалите ланг файлове трябва да имате същите ключове, но с различни преводи, а именно преводи на : en,ru,fr,es (защото това е от bg.php)

Пак ще ми се наложи да пътувам за Франция и няма да ме има 3-4 месеца. През това време, ако има някой който иска нещо - ще трябва да чака. Заминавам началото на месец Март!
 
Последно редактирано:
Здравейте,

Малко delay имаше от мен, но много скоро (6-7 дни) ще представя нов проект на база Аргос, става дума за нов Counter-Strike 2 сайт, който ще е нещо различно от досега вижданите проекти и въобще в последно време. Става вече около месец го работя и се получава супер, а по дизайна нищо не правя, сервира ми се всичко наготово. Дизайна не е мой, даден ми е и по него кодирам всичко.
Има много функции и ще са трудно достижими за изкопиране/направа.

А за системата:
Има някои неточности по ядрото още, ползва се arrayIterator навсякъде, а не е нужен на места. Дали ако се махне ще има по-добро представяне - може би, може би не. Ползва се на места по ядрото и има нетипични цикли с него, за да може mustache да усвои информацията от цикъла се минава през arrayIterator, но ако самата функция се пренапише и се изкара assign функцията извън цикъла вероятно той няма да е нужен. Вече няколко екстеншъна правя без него и всичко си работи.
Не съм чел какъв му е перформънса, но ако имате 20 екстеншъна и като сметнем и ядрото (там го има на не малко места) - 60-70 arrayIterator функции минаващи всички масиви мисля, че си е доста, може спокойно да се махне....

Обмислям да добавя в админ панела при екстеншъните опция да се вижда колко са включени и колко изключени. Към този момент с последния проект общите екстеншъни са 160.

Също така CS:GO във файлове като категория все още стои и в новата версия ще е вече CS2.

Искам да направя така, че да може да се задават къстъм линкове за достъп от админ панела, защото в момента се избират само наличните в масивите страници от админ панела, а някои клиенти ме помолиха, ако има вариант да се задава къстъм страница, та ако има някой екстеншън, който е податлив на редакция от било то модератори/и/или ваши потребители, на които имате доверие - да се даде достъп.
В момента до екстеншъните не може да се дава достъп, тъй като това са страници с чувствителна информация и може да се правят мизерии, ако някой му дадете достъп и му нямате 100% доверие.
За това ще направя опит да направя така, че да въвеждате директно страницата на админската страница на конкретен екстеншън и да давате достъп само до нея, като изключваме всички останали.

Версия 8.7 е може би най-най стабилната до момента, защото в последния месец при работата ми със системата не съм забелязъл нито един проблем! В момента работя на PHP 8.1, но има 2 проекта, които са на 8.3 и си работят перфектно!

За новият проект има доста нови екстеншъни, но не съм описал и стари в рийдми документацията и след приключване ще се събера и ще опиша всичко и ще дам лайв демо, ще опресня всичко и ще дам пълен чейнчлог за новата версия + новите екстеншъни.

Напомням, че нямам време за нищо, а началото на Март заминавам за Франция и няма да ме има 3-4 месеца. Евентуално след Франция ще съм свободен за нови неща, като вече има хора на опашка, които ще ме чакат...

Айде :)
 
Bonjour... :)

Argos 8.8:
  • оптимизации във includes/functions.php
  • оправен бъг свързан с required полетата във валидаторския клас
  • добавени са почти всички празници в България в евент календара в админ панела.Излизат с туултип.
  • добавена е възможност за зареждане на рутиранията от json файл - routes.json
  • добавена е възможност за добавяне на къстъм страници за достъп от админ панела
  • оптимизации в core.php
Новият проект е завършен и скоро ще дам лайв демо, даден е за тестове на собственика му.
 
Завършвам с един последен ъпдейт, тъй като скоро заминавам.

8.8.1:
- Добавена е статистика в екстеншъните (Тотални, Включени и Изключени), демо: https://i.ibb.co/71MHPL4/image.png
- Търсачката при екстеншъните вече не търси отляво надясно, а търси в пълна конкретика и маркира всичко точно.
- Евент календара пак претърпя промени. Вече съботите и неделите са маркирани в болд и text-warning: Демо: https://i.ibb.co/tYkY309/image.png

Това е последния ъпдейт, след Франция започвам леко по-лека да я пренаписвам:
Сбиване на масивите в mustache с compact
Премахване на ArrayIterator-ите
Замяна на всички mysql заявки с prepare statements
Пренаписване на функции и оптимизирането им (ще ползвам и бота за всеки случай)

Общо взето работа за 1 седмица, но нямам време сега.
 
Стига де, махни го това WP :D
Аз си взех парите от последния проект. 260 евро ми преведоха :)
Има още хора, които искат още неща за системата, но нямам време да се мъча сега да я затягам повече и да почвам нови проекти...
Може би утре-другиден ще пусна линк да разгледате последния проект, доста интересен стана. Темплейта както казах не е мой, 'присвоен' е от руски cs сайт и има доста библиотеки, които реално не се ползват, но собственика си знае.. Аз му обясних, че е добре да изтества всичко и да спира една по една, но.. Минифицирахме всичко през вградената функция в Аргос и си зарежда стабилно, но ако се орежат библиотеките реално ще е още по-добре...
Иначе като дизайн и функции стана супер, такъв CS2 български сайт няма за момента, а може и да няма дълго време напред...

Домейна е https://arenaplaybg.eu/, но сме го ограничили с htaccess, добавят се пакети в шопа, новини пише... да си създаде форумни категории и да му оправя правата на форумите и мисля, че е готов... Остава още малко :)
Ще пиша като махнем ограничението.
 
Проекта е пуснат в лайв режим, може да го разгледате. (https://arenaplaybg.eu/)
Има някои страници, които се нуждаят от стилизация, просто не ги засегнахме, но той ще си ги оправи сам каза... :)
Общо взето според мен се получи добре. Регистрирайте се и разгледайте..
 
Малко ъп.
Докато съм във Франция си записвам разни неща, които да добавя в новите версии.

Ето някои от тях:
- Клас за конвертиране на стийм айдита в Еntity папката
- add_from_db_config функция, която ще добавя нов запис и стойност в argos_config таблицата.
- remove_from_db_config функция - ще трие стойност от същата таблица
- is_online функция, често ми се налага да пиша излишен код,за да проверявам дали някой е онлайн. Функцията ще работи с юзър айди.
- get_userid_by_username функция, която ще връща юзър айдито на потребителя при използването й по потребителското име.
- В индекса в админ панела ще добавя активност за админите, които са влизали последно в админ панела.

Общо взето това ми се върти засега в главата. Пробвах се да ровя в гитхъб и в гугъл за още някакви полезни функции.Има разни репота, но са големички и не са кой знае колко популярни и ако вземат да ги архивират лошо..
Ще видим, има доста време да търся, нещо което да си струва.
 
Последно редактирано:
- get_userid_by_username функция, която ще връща ника на потребителя при използването й по юзър айди.
Прочети това отново и ми кажи дали има нещо нередно с името на функцията и обяснението ти.
 
В момента имам get_username_by_userid, тази по горе ще прави обратното. Ще взима юзър айдито по потребителското име.
 
Описанието ти обаче казва друго. Описанието ти е за get_username_by_userid. Това имам предвид. Както казах, прочети изцяло добре какво си написал :D
 
Да, видях. От телефона съм и снощи беше късно..Оправих го.
 

Горе