protected function installPermissionsAndWorkflow() { $sx = simplexml_load_file(DIR_BASE_CORE . '/config/install/base/permissions.xml'); foreach ($sx->permissioncategories->category as $pkc) { $handle = (string) $pkc['handle']; $pkca = PermissionKeyCategory::getByHandle($handle); if (!is_object($pkca)) { $pkx = PermissionKeyCategory::add((string) $pkc['handle']); } } foreach ($sx->workflowprogresscategories->category as $pkc) { $handle = (string) $pkc['handle']; $pkca = WorkflowProgressCategory::getByHandle($handle); if (!is_object($pkca)) { $pkx = WorkflowProgressCategory::add((string) $pkc['handle']); } } foreach ($sx->workflowtypes->workflowtype as $wt) { $handle = (string) $wt['handle']; $name = (string) $wt['name']; $wtt = WorkflowType::getByHandle($handle); if (!is_object($wtt)) { $pkx = WorkflowType::add($handle, $name); } } if (isset($sx->permissionaccessentitytypes)) { foreach ($sx->permissionaccessentitytypes->permissionaccessentitytype as $pt) { $name = $pt['name']; if (!$name) { $name = Loader::helper('text')->unhandle($pt['handle']); } $handle = (string) $pt['handle']; $patt = PermissionAccessEntityType::getByHandle($handle); if (!is_object($patt)) { $type = PermissionAccessEntityType::add((string) $pt['handle'], $name); if (isset($pt->categories)) { foreach ($pt->categories->children() as $cat) { $catobj = PermissionKeyCategory::getByHandle((string) $cat['handle']); $catobj->associateAccessEntityType($type); } } } } } $txt = Loader::helper('text'); foreach ($sx->permissionkeys->permissionkey as $pk) { $pkc = PermissionKeyCategory::getByHandle((string) $pk['category']); $className = $txt->camelcase($pkc->getPermissionKeyCategoryHandle()); $c1 = $className . 'PermissionKey'; $handle = (string) $pk['handle']; $pka = PermissionKey::getByHandle($handle); if (!is_object($pka)) { $pkx = call_user_func(array($c1, 'import'), $pk); } } }
protected function importWorkflowTypes(SimpleXMLElement $sx) { if (isset($sx->workflowtypes)) { foreach($sx->workflowtypes->workflowtype as $wt) { $pkg = ContentImporter::getPackageObject($wt['package']); $name = $wt['name']; if (!$name) { $name = Loader::helper('text')->unhandle($wt['handle']); } $type = WorkflowType::add($wt['handle'], $name, $pkg); } } }