.. ================================================== .. FOR YOUR INFORMATION .. -------------------------------------------------- .. -*- coding: utf-8 -*- with BOM. .. include:: ../../../Includes.txt RewriteEditLinkBasedOnRowData ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Sometimes it's useful to 'abuse' the edit link as it is a nice usability feature to just click onto a row. Thus you might want to link to a certain page/file/url depending on the current row when the user clicks onto it. To achieve that you have to - enable editing (data/bEdit) - set a manual edit link (data/sEditLink) - tell the SQL Frontend to use that edit link (data/bOnEditLinkToPage) Now, if you want to have different links depending the row, this is the right interceptor for you. Why would you want that? Well, let's imagine a FileDirectory data handler where directories should link to the same page in order to display this folder's contents whereas files shall link to themselves so that they open directly. aIf --- Array of conditions that are checked against each row. If a row meets these conditions the edit link is rewritten according to sEditLinkNew. This is an array consisting of single conditions where each condition has to take one of the following formats: - variable name only (example: *uid*) ckecks if this variable is set within sIfSource - variable==value (example: *username==mario*) checks if variable equals the value - variable!=value (example: *username!=mario*, also *username!=*) checks if variable does not equal value (you may also use empty as value) - variablevalue - variable<=value - variable>=value Both variable and value may consist of markers just like in dbal/sWhereGet. Furthermore you may use markers in the format ###substring/3/2:my\_column### where *my_column* is a column name from that row and the numbers behind substring are the numbers applies to PHP's substr function (just like in interception/CreateId). Here's a full example in TS format checking the entries from a FileDirectory dbal handler for files and directories: :: plugin.tx_mhomsqlio { dbal { bGetSubDirectoryViaParam = 1 eType = FileDirectory sDatabase = fileadmin sTable = aSubDirectoryParam { sSource = GP sField = dir } } data { bEdit = 1 eDisplay = Table bMultiple = bOnEditLinkToPage = 1 sEditLink = ?id=123&dir=###parent######directory### aField { 1 { sColumn = parent bHidden = 1 } 2 { sColumn = directory bHidden = 1 } 10 { sColumn = name eClass = TextShort sHeadline = Name } 20 { sColumn = type eClass = TextShort sHeadline = Type bAutofilter = 1 } 30 { sColumn = tstamp_creation eClass = Timestamp sHeadline = Creation sFormat = Y-m-d H:i } } } interception { Action { 10 { sAction = getRows eClass = RewriteEditLinkBasedOnRowData aIf { 0 = ###type###==file } sEditLinkNew = fileadmin/###substring/13:_sEditLink######name### } } } } sIfConnect ---------- String (either *and* or *or*). Specifies if just one or all conditions in aIf have to apply in order to rewrite the link. Default is *and*. sEditLinkNew ------------ String. The newly created link for rows where the if checks apply. Use well-known markers here as well. Links for rows where the checks don't apply stay as they are.