| | |
| | | */ |
| | | public function button($attrib) |
| | | { |
| | | static $sa_buttons = array(); |
| | | static $s_button_count = 100; |
| | | |
| | | // these commands can be called directly via url |
| | |
| | | else { |
| | | $attrib['type'] = ($attrib['image'] || $attrib['imagepas'] || $attrib['imageact']) ? 'image' : 'link'; |
| | | } |
| | | |
| | | $command = $attrib['command']; |
| | | |
| | | // take the button from the stack |
| | | if ($attrib['name'] && $sa_buttons[$attrib['name']]) { |
| | | $attrib = $sa_buttons[$attrib['name']]; |
| | | } |
| | | else if($attrib['image'] || $attrib['imageact'] || $attrib['imagepas'] || $attrib['class']) { |
| | | // add button to button stack |
| | | if (!$attrib['name']) { |
| | | $attrib['name'] = $command; |
| | | } |
| | | if (!$attrib['image']) { |
| | | $attrib['image'] = $attrib['imagepas'] ? $attrib['imagepas'] : $attrib['imageact']; |
| | | } |
| | | $sa_buttons[$attrib['name']] = $attrib; |
| | | } |
| | | else if ($command && $sa_buttons[$command]) { |
| | | // get saved button for this command/name |
| | | $attrib = $sa_buttons[$command]; |
| | | if ($attrib['task']) |
| | | $command = $attrib['task'] . '.' . $command; |
| | | |
| | | if (!$attrib['image']) { |
| | | $attrib['image'] = $attrib['imagepas'] ? $attrib['imagepas'] : $attrib['imageact']; |
| | | } |
| | | |
| | | if (!$attrib['id']) { |
| | |
| | | if (in_array($attrib['command'], rcmail::$main_tasks)) { |
| | | $attrib['href'] = rcmail_url(null, null, $attrib['command']); |
| | | } |
| | | else if ($attrib['task'] && in_array($attrib['task'], rcmail::$main_tasks)) { |
| | | $attrib['href'] = rcmail_url($attrib['command'], null, $attrib['task']); |
| | | } |
| | | else if (in_array($attrib['command'], $a_static_commands)) { |
| | | $attrib['href'] = rcmail_url($attrib['command']); |
| | | } |
| | |
| | | if (!$attrib['href']) { |
| | | $attrib['href'] = '#'; |
| | | } |
| | | if ($command && !$attrib['onclick']) { |
| | | if ($attrib['task']) { |
| | | if ($attrib['classact']) |
| | | $attrib['class'] = $attrib['classact']; |
| | | } |
| | | else if ($command && !$attrib['onclick']) { |
| | | $attrib['onclick'] = sprintf( |
| | | "return %s.command('%s','%s',this)", |
| | | JS_OBJECT_NAME, |