$Name2) return 1; } //****************************************** // Die MediaWiki Anmeldeprozedur durchführen // - Am Wiki anmelden // - Login bestätigen // - EditToken holen //****************************************** function TM_WikiAnmelden() { global $WikiUserAgent ,$WikiAPI ,$WikiBenutzername ,$WikiPasswort ,$Login ,$EditTokenObjectID; $ch = curl_init(); if($Login) curl_setopt ($ch, CURLOPT_USERPWD, $Login); curl_setopt($ch, CURLOPT_USERAGENT, $WikiUserAgent); curl_setopt($ch, CURLOPT_URL, $WikiAPI); curl_setopt($ch, CURLOPT_RETURNTRANSFER, True); curl_setopt($ch,CURLOPT_COOKIEJAR,'cookies.txt'); curl_setopt($ch,CURLOPT_COOKIEFILE,'cookies.txt'); $data = array('action'=>'login','lgname'=>$WikiBenutzername,'lgpassword'=>$WikiPasswort,'format'=>'php'); curl_setopt($ch, CURLOPT_POSTFIELDS,$data); $erg = curl_exec($ch) or exit('Fehler beim Verbinden mit der Wiki-URL.'); $erg = unserialize($erg) or exit('Die Anmeldung am Wiki ist schiefgelaufen (stimmen die Zugangsdaten, läuft der Wiki-Webserver, die mySQL DB, ist das Wiki normal per Browser erreichbar?).'); $token = $erg['login']['token']; $session = $erg['login']['sessionid']; // Anmeldung bestätigen $header = array('wiki1_session'=>$session,'wiki1Token'=>$token); $data = array('action'=>'login','lgname'=>$WikiBenutzername,'lgpassword'=>$WikiPasswort,'lgtoken'=>$token,'format'=>'php'); curl_setopt($ch, CURLOPT_POSTFIELDS,$data); $erg = curl_exec($ch) or exit('Die Anmeldung am Wiki konnte nicht bestätigt werden.'); // Ein Edit-Token holen $data = array('action'=>'query','prop'=>'info','intoken'=>'edit','titles'=>'Main Page','format'=>'php'); curl_setopt($ch, CURLOPT_POSTFIELDS,$data); $erg = unserialize(curl_exec($ch)) or exit('Anmeldung am Wiki war erfolgreich aber es konnte kein EditToken geholt werden.'); $tmp1 = $erg['query']['pages']; $tmp2 = each($tmp1); $EditToken = $tmp2[1]['edittoken']; // Das Edit-Token in die Variable schreiben SetValue($EditTokenObjectID,$EditToken); return $ch; } //*************************************************** // Am Wiki abmelden und die EditToken Variable leeren //*************************************************** function TM_WikiAbmelden($ch) { global $EditTokenObjectID; $data = array('action'=>'logout','format'=>'php'); curl_setopt($ch, CURLOPT_POSTFIELDS,$data); $erg = curl_exec($ch) or exit('Die Abmeldung am Wiki hat nicht funktioniert.'); curl_close($ch); SetValue($EditTokenObjectID,''); } //********************************************* // Eine Wiki Seite mit neuem Inhalt beschreiben //********************************************* function TM_WikiSeiteBearbeiten($ch,$Seitenname,$Text) { global $EditTokenObjectID; $EditToken = GetValue($EditTokenObjectID); $data = array( 'action'=>'edit' ,'title'=>utf8_encode($Seitenname) ,'summary'=>utf8_encode('Änderungen im IP-Symcon nachdokumentieren.') ,'text'=>utf8_encode($Text) ,'token'=>$EditToken ); curl_setopt($ch, CURLOPT_POSTFIELDS,$data); $erg = curl_exec($ch); } //*************************************************** // Abfragen welche Sektionen es auf einer Seite gibt // Noch nicht funktional - Entwicklung //*************************************************** function TM_WikiSektionenAbfragen($Seitenname) { global $WikiUserAgent ,$WikiAPI ,$HTTPBenutzer ,$HTTPPasswort ,$EditTokenObjectID; $data = array( 'action'=>'parse' ,'title'=>$Seitenname ); } //******************************************************************************** // Liest die Rohinformationen einer Wiki Seite ein und liefert das Ergebnis zurück //******************************************************************************** function TM_WikiPageDownload($url) { global $HTTPBenutzer ,$HTTPPasswort; $ch1 = curl_init($url); curl_setopt ($ch1, CURLOPT_URL, $url); curl_setopt ($ch1, CURLOPT_HEADER, 0); curl_setopt ($ch1, CURLOPT_RETURNTRANSFER, 1); if($HTTPBenutzer) { $Login = $HTTPBenutzer . ':' . $HTTPPasswort; curl_setopt ($ch1, CURLOPT_USERPWD, $Login); } $result = utf8_decode(curl_exec($ch1)); curl_close ($ch1); return $result; } //************************************* // Liefert rekursiv alle Kinder-Objekte //************************************* function GetObjectList($parent) { $ids = IPS_GetChildrenIDs($parent); foreach($ids as $id) { $ids = array_merge($ids, GetObjectList($id)); } return $ids; } //************************************* // Baut die erforderliche Baum-Struktur //************************************* function BuildObjectOrder($Tree,$ParentID=0) { global $DocTypes ,$ObjectsInOrder; foreach($Tree as $key => $value) { if(in_array($value['Type'],$DocTypes)) { if($value['ParentID']===$ParentID) { $ObjectsInOrder[] = $value['ObjectID']; BuildObjectOrder($Tree,$value['ObjectID']); } } } } //*********************************************** // Verlinkt einige Variablen in die Dummy Instanz //*********************************************** function TM_WikiVariablenWebFront($AktionsscriptID,$KategorieHaupt,$KategorieDummy,$VarName,$VarNameWebFront,$VarProfil) { // Die ID der Variable ermitteln $VariableID = @IPS_GetVariableIDByName($VarName,$KategorieHaupt); if($AktionsscriptID <> 0) { IPS_SetVariableCustomProfile($VariableID, $VarProfil); IPS_SetVariableCustomAction($VariableID, $AktionsscriptID); } $LinkID = IPS_CreateLink(); IPS_SetName($LinkID,$VarNameWebFront); IPS_SetParent($LinkID,$KategorieDummy); IPS_SetLinkChildID($LinkID,$VariableID); } ?>