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 render()
 {
     //retrieve view mode
     $type = xEntryType::get($this->type);
     if ($type->view_mode_id === NULL) {
         //apply theme default
         $theme = xTheme::get_default();
         return eval($theme->get_view_mode_procedure('entry'));
     } else {
         //apply specified view mode
         $view_mode = xViewMode::get($type->view_mode_id);
         return eval($view_mode->display_procedure);
     }
 }
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 render($boxes, $page_content)
 {
     if ($this->view_mode === NULL) {
         //apply theme default
         $theme = xTheme::get_default();
         return eval($theme->get_view_mode_procedure('area'));
     } else {
         //apply specified view mode
         $view_mode = xViewMode::get($this->view_mode);
         return eval($view_mode->display_procedure);
     }
 }