You are hereБлоги / Ёж's blog / Learning Drupal 6 Development

Learning Drupal 6 Development


Ёж 03 July 2009

Открыл тут книжку Learning Drupal 6 Development товарища Мэтта Бутчера (Matt Butcher), и сразу же - в первом же примере натолкнулся на интересный момент. Конечно, момент не дотягивает вот например до такого:

<?php
phpinfo
();
if (
file_exist('../../../../etc/passwd'))  {
    include(
'../../../../etc/passwd');
  }
?>

или вообще вот такого:

<?php
temp
= a
a
= b
b
= temp
?>

Но тоже не совсем понятно, что хотел сказать автор в нижеследующем коде:

<?php
function _goodreads_block_content($doc, $num_items=3) //!НЕНУЖНЫЙ параметр $num_items
{
$items = $doc->channel->item;

$count_items = count($items);

$len = ($count_items < $num_items) ? $count_items : $num_items; // НЕПОНЯТНАЯ переменная
$template = '<div class="goodreads-item">'
.'<img src="%s"/><br/>%s<br/>by %s</div>';
// Default image: 'no cover'
$default_img = 'http://www.goodreads.com/images/nocover-60x80.jpg';
$default_link = 'http://www.goodreads.com';
$out = '';
  foreach (
$items as $item)
{
 
$author = check_plain($item->author_name);
 
$title = strip_tags($item->title);
 
$link = check_url(trim($item->link));
 
$img = check_url(trim($item->book_image_url));
  if (empty(
$author)) $author = '';
  if (empty(
$title)) $title = '';
  if (empty(
$link)) $link = $default_link;
  if (empty(
$img)) $img = $default_img;
 
$book_link = l($title, $link);
 
$out .= sprintf($template, $img, $book_link, $author);
}
$out .= '<br/><div class="goodreads-more">'
. l('Goodreads.com', 'http://www.goodreads.com')
.
'</div>';
return
$out;
}
?>

Дело в том, что это функция, которая получает данные из объекта SimpleXML и потом отображает их в блоке, но это неважно, интересно другое - второй параметр $num_items, которые по идее должен бы был использоваться для вывода количества элементов, на самом деле не делает ровным счётом ничего. То есть вообще никак не используется, только зачем-то его использует непонятная переменная $len, которая тоже в свою очередь не используется.

Книгу ВанДюка помню костерили неслабо, неужели книга Мэтта Бутчера не лучше? Какие вообще книги по разработке модулей на Друпале можно рекомендовать людям? Без индусского кода. И есть ли вообще такие? Как Вы думаете?

Но кстати в остальном вышеприведённый код не так уж и плох, даже используется защита от XSS-атак.

]]>]]>

RSS-материал