Deutschland United States United Kingdom
ContentLion - Open Source CMS

FTP Connect Plugin

FTP Connect Plugin

Ich bin grade dabei ein Plugin zu entwickeln, welches anderen Plugins erlaubt mit PHP FTP-Daten hochzuladen.
Leitet ein Plugin auf die Seite des FTP-Plugins wird der Benutzer aufgefordert seine FTP-Zugangsdaten einzugeben. Geschieht das erfolgreich, kann der Benutzer ein Verzeichnis auf dem Server auswählen. Die dortige Beschreibung wird das Nicht-FTP-Plugin anpassen können. In der Regel wird es so etwas wie "In welchem Verzeichnis befindet sich deine ContentLion-Installation?" sein.

Ist der Ordner gewählt, leitet das FTP-Plugin zurück zum Nicht-FTP-Plugin. Dieses kann darüber dann die Dateien hochladen.

Was mir dabei sehr wichtig ist, ist dass fremde Plugins nicht auf die eingegebenen FTP-Daten zurückgreifen, sonder immer über das Plugin geht, was den Zugriff regelt. Die FTP-Daten selbst werden aus diesem Grund auch nicht gespeichert. Somit sind die Zugangsdaten des Users besser geschützt.

Warum das Ganze? Ganz einfach, ich brauche es für die Plugin-Gallerie. Und auch der Updater wird auf kurz oder lang darauf zurückgreifen. Denn wir verteilen das Update derzeit ja nicht, weil der Updater dies nicht schaffen würde.

Natürllich hab ich auch ein paar Screenshots für euch ;-)





Beim Klick auf den Link der Verzeichnis kommt man übrigens in die Unterverzeichnisse.

Feedback erwünscht, Plugin wird demnächst zusammen mit der Plugin-Gallerie online gehen.

Cool!
Gibts dazu auch eine Dokumentation? :D

Lol, dass ist ja noch nicht mal zu Ende gemacht^^ Aber die Doku wirds natürlich geben.

So, mal ein kleines Update. Nun bin ich schon sehr viel weiter gekommen, so dass ich nun mal eine Klasse erstellen kann, die mein Plugin nutzt (und es fehlen noch ein paar Schönheitssachen). Plugin-Gallerie und das gehen zusammen online, weil die Plugin-Gallerie darauf aufsetzt.

Nun zur Technik. Zielsetzung ist es, dass die Plugins keinen Zugriff auf die FTP-Daten selbst haben. Dazu muss man einen Seitentyp erben. Die POST-Daten werden alle ersetzt und sind dank Private-Einschränkung nicht für andere Plugins erreichbar. Wenn die Verbindung besteht, wird dann einfach eine Funktion der Subclasse aufgebaut, die die Verbindung nutzen kann.

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
<?PHP
  class Plugin_Pluginname_Klassenname extends Plugin_FTPUpload_Connect{
    
    public function onConnect()
    {
        $this->upload("/var/www/contentlion/dev/system/skins/mobile/screenshot.jpg","/test.jpg");
    }  
    
    public function getDescription(){
        return "Wo befindet sich deine ContentLion Installation?";
    }
}
?>

Kopiert derzeit eine Datei lokal per FTP. onConnect wird nach dem verbinden der Seite aufgerufen. Wenn ich den Installer für die Plugins gebastelt hab, werden vielleicht noch ein paar mehr Funktionen zur Auswahl stehen. Das erste ist übrigens die Quelle, das zweite das Ziel. Der Ordner auf dem Server wird automatisch vor dem Ziel geschrieben (absoluter pfad bei der quelle war nur zum test)

Plugin_Pluginname_Klassenname ist dann in dem Fall der Seitentyp, den du beim activate anlegen musst.

Ähnliche Themen