* * -------------------------------------------- * * This program is free software; you can redistribute it and/or modify it * * under the terms of the GNU General Public License as published by the * * Free Software Foundation; either version 2 of the License, or (at your * * option) any later version. * \**************************************************************************/ /* $Id$ */ /*! @class linklist_widget @author ralfbecker @abstract widget that shows the links to an entry and a Unlink Button for each entry @discussion This widget is independent of the UI as it only uses etemplate-widgets and has therefor no render-function */ class linklist_widget { var $public_functions = array( 'pre_process' => True, 'post_process' => True ); var $human_name = 'LinkList'; // this is the name for the editor function linklist_widget($ui) { $this->link = CreateObject('infolog.bolink'); } function pre_process(&$cell,&$value,&$extension_data,&$readonlys) { $app = $value['app'] = 'addressbook'; $id = $value['id'] = 921; //echo "
linklist_widget.preprocess: app='$app', id='$id', value="; _debug_array($value); if (!$value['title']) { $value['title'] = $this->link->title($app,$id); } $extension_data = $value; $links = $this->link->get_links($app,$id); for($row=1; list(,$link) = each($links); ++$row) { $value[$row] = $link; $value[$row]['title'] = $this->link->title($link['app'],$link['id']); } $cell['size'] = $cell['name']; $cell['type'] = 'template'; $cell['name'] = 'infolog.linklist_widget'; return True; // extra Label is ok } function post_process(&$cell,&$value,&$extension_data,&$loop) { list($unlink) = @each($value['unlink']); $pre_value = $extension_data; //echo "
linklist_widget.postprocess: app='$pre_value[app]', id='$pre_value[id]', unlink='$unlink', value="; _debug_array($value); if ($unlink) { $this->link->unlink($unlink,$pre_value['app'],$pre_value['id']); $loop = True; $value = $pre_value; } } }