decir/admincp/admin_forums.php
author Dan
Tue, 13 Nov 2007 19:39:50 -0500
changeset 6 3f66ec435f08
child 7 37387f84fe25
permissions -rw-r--r--
Some basic admin implemented
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
     1
<?php
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
     2
/*
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
     3
 * Decir
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
     4
 * Version 0.1
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
     5
 * Copyright (C) 2007 Dan Fuhry
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
     6
 * admin_forums.php - forum creation and management frontend
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
     7
 *
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
     8
 * This program is Free Software; you can redistribute and/or modify it under the terms of the GNU General Public License
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
     9
 * as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    10
 *
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    11
 * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    12
 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for details.
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    13
 */
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    14
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    15
$decir_menu['DecirForums'] = 'Manage forums';
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    16
require( DECIR_ROOT . '/constants.php' );
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    17
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    18
function page_Admin_DecirForums()
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    19
{
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    20
  global $db, $session, $paths, $template, $plugins; // Common objects
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    21
  if ( $session->auth_level < USER_LEVEL_ADMIN || $session->user_level < USER_LEVEL_ADMIN )
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    22
  {
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    23
    echo '<h3>Error: Not authenticated</h3><p>It looks like your administration session is invalid or you are not authorized to access this administration page. Please <a href="' . makeUrlNS('Special', 'Login/' . $paths->nslist['Special'] . 'Administration', 'level=' . USER_LEVEL_ADMIN, true) . '">re-authenticate</a> to continue.</p>';
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    24
    return;
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    25
  }
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    26
  
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    27
  $show_main_menu = true;
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    28
  
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    29
  if ( isset($_POST['act']) )
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    30
  {
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    31
    switch ( $_POST['act'] )
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    32
    {
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    33
      case "create":
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    34
      case "create_finish":
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    35
        
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    36
        // Do we have any categories yet?
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    37
        $q = $db->sql_query('SELECT forum_id, forum_name FROM ' . table_prefix . 'decir_forums WHERE forum_type = ' . FORUM_CATEGORY . ';');
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    38
        if ( !$q )
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    39
          $db->_die('Decir admin_forums.php retrieving category count');
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    40
        $need_category = ( $db->numrows() < 1 );
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    41
        $cats = array();
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    42
        if ( !$need_category )
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    43
        {
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    44
          while ( list($cat_id, $cat_name) = $db->fetchrow_num() )
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    45
          {
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    46
            $cats[ $cat_id ] = $cat_name;
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    47
          }
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    48
        }
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    49
        
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    50
        $db->free_result();
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    51
        
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    52
        if ( $_POST['act'] == 'create_finish' )
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    53
        {
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    54
          $errors = array();
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    55
          $forum_type = intval($_POST['forum_type']);
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    56
          if ( $forum_type != FORUM_FORUM && $forum_type != FORUM_CATEGORY )
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    57
            $errors[] = 'Invalid forum type. <tt>X.X</tt>';
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    58
          $forum_name = trim($_POST['forum_name']);
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    59
          if ( empty($forum_name) )
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    60
            $errors[] = 'Please enter a name for this forum.';
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    61
          $forum_desc = '';
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    62
          $forum_parent = 0;
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    63
          if ( $forum_type == FORUM_FORUM )
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    64
          {
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    65
            $forum_desc = trim($_POST['forum_desc']);
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    66
            if ( empty($forum_desc) )
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    67
              $errors[] = 'Please enter a description for this forum.';
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    68
            $forum_parent = intval($_POST['forum_parent']);
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    69
            if ( !isset($cats[$forum_parent]) )
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    70
              $errors[] = 'Invalid parent category';
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    71
          }
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    72
          if ( count($errors) > 0 )
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    73
          {
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    74
            // Errors encountered - bounce form back to the user
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    75
            $show_main_menu = false;
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    76
            $form = new Decir_Admin_SmartForm_Forum(DECIR_ADMIN_MODE_CREATE);
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    77
            $form->forum_name = $forum_name;
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    78
            $form->forum_desc = $forum_desc;
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    79
            $form->forum_type = $forum_type;
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    80
            $form->need_category = $need_category;
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    81
            $form->category_list = $cats;
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    82
            echo $form->html();
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    83
            break;
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    84
          }
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    85
          // All checks passed. Create forum.
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    86
          $forum_name_db = $db->escape($forum_name);
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    87
          $forum_desc_db = $db->escape($forum_desc);
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    88
          $sql = 'INSERT INTO ' . table_prefix . "decir_forums(forum_name, forum_desc, forum_type, parent, num_topics, num_posts) VALUES\n"
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    89
                 . "  ( '$forum_name_db', '$forum_desc_db', $forum_type, $forum_parent, 0, 0 );";
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    90
          if ( $db->sql_query($sql) )
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    91
          {
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    92
            $forum_name = htmlspecialchars($forum_name);
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    93
            $type = ( $forum_type == FORUM_FORUM ) ? 'forum' : 'category';
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    94
            echo "<div class=\"info-box\">The {$type} \"{$forum_name}\" has been created successfully.</div>";
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    95
          }
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    96
          break;
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    97
        }
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    98
        // Create a smartform
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
    99
        $show_main_menu = false;
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   100
        $form = new Decir_Admin_SmartForm_Forum(DECIR_ADMIN_MODE_CREATE);
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   101
        $form->need_category = $need_category;
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   102
        $form->category_list = $cats;
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   103
        echo $form->html();
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   104
        break;
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   105
    }
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   106
  }
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   107
  
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   108
  if ( $show_main_menu )
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   109
  {
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   110
    // Display the main forum admin interface
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   111
    $form_url = makeUrlNS('Special', 'DecirAdmin', "module={$paths->nslist['Admin']}DecirForums", true);
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   112
    echo "<form action=\"$form_url\" method=\"post\" enctype=\"multipart/form-data\">";
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   113
    echo '<div class="tblholder">
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   114
            <table border="0" cellspacing="1" cellpadding="4">
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   115
              <tr>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   116
                <th colspan="4">Forum administration</th>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   117
              </tr>';
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   118
    // Select and display all forums
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   119
    $q = $db->sql_unbuffered_query('SELECT forum_id, forum_name, forum_type FROM ' . table_prefix . 'decir_forums ORDER BY ( forum_type = ' . FORUM_CATEGORY . ' ) DESC, forum_order;');
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   120
    
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   121
    if ( !$q )
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   122
      $db->_die('Decir admin_forums.php selecting main forum datum');
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   123
    
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   124
    if ( $row = $db->fetchrow() )
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   125
    {
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   126
      do
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   127
      {
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   128
      }
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   129
      while ( $row = $db->fetchrow() );
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   130
    }
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   131
    else
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   132
    {
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   133
      echo '<td colspan="4" class="row3">There are no forums on this board.</td>';
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   134
    }
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   135
    
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   136
    // Create forum button
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   137
    echo '    <tr>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   138
                <th class="subhead">
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   139
                  <button name="act" value="create">Create new forum</button>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   140
                </th>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   141
              </tr>';
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   142
    
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   143
    echo '  </table>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   144
          </div>';
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   145
    echo "</form>";
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   146
  }
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   147
}
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   148
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   149
/**
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   150
 * Smart form for creating and editing Decir forums.
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   151
 * @package Decir
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   152
 * @subpackage Administration
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   153
 * @copyright 2007 Dan Fuhry
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   154
 * @license GPL
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   155
 */
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   156
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   157
class Decir_Admin_SmartForm_Forum
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   158
{
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   159
  
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   160
  /**
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   161
   * Whether we are creating or editing a forum.
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   162
   * @var int
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   163
   */
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   164
  
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   165
  var $form_mode;
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   166
  
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   167
  /**
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   168
   * The name of the forum - only used in edit mode.
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   169
   * @var string
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   170
   */
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   171
  
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   172
  var $forum_name = '';
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   173
  
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   174
  /**
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   175
   * The description of the forum - only used in edit mode.
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   176
   * @var string
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   177
   */
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   178
  
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   179
  var $forum_desc = '';
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   180
  
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   181
  /**
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   182
   * The type of entry this is (forum or category)
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   183
   * @var int
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   184
   */
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   185
  
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   186
  var $forum_type = -1;
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   187
  
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   188
  /**
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   189
   * Track if we need to make the user create a category as opposed to a forum.
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   190
   * @var bool
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   191
   */
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   192
  
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   193
  var $need_category = false;
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   194
  
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   195
  /**
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   196
   * The list of categories on the site.
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   197
   * @var array
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   198
   */
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   199
  
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   200
  var $category_list = array();
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   201
  
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   202
  /**
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   203
   * Instance ID for javascripting
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   204
   * @var string
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   205
   */
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   206
  
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   207
  var $instance_id;
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   208
  
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   209
  /**
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   210
   * Constructor
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   211
   * @param int Form type - should be DECIR_ADMIN_MODE_CREATE or DECIR_ADMIN_MODE_EDIT
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   212
   */
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   213
  
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   214
  function __construct($form_mode)
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   215
  {
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   216
    global $db, $session, $paths, $template, $plugins; // Common objects
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   217
    $form_mode = intval($form_mode);
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   218
    if ( $form_mode != DECIR_ADMIN_MODE_CREATE && $form_mode != DECIR_ADMIN_MODE_EDIT )
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   219
      die('Syntax error: $form_mode to Decir_Admin_SmartForm_Forum::__construct should be DECIR_ADMIN_MODE_CREATE or DECIR_ADMIN_MODE_EDIT.');
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   220
    
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   221
    $this->form_mode = $form_mode;
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   222
    $this->instance_id = $session->dss_rand();
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   223
  }
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   224
  
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   225
  /**
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   226
   * PHP4 compatibility constructor.
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   227
   * @see Decir_Admin_SmartForm_Forum::__construct
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   228
   */
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   229
  
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   230
  function Decir_Admin_SmartForm_Forum($form_type)
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   231
  {
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   232
    $this->__construct($form_type);
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   233
  }
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   234
  
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   235
  /**
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   236
   * Render the form into HTML.
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   237
   * @return string
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   238
   */
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   239
  
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   240
  function html()
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   241
  {
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   242
    global $db, $session, $paths, $template, $plugins; // Common objects
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   243
    $f_f = FORUM_FORUM;
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   244
    $f_c = FORUM_CATEGORY;
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   245
    $tpl_code = <<<EOF
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   246
        <!-- Start forum creation/edit smartform {INSTANCE_ID} -->
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   247
        
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   248
        <script type="text/javascript">
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   249
        
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   250
          function set_form_type_category_{INSTANCE_ID}()
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   251
          {
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   252
            document.getElementById('type_category_{INSTANCE_ID}').style.display = 'block';
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   253
            document.getElementById('type_forum_{INSTANCE_ID}').style.display = 'none';
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   254
          }
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   255
          
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   256
          function set_form_type_forum_{INSTANCE_ID}()
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   257
          {
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   258
            document.getElementById('type_category_{INSTANCE_ID}').style.display = 'none';
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   259
            document.getElementById('type_forum_{INSTANCE_ID}').style.display = 'block';
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   260
          }
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   261
          var set_form_type_auto_{INSTANCE_ID} = function()
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   262
          {
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   263
            if ( document.getElementById('radio_forum_{INSTANCE_ID}').checked )
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   264
            {
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   265
              set_form_type_forum_{INSTANCE_ID}();
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   266
            }
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   267
            else if ( document.getElementById('radio_category_{INSTANCE_ID}').checked )
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   268
            {
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   269
              set_form_type_category_{INSTANCE_ID}();
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   270
            }
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   271
          }
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   272
          
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   273
          addOnloadHook(set_form_type_auto_{INSTANCE_ID});
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   274
        
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   275
        </script>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   276
        
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   277
        <form action="{FORM_ACTION}" name="decir_forum_smartform_{INSTANCE_ID}" method="post" enctype="multipart/form-data">
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   278
        
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   279
        <div class="tblholder">
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   280
          <table border="0" cellspacing="1" cellpadding="4">
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   281
            <tr>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   282
              <th colspan="2">
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   283
                <!-- BEGIN mode_is_create -->
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   284
                Create new forum
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   285
                <!-- BEGINELSE mode_is_create -->
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   286
                Edit forum {FORUM_NAME}
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   287
                <!-- END mode_is_create -->
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   288
              </th>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   289
            </tr>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   290
            <!-- BEGIN mode_is_create -->
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   291
            <tr>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   292
              <td class="row2" style="width: 50%;">
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   293
                Forum type:
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   294
              </td>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   295
              <td class="row1" style="width: 50%;">
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   296
                <label>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   297
                  <input id="radio_forum_{INSTANCE_ID}" type="radio" name="forum_type" value="{TYPE_FORUM}" onclick="set_form_type_forum_{INSTANCE_ID}();" <!-- BEGIN type_is_forum -->checked="checked" <!-- END type_is_forum -->/> Forum
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   298
                </label>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   299
                <label>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   300
                  <input id="radio_category_{INSTANCE_ID}" type="radio" name="forum_type" value="{TYPE_CATEGORY}" onclick="set_form_type_category_{INSTANCE_ID}();" <!-- BEGINNOT type_is_forum -->checked="checked" <!-- END type_is_forum -->/> Category
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   301
                </label>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   302
              </td>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   303
            </tr>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   304
            <!-- END mode_is_create -->
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   305
            <tr>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   306
              <td class="row2" style="width: 50%;">
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   307
                Forum description:
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   308
              </td>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   309
              <td class="row1" style="width: 50%;">
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   310
              <input type="text" name="forum_name" size="40" value="{FORUM_NAME}" />
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   311
              </td>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   312
            </tr>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   313
          </table>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   314
        </div>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   315
        
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   316
        <!-- BEGIN show_opts_category -->
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   317
        <div class="tblholder" id="type_category_{INSTANCE_ID}"<!-- BEGIN mode_is_create --> style="display: none;" <!-- END mode_is_create -->>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   318
          <table border="0" cellspacing="1" cellpadding="4">
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   319
            <tr>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   320
              <th colspan="2">
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   321
                Category options
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   322
              </th>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   323
            </tr>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   324
            <tr>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   325
              <td class="row2" style="width: 50%;">
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   326
                Stub
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   327
              </td>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   328
              <td class="row1" style="width: 50%;">
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   329
                Stub
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   330
              </td>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   331
            </tr>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   332
            <tr>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   333
              <th class="subhead" colspan="2">
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   334
                <button name="act" value="create_finish"><b>Create category</b></button>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   335
                <button name="act" value="noop" style="font-weight: normal;">Cancel</button>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   336
              </th>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   337
            </tr>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   338
          </table>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   339
        </div>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   340
        <!-- END show_opts_category -->
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   341
        
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   342
        <!-- BEGIN show_opts_forum -->
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   343
        <div id="type_forum_{INSTANCE_ID}">
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   344
          
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   345
          <!-- BEGIN need_category -->
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   346
          
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   347
          <div class="error-box">
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   348
            There aren't any categories on this site yet. You need to create at least one category before you can create a forum.
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   349
          </div>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   350
          
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   351
          <!-- BEGINELSE need_category -->
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   352
          
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   353
          <div class="tblholder">
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   354
            <table border="0" cellspacing="1" cellpadding="4">
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   355
              <tr>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   356
                <th colspan="2">
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   357
                  Forum options
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   358
                </th>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   359
              </tr>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   360
              <tr>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   361
                <td class="row2" style="width: 50%;">
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   362
                  Forum description:
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   363
                </td>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   364
                <td class="row1" style="width: 50%;">
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   365
                  <input type="text" name="forum_desc" size="40" value="{FORUM_DESC}" />
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   366
                </td>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   367
              </tr>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   368
              <tr>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   369
                <td class="row2">
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   370
                  Create in category:
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   371
                </td>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   372
                <td class="row1">
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   373
                  <select name="forum_parent">
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   374
                    {CATEGORY_LIST}</select>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   375
                </td>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   376
              </tr>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   377
              <tr>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   378
                <th class="subhead" colspan="2">
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   379
                  <button name="act" value="create_finish"><b>Create forum</b></button>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   380
                  <button name="act" value="noop" style="font-weight: normal;">Cancel</button>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   381
                </th>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   382
              </tr>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   383
            </table>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   384
          </div>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   385
          
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   386
          <!-- END need_category -->
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   387
          
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   388
        </div>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   389
        <!-- END show_opts_forum -->
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   390
        
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   391
        </form>
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   392
        
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   393
        <!-- Finish forum creation/edit smartform {INSTANCE_ID} -->
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   394
EOF;
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   395
    $parser = $template->makeParserText($tpl_code);
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   396
    
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   397
    $category_list = '';
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   398
    foreach ( $this->category_list as $cat_id => $cat_name )
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   399
    {
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   400
      $cat_id = intval($cat_id);
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   401
      $cat_name = htmlspecialchars($cat_name);
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   402
      $category_list .= "<option value=\"$cat_id\">$cat_name</option>\n                    ";
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   403
    }
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   404
    
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   405
    // FIXME: these should really call addslashes and htmlspecialchars
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   406
    
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   407
    $parser->assign_vars(array(
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   408
        'INSTANCE_ID' => $this->instance_id,
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   409
        'FORUM_NAME' => htmlspecialchars($this->forum_name),
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   410
        'FORUM_DESC' => htmlspecialchars($this->forum_desc),
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   411
        'FORM_ACTION' => makeUrlNS('Special', 'DecirAdmin', 'module=' . $paths->nslist['Admin'] . 'DecirForums', true),
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   412
        'TYPE_FORUM' => FORUM_FORUM,
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   413
        'TYPE_CATEGORY' => FORUM_CATEGORY,
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   414
        'CATEGORY_LIST' => $category_list
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   415
      ));
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   416
    $parser->assign_bool(array(
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   417
      'mode_is_create' => ( $this->form_mode == DECIR_ADMIN_MODE_CREATE ),
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   418
      'show_opts_category' => ( $this->form_mode == DECIR_ADMIN_MODE_CREATE ? true : $this->forum_type == FORUM_CATEGORY ),
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   419
      'show_opts_forum' => ( $this->form_mode == DECIR_ADMIN_MODE_CREATE ? true : $this->forum_type == FORUM_FORUM ),
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   420
      'type_is_forum' => ( $this->forum_type != FORUM_CATEGORY ),
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   421
      'need_category' => ( $this->form_mode == DECIR_ADMIN_MODE_CREATE && $this->need_category )
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   422
    ));
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   423
    
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   424
    return $parser->run();
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   425
  }
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   426
  
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   427
}
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   428
3f66ec435f08 Some basic admin implemented
Dan
parents:
diff changeset
   429
?>