IPSLibrary Step by Step für Dummies!

Hallo Andreas,

da hast Du dir ne Menge Arbeit gemacht.
Ganz großer Respekt!!! :slight_smile:

Ich würde die IPSLibrary (zunächst) gerne nutzen.
Ich habe Interesse an den IPSLogger.

Mein Problem ist nur das ich die IPSLibrary zum Teil nicht mal im Ansatz verstehe. :frowning:

Ich denke das liegt daran das deine, mit Sicherheit gute Beschreibung sehr Fachspezifisch
geschrieben ist. (Bitte, Bitte nicht böse sein.)

Wenn Du Lust hast, könnten wir ja gemeinsam in diesem Thread eine

„IPSLibrary - Step by Step für Dummies!“ (so wie ich) erstellen.

Ich fange einfach mal an.

Wenn ich das richtig verstanden habe, soll die IPSLibrary eine Scriptsammlung sein,
die jeder relativ einfach installieren und nutzen kann. Richtig?

Woher bekomme ich denn die IPSLibrary? Kann ich die irgendwo runterladen?

Besten Dank für deine Hilfe.

Auch wenn die IPSLibrary inkl. IPSLogger bei mir mittlerweile läuft möchte ich Schablone zustimmen.

Ich denke den wenigstens liegt daran was das Konstrukt alles kann sondern wie es Ottonormalverbraucher zur Installation von deinen genialen Produkten nutzen kann.

Prinzipiell werden eigentlich zwei Anleitungen benötigt.

Eine für Dummies und eine für Entwickler.

Ich hatte alleine schon mit der Installation der Library Probleme, mag mitunter auch daran liegen das geschätzte 100 Beiträge gleichzeitig eingestellt wurden, aber nur mit Nachfrage konnte ich diese und den IPSLogger installieren.

Deshalb nochmals auch von mir die Bitte eine Anleitung für Dummies zu erstellen da sonst deine geniale Bibliothek nur von Profis genutzt werden wird.

genau so gehts mir auch: in Erfurcht erstarre ich vor dem Gesamtwerk, das sieht sehr professionell (sowohl vom Konzept her als auch in der Realisierung -> vielleicht wirkt das als Widerspruch zu den folgenden Sätzen) aus. Ich hab die Threads ein wenig mitverfolgt und in die Doku reingelesen. Aber ich hab nicht wirklich im Detail verstanden, was ich damit anfangen kann. Beim lesen ging mir der gleiche Gedanke durch den Kopf: sehr fachspezifisch, aber der gemeine Anwender (wie z.B. ich => ich kann zwar mittlerweile ca 80% meiner IPS-Probleme via PHP lösen, aber von „Fremdcode verstehen“, geschweige denn professionellem Programmieren bin ich ganz, ganz weit entfernt) versteht nicht wirklich worum es geht.

Ich denke, das ist eine Sache die das Zeug zum breiten Standard hat und damit einen riesen Entwicklungsschub geben kann - daher wäre es hilfreich, wenn sich auch „Normaluser“ schnell damit auseinander setzen und das für sich nutzbar machen können;)

Hallo Leute,

ja, ist mir schon klar, dass das Ganze relativ viel war und etwas technisch ist. Es war mir in erster Linier einmal wichtig, dier Library und die Idee dahinter vorzustellen und diverses Feedback zu erhalten.

Feedback habe ich mittlerweile erhalten und ich bin gerade dabei noch einige Dinge zu vereinfachen.

Wie Werner bereits vorgeschlagen hat, werde ich die Installation für normale User noch genauer beschreiben und wahrscheinlich vereinfachen und andererseits einige WIKI Beiträge für Developer veröffentlichen.

Als erstes ist die Ausführung des „BaseLoader“ Scripts nötig, dieses Script muss einmalig ausgeführt werden und lädt den IPSModuleManager aus dem Repository.

Der IPSModuleManager ist Voraussetzung für alles weitere, ermöglicht die Installation aller anderen Module und kann sich letztendlich auch selber aktualisieren.

Zur Zeit werden noch alle Files den IPSModuleManagers in IPS registriert, ich werde das in Zukunft noch unterbinden, weil es für normale User nicht nötig ist.

Folgender Code kann zum Laden verwendet werden:


<?
	// Repository
	$remoteRepository = 'https://raw.github.com/brownson/IPSLibrary/master/';

	// Download BaseLoader Script and Installation
	$remoteFile = $remoteRepository.'IPSLibrary/install/BaseLoader/IPSLibrary_BaseLoader.ips.php';
	$localFile  = IPS_GetKernelDir().'scripts\\IPSLibrary_BaseLoader.ips.php';

	$curl_handle=curl_init();
	curl_setopt($curl_handle, CURLOPT_URL,$remoteFile);
	curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT,2);
	curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER,true);
	curl_setopt($curl_handle, CURLOPT_SSL_VERIFYPEER, false);

	echo 'Load File '.$remoteFile."
";
	$fileContent = curl_exec($curl_handle);
	if ((strpos($fileContent, 'Something went wrong with that request. Please try again')>0) and
	    (strpos($fileContent, 'IPSInstaller')===false)) {
	   die('File '.$remoteFile.' could NOT be found on the Server !!!'.PHP_EOL);
	}
	curl_close($curl_handle);

   if (!file_put_contents($localFile, $fileContent)) {
		die('Create File '.$localFile.' failed!');
   }

	include $localFile;
?>

Hallo Andreas,

ich brauche also die IPSLibrary nicht runter zu laden.
Das erledigt dein Script in Step 1. Dieses Script läd den „BaseLoader“
aus dem Repository (engl. für Lager, Depot, Quellen oder Archiv) und
führt Ihn direkt aus.

Was habe ich gemacht:

Ich habe in IPS ein neues Script mit dem Namen „BaseLoader“ angelegt.

In diesem Script habe ich deinen Code reinkopiert und habe das Script gespeichert und ausgeführt.

Was ist passiert:

In dem Verzeichnis „scripts“ von IPS wurde die Datei „IPSLibrary_BaseLoader.ips.php“ aus dem Repository geladen und ausgeführt.

Bei mir wurde eine Verzeichnisstruktur in den IPS-Verzeichnis „scripts“ angelegt.

In IPS wurde eine neue Struktur von Kategorien und Scripten angelegt.

OK hab ich. Was kommt jetzt?

Baseloader.png

Baseloader_4.png

Hihi,
genau da bin ich auch grad. Mal sehen wie es weitergeht.

Als nächstes folgt die Auswahl der Module, die man installieren will.
Eine Liste der vorhandenen Module findet man in der Doku unter dem Punkt Module.

Zu empfehlen sind auf jeden Falle alle Module aus dem „core“ (da die für die meisten anderen Module benötigt werden):

[ul]
[li]IPSLogger
[/li][li]IPSComponent
[/li][li]IPSMessageHandler
[/li][/ul]

Normalerweise gliedert sich die Installation eines Modules in

[ul]
[li]Download
[/li][li]Konfiguration
[/li][li]Installation
[/li][/ul]

Da für alle 3 Module erstmalig keine spezielle Konfiguration notwendig ist, kann man wie folgt vorgehen:


	IPSUtils_Include ("IPSModuleManager.class.php", "IPSLibrary::install::IPSModuleManager");
	$moduleManager = new IPSModuleManager('IPSLogger');
	$moduleManager->LoadModule();
	$moduleManager->InstallModule();


	IPSUtils_Include ("IPSModuleManager.class.php", "IPSLibrary::install::IPSModuleManager");
	$moduleManager = new IPSModuleManager('IPSComponent');
	$moduleManager->LoadModule();
	$moduleManager->InstallModule();


	IPSUtils_Include ("IPSModuleManager.class.php", "IPSLibrary::install::IPSModuleManager");
	$moduleManager = new IPSModuleManager('IPSMessageHandler');
	$moduleManager->LoadModule();
	$moduleManager->InstallModule();
	return;

Hi Leute,

ich finde die IPSLibraray super und diesen Thread hier besonders gutauch Leider habe ich heute keine Ziet mehr, aber morgen werde ich hier auch mal mitmischen :wink:

Grüße

Andreas

Hallo Andreas,

den Schritt 2 hab ich noch nicht verstanden.
Gibt es den Code für die Module bereits oder
muss ich für jedes Modul das ich haben möchte
ein neues Script anlegen,
die vier Zeilen reinkopieren
und ausführen?

Wenn das so ist, ist es egal wo dann die neuen Scripte liegen?

An diesem Punkt bin ich jetzt auch.
Bevor da weiter mache stellt sich mir die Frage:
Ich habe schon laengere Zeit den IPSLogger installiert.
Muss ich den erst deinstallieren oder wie geh ich am besten vor ?

Also ich hab das jetzt so gemacht um die 3 Komponenten zu
installieren

	$component = 'IPSComponent';
	install($component);
	$component = 'IPSLogger';
	install($component);
	$component = 'IPSMessageHandler';
	install($component);
	
function install($component)
	{
    IPSUtils_Include ("IPSModuleManager.class.php", "IPSLibrary::install::IPSModuleManager");
    $moduleManager = new IPSModuleManager($component);
    $moduleManager->LoadModule();
    $moduleManager->InstallModule();
	}

Mal sehen wie es weitergeht.

Wie, mal sehen wie es weiter geht?

Das war es schon. Der Logger ist installiert und läuft. :eek:

Das ist ja der Wahnsinn. :slight_smile:

Noch einfacher geht’s ja garnicht mehr!!!

Super Arbeit Andreas

Dickes, fettes Dankeschön!!!

Was habe ich gemacht:

Ich habe ein neues Script erstellt und den Code von „1007“ reinkopiert.
Speichern und ausführen.

And ready to go.

Edit:

Prinzipiell muss ein neues Script erstellt werden.
Dieser Code wird reinkopiert:


    IPSUtils_Include ("IPSModuleManager.class.php", "IPSLibrary::install::IPSModuleManager");
    $moduleManager = new IPSModuleManager('IPSLogger');
    $moduleManager->LoadModule();
    $moduleManager->InstallModule();  

Und an der Stelle wird der Komponentenname übergeben


    $moduleManager = new IPSModuleManager('IPSLogger');

Danach abspeichern und ausführen.

Gibt es da auch ne Möglichkeit das auch wieder zu deinstallieren? Also die einzelnen Module.

@Schablone

jep - genau so einfach ist es!

… und genau so einfach ist auch das Update.
Sollte es also durch einen neuen IP-Symcon Release zu einer Änderung kommen oder ich einfach nur ein neues Feature implementieren, dann ist alles was Du zu tun hast, ein Update des Modules auszuführen!

Update eines Modules funktioniert ähnlich der Installation:


	IPSUtils_Include ("IPSModuleManager.class.php", "IPSLibrary::install::IPSModuleManager");
	$moduleManager = new IPSModuleManager('IPSLogger');
	$moduleManager->UpdateModule();

@bmw3

Deinstallation geht noch nicht autom. - kommt aber wahrscheinlich noch.

Hallo, bekomme immer folgende Fehler Meldung beim installieren vom IPSLogger.
kann mir jemand sagen was ich falsch mache bitte.
beim Installieren vom NetPlayer das gleiche.

IPSModuleManager-Log-IPSVariableVersionHa2012-02-19 19:44:19.29 Set Version IPSLogger=2.50.0…Loading
IPSModuleManager-Log-IPSVariableVersionHa2012-02-19 19:44:19.31 Set Version IPSLogger=2.50.0…Loaded

Fatal error: Uncaught exception ‚IPSConfigurationException‘ with message ‚Configuration Value with Key=Version could NOT be found (Section="")‘ in C:\IP-SYMCON\scripts\IPSLibrary\app\core\IPSConfigHandler\IPSConfigHandler.class.php:70
Stack trace:
#0 C:\IP-SYMCON\scripts\IPSLibrary\install\IPSModuleManager\IPSModuleManager.class.php(651): IPSConfigHandler->GetValue(‚Version‘)
#1 C:\IP-SYMCON\scripts\35191.ips.php(5): IPSModuleManager->InstallModule()
#2 {main}
thrown in C:\IP-SYMCON\scripts\IPSLibrary\app\core\IPSConfigHandler\IPSConfigHandler.class.php on line 70

Ich habe den selben Fehler.

hmm, habs grad nochmals ausprobiert - funktioniert.

Kontrolliert mal folgende Datei bei Euch:
https://github.com/brownson/IPSLibrary–Test-/blob/master/IPSLibrary/install/DownloadListFiles/IPSLogger_FileList.ini

Danke, jetzt gehts.
die Datei war leer, hab den Inhalt rein kopiert.

Gestern hat es noch funtioniert.
Heute hab ich es nochmal installieren wollen.
Es kommt beim Modul Installieren

Fatal error:  Class 'IPSVariableVersionHandler' not found in [Program\IPSLibrary\install\IPSModuleManager\IPSModuleManager] on line 112
 PHP-Error-Error: Class 'IPSVariableVersionHandler' not found
   Error in Script C:\Programme\IP-SYMCON2\scripts\IPSLibrary\install\IPSModuleManager\IPSModuleManager.class.php on Line 112Abort Processing during Error: Class 'IPSVariableVersionHandler' not found
   Error in Script C:\Programme\IP-SYMCON2\scripts\IPSLibrary\install\IPSModuleManager\IPSModuleManager.class.php on Line 112