/** * */ 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_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_user_user_login($hook_primary_id, $hook_secondary_id, $arguments) { $form = new xForm('?p=user/login'); $form->elements[] = new xFormElementTextField('username', 'Username', '', '', TRUE, new xInputValidatorText(256)); $form->elements[] = new xFormElementPassword('password', 'Password', '', TRUE, new xInputValidatorText(256)); $form->elements[] = new xFormSubmit('submit', 'login'); $ret = $form->validate_input(); if (isset($ret->valid_data['submit'])) { if (empty($ret->errors)) { $user = new xUser('', $ret->valid_data['username']); if ($user->login($ret->valid_data['password'], TRUE)) { return new xPageContent("User login", 'Logged in'); } } else { foreach ($ret->errors as $error) { xanth_log(LOG_LEVEL_USER_MESSAGE, $error); } } } return new xPageContent("User login", $form->render()); }
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_theme_admin_theme_edit($hook_primary_id, $hook_secondary_id, $arguments) { if (!xUser::check_current_user_access('manage theme')) { return xSpecialPage::access_denied(); } if (empty($arguments[0])) { new xPageContent('Edit Theme', 'Wich theme should edit?'); } $form = new xForm('?p=admin/theme/edit//' . $arguments[0]); $form->elements[] = new xFormElementHidden('theme_name', 'Theme Name', $arguments[0], FALSE, new xInputValidatorTextNameId(32)); //iterate every registered visual element $edit_theme = xTheme::get($arguments[0]); $visual_elements = xVisualElement::find_all(); foreach ($visual_elements as $visual_element) { //now iterate every registered view mode $view_modes = xViewMode::find_by_element($visual_element->name); $options = array(); $default = ''; foreach ($view_modes as $view_mode) { $options[$view_mode->name] = $view_mode->id; if (isset($edit_theme->themed_elements[$visual_element->name])) { $default = $edit_theme->themed_elements[$visual_element->name]; } elseif ($view_mode->default_for_element) { $default = $view_mode->id; } } $form->elements[] = new xFormElementHidden('visual_elements', 'Visual elements', $visual_element->name, TRUE, new xInputValidatorTextNameId(32)); $form->elements[] = new xFormElementOptions('view_mode_' . $visual_element->name, 'View Mode for v.e. ' . $visual_element->name, '', $default, $options, FALSE, FALSE, new xInputValidatorInteger()); } $form->elements[] = new xFormSubmit('submit', 'submit'); $ret = $form->validate_input(); if (isset($ret->valid_data['submit'])) { if (empty($ret->errors)) { //process form $themed_elements = array(); foreach ($ret->valid_data['visual_elements'] as $vename) { $themed_elements[$vename] = $ret->valid_data['view_mode_' . $vename]; } $theme = new xTheme($ret->valid_data['theme_name'], $themed_elements); $theme->update(); return new xPageContent('Edit Theme', 'Theme Edited'); } else { foreach ($ret->errors as $error) { xanth_log(LOG_LEVEL_USER_MESSAGE, $error); } } } return new xPageContent('Edit Theme', $form->render()); }
function xanth_entry_admin_entry_create($hook_primary_id, $hook_secondary_id, $arguments) { if (!xUser::check_current_user_access('create entry')) { return xSpecialPage::access_denied(); } //create form $form = new xForm('?p=admin/entry/create'); //types $types = xEntryType::find_all(); $options = array(); foreach ($types as $type) { $options[$type->name] = $type->name; } $form->elements[] = new xFormElementOptions('entry_type', 'Select type', '', '', $options, FALSE, TRUE, new xInputValidatorTextNameId(32)); //title $form->elements[] = new xFormElementTextField('content_title', 'Title', '', '', TRUE, new xInputValidatorTextNoTags(256)); //body $form->elements[] = new xFormElementTextArea('content_body', 'Body', '', '', TRUE, new xInputValidatorText(256)); //content formats $content_formats = xContentFormat::find_all(); $content_formats_radio_group = new xFormRadioGroup(array(), 'Content format'); foreach ($content_formats as $content_format) { $content_formats_radio_group->elements[] = new xFormElementRadio('content_format', $content_format->name, $content_format->description, $content_format->name, FALSE, TRUE, new xInputValidatorText(64)); } $content_formats_radio_group->elements[0]->checked = TRUE; $form->elements[] = $content_formats_radio_group; //categories $categories = xCategory::find_all(); $options = array(); foreach ($categories as $category) { $options[$category->title] = $category->id; } $form->elements[] = new xFormElementOptions('entry_categories', 'Categories', '', '', $options, TRUE, FALSE, new xInputValidatorInteger()); //parameters $parameters = new xFormGroup(array(), 'Parameters'); $parameters->elements[] = new xFormElementCheckbox('param_published', 'Published', '', '1', TRUE, FALSE, new xInputValidatorInteger()); $form->elements[] = $parameters; //metadata $metadata = new xFormGroup(array(), 'Metadata'); $metadata->elements[] = new xFormElementTextField('meta_description', 'Description', '', '', FALSE, new xInputValidatorTextNoTags(512)); $metadata->elements[] = new xFormElementTextField('meta_keywords', 'Keywords', '', '', FALSE, new xInputValidatorTextNoTags(128)); $form->elements[] = $metadata; //submit buttom $form->elements[] = new xFormSubmit('submit', 'Create'); $ret = $form->validate_input(); if (isset($ret->valid_data['submit'])) { if (empty($ret->errors)) { //no error,lets create the entry $author = xUser::get_current_username() !== NULL ? xUser::get_current_username() : 'anonymous'; //translate categories $cat_ids = $ret->valid_data['entry_categories']; $categories = array(); if (!empty($cat_ids)) { foreach ($cat_ids as $cat_id) { $categories[] = new xCategory($cat_id); } } $entry = new xEntry(NULL, $ret->valid_data['content_title'], $ret->valid_data['entry_type'], $author, $ret->valid_data['content_body'], $ret->valid_data['content_format'], $ret->valid_data['param_published'], $ret->valid_data['meta_description'], $ret->valid_data['meta_keywords'], $categories); $entry->insert(); return new xPageContent('Entry created', 'Entry created, <a href="?p=entry//' . $entry->id . '">view it</a>'); } else { foreach ($ret->errors as $error) { xanth_log(LOG_LEVEL_USER_MESSAGE, $error); } } } return new xPageContent('Create entry', $form->render()); }