0 Пользователей и 1 Гость просматривают эту тему.
  • 168 Ответов
  • 39954 Просмотров
*

Abix

  • Захожу иногда
  • 77
  • 51 / 6
ОБНОВЛЕНО 04.01.2009

Вот за 2 дня написал простенький модуль курс валют. Ну точнее взял и полностью с нуля переписал старые которые тут нашел.
Его нужно дописать еще, но у меня знаний не хватате =(
1. Нет настроек в админке (РЕШЕНО)
2. В соответствии с этим надо оптимизировать код (РЕШЕНО)
3. Не могу понять почему разница между курсами выщитывается не правильно например 37.8867 - 37.9800 = 0.093299999999994 в итоге получаю ТАКОЕ ЧИСЛО (РЕШЕНО)
4. Добавить  цены на драг металы (ну это я сам на днях допишу) (РЕШЕНО)
5. Добавить КЭШ (РЕШЕНО)
6. Использование собственных шаблонов
7. Добавить возможность увеличивать курс на собственный %(РЕШЕНО)
8. Если нет курсов на текушую дату, то просматривать предыдущую(только драг металлы)(ЧАСТИЧНО) немного переделать надо.
9. Если нет xml файла выводить красиво типа "курсы сейчас не дуступны", но не выдавать ошибку.


mod_mcbr - только вывод курса валют, нет кэша и настроек в админке.
mod_mcbr2 - канул в лету
mod_mcbr3 - Появились настройки в админке и КЭШ (XHTML 1.0 Transitional)

[вложение удалено Администратором]
« Последнее редактирование: 19.02.2009, 17:41:48 от Abix »
Помог? Помоги и мне - поставь "+". =)
З.Ы Да я люблю часто нарушать правила форума... но я ж совсем чуток их нарушаю и иногда... не специально я, руки вперед мыслей бегают =(
*

Kosiak

  • Захожу иногда
  • 76
  • 1 / 0
  • Рулевой
Правильное дело! Спасибо. Попробую на днях поставить потестить.
*

Albas

  • Захожу иногда
  • 72
  • 6 / 4
модуль класс! ^-^
 2 маленьких пожелания:
1) было бы супер, если бы можно было смотреть все курсы валют, как в модуле для 1.0.x
2) что бы можно было изменять курс валют под себя на определенный %
(есть тут)
*

Abix

  • Захожу иногда
  • 77
  • 51 / 6
!
« Ответ #3 : 10.01.2009, 22:12:05 »
модуль класс! ^-^
 2 маленьких пожелания:
1) было бы супер, если бы можно было смотреть все курсы валют, как в модуле для 1.0.x
2) что бы можно было изменять курс валют под себя на определенный %
(есть тут)
Можно смотреть все валюты достаточно добавить их в массив... правда править надо файл helper.php
$name_valutes  = array( 'USD', 'EUR' ); над это строкой коментарий... что нужно вписать =)
для металов аналогично =) Будет админка будет проще.

Округление тоже есть =) но работает своеобразно так как еще не дописан, строка
   $text .=  obrabotka_mass($name_valute,$cbr[$name_valute]['value'],$cbr2[$name_valute]['value'],100);
в конце число меняем на другое.
Чем меньше число тем больше округление (1, 10, 100, 1000)

Если научат как добавить настройки в админку, будет все что только пожелаете.!!
« Последнее редактирование: 10.01.2009, 23:01:43 от Abix »
Помог? Помоги и мне - поставь "+". =)
З.Ы Да я люблю часто нарушать правила форума... но я ж совсем чуток их нарушаю и иногда... не специально я, руки вперед мыслей бегают =(
*

Albas

  • Захожу иногда
  • 72
  • 6 / 4
угу, с этим я уже сам разобрался:)
да уж, без админки ни как >:(
*

Abix

  • Захожу иногда
  • 77
  • 51 / 6
Маленькую ошибку нашел в коде подправьте те кто скачал уже, в шапку сейчас перезалил...

    $raz = ($okrug*$var_m1)-($okrug*$var_m2);
    if($okrug!=1) $raz = round($raz);   // исправить на $okrug!=100000
   $raz = $raz/$okrug;
   $var_round =  $var_m2*$okrug;    // исправить на $var_m1 иначе выводится на предыдущую дату
   if($okrug!=1) $var_round =  round($var_round);   // исправить на $okrug!=100000
   $var_round =  $var_round/$okrug;

и соответственно получается чем больше число в
   $text .=  obrabotka_mass($name_valute,$cbr[$name_valute]['value'],$cbr2[$name_valute]['value'],100);
тем меньше округление. 100000  - вообще отсутствует.
« Последнее редактирование: 12.01.2009, 17:17:57 от Abix »
Помог? Помоги и мне - поставь "+". =)
З.Ы Да я люблю часто нарушать правила форума... но я ж совсем чуток их нарушаю и иногда... не специально я, руки вперед мыслей бегают =(
*

mahp

  • Захожу иногда
  • 127
  • 4 / 0
  • mahp
Joomla 158 на Денвере, инет подключен,
mod_mcbr результат:
Fatal error: Call to undefined function curl_init() in Z:\home\mahp.loc\www\modules\mod_mcbr\helper.php on line 8
mod_mcbr2 результат:
Fatal error: Call to undefined function curl_init() in Z:\home\mahp.loc\www\modules\mod_mcbr\helper.php on line 8
« Последнее редактирование: 11.01.2009, 21:18:29 от mahp »
*

Abix

  • Захожу иногда
  • 77
  • 51 / 6
Joomla 158 на Денвере, mod_mcbr результат:
Fatal error: Call to undefined function curl_init() in Z:\home\mahp.loc\www\modules\mod_mcbr\helper.php on line 8
Вы в настройках пхп покапайтесь и включите обработку функции curl_init().... на локалке надо настроить нормально чтобы работало, а на серваке все ок... так как прямые(знающие) ручки настраивают их =)
Помог? Помоги и мне - поставь "+". =)
З.Ы Да я люблю часто нарушать правила форума... но я ж совсем чуток их нарушаю и иногда... не специально я, руки вперед мыслей бегают =(
*

Abix

  • Захожу иногда
  • 77
  • 51 / 6
найдена еще одна ошибка..... просьба либо поправить код либо перезалить модуль из шапки....
курсы выводятся на предыдущий день..........
   $text .=  obrabotka_mass($name_metall,$cbr3[$name_metall][0]['buy'],$cbr3[$name_metall][1]['buy'],10000);
   $text .=  obrabotka_mass($name_metall,$cbr3[$name_metall][1]['buy'],$cbr3[$name_metall][0]['buy'],10000);
« Последнее редактирование: 12.01.2009, 17:18:50 от Abix »
Помог? Помоги и мне - поставь "+". =)
З.Ы Да я люблю часто нарушать правила форума... но я ж совсем чуток их нарушаю и иногда... не специально я, руки вперед мыслей бегают =(
*

pedrosoft

  • Захожу иногда
  • 367
  • 113 / 7
Abix посмотри мой модуль там минимум кода, должно быть понятно как задавать настройки из адмики http://joomlaforum.ru/index.php/topic,50397.0.html

кстати кеширование добавляется очень просто: в xml файл добавляется параметр (два что бы еще и время можно было указывать):
Код
<param name="cache" type="list" default="1" label="Caching" description="Select whether to cache the content of this module">
<option value="1">Use global</option>
<option value="0">No caching</option>
</param>
<param name="cache_time" type="text" default="900" label="Cache Time" description="The time before the module is recached" />
Интернет Хостинг Центр: отличные цены, лучшее качество, расположение в дата-центре «Оверсан-Меркурий»
*

Abix

  • Захожу иногда
  • 77
  • 51 / 6
Помог? Помоги и мне - поставь "+". =)
З.Ы Да я люблю часто нарушать правила форума... но я ж совсем чуток их нарушаю и иногда... не специально я, руки вперед мыслей бегают =(
*

abasov

  • Новичок
  • 2
  • 0 / 0
Возможность использования через прокси, в скрипте прямой парсинг, может кто нибудь через curl сделал, или еще как нибудь?
« Последнее редактирование: 14.01.2009, 18:45:05 от abasov »
*

skrap

  • Осваиваюсь на форуме
  • 38
  • 0 / 0
Вот такая ерунда получается :(


[вложение удалено Администратором]
« Последнее редактирование: 15.01.2009, 13:11:54 от skrap »
*

mrvitek

  • Новичок
  • 6
  • 0 / 0
Хватайте редакцию, уже с кэшем и красивыми иконками  ^-^ (обновил глюк инсталлятора)

ПРИНЦИПИАЛЬНЫЕ ИЗМЕНЕНИЯ:

- Появился КЭШ  :D
- Поменялись иконки флажков
- Поменялись иконки стрелочек
- Немножко изменил порядок вывода информации (не 01.01.2009, 01.01.09)

Прошу вас продолжать работу по улучшению скрипта  :D

Выкладываю скрипт и сам скрин.
(При первом запуске система может показать ошибку функции filemtime() - но это норм,  обновите и все будет ОК)
у меня все работает на ура


P.S. Abix, у меня есть наработки по погодному скрипту, у меня не получается с импортом XML...давай займемся? Стукнись в асю 156646939

[вложение удалено Администратором]
« Последнее редактирование: 15.01.2009, 11:14:42 от mrvitek »
*

abasov

  • Новичок
  • 2
  • 0 / 0
mrvitek спасибо за curl, теперб мона и через прокси:)
C:/WebServers/home/test1.ru/www/modules/mod_mcbr/cachefile.php - менять?
« Последнее редактирование: 15.01.2009, 10:38:57 от abasov »
*

mrvitek

  • Новичок
  • 6
  • 0 / 0
Просто укажи путь к этому файлу два раза (в шапке и на 91ой строке helper.php)

Установите cachefile.php доступ 777 (чтобы файл кэша можно было выгружать)
*

skrap

  • Осваиваюсь на форуме
  • 38
  • 0 / 0
 Я не понимаю, как такое может быть:
Вот в этом месте
Код
//ищем дату на 1 день назад от последней выданной нам
$date_1=date('d.m.Y', strtotime($cbr['date'])-86400);

значение $cbr['date'] - пустое, соответственно date_1=31/12/1969...

вот в этом месте
Код
$text .= ....str_replace(".20",".",$cbr2['date']).'</td><td>'.str_replace(".20",".",$cbr['date'])....

значение $cbr['date'] уже соответствует последней дате, на которую установлен курс...
Причем, судя по всему, у всех работает, а у меня нет  :o

В качестве пожелания: было бы хорошо писать курсы в базу, чтобы можно было выводить динамику, как, например, на Яндексе.
*

Kosiak

  • Захожу иногда
  • 76
  • 1 / 0
  • Рулевой
По поводу графиков и динамики. А нельзя эти данные брать прямо с ресурса, с которого черпаются сами курсы? Там же они наверняка сохраняются.
*

mrvitek

  • Новичок
  • 6
  • 0 / 0
Сервак ЦБ не работает (выдает 500ую ошибку при подключении к ХМЛ файлам) =))) поэтому и скрипты висят...и висят наши Joomla ....на будущее нужно ограничить функцию по времени, либо выводить картинкой
*

mrvitek

  • Новичок
  • 6
  • 0 / 0
Я не понимаю, как такое может быть:
Вот в этом месте
Код
//ищем дату на 1 день назад от последней выданной нам
$date_1=date('d.m.Y', strtotime($cbr['date'])-86400);

значение $cbr['date'] - пустое, соответственно date_1=31/12/1969...

вот в этом месте
Код
$text .= ....str_replace(".20",".",$cbr2['date']).'</td><td>'.str_replace(".20",".",$cbr['date'])....

значение $cbr['date'] уже соответствует последней дате, на которую установлен курс...
Причем, судя по всему, у всех работает, а у меня нет  :o

В качестве пожелания: было бы хорошо писать курсы в базу, чтобы можно было выводить динамику, как, например, на Яндексе.

а вот так:

Код
//урл для последних торгов и перегон в массив
$cbr_m['url'] = 'http://cbr.ru/scripts/XML_daily.asp';
$cbr = xml_normal($cbr_m['url']); // здесь идет обращение к сайту функцией xml_normal(), которая вызывает функцию xml_parser_url()

//ищем дату на 1 день назад от последней выданной нам
$date_1=date('d.m.Y', strtotime($cbr['date'])-86400);
*

skrap

  • Осваиваюсь на форуме
  • 38
  • 0 / 0
а вот так:
а что изменилось? :) код ведь тот же.
На всякий случай проверил, но все осталось по прежнему, предыдущая дата 31/12/69... 
*

skrap

  • Осваиваюсь на форуме
  • 38
  • 0 / 0
По поводу графиков и динамики. А нельзя эти данные брать прямо с ресурса, с которого черпаются сами курсы? Там же они наверняка сохраняются.
Мне кажется, что каждое внешнее соединение увеличивает время загрузки страницы. К тому же если сайт ЦБ подвиснет. А так раз в день записали себе в базу курс, а потом читаем его из собственной базы уже независимо ни от чего.
« Последнее редактирование: 15.01.2009, 17:36:10 от skrap »

Спасибо большое за модуль!  :D есть просьба, если не трудно можно добавить в параметры модуля строчку "Суффикс класса модуля" или подскажите как самому это сделать...
еще раз СПАСИБО!   
*

Kosiak

  • Захожу иногда
  • 76
  • 1 / 0
  • Рулевой
2skrap
Не, я согласен, что в базу писать стоит, но первый месяц/год таких данных там содержаться не будет. При первом запуске можно проверять имеются ли записи за предыдущий месяц и если их нет, то подгружать с ЦБ
*

mrvitek

  • Новичок
  • 6
  • 0 / 0
А так раз в день записали себе в базу курс, а потом читаем его из собственной базы уже независимо ни от чего.

А я что выложил???? C помощью функции кэширования ты как раз, один раз в день в базу записываешь (установи кэш-тайм 86400 секунд = 1 сутки), а потом от туда и читаешь, без соединения с сервером.

P.S. см. измененный mod_mcbr.php

а что изменилось? :) код ведь тот же.

прямо перед cbr['date'] стоит обращение к функции xml_normal(), в ней же идет обращение еще к одной функции и там появляется значение cbr['date']

Т.е. если у тебя это значение пустое - отсюда вывод, что оно просто не соединяется

- могу предположить, что ты:
a) либо что-то из кода неправильно обрезал.
б) либо у тебя в настройках апача/рнр стоит ограничение на 1 курл соединение.
*

skrap

  • Осваиваюсь на форуме
  • 38
  • 0 / 0
Т.е. если у тебя это значение пустое - отсюда вывод, что оно просто не соединяется
Оно пустое в строке 80 (где расчитываем предыдущую дату).
В строке 91 (где вывод первой строки таблицы) оно уже равно текущей дате.
Дома на денвере все-таки врубил curl, и все работает, как надо.... у провайдера на сервере (sweb) - хрен :(
*

mahp

  • Захожу иногда
  • 127
  • 4 / 0
  • mahp
А как сделать валютный мод в который ХМЛ с сайта ЦБ вставить без обрезаний и соответственно без глюков? Скачать ХМЛ и как-то вставить в позицию страницы?
*

skrap

  • Осваиваюсь на форуме
  • 38
  • 0 / 0
А я что выложил???? C помощью функции кэширования ты как раз, один раз в день в базу записываешь (установи кэш-тайм 86400 секунд = 1 сутки), а потом от туда и читаешь, без соединения с сервером.
Новый курс ЦБ устанавливается, предположим, в 14.00. Если установить кэш-тайм сутки, то если, к примеру, кэш создан в 13.00, то мы почти сутки будем показывать курс марсианского динара к венерианскому доллару :)

Кстати, в старом модуле для J1.0 была такая штука, что список валют разворачивался по клику. Имхо, было бы удобно.
*

Abix

  • Захожу иногда
  • 77
  • 51 / 6
Все пожелания постараюсь учесть, но сейчас пока вожусь с запуском сайта, как только разгребусь продолжим модуль писать. =) А пока буду его доделывать только при наличии свободного времени.
*DRINK*

З.Ы 2mrvitek: по погодному скрипту давай на следующей недели. Асю записал имею ввиду тебя.!
Помог? Помоги и мне - поставь "+". =)
З.Ы Да я люблю часто нарушать правила форума... но я ж совсем чуток их нарушаю и иногда... не специально я, руки вперед мыслей бегают =(
*

mrvitek

  • Новичок
  • 6
  • 0 / 0
2Abix: Давай давай  ^-^ В принципе у меня модуль погоды есть более менее собранный.....только вот отпарсить XML тем методом, что ты отпарсил с ЦБ у меня не получается....есть старый метод парсинья - но он требует Легаси, чего не хотелось бы.....к сожалению личные сообщения писать не могу на форуме(низкий рейтинг), поэтому буду ждать тебя а аську
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Модуль отправки e-mail сообщений

Автор zt.Dan4ik

Ответов: 6
Просмотров: 3915
Последний ответ 05.02.2014, 10:12:45
от svetka_777
Модуль определения позиций сайта в Google

Автор Виталик

Ответов: 6
Просмотров: 2305
Последний ответ 03.05.2011, 23:11:16
от dm888
Вывести модуль при помощи php

Автор Tokyo

Ответов: 5
Просмотров: 3646
Последний ответ 22.04.2011, 14:02:20
от era
Курсы валют для 1.56

Автор yagolnik

Ответов: 6
Просмотров: 8286
Последний ответ 19.04.2011, 12:30:28
от offshore
Не могу установить ни один модуль корректно

Автор sin0ptik

Ответов: 2
Просмотров: 1695
Последний ответ 22.03.2011, 17:33:08
от sin0ptik