Перед созданием новой темы, пожалуйста, ознакомьтесь с FAQ по LinkorCMS

LinkorCMS php7 mysqli utf8

Новичок
Сообщений: 3
Выкладываю свою измененную версию Линкора под php7.
Из основных изменений
Перевод с mysql на mysqli
Переход на кодировку utf-8
Поддержка php7 и выше насколько выше я фиг его знает у меня работает на 7.2
Некоторые другие изменения и исправления о которых сейчас не вспомню.

Установка стандартная через setup.php

Известные проблемы
bbcode дадут ошибки причиной тому модификатор e в регуляторах я их не использую по этому не исправил правка там 5 минутная.
опросы нужно удалить (будут кроказябры) это нормально для опроса который установщик создаёт так как он его создаёт в кодировке cp1251 (Решение удалить из админки созданный setup.php опрос и создать новый).

https://yadi.sk/d/lzKTuxk_uWJTpw

-- Изменено "Dronnis": 24.02.2020 22:39 --
Супер пользователь
Сообщений: 39
Dronnis:
Выкладываю свою измененную версию Линкора под php7.
Из основных изменений...


Спасибо! Надо бы опробовать..
Супер пользователь
Сообщений: 420
Dronnis:
Поддержка php7 и выше насколько выше я фиг его знает у меня работает на 7.2

спасибо за проделанную работу.
Буду тестить сразу на php 7.4
Супер пользователь
Сообщений: 420
Dronnis:
я их не использую по этому не исправил правка там 5 минутная.

Можно об этом по подробнее?
Новичок
Сообщений: 3
Amney:
Dronnis:
я их не использую по этому не исправил правка там 5 минутная.

Можно об этом по подробнее?

в файле \base\inc\system\bbcode.php замени функцию BbCodePrepare
на вот эту

/**
* Парсер ББ кодов
* @param $Text
* @return string
*/
function BbCodePrepare( $Text ){
$preg = array(
'~\[s\](.*?)\[\/s\]~siu' => '<del>$1</del>',
'~\[b\](.*?)\[\/b\]~siu' => '<strong>$1</strong>',
'~\[i\](.*?)\[\/i\]~siu' => '<em>$1</em>',
'~\[u\](.*?)\[\/u\]~siu' => '<u>$1</u>',
'~\[color=(.*?)\](.*?)\[\/color\]~siu' => '<span style="color:$1;">$2</span>',
'~\[size=(.*?)\](.*?)\[\/size\]~siu' => '<span style="font-size:$1px;">$2</span>',
'~\[div=(.*?)\](.*?)\[\/div\]~siu' => '<div style="$1">$2</div>',
'~\[p=(.*?)\](.*?)\[\/p\]~siu' => '<p style="$1">$2</p>',
'~\[span=(.*?)\](.*?)\[\/span\]~siu' => '<span style="$1">$2</span>',
'~\[left (.*?)\](.*?)\[\/left\]~siu' => '<div style="text-align: left; $1">$2</div>',
'~\[left\](.*?)\[\/left\]~siu' => '<div style="text-align: left;">$1</div>',
'~\[right (.*?)\](.*?)\[\/right\]~siu' => '<div style="text-align: right; $1">$2</div>',
'~\[right\](.*?)\[\/right\]~siu' => '<div style="text-align: right;">$1</div>',
'~\[center (.*?)\](.*?)\[\/center\]~siu' => '<div style="text-align: center; $1">$2</div>',
'~\[center\](.*?)\[\/center\]~siu' => '<div style="text-align: center;">$1</div>',
'~\[justify\](.*?)\[\/justify\]~siu' => '<p style="text-align: justify;">$1</p>',
'~\[pleft\](.*?)\[\/pleft\]~siu' => '<p style="text-align: left;">$1</p>',
'~\[pright\](.*?)\[\/pright\]~siu' => '<p style="text-align: right;">$1</p>',
'~\[pcenter\](.*?)\[\/pcenter\]~siu' => '<p style="text-align: center;">$1</p>',
'~\[br\]~siu' => '<br clear="all">',
'~\[hr\]~siu' => '<hr color="#B5B5B5">',
'~\[line\]~siu' => '<hr>',
'~\[table\]~siu' => '<div><table border="1" cellspacing="1" cellpadding="1" width="50%" style="margin:10px; float:left;" >',
'~\[\/table\]~siu' => '</table></div>',
'~\[tr\]~siu' => '<tr>',
'~\[\/tr\]~siu' => '</tr>',
'~\[td\]~siu' => '<td style="padding:10px;">',
'~\[\/td\]~siu' => '</td>',
'~\[th\]~siu' => '<th>',
'~\[\/th\]~siu' => '</th>',
'~\[\*\](.*?)\[\/\*\]~siu' => '<li>$1</li>',
'~\[\*\]~siu' => '<li>',
'~\[ul\](.*?)\[\/ul\]~siu' => "<ul>$1</li></ul>",
'~\[list\](.*?)\[\/list\]~siu' => "<ul>$1</li></ul>",
'~\[ol\](.*?)\[\/ol\]~siu' => '<ol>$1</li></ol>',

'~\[h1\](.*?)\[\/h1\]~siu' => '<h1>$1</h1>',
'~\[h2\](.*?)\[\/h2\]~siu' => '<h2>$1</h2>',
'~\[h3\](.*?)\[\/h3\]~siu' => '<h3>$1</h3>',
'~\[h4\](.*?)\[\/h4\]~siu' => '<h4>$1</h4>',
'~\[h5\](.*?)\[\/h5\]~siu' => '<h5>$1</h5>',
'~\[h6\](.*?)\[\/h6\]~siu' => '<h6>$1</h6>',
'~\[code\](.*?)\[\/code\]~siu' => '<div class="bbcode_code"><code>$1</code></div>',
'~\[img=(.*?)x(.*?)\](.*?)\[\/img\]~siu' => '<img src="$3" style="width: $1px; height: $2px" >',
'~\[img (.*?)\](.*?)\[\/img\]~siu' => '<img src="$2" title="$1" alt="$1">',
'~\[img\](.*?)\[\/img\]~siu' => '<a href="$1" target="_blank"><img src="$1"></a>',
'~\[quote\](.*?)\[\/quote\]~siu' => '<div class="bbcode_quote">$1</div>',
'~\[quote=(?:"|"|\')?(.*?)["\']?(?:"|"|\')?\](.*?)\[\/quote\]~siu' => '<div class="bbcode_quote"><strong>$1:</strong>$2</div>',
);
$preg_exe = array(
'~\[php\](.*?)\[\/php\]~siu' => function(){
return '<span>'.BbCodeTag('php', '$1').'</span>';
},
'~\[hide\](.*?)\[\/hide\]~siu' => function($r){
return '<div class="bbcode_hide"><a href="javascript:onclick=ShowHide(\''.strlen(md5($r[1])).substr(md5($r[1]),0,3).'\')">Скрытый текст</a>
<div id="'.strlen(md5($r[1])).substr(md5($r[1]),0,3).'" style="visibility: hidden; display: none;">'.$r[1].'</div></div>';
},


'~\[video\](.*?)\[\/video\]~siu' => function($r){
return '<div align="center">'.strip_tags(HtmlCharsDecode($r[1]), '<object><param><embed>').'</div>';
},
'~\[email\](.*?)\[\/email\]~siu' => function($r){
return AntispamEmail($r[1]);
},
'~\[email=(.*?)\](.*?)\[\/email\]~siu' => function($r){
return '<a rel="noindex" href="mailto:'.str_replace('@', '.at.',$r[1]).'">'.$r[2].'</a>';
},
'~\[url\](.*?)\[\/url\]~siu' => function($r){
return '<a href="'.UrlRender($r[1]).'" target="_blank">'.$r[1].'</a>';
},
'~\[url=(.*?)?\](.*?)\[\/url\]~siu' => function($r){
return '<a href="'.UrlRender($r[1]).'" target="_blank">'.$r[2].'</a>';
}

);
$Text = preg_replace(array_keys($preg), array_values($preg), $Text);
foreach($preg_exe as $key => $func){
$Text = preg_replace_callback($key, $func, $Text);
}
return $Text;
}


-- Изменено "Dronnis": 27.04.2020 19:37 --
Супер пользователь
Сообщений: 420
Dronnis:
Amney:
Dronnis:
я их не использую по этому не исправил правка там 5 минутная.

Можно об этом по подробнее?

в файле \base\inc\system\bbcode.php замени функцию BbCodePrepare
на вот эту


/**
* Парсер ББ кодов
* @param $Text
* @return string
*/
function BbCodePrepare( $Text ){
$preg = array(
'~\[s\](.*?)\[\/s\]~siu' => '<del>$1</del>',
'~\[b\](.*?)\[\/b\]~siu' => '<strong>$1</strong>',
'~\[i\](.*?)\[\/i\]~siu' => '<em>$1</em>',
'~\[u\](.*?)\[\/u\]~siu' => '<u>$1</u>',
'~\[color=(.*?)\](.*?)\[\/color\]~siu' => '<span style="color:$1;">$2</span>',
'~\[size=(.*?)\](.*?)\[\/size\]~siu' => '<span style="font-size:$1px;">$2</span>',
'~\[div=(.*?)\](.*?)\[\/div\]~siu' => '<div style="$1">$2</div>',
'~\[p=(.*?)\](.*?)\[\/p\]~siu' => '<p style="$1">$2</p>',
'~\[span=(.*?)\](.*?)\[\/span\]~siu' => '<span style="$1">$2</span>',
'~\[left (.*?)\](.*?)\[\/left\]~siu' => '<div style="text-align: left; $1">$2</div>',
'~\[left\](.*?)\[\/left\]~siu' => '<div style="text-align: left;">$1</div>',
'~\[right (.*?)\](.*?)\[\/right\]~siu' => '<div style="text-align: right; $1">$2</div>',
'~\[right\](.*?)\[\/right\]~siu' => '<div style="text-align: right;">$1</div>',
'~\[center (.*?)\](.*?)\[\/center\]~siu' => '<div style="text-align: center; $1">$2</div>',
'~\[center\](.*?)\[\/center\]~siu' => '<div style="text-align: center;">$1</div>',
'~\[justify\](.*?)\[\/justify\]~siu' => '<p style="text-align: justify;">$1</p>',
'~\[pleft\](.*?)\[\/pleft\]~siu' => '<p style="text-align: left;">$1</p>',
'~\[pright\](.*?)\[\/pright\]~siu' => '<p style="text-align: right;">$1</p>',
'~\[pcenter\](.*?)\[\/pcenter\]~siu' => '<p style="text-align: center;">$1</p>',
'~\[br\]~siu' => '<br clear="all">',
'~\[hr\]~siu' => '<hr color="#B5B5B5">',
'~\[line\]~siu' => '<hr>',
'~\[table\]~siu' => '<div><table border="1" cellspacing="1" cellpadding="1" width="50%" style="margin:10px; float:left;" >',
'~\[\/table\]~siu' => '</table></div>',
'~\[tr\]~siu' => '<tr>',
'~\[\/tr\]~siu' => '</tr>',
'~\[td\]~siu' => '<td style="padding:10px;">',
'~\[\/td\]~siu' => '</td>',
'~\[th\]~siu' => '<th>',
'~\[\/th\]~siu' => '</th>',
'~\[\*\](.*?)\[\/\*\]~siu' => '<li>$1</li>',
'~\[\*\]~siu' => '<li>',
'~\[ul\](.*?)\[\/ul\]~siu' => "<ul>$1</li></ul>",
'~\[list\](.*?)\[\/list\]~siu' => "<ul>$1</li></ul>",
'~\[ol\](.*?)\[\/ol\]~siu' => '<ol>$1</li></ol>',

'~\[h1\](.*?)\[\/h1\]~siu' => '<h1>$1</h1>',
'~\[h2\](.*?)\[\/h2\]~siu' => '<h2>$1</h2>',
'~\[h3\](.*?)\[\/h3\]~siu' => '<h3>$1</h3>',
'~\[h4\](.*?)\[\/h4\]~siu' => '<h4>$1</h4>',
'~\[h5\](.*?)\[\/h5\]~siu' => '<h5>$1</h5>',
'~\[h6\](.*?)\[\/h6\]~siu' => '<h6>$1</h6>',
'~\[code\](.*?)\[\/code\]~siu' => '<div class="bbcode_code"><code>$1</code></div>',
'~\[img=(.*?)x(.*?)\](.*?)\[\/img\]~siu' => '<img src="$3" style="width: $1px; height: $2px" >',
'~\[img (.*?)\](.*?)\[\/img\]~siu' => '<img src="$2" title="$1" alt="$1">',
'~\[img\](.*?)\[\/img\]~siu' => '<a href="$1" target="_blank"><img src="$1"></a>',
'~\[quote\](.*?)\[\/quote\]~siu' => '<div class="bbcode_quote">$1</div>',
'~\[quote=(?:"|"|\')?(.*?)["\']?(?:"|"|\')?\](.*?)\[\/quote\]~siu' => '<div class="bbcode_quote"><strong>$1:</strong>$2</div>',
);
$preg_exe = array(
'~\[php\](.*?)\[\/php\]~siu' => function(){
return '<span>'.BbCodeTag('php', '$1').'</span>';
},
'~\[hide\](.*?)\[\/hide\]~siu' => function($r){
return '<div class="bbcode_hide"><a href="javascript:onclick=ShowHide(\''.strlen(md5($r[1])).substr(md5($r[1]),0,3).'\')">Скрытый текст</a>
<div id="'.strlen(md5($r[1])).substr(md5($r[1]),0,3).'" style="visibility: hidden; display: none;">'.$r[1].'</div></div>';
},


'~\[video\](.*?)\[\/video\]~siu' => function($r){
return '<div align="center">'.strip_tags(HtmlCharsDecode($r[1]), '<object><param><embed>').'</div>';
},
'~\[email\](.*?)\[\/email\]~siu' => function($r){
return AntispamEmail($r[1]);
},
'~\[email=(.*?)\](.*?)\[\/email\]~siu' => function($r){
return '<a rel="noindex" href="mailto:'.str_replace('@', '.at.',$r[1]).'">'.$r[2].'</a>';
},
'~\[url\](.*?)\[\/url\]~siu' => function($r){
return '<a href="'.UrlRender($r[1]).'" target="_blank">'.$r[1].'</a>';
},
'~\[url=(.*?)?\](.*?)\[\/url\]~siu' => function($r){
return '<a href="'.UrlRender($r[1]).'" target="_blank">'.$r[2].'</a>';
}

);
$Text = preg_replace(array_keys($preg), array_values($preg), $Text);
foreach($preg_exe as $key => $func){
$Text = preg_replace_callback($key, $func, $Text);
}
return $Text;
}



-- Изменено "Dronnis": 27.04.2020 19:37 --


Спасибо, друг!
Супер пользователь
Сообщений: 97
День добрый. Попытался установить вышеозначенную версию. С ходу получил:
Warning: mysqli_connect(): (HY000/1045): Access denied for user 'linkor'@'localhost' (using password: YES) in .../base/inc/plugins/database/layer_mysql/mysql.layer.php on line 247
Проблемы с базой данных, проверьте настройки базы данных.

Это реально подлечить?
PS. Всё устанавливалось в чистую папку. Такая реакция на вызов setup.php Запускалось и под пхп7 и под пхп5.

-- Изменено "Quatrix": 10.08.2020 10:35 --
Супер пользователь
Сообщений: 97
Хотя я должно быть иду не тем путём. Пока не хочу создавать новую тему, потому как надеюсь что автор топика ответит на вопрос. А вопрос такой.
Есть старый форум на линкоре, года 3 как не используется как полноценный форум - держу исключительно из-за пары сотен статей с нужной информацией. Т.е. это просто - кладбище, но ценное. Рега отключена. Движуха - обнулена.
Недавно хостер подкинул каку - отключил возможность менять пхп для каждого отдельного сайта - сейчас это можно сделать только для всего аккаунта разом. И я упёрся в проблему - большая часть моих ресурсов работает на php 7, а те, что не работают - легко адаптируются. Остался только один линкор, который моментом валится при переключении версии пхп. А вообще можно ли адаптировать существующую (установленную) версию 1.4.1 под пхп 7 с минимумом плясок?
Супер пользователь
Сообщений: 97
Все вопросы снимаются. Справился. Всё заработало как надо. В некоторых местах появились ромбы с вопросами, но, думаю, с этим тоже вполне справлюсь.
Неизвестный
Сообщений: 1
Dronnis:
-

Систем не устанавливается. Вот что выдало:

Warning: mysqli_connect(): (HY000/1045): Access denied for user 'linkor'@'localhost' (using password: YES) in D:\OpenServer\domains\multusa.ru\base\inc\plugins\database\l
ayer_mysql\mysql.layer.php on line 247

Проблемы с базой данных, проверьте настройки базы данных.


Quatrix:
Все вопросы снимаются. Справился. Всё заработало как надо. В некоторых местах появились ромбы с вопросами, но, думаю, с этим тоже вполне справлюсь.

А как вы исправили?
Может остаться на php 5.5? Есть ли разница между php5 и php7?

-- Изменено "Mlad": 09.09.2020 17:46 --

-- Изменено "Mlad": 09.09.2020 17:46 --
Супер пользователь
Сообщений: 63
Так всё-таки? как исправить?
Warning: mysqli_connect(): (HY000/1045): Access denied for user 'linkor'@'localhost' (using password: YES) in D:\OpenServer\domains\multusa.ru\base\inc\plugins\database\l
ayer_mysql\mysql.layer.php on line 247


-- Изменено "Yaros": 18.09.2020 22:31 --
Уважаемый пользователь
Сообщений: 26
Привет!

В первую очередь, огромнейшее спасибо Dronnis за это обновление! Полгода стоит - полёт нормальный! Всё отлично работает!


Если вдруг кому-нибудь в дальнейшем ещё понадобится.

По поводу ошибки подключения к базе:

Warning: mysqli_connect(): (HY000/1045): Access denied for user 'linkor'@'localhost' (using password: YES) in D:\OpenServer\domains\multusa.ru\base\inc\plugins\database\l
ayer_mysql\mysql.layer.php on line 247


Копия Dronnis'а была сделана с живой системы, а не с нулевого исходника и в ней остались сохранёнными все уже внесённые настройки этой системы. Поэтому при установке с нуля установщик Линкора просит тот пароль, который был внесён в БД localhost Dronnis'ом, а т.к. у нас этого пароля нет, получаем ошибку входа. Эти данные (Логин и пароль) генерируются при установке Линкора и хранятся по пути \config\db_config.php. Для устранения этой ошибки достаточно удалить файлы \config\db_config.php и \config\salt.php, а также добавить \config\system_build.php из архива с оригинальным LincorCMS.

Надеюсь, что это поможет

Гости не могут отвечать на темы. Войдите или Зарегистрируйтесь.
Здесь присутствуют
(пользователей: 0, гостей: 1)
Быстрый переход: