phpRS help fórum : phpRS Fórum
Hlavní diskuzní phpRS fórum. Najdete zde odpovědi na otázky týkající se provozu a instalace phpRS systému.
phpRS - redakční a informační systém
Jít na stránku:  12Další
Aktuální stránka:1 z 2
Kurzový listok ako blok v phpRS 2.6.5.
Zaslán uživatelem/kou: convert (IP adresa zaznamenána)
Datum: 2005-09-19, 19:52

Chcel by som sa spytat ci by niekto nevedel poradit ohladne vlozenia xml do bloku? Skusal som to aj cez rss_parser ale neuspesne pretoze ten xml subor ma inu definiciu a tam som skoncil. Jedná sa o kurzový listok Národnej Banky Slovenska ktorá generuje xml subor kazdy den. Tento xml subor sa nachadza na tu [http://www.nbs.sk/KL/AKTKLSL.XML]. Bližšie info z NBS je na [http://www.nbs.sk/KL/FORMATS.HTM]

Re: Kurzový listok ako blok v phpRS 2.6.5.
Zaslán uživatelem/kou: msteve (IP adresa zaznamenána)
Datum: 2005-09-19, 21:42

Treba mat plugin RSS ktory po nainstalovani zadate ktore RSS server chcete vyuzivat dovnload podla verzie phpRS systemu



MSteve
WEB: Webinfo
Shop: E-shop ---
Reklamný Systém Webinfo:Reklama WebInfo

Shop: Shop-Webinfo
phpRS systems: [url=http://ww.webinfo.sk/referencie.php[/url]
ICQ: 285553903
Skype : msteve1

Re: Kurzový listok ako blok v phpRS 2.6.5.
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2005-09-19, 23:10

MSteve:
On potrebuje práve ten tvoj plugin upraviť pre iné XML, aby to rozparsovalo toto: [http://www.nbs.sk/KL/AKTKLSL.XML]

Skúšal som tú srandu spraviť inak:
<?php
  $listok = "";
  $poz=1;
  $vyber = "AUD USD JPY CZK";
  $filename = "http://www.nbs.sk/KL/AKTKLSL.SDF" ;
  //$filename = "http://localhost/AKTKLSL.SDF" ;
  $dataFile = fopen( $filename, "r" ) ;

  if ( $dataFile )
  {
   while (!feof($dataFile))
   {
       $buffer = fgets($dataFile, 4096);
       $listok .= $buffer;
   }

   fclose($dataFile);
  }
  else
  {
   die( "Error" ) ;
  }

echo '<table border="1" celspacing="5" >';
while ($poz < strlen($listok))
{
	if (strpos($vyber,substr($listok, $poz+34, 3)) !== false)
	{
		echo "\n<tr>";
			echo "\n\t<td>".substr($listok, $poz+2, 15)."</td>";
			echo "\n\t<td>".substr($listok, $poz+29, 4)."</td>";
			echo "\n\t<td>".substr($listok, $poz+34, 3)."</td>";
			echo "\n\t<td>".substr($listok, $poz+39, 7)."</td>";
		echo "\n</tr>";
        }
        $poz = $poz + 62;
}
echo "</table>";
?>


Funguje.

Re: Kurzový listok ako blok v phpRS 2.6.5.
Zaslán uživatelem/kou: convert (IP adresa zaznamenána)
Datum: 2005-09-19, 23:27

Takže už som to spravil pomocou rss_parser. Vysledok si môžete pozrieť tu [http://www.diviaky.sk]. Ešte by som však potreboval vyriešit aby tam zobrazovalo len určité, mnou vybraté štaty. Tu je upraveny súbor rss_parser.php

<?
######################################################################
# phpRS Plug-in modul: RSS správy 2.0.0 Rssconfig
######################################################################
// Copyright (c) 2003 by MSteve - Makker Štefan ([email]mstevel@zoznam.sk[/email])
// [http://www.webinfo.sk]
// This program is free software. - Toto je bezplatny a svobodny software.
// funkcia rss_show() zobrazi linky z jedneho rss suboru
// plug-in z [http://www.develope.host.sk/index.php?action=download]
// upravil Mirek Svrcek - [email]mirek@svrcek.cz[/email]

$_item=array();
$_depth=array();
$_tags=array('dummy');

function prekoduj_win2iso($nacteno) {
  $koduj[128]="&euro;";
  $koduj[130]="&sbquo;";
  $koduj[132]="&bdquo;";
  $koduj[133]="&hellip;";
  $koduj[134]="&dagger;";
  $koduj[135]="&Dagger;";
  $koduj[137]="&permil;";
  $koduj[139]="&lsaquo;";
  $koduj[145]="&lsquo;";
  $koduj[146]="&rsquo;";
  $koduj[147]="&ldquo;";
  $koduj[148]="&rdquo;";
  $koduj[149]="&bull;";
  $koduj[150]="&ndash;";
  $koduj[151]="&mdash;";
  $koduj[153]="&trade;";
  $koduj[155]="&rsaquo;";

  $co=chr(0).chr(1).chr(2).chr(3).chr(4).chr(5).chr(6).chr(7);
  $co.=chr(8).chr(9).chr(10).chr(11).chr(12).chr(13).chr(14).chr(15);
  $co.=chr(16).chr(17).chr(18).chr(19).chr(20).chr(21).chr(22).chr(23);
  $co.=chr(24).chr(25).chr(26).chr(27).chr(28).chr(29).chr(30).chr(31);
  $co.=chr(129).chr(131).chr(136).chr(144).chr(152);
  $co.=chr(138).chr(140).chr(141).chr(142).chr(143).chr(154).chr(156).chr(157).chr(158).chr(159);
  $kam="                                     ";
  $kam.=chr(169).chr(166).chr(171).chr(174).chr(172).chr(185).chr(182).chr(187).chr(190).chr(188);

  $nacteno=strtr($nacteno, $co, $kam);
  foreach ($koduj as $key => $value) {
    $nacteno=str_replace(chr($key), $value, $nacteno);
    }

  return $nacteno;
  }

function initArray() {
  global $_item;

  $_item=array('COUNTRY'=>'', 'CCYCODE'=>'', 'AMOUNT'=>'', 'VALUE'=>'' );
  }

// funkcia sa vola ak XML parser najde zaciatocny tag
function startElement($parser, $name, $attrs) { 
  global $_depth, $_tags, $_item; 

	if ( ($name == 'RATE')||($name == 'CHANNEL')||($name == 'IMAGE')) {
		initArray();
	}
  if (isset($_depth[$parser])) {
      $_depth[$parser]++;
      }
    else {
      $_depth[$parser]=1;
      }
		array_push($_tags, $name);
} 

// funkcia sa vola ak XML parser najde ukoncovaci tag
function endElement($parser, $name) { 
  global $_depth, $_tags, $_item, $rss_output, $rss_desc, $rss_img; 

  array_pop($_tags); 
  $_depth[$parser]--; 
  switch ($name) {
    case 'RATE':
      if($rss_desc == true) {
          $rss_output.='<div class="country">' . $_item['COUNTRY'] . '</div><div class="amount">' . $_item['AMOUNT'] . '' . $_item['CCYCODE'] . ' = ' . $_item['VALUE'] . 'SK</div>' . "\r\n";
          }
        
      initArray(); 
      break;
		case 'IMAGE':
      if($rss_img == true) {
        $rss_output.='<a class="smal" href="' . $_item['LINK'] . '" target="_blank"><img src="' . $_item['URL'] . '" alt="' . $_item['TITLE'] . '" border="0"></a><br>' . "\r\n";
        }
      initArray(); 
      break; 
		case 'CHANNEL': 
      //$rss_channel = $_item[TITLE]; 
      initArray(); 
      break; 
    }
  }

// handler funkcia pre xml_set_character_data_handler()
function parseData($parser, $text) {
  global $_depth, $_tags, $_item;

  $crap=preg_replace("/\s/", "", $text);
  if ($crap) {
    $text=preg_replace("/^\s+/", "", $text);
    if (isset($_item[$_tags[$_depth[$parser]]] )) {
        $_item[$_tags[$_depth[$parser]]].=$text;
        }
      else {
        $_item[$_tags[$_depth[$parser]]]=$text;
        }
    }
  }

function parseRDF($xml_data) {
  global $_depth, $_tags, $_item, $rss_output;

  $rss_output='';
	$xml_parser=xml_parser_create();
	initArray();
	// nastavenie handler funkcii pre zachytavane udalosti
	xml_set_element_handler($xml_parser, "startElement", "endElement");
	xml_set_character_data_handler($xml_parser, "parseData");
	if (! xml_parse($xml_parser, $xml_data, true)) {
	  $rss_output='chyba v XML';
    }
	xml_parser_free($xml_parser);

	return $rss_output;
  }

?>




Celkem upraveno 1×. Poslední úprava convert v 19.09.2005 23:36.

Re: Kurzový listok ako blok v phpRS 2.6.5.
Zaslán uživatelem/kou: msteve (IP adresa zaznamenána)
Datum: 2005-09-19, 23:34

aha teraz uz chapem o co mu islo no ono sa to da pouzit ale treba si to poupravovat ale vidim ze si to zvladol na jednotku pa3k

Takze vdaka pa3K je nova vec kurovy listok nbs


MSteve
WEB: Webinfo
Shop: E-shop ---
Reklamný Systém Webinfo:Reklama WebInfo

Shop: Shop-Webinfo
phpRS systems: [url=http://ww.webinfo.sk/referencie.php[/url]
ICQ: 285553903
Skype : msteve1

Re: Kurzový listok ako blok v phpRS 2.6.5.
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2005-09-19, 23:42

MSteve:
Počkaj, :) myslim, že tá úprava pluginu by bola predsalen lepšia. Ono síce to moje riešenie funguje, ale ten kurzový lístok sa parsuje pri každej požiadavke, ale plugin napr. pekne kešuje atď... Zajtra skúsim pozrieť aj ten plugin a upraviť aby sa dal definovať zoznam kurzov, ktoré sa budú zobrazovať.

Horeuvedené riešenie bez pluginu v prevádzke:
[http://www.kvalitne.sk/nbs.php] - výpis všetkých kurzov
[http://www.kvalitne.sk/kurzyNBS.php] - výpis len vybraných
dal by sa z toho spraviť aj plugin... už len zobraziť, prípadne kešovať, ten lístok sa mení len raz denne.

Re: Kurzový listok ako blok v phpRS 2.6.5.
Zaslán uživatelem/kou: JanVar (IP adresa zaznamenána)
Datum: 2005-09-20, 00:01

IMHO staci, ked ten plugin bude parsovat tak cca jednou za 12 hodin. kursy se tak casto nemeni.. :-D

-- JaV ---- [http://www.hades.cz] ---- security by obscurity ---------------------------------------------
motto:
It's OK to be ignorant; it's not OK to play stupid.
But it's simply not efficient for us to try to help people who are not willing to help themselves.
----------------------------------------------------------------------------------------------------------------------

Re: Kurzový listok ako blok v phpRS 2.6.5.
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2005-09-20, 11:15

> IMHO staci, ked ten plugin bude parsovat tak cca jednou za 12 hodin. kursy se tak casto nemeni..
súhlas, dokonca NBS zverejňuje presný čas aktualizácie kurzového lístku ;) takže by sa to dalo optimalizovať presne namieru. Aplikácia by zapísala čas posledného importu cenníku a ak by požiadavky na zobrazenie boli v intervale platnosti kurzového lístka, nemusel by sa kurzový lístok spracovávať stačilo by poslať na výstup poslednú verziu. Tiež by to čiastočne vyriešilo prípadný krátkodobý výpadok serveru NBS :)

Re: Kurzový listok ako blok v phpRS 2.6.5.
Zaslán uživatelem/kou: convert (IP adresa zaznamenána)
Datum: 2005-09-20, 21:58

Kurzový listok sa aktualizuje denne o 12:00

Re: Kurzový listok ako blok v phpRS 2.6.5.
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2005-09-21, 13:20

úprava pre výpis vybraných kurzov:
case 'RATE':
	if($rss_desc == true && ($_item['CCYCODE']="USD" || $_item['CCYCODE']="JPY")) {
	$rss_output.='<div class="country">' . $_item['COUNTRY'] . '</div><div class="amount">' . $_item['AMOUNT'] . '' . $_item['CCYCODE'] . ' = ' . $_item['VALUE'] . 'SK</div>' . "\r\n";
	}




Celkem upraveno 1×. Poslední úprava pa3k v 21.09.2005 13:30.

Re: Kurzový listok ako blok v phpRS 2.6.5.
Zaslán uživatelem/kou: convert (IP adresa zaznamenána)
Datum: 2005-09-21, 13:54

Takže už to je. Upravené aby sa dal vybrat kurz ktory sa má zobrazovať. Zmenený subor rss-parser.php si môžete stiahnúť dole. Vdaka pa3k



Celkem upraveno 1×. Poslední úprava convert v 21.09.2005 13:57.

Přílohy: rss_parser.php.txt (4kB)  
Re: Kurzový listok ako blok v phpRS 2.6.5.
Zaslán uživatelem/kou: xixo (IP adresa zaznamenána)
Datum: 2008-08-07, 16:28

Dá sa tento plugin kurzového lístka prerobit aj na plugin pre verziu phpRS 2.8.1 ???

Re: Kurzový listok ako blok v phpRS 2.6.5.
Zaslán uživatelem/kou: JanVar (IP adresa zaznamenána)
Datum: 2008-08-07, 19:30

ano, dá

-- JaV ---- [http://www.hades.cz] ---- security by obscurity ---------------------------------------------
motto:
It's OK to be ignorant; it's not OK to play stupid.
But it's simply not efficient for us to try to help people who are not willing to help themselves.
----------------------------------------------------------------------------------------------------------------------

Re: Kurzový listok ako blok v phpRS 2.6.5.
Zaslán uživatelem/kou: xixo (IP adresa zaznamenána)
Datum: 2008-08-07, 22:56

No a čo tam mam zmeniť v tom kode???

Re: Kurzový listok ako blok v phpRS 2.6.5.
Zaslán uživatelem/kou: JanVar (IP adresa zaznamenána)
Datum: 2008-08-07, 23:52

a on ti nefunguje?

-- JaV ---- [http://www.hades.cz] ---- security by obscurity ---------------------------------------------
motto:
It's OK to be ignorant; it's not OK to play stupid.
But it's simply not efficient for us to try to help people who are not willing to help themselves.
----------------------------------------------------------------------------------------------------------------------

Re: Kurzový listok ako blok v phpRS 2.6.5.
Zaslán uživatelem/kou: xixo (IP adresa zaznamenána)
Datum: 2008-08-10, 11:30

Dal som konfigurace -- potom sprava plug-inu a zadal som cestu ku tomu suboru, ktory som uložil na server a dal som "pridať". A stale mi vypisuje:
Error C5: Při pokusu o import zadaného plug-inu došlo k chybě. Ověřte si správnost zadané cesty a kompatibilitu plug-inu s vaší verzí phpRS!
subor som vyskušal uložiť pod rôznymi druhmy kodovania.

Re: Kurzový listok ako blok v phpRS 2.6.5.
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2008-08-10, 21:16

Hoď sem obsah súboru ktorý vkladáš pri inštalácii.

Re: Kurzový listok ako blok v phpRS 2.6.5.
Zaslán uživatelem/kou: xixo (IP adresa zaznamenána)
Datum: 2008-08-10, 21:50

toto je ten subor

Přílohy: obsah.txt (9kB)  
Re: Kurzový listok ako blok v phpRS 2.6.5.
Zaslán uživatelem/kou: JanVar (IP adresa zaznamenána)
Datum: 2008-08-10, 22:20

stačí číst forum... [http://www.phprs.net/forum/read.php?5,31512]

-- JaV ---- [http://www.hades.cz] ---- security by obscurity ---------------------------------------------
motto:
It's OK to be ignorant; it's not OK to play stupid.
But it's simply not efficient for us to try to help people who are not willing to help themselves.
----------------------------------------------------------------------------------------------------------------------

Re: Kurzový listok ako blok v phpRS 2.6.5.
Zaslán uživatelem/kou: xixo (IP adresa zaznamenána)
Datum: 2008-08-11, 20:52

Ja som v tom subore prepisal XML na "php" a pri nahravaní cez admin rozhranie mi vypisalo otazniky na celu stranu.

Jít na stránku:  12Další
Aktuální stránka:1 z 2


Lituji, ale pouze registrovaní uživatelé mohou zasílat příspěvky do této sekce.
This forum powered by Phorum and designed by STaNBoSS.