예제 #1
0
파일: tool.php 프로젝트: ircoco/BlackCatCMS
/**
 *
 **/
function manage_droplet_perms()
{
    global $parser, $settings, $val, $backend;
    $info = NULL;
    $groups = array();
    $rows = array();
    $this_user_groups = CAT_Users::get_groups_id();
    if (!CAT_Helper_Droplet::is_allowed('manage_droplet_perms', $this_user_groups)) {
        $backend->print_error($backend->lang()->translate("You don't have the permission to do this"));
    }
    $groups = CAT_Users::getGroups();
    if ($val->get('_REQUEST', 'save') || $val->get('_REQUEST', 'save_and_back')) {
        foreach ($settings as $key => $value) {
            if ($val->get('_REQUEST', $key)) {
                CAT_Helper_Droplet::updateDropletSettings($key, implode('|', $val->get('_REQUEST', $key)));
            }
        }
        // reload settings
        $settings = get_settings();
        $info = $backend->lang()->translate('Permissions saved');
        if ($val->get('_REQUEST', 'save_and_back')) {
            return list_droplets($info);
        }
    }
    foreach ($settings as $key => $value) {
        $line = array();
        foreach ($groups as $id => $name) {
            $line[] = '<input type="checkbox" name="' . $key . '[]" id="' . $key . '_' . $id . '" value="' . $id . '"' . (is_in_array($value, $id) ? ' checked="checked"' : NULL) . '>' . '<label for="' . $key . '_' . $id . '">' . $name . '</label>' . "\n";
        }
        $rows[] = array('groups' => implode('', $line), 'name' => $backend->lang()->translate($key));
    }
    // sort rows by permission name (=text)
    $array = CAT_Helper_Array::getInstance();
    $rows = $array->ArraySort($rows, 'name', 'asc', true);
    $parser->output('permissions', array('rows' => $rows, 'info' => $info));
}
예제 #2
0
파일: Page.php 프로젝트: ircoco/BlackCatCMS
 /**
  * determine default page
  *
  * @access public
  * @return void
  **/
 public static function getDefaultPage()
 {
     if (!count(self::$pages)) {
         self::init();
     }
     // for all pages with level 0...
     $root = array();
     $now = time();
     $ordered = CAT_Helper_Array::getInstance()->ArraySort(self::$pages, 'position');
     foreach ($ordered as $page) {
         if ($page['level'] == 0 && $page['visibility'] == 'public' && self::isActive($page['page_id'])) {
             if (!PAGE_LANGUAGES || $page['language'] == LANGUAGE) {
                 return $page['page_id'];
             }
         }
     }
 }
예제 #3
0
/**
 *
 **/
function getPagesList($fieldname, $selected, $add_empty = false)
{
    $pages_list = CAT_Helper_Page::getPages(CAT_Backend::isBackend());
    $deleted = CAT_Helper_Page::getPagesByVisibility('deleted');
    if (count($deleted)) {
        $arrh = CAT_Helper_Array::getInstance();
        foreach ($deleted as $page) {
            $arrh->ArrayRemove($page, $pages_list, 'page_id');
        }
    }
    if ($add_empty) {
        array_unshift($pages_list, array('page_id' => 0, 'parent' => 0, 'level' => 0, 'is_open' => false, 'menu_title' => CAT_Helper_Page::getInstance()->lang()->translate('[none (use internal)]')));
    }
    return CAT_Helper_ListBuilder::getInstance(true)->config(array('space' => '|-- '))->dropdown($fieldname, $pages_list, 0, $selected);
}
예제 #4
0
foreach ($users->get_groups_id() as $cur_gid) {
    if (in_array($cur_gid, $old_admin_groups)) {
        $in_old_group = true;
    }
}
if (!$in_old_group && !is_numeric(array_search($users->get_user_id(), $old_admin_users))) {
    $backend->print_error('You do not have permissions to modify this page');
}
//
// ! delete link
//
if ($val->sanitizeGet('del')) {
    list($lang, $page_id) = explode('_', $val->sanitizeGet('del'));
    CAT_Helper_Page::deleteLanguageLink($page_id, $lang);
}
$arrh = CAT_Helper_Array::getInstance();
// ===========================
// ! find already linked pages
// ===========================
$items = CAT_Helper_Page::getInstance($page_id)->getLinkedByLanguage($page_id);
// =========================
// ! get installed languages
// =========================
$addons = CAT_Helper_Addons::getInstance();
$avail = $addons->get_addons($page['language'], 'language');
// skip current lang
foreach ($avail as $i => &$l) {
    if ($l['VALUE'] == $page['language']) {
        unset($avail[$i]);
        break;
    }