Курс валют

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

Аватар пользователя vetalb vetalb 10 января 2009 в 11:43

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

<?php
/**
 * Implementation of hook_perm().
 */

function currencies_perm() {
  return array('access cur block settings');
}

/**
 * Implementation of hook_menu().
 */

function currencies_menu() {
  $items = array();
  $items['admin/settings/cur-block'] = array(
    'title' => 'Currency block settings',
    'description' => 'Currency block settings.',
    'page callback' => 'drupal_get_form',
    'page arguments' => array('currencies_settings'),
    'access arguments' => array('access cur block settings'),
  );
  return $items;
}

/**
 * Implementation of hook_block().
 */

 function currencies_block($op = 'list', $delta = 0, $edit = array()) {
  switch ($op) {
    case 'list':
      $blocks[0] = array(
        'info'       => t('Currencies block'),
      );
      return $blocks;
    case 'view':
      switch ($delta) {
        case 0:
          $block['subject'] = t('Currencies block');
          break;
      }
      return $block;
  }
}

/**
 * A block content function.
 */

  // Получаем текущие курсы валют в rss-формате с сайта www.cbr.ru
 
  $content = get_content();
 
  // Разбираем содержимое, при помощи регулярных выражений
 
  $pattern = "#<Valute ID=\"([^\"]+)[^>]+>[^>]+>([^<]+)[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>([^<]+)[^>]+>[^>]+>([^<]+)#i";
 
  preg_match_all($pattern, $content, $out, PREG_SET_ORDER);
 
  $dollar = "";
 
  $euro = "";
 
  foreach($out as $cur)
 
  {
 
    if($cur[2] == 840) $dollar = str_replace(",",".",$cur[4]);
 
    if($cur[2] == 978) $euro   = str_replace(",",".",$cur[4]);
 
  }
 
  echo "Доллар - ".$dollar."<br>";
 
  echo "Евро - ".$euro."<br>";
 
  function get_content()
 
  {
 
    // Формируем сегодняшнюю дату
 
    $date = date("d/m/Y");
 
    // Формируем ссылку
 
    $link = "http://www.cbr.ru/scripts/XML_daily.asp?date_req=$date";
 
    // Загружаем HTML-страницу
 
    $fd = fopen($link, "r");
 
    $text="";
 
    if (!$fd) echo "Запрашиваемая страница не найдена";
 
    else
 
    {
 
      // Чтение содержимого файла в переменную $text
 
      while (!feof ($fd)) $text .= fgets($fd, 4096);
 
    }
 
    // Закрыть открытый файловый дескриптор
 
    fclose ($fd);
 
    return $text;
 
  }
 

Комментарии

Аватар пользователя Ромка Ромка 10 января 2009 в 14:03

Чего-то этот код очень похож на мой модуль для курсов валют. Даже комменты в коде такие же, только я вместо кривых регэкспов для парсинга XML использовал SimpleXML.

Кстати, завтра выложу версию, которая показывает динамику изменения курсов.

Аватар пользователя vetalb vetalb 10 января 2009 в 15:18

Geldora, выложи если не жалко зачем писать что у меня есть.
Я понимаю друпал это классно, но не пойму смысла ресурса, дайте ссылку где собраны модули, с нормальными объяснениями или хорошей документации(а не топик с форума). Да все есть на анг. языке хорошо разложено, почему такое нельзя сделать на русском ведь все написано(код) и ресурс называется друпал Россия. Для неопытных юзеров(как я) можно было бы перевести хотя бы основные модули, а то не поймешь что они делают приходится заходить на оф сайт и вчитываться.
Вот откуда взял код, откуда его автор взял не знаю
ссылка

Аватар пользователя PVasili PVasili 10 января 2009 в 15:45

"А вы и есть за меня будете?" - из мультфильма...
vetalb вы кому-нибудь оплатили затраченное время на изучение ваших проблем?
А почему тогда претензии? Вам бесплатно помогают, а вы ругаетесь на человека и упрекаете всех. Где логика?

Аватар пользователя vetalb vetalb 10 января 2009 в 15:59

зачем помогать, если есть хорошая документация я бы и сам разобрался, прочитал как создать блок так и не понял толком, автор пишет про создания блока сам не уверен в том что он правильно это делает. А потом его в коментах поправляют что в описании есть ошибки. Это хорошая документация?
Новичкам и так тяжело разобраться, так еще без форума ничего сделать нельзя. В нете и на сайте порылся ничего не находишь, начинаешь постить всякие пустяки и морочить голову людям. То есть если не знаешь англ. язык ловить с друпал нечего.

Аватар пользователя neochief neochief 10 января 2009 в 17:37

если не знаешь английский, ловить не только с друпал, а и вообще, весьма тяжело. Изучил друпал без форумов и без документации САМ. Хорош ныть.

Аватар пользователя tolyanich tolyanich 16 августа 2011 в 11:44

Подскажите, а как уменьшить количество знаков выводимых после запятой. Т.е. у вас выводится курс доллара с точностью до "28.8576", а хотелось бы попроще - "28.85". Как это реализовать?
Спасибо!