ОсновноеRadiotalkПользовательское
MPCHAT - CMS хостинг чатов для профессионалов
83   •   Посмотреть все темы

🔒 ОБНОВЛЕНИЯ и НОВЫЕ ФУНКЦИИ!

 

20089
Dimitry @Dimitry
Обработчик шаблонов и скриптов для продвинутых
(перенесено, обработчик разработан в декабре 2021г)

Описание работы шаблонизатора

Шаблонизатор теперь подгружается автоматически для всех скриптов, ранее это делала фнукция putinclude(). Система проверяет название модуля, берёт из переменной в /?inc=module или берёт из ссылки /module. Если есть PHP модуль module.php то загружает его + в конце подгружает module.inc, если нет, то сразу загружает module.inc, если и его нет то module.html (устаревшее). Модуль по умолчанию - титульная страница index.inc.

НОВОЕ: Если модуль или шаблон не найден, то будет подгружена 404 страница error.inc c ошибкой "404 - Страница не найдена".

НОВОЕ: Теперь можно в любых php модулях использовать массив переменных $var который автоматически подгружается и подставляет переменные в шаблон. Но это конечно же не всё, также теперь можно подгружать PHP функции которые будут автоматически вставляться в шаблон.

НОВОЕ: Все системные функции размещаются в файле _functions.php и его нельзя изменять. Чтобы добавить свои функции, просто создайте свой новый файл _myfunctions.php в папке рядом с файлом index.php. Этот файл автоматически подгружается в систему и его функции доступны везде. По аналогии с include, все функции могут принимать только 1 входящий параметр. Например: %myinfo=name% запустит функцию _myinfo('name'); - которая может выводить имя авторизованного пользователя. Пример:
function _myinfo($var) {
global $u;
if( $u && !in_array($var, ['id','nick','name']) ) return ""; //security
return $u[$var];
}


Системные функции

Некоторые функции шаблонизатора уже готовы по умолчанию, ниже описание:

1. %year% - запускает функцию _year() и выдаёт текущий год.

2. %loadtime% - запускает функцию _loadtime() и выдаёт время загрузки PHP скрипта.

3. %include=file.html% - запускает функцию _include($file) и вставляет HTML шаблон в нужное место страницы. Например чтобы подгружать шапку и подвал сайта можно использовать: %include=header.html% и %include=footer.html%

Пример простейшей функции _year():
function _year() {
$html=date("Y");
return $html;
}


Исправления для тех кто использует свои PHP модули или редактирует их под себя

1. Необходимо провести важные изменения чтобы чат оставался рабочим в будущем. Если в вашем файле в самом низу есть функция putinclude, её необходимо удалить. Кроме этого входящие в неё параметры должны быть определены переменными $script и $vars. Если не знаете как это сделать, скачайте новый стандартный файл и посмотрите в самом низу.
2. Позже планируется убрать отдельную обработку переменной $script. Она будет добавлена в массив $var.
3. Из всех PHP скриптов удалён код с loadtime выводящий время загрузки страницы. Теперь можно использовать просто %loadtime% в любом шаблоне.

Как настроить CRON для чата?

Добавлена возможность подключить свой крон файл в котором уже подключены функции из _functions.php/_myfunctions.php, выполнено подключение к базе и прочитан конфиг в переменную $cfg. Настройка ниже.

1. Необходимо по аналогии с _myfunctions.php создать свой файл крона рядом с файлом index.php и назвать его: _mycron.php
2. Для ежеминутного запуска этого файла зайдите в панель Webserv24 Планировщик и добавьте строку крона заменив chatlogin на логин вашего чата. Вывод информации будет добавляться в файл data/cron.dat:
* * * * * cd /home/chatlogin/chatlogin/; /usr/bin/php index.php >> data/cron.dat

3. Всё, ваш файл подключен и запускается каждую минуту.
ВАЖНО! Обратите на пример файла, так для безопасности должен выглядеть этот файл:
<?php
if(!defined('CHAT')) die();

//каждый день в полночь
if(date("H:i")=="00:00") {
//echo date("H:i:s")." Cron daily started\n";
}

//каждый час в 00 минут
if(date("i")=="00") {
//echo date("H:i:s")." Cron hourly started\n";
}

//ниже каждую минуту





Скоро допишу тут описание нового шаблонизатора....

20089
Dimitry @Dimitry
Добавлена поддержка новейшей версии PHP 8.3

Данная версия теперь доступна на сервере. Для всех у кого чат был на 8.1 выполнено автоматическое переключение на 8.3. Если ваш чат на 7.4 то эта версия осталась для совместимости с вашими старыми личными PHP скриптами. Если вы не используете свои старые PHP скрипты, то можете смело переключить чат на PHP 8.3 в панели управления Webserv24 -> Домены.

20089
Dimitry @Dimitry
Автоматическая перекодировка записи с микрофона в MP3 формат

Так как все браузеры используют разные форматы звука (mp3, ogg, m4a, aac) чтобы запись работала на всех устройствах и браузерах нужна конвертация в mp3 формат. Ранее такая возможность была только если активировать SSH функции для домена чата.

Теперь в чат добавлен внешний автоматический перекодировщик. Допустим если запись в формате ogg, то чат отправляет звук по API на сервис vmeste.eu, а он в свою очередь перекодирует звук и отправляет MP3 назад. Если сервис vmeste.eu недоступен, то запись останется в оригинальном формате.


В закрытой теме нельзя отправлять сообщения.