Помогите, пожалуйста, не могу с этим справится:
Каким образом изменить размер выводимого поля "выбор из списка", что бы там отображалось больше строк? Сейчас отображается только 4 строки, а список большой, порядка 40 строк, и прокручивать его очень неудобно. Тема оформления стандартная, семерка.
Пытался найти через firebug, но он выдает, что имеется textarea, но как изменить его размер - непонятно.
Как сделать, что бы отображалось 10 строк?
Комментарии
Так же интересует как это сделать.
Видимо, никто не знает
hook_form_alter
параметры size, rows, cols, maxlength.
Не могли написать как эти параметры в виде кода прописываются?
<?php
function MODULE_NAME_form_alter(&$form, &$form_state, $form_id) {
if (strpos($form_id,'node_form')) {
$form['body'][LANGUAGE_NONE][0]['#rows'] = 10;
}
}
?>
И подобным образом любое поле. Разные параметры #rows или #size служат для разных элементов, для каких что смотрите Form API.
http://api.drupal.org/api/drupal/developer!topics!forms_api_reference.html
[quote=divined]
<?php
function MODULE_NAME_form_alter(&$form, &$form_state, $form_id) {
if (strpos($form_id,'node_form')) {
$form['body'][LANGUAGE_NONE][0]['#rows'] = 10;
}
}
?>
MODULE_NAME? А в каком модуле когда нужно в админке собственного типа материала?
в своем модуле.
причем для стандартного поля body:
<?php
$form['body'][LANGUAGE_NONE][0]['#rows'] = 10;
$form['body'][LANGUAGE_NONE][0]['summary']['#rows'] = 2;
?>
для cck полей:
<?php
$form['field_promo_en'][LANGUAGE_NONE][0]['value']['#rows'] = 10:
?>
А если я не создавал своего модуля?
создать
код я вам написал, больше ничего не надо.
Выдает ошибку Notice: Undefined index: #type в функции template_preprocess_search_block_form() (строка 1070 в файле /home/f/fr17564/public_html/modules/search/search.module).
Причем точно такую же выдает, если тоже самое прописать в function MY_THEME_form_alter(&$form, &$form_state, $form_id)
В чем разница между ними?
откройте руководство по написанию модулей )))
создаете паку: MY_MODULE
в ней создаете 2 файла:
MY_MODULE.info
MY_MODULE.module
в .info копируете инфу из любого другого модуля, первые 3 строчки изменяя значяения на свои по аналогии
в .module пишите функцию что я вам дал
и ВЕЗДЕ меняете MY_MODULE на название модуля, которое вы хотите дать своему модулю.
Пишу это уже в 100500 раз.
Так вот именно, что пишу в точности так, а выдает ошибку. Модуль называю машинным именем типа материала. Что может быть не так не пойму.
А отключаете модуль ошибка пропадает?
Да
Выложите исходные коды этих двух файлов. Что-то выделаете не так.
Подобной ошибки быть в принципе не может.
movie.info
description = For movie
package = movie
core = 7.x
; Information added by drupal.org packaging script on 2012-02-27
version = "7.x-2.6"
core = "7.x"
project = "movie"
datestamp = "1330372849"
movie.module
function movie_form_alter(&$form, &$form_state, $form_id) {
$form['body'][LANGUAGE_NONE][0]['#rows'] = 10; //+ в различных вариациях все тоже самое
}
<?php
; Information added by drupal.org packaging script on 2012-02-27
version = "7.x-2.6"
core = "7.x"
project = "movie"
datestamp = "1330372849"
?>
это лишнее
и вы забыли условие:
<?php
if (strpos($form_id,'node_form')) {
}
?>
Ваш код пытает поменять поля абсолютно во всех формах сайта.
C этим условием ошибки нет, но и #rows больше не становится
ну, во первых, этим кодом вы уменьшили размер поля body в 2 раза.
по умолчанию у него 20.
Но, насколько я знаю вам нужно увеличить cck поле выбор из списка с мультивыбором.
Вот и ищите на форме этот элемент и меняйте его.
Машинное поле выбора из списка - field_country
if (strpos($form_id,'movie')) { //$form_id,'node_form' так же безрезультатно
$form['field_country'][LANGUAGE_NONE][0]['#rows'] = 10;
}
}
Ничего..
я же писал ранее что cck поля по другому делаются
там еще в середине массива values не хватает.
Все равно безрезультатно.
Условие не проходится if (strpos($form_id,'movie')) внутри хоть несуществующие переменные пиши, никак не реагирует
у тебя $form_id = movie_node_form
тогда нужно условие if ($form_id == 'movie_node_form') {}
Если бы это помогло... А в каком месте эти стандартные 4 показывающие строчки можно изменить, никак не найду системный файл где это прописывается?