helpLocation, null, true); //var_dump($help_path); if (PEAR::isError($help_path) || empty($help_path['external'])) { if ($can_edit) { // give it a go. $aHelpInfo = KTHelp::getHelpInfo($this->helpLocation); if (PEAR::isError($aHelpInfo)) { // otherwise, fail out. $aHelpInfo = array( 'title' => _kt('Welcome message'), 'body' => _kt('Since you are a system administrator, you can see this message. Please click "edit" below here to create some welcome content, since there is no welcome content available in your language.'), ); } } else { return false; } } else { // We now check for substitute help files. try to generate an error. $aHelpInfo = KTHelp::getHelpInfo($this->helpLocation); } // NORMAL users never see edit-option. if (!$can_edit) { if (empty($aHelpInfo)) { return false; } } $this->aHelpInfo = $aHelpInfo; $this->canEdit = $can_edit; return true; } function render() { $oTemplating =& KTTemplating::getSingleton(); $oTemplate = $oTemplating->loadTemplate("ktcore/dashlets/kt3release"); $aTemplateData = array( 'title' => $this->aHelpInfo['title'], 'body' => $this->aHelpInfo['body'], 'can_edit' => $this->canEdit, 'target_name' => $this->helpLocation, 'help_id' => $this->aHelpInfo['help_id'], ); return $oTemplate->render($aTemplateData); } } class KTNotificationDashlet extends KTBaseDashlet { var $oUser; function is_active($oUser) { $this->oUser = $oUser; return true; } function render() { $notifications = KTNotification::getList(array("user_id = ?", $this->oUser->getId())); $num_notifications = count($notifications); $_MAX_NOTIFICATIONS = 5; // FIXME in lieu of pagination, we slice. if ($num_notifications > $_MAX_NOTIFICATIONS) { $notifications = array_slice($notifications, 0, $_MAX_NOTIFICATIONS); } $oTemplating =& KTTemplating::getSingleton(); $oTemplate = $oTemplating->loadTemplate("ktcore/dashlets/notifications"); $aTemplateData = array( "notifications" => $notifications, "notification_count" => $num_notifications, "visible_count" => count($notifications), ); return $oTemplate->render($aTemplateData); } } // replace the old checked-out docs. class KTCheckoutDashlet extends KTBaseDashlet { var $oUser; function is_active($oUser) { $this->oUser = $oUser; return true; } function getDocumentLink($oDocument) { return generateControllerLink('viewDocument', 'fDocumentId=' . $oDocument->getId()); } function render() { $checked_out_documents = Document::getList(array("checked_out_user_id = ?", $this->oUser->getId())); if (empty($checked_out_documents)) { return null; } $oTemplating =& KTTemplating::getSingleton(); $oTemplate = $oTemplating->loadTemplate("ktcore/dashlets/checkedout"); $aTemplateData = array( "context" => $this, "documents" => $checked_out_documents, ); return $oTemplate->render($aTemplateData); } } // replace the old checked-out docs. class KTIndexerStatusDashlet extends KTBaseDashlet { function is_active($oUser) { if (Permission::userIsSystemAdministrator($oUser)) { return true; } return false; } function render() { require_once(KT_LIB_DIR . '/triggers/triggerregistry.inc.php'); $noTransforms = false; $oKTTriggerRegistry = KTTriggerRegistry::getSingleton(); $aTriggers = $oKTTriggerRegistry->getTriggers('content', 'transform'); $aTriggerSet = array(); if (empty($aTriggers)) { $noTransforms = true; } else { foreach ($aTriggers as $aTrigger) { $sTrigger = $aTrigger[0]; if ($aTrigger[1]) { require_once($aTrigger[1]); } $oTrigger = new $sTrigger; $sDiagnostic = $oTrigger->getDiagnostic(); // empty is OK. if (is_null($sDiagnostic) || ($sDiagnostic == false)) { continue; } $aTypes = (array) $oTrigger->mimetypes; $aTypesStr = array(); foreach ($aTypes as $sTypeName => $v) { //if ($sTypeName != 'application/octet-stream') { // never use application/octet-stream $aTypesStr[KTMime::getFriendlyNameForString($sTypeName)] = 1; //} } $aTriggerSet[] = array('types' => $aTypesStr, 'diagnostic' => $sDiagnostic); } } $oTemplating =& KTTemplating::getSingleton(); $oTemplate = $oTemplating->loadTemplate("ktcore/dashlets/indexer_status"); $aTemplateData = array( "context" => $this, "no_transforms" => $noTransforms, 'transforms' => $aTriggerSet, ); return $oTemplate->render($aTemplateData); } } // replace the old checked-out docs. class KTMailServerDashlet extends KTBaseDashlet { function is_active($oUser) { $oConfig =& KTConfig::getSingleton(); $sEmailServer = $oConfig->get('email/emailServer'); if ($sEmailServer == 'none') { return true; } if (empty($sEmailServer)) { return true; } return false; } function render() { $oTemplating =& KTTemplating::getSingleton(); $oTemplate = $oTemplating->loadTemplate("ktcore/dashlets/mailserver"); $admin = Permission::userIsSystemAdministrator($_SESSION['userID']); $aTemplateData = array( "context" => $this, 'admin' => $admin, ); return $oTemplate->render($aTemplateData); } } ?>