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 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¶
Extension Key: ab_linklist
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 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¶
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¶
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¶
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.
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.
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:
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.
Illustration 5 - Report link as broken
Frontend user also have the possibility to rate links which you can see in the following illustration:
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.
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).
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.
Illustration 9 - The catalog view
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.
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.
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.
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.
Illustration 10 - Import categories/links
Here you can export categories/links to different output formats. Just follow the instructions step by step.
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:
And this is how the “Edit record” backend form for links looks like:
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/
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:
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):
Illustration 13 - The “General Settings” FlexForm
Illustration 14 - The “Template” FlexForm
Illustration 15 - The “Promotion Settings” FlexForm
Illustration 16 - The “Display Settings” FlexForm
Illustration 17 - The “Image Settings” FlexForm
Illustration 18 - The “TOP Settings” FlexForm
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.
Illustration 20 - Adding category and link records
Have fun! ;)
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)¶
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¶
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.
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 = <span style="color:#bbb;">|</span> inactiveLinkWrap = | activeLinkWrap = <b>|</b> browseLinksWrap = | showResultsWrap = |<br /> showResultsNumbersWrap = | browseBoxWrap = <div class="tx-ablinklist-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_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: <b>%s bis %s</b> von <b>%s</b> } } 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: <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 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 = <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 = , 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 = <meta name="description" content=" | " />
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¶
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_ablinklist_pi1.php¶
File
pi1/class.tx_ablinklist_pi1.php
Description
Main PHP-class used to display the frontend plugin.
pi1/tx_ablinklist_pi1_css.tmpl¶
File
pi1/tx_ablinklist_pi1_css.tmpl
Description
The CSS-based ab_linklist HTML template file.
pi1/tx_ablinklist_pi1.tmpl¶
File
pi1/tx_ablinklist_pi1.tmpl
Description
The table-based ab_linklist HTML template file.
mod1/index.php¶
File
mod1/index.php
Description
Main PHP-class used to display the backend module.
lib/class.tx_ablinklist_treeview.php¶
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¶
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¶
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¶
File
res/example_realURL_setup.txt
Description
Example RealURL setup for ab_linklist.
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_ablinklist_pi1 properties: TS configuration
sys_language_mode¶
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
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 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¶
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¶
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)¶
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)¶
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)¶
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 links 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 ###LINK_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 Linklist
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 link' notification e-mails¶
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¶
Property
Subject for 'broken link' notification e-mails
Description
The subject for 'broken link' notification e-mails.
Default
Modern Linklist - Link reported broken
The following table shows the FlexForm “Promotion Settings”:
E-mail subject¶
Property
E-mail subject
Description
The subject for promotion e-mails.
Default
E-mail message¶
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:¶
Property
Image file:
Description
Defines the image file to use as an e-mail attachment.
Default
Send bcc to admin e-mail address¶
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
The following table shows the FlexForm “Display Settings”:
Start category¶
Property
Start category
Description
Defines the start category.
Default
Sort links by¶
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)¶
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¶
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¶
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
Hide details link¶
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¶
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¶
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¶
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¶
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¶
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¶
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
The following table shows the FlexForm “Image Settings”:
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 link view¶
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¶
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¶
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 links¶
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¶
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¶
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¶
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
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_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¶
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
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¶
- 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_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 <br/> 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).
EXT: Modern Linklist - 37