CHtml::linkButton

Предварительное обсуждение найденных ошибок перед отправкой их авторам фреймворка, а также внесение новых предложений.
Ответить
Аватара пользователя
aser
Сообщения: 167
Зарегистрирован: 2009.04.02, 14:25
Откуда: Киев

CHtml::linkButton

Сообщение aser »

Опять таки версия PHP 5.1.2

при вызове CHtml::linkButton , наблюдается в менеджере после тега <body> появляется <###head###> перед <###end###> </body>

Насколько я пока разобрался в версии php 5.2.4 вместо этих тегов подставляется Jquery код для обработки ссылки как кнопки, а в PHP 5.1.2 вставляется в конец страницы после </html>, то есть гдето не сработало РВыважение, метод как исправить пока ищу, если есть у кого-то предложения пишите...
Аватара пользователя
aser
Сообщения: 167
Зарегистрирован: 2009.04.02, 14:25
Откуда: Киев

Re: CHtml::linkButton

Сообщение aser »

Даже не знаю, специально полез в документацию и нашел описание функции preg_replace
mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit ] )
Ну может я не внимательный и там все же есть 5 параметр, как это используется в Yii

Код: Выделить всё

$output=preg_replace('/(<\\/body\s*>)/is','<###end###>$1',$output,1,$fullPage);
Но оказалось умный сайт пхп перебрасывает по локали на документацию на русском, которая к более старой версии PHP, и на английской версии есть действительно 5 параметр:
Description
mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit= -1 [, int &$count ]] )

Searches subject for matches to pattern and replaces them with replacement .

5.1.0 Added the count parameter
Удивительно но параметр передается по ссылке, и в версии 5.1.2, если переменная ранее не объявлена, то возвращается null.

Фикс: В классе system.web.CClientScript в функциях где используется preg_replace перед вызовом функции объявляем переменную которая используется в пятом параметре.

Пример:

Код: Выделить всё

public function renderBodyEnd(&$output)
{
    if(!isset($this->scriptFiles[self::POS_END]) && !isset($this->_scripts[self::POS_END])
        && !isset($this->_scripts[self::POS_READY]) && !isset($this->_scripts[self::POS_LOAD]))
            return;

    $fullPage = 0; //обнуляем
    $output=preg_replace('/(<\\/body\s*>)/is','<###end###>$1',$output,1,$fullPage);
}
Аватара пользователя
Ozzy
Сообщения: 269
Зарегистрирован: 2009.04.02, 15:09
Откуда: Украина, Одесса

Re: CHtml::linkButton

Сообщение Ozzy »

Обнови себе пхп, не мучайся)
Мой маленький блог - http://dbhelp.ru
Аватара пользователя
aser
Сообщения: 167
Зарегистрирован: 2009.04.02, 14:25
Откуда: Киев

Re: CHtml::linkButton

Сообщение aser »

1. На сервере заказчика не мне решать что к чему обновлять, а второе фреймворк то с 5.1 сказано работает, в выходит что с 5.2 ))
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: CHtml::linkButton

Сообщение samdark »

Поговорить с заказчиком об этом, думаю, можно. И скорее всего вопрос решится в твою пользу т.к. причин необновления PHP как-то и не придумаешь…

То, что не работает с 5.1 — плохо. Надо оформить минимальный тестовый код и выслать автору фреймворка.
Kokab
Сообщения: 1
Зарегистрирован: 2015.02.21, 15:26

Re: CHtml::linkButton

Сообщение Kokab »

Очень помог бы тут минимальный набор кода, на котором это можно воспроизвести: SQL-дамп пары табличек, один контроллер, пара моделек, отображение.
Get fast success in Testking a+ tutorial and questions by using our latest exam ccna 200-120 voice pdf We also offer up-to-date Northwood University and answers for your prep of
Ответить