ARGOS multigaming cms

Защо да е късно, на ден по 5 добавки да пренапишеш и за месец си готов.
И можеш да продаваш.
 
8.4:
- Всички екстеншъни бяха обходени и strpos е заменено със str_contains
- На get_from_db_config функцията е добавена кеш - през php fast cache
- На get_user_avatar_by_id функцията е добавена кеш - през php fast cache
- На get_user_color_by_id функицята е добавена кеш - през php fast cache
На горните функции кеша е 10 минути, ако направите промени и не влязат в сила изтрийте кеша от админ панела!
Поддръжката за файловия кеш е премахната и е заменена с Redis. Имам достъп до хостинг акаунти и в jump.bg и в superhosting.bg и 2-та предлагат redis. Така ще е една идея по-бързо зареждането на сайта.
В инсталатора са добавени опции за redis server и redis port. (задължителни са за попълване). Redis се активира с 1 клик и след това ви се предоставят ip и port, които да въведете в инсталатора.
Забележка: Някои хостинги искат и redis php модула да е включен. В jump.bg е активиран по-начало (по-спомен!)
За локалхост под Windows: Не ви трябват уроци за инсталация на Ubuntu под windows! Използвайте memurai - https://www.memurai.com/get-memurai. След инсталация въведете на мястото на redis server - 127.0.0.1 и redis port - 6379.
Програмката се инсталира с next next finish - нищо не променяйте при инсталация и маркирайте отметката за enviromenth path!
Под Линукс ако сте - си инсталирайте redis!
- Добавен е exclude (пропускане) на някои файлове като преводите,sql.php и migrate.php, а и езиците bg.php,en.php,ru.php,es.php,fr.php, тъй като не са класове, а autoloader-a ги хващаше и тях..
- Фиксване на typo грешки в админ панела свързани с custom css/custom lang категориите. (Някои файлове не се отваряха и имаше error log)
- print_to методите за вкарване на съдържание в менютата са преместени в basecontroller-a. Там им е мястото, а не във всеки екстеншън да се вкарват на ръка. Вече се викат с parent:: print_to($content).
 
8.4.1:
- Преправих всичко с PSR12 (екстеншъни, ядро + папката includes). Използвах VSCode + най-популярния плъгин за индент (10 милиона тегления)
- Обновени са paymentwall и stripe библиотеките.
 
8.4.2:
- Темплейтите бяха обходени и всички минификационни файлове са изтрити и са заменени с пълни версии (броят се на пръсти), тъй като останалите бяха заменени от CDN-та.
- Добавена е възможност да си пишете чейнчлог файлове на екстеншъните, които се четат директно от админ панела на Аргос. В папката на екстеншъна ви трябва да има changelog.txt файл, който може да си го описвате като html. В админ панела ще видите това при клик на версията на конкретен екстеншън: https://i.ibb.co/fYt7ZG8/image.png
- Всички темплейти бяха обходени и отново където имаше не-индентнат код е индентнат
- Премахнати са някои правила на html minify библиотеката (премахваше " кавичките на класовете, което според мен е предпоставка за грешки) - Изключват се за секунди, напомням, че се ползва тази библиотека - https://github.com/voku/HtmlMin
- Всички библиотеки бяха ъпдейтнати през composer (имаше 2 библиотеки, които бяха "захапани", тоест ъпдейтнати)
- Чейнчлог файла е ъпдейтнат, както и рийдми-то
- В basecontroller-a имаше някои корекции свързани с глобалните променливи

Исках да оптимизирам и изкарването на къстъм леви и десни менюта, но логиките не съм ги писал аз, ползва се DOMDocument и някакви странни цикли, първо foreach, пък вътре има while.. Въобще.. Пробвах да ги махна, но пък дава html грешки и не се трият първите дивове в orizon темплейта, ако премахна тези цикли.. Ще го оставя за по-нататък, когато имам повече време, може и тотално да ги пренапиша. По принцип менютата се изкарват без досег до sql таблиците, а директно чрез функции print_to_left($content) и print_to_right($content), направо изплюва съдържанието което му е подадено в конкретен евент (от евентите на системата)
Дали това е правилен начин - не знам, тъй като при 10 менюта - това са 10 заявки - първо с file_get_contents за html файловете на конкретно мено и след това с DOMDocument се манипулира и запазва съдържанието на менюто, което при повечето случаи е HTML.

Както споменах вече и в предната версия всичко вече е индентнато и може да има някой бъг, тъй като съм ползвал автоматични индентатори на код. Неймспейсовете не са PSR12 - не мога да преправям сега всички екстеншъни и да им сменям имена на папки, неймспейсове и т.н. Това няма да стане сега, а по-нататък.

Ако няма интерес към системата ще преосмисля да пусна ядрото безплатно с default темата и 4-5 екстеншъна от тези на val4o0o0.
Вид маркетингово трикче, пък ако я харесате ще си плащате за останалите темплейти и моите екстешъни! Цените няма да са надути!
 
8.4.3:
Вече системата не работи с HeadJS - махнах го. Прецених, че тази стара библиотека вече е ненужна.
Официален сайт: https://headjs.github.io/
Benchmark: https://headjs.github.io/test/headjs.html
Резултатите с нея и библиотеките най-долу са почти еднакви, даже понякога като са долу е по-добре.
Всички темплейти претърпяха промени, както и екстеншъните, тъй като всичко беше написано с нея.
Добавих и нов евент: core_event_js_libs_insert - В него се инжектират само js библиотеки - <script src="link"></script>
Също така стария евент: core_event_inside_head_ready_front е преименуван на: core_event_inside_script_tag
В този нов евент се инсертва js кода директно в <script></script> тагове долу под библиотеките, където е и ядрото на jquery.
 
8.4.4:
- Ъпдейтната е tablesorter библиотеката в greyfish папката и ползва вече fontawesome
- В чата юзърнейма вече се взима от сесията, а не през hidden input-a
- config таблицата е дропната и е преправена, работи на съвсем друг принцип (минималистичен), изменения и в install/sql.php и в някои екстеншъни (от моите)
- Добавено е автоматично създаване на config.env, ако го няма (като празен файл) - предотвратява грешки. (не е задължително обаче :))
- В темплейтите беше забравен head.ready на места и вече е минат през обикновения dom content load. (purplemagic,crystalsmu и lob)
- Фиксната е грешка в инсталатора заради необхванати проверки за redis server и port
- Добавени са css дефиниции за dropzone по темплейтите, тъй като се ползва cdn вече и бокса беше без цвят (при default темплейта не са нужни)
 
Нови екстеншъни!

Става дума за разширение на чата, който така или иначе побира само определени съобщения. Чрез jquery разширявам функциите му, като отново прихващам бутона за събмит и събмитвам всичко в отделна таблица (за чат хронология). Всичко си се поддържа - emoji-та, линкове и т.н.
Новото тук е, че вече има и изцяло нова тагинг система в този addon. Как работи ?
При писане в чата на @user - прихваща user-нейм-а и праща лично съобщение до тагнатия от този, който го е тагнал в чата с подкана да влезе в хронологичната страница и да види съобщението с тага.
Всичко стана лесно и бързо с pregmatch all, един foreach и масив, който излиза от regex правилото.
Pattern-a поддържа само букви, цифри, _ и -, като има и подминаване на емейли, ако се засекат... Тоест работи само с @nick.
Ако има проблеми то те ще са в regex правилото, но от тестовете ми не забелязах такива.
Къстъм страницата е на адрес: your-site.com/pages/chat_hrono

Също така има и още 1 екстеншън, който от админ панела може да задавате meta description таг само за индекса. Причината е, че в индекса няма дескрипшън, а е добре да има. Става от 1 поле в къстъм страница от админ панела.
Нарочно не съм вкарал такава функция в ядрото, тъй като може да стане от екстеншън, иначе трябваше да има там иф-ове и самия мета таг, а така става по-бързо и лесно.
Целта ми е темплейтите да са максимално опростени, за да може да се променят по-лесно
:)
 
Последно редактирано:
8.4.5:
- Грейфиш зоната и листата са стандартизирани с изключение на зоната на foxstrike, която не работи с carousel.
Вече се ползват CDN-та с изключение само на tablesorter библиотеката. Carousel-a вече е https://flickity.metafizzy.co/, a пък fancybox беше ъпдейтнат до последната 3х версия.
- В контролера за инсталатора е добавена редис проверка за дали е успешна кънекцията към сървъра или не (предотвратява грешки)
- Оптимизация на sql заявка с inner join в чат контролера
- Фикснах също така календара в админ панела да не захожда към Декември от Януари на предишната година и към Януари от Декември към следващата година (с прости проверки и return)


Разширих малко advanced comments екстеншъна, а именно вече след +10 и -10 рейтинг на коментарите се оцветяват в различни цветове (зелено/червено), ето демо:
Това работи със settimeout, тъй като няма как иначе заради аякс-а, който извежда отговорите към коментарите. Нагласено е на след 10 секунди.
Тоест като минат 10 секунди тогава оцветява всичко, което е намерило като рейтинг +10 и повече/-10 и повече. Просто няма как на този етап. Промените са в js файла на екстеншъна (само)

Скоро ще ъпдейтна демото с последната версия, тъй като промените са много. Очаквам по-добър перформънс при зареждането на сайта като цяло.
Също така ще кача и банлисти, за да се активират магазините...
 
Нов екстеншън!


Става дума за гласуване с page peel ефект в bgtop.
Jquery библиотеката е сравнително стара и добре известна - https://github.com/robflaherty/jQuery-Peelback
Може да си сменяте и изображението за peel ефекта, а и изображението за bgtop което се явява вид реклама зад peel ефекта.
Аз намерих случайно в гугъл това и го оразмерих, но не се получи много добре като цяло... Може някой който разбира от PS да направи някое по-добро и да си го сложи него.
Също така не съм слагал 24 часова проверка, тъй като няма смисъл (според мен, защото е добре прикрито горе).
Ако някой иска, мога да сложа и проверка за 24 часа като на мястото на изображението да се показва друго - че, трябва да се изчака 24 часа, за да гласува пак и отдолу може да пише "Благодарим за интереса и отделеното време". (хмм...)
 
Утре довършвам голям екстеншън. Става дума за статистика (мониторинг) на гейм сървъри. Доста голям!
Има claim на сървър, boost/vip услуги, рейтинг система (колкото повече гласували за даден сървър - той се издига), favorites, голяма търсачка и т.н.

Утре го довършвам и пращам на следващите клиенти, които го платиха. Ще дам и лайв демота.
Cron-a е направен по добър начин и работи чрез сесии и ъпдейтва сървърите на по-малко, за да не се пускат всички сокети в loop-a.
Много добре го измислих и работи. Като стигне последна страница - се ресетват стойностите и почва от страница 1.
Всичко работи перфектно, има и няколко jquery библиотеки - получи се супер, а и клиентите го харесаха..
 

Горе