Views block id

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

Аватар пользователя kv4 kv4 5 декабря 2014 в 6:59

Почему некоторые блоки созданные модулем Views имеют нормальную delta: например my_news, в то время как у некоторых других delta выглядит так: 6afc54f4df9bf9a3666f2387918fac28.

А это потому, что модуль Block (block.module) определяет максимальную длину delta в 32 символа. Но поскольку дельта в модуле Views формируется из названий представлений (а они могут быть более 32 символов), то delta формируется как хэш md5. Ниже кусок кода, который из реализации Views (views.module)

<?php
function views_block_info() {
...
// block.module has a delta length limit of 32, but our deltas can
  // unfortunately be longer because view names can be 32 and display IDs
  // can also be 32. So for very long deltas, change to md5 hashes.
  
$hashes = array();

  

// get the keys because we're modifying the array and we don't want to
  // confuse PHP too much.
  
$keys array_keys($items);
  foreach (
$keys as $delta) {
    if (
strlen($delta) >= 32) {
      
$hash md5($delta);
      
$hashes[$hash] = $delta;
      
$items[$hash] = $items[$delta];
      unset(
$items[$delta]);
    }
  }
...
}
?>

Комментарии

Аватар пользователя vlucas vlucas 5 декабря 2014 в 22:14

"kv4" wrote:
Теперь лучше?

Не совсем ))) Было бы лучше после этого:
"kv4" wrote:
Ниже кусок кода, который из реализации Views (views.module)

А вот кусок кода, который может это исправить (имею в виду, например, альтернативу этому):....

Хотя, всё равно спасибо за информацию!

Аватар пользователя kv4 kv4 6 декабря 2014 в 15:02

"Василий Сергеевич" wrote:
А вот кусок кода, который может это исправить

Зачем это исправлять?

Там всё правильно сделано.

Просто если не хочется, чтобы у блоков были ID типа id="block-views-6afc54f4df9bf9a3666f2387918fac28" давай представлениям короткие имена.

У меня вопрос появился, потому что нужно было стили прописать для этого блока. И я не был уверен, что этот ID сохранится, при переносе представления с блоком на рабочий сервер.