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 '';
}
Ejemplo n.º 3
0
 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;
 }
Ejemplo n.º 4
0
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;
}
Ejemplo n.º 5
0
        $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) {
Ejemplo n.º 6
0
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;
}