#1 2012-05-24 19:43:06

l564
Člen
Registrován: 2011-03-12
Příspěvky: 292

Re: API Endora - Neoficiální Dokumentace

Tak nyní jsem si podrobně prohlédl script od Martina pro wordpress a spolu si nyní ukážeme jak jej vložit na vaše stránky.

Údaje jsou vloženy do JSONu a budeme je tahat přes script

	$klic = ""; // Tento klíč naleznete v administraci u domény
	$data = file_get_contents("https://webadmin.endora.cz/api/xml/key/".$klic."");

Nyní potřebujeme aby script věděl že jde o JSON

	$json = json_decode($data, true);

Nyní zpracujeme data, abychom snimi mohly pracovat jako s normálnímy
- Pro vypsání aktálního traficu použijeme

	echo $json['traffic']['current'];

- Pro vypsání maximálního traficu použijeme

	echo $json['traffic']['limit'];

- Pro vypsání aktuálně zabraného místa

	echo $json['diskspace']['current'];

- Pro vypsání aktuálně maximálního místa

	echo $json['diskspace']['limit'];

- Pro vypsání programu budeme muset použít podmínku

	if($json['variant'] == "default"){
		echo "Program zdarma";
	}
	else{
		echo "Placený program. Expirace: ".$json['variant']['expire'];
	}

Nyní si še napíšeme do jednoho kódu, a vložíme do tabulky

<?php
	$klic = ""; // Tento klíč naleznete v administraci u domény
	$data = file_get_contents("https://webadmin.endora.cz/api/xml/key/".$klic."");
	$json = json_decode($data, true);
	echo "<table border=\"0\">";
	echo "<tr><td>Disk<td>".$json['diskspace']['current']." z ".$json['diskspace']['limit']."</tr>";
	echo "<tr><td>Traffic<td>".$json['traffic']['current']." z ".$json['traffic']['limit']."</tr>";
	echo "<tr><td>Program<td>";
	if($json['variant'] == "default"){
		echo "Program zdarma";
	}
	else{
		echo "Placený program. Expirace: ".$json['variant']['expire'];
	}
	echo "</tr>";
	echo "</table>";
?>

Další JSONy, ale nerozumím jím.
ad - Něco s reklamou, ale přesně nevím co
messages => warnings - Varování
messages => errors - Chyby

Upozorňuji že toto není officiální dokumentace k API!. Pouze jsem převzal adresu pro předání dat, a JSON jsem použil ze svých znalostí. Třeba se to jako informativní pomůcka bude hodit. Děkuji pěkně za názory, či připomínky

Update 4.5. 2013 -> Objekt pro PHP5

<?php
	class endoraAPI{
		/*
			@Author: Filip Šedivý
			@Version: 1.0.0
			@Parms:
				__construct{
					apiKey = String
					returnType = Bool | echo or return
				}
				
				getValue{
					getValue = String{
						traffic-current,
						traffic-limit,
						diskspace-current,
						diskspace-limit,
						variant,
						expire
					}
				}
				changeMessage{
					object->msgNoExists = ""; (String)
					object->msgKeyEmpty = ""; (String)
				}
			@Use:
				$apiInfo = new endoraAPI("myApiSecurityKeyFromEndora", true);
				$apiInfo->getValue("traffic-current");
		*/
		
		# Hlášky
		var $msgNoExists = "Zadaný klíč neexistuje";
		var $msgKeyEmpty = "Zadaný klíč je prádný";
		
		# Aplikační proměnné
		private $apiKey = ""; // API Endora Key (String)
		private $echoStr = true; // Echo or Return (Bool)
		
		function __construct($api, $echoStr = true) {
			$this->echoStr = $echoStr;
			if($this->keyExists($api) == false){
				if($this->echoStr == true){
					echo $this->msgNoExists;
				}else{
					return $this->msgNoExists;
				}
			}else{
				$this->apiKey = $api;
			}
		}
	
		function getValue($val){
			if(empty($apiKey)){
				if($this->echoStr == true){
					echo $this->msgKeyEmpty;
				}else{
					return $this->msgKeyEmpty;
				}
			}else{
				$returnText = file_get_contents("https://webadmin.endora.cz/api/xml/key/" . $this->apiKey);
				$json = json_decode($returnText, true);
				switch($val){
					case 'traffic-current':
						$returnData = $json['traffic']['current'];
					break;
					
					case 'traffic-limit':
						$returnData = $json['traffic']['limit'];
					break;
					
					case 'diskspace-current':
						$returnData = $json['diskspace']['current'];
					break;
					
					case 'diskspace-limit':
						$returnData = $json['diskspace']['limit'];
					break;
					
					case 'variant':
						 if($json['variant'] == "default"){
							$returnData = "free";
						}else{
							$returnData = "pay";
						}
					break;
					
					case 'expire':
						if($json['variant'] == "default"){
							$returnData = "free";
						}else{
							$returnData = $json['variant']['expire'];
						}
					break;
					
					default:
						$returnData = "case no exists";
					break;
				}
				
				if($this->echoStr == true){
					echo $returnData;
				}else{
					return $returnData;
				}
			}
		}
		
		# Privátní funkce
		private function keyExists($key){
			$returnText = file_get_contents("https://webadmin.endora.cz/api/xml/key/" . $key);
			if($returnText == "not allowed"){
				return false;
			}else{
				return true;
			}
		}
	}
?>

Update 4.5. 2013 - Odebrání odkazu na nefunkční stránky
Update 4.5. 2013 - Napsání objektu

Offline

#2 2012-05-24 20:05:49

Martin
Endora rádce
Místo: Plzeň
Registrován: 2011-01-19
Příspěvky: 1,375
Web

Re: API Endora - Neoficiální Dokumentace

Tak, a můj prasekód je venku...  big_smile
Koukám, že vám to pořád leží v žaludku, tak tedy.

$json['ad']    ->   "ad":"modified/default"

je spíše systémová věc, která poskytuje informaci o tom, jestli byla reklama pozměněna a tedy by byl plugin k ničemu. Bohužel to úplně nefunguje tak, jak bych si představoval, protože (jestli se nepletu) pokud se nastavení jednou změní, zůstane navždy modified i při zpětném nastavení na default. Proto se také plugin pokaždé chová jinak:

if($data['upraveno']!='nezobrazovat') {
// Nebude se zobrazovat výstražný text:
if($json['ad']=='default') { $data['upraveno']='ne'; update_option('endora_reklama', $data); }
// Bude se zobrazovat, nastavení reklamy bylo změněno externě
elseif($json['ad']=='modified') { $data['upraveno']='ano'; update_option('endora_reklama', $data); }
}

Dále

"messages":{"warnings":[],"errors":[]}}

jsou logy z administrace Endory. Kvůli neexistenci vazby na jeden WP projekt jsem neuznal za vhodné toto použít.


Nejnovější článek: www.zeminem.cz ...
Černé díry jsou místa, kde Bůh dělil nulou...
Endora plugin!

Offline

#3 2012-05-24 20:21:49

l564
Člen
Registrován: 2011-03-12
Příspěvky: 292

Re: API Endora - Neoficiální Dokumentace

Děkuji za objasnění, hned je mi tento JSON jasnější... Určitě se někdo najde alespoň třeba pro cron využije, například pro traffic, ale i když ono je to vlastně posílené emailem.

Offline

#4 2012-05-24 20:26:40

Martin
Endora rádce
Místo: Plzeň
Registrován: 2011-01-19
Příspěvky: 1,375
Web

Re: API Endora - Neoficiální Dokumentace

l564 napsal:

Určitě se někdo najde alespoň třeba pro cron využije, například pro traffic ...

Takže je na čase přidat do podmínek provozu další bod a to ten, že je zakázáno překlápět weby pokud hrozí přetečení traffiku a tím si vytvářet sice ošklivý a nepohodlný, ale neomezený hosting?  :geek:


Nejnovější článek: www.zeminem.cz ...
Černé díry jsou místa, kde Bůh dělil nulou...
Endora plugin!

Offline

#5 2012-05-24 20:30:48

l564
Člen
Registrován: 2011-03-12
Příspěvky: 292

Re: API Endora - Neoficiální Dokumentace

Tak toto mě opravdu nenapadlo že jse to dá zneužít. Jestli tedy chcete tak tento topic smažte aby se to nedalo zneužít. Né všichni umí php na výborné úrovni na to aby mohly si vytáhnout JSONy z Wordpress pluginu. Ale určitě bych to přidal do podmínek. Ještě jeden dotaz. Má cenu něco dělat do PHP Fusion a pak to zveřejnít na phpfusion-mods.cz? nebo je to nesmysl.

Offline

#6 2012-05-24 20:39:51

Martin
Endora rádce
Místo: Plzeň
Registrován: 2011-01-19
Příspěvky: 1,375
Web

Re: API Endora - Neoficiální Dokumentace

Zase to není tak kompikované i když uznávám, že zrovna ve zdrojových kódech WP pluginů je relativně nepřehledno, každopádně to důležité, tu adresu, najde každý a vzhledem k tomu, že je to veřejně přístupný zdroják, nemyslím si, že je to problém. Já to mazat tedy nebudu.
Osobně jsem se s (manuálním) překlápěním setkal jednou, no není to správné, nelíbí se mi to, ale zrovna hezké to není ani pro vlastníka webu. Toto rozhodnutí o zařazení (nebo nezařazení) do podmínek provozu nechám na vyšší moci.
K tomu PHP-Fusionu... Vzhledem k tomu, že se hlasovalo o jeho smazání, tak si nemyslím, že to má nějak valný smysl, každopádně pro Joomlu by to bylo více než přínosné!  :idea:


Nejnovější článek: www.zeminem.cz ...
Černé díry jsou místa, kde Bůh dělil nulou...
Endora plugin!

Offline

Zápatí

Založeno na FluxBB | CZ a SK