Страница 1 из 1

Информер для курса валют

СообщениеДобавлено: 14 окт 2015, 21:51
solovey6o2
Добрый вечер. Есть скрипт для отображения курса валюты. Не могу понять как вложить результат скрипта в DIV на рисунке ниже.
Вот сам скрипт
Код: Выделить всё
<div id="curency" class="menu_item">
  <?php 
  
// Получаем текущие курсы валют в rss-формате с сайта http://www.cbr.ru 
  
$content get_content(); 
  
// Разбираем содержимое, при помощи регулярных выражений 
  
$pattern "#<Currency ID=\"([^\"]+)[^>]+>[^>]+>([^<]+)[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>([^<]+)[^>]+>[^>]+>([^<]+)#i"
  
preg_match_all($pattern$content$outPREG_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 
"<font color='#39C556'>$</font> - ".$dollar."<br>"
  echo 
"<font color='#39C556'>&#8364</font> - ".$euro."<br>"
  function 
get_content() 
  { 
    
// Формируем сегодняшнюю дату 
    
$date date("m/d/Y"); 
    
// Формируем ссылку 
    
$link "http://www.nbrb.by/Services/XmlExRates.aspx?ondate=$date"
    
// Загружаем HTML-страницу 
    
$fd fopen($link"r"); 
    
$text=""
    if (!
$fd) echo "Запрашиваемая страница не найдена"
    else 
    { 
      
// Чтение содержимого файла в переменную $text 
      
while (!feof ($fd)) $text .= fgets($fd4096); 
    } 
    
// Закрыть открытый файловый дескриптор 
    
fclose ($fd); 
    return 
$text
  } 
?>
</div>


В программировании ЗЕЛЕНЫЙ еще, но пробовал вставить внутрь <div id="search" class="menu_item"> сайт грузиться не полностью. Если вставить после DIVa курс появляется внизу страницы. Конечно его можно спозиционировать как мне нужно. Но в этом случае при открытии сайта на мобиле, блок улетает за пределы сайта в право. Хочу чтобы он был внутри этого блока <div id="user-cpanel" class="menu_item"> как это лучше сделать?

Re: Информер для курса валют

СообщениеДобавлено: 15 окт 2015, 12:12
Koduc
Всё корректно должно работать, если в самом коде ошибок нет. Сайт никаких ошибок не выдает?

Re: Информер для курса валют

СообщениеДобавлено: 15 окт 2015, 14:44
solovey6o2
На рисунке 1 результат работы скрипта. Все корректно. На рисунке 2 результат вставки скрипта внутри блока. Вот ошибки Fatal error: Call to undefined function get_content() in /home/c/cn37870/public_html/themes/upn/views/layouts/main.php on line 204

Код: Выделить всё
<div id="user-cpanel"  class="menu_item">
            <?php
            
//          var_dump($this->aData['userCpanelItems']);
          
foreach ($this->aData['userCpanelItems'] as $key => $value) { //  :TODO костыль!
            
if (isset($value['url']) && $value['url'][0] == '/site/logout') {
              
$this->aData['userCpanelItems'][$key]['label'] = 'Выход';
            }
            if (isset(
$value['url']) && $value['url'][0] == '/usercpanel/main/index' && !Yii::app()->user->getId()) {
              
$this->aData['userCpanelItems'][$key]['label'] = 'Авторизация';
            }
          }

          if (!isset(
$adminView)) {
            
$this->widget('zii.widgets.CMenu', array(
              
'id' => 'nav',
              
'items' => $this->aData['userCpanelItems'],
              
'htmlOptions' => array('class' => 'dropDownNav'),
            ));
          } else {
            
$this->widget('zii.widgets.CMenu', array(
              
'id' => 'dropDownNav',
              
'items' => CMap::mergeArray($this->aData['topMenuItems'], array(array('label' => Yii::t('common''Logout'), 'url' => array('/site/logout')))),
              
'htmlOptions' => array('class' => 'dropDownNav adminTopNav'),
            ));
          }
          
?>
          </div>
        
        <?php
        
if (!isset($adminView)) {
          
?>
          <div id="search" class="menu_item">
            <?php
            
if (param('useYandexShare'0))
              
$this->widget('application.extensions.YandexShareApi', array(
                
'services' => param('yaShareServices''yazakladki,moikrug,linkedin,vkontakte,facebook,twitter,odnoklassniki')
              ));
            if (
param('useInternalShare'1))
              
$this->widget('ext.sharebox.EShareBox', array(
                
'url' => Yii::app()->getRequest()->getHostInfo() . Yii::app()->request->url,
                
'title' => CHtml::encode($this->seoTitle $this->seoTitle $this->pageTitle),
                
'iconSize' => 16,
                
'include' => explode(','param('intenalServices''vk,facebook,twitter,google-plus,stumbleupon,digg,delicious,linkedin,reddit,technorati,newsvine')),
              ));

            
/* $this->widget('zii.widgets.CMenu',array(
              'id' => 'dropDownNav',
              'items'=>$this->aData['topMenuItems'],
              'htmlOptions' => array('class' => 'dropDownNav'),
              )); */

            
$this->widget('zii.widgets.CMenu', array(
              
'id' => 'sf-menu-id',
              
'items' => $this->aData['topMenuItems'],
              
'htmlOptions' => array('class' => 'sf-menu'),
              
'encodeLabel' => false,
            ));
            
?>
            <!--<div id="menu_item" class="rsb_courses" data-params="font=arial&c_base=BYR&c_1=USD&c_2=EUR&style=light&bg=2196F3&fc=ffffff&bg2=ffffff&fc2=2196F3&type=4&angle=0&c=1"><script type="text/javascript" src="//rossbanki.ru/js/rsb_c.js"></script>
                </div>
                !-->
                <div id="curency" class="menu_item">
        <?php 
  
// Получаем текущие курсы валют в rss-формате с сайта http://www.cbr.ru 
  
$content get_content(); 
  
// Разбираем содержимое, при помощи регулярных выражений 
  
$pattern "#<Currency ID=\"([^\"]+)[^>]+>[^>]+>([^<]+)[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>([^<]+)[^>]+>[^>]+>([^<]+)#i"
  
preg_match_all($pattern$content$outPREG_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 
"<font color='#39C556'>$</font> - ".$dollar."<br>"
  echo 
"<font color='#39C556'>&#8364</font> - ".$euro."<br>"
  function 
get_content() 
  { 
    
// Формируем сегодняшнюю дату 
    
$date date("m/d/Y"); 
    
// Формируем ссылку 
    
$link "http://www.nbrb.by/Services/XmlExRates.aspx?ondate=$date"
    
// Загружаем HTML-страницу 
    
$fd fopen($link"r"); 
    
$text=""
    if (!
$fd) echo "Запрашиваемая страница не найдена"
    else 
    { 
      
// Чтение содержимого файла в переменную $text 
      
while (!feof ($fd)) $text .= fgets($fd4096); 
    } 
    
// Закрыть открытый файловый дескриптор 
    
fclose ($fd); 
    return 
$text
  } 
?>
 </div>
                </div>

Re: Информер для курса валют

СообщениеДобавлено: 19 окт 2015, 15:19
solovey6o2
Не подскажите в чем ошибка?

Re: Информер для курса валют

СообщениеДобавлено: 19 окт 2015, 15:32
Xpycm
Здравствуйте.

Для оформления кода есть тэг [code]. Пользуйтесь им для обрамления кода при создании/редактирования сообщения
Перенесите функцию get_content() в файл protected/helpers/common.php ( не видит функцию: "Call to undefined function get_content()" )
Почитайте книжки по основам программирования на PHP: viewtopic.php?f=17&t=608#p2975, viewtopic.php?f=9&t=72

Re: Информер для курса валют

СообщениеДобавлено: 19 окт 2015, 17:56
solovey6o2
Спасибо буду разбираться