[Sell] Argos CMS / MVC logic less

Очаквайте 9.3.1 в Събота, защото в бързината съм пропуснал някои неща.
Трябва да се премахне array_merge в ланг файла на инсталатора, че в момента бъгва. Ще има промени и по ланг файловете.
Трябва да сложа цветната тема на емоджитата в админ панела.
В globals.js трябва да се добави +timestamp на линка с chat id съобщението, че понякога не обновява в реално време, и да се премести функцията за скруул в success евента в събмит функцията.
Трябва да видя и някои екстеншъни, които са позабравени да ги пипна и да прегледам пак някои неща по системата.

Възможно е края на Януари пак да замина за Франция. Този път ще взема лаптопа с мен, но само Събота и Неделя ще съм свободен.Понякога може дори в почивните дни да не седям..
Така, че който има интерес и иска привейт неща, да пише сега.
 
Прескочих направо на 9.4, защото има по мащабни промени.
changelog.png


9.4:
- Премахнат е array_merge от инсталатора и неговите ланг файлове, тъй като не наследяват $lang_sys
- Добавени са нови ланг ключове към инсталатора и неговите ланг файлове
- Подобрения в чатовете и добавяне на timestamp към url адреса на chat id съобщението (изменения в globals.js)
- Добавена е нова функция get_argos_version(), която ще се използва за страницата с автоматични ъпдейти. Вече в главната дирекория има version.json файл, който е задължителен!
- Добавена е нова игра към greyfish: Day of Dead Source

9.3 -> 9.4:
Презамествате:
lang/
install/
admin/
template/your-template/js/globals.js
App/
includes/
нов файл в root dir: version.json (подготовка за автоматичните ъпдейти)
readme/


В 9.5 очаквайте:
- Добавяне на опция от конфигурация за ползване на Gametracker.com Карти за Greyfish.
- Добавяне на опция за pages per side или колко бутона за странициране да се показват от 2-те страни на настоящата страница в страницирането.
- Добавяне на локално качване на снимки в галерията само за админи в админ панела.
- Добавяне на локално качване на снимки за новините в админ панела.
- Добавяне на локално качване на снимки в слайдъра само за админи в админ панела.

Утре очаквайте линк към демо версията.
 
Live демо: https://argoscms.xyz


changelog.png


9.4.1:
- Премахнат е OneSignalSDKUpdaterWorker.js и функцията onesignal_to_user (deprecated е)
- Обновено е апи-то на Onesignal до версия v16
- Фикснат е бъг със страницирането в блог страниците и в къстъм страниците
- Оптимизации по ядрото (core.php, includes/global_vars.php и includes/functions.php)
- Добавени са бисквитките в json файла за cookie manager js плъгина

9.4 -> 9.4.1:
Презамествате:
admin/
OneSignalSDKWorker.js в root папката
OneSignalSDKUpdaterWorker.js може да се изтрие в root папката
App/
includes/
core.php
assets/
readme/

Очаквайте в сряда 9.5
 
image.png

9.5:
- Оптимизации в core.php (sql заявката за стила вече се кешира)
- Промени в бейсконтролера, които засягат ajax методите в екстеншъните с новия lazyload
- Промени по check_is_mod функцията в includes/functions.php
- Добавена е нова функция is_admin (има вече съществуващ метод $this->is_admin, но въпреки него добавих и функция, нека има...)
- Оптимизации в admin/includes/admin_functions.php
- Оптимизации в admin/js/calendar.js
- Оптимизации в admin/template/js_libs.html
- Добавена е опция за вкл./изкл. на изображения от gametracker.com в greyfish
- Изменения в greyfist_list.html в папките на темплейтите
- Добавена е опция за вкл./изкл. скриване на коментари в сорс кода
- Добавена е опция за pages per side в конфигурацияа, а именно по колко бутона за странициране да се показват от 2-те страни на текущия бутон.
- Изменения в lang/ заради горните промени
- Добавен е начин за ъплоуд на локални изображения при писане на новина. (Създадена е нова директория в uploads/, а именно news_images)
- Добавен е начин за ъплоуд на локални изображения при добавянето на нов слайдър (Създадена е нова директория в uploads/, а именно sliders_images)
- Изменения в readme/
- Всички библиотеки са ъпдейтнати през composer

9.4.1 -> 9.5:
Презаместват се:
core.php
App/
includes/
lang/
admin/
readme/
install/
version.json
template/your-style/greyfish_list.html

След това:
Пускате този sql:
INSERT INTO argos_config (config_name, config_value) VALUES ('pages_per_side', '');
INSERT INTO argos_config (config_name, config_value) VALUES ('gametracker_map_images', '1');
INSERT INTO argos_config (config_name, config_value) VALUES ('hide_sourcecode_comments', '0');
И създавате:
папките news_images и sliders_images в uploads/ папката

В следващия ъпдейт (9.6):
- Нова страница в админ панела за ъплоуд на изображения
- sql.php ще претърпи промени, а именно навсякъде където има varchar(255) ще се форматира коректно според типа на подаваната информация.
- Индентация на код (за пореден път) почти навсякъде в admin/ папката , в App/ и в includes/
 
Новият sql.php вече е факт, ще дойде с версия 9.6, а който иска, нека изпълни този sql който ще дам в датабазата си:
Code:
ALTER TABLE `argos_aboutus` MODIFY `aboutus` TEXT NOT NULL;

ALTER TABLE `argos_privacypolicy` MODIFY `privacypolicy` TEXT NOT NULL;
ALTER TABLE `argos_privacypolicy` MODIFY `language` VARCHAR(255);

ALTER TABLE `argos_advertise` MODIFY `id` INT NOT NULL AUTO_INCREMENT;
ALTER TABLE `argos_advertise` MODIFY `type` VARCHAR(20);
ALTER TABLE `argos_advertise` MODIFY `site_link` VARCHAR(255);
ALTER TABLE `argos_advertise` MODIFY `dobaven_na` bigint NOT NULL;
ALTER TABLE `argos_advertise` MODIFY `banner_img` VARCHAR(255);
ALTER TABLE `argos_advertise` MODIFY `expire` INT(11) NOT NULL;
ALTER TABLE `argos_advertise` MODIFY `link_title` VARCHAR(50);

ALTER TABLE `argos_banners` MODIFY `id` INT NOT NULL AUTO_INCREMENT;
ALTER TABLE `argos_banners` MODIFY `type` VARCHAR(20);
ALTER TABLE `argos_banners` MODIFY `site_link` VARCHAR(255);
ALTER TABLE `argos_banners` MODIFY `banner_img` VARCHAR(255);
ALTER TABLE `argos_banners` MODIFY `link_title` VARCHAR(50);
ALTER TABLE `argos_banners` MODIFY `avtor` VARCHAR(50);

ALTER TABLE `argos_ext` MODIFY `ext_name` VARCHAR(50) NOT NULL DEFAULT '';
ALTER TABLE `argos_ext` MODIFY `ext_active` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0;
ALTER TABLE `argos_ext` MODIFY `ext_version` VARCHAR(20) NOT NULL;

ALTER TABLE `argos_custom_user_access` MODIFY `id` INT NOT NULL AUTO_INCREMENT;
ALTER TABLE `argos_custom_user_access` MODIFY `username` VARCHAR(100) NOT NULL;
ALTER TABLE `argos_custom_user_access` MODIFY `pages` TEXT NOT NULL;

ALTER TABLE `argos_chat` MODIFY `id` INT NOT NULL AUTO_INCREMENT;
ALTER TABLE `argos_chat` MODIFY `name` VARCHAR(100) NOT NULL;
ALTER TABLE `argos_chat` MODIFY `text` TEXT NOT NULL;
ALTER TABLE `argos_chat` MODIFY `date` VARCHAR(20) NOT NULL;

ALTER TABLE `argos_comments` MODIFY `id` INT NOT NULL AUTO_INCREMENT;
ALTER TABLE `argos_comments` MODIFY `author` VARCHAR(100) NOT NULL;
ALTER TABLE `argos_comments` MODIFY `text` TEXT NOT NULL;
ALTER TABLE `argos_comments` MODIFY `date` bigint NOT NULL;
ALTER TABLE `argos_comments` MODIFY `user_id` INT(11) NOT NULL;
ALTER TABLE `argos_comments` MODIFY `newsid` INT(11) NOT NULL;
ALTER TABLE `argos_comments` MODIFY `vote` INT(11) DEFAULT 0;

ALTER TABLE `argos_onesignal` MODIFY `id` INT NOT NULL AUTO_INCREMENT;
ALTER TABLE `argos_onesignal` MODIFY `user_id` INT DEFAULT 0;
ALTER TABLE `argos_onesignal` MODIFY `username` VARCHAR(100) DEFAULT 0;
ALTER TABLE `argos_onesignal` MODIFY `user_ip` VARCHAR(50) DEFAULT 0;
ALTER TABLE `argos_onesignal` MODIFY `phpbb_user_id` INT(11) DEFAULT 0;
ALTER TABLE `argos_onesignal` MODIFY `date` bigint;

ALTER TABLE `argos_logs` MODIFY `id_inc` INT NOT NULL AUTO_INCREMENT;
ALTER TABLE `argos_logs` MODIFY `id` INT NOT NULL;
ALTER TABLE `argos_logs` MODIFY `username` VARCHAR(100) NOT NULL;
ALTER TABLE `argos_logs` MODIFY `user_ip` VARCHAR(50) DEFAULT 0;
ALTER TABLE `argos_logs` MODIFY `date` bigint DEFAULT 0;
ALTER TABLE `argos_logs` MODIFY `action` TEXT NOT NULL;
ALTER TABLE `argos_logs` MODIFY `destination_link` VARCHAR(255) DEFAULT 0;
ALTER TABLE `argos_logs` MODIFY `type` VARCHAR(50) DEFAULT 0;

ALTER TABLE `argos_config` MODIFY `config_name` VARCHAR(255) COLLATE utf8_bin NOT NULL DEFAULT '';
ALTER TABLE `argos_config` MODIFY `config_value` VARCHAR(255) COLLATE utf8_bin NOT NULL DEFAULT '';
ALTER TABLE `argos_config` MODIFY `is_dynamic` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0;

ALTER TABLE `argos_contacts` MODIFY `id` INT NOT NULL AUTO_INCREMENT;
ALTER TABLE `argos_contacts` MODIFY `date` bigint;
ALTER TABLE `argos_contacts` MODIFY `ip` VARCHAR(50);
ALTER TABLE `argos_contacts` MODIFY `username` VARCHAR(100);
ALTER TABLE `argos_contacts` MODIFY `text` TEXT;
ALTER TABLE `argos_contacts` MODIFY `question` TEXT;
ALTER TABLE `argos_contacts` MODIFY `email` VARCHAR(255);
ALTER TABLE `argos_contacts` MODIFY `respond` TINYINT(1) DEFAULT 0;

ALTER TABLE `argos_dpolls` MODIFY `id` INT(12) NOT NULL AUTO_INCREMENT;
ALTER TABLE `argos_dpolls` MODIFY `poll_question` VARCHAR(255) NOT NULL;
ALTER TABLE `argos_dpolls` MODIFY `poll_answer` TEXT NOT NULL;
ALTER TABLE `argos_dpolls` MODIFY `poll_votes` INT DEFAULT 0;

ALTER TABLE `argos_dpolls_votes` MODIFY `id` INT NOT NULL AUTO_INCREMENT;
ALTER TABLE `argos_dpolls_votes` MODIFY `poll_id` INT NOT NULL;
ALTER TABLE `argos_dpolls_votes` MODIFY `ip` VARCHAR(50) NOT NULL;

ALTER TABLE `argos_files` MODIFY `id` INT NOT NULL AUTO_INCREMENT;
ALTER TABLE `argos_files` MODIFY `picture` VARCHAR(255) NOT NULL;
ALTER TABLE `argos_files` MODIFY `author` VARCHAR(100) NOT NULL;
ALTER TABLE `argos_files` MODIFY `down_counts` INT NOT NULL DEFAULT 0;
ALTER TABLE `argos_files` MODIFY `date` bigint NOT NULL;
ALTER TABLE `argos_files` MODIFY `size` VARCHAR(50) NOT NULL;
ALTER TABLE `argos_files` MODIFY `type` VARCHAR(100) NOT NULL;
ALTER TABLE `argos_files` MODIFY `game` VARCHAR(100) NOT NULL;
ALTER TABLE `argos_files` MODIFY `type_not_real` VARCHAR(10) NOT NULL;
ALTER TABLE `argos_files` MODIFY `game_not_real` VARCHAR(10) NOT NULL;
ALTER TABLE `argos_files` MODIFY `category` VARCHAR(100) NOT NULL;
ALTER TABLE `argos_files` MODIFY `opisanie` TEXT NOT NULL;
ALTER TABLE `argos_files` MODIFY `link` VARCHAR(255) NOT NULL;
ALTER TABLE `argos_files` MODIFY `name` VARCHAR(255) NOT NULL;

ALTER TABLE `argos_gallery` MODIFY `id` INT NOT NULL AUTO_INCREMENT;
ALTER TABLE `argos_gallery` MODIFY `date` bigint;
ALTER TABLE `argos_gallery` MODIFY `uploader` VARCHAR(100);
ALTER TABLE `argos_gallery` MODIFY `pic_link` VARCHAR(255);

ALTER TABLE `argos_greyfish_servers` MODIFY `id` INT NOT NULL AUTO_INCREMENT;
ALTER TABLE `argos_greyfish_servers` MODIFY `ip` VARCHAR(50) NOT NULL;
ALTER TABLE `argos_greyfish_servers` MODIFY `port` VARCHAR(10) NOT NULL;
ALTER TABLE `argos_greyfish_servers` MODIFY `players` INT NOT NULL;
ALTER TABLE `argos_greyfish_servers` MODIFY `maxplayers` INT NOT NULL;
ALTER TABLE `argos_greyfish_servers` MODIFY `version` VARCHAR(50) NOT NULL;
ALTER TABLE `argos_greyfish_servers` MODIFY `type` VARCHAR(50) NOT NULL;
ALTER TABLE `argos_greyfish_servers` MODIFY `map` VARCHAR(50) NOT NULL;
ALTER TABLE `argos_greyfish_servers` MODIFY `hostname` VARCHAR(255) NOT NULL;
ALTER TABLE `argos_greyfish_servers` MODIFY `vote` INT NOT NULL DEFAULT 0;
ALTER TABLE `argos_greyfish_servers` MODIFY `status` TINYINT(1) NOT NULL DEFAULT 0;
ALTER TABLE `argos_greyfish_servers` MODIFY `gtrs` TINYINT(1) NOT NULL DEFAULT 0;

ALTER TABLE `argos_jquery_js` MODIFY `id` INT NOT NULL AUTO_INCREMENT;
ALTER TABLE `argos_jquery_js` MODIFY `jquery_js` TEXT NOT NULL;
ALTER TABLE `argos_jquery_js` MODIFY `jquery_js_name` VARCHAR(80);

ALTER TABLE `argos_menus` MODIFY `id` INT NOT NULL AUTO_INCREMENT;
ALTER TABLE `argos_menus` MODIFY `title` VARCHAR(255) NOT NULL;
ALTER TABLE `argos_menus` MODIFY `the_content` TEXT NOT NULL;
ALTER TABLE `argos_menus` MODIFY `position` VARCHAR(50) NOT NULL;

ALTER TABLE `argos_news` MODIFY `id` INT NOT NULL AUTO_INCREMENT;
ALTER TABLE `argos_news` MODIFY `author` VARCHAR(100) NOT NULL;
ALTER TABLE `argos_news` MODIFY `title` VARCHAR(255) NOT NULL;
ALTER TABLE `argos_news` MODIFY `seourl` VARCHAR(255) NOT NULL;
ALTER TABLE `argos_news` MODIFY `text` TEXT NOT NULL;
ALTER TABLE `argos_news` MODIFY `date` bigint DEFAULT NULL;
ALTER TABLE `argos_news` MODIFY `comments` INT(11) DEFAULT 0;
ALTER TABLE `argos_news` MODIFY `comments_enabled` TINYINT(1) DEFAULT 1;
ALTER TABLE `argos_news` MODIFY `img` VARCHAR(255) NOT NULL;
ALTER TABLE `argos_news` MODIFY `vote` INT(11) DEFAULT 0;
ALTER TABLE `argos_news` MODIFY `views` INT(11) DEFAULT 0;
ALTER TABLE `argos_news` MODIFY `cat` VARCHAR(50) NOT NULL DEFAULT 'site_news';

ALTER TABLE `argos_pages` MODIFY `id` INT NOT NULL AUTO_INCREMENT;
ALTER TABLE `argos_pages` MODIFY `page_name` VARCHAR(100) NOT NULL;
ALTER TABLE `argos_pages` MODIFY `page_title` VARCHAR(255) NOT NULL;
ALTER TABLE `argos_pages` MODIFY `menu_type` VARCHAR(50) NOT NULL;
ALTER TABLE `argos_pages` MODIFY `type` VARCHAR(50) NOT NULL DEFAULT 0;
ALTER TABLE `argos_pages` MODIFY `show` TINYINT(1) DEFAULT 1;
ALTER TABLE `argos_pages` MODIFY `addon_regex` VARCHAR(255) NOT NULL DEFAULT '';

ALTER TABLE `argos_sliders` MODIFY `id` INT NOT NULL AUTO_INCREMENT;
ALTER TABLE `argos_sliders` MODIFY `slider_img` VARCHAR(255);
ALTER TABLE `argos_sliders` MODIFY `is_link` TINYINT(1) DEFAULT 0;
ALTER TABLE `argos_sliders` MODIFY `slider_link` VARCHAR(255);
ALTER TABLE `argos_sliders` MODIFY `text` TEXT;

ALTER TABLE `argos_stats` MODIFY `id` INT NOT NULL AUTO_INCREMENT;
ALTER TABLE `argos_stats` MODIFY `date` DATE DEFAULT NULL;
ALTER TABLE `argos_stats` MODIFY `ip` VARCHAR(50);
ALTER TABLE `argos_stats` MODIFY `country` VARCHAR(100);

ALTER TABLE `argos_uploadvideos` MODIFY `id` INT NOT NULL AUTO_INCREMENT;
ALTER TABLE `argos_uploadvideos` MODIFY `uploader` VARCHAR(100) NOT NULL;
ALTER TABLE `argos_uploadvideos` MODIFY `videolink` VARCHAR(255) NOT NULL;
ALTER TABLE `argos_uploadvideos` MODIFY `date` bigint NOT NULL;
ALTER TABLE `argos_uploadvideos` MODIFY `cat` VARCHAR(100) NOT NULL;
ALTER TABLE `argos_uploadvideos` MODIFY `site` VARCHAR(100) NOT NULL;
ALTER TABLE `argos_uploadvideos` MODIFY `approved` TINYINT(1) DEFAULT 0;
ALTER TABLE `argos_uploadvideos` MODIFY `original_title` VARCHAR(255) NOT NULL;

ALTER TABLE `argos_videocat` MODIFY `id` INT NOT NULL AUTO_INCREMENT;
ALTER TABLE `argos_videocat` MODIFY `category` VARCHAR(255) NOT NULL;

ALTER TABLE `argos_voting_ip_greyfish_servers` MODIFY `ip_id` INT NOT NULL AUTO_INCREMENT;
ALTER TABLE `argos_voting_ip_greyfish_servers` MODIFY `mes_id_fk` INT DEFAULT NULL;
ALTER TABLE `argos_voting_ip_greyfish_servers` MODIFY `ip_add` VARCHAR(50) DEFAULT NULL;

ALTER TABLE `argos_voting_ip_comments` MODIFY `ip_id` INT NOT NULL AUTO_INCREMENT;
ALTER TABLE `argos_voting_ip_comments` MODIFY `mes_id_fk` INT DEFAULT NULL;
ALTER TABLE `argos_voting_ip_comments` MODIFY `ip_add` VARCHAR(50) DEFAULT NULL;

ALTER TABLE `argos_voting_ip_news` MODIFY `ip_id` INT NOT NULL AUTO_INCREMENT;
ALTER TABLE `argos_voting_ip_news` MODIFY `mes_id_fk` INT DEFAULT NULL;
ALTER TABLE `argos_voting_ip_news` MODIFY `ip_add` VARCHAR(50) DEFAULT NULL;

ALTER TABLE `argos_acp_user_visits` MODIFY `username` VARCHAR(100) NOT NULL;
ALTER TABLE `argos_acp_user_visits` MODIFY `ip_address` VARCHAR(50) NOT NULL;
ALTER TABLE `argos_acp_user_visits` MODIFY `page_name` TEXT NOT NULL;
ALTER TABLE `argos_acp_user_visits` MODIFY `browser` TEXT NOT NULL;
ALTER TABLE `argos_acp_user_visits` MODIFY `visit_date` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
 
Last edited:
Утре ще пусна 9.6 и на нея вече ще се задържа повече.
В нея ще добавя нова глобална темплейт дефиниция, а иммено {{disabled_acp_pages}}, която ще се декларира в config.env така :
Code:
"DISABLED_ACP_PAGES"="add_server.php,edit_servers.php,add_video_cat.php"
Какво прави тя?
Както се подразбира, тя премахва страници от страничното меню, дори ако сте изтрили всички линкове в даден таб, го изтрива и него.
Полезна е, защото системата може да се ползва за всичко друго, а не и за игри и може някои табове в админ панела да са ненужни и да не пречат толкова на админите, ако няма да се ползват.

Другото важно нещо е, че инсталатора вече няма да работи след успешна инсталация и дори при грешни данни пак ще бъдете редиректнати към него, за да ги поправите.
Това е важно, защото някои хора ги е страх и го трият, а пък то няма смисъл. Е, сега вече няма да е активен, а за сметка на това ще излиза съобщение, че системата е инсталирана успешно.

За новия sql.php стана ясно по-нагоре, който също ще влезе в 9.6
И:
Нова страница в админ панела за ъплоуд на изображения

Това ми се върти в главата и вече 9.7 ще се тества на php 8.4 и при нея ще индентвам кода.
Това е за утре.
 
image.png


9.6:
- Добавяне на локално качване на снимки в галерията само за админи в админ панела.
- Изменения в Install.php контролера, вече при успешна инсталация - инсталатора няма да е достъпен.
- Оптимизации в includes/events.php (вече админ евентите са отделно от другите и са с проверка дали има admin/ в url и чак тогава са активни)
- Добавена е нова глобална променлива DISABLED_ACP_PAGES в config.env, чрез която може да премахвате линкове и табове в админ панелското странично меню
- Argos вече има нов sql, форматиран както трябва.

9.5 -> 9.6:
Изменения в:
admin/
includes/
core.php
lang/
install/
App/
readme/
version.json

Изпълвате тази заявка:
ALTER table argos_gallery add column type varchar(6);
ALTER table argos_gallery add column title varchar(100);

Това е версията на която ще се задържа по-дълго и ще чакам версия 8.4 на php. Ако след празниците няма промяна в xampp, то от Февруари ще инсталирам https://ampps.com/ и ще работя по него, тъкмо да оправя и несъвместимостите с mysql драйвъра.

След като оправим всичко, ще почна да пренаписвам и екстеншъните малко по-малко.
Напомням, че от 23 Декември влиза в сила промоцията в която може да закупите ядрото за 80 лв.
Весели празници!
 
Last edited:
Напомням за промоцията, която ще трае до 31ви, а именно ядрото ще струва 80 лв и безплатни ъпдейти 6 месеца.

След празниците ще пусна 9.7 в която:
Ще има възможност да стилизирате страницирането и неговите класове директно от файл pagination.json в темплейт папката ви. Ето примерно съдържание :
Code:
{
    "btn-block": "btn-sm",
    "glyphicon-plus": "fa-plus",
    "btn-default": "btn-primary",
    "pagination": "pagination p-3",
    "pagination-responsive": "",
    "pagination-lg": "",
    "toggle-pagination": "hidden"
}
Така съм премахнал toggle бутона за респонсив и директно се появяват бутоните. Може да реплейсвате всички класове.

Също така, има за оправяне няколко неща, защото като системата е в под папка, някои аякс заявки имат / отпред в линка и ги търси в предна директория.
Това ще го оправя набързо.

В админ панела ще оправя евент календара да не е в цикъл с аякс заявките, а ще взима празниците накуп, за да не забива толкова.

Това е за след празниците.
Весела Коледа и успешна Нова Година!