function xanth_view_mode_admin_view_mode_edit($hook_primary_id, $hook_secondary_id, $arguments)
{
    if (!xUser::check_current_user_access('manage view_mode')) {
        return xSpecialPage::access_denied();
    }
    if (empty($arguments[0])) {
        new xPageContent('Edit View Mode', 'Wich view mode should edit?');
    }
    $form = new xForm('?p=admin/view_mode/edit//' . $arguments[0]);
    $view_mode = xViewMode::get($arguments[0]);
    $form->elements[] = new xFormElementHidden('view_mode_id', 'View Mode', $arguments[0], FALSE, new xInputValidatorInteger());
    $form->elements[] = new xFormElementTextField('view_mode_name', 'Name', '', $view_mode->name, FALSE, new xInputValidatorTextNoTags(32));
    //view elements option
    $velems = xVisualElement::find_all();
    $voptions = array();
    foreach ($velems as $velem) {
        $voptions[$velem->name] = $velem->name;
    }
    $form->elements[] = new xFormElementTextArea('view_mode_procedure', 'Procedure', '', $view_mode->display_procedure, FALSE, new xInputValidatorText(NULL));
    $form->elements[] = new xFormSubmit('submit', 'submit');
    $ret = $form->validate_input();
    if (isset($ret->valid_data['submit'])) {
        if (empty($ret->errors)) {
            $view_mode->name = $ret->valid_data['view_mode_name'];
            $view_mode->display_procedure = $ret->valid_data['view_mode_procedure'];
            $view_mode->update();
            return new xPageContent('Edit View Mode', 'View mode modified');
        } else {
            foreach ($ret->errors as $error) {
                xanth_log(LOG_LEVEL_USER_MESSAGE, $error);
            }
        }
    }
    return new xPageContent('Edit View Mode', $form->render());
}
/**
*
*/
function xanth_settings_manage_settings($hook_primary_id, $hook_secondary_id, $arguments)
{
    if (!xUser::check_current_user_access('manage settings')) {
        return xSpecialPage::access_denied();
    }
    $form = new xForm('?p=admin/settings');
    $form->elements[] = new xFormElementTextField('site_name', 'Site name', '', xSettings::get('site_name'), FALSE, new xInputValidatorTextNoTags(256));
    $form->elements[] = new xFormElementTextField('site_description', 'Site description', '', xSettings::get('site_description'), FALSE, new xInputValidatorTextNoTags(512));
    $form->elements[] = new xFormElementTextField('site_keywords', 'Site keywords', '', xSettings::get('site_keywords'), FALSE, new xInputValidatorTextNoTags(128));
    $form->elements[] = new xFormElementTextField('site_theme', 'Site theme', '', xSettings::get('site_theme'), FALSE, new xInputValidatorTextNoTags(128));
    $form->elements[] = new xFormSubmit('submit', 'submit');
    $ret = $form->validate_input();
    if (isset($ret->valid_data['submit'])) {
        if (empty($ret->errors)) {
            xSettings::set('site_name', $ret->valid_data['site_name']);
            xSettings::set('site_description', $ret->valid_data['site_description']);
            xSettings::set('site_keywords', $ret->valid_data['site_keywords']);
            xSettings::set('site_theme', $ret->valid_data['site_theme']);
            xSettings::save();
            return new xPageContent('Manage settings', 'Settings updated');
        } else {
            foreach ($ret->errors as $error) {
                xanth_log(LOG_LEVEL_USER_MESSAGE, $error);
            }
        }
    }
    return new xPageContent('Manage settings', $form->render());
}
/**
*
*/
function xanth_entry_type_admin_entry_type_add($hook_primary_id, $hook_secondary_id, $arguments)
{
    if (!xUser::check_current_user_access('manage entry type')) {
        return xSpecialPage::access_denied();
    }
    //create form
    $form = new xForm('?p=admin/entry_type/add');
    $form->elements[] = new xFormElementTextField('entry_type_name', 'Name', '', '', TRUE, new xInputValidatorTextNameId(32));
    //view modes
    $modes = xViewMode::find_by_element('entry');
    $options = array();
    $options['[theme default]'] = '0';
    foreach ($modes as $mode) {
        $options[$mode->name] = $mode->id;
    }
    $form->elements[] = new xFormElementOptions('entry_type_view_mode', 'View mode', '', '', $options, FALSE, FALSE, new xInputValidatorInteger());
    //submit buttom
    $form->elements[] = new xFormSubmit('submit', 'Add');
    $ret = $form->validate_input();
    if (isset($ret->valid_data['submit'])) {
        if (empty($ret->errors)) {
            $entry_type = new xEntryType($ret->valid_data['entry_type_name'], $ret->valid_data['entry_type_view_mode']);
            $entry_type->insert();
            return new xPageContent('Entry type created', 'Entry type created');
        } else {
            foreach ($ret->errors as $error) {
                xanth_log(LOG_LEVEL_USER_MESSAGE, $error);
            }
        }
    }
    return new xPageContent('Create entry', $form->render());
}
function xanth_box_admin_box($hook_primary_id, $hook_secondary_id, $arguments)
{
    if (!xUser::check_current_user_access('manage box')) {
        return xSpecialPage::access_denied();
    }
    $boxes = xBox::find_all();
    $output = "<table>\n";
    $output .= "<tr><th>Name</th><th>Title</th><th>Content format</th><th>Area</th><th>Edit</th><th>Delete</th></tr>\n";
    foreach ($boxes as $box) {
        $output .= "<tr><td>" . $box->name . "</td><td>" . $box->title . "</td><td>" . $box->content_format . "</td>\r\n\t\t<td>" . $box->area . "</td><td>Edit</td><td>Delete</td></tr>";
    }
    $output .= "</table>\n";
    return new xPageContent('Admin Boxes', $output);
}
function xanth_category_admin_category_create($hook_primary_id, $hook_secondary_id, $arguments)
{
    if (!xUser::check_current_user_access('manage category')) {
        return xSpecialPage::access_denied();
    }
    //create form
    $form = new xForm('?p=admin/category/create');
    $form->elements[] = new xFormElementTextField('cat_title', 'Title', '', '', TRUE, new xInputValidatorTextNoTags(256));
    $form->elements[] = new xFormElementTextArea('cat_description', 'Description', '', '', TRUE, new xInputValidatorText(-1));
    //types
    $types = xEntryType::find_all();
    $options = array();
    foreach ($types as $type) {
        $options[$type->name] = $type->name;
    }
    $form->elements[] = new xFormElementOptions('entry_types', 'Select type', '', '', $options, TRUE, TRUE, new xInputValidatorTextNameId(32));
    //parent category
    $categories = xCategory::find_all();
    $options = array();
    $options['[no parent]'] = '0';
    foreach ($categories as $category) {
        $options[$category->title] = $category->id;
    }
    $form->elements[] = new xFormElementOptions('parent_category', 'Parent category', '', '', $options, FALSE, FALSE, new xInputValidatorInteger());
    //view modes
    $modes = xViewMode::find_by_element('category');
    $options = array();
    $options['[theme default]'] = '0';
    foreach ($modes as $mode) {
        $options[$mode->name] = $mode->id;
    }
    $form->elements[] = new xFormElementOptions('category_view_mode', 'View mode', '', '', $options, FALSE, FALSE, new xInputValidatorInteger());
    //submit buttom
    $form->elements[] = new xFormSubmit('submit', 'Create');
    $ret = $form->validate_input();
    if (isset($ret->valid_data['submit'])) {
        if (empty($ret->errors)) {
            $cat = new xCategory(NULL, $ret->valid_data['cat_title'], $ret->valid_data['entry_types'], $ret->valid_data['cat_description'], $ret->valid_data['category_view_mode'], $ret->valid_data['parent_category']);
            $cat->insert();
            return new xPageContent('Category created', 'Category created');
        } else {
            foreach ($ret->errors as $error) {
                xanth_log(LOG_LEVEL_USER_MESSAGE, $error);
            }
        }
    }
    return new xPageContent('Create category', $form->render());
}
function xanth_theme_admin_theme_area($hook_primary_id, $hook_secondary_id, $arguments)
{
    if (!xUser::check_current_user_access('manage theme')) {
        return xSpecialPage::access_denied();
    }
    $areas = xThemeArea::find_all();
    $output = "<table>\n";
    $output .= "<tr><th>Name</th><th>View Mode</th><th>Edit</th><th>Delete</th></tr>\n";
    foreach ($areas as $area) {
        $v = xViewMode::get($area->view_mode);
        if ($v === NULL) {
            $vname = 'Theme Default';
        } else {
            $vname = $v->name;
        }
        $output .= "<tr><td>" . $area->name . '</td><td>' . $vname . '</td><td>Edit</td><td>Delete</td></tr>';
    }
    $output .= "</table>\n";
    return new xPageContent('Admin area', $output);
}
function xanth_entry_admin_entry($hook_primary_id, $hook_secondary_id, $arguments)
{
    if (!xUser::check_current_user_access('edit entry')) {
        return xSpecialPage::access_denied();
    }
    $entries = xEntry::find_all();
    $output = "<table>\n";
    $output .= "<tr><th>Id</th><th>Title</th><th>Edit</th><th>Delete</th></tr>\n";
    foreach ($entries as $entry) {
        $output .= "<tr><td>" . $entry->id . "</td><td>" . $entry->title . "</td><td>Edit</td><td>Delete</td></tr>";
    }
    $output .= "</table>\n";
    return new xPageContent('Admin entries', $output);
}