Ограничение длины заголовка ноды в 255 символов

Главные вкладки

Аватар пользователя Zuko Zuko 23 марта 2011 в 15:23

Столкнулся с необходимостью создать ноду, у которой длина ноды может быть больше 255 символов.
Как снять ограничение на длину заголовка? В БД изменял поле "title" с varchar(255) на varchar без указания длины, но видимо в коде жестко прописаны ограничения на заголовок ноды. Что можно с этим сделать?

Комментарии

Аватар пользователя Ростислав Ростислав 23 марта 2011 в 16:22

решение без хука, основанное на первом. Создайте новое обязательное поле, в node.tpl.php поместите его вывод на месте title, title уберите из шаблона. При сохранении ноды по клику на сабмит заполните данные title данными первого поля, или хотя бы nid ноды туда (чтобы не было пустое, иначе не сохраните).

$($document).ready(function(){
        $(".new-field").blur(function(){
                var value = $(this).val();
                $(".title").val(value);
        })
})
Аватар пользователя vitg vitg 23 марта 2011 в 18:29

"Zuko" wrote:
varchar(255) на varchar без указания длины

varchar не более 255 символов - попробуйте использовать text.

По-моему, это тянет на изменение ядра.

Аватар пользователя Punk_UnDeaD Punk_UnDeaD 23 марта 2011 в 19:11

"vitg" wrote:
varchar не более 255 символов - попробуйте использовать text.

По-моему, это тянет на изменение ядра.

там поле индексируемое, лучше не трогать

Аватар пользователя Zuko Zuko 24 марта 2011 в 12:46

Punk_UnDeaD wrote:

там поле индексируемое, лучше не трогать

Что Вы подразумеваете под индексированием? То, что создан индекс на это поле? Ну и что тут страшного?
С изменением в БД проблем нет.

Насчет создания левого поля и подмены значения в hook_node_load:
Как это отразится на сторонних модулях и на выборках с помощью views? Я полагаю, что views берет заголовки из БД напрямую запросом и все мои замены в hook_node_load идут лесом.
Помимо только вывода необходимо создать CCK поле ("Node Reference"), которое будет ссылаться на ноду (у которой title > 255 символов). Там тоже есть проблемы и ограничение на длину еще меньше Sad

Напишу-ка лучше я свой модуль, чем костыли всякие лепить.

Аватар пользователя Punk_UnDeaD Punk_UnDeaD 24 марта 2011 в 18:18

"Zuko" wrote:
Что Вы подразумеваете под индексированием?

то же что и mySQL

"Zuko" wrote:
То, что создан индекс на это поле? Ну и что тут страшного?

ничего страшного, но сортировать по алфавиту будет трудно, а такое может понадобиться через пару недель

Аватар пользователя Zuko Zuko 25 марта 2011 в 15:39

Punk_UnDeaD wrote:
ничего страшного, но сортировать по алфавиту будет трудно, а такое может понадобиться через пару недель

С чего это будет трудно сортировать? Что изменится то? Ну уберу я ограничение на 255 символов и все, как был индекс так он и останется, в чем проблема?

Аватар пользователя Punk_UnDeaD Punk_UnDeaD 2 апреля 2011 в 17:13

"Zuko" wrote:
Ну уберу я ограничение на 255 символов и все, как был индекс так он и останется, в чем проблема?

ставьте сразу text, чего уж там

Аватар пользователя iNFerNo iNFerNo 23 июля 2012 в 15:50

Как решить проблему у меня заголовки нод за 300 знаков... а короткую/усеченная версия заголовка в титле не загнать

Аватар пользователя Andruxa Andruxa 23 июля 2012 в 16:10

"Ростислав" wrote:
решение без хука

лучше всё-таки с хуком, т.к. заголовок ноды по умолчанию попадает в тайтл страницы

Аватар пользователя iNFerNo iNFerNo 23 июля 2012 в 17:18

"Zuko" wrote:
Помимо только вывода необходимо создать CCK поле ("Node Reference"), которое будет ссылаться на ноду (у которой title > 255 символов). Там тоже есть проблемы и ограничение на длину еще меньше Sad

Напишу-ка лучше я свой модуль, чем костыли всякие лепить.

вы как то решили для ноде референсе?