function module_category_transition($mod_reference, $module_params) { global $smarty, $cat_type, $cat_objid, $modlib; if ($cat_type && $cat_objid) { $smarty->assign('objType', $cat_type); $smarty->assign('objId', $cat_objid); require_once 'lib/transitionlib.php'; $transitionlib = new TransitionLib('category'); if (isset($_POST['transition'])) { $transitionlib->triggerTransition($_POST['transition'], $cat_objid, $cat_type); header('Location: ' . $_SERVER['REQUEST_URI']); exit; } $transitions = $transitionlib->getAvailableTransitions($cat_objid, $cat_type); $smarty->assign('mod_transitions', $transitions); } else if ($modlib->is_admin_mode(true)) { // add a dummy transition to display on the module admin page $smarty->assign( 'mod_transitions', array(array( 'enabled' => true, 'transitionId' => 0, 'name' => tra('Example Transition') )) ); } }
function wikiplugin_categorytransition($data, $params) { global $smarty; extract($params, EXTR_SKIP); if (empty($redirect)) { $redirect = $_SERVER['REQUEST_URI']; } if ($objType && $objId) { $smarty->assign('objType', $objType); $smarty->assign('objId', $objId); require_once 'lib/transitionlib.php'; $transitionlib = new TransitionLib('category'); if (isset($_POST['wp_transition']) && $_POST['wp_transition_obj'] == $objType . ':' . $objId) { $transitionlib->triggerTransition($_POST['wp_transition'], $objId, $objType); header('Location: ' . $redirect); exit; } $transitions = $transitionlib->getAvailableTransitions($objId, $objType); if (!$transitions) { return ''; } $smarty->assign('wp_transitions', $transitions); $smarty->assign('wp_transition_obj', $objType . ':' . $objId); $out = $smarty->fetch('wiki-plugins/wikiplugin_categorytransition.tpl'); return '~np~' . $out . '~/np~'; } return ''; }
function _install() { require_once 'lib/transitionlib.php'; $data = $this->getData(); $this->replaceReferences($data); $transitionlib = new TransitionLib($data['type']); $id = $transitionlib->addTransition($data['from'], $data['to'], $data['name'], $data['preserve'] == 'y', $data['guards']); return $id; }
function wikiplugin_memberlist_get_group_details($groups) { global $user, $prefs; $validGroups = array(); foreach ($groups as $groupName) { $perms = Perms::get(array('type' => 'group', 'object' => $groupName)); if ($perms->group_view) { $isMember = in_array($groupName, $perms->getGroups()); $validGroups[$groupName] = array('can_join' => $perms->group_join && !$isMember && $user, 'can_leave' => $perms->group_join && $isMember && $user, 'can_add' => $perms->group_add_member, 'can_remove' => $perms->group_remove_member, 'is_member' => $isMember); if ($perms->group_view_members) { $validGroups[$groupName]['members'] = wikiplugin_memberlist_get_members($groupName); if ($prefs['feature_group_transition']) { require_once 'lib/transitionlib.php'; $transitionlib = new TransitionLib('group'); $validGroups[$groupName]['transitions'] = array(); foreach ($validGroups[$groupName]['members'] as $username) { $validGroups[$groupName]['transitions'][$username] = $transitionlib->getAvailableTransitionsFromState($groupName, $username); } } } } } return $validGroups; }
$transitionlib = new TransitionLib($transition_mode); $selected_transition = $transitionlib->getTransition((int) $_REQUEST['transitionId']); unset($selected_transition['guards'][(int) $_REQUEST['guard']]); $selected_transition['guards'] = array_values($selected_transition['guards']); $transitionlib->updateGuards((int) $selected_transition['transitionId'], $selected_transition['guards']); break; case 'remove': $transitionlib = new TransitionLib($transition_mode); check_ticket('remove_transition'); $transitionlib->removeTransition($_REQUEST['transitionId']); break; } // Obtain data $categories = $categlib->getCategories(); $cat_tree = $categlib->generate_cat_tree($categories, true, array_keys($available_states)); $transitionlib = new TransitionLib($transition_mode); $transitions = $transitionlib->listTransitions(array_keys($available_states)); if ($selected_transition) { // When a transition is selected, make sure all of its endpoints are listed in the edit panel $to_add = array($selected_transition['from'], $selected_transition['to']); foreach ($selected_transition['guards'] as $guard) { $to_add = array_merge($to_add, $guard[2]); } } foreach ($transitions as &$trans) { $trans['from_label'] = transition_label_finder($trans['from']); $trans['to_label'] = transition_label_finder($trans['to']); } // Setup Smarty & Session $_SESSION['transition'] = array('mode' => $transition_mode, 'states' => $available_states); foreach ($to_add as $v) {
function wikiplugin_memberlist_get_group_details($groups, $maxRecords = -1, $sort_mode = 'login_asc', $readOnly = false) { global $user, $prefs, $userlib; $validGroups = array(); foreach ($groups as $groupName) { if (!$userlib->group_exists($groupName)) { continue; } $perms = Perms::get(array('type' => 'group', 'object' => $groupName)); if ($perms->group_view) { $isMember = in_array($groupName, $perms->getGroups()); $validGroups[$groupName] = array('can_join' => $perms->group_join && !$isMember && $user && !$readOnly, 'can_leave' => $perms->group_join && $isMember && $user && !$readOnly, 'can_add' => $perms->group_add_member && !$readOnly, 'can_remove' => $perms->group_remove_member && !$readOnly, 'is_member' => $isMember); if ($perms->group_view_members) { $validGroups[$groupName]['members'] = wikiplugin_memberlist_get_members($groupName, $maxRecords, $sort_mode); if ($prefs['feature_group_transition'] == 'y') { require_once 'lib/transitionlib.php'; $transitionlib = new TransitionLib('group'); $validGroups[$groupName]['transitions'] = array(); foreach ($validGroups[$groupName]['members'] as $username) { $validGroups[$groupName]['transitions'][$username] = $transitionlib->getAvailableTransitionsFromState($groupName, $username); } } if (!empty($user)) { $validGroups[$groupName]['isWatching'] = TikiLib::lib('tiki')->user_watches($user, 'user_joins_group', $groupName, 'group') > 0; } else { $validGroups[$groupName]['isWatching'] = false; } } } } return $validGroups; }