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

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

 

20090
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";
}

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





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

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

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

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

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

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

20090
Dimitry @Dimitry
Вставка видео из Вконтакте

Желающие могут добавить вставку видео через медиа тег [media] из вконтакте, находим в скриптах чата jscripts.dat код про youtube и добавляем зелёное:

etags[i]=new Array(/\[media\]https:\/\/(www\.youtube\.com\/watch\?v=|youtu\.be\/)([a-z0-9\?=_-]+)\[\/media\]/i,'<br><iframe src="https://www.youtube.com/embed/$2" width=458 height=258 frameborder=0 allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>'); i++;

etags[i]=new Array(/\[media\]https:\/\/vk\.com\/video-([0-9]+)_([0-9]+)\[\/media\]/i, '<br><iframe width=280 height=224 src="https://vk.com/video_ext.php?oid=-$1&id=$2" frameborder=0 allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>') i++;


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