Strana 1 z 1

Kurzovi listok

Napísané: Ne Mar 08, 2009 3:18 am
od používateľa Marek Adamec
vytvoril som si kurzovi listok na php stranke http://www.navrchol.sk/kurz/kurz.php len teraz neviem ako ho vlozim na web http://www.navrchol.sk/index.php?id=59 namiesto kurzoveho listku webnovin...

Re: Kurzovi listok

Napísané: Ne Mar 08, 2009 1:49 pm
od používateľa dutch
No za predpokladu, ze ten tvuj listek neni jenom ciste html, proc proste neudelas novy snippet a nepripojis si ho do templaty?

Re: Kurzovi listok

Napísané: Ne Mar 08, 2009 2:39 pm
od používateľa _rasel^
Ďalším riešením by bolo hodiť kurzový lístok do iframu, čo je najjednoduchšie riešenie, ale najviac zverské... takže to hneď v počiatku radšej zavrhneme. Čiže, tak ako hovorí dutch. Súbor kurz.php bude treba trošku upraviť, hodiť ako snippet a potom použitie v Etomite bude v pohode. Môžeš sem postnúť obsah toho súboru a pozriem sa nato (stačí dúfať, že je to php script, ktorý si ťahá aktuálny kurzový lístok).

Re: Kurzovi listok

Napísané: Ne Mar 08, 2009 3:58 pm
od používateľa Marek Adamec
cez iframe to ide ale je to trochu posunute najlepsie by bolo to riesenie cez snipett. potreboval by som aby to malo sirku 150 px aby mi to voslo do sekcie dom menu...

tu je cely kod, a stahuje aktualne kurzy z ECB:

Kód: Vybrať všetko


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
<head> 
<title>Kurzy mien</title> 
<meta http-equiv="content-type" content="text/html; charset=UTF-8"> 
<style> 
   .currency { 
      font-family: Arial, sans-serif; 
      font-size: 12px; 
      background-color: #fff; 
   } 
   .currency .odd { 
      background-color: #fff; 
   } 
</style> 
</head> 
<body> 
<?php 
   function get_content($url) 
   { 
      $ch = curl_init(); 

      curl_setopt ($ch, CURLOPT_URL, $url); 
      curl_setopt ($ch, CURLOPT_HEADER, 0); 

      ob_start(); 

      curl_exec ($ch); 
      curl_close ($ch); 
      $string = ob_get_contents(); 

      ob_end_clean(); 

      return $string; 
   } 

   $currencies = array( 
      'USD' => array('flag' => 'http://www.navrchol.sk/kurz/usd.gif', 'country' => 'USA'), 
      'GBP' => array('flag' => 'http://www.navrchol.sk/kurz/gbp.gif', 'country' => 'Veľka Britania'), 
      'PLN' => array('flag' => 'http://www.navrchol.sk/kurz/pln.gif', 'country' => 'Poľsko'), 
      'HUF' => array('flag' => 'http://www.navrchol.sk/kurz/huf.gif', 'country' => 'Maďarsko'), 
      'JPY' => array('flag' => 'http://www.navrchol.sk/kurz/jpy.gif', 'country' => 'Japonsko'),
      'AUD' => array('flag' => 'http://www.navrchol.sk/kurz/aud.gif', 'country' => 'Austrália'),
      'DKK' => array('flag' => 'http://www.navrchol.sk/kurz/dkk.gif', 'country' => 'Dánsko'),
      'CAN' => array('flag' => 'http://www.navrchol.sk/kurz/can.gif', 'country' => 'Kanada'),
      'NOK' => array('flag' => 'http://www.navrchol.sk/kurz/nok.gif', 'country' => 'Nórsko'),
      'CHF' => array('flag' => 'http://www.navrchol.sk/kurz/chf.gif', 'country' => 'Švajčiarsko'),
      'SEK' => array('flag' => 'http://www.navrchol.sk/kurz/sek.gif', 'country' => 'Švédsko'),
      'EEK' => array('flag' => 'http://www.navrchol.sk/kurz/eek.gif', 'country' => 'Estónsko'),
      'LTL' => array('flag' => 'http://www.navrchol.sk/kurz/ltl.gif', 'country' => 'Lotyšsko'),
      'BGN' => array('flag' => 'http://www.navrchol.sk/kurz/bgn.gif', 'country' => 'Bulharsko'),
      'RON' => array('flag' => 'http://www.navrchol.sk/kurz/ron.gif', 'country' => 'Rumunsko'),     
      'CZK' => array('flag' => 'http://www.navrchol.sk/kurz/czk.gif', 'country' => 'Česko') 
   ); 

   function xml_vypis($xml) 
   { 
      global $currencies; 
       
      $i = 0; 
      $flag = ""; 
      $country = ""; 
      $vsetko = "<table class='currency'>\n"; 
      foreach($xml->Cube->Cube->Cube as $Nazov) { 
         $currency = (string)$Nazov['currency']; 

         if (isset($currencies[$currency])) { 
            $vsetko .= "<tr class='" . ($i & 1 == 1 ? 'odd' : '') . "'>  <td><img src='" . $currencies[$currency]['flag'] . "'></td> <td>1&euro;</td> <td></td><td></td>  <td>" . $Nazov['rate'] . "</td><td>" . $currency . "</td></tr>\n"; 
         } 

         $i++; 
      } 
      $vsetko .= "</table>\n"; 
      return $vsetko; 
   } 

   #usage: 
   $content = get_content("http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml"); 

   $xml = simplexml_load_string($content); 

   utf8_decode($xml); 
   $vypis = xml_vypis($xml); 
   echo "".$vypis; 


   
?> 
</body> 
</html>


Re: Kurzovi listok

Napísané: Ne Mar 08, 2009 5:32 pm
od používateľa dutch
No tak nejdriv jsem se jal prepisovani toho kodu do snippetu, ale to se mi nejak nevedlo. Takze jsem se rozhodl vyuzit svuj stary snippet Wrapper a udelat to pres nej, jenze... Kdovi proc mi to nechce fungovat ve verzich 1.0 a vyssich, 0.6.x je OK - porovnejte ;) v1.1 & v0.6.1

snippet Wrapper je zde:

Kód: Vybrať všetko

###
#  Snippet: Wrapper
#  Autor: Jarda Travnicek | info(@)j-t.cz
#  Verze: 1.0a [2007-02-13]
#  Syntaxe: [[Wrapper?url=adresa-pro-zobrazeni]]
#    funkcnost odzkousena pouze u Eto v0.6.x
###

$curl_handle = curl_init(); /* inicializujeme novou curl session */
curl_setopt($curl_handle, CURLOPT_URL, $url); /* nastavime parametry curl session, CURLOPT_URL je URL, kterou chceme stáhnout */
curl_setopt($curl_handle, CURLOPT_POST, 1); /* parametry budeme predavat POSTem, takze nastavime 1 */
/*curl_setopt($curl_handle, CURLOPT_POSTFIELDS, "");*/ /* pokud chceme poslat dalsi parametry, nastavime zde */
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1); /* pozadujeme vraceni vysledku, takze opet 1 */
$content = curl_exec($curl_handle); /* vse je nastaveno, zavedeme curl session se vsemi parametry, toto nam vrati obsah pozadavku v html */
curl_close($curl_handle); /* po uspesnem zavedeni curl session taky zavreme */

$result = $content; /* todle neni nutne, ale nevadi :) */

/* z toho, co nam vratil curl, vyluxujeme pouze obsah mezi <body></body> */
preg_match("/
				<\s*body
					(?:
						\s[^>]*
					)?
					\s*>
				(.*)
				<\s*\/\s*body\s*>
			/isx",
			$result,
			$body
			);

$body = @ $body[1];

/* pokud se neshoduji znakove sady, prevedeme je */
#$body = iconv('CP1250', 'UTF-8', $body);

return $body;
Obe verze jsou na php5, takze se to shoduje s tim, co mas ty (cim dal vic me ta 5 zacina stvat :o )