├── admin ├── admin.php ├── dashboard.php ├── edit-forum.php ├── edit-reply.php ├── edit-topic.php ├── meta-boxes.php ├── post-forum.php ├── post-reply.php ├── post-topic.php ├── user-edit.php └── users.php ├── composer.json ├── css ├── admin.css └── style.css ├── inc ├── common │ └── template.php ├── core │ ├── admin-bar.php │ ├── capabilities.php │ ├── filters.php │ ├── formatting.php │ ├── handler.php │ ├── meta.php │ ├── options.php │ ├── post-statuses.php │ ├── post-types.php │ ├── query.php │ ├── rewrite.php │ ├── shortcodes.php │ └── theme.php ├── ext │ ├── breadcrumb-trail.php │ └── members.php ├── forum │ ├── capabilities.php │ ├── functions.php │ ├── template.php │ └── types.php ├── index.php ├── reply │ ├── capabilities.php │ ├── functions.php │ └── template.php ├── role │ ├── functions.php │ └── template.php ├── search │ └── template.php ├── topic │ ├── capabilities.php │ ├── functions.php │ ├── template.php │ └── types.php └── user │ ├── bookmarks.php │ ├── functions.php │ ├── subscriptions.php │ └── template.php ├── js ├── admin.js └── board.js ├── message-board.php ├── readme.md └── templates ├── board.php ├── content-archive-forum.php ├── content-archive-reply.php ├── content-archive-role.php ├── content-archive-topic.php ├── content-archive-user.php ├── content-edit.php ├── content-login.php ├── content-search-results.php ├── content-search.php ├── content-single-forum.php ├── content-single-reply.php ├── content-single-role.php ├── content-single-topic.php ├── content-single-user.php ├── form-forum-edit.php ├── form-forum-new.php ├── form-reply-edit.php ├── form-reply-new.php ├── form-search-advanced.php ├── form-search-basic.php ├── form-topic-edit.php ├── form-topic-new.php ├── form-user-edit.php ├── loop-forum-hierarchical.php ├── loop-forum.php ├── loop-reply.php ├── loop-role.php ├── loop-search.php ├── loop-topic.php ├── loop-user.php ├── thread-reply.php └── thread-topic.php /admin/admin.php: -------------------------------------------------------------------------------- 1 | 8 | * @copyright Copyright (c) 2014, Justin Tadlock 9 | * @link https://github.com/justintadlock/message-board 10 | * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html 11 | */ 12 | 13 | final class Message_Board_Admin { 14 | 15 | /** 16 | * Forum post type name. 17 | * 18 | * @since 1.0.0 19 | * @access public 20 | * @var string 21 | */ 22 | public $forum_type; 23 | 24 | /** 25 | * Topic post type name. 26 | * 27 | * @since 1.0.0 28 | * @access public 29 | * @var string 30 | */ 31 | public $topic_type; 32 | 33 | /** 34 | * Reply post type name. 35 | * 36 | * @since 1.0.0 37 | * @access public 38 | * @var string 39 | */ 40 | public $reply_type; 41 | 42 | /** 43 | * Holds the instance of this class. 44 | * 45 | * @since 1.0.0 46 | * @access private 47 | * @var object 48 | */ 49 | private static $instance; 50 | 51 | /** 52 | * Sets up needed actions/filters for the admin to initialize. 53 | * 54 | * @since 1.0.0 55 | * @access public 56 | * @return void 57 | */ 58 | public function __construct() { 59 | 60 | /* Get post type names. */ 61 | $this->forum_type = mb_get_forum_post_type(); 62 | $this->topic_type = mb_get_topic_post_type(); 63 | $this->reply_type = mb_get_reply_post_type(); 64 | 65 | /* Add admin menu items. */ 66 | add_action( 'admin_menu', array( $this, 'admin_menu' ) ); 67 | 68 | /* Correct parent file. */ 69 | add_filter( 'parent_file', array( $this, 'parent_file' ) ); 70 | 71 | /* Admin notices. */ 72 | add_action( 'admin_notices', array( $this, 'admin_notices' ) ); 73 | 74 | /* Register scripts and styles. */ 75 | add_action( 'admin_enqueue_scripts', array( $this, 'register_scripts' ) ); 76 | 77 | /* Add custom body class. */ 78 | add_filter( 'admin_body_class', array( $this, 'admin_body_class' ) ); 79 | 80 | /* Overwrite the nav menu meta box object query. */ 81 | add_filter( 'nav_menu_meta_box_object', array( $this, 'nav_menu_meta_box_object' ) ); 82 | 83 | /* Edit screen views. */ 84 | foreach ( mb_get_post_types() as $post_type ) 85 | add_filter( "views_edit-{$post_type}", array( $this, 'views_edit' ), 5 ); 86 | } 87 | 88 | /** 89 | * Adds admin menu items needed by the plugin. Rather than having multiple top-level menu items 90 | * like some plugins, which shall remain unnamed, we'll consolidate everything into a single 91 | * item. Yay for no clutter! 92 | * 93 | * @since 1.0.0 94 | * @access public 95 | * @return void 96 | */ 97 | function admin_menu() { 98 | 99 | /* Remove `post-new.php` submenu pages for topics and replies. */ 100 | //remove_submenu_page( mb_get_admin_menu_page(), "post-new.php?post_type={$this->topic_type}" ); 101 | remove_submenu_page( mb_get_admin_menu_page(), "post-new.php?post_type={$this->reply_type}" ); 102 | } 103 | 104 | /** 105 | * Corrects the parent file for post type screens. 106 | * 107 | * @since 1.0.0 108 | * @access public 109 | * @param string $parent_file 110 | * @return string 111 | */ 112 | function parent_file( $parent_file ) { 113 | 114 | if ( "edit.php?post_type={$this->topic_type}" === $parent_file || "edit.php?post_type={$this->reply_type}" === $parent_file ) { 115 | $parent_file = mb_get_admin_menu_page(); 116 | } 117 | 118 | return $parent_file; 119 | } 120 | 121 | /** 122 | * Displays an admin notice if the current theme does not support the Message Board plugin. 123 | * 124 | * @since 1.0.0 125 | * @access public 126 | * @return void 127 | */ 128 | function admin_notices() { 129 | 130 | if ( !current_theme_supports( 'message-board' ) && current_user_can( 'switch_themes' ) ) { ?> 131 |
132 |

133 | 134 |

135 |
136 | dir_uri . 'js/admin.js', array( 'jquery' ), false, true ); 148 | wp_register_style( 'message-board-admin', message_board()->dir_uri . 'css/admin.css' ); 149 | } 150 | 151 | /** 152 | * Adds a custom admin body class. 153 | * 154 | * @since 1.0.0 155 | * @access public 156 | * @param string $class 157 | * @return string 158 | */ 159 | public function admin_body_class( $class ) { 160 | 161 | $screen = get_current_screen(); 162 | 163 | if ( $this->forum_type === $screen->post_type ) 164 | $class .= 'mb-forum '; 165 | 166 | elseif ( $this->topic_type === $screen->post_type ) 167 | $class .= 'mb-topic '; 168 | 169 | elseif ( $this->reply_type === $screen->post_type ) 170 | $class .= 'mb-reply '; 171 | 172 | return $class; 173 | } 174 | 175 | /** 176 | * Puts the post status links in the a better order. By default, WP will list these in the order 177 | * they're registered. Instead, we're going to put them in order from public, private, protected, 178 | * and other. 179 | * 180 | * @since 1.0.0 181 | * @access public 182 | * @param array $views 183 | * @return array 184 | */ 185 | public function views_edit( $views ) { 186 | 187 | $non_status = $public = $private = $protected = $other = array(); 188 | 189 | foreach ( $views as $view => $link ) { 190 | 191 | $status_obj = get_post_status_object( $view ); 192 | 193 | if ( is_null( $status_obj ) || !is_object( $status_obj ) ) 194 | $non_status[ $view ] = $link; 195 | 196 | elseif ( true === $status_obj->public ) 197 | $public[ $view ] = $link; 198 | 199 | elseif ( true === $status_obj->private ) 200 | $private[ $view ] = $link; 201 | 202 | elseif ( true === $status_obj->protected ) 203 | 204 | $protected[ $view ] = $link; 205 | else 206 | $other[ $view ] = $link; 207 | } 208 | 209 | return array_merge( $non_status, $public, $private, $protected, $other ); 210 | } 211 | 212 | /** 213 | * Makes sure the correct post status is used when loading forums on the nav menus screen. By 214 | * default, WordPress will only load them if they have the "publish" post status. 215 | * 216 | * @since 1.0.0 217 | * @access public 218 | * @param object $object 219 | * @return object 220 | */ 221 | public function nav_menu_meta_box_object( $object ) { 222 | 223 | if ( isset( $object->name ) && mb_get_forum_post_type() === $object->name ) { 224 | 225 | $statuses = array( 226 | mb_get_open_post_status(), 227 | mb_get_close_post_status(), 228 | mb_get_publish_post_status(), 229 | mb_get_private_post_status(), 230 | mb_get_hidden_post_status(), 231 | mb_get_archive_post_status() 232 | ); 233 | 234 | $object->_default_query = wp_parse_args( array( 'post_status' => $statuses ), $object->_default_query ); 235 | } 236 | 237 | return $object; 238 | } 239 | 240 | /** 241 | * Returns the instance. 242 | * 243 | * @since 1.0.0 244 | * @access public 245 | * @return object 246 | */ 247 | public static function get_instance() { 248 | 249 | if ( !self::$instance ) 250 | self::$instance = new self; 251 | 252 | return self::$instance; 253 | } 254 | } 255 | 256 | Message_Board_Admin::get_instance(); 257 | -------------------------------------------------------------------------------- /admin/dashboard.php: -------------------------------------------------------------------------------- 1 | 8 | * @copyright Copyright (c) 2014, Justin Tadlock 9 | * @link https://github.com/justintadlock/message-board 10 | * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html 11 | */ 12 | 13 | final class Message_Board_Admin_Dashboard { 14 | 15 | /** 16 | * Holds the instance of this class. 17 | * 18 | * @since 1.0.0 19 | * @access private 20 | * @var object 21 | */ 22 | private static $instance; 23 | 24 | /** 25 | * Sets up needed actions/filters for the admin to initialize. 26 | * 27 | * @since 1.0.0 28 | * @access public 29 | * @return void 30 | */ 31 | public function __construct() { 32 | add_action( 'load-index.php', array( $this, 'load_dashboard' ) ); 33 | } 34 | 35 | /** 36 | * Runs our actions only on the dashboard admin screen. 37 | * 38 | * @since 1.0.0 39 | * @access public 40 | * @return void 41 | */ 42 | public function load_dashboard() { 43 | 44 | /* Add dashboard widgets. */ 45 | add_action( 'wp_dashboard_setup', array( $this, 'dashboard_widgets' ) ); 46 | 47 | /* Enqueue custom styles. */ 48 | add_action( 'admin_enqueue_scripts', array( $this, 'print_styles' ) ); 49 | } 50 | 51 | /** 52 | * Adds custom dashboard widgets. Note that we're using `add_meta_box()` rather than the 53 | * `wp_add_dashboard_widget()` function so that we can control the positioning. 54 | * 55 | * @since 1.0.0 56 | * @access public 57 | * @return void 58 | */ 59 | public function dashboard_widgets() { 60 | 61 | add_meta_box( 62 | 'mb-dashboard-activity', 63 | __( 'Forum Activity', 'message-board' ), 64 | 'mb_dashboard_activity_meta_box', 65 | 'dashboard', 66 | 'side', 67 | 'high' 68 | ); 69 | } 70 | 71 | /** 72 | * Enqueue the plugin admin CSS. 73 | * 74 | * @since 1.0.0 75 | * @access public 76 | * @return void 77 | */ 78 | public function print_styles() { 79 | wp_enqueue_style( 'message-board-admin' ); 80 | } 81 | 82 | /** 83 | * Returns the instance. 84 | * 85 | * @since 1.0.0 86 | * @access public 87 | * @return object 88 | */ 89 | public static function get_instance() { 90 | 91 | if ( !self::$instance ) 92 | self::$instance = new self; 93 | 94 | return self::$instance; 95 | } 96 | } 97 | 98 | Message_Board_Admin_Dashboard::get_instance(); 99 | -------------------------------------------------------------------------------- /admin/post-forum.php: -------------------------------------------------------------------------------- 1 | 8 | * @copyright Copyright (c) 2014, Justin Tadlock 9 | * @link https://github.com/justintadlock/message-board 10 | * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html 11 | */ 12 | 13 | final class Message_Board_Admin_Post_Forum { 14 | 15 | /** 16 | * Holds the instances of this class. 17 | * 18 | * @since 1.0.0 19 | * @access private 20 | * @var object 21 | */ 22 | private static $instance; 23 | 24 | /** 25 | * Sets up needed actions/filters for the admin to initialize. 26 | * 27 | * @since 1.0.0 28 | * @access public 29 | * @return void 30 | */ 31 | public function __construct() { 32 | add_action( 'load-post.php', array( $this, 'load_post' ) ); 33 | add_action( 'load-post-new.php', array( $this, 'load_post' ) ); 34 | } 35 | 36 | /** 37 | * Callback function for the `load-post.php` or `load-post-new.php` screen. 38 | * 39 | * @since 1.0.0 40 | * @access public 41 | * @return void 42 | */ 43 | function load_post() { 44 | $screen = get_current_screen(); 45 | 46 | if ( empty( $screen->post_type ) || $screen->post_type !== mb_get_forum_post_type() ) 47 | return; 48 | 49 | add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ) ); 50 | 51 | /* Filter the forum content editor. */ 52 | add_filter( 'wp_editor_expand', '__return_false' ); 53 | add_filter( 'wp_editor_settings', array( $this, 'editor_settings' ) ); 54 | add_filter( 'the_editor', array( $this, 'the_editor' ) ); 55 | 56 | add_action( "add_meta_boxes_{$screen->post_type}", array( $this, 'add_meta_boxes' ) ); 57 | 58 | add_action( 'save_post', array( $this, 'save_post' ), 10, 2 ); 59 | } 60 | 61 | /** 62 | * Changes the editor's default height to 175px since it's merely being used as a description. 63 | * 64 | * @since 1.0.0 65 | * @access public 66 | * @param array $settings 67 | * @return array 68 | */ 69 | public function editor_settings( $settings ) { 70 | 71 | $settings['editor_height'] = 175; 72 | 73 | return $settings; 74 | } 75 | 76 | /** 77 | * Makes sure the editor's height stays the same. Adds the placeholder attribute to the 78 | * editor ` 46 |

47 | 48 |

49 | 50 |

51 | 52 | 54 | 58 |

59 | */ ?> 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /templates/form-forum-new.php: -------------------------------------------------------------------------------- 1 | 5 | 6 |

7 | 8 |
9 | 10 | 11 |

12 | 13 | 14 |

15 | 16 | 17 |

18 | 19 | 'mb_post_parent', 22 | 'id' => 'mb_post_parent', 23 | 'show_option_none' => __( '(no parent)', 'message-board' ), 24 | 'option_none_value' => 0, 25 | 'selected' => mb_get_forum_parent_id() 26 | ) 27 | ); ?> 28 |

29 | 30 | 31 |

32 | 33 | 34 |

35 | 36 |

37 | 38 | mb_get_forum_post_type(), 41 | 'name' => 'mb_post_status', 42 | 'id' => 'mb_post_status', 43 | 'selected' => mb_get_forum_status(), 44 | ) 45 | ); ?> 46 |

47 | 48 |

49 | 50 | 51 |

52 | 53 |
54 | 55 | 56 |
57 | 58 |

59 | 60 |

61 | 62 | 63 | 64 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 |
82 |
-------------------------------------------------------------------------------- /templates/form-reply-edit.php: -------------------------------------------------------------------------------- 1 | 4 | 5 |
6 | 7 |
8 | 9 | 10 |

11 | 12 | 13 |

14 | 15 |

16 | 17 |

18 | 19 |

20 | 24 |

25 | 26 | 27 | 28 | 29 | 30 |
31 |
-------------------------------------------------------------------------------- /templates/form-reply-new.php: -------------------------------------------------------------------------------- 1 | 4 | 5 |
6 | 7 |
8 | 9 | 10 |
11 | 12 | 13 |
14 | 15 |

16 | 17 |

18 | 19 | 20 | 21 |

22 | 26 |

27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 |
35 |
-------------------------------------------------------------------------------- /templates/form-search-advanced.php: -------------------------------------------------------------------------------- 1 | 5 | 6 | -------------------------------------------------------------------------------- /templates/form-search-basic.php: -------------------------------------------------------------------------------- 1 |
2 | 6 | 7 |
-------------------------------------------------------------------------------- /templates/form-topic-edit.php: -------------------------------------------------------------------------------- 1 | 5 | 6 |
7 | 8 |
9 | 10 | 11 |

12 | 13 | 14 |

15 | 16 |

17 | 18 | mb_get_topic_post_type(), 21 | 'name' => 'mb_topic_forum', 22 | 'id' => 'mb_topic_forum', 23 | 'selected' => mb_get_topic_forum_id() 24 | ) 25 | ); ?> 26 |

27 | 28 |

29 | 30 | 31 |

32 | 33 |

34 | 35 |

36 | 37 |

38 | 42 |

43 | 44 | 45 | 46 | 47 | 48 |
49 |
-------------------------------------------------------------------------------- /templates/form-topic-new.php: -------------------------------------------------------------------------------- 1 | 4 | 5 |
6 | 7 |
8 | 9 | 10 |

11 | 12 | 13 |

14 | 15 | 16 | 17 |

18 | 19 | mb_get_topic_post_type(), 22 | 'name' => 'mb_forum_id', 23 | 'id' => 'mb_forum_id', 24 | 'selected' => mb_get_topic_forum_id() 25 | ) 26 | ); ?> 27 |

28 | 29 | 30 | 31 |

32 | 33 | 34 |

35 | 36 |

37 | 38 | 'mb_post_status', 41 | 'id' => 'mb_post_status', 42 | 'selected' => mb_get_topic_status() 43 | ) 44 | ); ?> 45 |

46 | 47 |
48 | 49 | 50 |
51 | 52 |

53 | 54 |

55 | 56 | 57 | 58 | 64 | 65 | 66 | 67 | 68 | 69 |
70 | 71 |
-------------------------------------------------------------------------------- /templates/form-user-edit.php: -------------------------------------------------------------------------------- 1 | 5 | 6 |
7 | 8 |

9 | *' ); ?> 10 |

11 | 12 |
13 | 14 | 15 |

16 | 17 | 18 |

19 | 20 |

21 | 22 | 23 |

24 | 25 |

26 | 27 | 28 |

29 | 30 |

31 | 32 | 33 |

34 |
35 | 36 |
37 | 38 | 39 |

40 | 41 | 42 |

43 | 44 | $label ) : ?> 45 |

46 | 47 | " name="" value="" /> 48 |

49 | 50 |
51 | 52 |
53 | 54 | 55 |

56 | 57 | 58 |

59 |
60 | 61 |
62 | 63 | 64 |

65 | 66 | 67 |

68 | 69 |

70 | 71 | 72 |

73 | 74 |

75 | 76 | 77 | 78 |

79 | 80 |

81 | 82 | 83 |
84 |

85 | 86 |
87 | 88 |

89 | 90 |

91 | 92 | 93 | 94 | 95 | 96 |
-------------------------------------------------------------------------------- /templates/loop-forum-hierarchical.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | > 24 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | > 36 | 45 | 46 | 50 | 51 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | > 65 | 66 | 75 | 76 | 80 | 81 | 88 | 89 | 90 | 91 | 92 | 93 | 94 |
25 |
26 | 27 |
28 |
37 | 38 | 39 | 40 |
41 | 42 |
43 | 44 |
47 |
48 | 49 |
52 | 53 |
54 |
55 | ago 56 | 57 |
67 | 68 | 69 | 70 |
71 | 72 |
73 | 74 |
77 |
78 | 79 |
82 | 83 |
84 |
85 | ago 86 | 87 |
95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | -------------------------------------------------------------------------------- /templates/loop-forum.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | > 29 | 30 | 38 | 39 | 43 | 44 | 51 | 52 | 53 | 54 | 55 | 56 | 57 |
31 | 32 | 33 | 34 |
35 | 36 |
37 |
40 |
41 | 42 |
45 | 46 |
47 |
48 | ago 49 | 50 |
58 | 59 | 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /templates/loop-reply.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 37 | 38 | 42 | 43 | 46 | 47 | 48 | 49 | 50 | 51 | 52 |
31 | 32 | 33 |
34 | 35 |
36 |
39 |
40 | 41 |
44 | 45 |
53 | 54 | 55 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /templates/loop-role.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 |
26 | 27 |
28 | 29 |
30 |
39 | 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /templates/loop-search.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | > 31 | 37 | 38 | 42 | 43 | 46 | 47 | 48 | 49 | 50 | > 51 | 57 | 58 | 62 | 63 | 66 | 67 | 68 | 69 | 70 | > 71 | 77 | 78 | 82 | 83 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | -------------------------------------------------------------------------------- /templates/loop-topic.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | > 30 | 31 | 46 | 47 | 51 | 52 | 56 | 57 | 58 | 59 | 60 | 61 | 62 |
32 | 33 | 34 | 35 | 36 | 37 |
38 | 39 | 43 |
44 | 45 |
48 |
49 | 50 |
53 |
54 | 55 |
63 | 64 | 65 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /templates/loop-user.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 |
30 | 31 | 32 |
33 | 34 |
35 |
46 | 47 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /templates/thread-reply.php: -------------------------------------------------------------------------------- 1 |
  • > 2 | 3 |
    4 |
    5 | 6 | 7 | 8 | 9 |
    10 | 11 |
    12 | 13 | 14 | 15 |
    16 | 17 |
    18 | 19 | 20 |
    21 | 22 | 23 |
    24 | 25 |
    26 | 27 |
    28 | 29 |
    30 | 31 |
    32 | 33 |
    34 | 35 |
    36 |
  • -------------------------------------------------------------------------------- /templates/thread-topic.php: -------------------------------------------------------------------------------- 1 |
  • > 2 | 3 |
    4 |
    5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
    13 | 14 |
    15 | 16 | 17 | 18 |
    19 | 20 |
    21 | 22 | 23 |
    24 | 25 | 26 |
    27 | 28 |
    29 | 30 |
    31 | 32 |
    33 | 34 |
    35 | 36 |
    37 | 38 |
    39 |
  • --------------------------------------------------------------------------------