[TYPO3-dam] Sorting of items in list view (and frontend)
Frank Henne
thai2000 at gmx.net
Sun Jun 11 18:17:45 CEST 2006
Great! Will try this asap ...
Thanks
Frank
axel at zwo-null.de schrieb:
> Hi Frank,
>
> i didn't connect to the author, since i already made some updates
> and contacted
> the author concerning the problems with field length in the DAM and
> got no response
>
> The changes are the following:
>
> Place the following source line in class.tx_dam_actionsRecord.php
> after the class: tx_dam_action_lockWarningRec
>
> /***************************************************************************
> ***/
> /**
> * MoveUp record action
> *
> * @author Axel Klarmann
> * @package DAM-Component
> * @subpackage Action
> * @see tx_dam_actionbase
> */
> class tx_dam_action_moveUpRec extends tx_dam_action_recordBase {
>
> /**
> * Returns true if the action is of the wanted type
> *
> * @param string $type Action type
> * @param array $itemInfo Item info array. Eg
> pathInfo, meta data array
> * @param array $env Environment array. Can be set
> with setEnv() too.
> * @return boolean
> */
> function isValid ($type, $itemInfo=NULL, $env=NULL) {
> global $TCA;
>
> $valid = parent::isValid ($type, $itemInfo, $env);
> if ($valid) {
> $valid = ($this->env['permsEdit']);
> }
> if($valid)
> {
> $valid = isset($itemInfo['prevSorting']);
> };
> return $valid;
> }
>
> /**
> * Returns the icon image tag.
> * Additional attributes to the image tagcan be added.
> *
> * @param string $addAttribute Additional attributes
> * @return string
> */
> function getIcon ($addAttribute='') {
> global $TCA;
>
> if ($this->disabled) {
> $icon = '<img src="clear.gif"
> '.t3lib_iconWorks::skinImg($this->backPath,'gfx/button_up.gif','width="11"
> height="10"',2).' alt="" />';
> } else {
> $iconFile = 'gfx/button_up.gif';
> $icon =
> '<img'.t3lib_iconWorks::skinImg($GLOBALS['BACK_PATH'], $iconFile,
> 'width="12" height="12"').$this->_cleanAttribute($addAttribute).' alt=""
> />';
> }
> return $icon;
> }
>
>
> /**
> * Returns a short description for tooltips for example like: Delete
> folder recursivley
> *
> * @return string
> */
> function getDescription () {
> return
> $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:cm.moveup');
> }
>
>
> /**
> * Returns a command array for the current type
> *
> * @return array Command array
> * @access private
> */
> function _getCommand() {
> $params =
> '&cmd['.$this->itemInfo['__table'].']['.$this->itemInfo['uid'].'][move]='.$t
> his->itemInfo["prev"];
> $title = $this->itemInfo['title'].'
> ('.$this->itemInfo['file_name'].')';
> $onClick =
> 'jumpToUrl(\''.$GLOBALS['SOBE']->doc->issueCommand($params, -1).'\'); return
> false;';
>
> $commands['href'] = '#';
> $commands['onclick'] = $onClick;
>
> return $commands;
> }
> }
>
> /**
> * MoveDown record action
> *
> * @author Axel Klarmann
> * @package DAM-Component
> * @subpackage Action
> * @see tx_dam_actionbase
> */
> class tx_dam_action_moveDownRec extends tx_dam_action_recordBase {
>
> /**
> * Returns true if the action is of the wanted type
> *
> * @param string $type Action type
> * @param array $itemInfo Item info array. Eg
> pathInfo, meta data array
> * @param array $env Environment array. Can be set
> with setEnv() too.
> * @return boolean
> */
>
> function isValid ($type, $itemInfo=NULL, $env=NULL) {
> global $TCA;
>
> $valid = parent::isValid ($type, $itemInfo, $env);
> if ($valid) {
> $valid = ($this->env['permsEdit']);
> }
> if($valid)
> {
> $valid = isset($itemInfo['nextSorting']);
> };
> return $valid;
> }
>
>
> /**
> * Returns the icon image tag.
> * Additional attributes to the image tagcan be added.
> *
> * @param string $addAttribute Additional attributes
> * @return string
> */
> function getIcon ($addAttribute='') {
> global $TCA;
>
> if ($this->disabled) {
> $icon = '<img src="clear.gif"
> '.t3lib_iconWorks::skinImg($this->backPath,'gfx/button_down.gif','width="11"
> height="10"',2).' alt="" />';
> } else {
> $iconFile = 'gfx/button_down.gif';
> $icon =
> '<img'.t3lib_iconWorks::skinImg($GLOBALS['BACK_PATH'], $iconFile,
> 'width="12" height="12"').$this->_cleanAttribute($addAttribute).' alt=""
> />';
> }
> return $icon;
> }
>
> /**
> * Returns a short description for tooltips for example like: Delete
> folder recursivley
> *
> * @return string
> */
> function getDescription () {
> return
> $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:cm.movedown');
> }
>
>
> /**
> * Returns a command array for the current type
> *
> * @return array Command array
> * @access private
> */
> function _getCommand() {
> $params =
> '&cmd['.$this->itemInfo['__table'].']['.$this->itemInfo['uid'].'][move]='.$t
> his->itemInfo["next"];
> $title = $this->itemInfo['title'].'
> ('.$this->itemInfo['file_name'].')';
> $onClick =
> 'jumpToUrl(\''.$GLOBALS['SOBE']->doc->issueCommand($params, -1).'\'); return
> false;';
>
> $commands['href'] = '#';
> $commands['onclick'] = $onClick;
>
> return $commands;
> }
> }
> /***************************************************************************
> *********/
>
>
> This will add the appropriate actions to the control.
>
> Then add this actions to the ext_tables.php file. To get the order
> of the buttons like the
> file menu you should place this lines
>
> tx_dam::register_action ('tx_dam_action_moveUpRec',
> 'EXT:dam/components/class.tx_dam_actionsRecord.php:&tx_dam_action_moveUpRec'
> );
> tx_dam::register_action ('tx_dam_action_moveDownRec',
> 'EXT:dam/components/class.tx_dam_actionsRecord.php:&tx_dam_action_moveDownRe
> c');
>
> before
>
> tx_dam::register_action ('tx_dam_action_hideRec',
> 'EXT:dam/components/class.tx_dam_actionsRecord.php:&tx_dam_action_hideRec');
>
>
>
> Finally the most importend point is to update the way the DAM
> delivers records for listing in class.tx_dam_listrecords.php
>
> Look for the following lines in function renderList:
>
> $this->currentTable['prev'][$row['uid']] = $prevPrevUid;
> $this->currentTable['next'][$prevUid] = '-'.$row['uid'];
> $this->currentTable['prevUid'][$row['uid']] = $prevUid;
>
> And append
>
> $accRows[$row['uid']]['prev'] = $prevPrevUid;
> $accRows[$prevUid]['next'] =
> '-'.$row['uid'];
>
> right after this lines. That will store the previous and next item
> in the row delivered to
> the actions .. so the chain is closed :o)
>
> I can also send the full files if required to the persons
> interested.
>
> Hope that helps,
> Axel
>
More information about the TYPO3-project-dam
mailing list