Насколько я понимаю, ее нужно использовать в renderSubmission, но, почему-то, спецсимвол \n не преобразуется в <br>, хотя идея отличная
#11
Posted 02 June 2015 - 11:05
#12
Posted 03 June 2015 - 07:43
Тогда остается только заменять вручнуюпочему-то, спецсимвол \n не преобразуется в
, хотя идея отличная
$text = str_replace(array("\r\n", "\r", "\n"), "<br/>", $text);
Отключайте проверку лицензий как можно скорее!
— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.
#13
Posted 03 June 2015 - 08:51
Тогда остается только заменять вручную
$text = str_replace(array("\r\n", "\r", "\n"), "<br/>", $text);
и где это записать, в renderSubmission?
#14
Posted 04 June 2015 - 07:28
edit - за вывод в панели управления (для имени материала его не изменить через элемент)
render - вывод на сайте
Соответственно, нам нужно изменить render и renderSubmission
Примерно так
public function renderSubmission($params = array()) { return '<textarea name="'.$this->getControlName('value').'">'.htmlspecialchars($this->_item->name).'</textarea>'; }
public function render($params = array()) { if (!empty($this->_item)) { $params = $this->app->data->create($params); if ($params->get('link_to_item', false) && $this->_item->getState()) { return '<a title="' . htmlspecialchars($this->_item->name) . '" href="' . $this->app->route->item($this->_item) . '">' . $this->_item->name . '</a>'; } else { $name = $this->_item->name; $name = str_replace(array("\r\n", "\r", "\n"), "<br/>", $name); return $name; } } }
Отключайте проверку лицензий как можно скорее!
— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.
#15
Posted 04 June 2015 - 09:02
К сожалению, не работает.
То ли условие не срабатывает, то ли функция просто не делает то, что должна.
#16
Posted 04 June 2015 - 09:37
И можете повторить, что мы хотим в итоге получить? Похоже мы перестали друг друга понимать...
Отключайте проверку лицензий как можно скорее!
— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.
#17
Posted 06 June 2015 - 12:06 Best Answer
Имя не сохранится в базу данных с переносом, потому что используется поле varchar(255) которое не поддерживает переносы.
Нужно изменить в самой таблице _zoo_item
И вот другой вариант функции, чтобы перенос был и в ссылках тоже.
public function render($params = array()) { if (!empty($this->_item)) { $name = $this->_item->name; $name = str_replace("\n", "<br/>", $name); $params = $this->app->data->create($params); if ($params->get('link_to_item', true) && $this->_item->getState()) { return '<a title="' . htmlspecialchars($this->_item->name) . '" href="' . $this->app->route->item($this->_item) . '">' . $name . '</a>'; } else { return $name; } } }
Отключайте проверку лицензий как можно скорее!
— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.
Also tagged with one or more of these keywords: name, core element
Основной форум JBZoo →
Ошибки в приложении →
name в edit не везде показывается полностьюStarted by Никола , 16 Feb 2016 name, edit 00 |
|
|