DEPRECATION WARNING

This documentation is not using the current rendering mechanism and is probably outdated. The extension maintainer should switch to the new system. Details on how to use the rendering mechanism can be found here.

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

Extension Key: ab_downloads

Copyright 2005 - 2009, Andreas Bulling, <typo3@andreas-bulling.de>

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

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

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

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

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

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

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

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

  • 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 <div> 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 = <span style="color:#bbb;">|</span>
            inactiveLinkWrap = |
            activeLinkWrap = <b>|</b>
            browseLinksWrap = |
            showResultsWrap = |<br />
            showResultsNumbersWrap = |
            browseBoxWrap = <div class="tx-abdownloads-pi1-browsebox">|</div>
    }
    
  • 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: <b>%s bis %s</b> von <b>%s</b>
      }
    }
    

    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: <b>###FROM### bis ###TO###</b> von <b>###OUT_OF###</b>
        )
      }
    }
    
  • 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 = <b>|</b>
    addLink_stdWrap.wrap = <b>|</b>
    addLinkText_stdWrap.wrap = <b>|</b>
    mandatoryField_stdWrap.wrap = <span style="color:red;">*</span>|
    reportLinkBrokenText_stdWrap.wrap = <b>|</b>
    rateLinkText_stdWrap.wrap = <b>|</b>
    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 = <br/><i>|</i>
                    crop =
            }
    
            links_stdWrap.wrap = <b>|</b>
            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 = <b>|</b>
            categoryDescription_stdWrap {
                    wrap = <br/><i>|</i>
                    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 = <b>|</b>
            categoryDescription_stdWrap {
                    wrap = <br/><i>|</i>
                    crop =
            }
    
            links_stdWrap.wrap = <b>|</b>
            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 = <b>|</b>
    
            categoryPath_stdWrap.wrap = |
            categoryLabel_stdWrap.wrap = <b>|</b>
            categoryDescription_stdWrap {
                    wrap = <br/><i>|</i>
                    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 = <br/><i>|</i>
                    crop =
            }
    
            subcategoryLabel_stdWrap.wrap = |
            subcategoryDescription_stdWrap {
                    wrap = <br/><i>|</i>
                    crop =
            }
    
            links_stdWrap.wrap = <b>|</b>
            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 = ,&nbsp;
            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 = <meta name="description" content=" | " />
    
  • 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

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

Files

The following table shows the files used/available in the extension:

pi1/class.tx_abdownloads_pi1.php

File

pi1/class.tx_abdownloads_pi1.php

Description

Main PHP-class used to display the frontend plugin.

pi1/tx_abdownloads_pi1_css.tmpl

File

pi1/tx_abdownloads_pi1_css.tmpl

Description

The CSS-based ab_downloads HTML template file.

pi1/tx_abdownloads_pi1.tmpl

File

pi1/tx_abdownloads_pi1.tmpl

Description

The table-based ab_downloads HTML template file.

mod1/index.php

File

mod1/index.php

Description

Main PHP-class used to display the backend module.

lib/class.tx_abdownloads_treeview.php

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

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

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

File

res/example_realURL_setup.txt

Description

Example RealURL setup for ab_downloads.

Folders:

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”

Reference

plugin.tx_abdownloads_pi1 properties: TS configuration

sys_language_mode

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

The following table shows the FlexForm “General Settings”:

Which view to display

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

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

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

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)

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)

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)

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

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

Property

Startingpoint

Description

Defines the page(s) where categories and downloads are stored.

Possible values:

- any page(s)

Default

Recursive

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

The following table shows the FlexForm “Template”:

Template file

Property

Template file

Description

Defines the template file to use.

Default

Number of alternating template layouts

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

The following table shows the FlexForm “Notification Settings”:

Admin name

Property

Admin name

Description

The name of the administrator.

Default

Modern Downloads

Admin e-mail address

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

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

Property

Subject for 'broken download' notification e-mails

Description

The subject for 'broken download' notification e-mails.

Default

Modern Downloads – Download reported broken

The following table shows the FlexForm “Display Settings”:

Start category

Property

Start category

Description

Defines the start category.

Default

Sort downloads by

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)

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

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

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)

Property

Sort order (categories)

Description

Defines the sort order of the categories.

Possible values:

- Ascending

- Descending

Default

Ascending

Hide pagebrowser

Property

Hide pagebrowser

Description

Defines if the pagebrowser should be hidden.

Possible values:

- checked (Yes)

- not checked (No)

Default

Not checked

Hide rating stars

Property

Hide rating stars

Description

Defines if the rating stars should be hidden.

Possible values:

- checked (Yes)

- not checked (No)

Default

Not checked

Don't prefer sponsored downloads

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

Max width for images in the category view

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

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

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

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

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

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

The following table shows the FlexForm “TOP Settings”:

Stick to start category ID in TOP view

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

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

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

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

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

The following table shows the FlexForm “CATALOG Settings”:

Number of columns

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

Property

Max number of subcategories

Description

Defines how many subcategories are shown in the frontend.

Possible values:

- any Integer. e.g. 5

Default

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

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

none

To-Do list

  • Switch from eregi to other method for searching.
  • Sorting of links dependent on category (?)

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 <br/> 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