.. You may want to use the usual include line. Uncomment and adjust the path. .. include:: ../Includes.txt ===================== EXT: Modern Downloads ===================== :Author: Kasper Skårhøj :Created: 2002-11-01T00:32:00 :Changed: 2008-04-26T18:16:49 :Classification: ab_downloads :Email: typo3@andreas-bulling.de :Info 2: :Info 3: :Info 4: .. _EXT-Modern-Downloads: EXT: Modern Downloads ===================== Extension Key: **ab\_downloads** Copyright 2005 - 2009, Andreas Bulling, 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: Modern Downloads 1** **Introduction 1** What does it do? 1 Online Resources 2 Screenshots 3 **Users manual 19** Changing from other download extensions 24 FAQ 24 **Adminstration 29** **Configuration 29** Files 29 Reference 29 **Extending ab\_downloads 33** **Sponsoring ab\_downloads development 33** **Known problems 33** **To-Do list 34** **Changelog 34** .. _Introduction: Introduction ------------ .. _What-does-it-do: What does it do? ^^^^^^^^^^^^^^^^ This is a modern download plugin based on the Modern Linklist (ab\_linklist) extension. It has the following features: - Backend users can create categories and downloads, they can accept or delete new downloads proposed by frontend users, accept or disable downloads reported broken by frontend users and can check for non- working downloads (the latter also from behind a proxy server as curl support is available). - Frontend users can rate downloads, the current rating/number of votes is shown in the detailed download view and also with small stars in the category view. Both features can be disabled in the backend. - Frontend users can specify a contact address and a preview image when proposing a new download. The maximum sizes for images in the category and detailed link view can be defined in the backend. - All download and category values (label, description, href, rating, preview image, parent category, ...) are fully editable in the backend which also provides comfortable, graphical category trees. - The extension features comprehensive, FlexForm-based configuration options for all important plugin settings. - For each category the total number of downloads (plus downloads in all subcategories) is shown in the frontend. - For each category an image can be defined which is shown in front of the category link instead of the standard black triangle. - The number of downloads shown on a page can be limited to a certain value, a comfortable page browser has been added. - Flexible "TOP lists" show the TOPx number of downloads concerning rating, clicks and creation time per category (and below). - A “TREE” view shows a tree of all categories and downloads on one page similar to other download extensions around. - A “CATALOG” view shows a catalog of the categories and downloads similar to the google catalog. - date\_stdWrap and time\_stdWrap functions can be used to format the display of date and time. - An e-mail (with configurable subject) is sent to a specified address if a download is proposed/reported broken by a frontend user. - The plugin supports basic multiple-click and multiple-rating protection by storing the user's IP address. - A blacklist for words in the label and description fields of a download is provided. If the user-submitted label and/or description contains one of these words, the download proposal is refused with an error message. - A (simple and slow) search function has been added which provides searching on label and description of downloads. - The design and layout can be fully customized and fitted to your needs by editing the supplied CSS-based and table-based templates. “Default CSS-styles” with some basic CSS-definitions are also provided. - Caching of the output can be enabled and the extension also makes use of the new cHash mechanism. - The extension is capable of displaying multi-language content: Categories and downloads can be translated using the standard TYPO3 facilities. - The extension supports the versioning of downloads and the workspaces functionality offered by TYPO3 version 4.0. - The extension features import wizards which allow to 1) automatically generate a SQL query to import categories/downloads from other download lists/database tables and 2) to import categories/downloads from a CSV file. - The extension also features an export wizard which allows to export categories/downloads to different output formats (HTML, XML, TXT and CSV are supported so far). - The backend module offers a statistics functionality which allows to view statistics on the categories/downloads contained in the database. - FreeCap and Captcha Library support (extensions: "sr\_freecap" and “captcha”) is integrated for the “Propose a new download” frontend form. - The extension supports frontend editing of download records. - The extension features sponsored downloads which are always shown first in the different views and can have assigned an additional description. .. _Online-Resources: Online Resources ^^^^^^^^^^^^^^^^ If you like this extension please consider to rate it at: `http://typo3.org/extensions/repository/view/ab\_downloads/$CURRENT\_V ERSION$/rating/ `_ Project homepage: `http://typo3.andreas-bulling.de/en/extensions/modern-downloads/ `_ Subversion repository: `http://repos.andreas-bulling.de/ab\_downloads/ `_ Bugtracker: `http://typo3.andreas-bulling.de/en/bug-tracker/ `_ Donations: `http://typo3.andreas-bulling.de/en/donate-money/ `_ A demo with the most recent features enabled can be found here: `http://typo3.andreas-bulling.de/en/demos/modern-downloads/ `_ Most of the new labels/backend options have only been translated to German yet. So please feel free to send me more translations to make this extension usable for more people! .. _Screenshots: Screenshots ^^^^^^^^^^^ .. _Frontend: Frontend """""""" This is the first of the three available main views, the “CATEGORY” download and category view in the frontend. The style and the layout can easily be changed via a template and CSS of course. You can see a “Propose a new download” (display for anonymous users can be suppressed with a backend option) [1] and also three of the possible “TOP” lists available with 5 downloads each (can be changed in the backend): Rating, Clicks and Date of adding [2]. |img-1| |img-2| Following “Propose a new download” frontend users can propose new downloads with a form you can see in the following illustration. New downloads have to be approved in the backend before they become visible in the frontend. |img-3| The following is the same view as in illustration 1 but with an additional link path [1] for easier navigation in the category tree. You can see the stars representation [2] which can be disabled for the category view in the backend. You can also see the three links shown for each download: To view the details, to report a download as broken and to rate a download [3]. These features are shown in detail in the next three illustrations. Please notice that instead of the “report broken” link in this case only a short text is shown because the download has been reported as broken before. |img-4| From the category view the user is able to view a page giving detailed information about a download: |img-5| Another feature is the handling of broken downloads. Frontend users can report downloads as broken from the category view. After that a backend notification record is created for further handling by BE users. |img-6| Frontend user also have the possibility to rate downloads which you can see in the following illustration: |img-7| The following is one of the additional views, the “SEARCH” view. It displays a search function one can use to search for a word in the titles and descriptions of all downloads available in the frontend. |img-8| The second main view meant as an alternative to the “CATEGORY” view is the “TREE” view which displays a tree of all categories and downloads on one page similar to other download extensions around. |img-9| The last main view is the “CATALOG” view which displays a catalog of the categories and downloads similar to the google catalog. |img-10| .. _Backend: Backend """"""" The extension's backend functionality can be divided into two main parts: The “Modern Downloads” backend module The functionality provided within the “Edit record” backend forms for categories and downloads. **The “Modern Downloads” backend module** Here you can see an overview of downloads submitted by frontend users. By clicking on the two icons besides each download you can accept or delete them. You can also select a different category for the download. |img-11| In this view you can see all the downloads that were reported as broken by frontend users. By clicking on the two icons besides each download you can accept or disable them. |img-12| Here you can see an overview of all downloads including their availability (online/offline). You have the possibility to enable/disable certain downloads by clicking on the two icons besides each download. |img-13| Here you can generate a SQL query to import categories/downloads from other download extensions/database tables. Just follow the instructions step by step. |img-14| Here you can export categories/downloads to different output formats. Just follow the instructions step by step. |img-15| Here you can view statistics on the categories/downloads in the database. |img-16| **The functionality provided within the “Edit record” backend forms** This is how the “Edit record” backend form for categories looks like: |img-17| And this is how the “Edit record” backend form for downloads looks like: |img-18| |img-19| |img-20| .. _Users-manual: Users manual ------------ Install the extension via the Extension Manager (EM). Select either the “CSS-based template (ab\_downloads)” or the “Table- based template (ab\_downloads)" in the "Include static (from extensions)"-section of your main/extension TypoScript template. You can also select “Default CSS-styles (ab\_downloads)” if you want to get some basic CSS-definitions. If you don't know how to do this see section "Templates" in the "Getting Started" document: `http://typo3.org/documentation/document- library/doc\_tut\_quickstart/Templates/ `_ |img-21| Insert a new Content element “Plugin” on the page where the linklist shall be displayed. Therefore choose “Modern Downloads” according to the following Illustration: |img-22| After that you can configure the plugin using the following FlexForms (have a look at the reference for further information about the different options and their meaning): |img-23| |img-24| |img-25| |img-26| |img-27| |img-28| Now you can start adding (sub)category and download records to the page where you just inserted the plugin or to any other page/sysfolder **if you set the “Startingpoint” appropriately.** |img-29| Have fun! ;) .. _Changing-from-other-download-extensions: Changing from other download extensions ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ If you want to import your categories and downloads from other (TYPO3) extensions or database tables an appropriate SQL query can be generated automatically in the “Import categories/downloads” backend view. Just follow the instructions step by step and use for example phpMyAdmin in your TYPO3 backend afterwards to execute the query. .. _FAQ: FAQ ^^^ - **How can I change the appearance of the pagebrowser?** When looking at the generated html source code you can see that the pagebrowser and its components are wrapped in several
tags which you can freely modify by adding appropriate CSS definitions to your site. You also have the possibility to substitute the built-in pagebrowser with your own pagebrowser script. The file "example\_userPageBrowserFunc.php" was added in folder "res/" of the extension which contains a example pagebrowser userfunction you can change to fit your needs (see the file for a description and the needed TypoScript setup). - **How can I enable the PiBasePagebrowser/use the new features of the extended TYPO3 v3.8.0 pagebrowser?** Just overwrite the provided (static) TypoScript setup in your extension/main template. The following default settings have been predefined: :: usePiBasePagebrowser = 0 pageBrowser { maxPages = 50 showResultCount = 1 showPBrowserText = 0 dontLinkActivePage = 1 tableParams = cellpadding="2" align="center" hscText = 1 # settings for the extended pagebrowser from TYPO3 3.8.0 showFirstLast = 0 pagefloat = center showRange = 0 disabledLinkWrap = | inactiveLinkWrap = | activeLinkWrap = | browseLinksWrap = | showResultsWrap = |
showResultsNumbersWrap = | browseBoxWrap =
|
} - **How can I change the display of date and time?** First make sure to set the correct language and locale in your main template (please refer to the TYPO3 Documentation on how to do this). After that just overwrite the provided (static) TypoScript setup in your extension/main template. For example a possible German format: :: plugin.tx_abdownloads_pi1 { date_stdWrap.strftime = %d. %B %Y time_stdWrap.strftime = %H:%M:%S Uhr } - - **How can I change the labels of the pagebrowser?** Create an extension template for the page you added the “Modern Downloads” to and add the following TypoScript code in the “Setup” field of the template. For example apossible German format (not using the PiBasePagebrowser): :: plugin.tx_abdownloads_pi1 { _LOCAL_LANG.de { pi_list_browseresults_prev = < vorherige Einträge pi_list_browseresults_next = weitere Einträge > pi_list_browseresults_displays = Anzeige: %s bis %s von %s } } Another German example (using the PiBasePagebrowser in this case): :: plugin.tx_abdownloads_pi1 { # enable the PiBasePagebrowser usePiBasePagebrowser = 1 _LOCAL_LANG.de { pi_list_browseresults_prev = < vorherige Einträge pi_list_browseresults_next = weitere Einträge > pi_list_browseresults_displays ( Anzeige: ###FROM### bis ###TO### von ###OUT_OF### ) } } - **How can I change the label of the search button?** Create an extension template for the page you added the “Modern Downloads” to and add the following TypoScript code in the “Setup” field of the template. For example a possible German format: plugin.tx\_abdownloads\_pi1{ \_LOCAL\_LANG.de{ pi\_list\_searchBox\_search=Suchen :: } } - **How can I change the appearance and layout of the download lists?** In subfolder “pi1” of the extension you will find an example template file called “tx\_abdownloads\_pi1.tmpl” which is used by the extension by default. Copy this file to some other place (perhaps where you store your other templates) and edit it to fit your needs. Afterwards select it in the plugin options under “Template file”. As the ATagParams of the frontend links can be defined/changed you can also use this additional method. - **How can I define/change the parameters (ATagParams) of the frontend links?** Just overwrite the provided (static) TypoScript setup in your (extension) template. The following default style classes for the links have been predefined: :: # listView link/category parameter settings listView { # ATagParams categoryLabel.ATagParams = class="tx_abdownloads_listView_categoryLabel" linkAddNew.ATagParams = class="tx_abdownloads_listView_linkAddNew" linkLabel.ATagParams = class="tx_abdownloads_listView_linkLabel" linkDetails.ATagParams = class="tx_abdownloads_listView_linkDetails" linkReportBroken.ATagParams = class="tx_abdownloads_listView_linkReportBroken" linkRate.ATagParams = class="tx_abdownloads_listView_linkRate" linkImage.ATagParams = class="tx_abdownloads_listView_linkImage" } # treeView link parameter settings treeView { # ATagParams linkAddNew.ATagParams = class="tx_abdownloads_treeView_linkAddNew" linkLabel.ATagParams = class="tx_abdownloads_treeView_linkLabel" linkDetails.ATagParams = class="tx_abdownloads_treeView_linkDetails" linkReportBroken.ATagParams = class="tx_abdownloads_treeView_linkReportBroken" linkRate.ATagParams = class="tx_abdownloads_treeView_linkRate" linkImage.ATagParams = class="tx_abdownloads_treeView_linkImage" } # searchView link parameter settings searchView { # AtagParams categoryLabel.ATagParams = class="tx_abdownloads_searchView_categoryLabel" linkLabel.ATagParams = class="tx_abdownloads_searchView_linkLabel" linkDetails.ATagParams = class="tx_abdownloads_searchView_linkDetails" linkReportBroken.ATagParams = class="tx_abdownloads_searchView_linkReportBroken" linkRate.ATagParams = class="tx_abdownloads_searchView_linkRate" linkImage.ATagParams = class="tx_abdownloads_searchView_linkImage" } # topView link parameter settings topView { # ATagParams linkLabel.ATagParams = class="tx_abdownloads_topView_linkLabel" linkDetails.ATagParams = class="tx_abdownloads_topView_linkDetails" linkImage.ATagParams = class="tx_abdownloads_topView_linkImage" } # catalogView link parameter settings catalogView { # AtagParams categoryLabel.ATagParams = class="tx_abdownloads_catalogView_categoryLabel" subcategoryLabel.ATagParams = class="tx_abdownloads_catalogView_subcategoryLabel" linkAddNew.ATagParams = class="tx_abdownloads_catalogView_linkAddNew" linkLabel.ATagParams = class="tx_abdownloads_catalogView_linkLabel" linkDetails.ATagParams = class="tx_abdownloads_catalogView_linkDetails" linkReportBroken.ATagParams = class="tx_abdownloads_catalogView_linkReportBroken" linkRate.ATagParams = class="tx_abdownloads_catalogView_linkRate" linkImage.ATagParams = class="tx_abdownloads_catalogView_linkImage" } - :: How can I define/change the wraps for the generated output? Just overwrite the provided (static) TypoScript setup in your (extension) template. The following wraps, crops, etc. have been predefined: # General stdWraps categoryPath_stdWrap.wrap = | linkLabel_stdWrap.wrap = | addLink_stdWrap.wrap = | addLinkText_stdWrap.wrap = | mandatoryField_stdWrap.wrap = *| reportLinkBrokenText_stdWrap.wrap = | rateLinkText_stdWrap.wrap = | formErrorMsg_stdWrap.wrap = | nonPublicLinkMessage_stdWrap = | linkLabel_stdWrap.wrap = | linkDescription_stdWrap.wrap = | # listView link/category parameter settings listView { # Wraps categories_stdWrap.wrap = | category_stdWrap.wrap = | categoryPath_stdWrap.wrap = | categoryLabel_stdWrap.wrap = | categoryDescription_stdWrap { wrap =
| crop = } links_stdWrap.wrap = | linkAddNew_stdWrap.wrap = | linkTeaser_stdWrap { wrap = | crop = 30 | ... | 1 } linkDescription_stdWrap.wrap = | linkLabel_stdWrap.wrap = | linkDetails_stdWrap.wrap = | linkReportBroken_stdWrap.wrap = | linkRate_stdWrap.wrap = | } # treeView link parameter settings treeView { # Wraps categoryLabel_stdWrap.wrap = | categoryDescription_stdWrap { wrap =
| crop = } linkAddNew_stdWrap.wrap = | linkTeaser_stdWrap { wrap = | crop = 30 | ... | 1 } linkDescription_stdWrap.wrap = | linkLabel_stdWrap.wrap = | linkDetails_stdWrap.wrap = | linkReportBroken_stdWrap.wrap = | linkRate_stdWrap.wrap = | } # searchView link parameter settings searchView { # Wraps resultMessage_stdWrap.wrap = | noLinksMessage_stdWrap.wrap = | categoryPath_stdWrap.wrap = | categoryLabel_stdWrap.wrap = | categoryDescription_stdWrap { wrap =
| crop = } links_stdWrap.wrap = | linkTeaser_stdWrap { wrap = | crop = 30 | ... | 1 } linkDescription_stdWrap.wrap = | linkLabel_stdWrap.wrap = | linkDetails_stdWrap.wrap = | linkReportBroken_stdWrap.wrap = | linkRate_stdWrap.wrap = | } # topView link parameter settings topView { # Wraps topMessage_stdWrap.wrap = | categoryPath_stdWrap.wrap = | categoryLabel_stdWrap.wrap = | categoryDescription_stdWrap { wrap =
| crop = } linkTeaser_stdWrap { wrap = | crop = 30 | ... | 1 } linkDescription_stdWrap.wrap = | linkLabel_stdWrap.wrap = | linkDetails_stdWrap.wrap = | } # catalogView link parameter settings catalogView { # Wraps categoryPath_stdWrap.wrap = | categoryLabel_stdWrap.wrap = | categoryDescription_stdWrap { wrap =
| crop = } subcategoryLabel_stdWrap.wrap = | subcategoryDescription_stdWrap { wrap =
| crop = } links_stdWrap.wrap = | linkAddNew_stdWrap.wrap = | linkTeaser_stdWrap { wrap = | crop = 30 | ... | 1 } linkDescription_stdWrap.wrap = | linkLabel_stdWrap.wrap = | linkDetails_stdWrap.wrap = | linkReportBroken_stdWrap.wrap = | linkRate_stdWrap.wrap = | } - **How can I define/change the indention factor for the TREE view?** Just overwrite the provided (static) TypoScript setup in your (extension) template. The following indentionFactor has been predefined: :: # treeView link parameter settings treeView { # indentionFactor indentionFactor = 40 } - **How can I define/change the separator and the appendix for the CATALOG view?** Just overwrite the provided (static) TypoScript setup in your (extension) template. The following separator and appendix have been predefined: :: # catalogView link parameter settings catalogView { # Separator and appendix separator = ,  appendix = ... } - **How can I access/use arbitrary database fields of categories or downloads with TypoScript?** For example, to access/use the “label” database field, create an extension template for the page you added the “Modern Downloads” to and add the following TypoScript code in the “Setup” field of the template: :: # Condition is true if a category is shown [globalVar = GP:tx_abdownloads_pi1|category_uid > 0] lib.downloadTitle = COA lib.downloadTitle { 10 = RECORDS 10 { source = {GPvar:tx_abdownloads_pi1|category_uid} source.insertData = 1 tables = tx_abdownloads_category conf.tx_abdownloads_category > conf.tx_abdownloads_category = TEXT conf.tx_abdownloads_category.field = label } } # Condition is true if a link is shown [globalVar = GP:tx_abdownloads_pi1|uid > 0] lib.downloadTitle = COA lib.downloadTitle { 10 = RECORDS 10 { source = {GPvar:tx_abdownloads_pi1|uid} source.insertData = 1 tables = tx_abdownloads_download conf.tx_abdownloads_link > conf.tx_abdownloads_link = TEXT conf.tx_abdownloads_link.field = label } } [GLOBAL] This creates a TypoScript object called "lib.downloadTitle" filled with the label of a) the current category or b) the current link. This objectt could for example be used to fill the description HTML metatag: :: page.headerData.20 > page.headerData.20 < lib.downloadTitel page.headerData.20.wrap = - **How can I enable the frontend edit panels for download records?** First, make sure the adminPanel is enabled in the TypoScript “Setup” of your main/extension template: :: config.admPanel = 1 Afterwards, enable “Display Edit Panels” in the “Editing” section of the admin panel and click “Update”. Given that you have added the ###EDIT\_PANEL### marker to your template, the edit panels will show up in the frontend. - **I've set the “** **Maximum filesize of downloads** **” appropriately but I still can't upload files larger than X MB, whats's going wrong?** There are several other places which you should check: PHP: “post\_max\_size” and “upload\_max\_filesize” options usually in php.ini TYPO3: “maxFileSize” in the Install Tool .. _Adminstration: Adminstration ------------- Please keep track of the Changelog section to catch up on **deleted, added or changed template markers** because they **will only be proposed there and in the ChangeLog file** . .. _Configuration: Configuration ------------- .. _Files: Files ^^^^^ The following table shows the files used/available in the extension: .. ### BEGIN~OF~TABLE ### .. _pi1-class-tx-abdownloads-pi1-php: pi1/class.tx\_abdownloads\_pi1.php """""""""""""""""""""""""""""""""" .. container:: table-row File pi1/class.tx\_abdownloads\_pi1.php Description Main PHP-class used to display the frontend plugin. .. _pi1-tx-abdownloads-pi1-css-tmpl: pi1/tx\_abdownloads\_pi1\_css.tmpl """""""""""""""""""""""""""""""""" .. container:: table-row File pi1/tx\_abdownloads\_pi1\_css.tmpl Description The CSS-based ab\_downloads HTML template file. .. _pi1-tx-abdownloads-pi1-tmpl: pi1/tx\_abdownloads\_pi1.tmpl """"""""""""""""""""""""""""" .. container:: table-row File pi1/tx\_abdownloads\_pi1.tmpl Description The table-based ab\_downloads HTML template file. .. _mod1-index-php: mod1/index.php """""""""""""" .. container:: table-row File mod1/index.php Description Main PHP-class used to display the backend module. .. _lib-class-tx-abdownloads-treeview-php: lib/class.tx\_abdownloads\_treeview.php """"""""""""""""""""""""""""""""""""""" .. container:: table-row File lib/class.tx\_abdownloads\_treeview.php Description This class builds the “category tree” in BE forms and checks for recursive categories .. _res-example-userPageBrowserFunc-php: res/example\_userPageBrowserFunc.php """""""""""""""""""""""""""""""""""" .. container:: table-row File res/example\_userPageBrowserFunc.php Description Example of a pagebrowser userfunction (“userPageBrowserFunc”): This file contains a alternative pagebrowser function (see the file for a description and the needed TS setup). .. _res-ab-downloads-styles-css: res/ab\_downloads\_styles.css """"""""""""""""""""""""""""" .. container:: table-row File res/ab\_downloads\_styles.css Description CSS-styles for the HTML template files. This file contains the style information from the static extension template “Default CSS-styles”. .. _res-example-realURL-setup-txt: res/example\_realURL\_setup.txt """"""""""""""""""""""""""""""" .. container:: table-row File res/example\_realURL\_setup.txt Description Example RealURL setup for ab\_downloads. .. _Folders: Folders: """""""" .. container:: table-row File Folders: static/css\_based/ static/table\_based/ static/css/ Description These are the static extension templates: “CSS-based template” “Table-based template” ”Default CSS-styles” .. ###### END~OF~TABLE ###### .. _Reference: Reference ^^^^^^^^^ **plugin.tx\_abdownloads\_pi1 properties: TS configuration** .. ### BEGIN~OF~TABLE ### .. _sys-language-mode: sys\_language\_mode """"""""""""""""""" .. container:: table-row Property sys\_language\_mode Data Type string Description Defines how not-translated download records are handled. Possible values: \- strict Default is to display download records in the default language (sys\_language\_uid=0) if no translation is available. Setting “sys\_language\_mode” to “strict” will only display records in the chosen language. If “plugin.tx\_abdownloads\_pi1.sys\_language\_mode” is empty but a value for “page.config.sys\_language\_mode” has been defined ab\_downloads will use this value instead. **Example:** :: plugin.tx_abdownloads_pi1.sys_language_mode = strict see: `http://typo3.org/documentation/document- library/doc\_core\_tsref/quot\_CONFIG\_quot/ `_ -> search: “sys\_language\_mode” Default .. ###### END~OF~TABLE ###### **The following table shows the FlexForm “General Settings”:** .. ### BEGIN~OF~TABLE ### .. _Which-view-to-display: Which view to display """"""""""""""""""""" .. container:: table-row Property Which view to display Description Defines which view shall be displayed in the frontend Main views: \- CATEGORY => Hierarchical list of categories and downloads on several pages \- TREE => Tree of all categories and downloads on one page \- CATALOG => Catalog of the categories and downloads similar to the google catalog Additional views: \- SEARCH => Search form and results \- TOP => TOP List(s) Default CATEGORY .. _Allow-not-logged-in-users-to-propose-new-downloads: Allow not logged-in users to propose new downloads """""""""""""""""""""""""""""""""""""""""""""""""" .. container:: table-row Property Allow not logged-in users to propose new downloads Description With this parameter you can allow anonymous users (users that are not logged in) to propose new downloads. Possible values: \- checked (Yes) \- not checked (No) Default Not checked .. _Default-status-of-proposed-downloads: Default status of proposed downloads """""""""""""""""""""""""""""""""""" .. container:: table-row Property Default status of proposed downloads Description Defines the default status of proposed downloads. Possible values: \- Pending \- Approved \- Reported Broken \- Disabled Default Pending .. _Maximum-filesize-of-downloads: Maximum filesize of downloads """"""""""""""""""""""""""""" .. container:: table-row Property Maximum filesize of downloads Description Defines the maximum filesize of downloads in bytes used for the “Propose a new download form”. Possible values: \- any Integer. e.g. 5 Default .. _Blacklisted-words-for-label-and-description-separated-by-comma: Blacklisted words for label and description (separated by comma) """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" .. container:: table-row Property Blacklisted words for label and description (separated by comma) Description All words given in this field will be blacklisted for label and description when a frontend user proposes a new download. Possible values: \- any number of strings separated by comma Default .. _Mandatory-fields-for-frontend-form-separated-by-comma: Mandatory fields for frontend form (separated by comma) """"""""""""""""""""""""""""""""""""""""""""""""""""""" .. container:: table-row Property Mandatory fields for frontend form (separated by comma) Description Defines which fields are mandatory when a frontend user proposes a new download. Default .. _Page-with-CATEGORY-TREE-CATALOG-plugin-if-different: Page with CATEGORY/TREE/CATALOG plugin (if different) """"""""""""""""""""""""""""""""""""""""""""""""""""" .. container:: table-row Property Page with CATEGORY/TREE/CATALOG plugin (if different) Description Defines the page with the CATEGORY/TREE/CATALOG plugin if the plugins of type SEARCH/TOP are on another page. Possible values: \- any page Default .. _Use-captcha-extension: Use captcha extension """"""""""""""""""""" .. container:: table-row Property Use captcha extension Description Defines which captcha extension shall be used; the captcha form field will become mandatory. Possible values: \- none \- freeCap CAPTCHA (sr\_freecap) \- Captcha Library (captcha) Default .. _Startingpoint: Startingpoint """"""""""""" .. container:: table-row Property Startingpoint Description Defines the page(s) where categories and downloads are stored. Possible values: \- any page(s) Default .. _Recursive: Recursive """"""""" .. container:: table-row Property Recursive Description Defines to which level the startingpoint page(s) should be search recursively. Possible values: \- none \- 1 level \- 2 levels \- 3 levels \- 4 levels \- Infinite Default .. ###### END~OF~TABLE ###### **The following table shows the FlexForm “Template”:** .. ### BEGIN~OF~TABLE ### .. _Template-file: Template file """"""""""""" .. container:: table-row Property Template file Description Defines the template file to use. Default .. _Number-of-alternating-template-layouts: Number of alternating template layouts """""""""""""""""""""""""""""""""""""" .. container:: table-row Property Number of alternating template layouts Description Defines the number of alternating template layouts ###DOWNLOAD\_X### used in the ###VIEW\_CATEGORY### and ###VIEW\_CATALOG### template subparts. Possible values: \- any Integer. e.g. 5 Default 2 .. ###### END~OF~TABLE ###### **The following table shows the FlexForm “Notification Settings”:** .. ### BEGIN~OF~TABLE ### .. _Admin-name: Admin name """""""""" .. container:: table-row Property Admin name Description The name of the administrator. Default Modern Downloads .. _Admin-e-mail-address: Admin e-mail address """""""""""""""""""" .. container:: table-row Property Admin e-mail address Description The e-mail address all notification e-mails are send to. Default .. _Subject-for-added-download-notification-e-mails: Subject for 'added download' notification e-mails """"""""""""""""""""""""""""""""""""""""""""""""" .. container:: table-row Property Subject for 'added download' notification e-mails Description The subject for 'added download' notification e-mails. Default Modern Downloads - New download added .. _Subject-for-broken-download-notification-e-mails: Subject for 'broken download' notification e-mails """""""""""""""""""""""""""""""""""""""""""""""""" .. container:: table-row Property Subject for 'broken download' notification e-mails Description The subject for 'broken download' notification e-mails. Default Modern Downloads – Download reported broken .. ###### END~OF~TABLE ###### **The following table shows the FlexForm “Display Settings”:** .. ### BEGIN~OF~TABLE ### .. _Start-category: Start category """""""""""""" .. container:: table-row Property Start category Description Defines the start category. Default .. _Sort-downloads-by: Sort downloads by """"""""""""""""" .. container:: table-row Property Sort downloads by Description Defines by which attribute the downloads are sorted. Possible values: \- Label \- Date of creation \- Clicks \- Rating \- Votes \- Manual \- Random Default Label .. _Sort-order-downloads: Sort order (downloads) """""""""""""""""""""" .. container:: table-row Property Sort order (downloads) Description Defines the sort order of the downloads. Possible values: \- Ascending \- Descending Default Ascending .. _Maximum-number-of-downloads-shown-per-category: Maximum number of downloads shown per category """""""""""""""""""""""""""""""""""""""""""""" .. container:: table-row Property Maximum number of downloads shown per category Description Defines how many downloads per category are shown in the category view. Possible values: \- any Integer. e.g. 5 Default 10 .. _Sort-categories-by: Sort categories by """""""""""""""""" .. container:: table-row Property Sort categories by Description Defines by which attribute the categories are sorted. Possible values: \- Label \- Date of creation \- Manual \- Random Default Label .. _Sort-order-categories: Sort order (categories) """"""""""""""""""""""" .. container:: table-row Property Sort order (categories) Description Defines the sort order of the categories. Possible values: \- Ascending \- Descending Default Ascending .. _Hide-pagebrowser: Hide pagebrowser """""""""""""""" .. container:: table-row Property Hide pagebrowser Description Defines if the pagebrowser should be hidden. Possible values: \- checked (Yes) \- not checked (No) Default Not checked .. _Hide-rating-stars: Hide rating stars """"""""""""""""" .. container:: table-row Property Hide rating stars Description Defines if the rating stars should be hidden. Possible values: \- checked (Yes) \- not checked (No) Default Not checked .. _Hide-details-link: Hide details link """"""""""""""""" .. container:: table-row Property Hide details link Description Defines if the details link should be hidden. Possible values: \- checked (Yes) \- not checked (No) Default Not checked .. _Hide-report-broken-link: Hide report broken link """"""""""""""""""""""" .. container:: table-row Property Hide report broken link Description Defines if the report broken link should be hidden. Possible values: \- checked (Yes) \- not checked (No) Default Not checked .. _Hide-rate-link: Hide rate link """""""""""""" .. container:: table-row Property Hide rate link Description Defines if the rate link should be hidden. Possible values: \- checked (Yes) \- not checked (No) Default Not checked .. _Don-t-prefer-sponsored-downloads: Don't prefer sponsored downloads """""""""""""""""""""""""""""""" .. container:: table-row Property Don't prefer sponsored downloads Description Defines if sponsored downloads are always shown first in the different views. Possible values: \- checked (Yes) \- not checked (No) Default Not checked .. _Show-icons-instead-of-links: Show icons instead of links """"""""""""""""""""""""""" .. container:: table-row Property Show icons instead of links Description Defines if icons shall be displayed instead of links. Possible values: \- checked (Yes) \- not checked (No) Default Not checked .. _Link-images: Link images """"""""""" .. container:: table-row Property Link images Description Defines if/how images are linked in the views. Possible values: \- Direct (directly linked to href counting click) \- Details (linked to detailed download view) \- Target (directly linked to href not counting click) Default .. _Link-labels: Link labels """"""""""" .. container:: table-row Property Link labels Description Defines if/how labels are linked in the views. Possible values: \- Direct (directly linked to href counting click) \- Details (linked to detailed download view) \- Target (directly linked to href not counting click) Default .. ###### END~OF~TABLE ###### **The following table shows the FlexForm “Image Settings”:** .. ### BEGIN~OF~TABLE ### .. _Max-width-for-images-in-the-category-view: Max width for images in the category view """"""""""""""""""""""""""""""""""""""""" .. container:: table-row Property Max width for images in the category view Description Defines the maximum width for images displayed in the category view. Bigger images get resized automatically. Possible values: \- any Integer. e.g. 5 Default 600 .. _Max-height-for-images-in-the-category-view: Max height for images in the category view """""""""""""""""""""""""""""""""""""""""" .. container:: table-row Property Max height for images in the category view Description Defines the maximum height for images displayed in the category view. Bigger images get resized automatically. Possible values: \- any Integer. e.g. 5 Default 100 .. _Max-width-for-images-in-the-detailed-download-view: Max width for images in the detailed download view """""""""""""""""""""""""""""""""""""""""""""""""" .. container:: table-row Property Max width for images in the detailed download view Description Defines the maximum width for images displayed in the detailed download view. Bigger images get resized automatically. Possible values: \- any Integer. e.g. 5 Default 600 .. _Max-height-for-images-in-the-detailed-download-view: Max height for images in the detailed download view """"""""""""""""""""""""""""""""""""""""""""""""""" .. container:: table-row Property Max height for images in the detailed download view Description Defines the maximum height for images displayed in the detailed download view. Bigger images get resized automatically. Possible values: \- any Integer. e.g. 5 Default 100 .. _Max-width-for-category-images: Max width for category images """"""""""""""""""""""""""""" .. container:: table-row Property Max width for category images Description Defines the maximum width for category images. Bigger images get resized automatically. Possible values: \- any Integer. e.g. 5 Default 25 .. _Max-height-for-category-images: Max height for category images """""""""""""""""""""""""""""" .. container:: table-row Property Max height for category images Description Defines the maximum height for category images. Bigger images get resized automatically. Possible values: \- any Integer. e.g. 5 Default 15 .. ###### END~OF~TABLE ###### **The following table shows the FlexForm “TOP Settings”:** .. ### BEGIN~OF~TABLE ### .. _Stick-to-start-category-ID-in-TOP-view: Stick to start category ID in TOP view """""""""""""""""""""""""""""""""""""" .. container:: table-row Property Stick to start category ID in TOP view Description Defines if the TOP view shall stick to the "Start category ID". If no "Start category ID" is defined "0" is used by default. Possible values: \- checked (Yes) \- not checked (No) Default Not checked .. _Number-of-top-rated-downloads: Number of top rated downloads """"""""""""""""""""""""""""" .. container:: table-row Property Number of top rated downloads Description Defines if and how many top rated downloads are shown in the frontend. Possible values: \- any Integer. e.g. 5 Default .. _Number-of-top-accessed-downloads: Number of top accessed downloads """""""""""""""""""""""""""""""" .. container:: table-row Property Number of top accessed downloads Description Defines if and how many top accessed downloads are shown in the frontend. Possible values: \- any Integer. e.g. 5 Default .. _Number-ofmost-recent-downloads: Number ofmost recent downloads """""""""""""""""""""""""""""" .. container:: table-row Property Number ofmost recent downloads Description Defines if and how many most recent downloads are shown in the frontend. Possible values: \- any Integer. e.g. 5 Default .. _Number-of-random-downloads: Number of random downloads """""""""""""""""""""""""" .. container:: table-row Property Number of random downloads Description Defines if and how many random downloads are shown in the frontend. Possible values: \- any Integer. e.g. 5 Default .. ###### END~OF~TABLE ###### **The following table shows the FlexForm “CATALOG Settings”:** .. ### BEGIN~OF~TABLE ### .. _Number-of-columns: Number of columns """"""""""""""""" .. container:: table-row Property Number of columns Description Defines how many columns are shown in the frontend. Possible values: \- any Integer. e.g. 5 Default .. _Max-number-of-subcategories: Max number of subcategories """"""""""""""""""""""""""" .. container:: table-row Property Max number of subcategories Description Defines how many subcategories are shown in the frontend. Possible values: \- any Integer. e.g. 5 Default .. ###### END~OF~TABLE ###### .. _Extending-ab-downloads: Extending ab\_downloads ----------------------- The following hooks exist in ab\_downloads: Hook for processing extra markers for each download record in function fillMarkerArray() (recordMarkerProcessor) For more information about hooks please refer to: `TYPO3 Core API / Hooks `_ and: `http://typo3.org/development/articles/how-to-use-existing-hooks/ `_ .. _Sponsoring-ab-downloads-development: Sponsoring ab\_downloads development ------------------------------------ I'm working very hard on providing you with the best extensions available for TYPO3. The extensions are available for free and will always be available for free, including each and every line of its source code for everyone to modify and distribute. If you enjoy and use ab\_downloads please consider supporting my projects financially. I'm in constant need of funds in order to finance my operations and to keep my development hardware and software updated. As PayPal now charges fees, the preferred way of donating is to directly transfer money to my bank account (see below URL for details). However, you can also use my `PayPal `_ account. I suggest a donation of 50, 20 or 10 Euro, but you may donate any amount you please by filling in the amount you would like to contribute on `http://typo3.andreas-bulling.de/en/donate-money/ `_ .. _Known-problems: Known problems -------------- none .. _To-Do-list: To-Do list ---------- - Switch from eregi to other method for searching. - Sorting of links dependent on category (?) .. _Changelog: Changelog --------- For the sake of a smaller document all changes of versions below the current minor one, as well as acknowledgments, documentation updates and smaller code cleanups were moved into the ChangeLog file. **Version 1.9.6** (2009-07-30) - Added support for the "Captcha Library" extension (extension key: "captcha"). Therefore extended the "Use captcha extension" FlexForm option and the ###CAPTCHA### subsubpart in the ###VIEW\_ADD\_NEW\_DOWNLOAD### template subpart. **\*\*\* Please update your templates! \*\*\*** **\*\*\* Please notice: Make sure that all previously defined settings are still correct after the update. \*\*\*** - Added piping of all browser output through htmlspecialchars() and trim(). - Renamed LIST view to CATEGORY view. - Added the possibility to use several search words as well as AND, OR, and NOT in the search form. - Added export and import functionality for the CSV format. - Changed behaviour of the backend module: Removed check if the page with the plugin was selected. - Fixed a bug where the dropdowns in the "Import categories/downloads from DB" backend form weren't shown properly. - Fixed a bug where downloadLabel\_stdWrap wasn't applied to images/labels linked to the target URL. **Version 1.9.5** (2008-04-27) - For file extensions for which no icon is provided a default icon is used, now. - Added the possibility to define sponsored downloads which are always shown first in the different views. Therefore added the "Don't prefer sponsored downloads" FlexForm option. - Added the possibility to provide an additional description for sponsored downloads in the backend's FlexForm. Therefore added the ###DOWNLOAD\_SPONSORED\_DESCRIPTION### marker to the ###VIEW\_CATEGORY###, ###VIEW\_TREE###, ###VIEW\_SEARCH###, ###VIEW\_TOP###, ###VIEW\_CATALOG### and ###VIEW\_DETAILS\_FOR\_DOWNLOAD### template subparts and the "Sponsored Description" FlexForm option. **\*\*\* Please update your templates! \*\*\*** - Added the possibility to define the sort order of the categories and downloads as "random" in the backend. Therefore extended the "Sort downloads by" and "Sort categories by" FlexForm options. - Added the possibility to tag downloads with additional search terms in the backend's FlexForm. Therefore added the "Tags (comma separated)" FlexForm option and extended the search function. - Fixed a bug where links set in the description field with the RTE weren't displayed in the teaser in the different views. - Added the possibility to define an arbitrary number of alternating layouts ###DOWNLOAD\_X### in the ###VIEW\_CATEGORY### and ###VIEW\_CATALOG### template subparts (defaults to 2 if not set). Therefore added the "Number of alternating template layouts" FlexForm option. - Fixed a bug where the mandatory category field was not marked in the "Propose a new download" form. **\*\*\* Please notice: Make sure that all previously defined settings are still correct after the update. \*\*\*** - Reorganized and cleaned up the backend FlexForm. **\*\*\* Please notice: Make sure that all previously defined settings are still correct after the update. \*\*\*** **Version 1.9.4** (2008-03-20) - Added the possibility to use several instances of the plugin simultaneously. - Fixed a bug where it was not possible to assign more than one usergroup to a download/category. - Transferred fix for bug #0000061 from extension Modern Linklist (ab\_linklist). **Version 1.9.3** (2007-10-20) - Added the first version of the documentation. - Added support for frontend editing of download records. Therefore added the ###EDIT\_PANEL### marker to the ###VIEW\_CATEGORY###, ###VIEW\_TREE###, ###VIEW\_SEARCH###, ###VIEW\_TOP###, ###VIEW\_CATALOG### and ###VIEW\_DETAILS\_FOR\_DOWNLOAD### template subparts. **\*\*\* Please notice: You have to enable the edit panels in the "Editing" section of the Admin Panel. \*\*\*** - Improved the "Mandatory fields for frontend form" FlexForm option. **\*\*\* Please notice: Make sure that all previously defined settings are still correct after the update. \*\*\*** - Changed the behaviour of the "stars"-representation for the download ratings. In any case, five stars are shown while each star represents a rating value of 2. - Fixed a bug in getViewReportBrokenDownloadResult() which allowed malicious users to change the status of a download by modifying the tx\_abdownloads\_pi1[uid] GET parameter. - Transferred fix for bug #0000042 from extension Modern Linklist (ab\_linklist). - Transferred fix for bug #0000051 from extension Modern Linklist (ab\_linklist). **Version 1.9.2** (2007-09-01) - Added the possibility to select if images/labels shall be linked to the target file in the backend. Therefore extended the "Link images" and "Link labels" FlexForm options. - Added the possibility to define the sys\_language\_mode with TypoScript. sys\_language\_mode == 'strict': If a certain language is requested, select only download records from the default language which have a translation. - Added support for AJAX-based category trees in the backend forms (required extension: "xajax"). - Added the "recordMarkerHook" to fillMarkerArray() which allows to use additional markers for each download. - Fixed a bug where downloads from unselected sysfolders were shown in the SEARCH view. - Fixed a bug where the database field was filled even if no image had been submitted in the "Propose a new download" form. - Modified extension constraints to depend on static\_info\_tables. - Transferred fix for bug #0000033 from extension Modern Linklist (ab\_linklist). - Fixed some minor XHTML errors in the templates. - Completed French translation. **Version 1.9.1** (2007-04-27) - Replaced the static form in the SEARCH view with a template-based one. Therefore added the ###FORM### subsubpart to the ###VIEW\_SEARCH### template subpart and extended all provided CSS definitions. **\*\*\* Please update your templates! \*\*\*** - Added the possibility to define an imageLinkWrap with TypoScript applied to images in all views if the "Link images" FlexForm option is not set. Therefore added a default downloadImage.imageLinkWrap in the different TypoScript setups. - Added the possibility to use the download language, the download license and the download homepage in all views. Therefore added the ###DOWNLOAD\_LANGUAGE###, ###DOWNLOAD\_LICENSE### and ###DOWNLOAD\_HOMEPAGE### markers to the ###VIEW\_CATEGORY###, ###VIEW\_TREE###, ###VIEW\_SEARCH###, ###VIEW\_TOP###, ###VIEW\_CATALOG### and ###VIEW\_DETAILS\_FOR\_DOWNLOAD### template subparts. **\*\*\* Please update your templates! \*\*\*** - Removed supernumerous
tags from the description's stdWraps in the static TypoScript setup. - Increased the maximum file size of downloads to 500000 KB. - Increased the maximum input size and removed the range limitation for clicks and votes in the backend's FlexForm. - Added missing target="\_blank" to topView.downloadLabel.ATagParams. - Fixed a bug where the "Sort downloads by", "Sort order (downloads)" and "Maximum number of downloads shown per category" FlexForm options weren't taken into account in the SEARCH view. - Fixed a major bug where downloads weren't displayed in the TOP view. - Fixed a bug where file size, extension and icon of a download weren't shown in the detailed download view (accidentally introduced in 1.9.0). **Version 1.9.0** (2007-04-08) - Extended the UPDATE! function in the sense that both the "tx\_abdownloads\_category\_catuid\_before\_mm" table and the "catuid\_before" field from "tx\_abdownloads\_category" get dropped after a successful update. - Added the possibility to define the default status of proposed downloads in the backend's FlexForm. Therefore added the "Default status of proposed downloads" FlexForm option. - Added the possibility to directly edit download records by clicking on their labels in the backend module. - Added the possibility to use MIME icons for downloads in all views. Therefore added the ###DOWNLOAD\_FILEICON### marker to the ###VIEW\_CATEGORY###, ###VIEW\_TREE###, ###VIEW\_SEARCH###, ###VIEW\_TOP### and ###VIEW\_CATALOG### template subparts. **\*\*\* Please update your templates! \*\*\*** - Improved the "PID of page with LIST/TREE plugin (if different)" FlexForm option. - Improved the "Start category ID" FlexForm option. - Fixed a bug where category icons weren't displayed in the TREE view. - Fixed a bug where links set in the description fields with the RTE weren't displayed in the different views. - Fixed a bug where a single random TOP list wasn't displayed in the frontend. - Fixed a bug where the ###DOWNLOAD\_ICON### marker wasn't substituted correctly in the TREE view. - Fixed bug #0000025. |img-30| EXT: Modern Downloads - 36 .. ######CUTTER_MARK_IMAGES###### .. |img-1| image:: img-1.png .. :align: left .. :border: 0 .. :height: 198 .. :id: graphics17 .. :name: graphics17 .. :width: 669 .. |img-2| image:: img-2.png .. :align: left .. :border: 0 .. :height: 404 .. :id: graphics16 .. :name: graphics16 .. :width: 669 .. |img-3| image:: img-3.png .. :align: left .. :border: 0 .. :height: 373 .. :id: graphics18 .. :name: graphics18 .. :width: 669 .. |img-4| image:: img-4.png .. :align: left .. :border: 0 .. :height: 546 .. :id: graphics19 .. :name: graphics19 .. :width: 669 .. |img-5| image:: img-5.png .. :align: left .. :border: 0 .. :height: 276 .. :id: graphics20 .. :name: graphics20 .. :width: 669 .. |img-6| image:: img-6.png .. :align: left .. :border: 0 .. :height: 158 .. :id: graphics21 .. :name: graphics21 .. :width: 669 .. |img-7| image:: img-7.png .. :align: left .. :border: 0 .. :height: 203 .. :id: graphics22 .. :name: graphics22 .. :width: 669 .. |img-8| image:: img-8.png .. :align: left .. :border: 0 .. :height: 671 .. :id: graphics23 .. :name: graphics23 .. :width: 669 .. |img-9| image:: img-9.png .. :align: left .. :border: 0 .. :height: 711 .. :id: graphics24 .. :name: graphics24 .. :width: 669 .. |img-10| image:: img-10.png .. :align: left .. :border: 0 .. :height: 299 .. :id: graphics25 .. :name: graphics25 .. :width: 669 .. |img-11| image:: img-11.png .. :align: left .. :border: 0 .. :height: 348 .. :id: graphics26 .. :name: graphics26 .. :width: 669 .. |img-12| image:: img-12.png .. :align: left .. :border: 0 .. :height: 397 .. :id: graphics27 .. :name: graphics27 .. :width: 558 .. |img-13| image:: img-13.png .. :align: left .. :border: 0 .. :height: 644 .. :id: graphics28 .. :name: graphics28 .. :width: 558 .. |img-14| image:: img-14.png .. :align: left .. :border: 0 .. :height: 1122 .. :id: graphics29 .. :name: graphics29 .. :width: 451 .. |img-15| image:: img-15.png .. :align: left .. :border: 0 .. :height: 1122 .. :id: graphics1 .. :name: graphics1 .. :width: 631 .. |img-16| image:: img-16.png .. :align: left .. :border: 0 .. :height: 629 .. :id: graphics2 .. :name: graphics2 .. :width: 556 .. |img-17| image:: img-17.png .. :align: left .. :border: 0 .. :height: 879 .. :id: graphics9 .. :name: graphics9 .. :width: 663 .. |img-18| image:: img-18.png .. :align: left .. :border: 0 .. :height: 806 .. :id: graphics12 .. :name: graphics12 .. :width: 661 .. |img-19| image:: img-19.png .. :align: left .. :border: 0 .. :height: 560 .. :id: graphics13 .. :name: graphics13 .. :width: 591 .. |img-20| image:: img-20.png .. :align: left .. :border: 0 .. :height: 410 .. :id: graphics14 .. :name: graphics14 .. :width: 636 .. |img-21| image:: img-21.png .. :align: left .. :border: 0 .. :height: 239 .. :id: graphics11 .. :name: graphics11 .. :width: 669 .. |img-22| image:: img-22.png .. :align: left .. :border: 0 .. :height: 162 .. :id: graphics30 .. :name: graphics30 .. :width: 507 .. |img-23| image:: img-23.png .. :align: left .. :border: 0 .. :height: 730 .. :id: graphics3 .. :name: graphics3 .. :width: 669 .. |img-24| image:: img-24.png .. :align: left .. :border: 0 .. :height: 302 .. :id: graphics4 .. :name: graphics4 .. :width: 669 .. |img-25| image:: img-25.png .. :align: left .. :border: 0 .. :height: 712 .. :id: graphics5 .. :name: graphics5 .. :width: 662 .. |img-26| image:: img-26.png .. :align: left .. :border: 0 .. :height: 495 .. :id: graphics6 .. :name: graphics6 .. :width: 634 .. |img-27| image:: img-27.png .. :align: left .. :border: 0 .. :height: 454 .. :id: graphics7 .. :name: graphics7 .. :width: 636 .. |img-28| image:: img-28.png .. :align: left .. :border: 0 .. :height: 354 .. :id: graphics8 .. :name: graphics8 .. :width: 631 .. |img-29| image:: img-29.png .. :align: left .. :border: 0 .. :height: 161 .. :id: graphics10 .. :name: graphics10 .. :width: 245 .. |img-30| image:: img-30.png .. :align: left .. :border: 0 .. :height: 32 .. :id: Graphic1 .. :name: Graphic1 .. :width: 102