.. You may want to use the usual include line. Uncomment and adjust the path. .. include:: ../Includes.txt ========================= EXT: Frontend Filemanager ========================= :Author: Kasper Skårhøj :Created: 2002-11-01T00:32:00 :Changed: 2009-05-31T18:04:03 :Author: Thomas Waggershauser :Email: waggershauser@airware.de :Info 3: :Info 4: .. _EXT-Frontend-Filemanager: EXT: Frontend Filemanager ========================= Extension Key: **air\_filemanager** Copyright 2007-2008, Thomas Waggershauser, This document is published under the Open Content License available from http://www.opencontent.org/opl.shtml The content of this document is related to TYPO3 \- a GNU/GPL CMS/Framework available from www.typo3.com .. _Table-of-Contents: Table of Contents ----------------- **EXT: Frontend Filemanager 1** **Introduction 1** What does it do? 1 Screenshots 1 **Users manual 2** Roles 2 ACL's and inheritance of rights 3 **Adminstration 3** The Plugin 3 **Configuration 4** Reference 4 **Tutorial 5** **Known problems 5** **To-Do list 5** .. _Introduction: Introduction ------------ .. _What-does-it-do: What does it do? ^^^^^^^^^^^^^^^^ This is the definitive fontend filemanager extension for typo3, even if many fetures are not implemented right now. The reason for that is, that it uses the dam to store the meta data. The main purpose for this extension is for the use in online- communities. Every FE-user can upload his own documents to share them with others. Note: In Version 0.7.0 the rights-handling changed. This Document is not completely up to date! .. _Screenshots: Screenshots ^^^^^^^^^^^ |img-1| *Illustration 1: Filelist* |img-2| *Illustration 2: Upload file* |img-3| *Illustration 3: Owner edits file metadata* If you want to test drive the extension, you can do so under `http://www.airware.de `_ . .. _Users-manual: Users manual ------------ The extension needs the dam to work. It adds columns for user and rights to the table tx\_dam and creates an own table to index directories, which is not done in the dam. This allows to create an own frontend access layer in TYPO3, which is similar to ftp. .. _Roles: Roles ^^^^^ For each dir and each file, four roles are existing: The owner (usual the one who creates the thing), a fe\_group, normal logged in users and anonymous, not logged in guys. While the owner is allowed to do everything, the rights for the other three roles can be adjusted by this owner or an be\_user. There are tupels of 4 bits for each role, similar to the rights in a UNIX filesystem. These are: - r – allowed to see the file or dir in the dir listing (8) - e - allowed to edit the metadata (4) - w - allowed to write in the directory or to overwrite the file (2) - x – allowed to see the content of the directory (1) To delete, the “e”- and the “w”-flag are needed. If you want to edit this permissions in the backend, you need to specify the permissions with the numerical values. Just count the numerics above and you get the exact value. For Example “r . . x” is 9 or “ r e w x” is 15. .. _ACL-s-and-inheritance-of-rights: ACL's and inheritance of rights ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Since version 0.7.0, it's possible to assign a file or dir to an arbitrary number of groups. This is a very nice feature to handle more complex setups, but its not easy to set default-values per typoscript. For that reason we implemented the inheritance feature: Files and folders get rights and acl's from the folder they're created or indexed in. .. _Subadmin: Subadmin """""""" It's now possible to set a group in an ACL as subadmin, to give full privileges to everything below this folder, to the corresponding group. The subadmin-privileges can only be set in the BE. .. _Recursive-changing-of-rights: Recursive changing of rights """""""""""""""""""""""""""" Subadmins have the possibility, to apply the ACL's of a directory to everything below this directory. Just check the checkbox and save, to do this. Existing ACL's are deleted! .. _Adminstration: Adminstration ------------- After installing you have to include the static typoscript coming with the extension. Then just insert the plugin and you can start. Some settings can be adjusted in the constants editor. First you should set the path to the filemanager-root. If you want to set the access for your root-dir, you can edit the record in the list-module. By default, the records are stored in the media-folder of the dam. If you use dam with the default- configuration, you don't see this folder. Just change this setting in the extension-manager (dam), or use the storage-property in Typoscript, to define a different storage-folder. |img-4| *Illustration 4: Edit directorys in the backend* However, it would be useful to restrict the use of the extension for logged in fe-users, because for that it was mainly written. .. _The-Plugin: The Plugin ^^^^^^^^^^ Since Version 0.6 the Plugin is equipped with a flexform. This allows even non-admin users to use the plugin and apply some configuration. This feature was added for the “Hochschule Darmstadt”, to allow sub- admins to configure the plugin for there own faculty without having full admin-access. |img-5| *Illustration 5: Configuring the plugin through flexform* .. _generated: ((generated)) """"""""""""" .. _The-Parameter-Startdir: The Parameter “Startdir” ~~~~~~~~~~~~~~~~~~~~~~~~ This Parameter defines the path which the Plugin shows by default. This path is relative to the root-path defined with typoscript. .. _The-Parameter-Mode: The Parameter “Mode” ~~~~~~~~~~~~~~~~~~~~ The default-mode is the same as already known, but there is a new one now: The “Homedir” mode. In this mode, the plugin by default shows the content of a directory with the name of the current fe-user. The path of this directory is root-path + startdir. If the directory doesn't already exist, it is created with the current fe-user as owner. .. _The-default-categories: The “default categories” ~~~~~~~~~~~~~~~~~~~~~~~~ These categories are assigned by default to newly uploaded files. .. _Filemanagergallery: Filemanagergallery """""""""""""""""" Since Version 0.7.2 there exists another plugin pi2 which renders a thumbnailview of images. It uses an own extension of the filemanager- template, which you have to include first. In this ts-template, thumbs are configured under **thumbconf** . .. _Upload-Notifications: Upload Notifications ^^^^^^^^^^^^^^^^^^^^ Since Version 0.8.15, it is possible to automatically send an email, when new files are uploaded. This mail goes to all users with read- access to the corresponding directory. .. _Expiry-Date: Expiry-Date ^^^^^^^^^^^ It is possible to set an expiry-date to every file. After achievement of this date, the file can be automatically deleted via cronjob. The date can be set automatically when a new file is uploaded. .. _Configuration: Configuration ------------- The filemanager is highly configurable through heavy use of typoscript. If you only want to configure the access-detail, the max uploadsize or want to use a different Template, then just use the constant-editor. If you for example want to add more dam-fields then you need to edit the setup. .. _Reference: Reference ^^^^^^^^^ .. ### BEGIN~OF~TABLE ### .. _root: root """" .. container:: table-row Property root Data type string Description Rootdirectory for plugin Default fileadmin/ .. _storage: storage """"""" .. container:: table-row Property storage Data type int Description Storage for directorys. Defaults to the dam-media-folder Default media .. _maxsize: maxsize """"""" .. container:: table-row Property maxsize Data type int Description Max size for files to upload Default 1 000 000 .. _damfields: damfields """"""""" .. container:: table-row Property damfields Data type Description List of fields, separated by comma Default description .. _defaultFile-rights: defaultFile.rights """""""""""""""""" .. container:: table-row Property defaultFile.rights Data type defaultRights Description default rights for new files Default .. _defaultDir-rights: defaultDir.rights """"""""""""""""" .. container:: table-row Property defaultDir.rights Data type defaultRights Description default rights for new directories Default .. _defaultCategories: defaultCategories """"""""""""""""" .. container:: table-row Property defaultCategories Data type Description List separated by comma. These categories are automatically assigned to newly uploaded and indexed files. Default .. _allowedCategories: allowedCategories """"""""""""""""" .. container:: table-row Property allowedCategories Data type Description List separated by comma. When empty, all categories are allowed Default .. _fileList: fileList """""""" .. container:: table-row Property fileList Data type fileList Description Default .. _uploadForm: uploadForm """""""""" .. container:: table-row Property uploadForm Data type cObject Description Default .. _editForm: editForm """""""" .. container:: table-row Property editForm Data type cObject Description Default .. _newDirForm: newDirForm """""""""" .. container:: table-row Property newDirForm Data type cObject Description Default .. _areYouSure: areYouSure """""""""" .. container:: table-row Property areYouSure Data type areYouSure Description Default .. _filesysCreateRights: filesysCreateRights """"""""""""""""""" .. container:: table-row Property filesysCreateRights Data type string Description Default 0644 .. _feuserAtIndexing: feuserAtIndexing """""""""""""""" .. container:: table-row Property feuserAtIndexing Data type bool Description Set feuser who does the indexing as owner Default 1 .. _fileIcons: fileIcons """"""""" .. container:: table-row Property fileIcons Data type String Description Path to the fileicons for the listview Default .. _fileIconsType: fileIconsType """"""""""""" .. container:: table-row Property fileIconsType Data type String Description Default gif .. _thumbs: thumbs """""" .. container:: table-row Property thumbs Data type bool Description Activate rendering of thumbnails for images Default .. _thumbconf: thumbconf """"""""" .. container:: table-row Property thumbconf Data type thumbconf Description Default .. _sortconf: sortconf """""""" .. container:: table-row Property sortconf Data type Description Default .. _allowOwnerEditAccess: allowOwnerEditAccess """""""""""""""""""" .. container:: table-row Property allowOwnerEditAccess Data type bool Description Default .. _uploadNotification: uploadNotification """""""""""""""""" .. container:: table-row Property uploadNotification Data type Description Default .. ###### END~OF~TABLE ###### [tsref:plugin.tx\_airfilemanager\_pi1] .. _generated: ((generated)) """"""""""""" .. _defaultRights: defaultRights ~~~~~~~~~~~~~ .. ### BEGIN~OF~TABLE ### .. _ac-owner: ac\_owner ''''''''' .. container:: table-row Property ac\_owner Data type 4-bit tupel Description default value for the role “owner”, like described in “roles” Default .. _ac-login: ac\_login ''''''''' .. container:: table-row Property ac\_login Data type 4-bit tupel Description default value for the role “login”, like described in “roles” Default .. _ac-other: ac\_other ''''''''' .. container:: table-row Property ac\_other Data type 4-bit tupel Description default value for the role “anonymous”, like described in “roles” Default .. _inheritance: inheritance ''''''''''' .. container:: table-row Property inheritance Data type bool Description de- / activate inheritance of rights Default .. ###### END~OF~TABLE ###### [tsref:plugin.tx\_airfilemanager\_pi1.defaultRights] .. _fileList: fileList ~~~~~~~~ .. ### BEGIN~OF~TABLE ### .. _list: list '''' .. container:: table-row Property list Data type cObject Description Default .. _dirrow: dirrow '''''' .. container:: table-row Property dirrow Data type cObject Description Default .. _filerow: filerow ''''''' .. container:: table-row Property filerow Data type cObject Description Default .. ###### END~OF~TABLE ###### [tsref:plugin.tx\_airfilemanager\_pi1.fileList] .. _areYouSure: areYouSure ~~~~~~~~~~ .. ### BEGIN~OF~TABLE ### .. _template: template '''''''' .. container:: table-row Property template Data type cObject Description Default .. _suretext: suretext '''''''' .. container:: table-row Property suretext Data type String / key/value Description Key / Value - pairs Default .. ###### END~OF~TABLE ###### [tsref:plugin.tx\_airfilemanager\_pi1.areYouSure] .. _thumbconf: thumbconf ~~~~~~~~~ .. ### BEGIN~OF~TABLE ### .. _imgTypes: imgTypes '''''''' .. container:: table-row Property imgTypes Data type Description Default .. _maxThumbWidth: maxThumbWidth ''''''''''''' .. container:: table-row Property maxThumbWidth Data type Description Default .. _maxThumbHeight: maxThumbHeight '''''''''''''' .. container:: table-row Property maxThumbHeight Data type Description Default .. _enableLightBox: enableLightBox '''''''''''''' .. container:: table-row Property enableLightBox Data type Description Default .. _lightBoxW: lightBoxW ''''''''' .. container:: table-row Property lightBoxW Data type Description Default .. _lightBoxH: lightBoxH ''''''''' .. container:: table-row Property lightBoxH Data type Description Default .. ###### END~OF~TABLE ###### .. _Tutorial: Tutorial -------- As example: You want to use the keywords-field of the dam-table. To achieve that, you first have to insert a field in the upload form. To do so create a template file somewhere in the fileadmin-tree. Add a new input field to the UPLOADFORM subpart like this: ::
Keys:
The important thing is the name of the inputfield. “meta” means that this information goes in the dam-table, “keywords” is the name of the column. Now insert the path of this new template for the uploadform in typoscript: :: plugin.tx_airfilemanager_pi1.uploadForm.10.template.file = fileadmin/templates/ext/fm.tmpl Now there's only one thing left: You have to tell the extension to allow to insert keywords in the dam table: :: plugin.tx_airfilemanager_pi1.damfields = description,keywords .. _Known-problems: Known problems -------------- The extension renders completely through the method cObjGetSingle() and its not cached. This gives a maximum flexibility but could be a performance problem very easy.. .. _To-Do-list: To-Do list ---------- Quotas (volume or number of files) copy, cut and paste eval fileextensions (upload only for allowed ones) and much more (not yet on paper..) |img-6| EXT: Frontend Filemanager - 6 .. ######CUTTER_MARK_IMAGES###### .. |img-1| image:: img-1.jpeg .. :align: left .. :border: 0 .. :id: graphics1 .. :name: graphics1 .. :width: 100% .. |img-2| image:: img-2.jpeg .. :align: left .. :border: 0 .. :id: graphics2 .. :name: graphics2 .. :width: 100% .. |img-3| image:: img-3.png .. :align: left .. :border: 0 .. :id: graphics4 .. :name: graphics4 .. :width: 100% .. |img-4| image:: img-4.png .. :align: left .. :border: 0 .. :id: graphics3 .. :name: graphics3 .. :width: 100% .. |img-5| image:: img-5.png .. :align: left .. :border: 0 .. :id: graphics5 .. :name: graphics5 .. :width: 100% .. |img-6| image:: img-6.png .. :align: left .. :border: 0 .. :height: 32 .. :id: Graphic1 .. :name: Graphic1 .. :width: 102