Skip to end of metadata
Go to start of metadata

$html = LoxBerry::Storage::get_storage_html(named parameter list);

 Die Funktion get_storage_html liefert ein fertiges HTML-Dropdown zur Auswahl von externen Storage-Devices, inkl. JavaScript. Dies vereinfacht dem Plugin-Entwickler die Ermittlung und Auswahl eines externen Pfades entsprechend der LoxBerry-Konfiguration des Benutzers.

LoxBerry Compatibility

Diese Funktion steht erst ab LoxBerry 1.2.1 zur Verfügung. Bitte dies entsprechend als Minimum-Version in der plugin.cfg setzen.

Für die Übergabe werden Named Parameter verwendet. 

Mit den Übergabeparametern kann das zurückgegebene HTML an die Bedürfnisse angepasst werden. Der aktuell ausgewählte Pfad kann im Formular übertragen, oder per eigenem JavaScript ausgelesen werden.

Die Funktion kann mehrmals auf einer Seite verwendet werden, dabei muss aber sichergestellt sein, dass formid eindeutig ist (andernfalls kann das zu fehlerhaftem Verhalten führen).

Parameter

Parameter list of get_storage_html (Perl and PHP)

ParameterOptionalDefaultFunction

formid



Name of the HTML form element including the resulting path. This id is used as id and name of the element. The input field is hidden in the form, but updated on every user change.

currentpath

xundef
Giving a path, this is the pre-defined path of the dropdown element. Read the path from your config file and insert it here.

Omitting this parameter will set an empty path.

custom_folder


xundef

undef - The user is not allowed to add an additional subfolder to the selected storage.

1 - Behind the selected storage, the user can enter an own subfolder tree. But keep in mind that the plugin code has to care about the existance and creation of that folder.

readwriteonly

xundef

If this parameter is omitted (default), all storage points are shown.

To only show writeable storage points, set readwriteonly => 1.

Formating
labelxSystem-Phrase

This is the string label in front of the dropdown. Usually, set the label to a string from your plugin language phrases.

Without this parameter, the system default string "Storage path" (language specific) will be used.

data_minixundefThis flag corresponds to the jQuery Mobile flag data-mini="true". The controls are displayed in the data-mini="true" behaviour if set to 1.
Types of storage to show
type_allx1 oder 0

Using type_all => 1 (or omitting this parameter), all of the folloing storage types are shown. If you set at least one other type to 1, type_all is disabled.

type_usbxundef

USB storage devices are selectable.

type_netxundef

Network shares are selectable.

type_localxundef

The local plugin data directory ($lbpdatadir) is selectable.

type_customxundef

The user can alternatively enter an own path.

Take care: If you want to prevent a custom path by type_custom = 0, and the sent currentpath value is not present in the available types, type_custom automatically enables as fallback. This prevents from loosing the configured path if a storage device (e.g. usb stick) is temporarily not available.

Rückgabe

Die Funktion selbst liefert HTML-Code zurück, der direkt mit print ausgegeben werden kann. 

Verwendung beim Formular-Processing

Wird das HTML immerhalb eines HTML-Formulars platziert, wird die Einstellung bei der Formularübermittlung mitgesendet.

Der vom Benutzer ausgewählte, vollständige Pfad (inkl. Ordner, wenn diese aktiviert sind),  wird mit jenem Namen übermittelt, die beim Aufruf mit formid übergeben wird.

Der zurückgegebene Pfad ist der absolute Pfad am LoxBerry. Ein Slash am Ende des Pfades wird immer entfernt, auch wenn dieser mit currentpath mitübergeben wird.

Verwendung mit JavaScript

Der aktuelle, zusammengesetzte Pfad kann jederzeit ausgelesen, bzw. eine Änderung überwacht werden:

Change event
// This example assumes that get_storage_html was called with formid => 'mypath'

// Read current storage path
console.log("Current path is", $("#mypath").val());

// Monitor user changes to the path with the 'change' event
$("#mypath").change(function() {
	console.log("Path changed to", $("#mypath").val());
});

Verwendung

use LoxBerry::Storage;


# Show all possible storage points including custom path and custom folder, use form id "storagepath"
print LoxBerry::Storage::get_storage_html( formid => 'storagepath', custom_folder => 1);


# Show only USB and NET storage, allow custom path but no custom folder
print LoxBerry::Storage::get_storage_html( formid => 'storagepath', type_usb => 1, type_net => 1, type_custom => 1);




  • No labels