Fixed bug #7820: Task center iframes are only sized on load (thanks to Steffen Kamper)
[Packages/TYPO3.CMS.git] / typo3 / sysext / taskcenter / task / class.mod_user_task.php
1 <?php
2 /***************************************************************
3 * Copyright notice
4 *
5 * (c) 1999-2008 Kasper Skaarhoj (kasperYYYY@typo3.com)
6 * All rights reserved
7 *
8 * This script is part of the TYPO3 project. The TYPO3 project is
9 * free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation; either version 2 of the License, or
12 * (at your option) any later version.
13 *
14 * The GNU General Public License can be found at
15 * http://www.gnu.org/copyleft/gpl.html.
16 * A copy is found in the textfile GPL.txt and important notices to the license
17 * from the author is found in LICENSE.txt distributed with these scripts.
18 *
19 *
20 * This script is distributed in the hope that it will be useful,
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 * GNU General Public License for more details.
24 *
25 * This copyright notice MUST APPEAR in all copies of the script!
26 ***************************************************************/
27 /**
28 * Module class for task module
29 *
30 * @author Kasper Skårhøj <kasperYYYY@typo3.com>
31 * @author Christian Jul Jensen <christian(at)jul(dot)net>
32 *
33 * Revision for TYPO3 3.8.0 / Native Workflow System
34 */
35
36 require_once(PATH_t3lib.'class.t3lib_extobjbase.php');
37
38 class mod_user_task extends t3lib_extobjbase {
39 var $getUserNamesFields = 'username,usergroup,usergroup_cached_list,uid,realName,email';
40 var $userGroupArray = array();
41 var $perms_clause = '';
42
43 var $backPath;
44
45 /**
46 * BE user
47 *
48 * @var t3lib_beUserAuth
49 */
50 var $BE_USER;
51
52 function JScode() {
53
54 }
55
56 /**
57 * Send an email...
58 *
59 * @param string $email: the email address to send to
60 * @param string $subject: the subject of the emil
61 * @param string $message: the message body of the email
62 * @return void
63 */
64 function sendEmail($recipient, $subject, $message) {
65 $message .= '
66
67 --------
68 '.sprintf($GLOBALS['LANG']->getLL('messages_emailFooter'), $GLOBALS['TYPO3_CONF_VARS']['SYS']['sitename'], t3lib_div::getIndpEnv('HTTP_HOST'));
69
70 require_once(PATH_t3lib.'class.t3lib_htmlmail.php');
71 $email = t3lib_div::makeInstance('t3lib_htmlmail');
72 $email->start();
73 $email->useBase64();
74 $email->subject = $GLOBALS['TYPO3_CONF_VARS']['BE']['notificationPrefix'].' '.$subject;
75 $email->from_email = $this->BE_USER->user['email'];
76 $email->from_name = $this->BE_USER->user['realName'];
77 $email->addPlain($message);
78 $email->setHTML($email->encodeMsg($message));
79 $email->setHeaders();
80 $email->setContent();
81 $email->recipient = $recipient;
82 $email->sendTheMail();
83 }
84
85 /**
86 * Initialise the object
87 *
88 * @param object $BE_USER: instance of t3lib_beuserauth representing the current be user.
89 * @return void
90 */
91 function mod_user_task_init($BE_USER) {
92 $this->BE_USER = $BE_USER;
93 $this->perms_clause = $this->BE_USER->getPagePermsClause(1);
94 }
95
96 /**
97 * Return helpbubble image
98 *
99 * @return string image tag (HTML)
100 */
101 function helpBubble() {
102 return '<img src="'.$this->backPath.'gfx/helpbubble.gif" width="14" height="14" hspace=2 align=top'.$GLOBALS['SOBE']->doc->helpStyle().'>';
103 }
104
105
106 /**
107 * Create a link to the module with the name of the module as link text.
108 *
109 * @param string $key: the classname of the module
110 * @param bool $dontLink: Just return the name of the module without a link.
111 * @param stting $params: HTTP GET parameter string to add to the link (not used if dontLink true)
112 * @return string link (HTML) / name of module (regular string)
113 */
114 function headLink($key, $dontLink = false, $params = '') {
115 $str = $GLOBALS['SOBE']->MOD_MENU['function'][$key];
116 if (!$dontLink) $str = '<a href="index.php?SET[function]='.$key.$params.'" onClick="this.blur();">'.htmlspecialchars($str).'</a>';
117 return $str;
118 }
119
120 /**
121 * Return a string cropped to a fixed length according to system setting or parameter
122 *
123 * @param string $str: string to be cropped.
124 * @param int $len: length of the cropped string, system settings is used if none is given
125 * @return string cropped string
126 */
127 function fixed_lgd($str, $len = 0) {
128 return t3lib_div::fixed_lgd($str, $len?$len:$this->BE_USER->uc['titleLen']);
129 }
130
131 /**
132 * Return an error icon
133 *
134 * @return string Image tag (HTML)
135 */
136 function errorIcon() {
137 return '<img src="'.$this->backPath.'gfx/icon_fatalerror.gif" width="18" height="16" align=top>';
138 }
139
140 /**
141 * [Describe function...]
142 *
143 * @return array ...
144 */
145 function getUserAndGroupArrays() {
146 // Get groupnames for todo-tasks
147 $be_group_Array = t3lib_BEfunc::getListGroupNames('title,uid');
148 $groupArray = array_keys($be_group_Array);
149 // Usernames
150 $be_user_Array = $be_user_Array_o = t3lib_BEfunc::getUserNames($this->getUserNamesFields);
151 if (!$GLOBALS['BE_USER']->isAdmin()) $be_user_Array = t3lib_BEfunc::blindUserNames($be_user_Array, $groupArray, 1);
152
153 $this->userGroupArray = array($be_user_Array, $be_group_Array, $be_user_Array_o);
154 return $this->userGroupArray;
155 }
156
157 /**
158 * [Describe function...]
159 *
160 * @param [type] $tstamp: ...
161 * @param [type] $prefix: ...
162 * @return [type] ...
163 */
164 function dateTimeAge($tstamp, $prefix = 1) {
165 return t3lib_BEfunc::dateTimeAge($tstamp, $prefix);
166 }
167
168 /**
169 * [Describe function...]
170 *
171 * @param [type] $mod: ...
172 * @return [type] ...
173 */
174 function accessMod($mod) {
175 return $this->BE_USER->modAccess(array('name' => $mod, 'access' => 'user,group'), 0);
176 }
177
178 /**
179 * Create configuration for entry in the left tab menu.
180 *
181 * @param string $htmlContent: Content that does not get escaped, use this for icons links etc. (HTML)
182 * @param string $label: bTitle of the tab, escaped for HTML, dispalyed after html content.
183 * @param string $content: html content that gets displayed when the tab is activated. (HTML)
184 * @param string $popUpDescription: alt-text for the tab text
185 * @return array proper configuration for the tab menu.
186 */
187 function mkMenuConfig($htmlContent, $label = "", $content = "", $popUpDescription = '') {
188 $configArr = Array();
189 if ((string) $htmlContent) $configArr['icon'] = $htmlContent;
190 if ((string) $label) $configArr['label'] = $label;
191 if ((string) $content) $configArr['content'] = $content;
192 if ((string) $linkTitle) $configArr['linkTitle'] = $linkTitle;
193 return $configArr;
194 }
195
196 /**
197 * Returns HTML code to dislay an url in an iframe with the right side of the taskcenter
198 *
199 * @param string $url: url to display
200 * @param [type] $max: ...
201 * @return string code that inserts the iframe (HTML)
202 */
203 function urlInIframe($url,$max=0) {
204 return '<iframe onload="resizeIframe(this,'.$max.');" scrolling="auto" width="100%" src="'.$url.'" name="list_frame" id="list_frame" frameborder="no" style="border: none;"></iframe>';
205 }
206
207
208 }
209
210 // Include extension?
211 if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/taskcenter/task/class.mod_user_task.php']) {
212 include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/taskcenter/task/class.mod_user_task.php']);
213 }
214
215
216 ?>