Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 19. Mai 2020 15:04

parsec
kennt CMS/ms
Registriert: 04. Oktober 2012
Beiträge: 208

GBFilePicker nur Foto und Bilder-Upload verhindern?

Hallöle,

ich möchte grundsätzlich verhindern dass man in ListIt via GBFilePicker, Fotos oder Bilder hochladen kann. Auswählen soll weiterhin möglich sein, aber eben nicht hochladen. Jetzt sagen wahrscheinlich viele... "Das ist doch ganz einfach" Im Modul "Dateifunktionen anzeigen" Häckchen raus, fertig!

Das ist schon richtig aber dann ist die Funktion überall weg, an mancher Stelle will ich aber zum Beispiel PDF-Uploads und PDFs löschen über GBFilePicker möglich machen.

Nun meine Frage, kann man im GBFilepicker die Einstellung "Dateifunktionen anzeigen" nur Global regeln? Oder gibt es ne Möglichkeit diese Einstellung für jedes Listit-Extrafeld spezifisch zu bestimmen?

Gruß an Alle!

Beitrag geändert von parsec (11. Juni 2020 22:21)


"Es ist unmöglich, alles zu wissen" - Horaz

Offline

#2 13. Juni 2020 12:30

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.435

Re: GBFilePicker nur Foto und Bilder-Upload verhindern?

Oder gibt es ne Möglichkeit diese Einstellung für jedes Listit-Extrafeld spezifisch zu bestimmen?

Also GBFilepicker an sich bietet schon die Möglichkeit, das für jedes Feld individuell zu bestimmen.
Die Frage ist, ob ListIt die Möglichkeit bietet, diese Funktion für ein Feld auch individuell anzusprechen. Da ListIt nicht wissen kann, welche Parameter es alles für ein Modul geben kann, bezweifle ich, dass es diese Möglichkeit von Haus aus gibt. D.h. ListIt müsste eine Option bereitstellen, mit der man Parameter an das jeweilige Modul, das dieses Feld anzeigen soll, übergeben kann.
Meine Idee wäre, dass man dem Feld in ListIt einen eindeutigen Namen gibt und im Template den GBFilePicker für dieses Feld selber mit den gewünschten Parametern aufruft.


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#3 13. Juni 2020 13:27

parsec
kennt CMS/ms
Registriert: 04. Oktober 2012
Beiträge: 208

Re: GBFilePicker nur Foto und Bilder-Upload verhindern?

Hört sich ja gar nicht so schlecht an! Ich wollte schon öfter GB-Filepicker hernehmen, aber da ich meinen Kunden stets die Webseite selbst überlasse, war bisher immer die Gefahr dass die über GBFilePicker trotz Warnung Bilder hochgeladen. Wenn dann die dann Bilder auch noch von einer hochauflösenden Kamera kommen, kann man sich ja vorstellen was passiert.

Ein eindeutiger Name wär kein Problem, wie muss ich da vorgehen? (Smarty und PHP versteh ich zwar wenn ich es sehe aber selber schreiben kann ich das leider nicht)

Bin wie immer für jede Hilfe sehr Dankbar!

Ich möchte an dieser Stelle schon mal folgendes bemerken! Ich bin beruflich ab und zu auch mit anderen CMS beschäftigt, aber dieses Forum ist schon ne Wucht! Was mich hier schon alles geholfen wurde, da können sich andere Foren mal eine Scheibe abschneiden!

Danke an Alle, die kommen nicht annähernd an euch ran! (schleim schleim) ......nein ist mein ernst!! Kann man den nichts an euch spenden? Ein Bier oder ein Kaffee oder so??

Gruß


"Es ist unmöglich, alles zu wissen" - Horaz

Offline

#4 14. Juni 2020 19:25

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.435

Re: GBFilePicker nur Foto und Bilder-Upload verhindern?

Ich bin erstaunt, dass der GBFilePicker überhaupt noch funktioniert.
Das Modul ist schon eine halbe Ewigkeit alt und müsste dringend mal überarbeitet werden.
Eines vorweg: LISE bietet die Möglichkeit schon selber an.
Da kann man für jedes Feld eigene Einstellungen vornehmen.
Allerdings beachtet auch LISE nicht alle Parameter.

über GBFilePicker trotz Warnung Bilder hochgeladen. Wenn dann die dann Bilder auch noch von einer hochauflösenden Kamera kommen, kann man sich ja vorstellen was passiert.

Man kann einstellen, dass Bilder auf eine Standardgröße runtergerechnet werden sollen.
Man kann im Prinzip mit Hilfe von Parametern jede Funktion des GBFilePickers für jedes Feld separat ein/ausschalten. (gilt übrigens nicht für Admins - die haben immer alle Funktionen)

Normalerweise richtet sich der GBFilePicker nach den Berechtigungen des FileManagers "Manage Files", wenn die Option "Dateifunktionen erlauben" aktiviert ist (da Admins ja immer alle Berechtigungen haben, kann der GBFilePicker also nicht anders als den Admins immer alle Funktionen zu bieten). Das kann man aber mit den Parametern wieder überschreiben.

Die Idee ist folgende: dem Feld ein Präfix im Alias geben, module_custom und ein eigenes Plugin

Ich zeige das Prinzip mal an LISE, weil LisIt hab ich leider nicht mehr zur Hand. Das Prinzip ist allerdings fast das gleiche. Gib dem FilePicker-Feld im Alias ein Prefix. Z.B. "gbfp_Mein_Bild"

Erstelle Dir folgendes Verzeichnis: "module_custom/LISEDeineLISEInstanz/templates/"
Dorthin kopierst Du die Datei "modules/LISE/framework/templates/edititem.tpl"
In Zeile 76 steht fogendes:

    {if count($itemObject)}
      {foreach from=$itemObject->fielddefs item='fielddef'}
        {$fielddef->RenderInput($actionid, $returnid)}
      {/foreach}
    {/if} 

Anstatt jetzt einfach alle Felder durchzugehen und auszugeben, wird in der Foreach-Schleife nochmal das Alias des Feldes geprüft. Und nur dann, wenn es nicht mit "gbfp_" beginnt, wird die LISE-Funktion RenderInput ausgeführt. Anderenfalls wird ein Plugin aufgerufen, was allerdings fast das gleiche macht. Nur dass Du hier z.B. den Parameter upload=false angeben kannst - das fehlt nämlich bei LISE.
Und so soll es dann aussehen:

	{if count($itemObject)}
	  {foreach from=$itemObject->fielddefs item='fielddef' key="index"}
		{if (stripos($fielddef->GetAlias(), 'gbfp_') === 0)}
			{ * thats ugly : * }
			{$input_name=$actionid|cat:'custom_field['|cat:$index|cat:']'}
			{if $fielddef->GetOptionValue('filebrowser')}
				{$mode='browser'}
			{else}
				{$mode='dropdown'}
			{/if}
			<div class="pageoverflow">
				<p class="pagetext">{$fielddef->GetName()}{if $fielddef->IsRequired()}*{/if}:</p>
				<p class="pageinput">
					{if $fielddef->GetDesc()}({$fielddef->GetDesc()})<br />{/if}
					{GBFilePicker id=$actionid name=$input_name value=$fielddef->GetValue() params=$fielddef->GetOptionValues() mode=$mode upload=false}
				</p>
			</div>
		{else}
			{$fielddef->RenderInput($actionid, $returnid)}
		{/if}
	  {/foreach}
	{/if}

Nicht perfekt, weil das dann auch wieder für alle Felder mit dem Präfix "gbfp_" gilt, aber auf die Schnelle das einzige was mir einfällt, ohne groß am Modul rumzufummeln.

Dann brauchst Du nur noch ein Plugin, um den FilePicker aufzurufen:

<?php
function smarty_function_GBFilePicker($params, &$template) 
{
	if(!$GBFilePicker =& cms_utils::get_module('GBFilePicker'))
		return;
	
	$output = '';
	
	if(isset($params['params']))
	{
		$_p = (array)$params['params'];
		unset($params['params']);
		$params = array_merge($_p, $params);
	}
	
	$id = '';
	if(isset($params['id']))
		$id = $params['id'];
	
	$value = '';
	if(isset($params['value']))
		$value = $params['value'];
	
	$name = 'gbfp';
	if(isset($params['name']))
		$name = $params['name'];
	
	$output = $GBFilePicker->CreateFilePickerInput(
		$GBFilePicker, 
		$id, 
		$name, 
		$value, 
		$params,
		cms_utils::get_current_pageid()
	);
	
	if( isset($params['assign']) )
		$template->smarty->assign( $params['assign'], $output );
	else
		return $output;
}
?>

Unter "plugins/function.GBFilePicker.php" speichern.

Das sollte es gewesen sein.
Du musst jetzt nur einen Benutzer anlegen, der nicht der Admin-Gruppe angehört.
Diese Gruppe benötigt die Berechtigung "Use GBFilePicker" und alle Berechtigungen, die nötig sind, um arbeiten zu können.

Solltest Du tatsächlich noch mit ListIt arbeiten und ein Umstieg auf LISE nicht mögich sein, gib Bescheid. Kann sein, dass man da noch was ändern muss.

PS: Hab übrigens nur mit CMSms 1.12.2 getestet. Für CMSms 2 ist der GBFilePicker noch nicht kompatibel.


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#5 14. Juni 2020 19:30

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.435

Re: GBFilePicker nur Foto und Bilder-Upload verhindern?

Ich möchte an dieser Stelle schon mal folgendes bemerken! Ich bin beruflich ab und zu auch mit anderen CMS beschäftigt, aber dieses Forum ist schon ne Wucht! Was mich hier schon alles geholfen wurde, da können sich andere Foren mal eine Scheibe abschneiden!

Danke für die Blumen smile
Da wird man ja fast rot ops

Kann man den nichts an euch spenden? Ein Bier oder ein Kaffee oder so??

Spenden kannst Du für den Erhalt des Forums immer gern über den Spenden-Button (oben).
Wenn jetzt nicht gerade Covid-19 herumgeistern würde, hätte ich ja mal ein Community-Treffen vorgeschlagen  cool


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#6 14. Juni 2020 19:46

parsec
kennt CMS/ms
Registriert: 04. Oktober 2012
Beiträge: 208

Re: GBFilePicker nur Foto und Bilder-Upload verhindern?

Servus,

ich komm heute nicht dazu das auszuprobieren, aber ich habe soeben 100€ gespendet und hoffe Ihr bekommt alle was davon. Ich schau mir das morgen mal an!

Gruß und Prost

Beitrag geändert von parsec (14. Juni 2020 20:53)


"Es ist unmöglich, alles zu wissen" - Horaz

Offline

#7 16. Juni 2020 12:13

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.435

Re: GBFilePicker nur Foto und Bilder-Upload verhindern?

Hab den Code nochmal geändert.
Hab irgendwie das falsche hier reinkopiert.


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#8 17. Juni 2020 02:17

parsec
kennt CMS/ms
Registriert: 04. Oktober 2012
Beiträge: 208

Re: GBFilePicker nur Foto und Bilder-Upload verhindern?

Servus,

ich habe übrigens auch die Version 1.12.2 und für PHP7 modifiziert!

Gehe ich recht der Annahme dass ich mit dem Namen meiner ListIt2-Instanz also in meinem Fall... "module_custom/ListIt2startseite/templates/" bei mir im Stammverzeichnis anlegen soll? "module_custom" gibts bei mir nicht somit auch nicht die darin liegenden Ordner. Ich hab sie aber nun erstellt. Dann hab ich die Datei "modules/ListIt2/framework/templates/edititem.tpl" kopiert und in die neu angelegte Verzeichnisstruktur "module_custom/ListIt2startseite/templates/" gelegt. Dann im edititem.tpl (war zwar nicht in Zeile) aber ich hab es gefunden und aus...

{if count($itemObject)}
  {foreach from=$itemObject->fielddefs item='fielddef'}
    {$fielddef->RenderInput($actionid, $returnid)}
  {/foreach}
{/if} 

das hier gemacht...

{if count($itemObject)}
	  {foreach from=$itemObject->fielddefs item='fielddef' key="index"}
		{if (stripos($fielddef->GetAlias(), 'gbfp_') === 0)}
			{ * thats ugly : * }
			{$input_name=$actionid|cat:'custom_field['|cat:$index|cat:']'}
			{if $fielddef->GetOptionValue('filebrowser')}
				{$mode='browser'}
			{else}
				{$mode='dropdown'}
			{/if}
			<div class="pageoverflow">
				<p class="pagetext">{$fielddef->GetName()}{if $fielddef->IsRequired()}*{/if}:</p>
				<p class="pageinput">
					{if $fielddef->GetDesc()}({$fielddef->GetDesc()})<br />{/if}
					{GBFilePicker id=$actionid name=$input_name value=$fielddef->GetValue() params=$fielddef->GetOptionValues() upload=false mode=$mode returnid=$returnid}
				</p>
			</div>
		{else}
			{$fielddef->RenderInput($actionid, $returnid)}
		{/if}
	  {/foreach}
	{/if}

Dann in plugins die Datei "funtion.GBFilePicker.php" mit deinem angegebenen Inhalt angelegt.

Soweit so gut!

Nur Leider:

ERROR: at line 55 in file /xxxxxxx/lib/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php: Syntax error in template "/xxxxx/module_custom/ListIt2startseite/templates/edititem.tpl"  on line 55 "{GBFilePicker id=$actionid name=$input_name value=$fielddef->GetValue() params=$fielddef->GetOptionValues() upload=false mode=$mode returnid=$returnid}" unknown tag "GBFilePicker"


Gruß

Beitrag geändert von parsec (17. Juni 2020 02:34)


"Es ist unmöglich, alles zu wissen" - Horaz

Offline

#9 17. Juni 2020 02:31

parsec
kennt CMS/ms
Registriert: 04. Oktober 2012
Beiträge: 208

Re: GBFilePicker nur Foto und Bilder-Upload verhindern?

Hab einen Schreibfehler entdeckt, ich hab das falsch abkopiert. Statt  "funtion.GBFilePicker.php" natürlich "function.GBFilePicker.php"

Jetzt zumindest kein Error mehr!

Ich bin recht müde und schau mir das morgen nochmal an!

Beitrag geändert von parsec (17. Juni 2020 02:35)


"Es ist unmöglich, alles zu wissen" - Horaz

Offline

#10 23. Juni 2020 11:54

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.435

Re: GBFilePicker nur Foto und Bilder-Upload verhindern?

Danke. Habs im Beitrag oben korrigiert.


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline