Overview

Packages

  • CONTENIDO
  • Core
    • Authentication
    • Backend
    • Cache
    • CEC
    • Chain
    • ContentType
    • Database
    • Debug
    • Exception
    • Frontend
      • Search
      • URI
      • Util
    • GenericDB
      • Model
    • GUI
      • HTML
    • I18N
    • LayoutHandler
    • Log
    • Security
    • Session
    • Util
    • Validation
    • Versioning
    • XML
  • Module
    • ContentRssCreator
    • ContentSitemapHtml
    • ContentSitemapXml
    • ContentUserForum
    • NavigationTop
    • ScriptCookieDirective
  • mpAutoloaderClassMap
  • None
  • Plugin
    • ContentAllocation
    • CronjobOverview
    • FormAssistant
    • FrontendLogic
    • FrontendUsers
    • Linkchecker
    • ModRewrite
    • Newsletter
    • Repository
      • FrontendNavigation
      • KeywordDensity
    • SearchSolr
    • SmartyWrapper
    • UrlShortener
    • UserForum
    • Workflow
  • PluginManager
  • Setup
    • Form
    • GUI
    • Helper
      • Environment
      • Filesystem
      • MySQL
      • PHP
    • UpgradeJob
  • Smarty
    • Cacher
    • Compiler
    • Config
    • Debug
    • PluginsBlock
    • PluginsFilter
    • PluginsFunction
    • PluginsInternal
    • PluginsModifier
    • PluginsModifierCompiler
    • PluginsShared
    • Security
    • Template
    • TemplateResources
  • Swift
    • ByteStream
    • CharacterStream
    • Encoder
    • Events
    • KeyCache
    • Mailer
    • Mime
    • Plugins
    • Transport

Classes

  • Swift_FailoverTransport
  • Swift_LoadBalancedTransport
  • Swift_MailTransport
  • Swift_Plugins_Loggers_ArrayLogger
  • Swift_Plugins_Loggers_EchoLogger
  • Swift_SendmailTransport
  • Swift_SmtpTransport
  • Swift_Transport_AbstractSmtpTransport
  • Swift_Transport_Esmtp_Auth_CramMd5Authenticator
  • Swift_Transport_Esmtp_Auth_LoginAuthenticator
  • Swift_Transport_Esmtp_Auth_PlainAuthenticator
  • Swift_Transport_Esmtp_AuthHandler
  • Swift_Transport_EsmtpTransport
  • Swift_Transport_FailoverTransport
  • Swift_Transport_LoadBalancedTransport
  • Swift_Transport_MailTransport
  • Swift_Transport_SendmailTransport
  • Swift_Transport_SimpleMailInvoker
  • Swift_Transport_StreamBuffer

Interfaces

  • Swift_Plugins_Logger
  • Swift_Plugins_Pop_Pop3Exception
  • Swift_Transport
  • Swift_Transport_Esmtp_Authenticator
  • Swift_Transport_EsmtpHandler
  • Swift_Transport_IoBuffer
  • Swift_Transport_MailInvoker
  • Swift_Transport_SmtpAgent
  • Swift_TransportException
  • Overview
  • Package
  • Function
  • Todo
  • Download
  1: <?php
  2: /**
  3:  * This file contains the class for visualisation and interactions in the right frame.
  4:  *
  5:  * @package Plugin
  6:  * @subpackage UserForum
  7:  * @version SVN Revision $Rev:$
  8:  *
  9:  * @author Claus Schunk
 10:  * @copyright four for business AG <www.4fb.de>
 11:  * @license http://www.contenido.org/license/LIZENZ.txt
 12:  * @link http://www.4fb.de
 13:  * @link http://www.contenido.org
 14:  */
 15: 
 16: defined('CON_FRAMEWORK') || die('Illegal call: Missing framework initialization - request aborted.');
 17: 
 18: /**
 19:  * This class contains builds the content of the right frame.
 20:  *
 21:  *
 22:  * @package Plugin
 23:  * @subpackage UserForum
 24:  */
 25: 
 26: global $area;
 27: 
 28: /**
 29:  * Class ArticleForumRightBottom
 30:  */
 31: class ArticleForumRightBottom extends cGuiPage {
 32: 
 33:     /**
 34:      * @var int
 35:      */
 36:     private $_indentFactor = 20;
 37: 
 38:     /**
 39:      * @var ArticleForumCollection
 40:      */
 41:     protected $_collection;
 42: 
 43:     /**
 44:      *
 45:      */
 46:     function __construct() {
 47: 
 48:         $this->_collection = new ArticleForumCollection();
 49:         parent::__construct('right_bottom', 'user_forum');
 50:         $this->addStyle('right_bottom.css');
 51:         $this->addScript('location.js');
 52:         // Reload left bottom in this code because of irregular update problems in the location file
 53:         $this->setReload();
 54:     }
 55: 
 56:     /**
 57:      * @param $timeStamp
 58:      *
 59:      * @return array
 60:      */
 61:     protected function formatTimeString($timeStamp) {
 62:         $nullstring = '0';
 63:         if ($timeStamp == "0000-00-00 00:00:00") {
 64:             return array();
 65:         } else {
 66:             $ar = (date_parse($timeStamp));
 67:             // if elements are smaller than 2 digits add a '0' at front. e.g
 68:             // 2:10 -> 02:10
 69:             (strlen($ar['day']) < 2) ? $ar['day'] = $nullstring . $ar['day'] : '';
 70:             (strlen($ar['month']) < 2) ? $ar['month'] = $nullstring . $ar['month'] : '';
 71:             (strlen($ar['minute']) < 2) ? $ar['minute'] = $nullstring . $ar['minute'] : '';
 72:             (strlen($ar['hour']) < 2) ? $ar['hour'] = $nullstring . $ar['hour'] : '';
 73:         }
 74: 
 75:         return $ar;
 76:     }
 77: 
 78:     /**
 79:      * this function returns an deactive link or an link with mail-to directive
 80:      * if the given mail adress is valid
 81:      *
 82:      * @param string $emailadr
 83:      * @param string $realname
 84:      * @return cHTMLLink
 85:      */
 86:     protected function checkValidEmail($emailadr, $realname) {
 87:         $regex = '/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/';
 88:         // Run the preg_match() function on regex against the email address
 89:         if (preg_match($regex, $emailadr)) {
 90:             $mail = new cHTMLLink();
 91:             $mail->setClass('emailactive');
 92:             $mail->setLink("mailto:" . $emailadr);
 93:             $mail->setContent($realname);
 94:         } else {
 95:             $mail = new cHTMLLink();
 96:             $mail->setLink('#');
 97:             $mail->setClass('emaildeactive');
 98:             $mail->setContent($realname);
 99:         }
100:         return $mail;
101:     }
102: 
103:     /**
104:      * this function builds buttons for user interactions
105:      *
106:      * @param $key
107:      * @param $cont
108:      *
109:      *
110:      * @param $cfg
111:      * @return array with buttons
112:      */
113:     protected function buildOnlineButtonBackendListMode(&$key, &$cont, &$cfg, $mod = null) {
114:         global $area;
115:         $buttons = array();
116: 
117:         $id = $cont['id_user_forum'];
118: 
119:         // shows onlineState
120:         $online = new cHTMLLink();
121:         if ($cont['online'] == 1) {
122:             $online->setImage($cfg['path']['images'] . 'online.gif');
123:             $online->setCustom('action', 'online_toggle');
124:             $online->setAlt(UserForum::i18n('SETOFFLINE'));
125:         } else {
126:             $online->setImage($cfg['path']['images'] . 'offline.gif');
127:             $online->setCustom('action', 'offline_toggle');
128:             $online->setAlt(UserForum::i18n('SETONLINE'));
129:         }
130: 
131:         $online->setCLink($area, 4, 'show_form');
132:         $online->setTargetFrame('right_bottom');
133:         $online->setStyle('margin-right:10px;');
134: 
135:         $online->setCustom('action', 'online_toggle');
136:         $online->setCustom('idart', $cont['idart']);
137:         $online->setCustom('id_user_forum', $cont['id_user_forum']);
138:         $online->setCustom('idcat', $cont['idcat']);
139:         $online->setCustom('online', $cont['online']);
140: 
141:         $online->setAttribute('method', 'get');
142: 
143:         // link to edit mode
144:         $edit = new cHTMLButton("edit");
145:         $edit->setImageSource($cfg['path']['images'] . 'but_todo.gif');
146:         $edit->setEvent('click', "$('form[name=$id]').submit()");
147:         $edit->setStyle('margin-right:10px; ');
148:         $edit->setMode('image');
149:         $edit->setAlt(UserForum::i18n('EDIT'));
150: 
151:         // additional params to identify actions from moderator startpage
152:         if (isset($mod)) {
153:             $online->setCustom('mod', true);
154: //            $edit->setCustom('mod', true);
155:         }
156: 
157:         $message = UserForum::i18n('ALLDELETEFROMCATHIER');
158:         $level = $cont['level'];
159:         $keyy = $key;
160:         $id = $cont['id_user_forum'];
161:         $idacat = $cont['idcat'];
162:         $idaart = $cont['idart'];
163: 
164:         // button with delete action
165:         $deleteButton = '<a title="' . $cont['title'] . '" href="javascript:void(0)" onclick="Con.showConfirmation(&quot;' . $message . '&quot;, function(){ deleteArticlesByIdRight(' . $level . ', ' . $keyy . ', ' . $id . ', ' . $idacat . ', ' . $idaart . '); });return false;"><img src="' . $cfg['path']['images'] . 'delete.gif" border="0" title="' . $message . '" alt="' . $message . '"></a>';
166: 
167:         // insert buttons to array for return
168:         $buttons['online'] = $online;
169:         $buttons['edit'] = $edit;
170:         $buttons['delete'] = $deleteButton;
171: 
172:         return $buttons;
173:     }
174: 
175:     /**
176:      * generate main menu
177:      *
178:      * @param $result array with comments
179:      * @return ArticleForumRightBottom
180:      */
181:     public function getMenu(&$result, $mod = null) {
182:         $table = new cHTMLTable();
183:         if (count($result) < 1) {
184:             return new cHTMLTable();
185:         }
186:         $table->setCellPadding('100px');
187:         global $area;
188:         $table->updateAttributes(array(
189:             "class" => "generic",
190:             "cellspacing" => "0",
191:             "cellpadding" => "2"
192:         ));
193: 
194:         if (count($result) > 0) {
195:             $tr = new cHTMLTableRow();
196:             $th = new cHTMLTableHead();
197:             $th->setContent(i18n("FORUM_POST", "user_forum"));
198:             $th->setStyle('text-align: center');
199:             $tr->appendContent($th);
200: 
201:             $th = new cHTMLTableHead();
202:             $th->setContent(i18n("ACTIONS", "user_forum"));
203:             $th->setStyle('widht:20px');
204:             $th->setStyle('text-align: center');
205:             $th->setAttribute('valign', 'top');
206:             $tr->appendContent($th);
207: 
208:             $table->appendContent($tr);
209:         }
210: 
211:         $menu = new cGuiMenu();
212:         $cfg = cRegistry::getConfig();
213: 
214:         foreach ($result as $key => $cont) {
215: 
216:             $set = false;
217:             $like = $cont['like'];
218:             $dislike = $cont['dislike'];
219:             $timestamp = $cont['timestamp'];
220: 
221:             $datearray = $this->formatTimeString($cont['timestamp']);
222:             $date =  (empty($datearray)) ? '' : $datearray['day'] . '.' . $datearray['month'] . '.' . $datearray['year'] . ' ' . UserForum::i18n("AT") . ' ' . $datearray['hour'] . ':' . $datearray['minute'] . ' ' . UserForum::i18n("CLOCK");
223: 
224:             $buttons = array();
225:             $buttons = $this->buildOnlineButtonBackendListMode($key, $cont, $cfg, $mod);
226: 
227:             $online = $buttons['online'];
228:             $edit = $buttons['edit'];
229:             $delete = $buttons['delete'];
230: 
231:             // row
232:             $tr = new cHTMLTableRow();
233:             $trLike = new cHTMLTableRow();
234: 
235:             $likeButton = new cHTMLImage($cfg['path']['images'] . 'like.png');
236:             // $likeButton->setAttribute('valign', 'bottom');
237:             $dislikeButton = new cHTMLImage($cfg['path']['images'] . 'dislike.png');
238: 
239:             // valid email
240:             $maili = $this->checkValidEmail($cont['email'], $cont['realname']);
241:             $text = $cont['forum'];
242: 
243:             $timestamp = $cont['editedat'];
244: 
245:             $editarray = $this->formatTimeString($cont['editedat']);
246:             $editdate = (empty($editarray)) ? '' : $editarray['day'] . '.' . $editarray['month'] . '.' . $editarray['year'] . ' ' . UserForum::i18n("AT") . ' ' . $editarray['hour'] . ':' . $editarray['minute'] . ' ' . UserForum::i18n("CLOCK");
247: 
248:             $userColl = new cApiUserCollection();
249:             $user = $userColl->loadItem($cont['editedby'])->get('username');
250: 
251:             if (($cont['editedby'] != '') && ($cont['editedat'] != '') && $cont['editedat'] != "0000-00-00 00:00:00") {
252:                 $edit_information = (UserForum::i18n("EDITED") . $editdate . ' ' . UserForum::i18n("FROM") . $user);
253:                 $edit_information = "<em>$edit_information</em>";
254:             } else {
255:                 $edit_information = "<br>";
256:             }
257: 
258:             $tdEmpty = new cHTMLTableData();
259:             $tdEmpty->appendContent($edit_information);
260:             $tdLike = new cHTMLTableData();
261:             $tdEmpty->setAttribute('valign', 'top');
262:             $tdLike->setAttribute('valign', 'top');
263:             $tdLike->setStyle('text-align: center');
264: 
265:             // add like/dislike functionality to table
266:             $tdLike->appendContent($likeButton);
267:             $tdLike->appendContent(" $like ");
268:             $tdLike->appendContent($dislikeButton);
269:             $tdLike->appendContent(" $dislike");
270: 
271:             // in new row
272:             $trLike->appendContent($tdEmpty);
273:             $trLike->appendContent($tdLike);
274: 
275:             // build form element
276:             $form = new cHTMLForm($cont['id_user_forum']);
277:             $form->setAttribute('action', 'main.php?' . "area=" . $area . '&frame=4');
278: 
279:             $tdForm = new cHTMLTableData();
280:             $tdForm->setStyle('padding-left:' . $cont['level'] * $this->_indentFactor . 'px');
281: 
282:             // build buttons
283:             $tdButtons = new cHTMLTableData();
284:             $tdButtons->setAttribute('valign', 'top');
285:             $tdButtons->setStyle(' text-align: center');
286: 
287:             $tdButtons->appendContent($online);
288: 
289:             // not allowed at moderator starpage overview
290:             $tdButtons->appendContent($edit);
291:             if (!isset($mod)) {
292:                 $tdButtons->appendContent($delete);
293:             }
294: 
295:             $tdButtons->appendContent('<br>');
296:             $tdButtons->appendContent('<br>');
297: 
298:             // create hidden-fields
299:             $hiddenIdart = new cHTMLHiddenField('idart');
300:             $hiddenIdcat = new cHTMLHiddenField('idcat');
301:             $hiddenId_user_forum = new cHTMLHiddenField('id_user_forum');
302:             $hiddenLike = new cHTMLHiddenField('like');
303:             $hiddenDislike = new cHTMLHiddenField('dislike');
304:             $hiddenName = new cHTMLHiddenField('realname');
305:             $hiddenEmail = new cHTMLHiddenField('email');
306:             $hiddenLevel = new cHTMLHiddenField('level');
307:             $hiddenEditdat = new cHTMLHiddenField('editedat');
308:             $hiddenEditedby = new cHTMLHiddenField('editedby');
309:             $hiddenTimestamp = new cHTMLHiddenField('timestamp');
310:             $hiddenForum = new cHTMLHiddenField('forum');
311:             $hiddenOnline = new cHTMLHiddenField('online');
312:             $hiddenMode = new cHTMLHiddenField('mode');
313:             $hiddenKey = new cHTMLHiddenField('key');
314:             $hiddenaction = new cHTMLHiddenField('action');
315: 
316:             // set values
317:             $hiddenIdart->setValue($cont['idart']);
318:             $hiddenIdcat->setValue($cont['idcat']);
319:             $hiddenId_user_forum->setValue($cont['id_user_forum']);
320:             $hiddenLike->setValue($cont['like']);
321:             $hiddenDislike->setValue($cont['dislike']);
322:             $hiddenName->setValue(str_replace('\\', '', conHtmlSpecialChars($cont['realname'])));
323:             $hiddenEmail->setValue(str_replace('\\', '', conHtmlSpecialChars($cont['email'])));
324:             $hiddenLevel->setValue($cont['level']);
325:             $hiddenEditdat->setValue($cont['editedat']);
326:             $hiddenEditedby->setValue($cont['editedby']);
327:             $hiddenTimestamp->setValue($date);
328:             $hiddenForum->setValue(str_replace('\\', '', conHtmlSpecialChars($cont['forum'])));
329:             $hiddenOnline->setValue($cont['online']);
330:             $hiddenMode->setValue('edit');
331:             $hiddenKey->setValue($key);
332:             $hiddenaction->setValue('edit');
333: 
334:             // append to hidden-fields to form
335:             $form->appendContent($hiddenIdart);
336:             $form->appendContent($hiddenIdcat);
337:             $form->appendContent($hiddenId_user_forum);
338:             $form->appendContent($hiddenLike);
339:             $form->appendContent($hiddenDislike);
340:             $form->appendContent($hiddenName);
341:             $form->appendContent($hiddenEmail);
342:             $form->appendContent($hiddenLevel);
343:             $form->appendContent($hiddenForum);
344:             $form->appendContent($hiddenEditdat);
345:             $form->appendContent($hiddenEditedby);
346:             $form->appendContent($hiddenTimestamp);
347:             $form->appendContent($hiddenMode);
348:             $form->appendContent($hiddenOnline);
349:             $form->appendContent($hiddenKey);
350:             $form->appendContent($hiddenaction);
351: 
352:             if (isset($mod)) {
353:                 $form->appendContent(new cHTMLHiddenField('mod'));
354:             }
355: 
356:             // generate output text
357:             $form->appendContent($date . " von " . str_replace('\\', '', $maili) . " <br><br>");
358:             $form->appendContent((str_replace('\\', '', $text)) . "<br><br>");
359: 
360:             $tdForm->setContent($form);
361:             $tdForm->setAttribute('valign', 'top');
362:             $tr->setContent($tdForm);
363:             $tr->appendContent($tdButtons);
364:             $tr->appendContent($trLike);
365:             $table->appendContent($tr);
366:         }
367: 
368:         $this->appendContent($table);
369: 
370:         return $this;
371:     }
372: 
373:     /**
374:      * generate dialog for editmode
375:      *
376:      * @param array $post
377:      * @return ArticleForumRightBottom
378:      */
379:     protected function getEditModeMenu($post) {
380: 
381:         global $area;
382:         $changes = 0;
383:         $cfg = cRegistry::getConfig();
384:         $idart = cRegistry::getArticleId();
385:         $idcat = cRegistry::getCategoryId();
386:         $menu = new cGuiMenu();
387:         $tr = new cHTMLTableRow();
388: 
389:         $th = new cHTMLTableHead();
390:         $th->setContent(UserForum::i18n("PARAMETER", "user_forum"));
391: 
392:         $th2 = new cHTMLTableHead();
393:         $th2->setContent(UserForum::i18n("CONTENT", "user_forum"));
394:         $th2->setStyle('widht:50px');
395:         $th2->setAttribute('valign', 'top');
396:         $tr->appendContent($th);
397:         $tr->appendContent($th2);
398: 
399:         // build form element
400:         $form1 = new cGuiTableForm("comment", "main.php?area=user_forum&frame=4", "post");
401:         $form1->addHeader($tr);
402:         $form1->setTableID("table");
403: 
404:         $user = new cApiUser();
405:         $user->loadByPrimaryKey($post['editedby']);
406:         $username = $user->getField('username');
407: 
408:         $id = $post['id_user_forum'];
409: 
410:         $likeButton = new cHTMLImage($cfg['path']['images'] . 'like.png');
411:         $dislikeButton = new cHTMLImage($cfg['path']['images'] . 'dislike.png');
412: 
413: 
414:         $name = new cHTMLTextBox("realname", str_replace('\\', '',(conHtmlSpecialChars($post['realname']))), 30, 255);
415:         $email = new cHTMLTextBox("email", $post['email'], 30, 255);
416:         $like = new cHTMLTextBox("like", $post['like'], 7, 7);
417:         $dislike = new cHTMLTextBox("dislike", $post['dislike'], 7, 7);
418: 
419:         $text = str_replace("<br />", "\n", conHtmlSpecialChars($post['forum']));
420:         $text = str_replace('\\', '', $text);
421: 
422:         $forum = new cHTMLTextArea("forum", $text);
423: 
424:         $datearray = $this->formatTimeString($post['timestamp']);
425:         $date = (empty($datearray)) ? '' : $datearray['day'] . '.' . $datearray['month'] . '.' . $datearray['year'] . ' ' . UserForum::i18n("AT") . ' ' . $datearray['hour'] . ':' . $datearray['minute'] . ' ' . UserForum::i18n("CLOCK");
426: 
427:         $editedatearray = $this->formatTimeString($post['editedat']);
428:         $editedat = (empty($editedatearray)) ? '' : $editedatearray['day'] . '.' . $editedatearray['month'] . '.' . $editedatearray['year'] . ' ' . UserForum::i18n("AT") . ' ' . $editedatearray['hour'] . ':' . $editedatearray['minute'] . ' ' . UserForum::i18n("CLOCK");
429: 
430:         $timestamp = new cHTMLTextBox("timestamp", $date, 30, 255);
431:         $editedat = new cHTMLTextBox("editedat", $editedat, 30, 255);
432:         $editedby = new cHTMLTextBox("editedby", $username, 30, 255);
433: 
434:         $editedat->setDisabled(true);
435:         $timestamp->setDisabled(true);
436:         $editedby->setDisabled(true);
437: 
438: 
439:         $form1->add(UserForum::i18n("USER"), $name, '');
440:         $form1->add(UserForum::i18n("EMAIL"), $email, '');
441:         $form1->add(UserForum::i18n("LIKE"), $like, '');
442:         $form1->add(UserForum::i18n("DISLIKE"), $dislike, '');
443:         $form1->add(UserForum::i18n("TIME"), $timestamp, '');
444:         $form1->add(UserForum::i18n("EDITDAT"), $editedat, '');
445:         $form1->add(UserForum::i18n("EDITEDBY"), $editedby, '');
446: 
447:         // handle moderation mode actions
448:         if (isset($post['mod'])) {
449:             $form1->setVar('mod', 'mod');
450:             $form1->addCancel("main.php?area=user_forum&frame=4&action=back&mod=mod");
451:         } else {
452:             $form1->addCancel("main.php?area=user_forum&frame=4&action=back&idart=$idart&idcat=$idcat");
453:         }
454: 
455:         $onlineBox = new cHTMLCheckbox("onlineState", "");
456: 
457:         $onlineBox->setChecked(($post['online'] == 1) ? true : false);
458:         $form1->add(UserForum::i18n("ONLINE"), $onlineBox, '');
459: 
460:         $idart = $post['idart'];
461:         $idcat = $post['idcat'];
462: 
463:         $form1->add(UserForum::i18n("COMMENT"), $forum, '');
464: 
465:         // $form1->setVar('online', $post['online']);
466:         $form1->setVar("id_user_forum", $post['id_user_forum']);
467:         $form1->setVar("idart", $post['idart']);
468:         $form1->setVar("idcat", $post['idcat']);
469:         $form1->setVar("action", 'update');
470:         $form1->setVar("mode", "list");
471:         $form1->setVar("activeChanges", $changes);
472: 
473:         $this->appendContent($form1);
474: 
475:         return $this;
476:     }
477: 
478:     /**
479:      * @param $id_cat
480:      * @param $id_art
481:      * @param $id_lang
482:      *
483:      * @return ArticleForumRightBottom
484:      */
485:     public function getForum($id_cat, $id_art, $id_lang) {
486:         $arrUsers = $this->_collection->getExistingforum();
487: 
488:         $arrforum = array();
489: 
490:         $this->_collection->getTreeLevel($id_cat, $id_art, $id_lang, $arrUsers, $arrforum);
491:         $result = array();
492:         $this->normalizeArray($arrforum, $result);
493: 
494:         $ret = $this->getMenu($result);
495: 
496:         return $ret;
497:     }
498: 
499:     /**
500:      * @param     $arrforum
501:      * @param     $result
502:      * @param int $level
503:      */
504:     protected function normalizeArray($arrforum, &$result, $level = 0) {
505:         if (is_array($arrforum)) {
506:             foreach ($arrforum as $key => $value) {
507:                 $value['level'] = $level;
508:                 unset($value['children']);
509:                 $result[$key] = $value;
510:                 $this->normalizeArray($arrforum[$key]['children'], $result, $level + 1);
511:             }
512:         }
513:     }
514: 
515:     /**
516:      * this function calls different actions depending on the received values
517:      * via $_POST oder $_GET.
518:      *
519:      * @param $get
520:      * @param $post
521:      * @throws Exception
522:      */
523:     public function receiveData(&$get, &$post) {
524:         if (isset($_REQUEST['action']) && $_REQUEST['action'] != NULL) {
525:             $this->switchActions();
526:         }
527:     }
528: 
529: 
530:     /**
531:      */
532:     public function getStartpage() {
533: 
534: 
535:         $cGuiNotification = new cGuiNotification();
536:         echo $cGuiNotification->returnNotification(cGuiNotification::LEVEL_INFO, UserForum::i18n('MODMODE'));
537:         echo '<br />';
538: 
539:         $comments = $this->_collection->getUnmoderatedComments();
540:         $this->getMenu($comments, 'mod');
541: 
542:     }
543: 
544: 
545:     /**
546:      * switch case action calling
547:      *
548:      * @throws Exception
549:      */
550:     protected function switchActions() {
551: 
552:         $lang = cRegistry::getLanguageId();
553:         $idart = $_REQUEST['idart'];
554:         $idcat = $_REQUEST['idcat'];
555:         $action = $_REQUEST["action"];
556:         $online = (isset($_REQUEST['onlineState'])) ? 1 : 0;
557: 
558: 
559:         switch ($action) {
560: 
561:             // after click on online button in std dialog
562:             case 'online_toggle':
563:                 $this->_collection->toggleOnlineState($_REQUEST['online'], $_REQUEST['id_user_forum'], $idart);
564: 
565:                 if(!isset($_REQUEST['mod'])) {
566:                     $this->getForum($idcat, $idart, $lang);
567:                 } else{
568:                     $this->getStartpage();
569:                 }
570: 
571:                 break;
572:             // after click on delete button in std dialog
573:             case 'deleteComment':
574:                 $this->_collection->deleteHierarchy($_REQUEST['key'], $_REQUEST['level'], $idart, $idcat, $lang);
575:                 $this->getForum($idcat, $idart, $lang);
576:                 break;
577:             // after click on save button in edit dialog
578:             case 'update':
579:                 $this->_collection->updateValues($_POST['id_user_forum'], $_POST['realname'], $_POST['email'], $_POST['like'], $_POST['dislike'], $_POST['forum'], $online);
580:                 if(!isset($_REQUEST['mod'])) {
581:                     $this->getForum($idcat, $idart, $lang);
582:                 } else{
583:                     $this->getStartpage();
584:                 }
585: 
586:                 break;
587:             case 'show_form':
588:                 // lists all comments from given articleId
589:                 $this->getForum($idcat, $idart, $lang);
590:                 break;
591:             case 'edit':
592:                 // shows edit mode for a comment
593:                 $this->getEditModeMenu($_POST);
594:                 break;
595:                 // cancel Button in edit dialog
596:             case 'back':
597:                 if(!isset($_REQUEST['mod'])) {
598:                     $this->getForum($idcat, $idart, $lang);
599:                 } else{
600:                     $this->getStartpage();
601:                 }
602: //                $this->getForum($idcat, $idart, $lang);
603:                 break;
604:             case 'empty':
605:                 // $this->getForum($idcat, $idart, $lang);
606:                 break;
607:             default:
608:                 $this->getForum($idcat, $idart, $lang);
609:                 throw new Exception('$_GET["action"] type ' . $_REQUEST["action"] . ' not implemented');
610:         }
611:     }
612: 
613: }
614: 
615: ?>
CMS CONTENIDO 4.9.7 API documentation generated by ApiGen