Версия php 7.1
Выдает ошибку: Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in
Где только не спрашиваю, все молчат и никто не знает как устранить.
Код:
if($allow_navigation AND $count_all['count'] > $post_number){
include CLASS_DIR.'/pagination.php';
$pg = new pagination($count_all['count'], $post_number, $cstart);
$arr_pages = $pg->calculate_pages();
if(count($arr_pages['pages']) > 1){
$arr_pages['category_id'] = $category_id;
$arr_link = Array();
$tpl_navigation = ($tpl_navigation) ? $tpl_navigation : 'navigation';
$tpl->load_template(TPL_DIR.'/'.$tpl_navigation.'.tpl');
if($arr_pages['previous'] != $cstart AND $cstart > 1){
$tpl->copy_template = preg_replace( "'\\[prev-link\\](.*?)\\[/prev-link\\]'ies", "faq_get_cstart({$arr_pages['previous']}, '\\1')", $tpl->copy_template );
}else{
$tpl->set_block("'\\[prev-link\\](.*?)\\[/prev-link\\]'si", "\\1");
}
foreach($arr_pages['pages'] as $key => $value){
$pages .= ($arr_pages['current'] == $value) ? '<span>'.$value.'</span> ' : faq_get_cstart($value, $value).' ';
}
$pg_show = $pg->show;
$f_p = $pg_show;
$s_p = ($count_all['count'] / $post_number) - $pg_show;
$s_p = @ceil($s_p);
if($f_p < $arr_pages['current']){
$pages = faq_get_cstart(1, 1).' '.$pages;
}
if($arr_pages['current'] <= $s_p){
$pages = $pages.''.faq_get_cstart($arr_pages['last'], $arr_pages['last']);
}
$tpl->set( '{pages}', $pages);
if($arr_pages['last'] != $cstart AND $arr_pages['last'] != 1){
$tpl->copy_template = preg_replace( "'\\[next-link\\](.*?)\\[/next-link\\]'ies", "faq_get_cstart({$arr_pages['next']}, '\\1')", $tpl->copy_template );
}else{
$tpl->set_block("'\\[next-link\\](.*?)\\[/next-link\\]'si", "\\1");
}
$tpl->compile('faq_content');
$tpl->clear();
}
}
Ругается на этот кусок: (заменить на preg_replace_callback но я не понимаю, как испробовал массу вариантов.)
$tpl->copy_template = preg_replace( "'\\[prev-link\\](.*?)\\[/prev-link\\]'ies", "faq_get_cstart({$arr_pages['previous']}, '\\1')", $tpl->copy_template );