示例#1
0
文件: UmScApp.php 项目: joegeck/cerb4
 public function getSituation()
 {
     @($sCode = DevblocksPlatform::importGPC($_REQUEST['portal'], 'string', ''));
     @($sReason = DevblocksPlatform::importGPC($_REQUEST['reason'], 'string', ''));
     $tool = DAO_CommunityTool::getByCode($sCode);
     $tpl = DevblocksPlatform::getTemplateService();
     $tpl_path = dirname(dirname(__FILE__)) . '/templates/';
     $settings = CerberusSettings::getInstance();
     $default_from = $settings->get(CerberusSettings::DEFAULT_REPLY_FROM);
     $tpl->assign('default_from', $default_from);
     $sDispatch = DAO_CommunityToolProperty::get($this->getPortal(), self::PARAM_DISPATCH, '');
     $dispatch = !empty($sDispatch) ? unserialize($sDispatch) : array();
     if (is_array($dispatch)) {
         foreach ($dispatch as $reason => $params) {
             if (md5($reason) == $sReason) {
                 $tpl->assign('situation_reason', $reason);
                 $tpl->assign('situation_params', $params);
                 break;
             }
         }
     }
     $groups = DAO_Group::getAll();
     $tpl->assign('groups', $groups);
     // Contact: Fields
     $ticket_fields = DAO_CustomField::getBySource('cerberusweb.fields.source.ticket');
     $tpl->assign('ticket_fields', $ticket_fields);
     $tpl->display("file:{$tpl_path}portal/sc/config/add_situation.tpl");
     exit;
 }
示例#2
0
 function saveCommunityToolAction()
 {
     @($code = DevblocksPlatform::importGPC($_POST['portal'], 'string'));
     @($name = DevblocksPlatform::importGPC($_POST['portal_name'], 'string', ''));
     @($iDelete = DevblocksPlatform::importGPC($_POST['do_delete'], 'integer', 0));
     UmPortalHelper::setCode($code);
     if (DEMO_MODE) {
         if ($iDelete) {
             DevblocksPlatform::redirect(new DevblocksHttpResponse(array('config', 'communities')));
         } else {
             self::getCommunityToolAction();
         }
         return;
     }
     if (null != ($instance = DAO_CommunityTool::getByCode($code))) {
         // Deleting?
         if (!empty($iDelete)) {
             $tool = DAO_CommunityTool::getByCode($code);
             /* @var $tool Model_CommunityTool */
             DAO_CommunityTool::delete($tool->id);
             DevblocksPlatform::redirect(new DevblocksHttpResponse(array('config', 'communities')));
             return;
         } else {
             $manifest = DevblocksPlatform::getExtension($instance->extension_id, false, true);
             $tool = $manifest->createInstance();
             /* @var $tool Extension_UsermeetTool */
             // Update the tool name if it has changed
             if (0 != strcmp($instance->name, $name)) {
                 DAO_CommunityTool::update($instance->id, array(DAO_CommunityTool::NAME => $name));
             }
             // Defer the rest to tool instances and extensions
             $tool->saveConfiguration();
         }
     }
     self::getCommunityToolAction();
 }
示例#3
0
文件: classes.php 项目: Hildy/cerb5
 /**
  * @param DevblocksHttpResponse $response
  */
 function writeResponse(DevblocksHttpResponse $response)
 {
     $stack = $response->path;
     $tpl = DevblocksPlatform::getTemplateService();
     // Globals for Community Tool template scope
     $translate = DevblocksPlatform::getTranslationService();
     $tpl->assign('translate', $translate);
     array_shift($stack);
     // portal
     $code = array_shift($stack);
     // xxxxxxxx
     if (null != ($tool = DAO_CommunityTool::getByCode($code))) {
         // [TODO] Don't double instance any apps (add instance registry to ::getExtension?)
         $manifest = DevblocksPlatform::getExtension($tool->extension_id, false, true);
         if (null != ($tool = $manifest->createInstance())) {
             /* @var $app Extension_UsermeetTool */
             $tool->writeResponse(new DevblocksHttpResponse($stack));
         }
     } else {
         die("Tool not found.");
     }
 }