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; }
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(); }
/** * @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."); } }