WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

Du bist nicht angemeldet.

#1 16.12.2016 10:52:45

grindbatzn
Gast

Allg. Modul für (Bild)Upload und Nachbearbeitung (zb Beschneiden)

In Itemz sollte die Bild-Funktion verbessert werden; AJAX Upload, Beschneiden usw.
Ich hab aber keine Lust, den ganze Plunder immer wieder in die Module einzubauen, das sollte doch irgendwie zentral machbar sein.

Grundsätzliche Überlegungen:

Mein Gedanke wäre, dass das jeweilige Modul (Caller) das Form (POST mit Bild + Was zu tun) direkt an ein Upload-Modul sendet, das alles abwickelt und dann - irgendwie - an das aufrufende Script eine Nachricht sendet.
Der Haken: Sicherheitsfragen und Asynchronität
Das UploadScript muss ja grundsätzlich für alles offen sein, es kann nicht überprüfen, ob ein User bzw Modul  überhaupt berechtigt ist.
Und es können mehrere Uploads von mehreren Modul gleichzeitig geschehen. Auch Beschneiden usw passiert nicht unmittelbar.

WIe kann man das lösen?
Kann man Scripte direkt auf den Server gegenseitig aufrufen, ohne über den Client (AJAX) zu gehen?
Bin ich allgemein zu blöd?

Liked by:

florian

#2 16.12.2016 11:10:40

florian
Administrator

Re: Allg. Modul für (Bild)Upload und Nachbearbeitung (zb Beschneiden)

Als von technischem Wissen weitgehend unvorbelasteter Mensch würde ich sagen, dass das was Dir vorschwebt, ja schon die Premium-Variante ist - sowas wäre natürlich sehr schick.

Etwas runter gestuft: Ein Admin-Tool, mit Ajax-Upload (also ggf. auch für große Dateien) und Resize-/Beschnittfunktionen, das die Resultate im /media-Verzeichnis bzw. anleg-/auswählbaren Unterverzeichnissen davon ablegt, wäre auch schon ein Riesenfortschritt. Der Benutzer müsste sich dann halt vorher Gedanken machen, was für ein Bild verwendet werden soll, und zuerst dieses über das Tool hochladen und bearbeiten.

(In Kladde gedacht: Eventuell gar sowas in der Richtung ?)


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#3 16.12.2016 11:17:28

stefanek
Developer

Re: Allg. Modul für (Bild)Upload und Nachbearbeitung (zb Beschneiden)

So etwas wäre schon machbar.
Ich habe mir auch schon Gedanken dazu gemacht.

Damit gibts nur einige Probleme.
Erstens: welches Skript ist gut dafür geeignet?
Ist es für einzelne Bilder, dann kommt daraufhin die Frage warum keine Mehrfach-Uploads möglich sind.

Vom Prinzip her könne man zunächst einen Prototypen bauen. Nicht fest im Core sondern als Modul (Snippet, Admin-Tool, Library was auch immer). Nennen wir es mal künstlich "PicX" (nur um einen Namen zu haben).
Dieses Modul würde die Schnittstelle bereitstellen, auf die man von anderen Modulen zugreifen kann (z.B. Itemz).

Der Zugriff wäre etwa in "modify_item.php" und würde daraus bestehen, die Klasse aus der PicX zu holen und ein Objekt zu starten.
Etwa:

$oPicUpload = new PicX($section_id);

Anhand der SECTION_ID ermittelt das Object der Klasse PicX was für ein Modul es ist, die PAGE_ID und was auch immer benötigt sein sollte.

Es würde auch sämtliche JS/CSS Komponenten laden, die nötig sind umd das ganze darzustellen und in Schwung zu bringen.

Weitere Einstellungen wären möglich. Z.B. wohin die Bilder geladen werden sollen:

$oPicUpload->target_directory = "{MEDIA}/my_module";
// auch dynamischer würde gehen:
$oPicUpload->target_directory = "{MEDIA}/my_module/".$item_id;

mit

$oPicUpload->displayUploadArea();

würdest Du Dir die Upload Area darstellen lassen.

Und mehr Einstellungen könnten vorhanden sein. Etwa das Layout des ganzen, sodass Du Dir das besser an das Layout Deines Moduls anpassen kannst, wenn die Standardausgabe nicht ausreicht.

Also machbar wäre das ganze schon.
Kein Problem mit mehreren Modulen, selbst wenn sie gleichzeitig diese Funktionalität benutzen sollten.

Gruß,
Christian

Beitrag geändert von stefanek (16.12.2016 11:18:03)


“Success is the progressive realization of a worthy ideal.” ― Earl Nightingale

Offline

#4 16.12.2016 11:25:47

grindbatzn
Gast

Re: Allg. Modul für (Bild)Upload und Nachbearbeitung (zb Beschneiden)

Natürlich sollten multiple Uploads möglich sein, und es sollte auch möglich sein, mehrere Bildgrößen zu erzeugen.
Topics braucht 3 Bilder (oder 4, wenn das Original ebenfalls gespeichert wird) , itemz 2 (oder 3)

Das Problem sehe ich jetzt nicht darin, wie das Upload script selbst funktioniert, sondern wie die Kommunikation abläuft.

Und die etwas ketzerische Frage: Wenns so einfach ist, warum gibt es das noch nicht ;-)

#5 16.12.2016 11:46:12

stefanek
Developer

Re: Allg. Modul für (Bild)Upload und Nachbearbeitung (zb Beschneiden)

Das Prinzip ist einfach.
Die Kommunikation sollte problemlos laufen.
Dem JS ist egal ob die Variablen die es verarbeitet aus einem generierten PHP-Code oder aus händisch angefügten Variablen stammen.

Die Umsetzung kann unter Umständen etwas dauern, auch wenn das Prinzip einfach ist (einer der Gründe warum Software-Entwicklung oft in der Zeitplanung hinterherhängt, lol).

Gut, also auch das mit Mehrfachupload und Crop sollte laufen.
Dazu könnte man das Objekt um weitere Eigenschaften und Methoden erweitern.

Das ganze ist ein Wechselspiel vieler unterschiedlicher Skripte.
Die Klasse PicX würde dieses Wechselspiel einfach zusammen halten, dass Du nicht alles selbst immer wieder verdrahten musst.

Wenn Du also zum Beispiel es irgendwo schon drin eingebaut hast und es funktioniert fest-verdrahtet, kann man sich anschauen wie man das Ganze jetzt so gestaltet, dass es eine gemeinsam verwendete Schnittstelle verwendet, statt des fest-verdrahteten Scripts.

Der Vorteil, das ganze erstmal als Prototyp zu bauen (als eine art PicX AdminTool bzw. Library) ist, dass man das eine Zeitlang in Verwendung haben kann, es optimieren kann, bevor es fest in Programm aufgenommen würde.

Chris


“Success is the progressive realization of a worthy ideal.” ― Earl Nightingale

Offline

#6 16.12.2016 12:02:47

stefanek
Developer

Re: Allg. Modul für (Bild)Upload und Nachbearbeitung (zb Beschneiden)

stefanek schrieb:

Wenn Du also zum Beispiel es irgendwo schon drin eingebaut hast und es funktioniert fest-verdrahtet, kann man sich anschauen wie man das Ganze jetzt so gestaltet, dass es eine gemeinsam verwendete Schnittstelle verwendet, statt des fest-verdrahteten Scripts.

Übrigens, genau so funktioniert unser neuer DateTimePicker in der WBCE 1.2.x

Du initiierst nur ein Objekt und ergnänzt nur ein paar Angaben.
Dann verwendest Du das Objekt.
Alles andere Läuft automatisch.

Christian


“Success is the progressive realization of a worthy ideal.” ― Earl Nightingale

Offline

#7 16.12.2016 12:49:50

norhei
Developer

Re: Allg. Modul für (Bild)Upload und Nachbearbeitung (zb Beschneiden)

Wollte mal so am Rande erwähnen, das die hier mit 1.2.x mitkommt als modul Upload

Class upload from http://www.verot.net/php_class_upload.htm

Offline

#8 16.12.2016 13:27:06

grindbatzn
Gast

Re: Allg. Modul für (Bild)Upload und Nachbearbeitung (zb Beschneiden)

norhei schrieb:

Wollte mal so am Rande erwähnen, das die hier mit 1.2.x mitkommt als modul Upload

Class upload from http://www.verot.net/php_class_upload.htm

Bitte dabei aber daran denken, dass etliche Module diese class ebenfalls verwenden und es daher schnell Konflikte gibt. Sie sollte umbenannt werden.

#9 16.12.2016 13:29:04

stefanek
Developer

Re: Allg. Modul für (Bild)Upload und Nachbearbeitung (zb Beschneiden)

Nein, es gibt keine Konflikte. Auch wenn mehrere Module die selbe Class verwenden.

Warum sollte es das auch?

Umbenennen kommt eigentlich nicht in Frage.
Wenn der Programmierer seine Klasse erweitert, musst Du immer hinterher und umbenennen.

Beitrag geändert von stefanek (16.12.2016 13:30:00)


“Success is the progressive realization of a worthy ideal.” ― Earl Nightingale

Offline

#10 16.12.2016 13:31:21

grindbatzn
Gast

Re: Allg. Modul für (Bild)Upload und Nachbearbeitung (zb Beschneiden)

Wenn mehrere Module ihre eigene class upload verwenden, gibt es Konflikte.

#11 16.12.2016 13:36:37

norhei
Developer

Re: Allg. Modul für (Bild)Upload und Nachbearbeitung (zb Beschneiden)

Öh , welche  Module ??

Das Modul nutzt den WBCE Autoloader. 
Der Autoloader läd die Klasse nur , wenn Sie noch nicht geladen ist . Sprich, ist sie schon da , tut er nix   big_smile

Könnte nur noch Konflikte geben wenn mehrere Module versuchen die Klasse gleichzeitig per include zu laden , aber das Problem gibts jetzt auch schon.
Deswegen macht es in Modulen Sinn  Klassen per Autoloader einzubinden . Viele dieser Kollisionen kann man sich damit sparen.

Offline

Liked by:

stefanek

#12 16.12.2016 13:49:58

stefanek
Developer

Re: Allg. Modul für (Bild)Upload und Nachbearbeitung (zb Beschneiden)

grindbatzn schrieb:

Wenn mehrere Module ihre eigene class upload verwenden, gibt es Konflikte.

Autoloader verwenden.
Und wenn Du Module baust, die auch zu verwandten CMS kompatibel bleiben wollen (falls das möglich oder nützlich ist), dann mit einer if/else Schleife arbeiten, wo die Class aufgerufen wird.


“Success is the progressive realization of a worthy ideal.” ― Earl Nightingale

Offline

#13 16.12.2016 13:55:58

norhei
Developer

Re: Allg. Modul für (Bild)Upload und Nachbearbeitung (zb Beschneiden)

Autoloader reicht :-)   If else sollte nicht gebraucht werden

Offline

#14 16.12.2016 13:59:28

stefanek
Developer

Re: Allg. Modul für (Bild)Upload und Nachbearbeitung (zb Beschneiden)

norhei schrieb:

Autoloader reicht :-)   If else sollte nicht gebraucht werden

Wenn Du es parallel zu WBCE mit WB-DV-FORK laufen lassen willst, dann musst Du die Datei anders einbinden.
Entweder mit deren autoloader oder per include...

C


“Success is the progressive realization of a worthy ideal.” ― Earl Nightingale

Offline

#15 16.12.2016 14:10:21

stefanek
Developer

Re: Allg. Modul für (Bild)Upload und Nachbearbeitung (zb Beschneiden)

Übrigens,
diese Class.Upload ist gut.
Ich habe die bereits einmal verwendet.
Aber sie ist ja nur ein Teil dessen, was Chio vorschwebt.
Trotzdem gut, dass sie mit dabei ist.
Verwendet die FolderGallery nicht auch Class.Upload?

C


“Success is the progressive realization of a worthy ideal.” ― Earl Nightingale

Offline

#16 16.12.2016 14:13:46

grindbatzn
Gast

Re: Allg. Modul für (Bild)Upload und Nachbearbeitung (zb Beschneiden)

Naja - gut. Class upload ist das geringste der Probleme. Die ist ja nur fürs Resizen gut und macht noch kein funktionierendes Modul.

Der schwierigere Teil ist die allgemeine Verwendbarkeit.

Liked by:

stefanek

#17 05.01.2017 08:48:51

florian
Administrator

Re: Allg. Modul für (Bild)Upload und Nachbearbeitung (zb Beschneiden)


Code allein macht nicht glücklich. Jetzt spenden!

Offline

Fußzeile des Forums

up