Вопросы по Drupal (и ответы)

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

Аватар пользователя xseed xseed 3 октября 2008 в 20:03
  1. Как увеличить количество одновременно отображаемых терминов на странице таксономии (отображается только 10 первых)?
    Ответ:

    см. ниже

  2. Как увеличить количество отображаемых материалов на странице admin/content/node?
    В modules\node\node.admin.inc
    function node_admin_nodes() {

      $filter = node_build_filter_query();

      $result = pager_query(db_rewrite_sql('SELECT n.*, u.name FROM {node} n '. $filter['join'] .' INNER JOIN {users} u ON n.uid = u.uid '. $filter['where'] .' ORDER BY n.changed DESC'), 50, 0, NULL, $filter['args']);

    50 - количество нод на странице

  3. Как увеличить высоту полей Body при создании ноды и Description при создании термина?
    Ответ:

    Body:

    см. ниже;

    Description:

    В modules\taxonomy\taxonomy.admin.inc

      $form['identification']['description'] = array(
        '#type' => 'textarea',
        '#title' => t('Description'),
        '#default_value' => $edit['description'],

    вставить ниже строку:
        '#rows' => 20,
    20 - начальная высота

  4. Есть ли модули для подсветки кода в полях ноды, хотя бы в Body и др?
    Ответ:

    См. ниже

  5. Как добавить новые поля в тип материала без использования CCK?
    Ответ:

    См. ниже

  6. Как отключить ревизии (версии) материалов, Drupal v6.x?
    Ответ:

    См. ниже

Комментарии

Аватар пользователя Ромка Ромка 3 октября 2008 в 21:01

"xseed" wrote:
Как увеличить количество терминов в словарном списке на странице таксономии?

Ты сам понял что спросил?
"xseed" wrote:
Как увеличить высоту полей Body при создании ноды и Description при создании термина?

CSS
"xseed" wrote:
Есть ли модули для подсветки кода в полях ноды, хотя бы в Body и др?

[module=geshifilter]
"xseed" wrote:
Как добавить новые поля в тип материала без использования CCK?

Node API http://api.drupal.org/api/file/developer/examples/node_example.module/6

Аватар пользователя xseed xseed 4 октября 2008 в 13:42

Подкорректировал 1 вопрос.
На 2 вопрос если можно, поподробнее, какой числовой параметр подкорректировать в файле стиля CSS?

Аватар пользователя Ромка Ромка 5 октября 2008 в 0:40

"xseed" wrote:
На 2 вопрос если можно, поподробнее, какой числовой параметр подкорректировать в файле стиля CSS?

Зависит от конкретной формы. Самый простой способ найти ответ — поставить браузер Firefox, а к нему расширение Firebug, после этого заходишь на нужную тебе страницу, жмешь F12 и кликаешь по любому элементу страницы. Файербаг покажет тебе все CSS свойства, применённые к этому объекту и в каких файлах/строках эти свойства определены. В общем, незаменимый инструмент для отладки html/css/js.

Аватар пользователя Ромка Ромка 5 октября 2008 в 0:43

"xseed" wrote:
Как увеличить количество одновременно отображаемых терминов на странице таксономии (отображается только 10 первых)

Все равно не понимаю о какой "странице таксономии" идет речь.

Аватар пользователя Serebron Serebron 7 октября 2008 в 10:54

вопрос 2

в modules\node\node.pages.inc

$form['body'] = array(
    '#type' => 'textarea',
    '#title' => check_plain($label),
    '#default_value' => $include ? $node->body : ($node->teaser . $node->body),
    '#rows' => 20,
    '#required' => ($word_count > 0),
  );

20 - начальная высота

Аватар пользователя xseed xseed 7 октября 2008 в 21:19

"Serebron" wrote:
вопрос 2

Спасибо!

"Ромка" wrote:
о какой "странице таксономии" идет речь.

/admin/content/taxonomy/#
Отображается только по 10 терминов на каждой странице, а побольше нельзя ли сделать?

Аватар пользователя olk olk 15 октября 2008 в 12:33

admin/content/types (Управление - Содержание - Типы материалов - редактировать нужный вам тип)
Убираешь флажок в секции «Процесс» - «Создавать новую редакцию» ...

Большинство остальных ваших ответвов - не верно Smile так как править код ядра - это во первых «моветон», во вторых все ваши правки сохранятся до первого обновления ядра ...

Аватар пользователя nicolas50 nicolas50 15 октября 2008 в 12:50

Вот код который я использую для вставки материала в поля CCK из внешнего файла .csv :

<?php

$active = true;
// Bootstrap Drupal
include_once "includes/bootstrap.inc";
include_once("includes/common.inc");
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);

// текстовый файль для простоты размещается в корневом каталоге
$data_archive = 'http://testwebsite.com/test.csv';

// название и тип контента которые заданы при создании нового типа данных CCK.
$content_type = 'test';
$content_name = 'test';

if ($active) {
if (user_access("administer content types")) {
insert_content($content_type, $data_archive);

} else {
print "У вас нет достаточных прав.";
}
} else {
print "Значение переменной active = false."."";
}

function insert_content ($content_type, $data_archive) {
// Открываем текстовый файл CSV для чтения.
$handle = fopen($data_archive, "r");
// Чтение заголовка файла из первой линии.
$theHeaders = fgetcsv ($handle, 1000, ";");
// Считаем количество прочтённых линий
$lineno = 0;
while ($line = fgetcsv ($handle)) {
$output = '';
$valueno = 0;
$lineno++;
$output .= '

    Ligne: '. $lineno;
    $observaciones = '';
    foreach ($line as $value) {
    if ($value) {
    $output .= '
  • '.$theHeaders[$valueno].': '.$value.'
  • ';
    $observaciones .= '

  • '.$theHeaders[$valueno].': '.$value.'
  • ';
    }
    $valueno++;
    }
    $output .= '

';

// Создаём новую ноду
$node = array();
// Указываем тип ноды $content_type/$content_name
$node['type'] = $content_type;
$node['name'] = $content_name;

$node['format'] = 0;
// Установка прав на чтение|запись
$node['comment'] = 0;
// Опубликовать?
$node['status'] = 1;
// Разместить на главной странице
$node['promote'] = 0;

$node['sticky'] = 0;

$log = 'Le fichier importé le' . date('g:i:s a');
$node['log'] = $log;

$node['title'] = $line[1];
$node['created'] = $line[4];
$node['name'] = $line[7];
$node['uid'] = $line[8];

// Заполняем поля CCK нашими данными из файла test.csv. Поля field1, field2, field3
// должны в точности соответствовать полям заднным в CCK

$node['field_field1'] = array
(
0 => array
(
'value' => $line[0],
'format' => 4
)
);

$node['field_field2'] = array
(
0 => array
(
'value' => $line[1],
'format' => 4
)
);

$node['field_field3'] = array
(
0 => array
(
'value' => $line[2],
'format' => 4,
)
);

if ($node['title']) {
$node = (object)$node;

$node->taxonomy[] = 1;

$node = node_submit($node);
node_save($node);

print $output;
};
}
}
?>

Аватар пользователя xseed xseed 15 октября 2008 в 12:53

Спасибо за ответ. Насчет правки "ядра" - может быть, и ничего страшного в этом нет - главное ведь знать, где править, :). А если серьезно - это приходится делать, так как в самой системе подобных функций не предусмотрено. Подскажите тогда, как реализовать эти возможности "штатными" средствами?

Аватар пользователя olk olk 15 октября 2008 в 13:52

1. в таблице {variables} найти (а если нет добавить) переменную taxonomy_terms_per_page_admin и установить ей значение i:сколько вам надо; (например i:100;), к сожалению эта переменная не управляется через интерфейс (или я не нашел Smile
(не забыть сбросить кэш, так как переменные кэшируются)
2. Написать свой модуль который позволит вам управлять содержимым так как вам надо (куски кода можно выдрать из того-же node.admin.inc
3. Где то у neochief была статья Модификация форм в Drupal
4. Уже ответили - Geshifilter
5. Уже ответили ну и еще внимательно почитать тут Create new content-type for Drupal 6.x
6. Уже ответил
Успехов Smile