Как изменить размер поля "выбор из списка"?

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

Аватар пользователя Artem1000 Artem1000 5 сентября 2012 в 8:31

Помогите, пожалуйста, не могу с этим справится:
Каким образом изменить размер выводимого поля "выбор из списка", что бы там отображалось больше строк? Сейчас отображается только 4 строки, а список большой, порядка 40 строк, и прокручивать его очень неудобно. Тема оформления стандартная, семерка.
Пытался найти через firebug, но он выдает, что имеется textarea, но как изменить его размер - непонятно.
Как сделать, что бы отображалось 10 строк?

Комментарии

Аватар пользователя spectra spectra 18 сентября 2012 в 10:41

divined wrote:
hook_form_alter

параметры size, rows, cols, maxlength.

Не могли написать как эти параметры в виде кода прописываются?

Аватар пользователя divined divined 18 сентября 2012 в 11:12
<?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

Аватар пользователя spectra spectra 18 сентября 2012 в 15:29

[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? А в каком модуле когда нужно в админке собственного типа материала?

Аватар пользователя Stalk Stalk 6 апреля 2015 в 14:31

divined wrote:

<?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.ht...

Помогло вот это $form['field_disc_topic']['und']['#size'] = 20;

Аватар пользователя divined divined 18 сентября 2012 в 17:30

в своем модуле.

причем для стандартного поля 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:
?>
Аватар пользователя spectra spectra 19 сентября 2012 в 16:58

divined wrote:
создать

код я вам написал, больше ничего не надо.

Выдает ошибку 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)
В чем разница между ними?

Аватар пользователя divined divined 19 сентября 2012 в 17:02

откройте руководство по написанию модулей )))

создаете паку: MY_MODULE

в ней создаете 2 файла:

MY_MODULE.info
MY_MODULE.module

в .info копируете инфу из любого другого модуля, первые 3 строчки изменяя значяения на свои по аналогии
в .module пишите функцию что я вам дал

и ВЕЗДЕ меняете MY_MODULE на название модуля, которое вы хотите дать своему модулю.

Пишу это уже в 100500 раз.

Аватар пользователя spectra spectra 19 сентября 2012 в 17:18

Так вот именно, что пишу в точности так, а выдает ошибку. Модуль называю машинным именем типа материала. Что может быть не так не пойму.

Аватар пользователя divined divined 19 сентября 2012 в 17:59

Выложите исходные коды этих двух файлов. Что-то выделаете не так.

Подобной ошибки быть в принципе не может.

Аватар пользователя spectra spectra 19 сентября 2012 в 18:05

movie.info

name = movie
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

<?php

function movie_form_alter(&$form, &$form_state, $form_id) {
    $form['body'][LANGUAGE_NONE][0]['#rows'] = 10;  //+ в различных вариациях все тоже самое
}

Аватар пользователя divined divined 19 сентября 2012 в 18:08
<?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')) {
}
?>

Ваш код пытает поменять поля абсолютно во всех формах сайта.

Аватар пользователя divined divined 19 сентября 2012 в 18:16

ну, во первых, этим кодом вы уменьшили размер поля body в 2 раза.

по умолчанию у него 20.

Но, насколько я знаю вам нужно увеличить cck поле выбор из списка с мультивыбором.
Вот и ищите на форме этот элемент и меняйте его.

Аватар пользователя spectra spectra 19 сентября 2012 в 18:24

Машинное поле выбора из списка - field_country

function movie_form_alter(&$form, &$form_state, $form_id) {

    if (strpos($form_id,'movie')) { //$form_id,'node_form' так же безрезультатно
        $form['field_country'][LANGUAGE_NONE][0]['#rows'] = 10;
    }
}

Ничего..

Аватар пользователя spectra spectra 19 сентября 2012 в 18:32

Все равно безрезультатно.
Условие не проходится if (strpos($form_id,'movie')) внутри хоть несуществующие переменные пиши, никак не реагирует

Аватар пользователя spectra spectra 20 сентября 2012 в 9:31

Если бы это помогло... А в каком месте эти стандартные 4 показывающие строчки можно изменить, никак не найду системный файл где это прописывается?