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

Вопросы и ответы по изменению функционала, смене дизайна, переносу сайта и т.п.

Модераторы: Xpycm, Koduc

Правила форума
ВНИМАНИЕ! Форум не является средством гарантированной поддержки клиентов и пользователей. Поэтому на быстрый ответ тут рассчитывать не нужно, как и на ответ вообще. Сотрудники отвечают по мере своих возможностей.

На форуме действует ограничение в 3 сообщения / сутки.
Если Вы хотите сказать "спасибо", то воспользуйтесь функцией "Повысить репутацию" - зелёная иконка "плюс" под ником ответившего.

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

Сообщение solovey6o2 » 14 окт 2015, 21:51

Добрый вечер. Есть скрипт для отображения курса валюты. Не могу понять как вложить результат скрипта в 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"> как это лучше сделать?
Вложения
1.jpg
1.jpg (108.6 КБ) Просмотров: 9639
Версия 1.9.1
solovey6o2
Прохожий
 
Сообщения: 25
Зарегистрирован: 22 июн 2015, 15:44
Откуда: Беларусь
Очки репутации: 0

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

Сообщение Koduc » 15 окт 2015, 12:12

Всё корректно должно работать, если в самом коде ошибок нет. Сайт никаких ошибок не выдает?
-- Меньше знаешь - крепче спишь --
Аватара пользователя
Koduc
Ведущий разработчик
Ведущий разработчик
 
Сообщения: 902
Зарегистрирован: 28 дек 2011, 09:11
Очки репутации: 20

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

Сообщение solovey6o2 » 15 окт 2015, 14:44

На рисунке 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>
Вложения
2.jpg
2.jpg (197.23 КБ) Просмотров: 9635
1.jpg
1.jpg (76.31 КБ) Просмотров: 9635
Версия 1.9.1
solovey6o2
Прохожий
 
Сообщения: 25
Зарегистрирован: 22 июн 2015, 15:44
Откуда: Беларусь
Очки репутации: 0

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

Сообщение solovey6o2 » 19 окт 2015, 15:19

Не подскажите в чем ошибка?
Версия 1.9.1
solovey6o2
Прохожий
 
Сообщения: 25
Зарегистрирован: 22 июн 2015, 15:44
Откуда: Беларусь
Очки репутации: 0

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

Сообщение Xpycm » 19 окт 2015, 15:32

Здравствуйте.

Для оформления кода есть тэг [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
Dropbox
Open Real Estate CMS: FAQ | FAQ 2 | FAQ 3
Изображение
Xpycm
Разработчик
Разработчик
 
Сообщения: 1592
Зарегистрирован: 30 дек 2011, 11:06
Откуда: Йошкар-Ола
Очки репутации: 50

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

Сообщение solovey6o2 » 19 окт 2015, 17:56

Спасибо буду разбираться
Версия 1.9.1
solovey6o2
Прохожий
 
Сообщения: 25
Зарегистрирован: 22 июн 2015, 15:44
Откуда: Беларусь
Очки репутации: 0


Вернуться в Вопросы и помощь по изменениям

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 22

cron