.. You may want to use the usual include line. Uncomment and adjust the path. .. include:: ../Includes.txt ==================== EXT: Modern Linklist ==================== :Author: Kasper Skårhøj :Created: 2002-11-01T00:32:00 :Changed: 2008-04-26T18:16:44 :Classification: ab_linklist :Email: typo3@andreas-bulling.de :Info 2: :Info 3: :Info 4: .. _EXT-Modern-Linklist: EXT: Modern Linklist ==================== Extension Key: **ab\_linklist** 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 Linklist 1** **Introduction 1** What does it do? 1 Online Resources 2 Screenshots 3 **Users manual 15** Changing from cmw\_linklist 24 Changing from other linklists (since version 1.6.4) 24 FAQ 24 **Adminstration 29** **Configuration 29** Files 29 Reference 29 **Extending ab\_linklist 34** **Sponsoring ab\_linklist development 34** **Known problems 34** **To-Do list 34** **Changelog 34** .. _Introduction: Introduction ------------ .. _What-does-it-do: What does it do? ^^^^^^^^^^^^^^^^ This is a modern and extended linklist plugin compatible to the "cmw\_linklist" extension. It has the following features: - Backend users can create categories and links, they can accept or delete new links proposed by frontend users, accept or disable links reported broken by frontend users and can check for non-working links (the latter also from behind a proxy server as curl support is available). - Backend users can promote their own site by sending “1-click” promotion e-mails (with an image attachment if defined in the FlexForm) to the contact addresses provided with link records and manage the promotions within the (therefore extended) backend module. - Frontend users can rate links, the current rating/number of votes is shown in the detailed link 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 banner image when proposing a new link. The maximum sizes for images in the category and detailed link view can be defined in the backend. - All link and category values (label, description, href, rating, banner 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 links (plus links 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 links 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 links concerning rating, clicks and creation time per category (and below). - A “TREE” view shows a tree of all categories and links on one page similar to other linklists around. - A “CATALOG” view shows a catalog of the categories and links 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 link 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 link is provided. If the user-submitted label and/or description contains one of these words, the link proposal is refused with an error message. - A (simple and slow) search function has been added which provides searching on label and description of links. - 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 links can be translated using the standard TYPO3 facilities. - The extension supports the versioning of links 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/links from other link lists/database tables and 2) to import categories/links from a CSV file. - The extension also features an export wizard which allows to export categories/links 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/links contained in the database. - FreeCap and Captcha Library support (extensions: "sr\_freecap" and “captcha”) is integrated for the “Propose a new link” frontend form. - The extension supports frontend editing of link records. The extension features sponsored links which are always shown first in the different views and can have assigned an additional description. **According to my investigations older versions of cmw\_linklist are still widely used but contain serious bugs which allow SQL injections (see bugtraq or Security Bulletin TYPO3-20050304-1 for further information about this issue). So you're highly encouraged to migrate to this extension (perhaps even if you don't need the new features) which doesn't have any known security issues so far.** .. _Online-Resources: Online Resources ^^^^^^^^^^^^^^^^ If you like this extension please consider to rate it at: `http://typo3.org/extensions/repository/view/ab\_linklist/$CURRENT\_VE RSION$/rating/ `_ Project homepage: `http://typo3.andreas-bulling.de/en/extensions/modern-linklist/ `_ Subversion repository: `http://repos.andreas-bulling.de/ab\_linklist/ `_ 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-linklist/ `_ 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” link 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 link” (display for anonymous users can be suppressed with a backend option) [1] and also three of the possible “TOP” lists available with 5 links each (can be changed in the backend): Rating, Clicks and Date of adding [2]. *Illustration 1 - The frontend view* Following “Propose a new link” frontend users can propose new links with a form you can see in the following illustration. New links have to be approved in the backend before they become visible in the frontend. |img-1| *Illustration 2 - Propose a new link* 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 link: To view the details, to report a link as broken and to rate a link [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 link has been reported as broken before. |img-2| *Illustration 3 - Frontend view with link path and stars representation* From the category view the user is able to view a page giving detailed information about a link: |img-3| *Illustration 4 - Link details* Another feature is the handling of broken links. Frontend users can report links as broken from the category view. After that a backend notification record is created for further handling by BE users. |img-4| *Illustration 5 - Report link as broken* Frontend user also have the possibility to rate links which you can see in the following illustration: |img-5| *Illustration 6 - Rate a link* 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 links available in the frontend. |img-6| *Illustration 7 - Search for links* The second main view meant as an alternative to the “CATEGORY” view is the “TREE” view which displays a tree of all categories and links on one page similar to other linklists around (for example sk\_linklist). |img-7| *Illustration 8 - The tree view* The last main view is the “CATALOG” view which displays a catalog of the categories and links similar to the google catalog. |img-8| *Illustration 9 - The catalog view* .. _Backend: Backend """"""" The extension's backend functionality can be divided into two main parts: The “Modern Linklist” backend module The functionality provided within the “Edit record” backend forms for categories and links. **The “Modern Linklist” backend module** Here you can see an overview of links submitted by frontend users. By clicking on the two icons besides each link you can accept or delete them. You can also select a different category for the link. |img-9| In this view you can see all the links that were reported as broken by frontend users. By clicking on the two icons besides each link you can accept or disable them. |img-10| Here you can see an overview of all links including their availability (online/offline). You have the possibility to enable/disable certain links by clicking on the two icons besides each link. |img-11| Here you can see an overview of all links and their promotion status. Furthermore you have the possibility to promote links by clicking on the icon besides a link. Here you can generate a SQL query to import categories/links from other linklists/database tables. Just follow the instructions step by step. |img-12| *Illustration 10 - Import categories/links* Here you can export categories/links to different output formats. Just follow the instructions step by step. |img-13| |img-14| Here you can view statistics on the categories/links in the database. **The functionality provided within the “Edit record” backend forms** This is how the “Edit record” backend form for categories looks like: |img-15| And this is how the “Edit record” backend form for links looks like: |img-16| |img-17| |img-18| .. _Users-manual: Users manual ------------ Install the extension via the Extension Manager (EM). Select either the “CSS-based template (ab\_linklist)” or the “Table- based template (ab\_linklist)" in the "Include static (from extensions)"-section of your main/extension TypoScript template. You can also select “Default CSS-styles (ab\_linklist)” 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-19| *Illustration 11 - Include the default TypoScript template in your main template* Insert a new Content element “Plugin” on the page where the linklist shall be displayed. Therefore choose “Modern Linklist” according to the following Illustration: |img-20| *Illustration 12 - Insert plugin “Modern Linklist” on the page* 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-21| *Illustration 13 - The “General Settings” FlexForm* |img-22| *Illustration 14 - The “Template” FlexForm* |img-23| *Illustration 15 - The “Promotion Settings” FlexForm* |img-24| *Illustration 16 - The “Display Settings” FlexForm* |img-25| *Illustration 17 - The “Image Settings” FlexForm* |img-26| *Illustration 18 - The “TOP Settings” FlexForm* |img-27| *Illustration 19 - The “CATALOG Settings” FlexForm* Now you can start adding (sub)category and link records to the page where you just inserted the plugin or to any other page/sysfolder **if you set the “Startingpoint” appropriately.** |img-28| *Illustration 20 - Adding category and link records* Have fun! ;) .. _Changing-from-cmw-linklist: Changing from cmw\_linklist ^^^^^^^^^^^^^^^^^^^^^^^^^^^ If you want to import your categories and links from cmw\_linklist you can also use the import functionality described below but the recommended way is to follow these instructions which also do the trick. Create a backup of your cmw\_linklist database tables (tx\_cmwlinklist\_{link\|category\|category\_catuid\_before\_mm}). Deinstall cmw\_linklist with the Extension Manager (EM) and also make sure to delete **all** cmw\_linklist plugins you added to your site. Rename the database tables tx\_cmwlinklist\_{link\|category\|category\_catuid\_before\_mm} to tx\_ablinklist\_{link\|category\|category\_catuid\_before\_mm}. You can use for example phpMyAdmin to do this. **After that** install the “Modern Linklist” extension, the EM should update/change the database tables automatically. Add your plugins to your pages again and configure the extension according to the “Configuration” section. Enjoy “Modern Linklist” and perhaps delete your backup created in step 1 ;) .. _Changing-from-other-linklists-since-version-1-6-4: Changing from other linklists (since version 1.6.4) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ If you want to import your categories and links from other (TYPO3) linklists or database tables an appropriate SQL query can be generated automatically in the “Import categories/links” 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. Since version 1.6.6 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_ablinklist_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 Linklist” 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_ablinklist_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_ablinklist_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 Linklist” to and add the following TypoScript code in the “Setup” field of the template. For example a possible German format: :: plugin.tx_ablinklist_pi1 { _LOCAL_LANG.de { pi_list_searchBox_search = Suchen } } - **How can I change the appearance and layout of the linklist?** In subfolder “pi1” of the extension you will find an example template file called “tx\_ablinklist\_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 (since version 1.6.0) 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_ablinklist_listView_categoryLabel" linkAddNew.ATagParams = class="tx_ablinklist_listView_linkAddNew" linkLabel.ATagParams = class="tx_ablinklist_listView_linkLabel" linkDetails.ATagParams = class="tx_ablinklist_listView_linkDetails" linkReportBroken.ATagParams = class="tx_ablinklist_listView_linkReportBroken" linkRate.ATagParams = class="tx_ablinklist_listView_linkRate" linkImage.ATagParams = class="tx_ablinklist_listView_linkImage" } # treeView link parameter settings treeView { # ATagParams linkAddNew.ATagParams = class="tx_ablinklist_treeView_linkAddNew" linkLabel.ATagParams = class="tx_ablinklist_treeView_linkLabel" linkDetails.ATagParams = class="tx_ablinklist_treeView_linkDetails" linkReportBroken.ATagParams = class="tx_ablinklist_treeView_linkReportBroken" linkRate.ATagParams = class="tx_ablinklist_treeView_linkRate" linkImage.ATagParams = class="tx_ablinklist_treeView_linkImage" } # searchView link parameter settings searchView { # AtagParams categoryLabel.ATagParams = class="tx_ablinklist_searchView_categoryLabel" linkLabel.ATagParams = class="tx_ablinklist_searchView_linkLabel" linkDetails.ATagParams = class="tx_ablinklist_searchView_linkDetails" linkReportBroken.ATagParams = class="tx_ablinklist_searchView_linkReportBroken" linkRate.ATagParams = class="tx_ablinklist_searchView_linkRate" linkImage.ATagParams = class="tx_ablinklist_searchView_linkImage" } # topView link parameter settings topView { # ATagParams linkLabel.ATagParams = class="tx_ablinklist_topView_linkLabel" linkDetails.ATagParams = class="tx_ablinklist_topView_linkDetails" linkImage.ATagParams = class="tx_ablinklist_topView_linkImage" } # catalogView link parameter settings catalogView { # AtagParams categoryLabel.ATagParams = class="tx_ablinklist_catalogView_categoryLabel" subcategoryLabel.ATagParams = class="tx_ablinklist_catalogView_subcategoryLabel" linkAddNew.ATagParams = class="tx_ablinklist_catalogView_linkAddNew" linkLabel.ATagParams = class="tx_ablinklist_catalogView_linkLabel" linkDetails.ATagParams = class="tx_ablinklist_catalogView_linkDetails" linkReportBroken.ATagParams = class="tx_ablinklist_catalogView_linkReportBroken" linkRate.ATagParams = class="tx_ablinklist_catalogView_linkRate" linkImage.ATagParams = class="tx_ablinklist_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 links with TypoScript?** For example, to access/use the “label” database field, create an extension template for the page you added the “Modern Linklist” 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_ablinklist_pi1|category_uid > 0] lib.linkTitle = COA lib.linkTitle { 10 = RECORDS 10 { source = {GPvar:tx_ablinklist_pi1|category_uid} source.insertData = 1 tables = tx_ablinklist_category conf.tx_ablinklist_category > conf.tx_ablinklist_category = TEXT conf.tx_ablinklist_category.field = label } } # Condition is true if a link is shown [globalVar = GP:tx_ablinklist_pi1|uid > 0] lib.linkTitle = COA lib.linkTitle { 10 = RECORDS 10 { source = {GPvar:tx_ablinklist_pi1|uid} source.insertData = 1 tables = tx_ablinklist_link conf.tx_ablinklist_link > conf.tx_ablinklist_link = TEXT conf.tx_ablinklist_link.field = label } } [GLOBAL] This creates a TypoScript object called "lib.linkTitle" 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.linkTitel page.headerData.20.wrap = - **How can I enable the frontend edit panels for link 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. .. _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-ablinklist-pi1-php: pi1/class.tx\_ablinklist\_pi1.php """"""""""""""""""""""""""""""""" .. container:: table-row File pi1/class.tx\_ablinklist\_pi1.php Description Main PHP-class used to display the frontend plugin. .. _pi1-tx-ablinklist-pi1-css-tmpl: pi1/tx\_ablinklist\_pi1\_css.tmpl """"""""""""""""""""""""""""""""" .. container:: table-row File pi1/tx\_ablinklist\_pi1\_css.tmpl Description The CSS-based ab\_linklist HTML template file. .. _pi1-tx-ablinklist-pi1-tmpl: pi1/tx\_ablinklist\_pi1.tmpl """""""""""""""""""""""""""" .. container:: table-row File pi1/tx\_ablinklist\_pi1.tmpl Description The table-based ab\_linklist 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-ablinklist-treeview-php: lib/class.tx\_ablinklist\_treeview.php """""""""""""""""""""""""""""""""""""" .. container:: table-row File lib/class.tx\_ablinklist\_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-linklist-styles-css: res/ab\_linklist\_styles.css """""""""""""""""""""""""""" .. container:: table-row File res/ab\_linklist\_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\_linklist. .. _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\_ablinklist\_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 link records are handled. Possible values: \- strict Default is to display link 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\_ablinklist\_pi1.sys\_language\_mode” is empty but a value for “page.config.sys\_language\_mode” has been defined ab\_linklist will use this value instead. **Example:** :: plugin.tx_ablinklist_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 links on several pages \- TREE => Tree of all categories and links on one page \- CATALOG => Catalog of the categories and links 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-links: Allow not logged-in users to propose new links """""""""""""""""""""""""""""""""""""""""""""" .. container:: table-row Property Allow not logged-in users to propose new links Description With this parameter you can allow anonymous users (users that are not logged in) to propose new links. Possible values: \- checked (Yes) \- not checked (No) Default Not checked .. _Default-status-of-proposed-links: Default status of proposed links """""""""""""""""""""""""""""""" .. container:: table-row Property Default status of proposed links Description Defines the default status of proposed links. Possible values: \- Pending \- Approved \- Reported Broken \- Disabled Default Pending .. _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 link. 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 link. 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 links 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 ###LINK\_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 Linklist .. _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-link-notification-e-mails: Subject for 'added link' notification e-mails """"""""""""""""""""""""""""""""""""""""""""" .. container:: table-row Property Subject for 'added link' notification e-mails Description The subject for 'added link' notification e-mails. Default Modern Linklist - New link added .. _Subject-for-broken-link-notification-e-mails: Subject for 'broken link' notification e-mails """""""""""""""""""""""""""""""""""""""""""""" .. container:: table-row Property Subject for 'broken link' notification e-mails Description The subject for 'broken link' notification e-mails. Default Modern Linklist - Link reported broken .. ###### END~OF~TABLE ###### **The following table shows the FlexForm “Promotion Settings”:** .. ### BEGIN~OF~TABLE ### .. _E-mail-subject: E-mail subject """""""""""""" .. container:: table-row Property E-mail subject Description The subject for promotion e-mails. Default .. _E-mail-message: E-mail message """""""""""""" .. container:: table-row Property E-mail message Description The subject for promotion e-mails. Possible markers: \- ###label### (label of the foreign link) \- ###href### (href of the foreign link) \- ###date### (date of the foreign link) Default .. _Image-file: Image file: """"""""""" .. container:: table-row Property Image file: Description Defines the image file to use as an e-mail attachment. Default .. _Send-bcc-to-admin-e-mail-address: Send bcc to admin e-mail address """""""""""""""""""""""""""""""" .. container:: table-row Property Send bcc to admin e-mail address Description If set the promotion e-mail is also sent to the admin e-mail address. Possible values: \- checked (Yes) \- not checked (No) Default Not checked .. ###### 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-links-by: Sort links by """"""""""""" .. container:: table-row Property Sort links by Description Defines by which attribute the links are sorted. Possible values: \- Label \- Date of creation \- Clicks \- Rating \- Votes \- Manual \- Random Default Label .. _Sort-order-links: Sort order (links) """""""""""""""""" .. container:: table-row Property Sort order (links) Description Defines the sort order of the links. Possible values: \- Ascending \- Descending Default Ascending .. _Maximum-number-of-links-shown-per-category: Maximum number of links shown per category """""""""""""""""""""""""""""""""""""""""" .. container:: table-row Property Maximum number of links shown per category Description Defines how many links 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-links: Don't prefer sponsored links """""""""""""""""""""""""""" .. container:: table-row Property Don't prefer sponsored links Description Defines if sponsored links 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 link 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 link 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-link-view: Max width for images in the detailed link view """""""""""""""""""""""""""""""""""""""""""""" .. container:: table-row Property Max width for images in the detailed link view Description Defines the maximum width for images displayed in the detailed link view. Bigger images get resized automatically. Possible values: \- any Integer. e.g. 5 Default 600 .. _Max-height-for-images-in-the-detailed-link-view: Max height for images in the detailed link view """"""""""""""""""""""""""""""""""""""""""""""" .. container:: table-row Property Max height for images in the detailed link view Description Defines the maximum height for images displayed in the detailed link 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-links: Number of top rated links """"""""""""""""""""""""" .. container:: table-row Property Number of top rated links Description Defines if and how many top rated links are shown in the frontend. Possible values: \- any Integer. e.g. 5 Default .. _Number-of-top-accessed-links: Number of top accessed links """""""""""""""""""""""""""" .. container:: table-row Property Number of top accessed links Description Defines if and how many top accessed links are shown in the frontend. Possible values: \- any Integer. e.g. 5 Default .. _Number-of-most-recent-links: Number of most recent links """"""""""""""""""""""""""" .. container:: table-row Property Number of most recent links Description Defines if and how many most recent links are shown in the frontend. Possible values: \- any Integer. e.g. 5 Default .. _Number-of-random-links: Number of random links """""""""""""""""""""" .. container:: table-row Property Number of random links Description Defines if and how many random links 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-linklist: Extending ab\_linklist ---------------------- The following hooks exist in ab\_linklist: Hook for processing extra markers for each link 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-linklist-development: Sponsoring ab\_linklist 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\_linklist 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 -------------- Sometimes problems can occur when using for example German "Umlaute" in the promotion e-mail subject/message. As a quick fix please replace any problematic characters because the reason for these problems is not clear so far (seems to have to do with the PHP version used and the FlexForm XML parser). .. _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\_LINK### 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: Moved check if the page with the plugin was selected to "Send promotions". - Fixed a bug where the dropdowns in the "Import categories/links from DB" backend form weren't shown properly. - Fixed a bug where linkLabel\_stdWrap wasn't applied to images/labels linked to the target URL. **Version 1.9.5** (2008-04-27) - Added the possibility to define sponsored links which are always shown first in the different views. Therefore added the "Don't prefer sponsored links" FlexForm option. - Added the possibility to provide an additional description for sponsored links in the backend's FlexForm. Therefore added the ###LINK\_SPONSORED\_DESCRIPTION### marker to the ###VIEW\_CATEGORY###, ###VIEW\_TREE###, ###VIEW\_SEARCH###, ###VIEW\_TOP###, ###VIEW\_CATALOG### and ###VIEW\_DETAILS\_FOR\_LINK### template subparts and the "Sponsored Description" FlexForm option. **\*\*\* Please update your templates! \*\*\*** - Added the possibility to define the sort order of the categories and links as "random" in the backend. Therefore extended the "Sort links by" and "Sort categories by" FlexForm options. - Added the possibility to tag links 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 ###LINK\_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. **\*\*\* Please update your templates! \*\*\*** - Fixed a bug where the mandatory category field was not marked in the "Propose a new link" 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 link/category. - Fixed bug #0000059. - Fixed bug #0000061. - Completed Polish translation. **Version 1.9.3** (2007-10-20) - Added support for frontend editing of link records. Therefore added the ###EDIT\_PANEL### marker to the ###VIEW\_CATEGORY###, ###VIEW\_TREE###, ###VIEW\_SEARCH###, ###VIEW\_TOP###, ###VIEW\_CATALOG### and ###VIEW\_DETAILS\_FOR\_LINK### 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 link ratings. In any case, five stars are shown while each star represents a rating value of 2. - Fixed a bug in getViewReportBrokenLinkResult() which allowed malicious users to change the status of a link by modifying the tx\_ablinklist\_pi1[uid] GET parameter. - Fixed bug #0000042. - Fixed bug #0000051. **Version 1.9.2** (2007-09-01) - Added the possibility to select if images/labels shall be linked to the target URL 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 link records from the default language which have a translation. - Added the possibility to define the name of the sender used in promotion emails and notifications with TypoScript. - 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 link. - Fixed a bug where links 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 link" form. - Fixed bug #0000033. - Fixed bug #0000038. - Fixed bug #0000039. - Incorporated patch #0000045. - Fixed some minor XHTML errors in the templates. - Completed French translation. - Updated the documentation. **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 linkImage.imageLinkWrap in the different TypoScript setups. - Removed supernumerous
tags from the description's stdWraps in the static TypoScript setup. - 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.linkLabel.ATagParams - Explicitly set the HTTP redirect for clicks on links to be of type 301. - Fixed a bug where the "Sort links by", "Sort order (links)" and "Maximum number of links shown per category" FlexForm options weren't taken into account in the SEARCH view. - Fixed a major bug where links weren't displayed in the TOP view. - Updated the documentation. **Version 1.9.0** (2007-04-08) - Extended the UPDATE! function in the sense that both the "tx\_ablinklist\_category\_catuid\_before\_mm" table and the "catuid\_before" field from "tx\_ablinklist\_category" get dropped after a successful update. - Added the possibility to define the default status of proposed links in the backend's FlexForm. Therefore added the "Default status of proposed links" FlexForm option. - Added a check for duplicate links in the "Check for non-working links" backend view. - Added the possibility to directly edit link records by clicking on their labels in the backend module. - The "Send promotions" backend view doesn't display pending links anymore. - Improved the "PID of page with LIST/TREE plugin (if different)" FlexForm option. **\*\*\* Please make sure that all previously defined settings are still correct after the update. \*\*\*** - Improved the "Start category ID" FlexForm option. **\*\*\* Please make sure that all previously defined settings are still correct after the update. \*\*\*** - 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. - Transferred fix for bug #0000025 from extension Modern Downloads (ab\_downloads). - Set version to 1.9.0 for the sake of consistency with extension Modern Downloads (ab\_downloads). |img-29| EXT: Modern Linklist - 37 .. ######CUTTER_MARK_IMAGES###### .. |img-1| image:: img-1.jpeg .. :align: left .. :border: 0 .. :height: 590 .. :id: Grafik2 .. :name: Grafik2 .. :width: 644 .. |img-2| image:: img-2.jpeg .. :align: left .. :border: 0 .. :height: 424 .. :id: Grafik3 .. :name: Grafik3 .. :width: 672 .. |img-3| image:: img-3.jpeg .. :align: left .. :border: 0 .. :height: 231 .. :id: Grafik4 .. :name: Grafik4 .. :width: 635 .. |img-4| image:: img-4.jpeg .. :align: left .. :border: 0 .. :height: 132 .. :id: Grafik5 .. :name: Grafik5 .. :width: 566 .. |img-5| image:: img-5.jpeg .. :align: left .. :border: 0 .. :height: 257 .. :id: Grafik6 .. :name: Grafik6 .. :width: 644 .. |img-6| image:: img-6.jpeg .. :align: left .. :border: 0 .. :height: 256 .. :id: Grafik7 .. :name: Grafik7 .. :width: 670 .. |img-7| image:: img-7.jpeg .. :align: left .. :border: 0 .. :height: 518 .. :id: Grafik17 .. :name: Grafik17 .. :width: 327 .. |img-8| image:: img-8.png .. :align: left .. :border: 0 .. :height: 281 .. :id: Grafik22 .. :name: Grafik22 .. :width: 668 .. |img-9| image:: img-9.jpeg .. :align: left .. :border: 0 .. :height: 279 .. :id: Grafik8 .. :name: Grafik8 .. :width: 669 .. |img-10| image:: img-10.jpeg .. :align: left .. :border: 0 .. :height: 310 .. :id: Grafik9 .. :name: Grafik9 .. :width: 546 .. |img-11| image:: img-11.jpeg .. :align: left .. :border: 0 .. :height: 370 .. :id: Grafik10 .. :name: Grafik10 .. :width: 549 .. |img-12| image:: img-12.jpeg .. :align: left .. :border: 0 .. :height: 1087 .. :id: Grafik21 .. :name: Grafik21 .. :width: 545 .. |img-13| image:: img-13.jpeg .. :align: left .. :border: 0 .. :height: 815 .. :id: graphics1 .. :name: graphics1 .. :width: 557 .. |img-14| image:: img-14.png .. :align: left .. :border: 0 .. :height: 719 .. :id: graphics2 .. :name: graphics2 .. :width: 556 .. |img-15| image:: img-15.png .. :align: left .. :border: 0 .. :height: 682 .. :id: graphics12 .. :name: graphics12 .. :width: 669 .. |img-16| image:: img-16.png .. :align: left .. :border: 0 .. :height: 386 .. :id: graphics15 .. :name: graphics15 .. :width: 669 .. |img-17| image:: img-17.png .. :align: left .. :border: 0 .. :height: 430 .. :id: graphics13 .. :name: graphics13 .. :width: 643 .. |img-18| image:: img-18.png .. :align: left .. :border: 0 .. :height: 496 .. :id: graphics14 .. :name: graphics14 .. :width: 669 .. |img-19| image:: img-19.jpeg .. :align: left .. :border: 0 .. :height: 232 .. :id: Grafik15 .. :name: Grafik15 .. :width: 559 .. |img-20| image:: img-20.png .. :align: left .. :border: 0 .. :height: 163 .. :id: graphics11 .. :name: graphics11 .. :width: 368 .. |img-21| image:: img-21.png .. :align: left .. :border: 0 .. :height: 893 .. :id: graphics3 .. :name: graphics3 .. :width: 668 .. |img-22| image:: img-22.png .. :align: left .. :border: 0 .. :height: 559 .. :id: graphics4 .. :name: graphics4 .. :width: 668 .. |img-23| image:: img-23.png .. :align: left .. :border: 0 .. :height: 536 .. :id: graphics5 .. :name: graphics5 .. :width: 668 .. |img-24| image:: img-24.png .. :align: left .. :border: 0 .. :height: 729 .. :id: graphics6 .. :name: graphics6 .. :width: 668 .. |img-25| image:: img-25.png .. :align: left .. :border: 0 .. :height: 840 .. :id: graphics7 .. :name: graphics7 .. :width: 638 .. |img-26| image:: img-26.png .. :align: left .. :border: 0 .. :height: 763 .. :id: graphics8 .. :name: graphics8 .. :width: 644 .. |img-27| image:: img-27.png .. :align: left .. :border: 0 .. :height: 694 .. :id: graphics9 .. :name: graphics9 .. :width: 637 .. |img-28| image:: img-28.png .. :align: left .. :border: 0 .. :height: 220 .. :id: graphics10 .. :name: graphics10 .. :width: 260 .. |img-29| image:: img-29.png .. :align: left .. :border: 0 .. :height: 32 .. :id: Graphic1 .. :name: Graphic1 .. :width: 102