За последние 24 часа нас посетили 16673 программиста и 1642 робота. Сейчас ищут 1837 программистов ...

Помогите!

Тема в разделе "Сделайте за меня", создана пользователем kapriiuk, 2 мар 2015.

  1. kapriiuk

    kapriiuk Новичок

    С нами с:
    2 мар 2015
    Сообщения:
    12
    Симпатии:
    0
    Вообщем выдает ошибку
    Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/u150619730/public_html/lib/classes/templates.php on line 59
    Вот самая 59 строка $this->template = preg_replace ( "#\\[not-aviable=(.+?)\\](.*?)\\[/not-aviable\\]#ies", "\$this->check_module('\\1', '\\2', false)", $this->template );
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    мануал вообще не судьба читать? устарел модификатор e в preg_replace. вместо этого надо использовать preg_replace_callback
     
  3. kapriiuk

    kapriiuk Новичок

    С нами с:
    2 мар 2015
    Сообщения:
    12
    Симпатии:
    0
    спасибо

    Добавлено спустя 3 минуты 28 секунд:
    Не помогло. Стало еще хуже, все шаблони в один слелись,то есть лк пользователя отображаться начал при регистрации
     
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    о, это не мне спасибо. я лишь перевел то что тебе пхп-машина сообщила только ты почему-то даже не подумал разбираться с этой ошибкой и поспешил постить на форум. всё правильно делаешь. мы за тебя все твои проблемы решим. мы читать умеем. и с английским у нас не беда. обращайся.
     
  5. kapriiuk

    kapriiuk Новичок

    С нами с:
    2 мар 2015
    Сообщения:
    12
    Симпатии:
    0
    Не помогло. Стало еще хуже, все шаблони в один слелись,то есть лк пользователя отображаться начал при регистрации
     
  6. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ну ты покажи как сделал-то))))
     
  7. kapriiuk

    kapriiuk Новичок

    С нами с:
    2 мар 2015
    Сообщения:
    12
    Симпатии:
    0
    Было так
    Код (Text):
    1.  if (strpos ( $this->template, "[not-aviable=" ) !== false) {
    2.             $this->template = preg_replace( "#\\[not-aviable=(.+?)\\](.*?)\\[/not-aviable\\]#ies", "\$this->check_module('\\1', '\\2', false)", $this->template );
    3.         }
    сделал так
    Код (Text):
    1. if (strpos ( $this->template, "[not-aviable=" ) !== false) {
    2.             $this->template = preg_replace_callback( "#\\[not-aviable=(.+?)\\](.*?)\\[/not-aviable\\]#ies", "\$this->check_module('\\1', '\\2', false)", $this->template );
    3.         }
    В остальных вроде все нормально, а из-за него все поплыло все шаблоны в один и их стало много
     
  8. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    мало взять одну функцию и заменить её на другую функцию. логика старого кода должна быть реализована новым. и не надо прятаться в личные сообщения - я их боюсь, у меня от них глаз дергается.
     
  9. kapriiuk

    kapriiuk Новичок

    С нами с:
    2 мар 2015
    Сообщения:
    12
    Симпатии:
    0
    Так помоги как нужно, пожалуйста просто очень нужно.Код я тебе дал.
     
  10. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ты новичок. у тебя не может быть "надо". ты учишься. и учиться должен сам. уметь читать мануал. уметь понимать что там написано. уметь понимать как тебе эту ахинею принести на свою задачу на которой ты учишься и у которой нет срочности и ценности. потому что ты учишься.

    был код:
    1. найти такие-то вхождения
    2. заменить таким-то текстом
    3. модификатор е разрешает в заменяемом тексте выполнение пхп выражений
    то есть фактически мы выполняли некоторую функцию этого же объекта (ключевое слово $this я его знаю я мануал читал ага) передавая ему первую и вторую совпавшую группы

    имеем: пхп наконец решила не разрешать выполнение выражений ведь существует функция позволяющая выполнить другую функцию
    что нужно сделать: включить мозги и подумать как выполнить указанный метод и передать ему нужные группы.

    пробуй. или плати.
     
  11. kapriiuk

    kapriiuk Новичок

    С нами с:
    2 мар 2015
    Сообщения:
    12
    Симпатии:
    0
    Правильно?
    До
    Код (Text):
    1. $this->copy_template = preg_replace("#\\{translate=(.+?)\\}#ies", "\$this->load_lang('\\1')", $this->copy_template);
    После
    Код (Text):
    1. $template = preg_replace_callback(
    2.         "#\\[translate=(.+?)\\](.*?)\\[/translate\\]#ies",
    3.         function($matches) {
    4.         return $this->check_module($matches[1], $matches[2]);
    5.         },
    6.             $template
    7.         );
     
  12. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    работает?
     
  13. kapriiuk

    kapriiuk Новичок

    С нами с:
    2 мар 2015
    Сообщения:
    12
    Симпатии:
    0
    Да ошибка исчезла, везде так сделал все подставил заменил, но опять из-за этой строки
    Код (Text):
    1. if (strpos ( $this->template, "[not-aviable=" ) !== false) {
    2.             $this->template = preg_replace ( "#\\[not-aviable=(.+?)\\](.*?)\\[/not-aviable\\]#ies", "\$this->check_module('\\1', '\\2', false)", $this->template );
    3.         }
    Заменил её также на
    Код (Text):
    1. if (strpos ( $this->template, "[not-aviable=" ) !== false) {
    2. $template = preg_replace_callback(
    3.         "#\\[not-aviable=(.+?)\\](.*?)\\[/not-aviable\\]#ies",
    4.         function($matches) {
    5.         return $this->check_module($matches[1], $matches[2]);
    6.         },
    7.             $template
    8.         );
    9.                 }
    Но после этого опять все шаблоны слелись, я уже не знаю что делать, просто умоляю помоги, очень-очень нужно
     
  14. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    чему верить?
     
  15. kapriiuk

    kapriiuk Новичок

    С нами с:
    2 мар 2015
    Сообщения:
    12
    Симпатии:
    0
    $template
     
  16. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ты точно понимаешь почему убрал $this оттуда?
     
  17. kapriiuk

    kapriiuk Новичок

    С нами с:
    2 мар 2015
    Сообщения:
    12
    Симпатии:
    0
    +-, я просто учусь, а тут бац, решил попробовать разобрать vii engine, и сразу столкнулся с такой проблемой(

    Добавлено спустя 55 секунд:
    да и белый экран тогда будет

    Добавлено спустя 2 минуты 57 секунд:
    И видно на фоне
    Код (Text):
    1. [/not-aviable] [aviable=main]
    Добавлено спустя 22 минуты 6 секунд:
    Ну так что?Помоги пожалуйста.
     
  18. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    kapriiuk а зачем брать задачу не по сильную? начни читать книги, там тоже очень много практики и поймёшь как всё работает.