WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

Du bist nicht angemeldet.

#1 21.10.2020 14:53:35

florian
Administrator

Integration plUpload

Bezugnehmend auf diesen Thread: Ich brauche eine funktionierende, sichere Integration von plUpload, um auch große Dateien (z.B. Videos) übers Backend hochladen zu können. plUpload kann das (chunking).
Ich habe versucht, das Dragn'n'Drop-Upload-Modul fürs BE zu adaptieren, das ist mir aber leider nicht gelungen.

Daher also auf diesem Wege als bezahltes Projekt die Frage/Bitte, dass jemand
- entweder plUpload in die Medienverwaltung (statt der Einzel-Upload-Felder) einbaut
- plUpload als Admintool bereitstellt (wobei hier dann auswählbar sein müsste, in welches Verzeichnis die Daten übertragen werden sollen)
- oder die Funktion in das im Forum skizzierte Video-Galerie-Modul integriert wird.

Beitrag geändert von florian (21.10.2020 14:54:55)


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#2 21.10.2020 17:08:21

webbird
Administrator

Re: Integration plUpload

Zur Info: Bitte NICHT das mit plUpload mitgelieferte PHP-Script verwenden. Das ist voller Sicherheitslöcher. Ich hatte das mal versehentlich im BC2-Repository und da ist mir das SonarCube bei der Code-Analyse fast ins Gesicht gesprungen. Entweder dieses Script dann wirklich gründlich durchleuchten oder selbst eins schreiben.

Edit: Ups, das war aus dem "jQuery File Upload", nicht aus plUpload. Verzeihung.

Beitrag geändert von webbird (21.10.2020 17:10:23)


Ich habe eine Amazon-Wishlist. wink Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal

Offline

#3 21.10.2020 17:48:18

florian
Administrator

Re: Integration plUpload

Nachtrag: es muss nicht plUpload sein, wenn es eine adäquate Lösung gibt, beispielsweise der aktuelle elFinder als Ersatz für die Medienverwaltung oder als Admintool, wäre mir das mindestens genau so recht.


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#4 22.10.2020 00:52:29

bernd
Developer

Re: Integration plUpload

Blöde Frage,
wenn es ganz schnell gehen soll, wäre da 1 Section drag_n_drop-upload plus 1 Section wbcevideo pro Seite keine Option?
Upload übers Frontend nur für User der Admin-Gruppe.

Deine Videogallery/-player Mimik funktioniert ja eigentlich schon recht ordentlich.


... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...

Offline

#5 22.10.2020 04:15:40

bernd
Developer

Re: Integration plUpload

Sodele,
"senile Bettflucht" oder so ähnlich  ops

Anbei "wbcevideo" mit plUpload mit (für Videos abgespeckten) Settings und Upload im Backend.
Ist noch nicht ganz rund, sollte aber grundlegend funktionieren.
Upload-Möglichkeit im Frontend ist bereits angedacht aber noch nicht implementiert.

!!! Hat noch keine Update-Mimik, also bitte erst eine evtl. vorhandene alte Version deinstallieren !!!

Edit: aktuelle Version siehe unten.

Beitrag geändert von bernd (22.10.2020 23:12:09)


... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...

Offline

Liked by:

webbird

#6 22.10.2020 08:59:49

florian
Administrator

Re: Integration plUpload

Wow, cool, danke. Das ist super. In der add.php und save_settings.php fehlt das TABLE_PREFIX. beim $table, das muss man noch ergänzen, dann funktioniert das ganz hervorragend.

Ich habe das jetzt gerade mal mit einem 270 MB großen Video getestet (bei max_upload_filesize = 200M und max_execution_time = 30s, also serverseitig beides deutlich geringer als erforderlich), das hat reibungslos geklappt. Yay!

Jetzt braucht es nur noch etwas Feinschliff im Frontend, also dass da dann für das Anzeigen der Videos auf das bei den plupload-Settings angegebene Verzeichnis zugegriffen wird.

Beitrag geändert von florian (22.10.2020 09:07:39)


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#7 22.10.2020 16:54:08

bernd
Developer

Re: Integration plUpload

Ich hab grade nochmal bischen rumgetestet (max_upload_filesize = 100M und max_execution_time = 30s) mit richtig großen Videos ~1,5GB

Die max_execution_time dürfte nebensächlich sein, da ja für jeden Chunk die upload.php neu aufgerufen wird.
Der kritische Punkt ist echt die chunk_size.

Ist die entsprechend niedrig (10mb) kurbelt es schon 'ne Weile aber der Upload ist i.O - allerdings wird da bei 1,5GB die upload.php ca. 150 mal aufgerufen - auch nicht wirklich schick.

Setze ich die chunk_size auf 100mb (also den vermeintlichen Wert von max_upload_filesize) erhalte ich am Ende ein kaputtes Fragment des Videos. 100mb ist wohl nicht gleich 100M.

Ist die chunk_size größer als die max_upload_filesize, tut plUpload "so als ob" es kommt aber nix auf dem Server an, es meckert aber auch nicht.

Meine Überlegung: die chunk_size bei der Installation bereits mit ~90% von max_file_size vorbelegen und dem Feld für die Eingabe einen max-Wert geben um entsprechendem Frust vorzubeugen?

Weitere Überlegungen:
- braucht es eigentlich die Verzeichniswahl wirklich oder könnte man nicht einfach das angelegte Verzeichnis festnageln?
- die Option "unique file names" ist eigentlich auch nicht wirklich nützlich, was will man letztendlich mit einem "o_1el8fmn301p5f81gnfjhnd773a.mp4" anfangen?


... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...

Offline

#8 22.10.2020 18:14:43

florian
Administrator

Re: Integration plUpload

Meine Überlegung: die chunk_size bei der Installation bereits mit ~90% von max_file_size vorbelegen und dem Feld für die Eingabe einen max-Wert geben um entsprechendem Frust vorzubeugen?

Hm, auf meinem Webspace liegt die max_file_size bei 200 MB. 90% davon wären zu viel, weil dann max_execution_time das Problem ist (Upload würde länger dauern). Verständnisfrage: Wo liegt das Problem bei einem häufigen Aufruf der upload.php?

- braucht es eigentlich die Verzeichniswahl wirklich oder könnte man nicht einfach das angelegte Verzeichnis festnageln?

nein, die Verzeichniswahl ist hier mMn durchaus verzichtbar, bzw. sogar kontraproduktiv.

- die Option "unique file names" ist eigentlich auch nicht wirklich nützlich, was will man letztendlich mit einem "o_1el8fmn301p5f81gnfjhnd773a.mp4" anfangen?

Stimme Dir zu, die Option kann gerne entfallen.


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#9 22.10.2020 19:03:03

bernd
Developer

Re: Integration plUpload

Verständnisfrage: Wo liegt das Problem bei einem häufigen Aufruf der upload.php?

Ich denke mal das ist kein Problem, war nur der irrigen Meinung mit größerer chunk_size gehts zügiger.
Wurde aber grad durch Testen eines besseren belehrt. Bei zu großer chunk_size geht der Upload auch wieder schief.
Zudem schnappt sich dann der Firefox während der Ausführung ordentlich Arbeitsspeicher.

Ich lass es dann bei den 10mb, begrenze das Feld aber auf min 1 max 50 einfach um zum einen 0 = keine chunks und zum anderen utopisch hohen Werten vorzubeugen.


... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...

Offline

#10 22.10.2020 23:21:31

bernd
Developer

Re: Integration plUpload

So nächste Runde,

- unique_filenames entfernt
- Upload-Verzeichnis ist jetzt fix
- Eingabe der Chunk Größe auf "vernünftige" Werte begrenzt (1 - 50)
- hartkodierte Sprachschnippsel in Sprachdateien verfrachtet
- Frontend Upload ist jetzt auch möglich (falls gewünscht)

Hab ihm grade mal 4 Filmchen mit insgesamt ~7GB gleichzeitig verfüttert - dauert zwar bischen (logisch) - funktionierte aber klaglos.

Die Frontend-Ansicht ist etwas ähm "interessant" ;-)
Aber ich glaube das muss man sowieso individuell an's jeweilige Template anpassen ...

Edit: aktuelle Version siehe unten

Beitrag geändert von bernd (23.10.2020 11:56:20)


... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...

Offline

#11 23.10.2020 09:13:08

florian
Administrator

Re: Integration plUpload

Danke!
Funktioniert hervorragend!
Ich habe das Zip nochmal neu gepackt, damit sich das Modul installieren lässt. Außerdem habe ich die Frontend-Darstellung etwas angepasst.


Code allein macht nicht glücklich. Jetzt spenden!

Offline

Liked by:

Slugger

#12 25.10.2020 12:55:13

Slugger
Mitglied

Re: Integration plUpload

Hallo Bernd und florian,
Kurzes Feedback von mir:

Gefällt mir auch sehr gut  smile

Kleines feines Modul, schnell und zuverlässig Dank drag&drop für Massenuploads.

Keine Probleme gehabt mit einmal 600mb und drei a 60mb, also 4 mp4 Dateien.

Eine Frage hätte ich aber noch wegen FE Darstellung.

Wenn ich auf das Video clicke wird der Stream in eine Seperaten Screen eingeblendet.

Wie und wo kann man den Clip wieder schließen ohne die Seite neu zuladen?

Beitrag geändert von Slugger (25.10.2020 12:57:00)


Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.5.4 • BE: 2.1.0 • PHP: 8.1.16 * 1. Projekt: FE: Simple responsive • BE: Argos * 2. Projekt: FE: hortal • BE: Argos * 3. Projekt: FE: WBCEZon • BE: Argos * 4. Projekt: FE: WBCETik • BE: Argos
Status Projekt 1-4:  OK

Online

#13 25.10.2020 13:20:19

florian
Administrator

Re: Integration plUpload

Ich habe das klobige X durch das entspr. FontAwesome-Symbol ersetzt, d.h. im Template muss ein Link zu FA ergänzt werden oder das FontAwesomesnippet installiert werden, dann wird oben rechts im Video ein x zum Schließen angezeigt.


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#14 25.10.2020 14:38:37

Slugger
Mitglied

Re: Integration plUpload

Also ich nutze im Testversuch das Template WBCETik.

Wie muss den der Link aussehen?


Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.5.4 • BE: 2.1.0 • PHP: 8.1.16 * 1. Projekt: FE: Simple responsive • BE: Argos * 2. Projekt: FE: hortal • BE: Argos * 3. Projekt: FE: WBCEZon • BE: Argos * 4. Projekt: FE: WBCETik • BE: Argos
Status Projekt 1-4:  OK

Online

#15 25.10.2020 14:48:47

florian
Administrator

Re: Integration plUpload

installiere das font awesome snippet, das ist das einfachste.
https://addons.wbce.org/pages/addons.ph … em&item=80


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#16 25.10.2020 15:17:58

Slugger
Mitglied

Re: Integration plUpload

Ja ... OK ... ist das einfachste  big_smile

Manchmal macht es man sich selber komplizierter als nötig  mad

Da bekommt man schon Module die Einfach zu "Händeln" sind ... und dann Sagt das eigene EGO ... Nö das ist nüch so...  big_smile

Beitrag geändert von Slugger (25.10.2020 15:18:22)


Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.5.4 • BE: 2.1.0 • PHP: 8.1.16 * 1. Projekt: FE: Simple responsive • BE: Argos * 2. Projekt: FE: hortal • BE: Argos * 3. Projekt: FE: WBCEZon • BE: Argos * 4. Projekt: FE: WBCETik • BE: Argos
Status Projekt 1-4:  OK

Online

#17 25.10.2020 15:24:57

florian
Administrator

Re: Integration plUpload

die im Template einzufügende Zeile lautet

<link href="<?php echo WB_URL; ?>/include/font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css" />

Code allein macht nicht glücklich. Jetzt spenden!

Offline

Liked by:

Slugger

#18 25.10.2020 22:46:58

pfreud01
Mitglied

Re: Integration plUpload

Das Videotool funktioniert super - vielen Dank!

Ist es unverschämt, wenn ich nach der Möglichkeit frage, den Speicherort selbst festlegen zu können? Das habt ihr ja rausgenommen, weil es unnötig sei. In meinem Fall hab ich aber dann das Problem, dass der automatische Speicherort wegen der Einstellung der Home-Ordner von meinen Redakteuren gar nicht erreichbar ist. Oder gibt´s da einen einfachen Workaround?

LG pfreud01

Offline

#19 26.10.2020 06:47:25

florian
Administrator

Re: Integration plUpload

Das Modul verwendet nicht die Homeordner, sondern ein selbst angelegtes Unterverzeichnis und da dann ein weiteres Unterverzeichnis mit der Abschnitts-ID. Das ist auch über die Medienverwaltung erreichbar, wenn Home-Ordner aktiviert sind.


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#20 26.10.2020 09:56:02

riconico
Mitglied

Re: Integration plUpload

Hallo.

ich habe das Modul mal zu testen installiert da ich denke das unsere Vereinsseite sowas gut gebrauchen könnte.
Upload funktioniert sehr gut.
Jetzt aber mal eine blöde Frage. Besteht die Möglichkeit einen Dateinamen Abgleich zu machen?
Habe mal versucht 2 Dateien mit den gleichen Dateinamen hoch zu laden. Was anfänglich auch klappt aber nach dem Upload des 2ten Videos ist dieses nicht sichbar. Heisst für mich das das script schon gecheckt hat das diese Datei schon vorhanden ist aber es gibt keine Meldung dazu aus.

Ich hoffe ich habe mich verständlich ausgedrückt.

Gruss Nico

Offline

#21 26.10.2020 10:21:58

florian
Administrator

Re: Integration plUpload

Hm, plupload kann zwar "unique file names", aber wie schon weiter oben geschrieben, kommt dann sowas wie o_1el8fmn301p5f81gnfjhnd773a dabei heraus.  Und: genauso kann es ja auch erwünscht sein, ein vorhandenes Video mit einer aktuelleren Version überschreiben zu wollen.

Es gibt aber den Filter prevent_duplicates, siehe https://www.plupload.com/docs/Options#f … duplicates, der müsste dann ggf. noch im plUpload-Aufruf ergänzt werden.


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#22 24.12.2020 10:04:35

Slugger
Mitglied

Re: Integration plUpload

Frohe Weihnachten euch allen angel

Weil ich gestern mal nach langem das Thema mit Videos einbinden hatte und auf der Suche auf den vielen Projekten bei mir fündig geworden bin, wo dieses Modul installiert ist.

Ich wollte das Modul per Sektionpicker einbinden, doch leider kommt hierzu nur eine weiße Seite.

In der Error_Log habe ich folgende Meldung (Siehe Bild)

Und noch eine andere Frage:
Ist es möglich die Videos die über das Modul hochgeladen wurden als Liste anzuzeigen, müssen keine Thumb oder ähnliches sein?


Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.5.4 • BE: 2.1.0 • PHP: 8.1.16 * 1. Projekt: FE: Simple responsive • BE: Argos * 2. Projekt: FE: hortal • BE: Argos * 3. Projekt: FE: WBCEZon • BE: Argos * 4. Projekt: FE: WBCETik • BE: Argos
Status Projekt 1-4:  OK

Online

#23 25.12.2020 09:10:29

florian
Administrator

Re: Integration plUpload

Ich wollte das Modul per Sektionpicker einbinden, doch leider kommt hierzu nur eine weiße Seite.

Den Fehler kann ich so auf Anhieb nicht reproduzieren. Nimmst Du das Sectionpicker-Droplet oder das Sectionpicker-Modul?
Wenn Droplet: Sieht der Droplet-Code (Admintools > Droplets) so aus

$sid = isset($sid) ? intval($sid) : 0;
$anchor = isset($anchor) ? (string) $anchor : '';
return get_section_content($sid, false, $anchor); 

oder so?

global $database, $wb, $TEXT;
$content = ' ';
$query_sec = $database->query("SELECT section_id,module FROM ".TABLE_PREFIX."sections WHERE section_id = '$sid' ");
if($query_sec->numRows() > 0) { 
	$section = $query_sec->fetchRow(); 
	$section_id = $section['section_id']; 
	$module = $section['module']; 
	ob_start();
	require(WB_PATH.'/modules/'.$module.'/view.php'); 
	$content = ob_get_contents();
    	ob_end_clean();
} 
$wb_page_data = str_replace('</head>','<link href="'.WB_URL.'/modules/'.$module.'/frontend.css" rel="stylesheet" type="text/css" media="screen" />'."\n".'<script src="'.WB_URL.'/modules/'.$module.'/frontend.js" type="text/javascript"> </script>'."\n".'</head>', $wb_page_data );    	
return $content;

Ist es möglich die Videos die über das Modul hochgeladen wurden als Liste anzuzeigen, müssen keine Thumb oder ähnliches sein?

Ändere in der /modules/wbcevideo/view.php die Zeilen

<!-- FULL-SCREEN PLAYER -->
<div id="vid-full">
	<!-- CLOSE BUTTON -->
	<div id="vid-close"><span class="fa fa-close"></span></div>
	<!-- PLAYER -->
	<div id="vid-player"></div>
</div>

<!-- VIDEO GALLERY -->
<div id="vid-gallery">
	<?php
	if (count($videos) > 0) :
		foreach ($videos as $vid) :
			$tiOut = basename($vid);
			$tiOut = str_replace(".mp4","",$tiOut);
			$tiOut = str_replace("_"," ",$tiOut);
			printf("<div><video src='%s'></video><br />".$tiOut.'</div>', WB_URL.MEDIA_DIRECTORY.'/wbcevideo/'.$section_id.'/'.basename($vid));
		endforeach;
	endif;
	?>
</div>

zu

<ul>
	<?php
	if (count($videos) > 0) :
		foreach ($videos as $vid) :
			$tiOut = basename($vid);
			$tiOut = str_replace(".mp4","",$tiOut);
			$tiOut = str_replace("_"," ",$tiOut);
			printf("<li><a href=\"%s\" class=\"iframe\">".$tiOut.'</a></li>', WB_URL.MEDIA_DIRECTORY.'/wbcevideo/'.$section_id.'/'.basename($vid));
		endforeach;
	endif;
	?>
</ul>

Code allein macht nicht glücklich. Jetzt spenden!

Offline

#24 25.12.2020 09:43:09

Slugger
Mitglied

Re: Integration plUpload

Hallo florian,
der Code des Droplets ist oder so:

[== PHP ==]
global $database, $wb, $TEXT, $DGTEXT,$section_id,$page_id;
$content = '';
$sid = isset($sid) ? intval($sid) : 0;
if( $sid ) {
    $oldSid = $section_id; // save old sectionID
	$sql  = 'SELECT `module` FROM `'.TABLE_PREFIX.'sections` ';
	$sql .= 'WHERE `section_id`='.$sid;
	if (($module = $database->get_one($sql))) {
		if (is_readable(WB_PATH.'/modules/'.$module.'/view.php')) {
			$_sFrontendCss = '/modules/'.$module.'/frontend.css';
			if(is_readable(WB_PATH.$_sFrontendCss)) {
				$_sSearch = preg_quote(WB_URL.'/modules/'.$module.'/frontend.css', '/');
				if(preg_match('/<link[^>]*?href\s*=\s*\"'.$_sSearch.'\".*?\/>/si', $wb_page_data)) {
					$_sFrontendCss = '';
				}else {
					$_sFrontendCss = '<link href="'.WB_URL.$_sFrontendCss.'" rel="stylesheet" type="text/css" media="screen" />';
				}
			} else { $_sFrontendCss = ''; }
            $section_id = $sid;
			ob_start();
			require(WB_PATH.'/modules/'.$module.'/view.php');
			$content = $_sFrontendCss.ob_get_clean();
			$section_id = $oldSid; // restore old sectionID
		}
	}
}
return $content;

Die zweite Frage von mir war missverständlich. Ich meinte im BE des Moduls, damit man zumindest sieht welche Dateien bereits hochgeladen sind.


Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.5.4 • BE: 2.1.0 • PHP: 8.1.16 * 1. Projekt: FE: Simple responsive • BE: Argos * 2. Projekt: FE: hortal • BE: Argos * 3. Projekt: FE: WBCEZon • BE: Argos * 4. Projekt: FE: WBCETik • BE: Argos
Status Projekt 1-4:  OK

Online

#25 26.12.2020 13:57:22

florian
Administrator

Re: Integration plUpload

Tausche den Droplet-Code bitte mal durch den Dreizeiler aus #23 aus, dann sollte der Fehler nicht mehr auftreten.

An der Dateiliste im Backend bin ich dran.


Code allein macht nicht glücklich. Jetzt spenden!

Offline

Liked by:

Slugger

Fußzeile des Forums

up