Enhanced Topics  1.1.0  Invision Power Board 1.3
Mod Beschreibung Start und Ende von Themen und private Themen und anderes
Mod Kompatibilität Invision Power Board 1.3
Mod Kategorie Major Mod
Mod Autor Peter
Mod Emailadresse des Autors Peter@ibforen.de
Dokumentationspfad sources/mods/enhanced_topics/mod_enhanced_topics_howto.htm
Mod Version 1.1.0
Hinweis Weitergabe ohne Zustimmung ist untersagt. Download von ibforen.de
Alle Änderungen sind am mod_token zu erkennen

Dieses html-howto wurde erstellt mit The ModInstaller 1.3.2 von
Peter@ibforen.de, released on 29th January, 2007
Erstellungsdatum: 2008-12-01

Es darf ohne ausdrückliche Genehmigung nicht weiterverwendet werden.

Hinweis
  • Dieser Mod ist keine Freeware.
  • Eine Weitergabe dieser Anleitung oder einer der Mod-Dateien ist untersagt. Die Distribution des Mods und seiner Dateien ist nur mit meiner ausdrücklichen Genehmigung gestattet.
  • Die Anpassung des Mods an die Skins des eigenen Boards ist ausdrücklich gewünscht. Dabei darf jedoch nicht mein Copyright verletzt werden und abgewandelte Codeteile weitervertrieben werden.
  • Eine Verletzung dieser Regelung führt letztendlich dazu, dass ich künftig keine frei verfügbaren Modifikationen mehr produziere. In diesem Sinne bitte ich darum, die schöpferische Leistung aller Programmierer zu respektieren und die Urheberschaften zu beachten.
Mod Token mod_enhanced_topics

 Inhalt

1 History und Change Logs
2 Veränderungen
3 Kopieren
4 Kodieren
5 Anpassen
6 Kommentar
7 Ältere History und Change Logs

 1.  History und Change Logs

Version 1.1.0


Version 1.0.9


Beschreibung


 2.  Veränderungen
Changed file Changed function
index.php add_array(..)
sources/Admin/ad_forums.php do_new(..), do_edit(..), doeditsub(..)
sources/Admin/ad_forums.php new_form(..), edit_form(..), subedit(..)
sources/Admin/ad_forums.php recount(..)
sources/Admin/ad_groups.php group_form(..)
sources/Admin/ad_groups.php save_group(..)
sources/Admin/ad_settings.php ad_settings(..)
sources/Admin/ad_settings.php docount(..)
sources/Admin/ad_settings.php post(..)
sources/browsebuddy.php splash(..)
sources/Forums.php render_forum(..)
sources/functions.php load_member(..)
sources/lib/modfunctions.php forum_recount(..)
sources/lib/post_edit_post.php complete_edit(..)
sources/lib/post_edit_post.php show_form(..)
sources/lib/post_new_post.php add_new_topic(..)
sources/lib/post_new_post.php show_form(..)
sources/lib/post_poll.php add_new_poll(..)
sources/lib/post_poll.php show_form(..)
sources/lib/post_q_reply_post.php add_reply(..)
sources/lib/post_reply_post.php add_reply(..)
sources/lib/search_mysql_ftext.php do_main_search(..)
sources/lib/search_mysql_ftext.php do_simple_search(..)
sources/lib/search_mysql_man.php do_main_search(..)
sources/Moderate.php topic_history(..)
sources/Online.php list_all(..)
sources/Post.php Post(..)
sources/Search.php get_active(..)
sources/Search.php get_all_user(..)
sources/Search.php get_last_ten(..)
sources/Search.php get_new_posts(..)
sources/Search.php Search(..)
sources/Topics.php class properties or methods
sources/Topics.php Topics(..)

 3.  Kopieren

Kopiere alle Dateien des Archivs in das Root-Verzeichnis deines Boards und behalte dabei die Struktur bei.


 4.  Kodieren


Schritt  1:  Öffne index.php

  Suche in function add_array(..)

if ( $ibforums->input['act'] == 'home' )

     Füge darüber ein den blauen Code



//-- mod_enhanced_topics begin
    $mod_enhanced_topics_act = $choice[ $ibforums->input['act']];
    if ($mod_enhanced_topics_act == "Boards" || $mod_enhanced_topics_act == "Forums" ||
        $mod_enhanced_topics_act == "Topics" || $mod_enhanced_topics_act == "Post" ||
        ($mod_enhanced_topics_act == "home" && !$ibforums->vars['csite_on']) ) {

        $act_time = time();
        $DB->query("SELECT * FROM ibf_topics WHERE
                    ((release_date<>'0' OR release_date IS NOT NULL) AND release_date<='$act_time') OR
                    ((end_date<>'0' OR end_date IS NOT NULL) AND end_date<='$act_time')
                    ");
        if ($DB->get_num_rows()) {
            if (!class_exists("enhanced_topics")) {
                require ROOT_PATH."sources/mods/enhanced_topics/mod_enhanced_topics_func.php";
                $mod_enhanced_topics = new enhanced_topics;
            }
            while ($topic = $DB->fetch_row()) {
                $mod_enhanced_topics->update_topic($topic);
            }
        }
        if ($mod_enhanced_topics_act == "Post") {
            if (!class_exists("enhanced_topics")) {
                require ROOT_PATH."sources/mods/enhanced_topics/mod_enhanced_topics_func.php";
                $mod_enhanced_topics = new enhanced_topics;
            }
        }
    }
//-- mod_enhanced_topics end


if ( $ibforums->input['act'] == 'home' )


Schritt  2:  Öffne sources/browsebuddy.php

  Suche in function splash(..)

             $DB->query("SELECT COUNT(pid) as posts FROM ibf_posts WHERE post_date > '".$ibforums->member['last_visit']."' AND queued <> 1 AND forum_id IN($forum_string)");

     Füge darüber ein den blauen Code



//-- mod_enhanced_topics begin
            $this->act_time = time();
            $this->can_enhanced_topics = ($ibforums->member['mgroup'] == $ibforums->vars['admin_group']) 
                                         || ($ibforums->member['id'] && $ibforums->member['g_is_supmod']);
            if (!$this->can_enhanced_topics)
                 $DB->query("SELECT COUNT(p.pid) as posts FROM ibf_posts p LEFT JOIN ibf_topics t ON (p.topic_id=t.tid) WHERE 
                                p.post_date > '{$ibforums->member['last_visit']}'
                                AND (t.release_date='0' OR (t.release_date IS NULL) OR (t.release_date<='{$this->act_time}'))
                                AND (t.private IS NULL OR (t.private='0') OR (t.private<>'0' AND t.starter_id='{$ibforums->member['id']}'))
                                AND p.queued <> 1 AND p.forum_id IN($forum_string)");
            else
//-- mod_enhanced_topics end


             $DB->query("SELECT COUNT(pid) as posts FROM ibf_posts WHERE post_date > '".$ibforums->member['last_visit']."' AND queued <> 1 AND forum_id IN($forum_string)");


Schritt  3:  Öffne sources/functions.php

  A. Suche in function load_member(..)

            $DB->query("SELECT moderator.mid as is_mod,

     Füge darüber ein den blauen Code



//-- mod_enhanced_topics begin
            if (TRUE)
                $DB->query("SELECT m.*,g.*, moderator.mid as is_mod, moderator.forum_id as mod_fid, moderator.allow_warn
                                FROM ibf_members m
                                LEFT JOIN ibf_groups g ON (g.g_id=m.mgroup)
                                LEFT JOIN ibf_moderators moderator ON (moderator.member_id=m.id OR moderator.group_id=m.mgroup )
                                WHERE m.id=$member_id");
            else
//-- mod_enhanced_topics end


            $DB->query("SELECT moderator.mid as is_mod,

  B. Suche in function load_member(..)

                $this->member = $DB->fetch_row();

     Füge darunter ein den blauen Code

                $this->member = $DB->fetch_row();



//-- mod_enhanced_topics begin
                if ($this->member['is_mod']) {
                    $this->member['mod_forums'][$this->member['mod_fid']] = 1;
                    while ($r = $DB->fetch_row()) {
                        $this->member['mod_forums'][$r['mod_fid']] = 1;
                    }
                }
//-- mod_enhanced_topics end



Schritt  4:  Öffne sources/Forums.php

  A. Suche in function render_forum(..)

        // Query the database to see how many topics there are in the forum
        //+----------------------------------------------------------------

     Füge darunter ein den blauen Code

        // Query the database to see how many topics there are in the forum
        //+----------------------------------------------------------------



//-- mod_enhanced_topics begin
        $this->act_time = time();
        $this->can_enhanced_topics = ($ibforums->member['mgroup'] == $ibforums->vars['admin_group']) 
                                     ||  (is_array($ibforums->member['mod_forums']) && isset($ibforums->member['mod_forums'][$this->forum['id']]) )
                                     || ($ibforums->member['id'] && $ibforums->member['g_is_supmod']);
        if (!$this->can_enhanced_topics)
            $DB->query("SELECT COUNT(tid) as max FROM ibf_topics 
                        WHERE forum_id=".$this->forum['id']."
                        AND ((release_date='0') OR (release_date IS NULL) OR (release_date<='{$this->act_time}'))
                        AND (private IS NULL OR (private='0') OR (private<>'0' AND starter_id='{$ibforums->member['id']}'))
                        AND approved=1
                        AND (pinned=1 OR last_post > $Prune)");
        else
//-- mod_enhanced_topics end


  B. Suche in function render_forum(..)

            $this->output .= $this->render_entry( $topic );

     Füge darüber ein den blauen Code



//-- mod_enhanced_topics begin
            if (!$this->can_enhanced_topics) {
                if ($topic['release_date'] && $topic['release_date'] > $this->act_time) continue;
                if ($topic['private'] && $topic['starter_id'] != $ibforums->member['id']) continue;
                if ($topic['private'] && $topic['starter_id'] == $ibforums->member['id']) 
                    $topic['title'] = "<{B_HOT}>&nbsp;".$topic['title'];
            }
            else {
                $title = "";
                if ($topic['release_date'] && $topic['release_date'] > $this->act_time)
                    $title = "<{WARN_ADD}>&nbsp;";
                if ($topic['end_date'] && $topic['end_date'] > $this->act_time)
                    $title .= "<{WARN_MINUS}>&nbsp;";
                $topic['title'] = $title.$topic['title'];
                if ($topic['private']) 
                    $topic['title'] = "<{B_HOT}>&nbsp;&nbsp;".$topic['title'];
            }
//-- mod_enhanced_topics end


            $this->output .= $this->render_entry( $topic );


Schritt  5:  Öffne sources/Moderate.php

  Suche in function topic_history(..)

        $this->output .= $this->html->topic_history($data);

     Füge darunter ein den blauen Code

        $this->output .= $this->html->topic_history($data);



//-- mod_enhanced_topics begin
        $lang = $std->load_words($lang, "mod_enhanced_topics_lang", $ibforums->lang_id);
        $time = time();
        if ($topic['release_date']) {
            $started = $std->get_date($topic['release_date'], "LONG", false, true);
            $desc = $topic['release_date'] < $time?$lang['topic_was_started']:$lang['topic_started'];
            $match = "`^(.*)(<tr>.*?pformleftw.*?".preg_quote($ibforums->lang['th_last_date']).")`is";
            $insert = "
                        <tr>
                            <td class='pformleftw'><b>$desc</b></td>
                            <td class='pformright'>$started</td>
                        </tr>
                        ";
            $this->output = preg_replace($match, "\\1".$insert."\\2", $this->output);
        }
        if ($topic['end_date']) {
            $closed = $std->get_date($topic['end_date'], "LONG", false, true);
            $desc = $topic['end_date'] < $time?$lang['topic_was_closed']:$lang['topic_closed'];
            $match = "`^(.*)(<tr>.*?pformleftw.*?".preg_quote($ibforums->lang['th_last_date']).")`is";
            $insert = "
                        <tr>
                            <td class='pformleftw'><b>$desc</b></td>
                            <td class='pformright'>".$closed."</td>
                        </tr>
                        ";
            $this->output = preg_replace($match, "\\1".$insert."\\2", $this->output);
        }
//-- mod_enhanced_topics end



Schritt  6:  Öffne sources/Online.php

  Suche in function list_all(..)

            $tid_string = implode( ",", $tid_array );

     Füge darunter ein den blauen Code

            $tid_string = implode( ",", $tid_array );



//-- mod_enhanced_topics begin
            $time = time();
            if ($ibforums->member['mgroup'] != $ibforums->vars['admin_group'])
                $DB->query("SELECT tid, title FROM ibf_topics 
                            WHERE tid IN ($tid_string) 
                            AND ((release_date IS NULL) OR release_date<='$time')
                            AND (private IS NULL OR (private='0') OR (private<>'0' AND (starter_id='{$ibforums->member['id']}')))
                            ");
            else
//-- mod_enhanced_topics end



Schritt  7:  Öffne sources/Post.php

  A. Suche in function Post(..)

        // Require and run our associated library file for this action.

     Füge darüber ein den blauen Code



//-- mod_enhanced_topics begin
        $this->can_enhanced_topics = ($ibforums->member['mgroup'] == $ibforums->vars['admin_group'])
                                     ||  (is_array($ibforums->member['mod_forums']) && isset($ibforums->member['mod_forums'][$this->forum['id']]) )
                                     || ($ibforums->member['id'] && $ibforums->member['g_is_supmod']);
        $this->can_post_private = ($ibforums->member['mgroup'] == $ibforums->vars['admin_group'] || $ibforums->member['g_private']) &&  $this->forum['f_private'] && !$this->forum['f_all_private'];
//-- mod_enhanced_topics end


        // Require and run our associated library file for this action.

  B. Suche in function Post(..)

                            // Redirect to the newest topic in the forum

     Füge darunter ein den blauen Code

                            // Redirect to the newest topic in the forum



//-- mod_enhanced_topics begin
                            $time = time();
                            if (!$this->can_enhanced_topics)
                                $DB->query("SELECT tid from ibf_topics WHERE forum_id='".$this->forum['id']."' AND approved=1 
                                            AND ((release_date IS NULL ) OR release_date<='$time')
                                            AND (private IS NULL OR (private='0') OR (private<>'0' AND starter_id='{$ibforums->member['id']}'))
                                            ORDER BY last_post DESC LIMIT 0,1");
                            else
//-- mod_enhanced_topics end



Schritt  8:  Öffne sources/Search.php

  A. Suche in function Search(..)

        if (! $ibforums->vars['allow_search'])

     Füge darüber ein den blauen Code



//-- mod_enhanced_topics begin
        $this->is_admin = $ibforums->member['mgroup'] == $ibforums->vars['admin_group'];
        $this->act_time = time();
//-- mod_enhanced_topics end


        if (! $ibforums->vars['allow_search'])

  B. Suche in function get_all_user(..)

        $DB->query("SELECT pid FROM ibf_posts WHERE queued <> 1 AND forum_id IN($forums) AND author_id=$mid");

     Füge darüber ein den blauen Code



//-- mod_enhanced_topics begin
        if ($ibforums->member['mgroup'] != $ibforums->vars['admin_group'])
            $DB->query("SELECT p.pid FROM ibf_posts p LEFT JOIN ibf_topics t ON (p.topic_id=t.tid)
                        WHERE
                        ((t.release_date IS NULL) OR (t.release_date<='{$this->act_time}'))
                        AND (t.private IS NULL OR (t.private='0') OR (t.private<>'0' AND t.starter_id='{$ibforums->member['id']}'))
                        AND (p.queued <> 1) AND p.forum_id IN($forums) AND p.author_id='$mid'");
        else
//-- mod_enhanced_topics end


        $DB->query("SELECT pid FROM ibf_posts WHERE queued <> 1 AND forum_id IN($forums) AND author_id=$mid");

  C. Suche in function get_new_posts(..)

        $DB->query("SELECT t.tid FROM ibf_topics t
                    WHERE t.approved=1 AND t.forum_id IN($forums) AND t.last_post > '".$ibforums->member['last_visit']."'");

     Füge darüber ein den blauen Code



//-- mod_enhanced_topics begin
        if (!$this->is_admin)
            $DB->query("SELECT t.tid FROM ibf_topics t
                        WHERE (t.approved=1) AND t.forum_id IN($forums)
                        AND ((t.release_date IS NULL ) OR t.release_date<='{$this->act_time}')
                        AND (t.private IS NULL OR (t.private='0') OR (t.private<>'0' AND t.starter_id='{$ibforums->member['id']}'))
                        AND t.last_post > '".$ibforums->member['last_visit']."'");
        else
//-- mod_enhanced_topics end


        $DB->query("SELECT t.tid FROM ibf_topics t
                    WHERE t.approved=1 AND t.forum_id IN($forums) AND t.last_post > '".$ibforums->member['last_visit']."'");

  D. Suche in function get_last_ten(..)

        $DB->query("SELECT p.*, t.*, f.id as forum_id, f.name as forum_name FROM ibf_forums f, ibf_posts p, ibf_topics t WHERE p.queued <> 1 AND p.forum_id IN($forums) AND p.author_id='".$ibforums->member['id']."' AND t.tid=p.topic_id AND f.id=p.forum_id ORDER BY p.post_date DESC LIMIT 0,10");

     Füge darüber ein den blauen Code



//-- mod_enhanced_topics begin
        if (!$this->is_admin)
            $DB->query("SELECT p.*, t.*, f.id as forum_id, f.name as forum_name 
                        FROM ibf_forums f, ibf_posts p, ibf_topics t 
                        WHERE 
                        p.queued <> 1 AND p.forum_id IN($forums) AND p.author_id='".$ibforums->member['id']."'
                        AND ((t.release_date IS NULL) OR (t.release_date<='{$this->act_time}')) 
                        AND (t.private IS NULL OR (t.private='0') OR (t.private<>'0' AND t.starter_id='{$ibforums->member['id']}'))
                        AND t.tid=p.topic_id AND f.id=p.forum_id 
                        ORDER BY p.post_date DESC LIMIT 0,10");
        else
//-- mod_enhanced_topics end


        $DB->query("SELECT p.*, t.*, f.id as forum_id, f.name as forum_name FROM ibf_forums f, ibf_posts p, ibf_topics t WHERE p.queued <> 1 AND p.forum_id IN($forums) AND p.author_id='".$ibforums->member['id']."' AND t.tid=p.topic_id AND f.id=p.forum_id ORDER BY p.post_date DESC LIMIT 0,10");

  E. Suche in function get_active(..)

                      ORDER BY t.last_post DESC
                      LIMIT 0,200";

     Füge darunter ein den blauen Code

                      ORDER BY t.last_post DESC
                      LIMIT 0,200";



//-- mod_enhanced_topics begin
            $query  = str_replace("WHERE", 
                                  "WHERE ((t.release_date IS NULL) OR t.release_date<='{$this->act_time}') AND ((t.private IS NULL) OR (t.private='0') OR (t.private<>'0' AND t.starter_id='{$ibforums->member['id']}')) AND ", 
                                  $query);
            $query  = str_replace("DISTINCT(t.tid)", 
                                  "DISTINCT(t.tid), t.release_date,t.private,t.starter_id ", 
                                  $query);
//-- mod_enhanced_topics end


  F. Suche in function get_active(..)

            $topics = "";

            while ($row = $DB->fetch_row() )
            {

     Füge darunter ein den blauen Code

            $topics = "";

            while ($row = $DB->fetch_row() )
            {



//-- mod_enhanced_topics begin
                if (!$this->is_admin) {
                    if ($row['release_date'] && $row['release_date'] >$this->act_time) {
                        $max_hits -= 1;
                        continue;
                    }
                    if ($row['private'] && $row['starter_id'] != $ibforums->member['id']) {
                        $max_hits -= 1;
                        continue;
                    }
                }
//-- mod_enhanced_topics end


  G. Suche in function get_active(..)

            $row['keywords'] = $url_words;
            $this->output .= $this->html->RenderRow( $this->parse_entry($row) );

        }

     Füge darüber ein den blauen Code



//-- mod_enhanced_topics begin
            if (!$this->is_admin) {
                if ($row['release_date'] && $row['release_date'] >$this->act_time) {
                    continue;
                }
                if ($row['private'] && $row['starter_id'] != $ibforums->member['id']) {
                    continue;
                }
            }
//-- mod_enhanced_topics end


            $row['keywords'] = $url_words;
            $this->output .= $this->html->RenderRow( $this->parse_entry($row) );

        }


Schritt  9:  Öffne sources/Topics.php

  A. Suche in function Topics(..)

        $this->forum = array( 'id'           => $this->topic['forum_id']          ,

     Füge darüber ein den blauen Code



//-- mod_enhanced_topics begin
        $title = $this->topic['title'];
        $this->can_enhanced_topics = ($ibforums->member['mgroup'] == $ibforums->vars['admin_group'])
                                     ||  (is_array($ibforums->member['mod_forums']) && isset($ibforums->member['mod_forums'][$this->topic['forum_id']]) )
                                     || ($ibforums->member['id'] && $ibforums->member['g_is_supmod']);
        if ($this->can_enhanced_topics) {
            global $mod_enhanced_topics;
            if (!class_exists("enhanced_topics")) {
                require_once ROOT_PATH."sources/mods/enhanced_topics/mod_enhanced_topics_func.php";
                $mod_enhanced_topics = new enhanced_topics;
            }
            $this->topic['title'] = $mod_enhanced_topics->update_topic_title($this->topic);
            if ($this->topic['private']) {
                $this->topic['title'] = "<{B_HOT}>&nbsp;&nbsp;".$this->topic['title'];
            }
        }
        else {
            if ($this->topic['release_date'] > time()) {
                $std->boink_it($ibforums->base_url);
            }
            if ($this->topic['private']) {
                if ($this->topic['starter_id'] == $ibforums->member['id']) {
                    global $mod_enhanced_topics;
                    if (!class_exists("enhanced_topics")) {
                        require_once ROOT_PATH."sources/mods/enhanced_topics/mod_enhanced_topics_func.php";
                        $mod_enhanced_topics = new enhanced_topics;
                    }
                    $this->topic['title'] = "<{B_HOT}>&nbsp;&nbsp;".$this->topic['title'];
                }
                else {
                    $std->boink_it($ibforums->base_url);
                }
            }
        }
//-- mod_enhanced_topics end


        $this->forum = array( 'id'           => $this->topic['forum_id']          ,

  B. Suche in function Topics(..)

            $row['post_date']     = $std->get_date( $row['post_date'], 'LONG' );

     Füge darüber ein den blauen Code



//-- mod_enhanced_topics begin
            if ($ibforums->vars['enhanced_topics_newpost']) {
                $ibforums->lang = $std->load_words($ibforums->lang, 'mod_enhanced_topics_lang', $ibforums->lang_id);
                if ($ibforums->member['id']) {
                    if ($row['post_date'] >= $ibforums->member['last_visit']) {
                        $read_status = "<span style='color:red'><img src='style_images/<#IMG_DIR#>/icon_msg_new.gif' alt='{$ibforums->lang['post_new']}' title='{$ibforums->lang['post_new']}' /></span>&nbsp;&nbsp;";
                    }
                    else {
                        $read_status = "<span style='color:blue'><img src='style_images/<#IMG_DIR#>/icon_msg_nonew_dis.gif' alt='{$ibforums->lang['post_old']}' title='{$ibforums->lang['post_old']}' /></span>&nbsp;&nbsp;";
                    }
                }
                else {
                    $read_status = "";
                }
            }
//-- mod_enhanced_topics end


            $row['post_date']     = $std->get_date( $row['post_date'], 'LONG' );

  C. Suche in function Topics(..)

            $row['ip_address']  = $this->view_ip($row, $poster);

     Füge darüber ein den blauen Code



//-- mod_enhanced_topics begin
            $row['post_icon']  = $read_status.$row['post_icon'];
//-- mod_enhanced_topics end


            $row['ip_address']  = $this->view_ip($row, $poster);

  D. Suche

        $print->do_output( array( 'TITLE'    => $ibforums->vars['board_name']." -> {$this->topic['title']}",

     Füge darüber ein den blauen Code



/*-- mod_enhanced_topics exclude begin


        $print->do_output( array( 'TITLE'    => $ibforums->vars['board_name']." -> {$this->topic['title']}",

  E. Suche

        $print->do_output( array( 'TITLE'    => $ibforums->vars['board_name']." -> {$this->topic['title']}",

     Füge darunter ein den blauen Code

        $print->do_output( array( 'TITLE'    => $ibforums->vars['board_name']." -> {$this->topic['title']}",



-- mod_enhanced_topics exclude end */

//-- mod_enhanced_topics begin
        $print->do_output( array( 'TITLE'    => $ibforums->vars['board_name']." -> $title",
//-- mod_enhanced_topics end



Schritt 10:  Öffne sources/Admin/ad_forums.php

  A. Suche in function recount(..)

        $DB->query("SELECT COUNT(tid) as count FROM ibf_topics WHERE approved=1 and forum_id='".$IN['f']."'");

     Füge darüber ein den blauen Code



/*-- mod_enhanced_topics exclude begin


        $DB->query("SELECT COUNT(tid) as count FROM ibf_topics WHERE approved=1 and forum_id='".$IN['f']."'");

  B. Suche in function recount(..)

        $last_post = $DB->fetch_row();

     Füge darunter ein den blauen Code

        $last_post = $DB->fetch_row();



-- mod_enhanced_topics exclude end */

//-- mod_enhanced_topics begin
        $time = time();
        $hide = "((t.release_date IS NULL) OR (t.release_date<='$time')) AND ((t.private IS NULL) OR (t.private='0'))";
        $DB->query("SELECT COUNT(t.tid) as count FROM ibf_topics t WHERE t.approved=1 AND $hide AND t.forum_id='".$IN['f']."'");
        $topics = $DB->fetch_row();
        $DB->query("SELECT COUNT(p.pid) as count FROM ibf_posts p LEFT JOIN ibf_topics t ON (t.tid=p.topic_id) WHERE $hide AND p.queued <> 1 and p.forum_id='".$IN['f']."'");
        $posts = $DB->fetch_row();
        $DB->query("SELECT t.tid, t.title, t.last_poster_id, t.last_poster_name, t.last_post FROM ibf_topics t WHERE $hide AND t.approved=1 and t.forum_id='".$IN['f']."' ORDER BY t.last_post DESC LIMIT 0,1");
        $last_post = $DB->fetch_row();
//-- mod_enhanced_topics end


  C. Suche in function new_form(..), edit_form(..), subedit(..)

        $ADMIN->html .= $SKIN->add_td_row( array( "<b>Allow use of the [doHTML] tag?</b><br />This will allow HTML to be posted and executed" ,
                                                  $SKIN->form_yes_no("FORUM_HTML"

     Füge darüber ein den blauen Code



//-- mod_enhanced_topics begin
        $this->lang = $std->load_words($this->lang, 'mod_enhanced_topics_lang', $ADMIN->lang_id);
        $ADMIN->html .= $SKIN->add_td_basic( $this->lang['enhanced_topics_title'], 'left', 'catrow2' );
        $ADMIN->html .= $SKIN->add_td_row( array( $this->lang['ad_private_forum'] ,
                                                  $SKIN->form_yes_no("f_private", $forum['f_private'] )
                                         )      );
        $ADMIN->html .= $SKIN->add_td_row( array( $this->lang['ad_all_private_forum'] ,
                                                  $SKIN->form_yes_no("f_all_private", $forum['f_all_private'] )
                                         )      );
        $ADMIN->html .= $SKIN->add_td_spacer();
//-- mod_enhanced_topics end


        $ADMIN->html .= $SKIN->add_td_row( array( "<b>Allow use of the [doHTML] tag?</b><br />This will allow HTML to be posted and executed" ,
                                                  $SKIN->form_yes_no("FORUM_HTML"

  D. Suche in function do_new(..), do_edit(..), doeditsub(..)

                                                            'notify_modq_emails'=> $IN['notify_modq_emails'],

     Füge darunter ein den blauen Code

                                                            'notify_modq_emails'=> $IN['notify_modq_emails'],



//-- mod_enhanced_topics begin
                                                            'f_private'         =>  $IN['f_private'],
                                                            'f_all_private'     =>  $IN['f_all_private'],
//-- mod_enhanced_topics end



Schritt 11:  Öffne sources/Admin/ad_groups.php

  A. Suche in function save_group(..)

                             'g_email_limit'        => intval($IN['join_limit']).':'.intval($IN['join_flood']),

     Füge darunter ein den blauen Code

                             'g_email_limit'        => intval($IN['join_limit']).':'.intval($IN['join_flood']),



//-- mod_enhanced_topics begin
                             'g_private'         =>  $IN['g_private'],
//-- mod_enhanced_topics end


  B. Suche in function group_form(..)

        $ADMIN->html .= $SKIN->add_td_row( array( "<b>Can post new topics (where allowed)?</b>" ,
                                                  $SKIN->form_yes_no("g_post_new_topics"

     Füge darüber ein den blauen Code



//-- mod_enhanced_topics begin
        $this->lang = $std->load_words($this->lang, 'mod_enhanced_topics_lang', $ADMIN->lang_id);
        $ADMIN->html .= $SKIN->add_td_row( array( $this->lang['ad_private_group'] ,
                                                  $SKIN->form_yes_no("g_private", $group['g_private'] )
                                         )      );
//-- mod_enhanced_topics end


        $ADMIN->html .= $SKIN->add_td_row( array( "<b>Can post new topics (where allowed)?</b>" ,
                                                  $SKIN->form_yes_no("g_post_new_topics"


Schritt 12:  Öffne sources/Admin/ad_settings.php

  A. Suche in function docount(..)

            $DB->query("SELECT COUNT(pid) as posts FROM ibf_posts WHERE queued <> 1");

     Füge darüber ein den blauen Code



/*-- mod_enhanced_topics exclude begin


            $DB->query("SELECT COUNT(pid) as posts FROM ibf_posts WHERE queued <> 1");

  B. Suche in function docount(..)

            $DB->query("SELECT COUNT(tid) as topics FROM ibf_topics WHERE approved = 1");

     Füge darunter ein den blauen Code

            $DB->query("SELECT COUNT(tid) as topics FROM ibf_topics WHERE approved = 1");



-- mod_enhanced_topics exclude end */

//-- mod_enhanced_topics begin
            $time = time();
            $hide = "((t.release_date IS NULL) OR (t.release_date<='$time')) AND ((t.private IS NULL) OR t.private='0')";
            $DB->query("SELECT COUNT(p.pid) as posts FROM ibf_posts p LEFT JOIN ibf_topics t ON (t.tid=p.topic_id) WHERE $hide AND p.queued <> 1");
            $r = $DB->fetch_row();
            $stats['TOTAL_REPLIES'] = $r['posts'];
            $stats['TOTAL_REPLIES'] < 1 ? 0 : $stats['TOTAL_REPLIES'];
            $DB->query("SELECT COUNT(t.tid) as topics FROM ibf_topics t WHERE t.approved=1 AND $hide");
//-- mod_enhanced_topics end


  C. Suche in function post(..)

                                                                $INFO['post_order_sort'] ? $INFO['post_order_sort'] : 'asc'
                                                              )
                                 )      );

     Füge darunter ein den blauen Code

                                                                $INFO['post_order_sort'] ? $INFO['post_order_sort'] : 'asc'
                                                              )
                                 )      );



//-- mod_enhanced_topics begin
        $ibforums->lang = $std->load_words($ibforums->lang, 'mod_enhanced_topics_lang', $ADMIN->lang_id);
        $ADMIN->html .= $SKIN->add_td_row( array( $ibforums->lang['ad_posts_show_new'] ,
                                          $SKIN->form_yes_no( "enhanced_topics_newpost", $INFO['enhanced_topics_newpost'] )
                                 )      );
//-- mod_enhanced_topics end


  D. Suche in function ad_settings(..)

'strip_quotes',

     Füge darunter ein den blauen Code

'strip_quotes',



//-- mod_enhanced_topics begin
'enhanced_topics_newpost',
//-- mod_enhanced_topics end



Schritt 13:  Öffne sources/lib/modfunctions.php

  Suche in function forum_recount(..)

        // Get the forum last poster..
        //----------------------------------------------

     Füge darunter ein den blauen Code

        // Get the forum last poster..
        //----------------------------------------------



//-- mod_enhanced_topics begin
        $act_time = time();
        if (TRUE) 
            $DB->query("SELECT tid, title, last_poster_id, last_poster_name, last_post FROM ibf_topics 
                        WHERE approved=1 
                        AND forum_id=$fid 
                        AND (release_date='0' OR (release_date IS NULL) OR (release_date<='$act_time'))
                        AND ((private IS NULL) OR (private='0'))
                        ORDER BY last_post DESC LIMIT 0,1");
        else
//-- mod_enhanced_topics end



Schritt 14:  Öffne sources/lib/post_edit_post.php

  A. Suche in function complete_edit(..)

        // Update topic title?
        //-------------------------------------------------

     Füge darunter ein den blauen Code

        // Update topic title?
        //-------------------------------------------------



//-- mod_enhanced_topics begin
        if ( $this->edit_title != 1 && $class->can_post_private) {
            $private = $ibforums->input['private'];
            if ($private != $this->topic['private']) {
                global $mod_enhanced_topics;
                $dbs = $DB->compile_db_update_string( array( 'private'     => $private,
                                                    )      );
                $DB->query("UPDATE ibf_topics SET $dbs WHERE tid=".$this->topic['tid']);
                $mod_enhanced_topics->update_forum($this->topic['forum_id']);
            }
        }
        else
//-- mod_enhanced_topics end


  B. Suche in function complete_edit(..)

                if ( ($ibforums->input['TopicTitle'] != $this->topic['title']) or ($ibforums->input['TopicDesc'] != $this->topic['description'])  )

     Füge darüber ein den blauen Code



//-- mod_enhanced_topics begin
                if ($class->can_enhanced_topics) {
                    global $mod_enhanced_topics;

                    $release_date = $mod_enhanced_topics->check("start");
                    if ($release_date == "-1") {
                        $std->Error( array( LEVEL => 1, MSG => 'error_date') );
                    }
                    $end_date = $mod_enhanced_topics->check("end");
                    if ($end_date == "-1") {
                        $std->Error( array( LEVEL => 1, MSG => 'error_date') );
                    }
                    if ($end_date && $release_date >= $end_date) {
                        $std->Error( array( LEVEL => 1, MSG => 'error_date_range') );
                    }
                    $move_forum = $ibforums->input['move_forum'];
                    if ($mod_enhanced_topics->changed($this->topic, $release_date, $end_date, $move_forum)) {
                        $dbs = $DB->compile_db_update_string( array( 'release_date'     => $release_date,
                                                                     'end_date'         => $end_date,
                                                                     'not_released'     => $release_date <> '',
                                                                     'not_ended'        => $end_date <> '',
                                                                     'move_forum'       => $move_forum,
                                                            )      );
                        $DB->query("UPDATE ibf_topics SET $dbs WHERE tid=".$this->topic['tid']);
                        $mod_enhanced_topics->update_forum($this->topic['forum_id']);
                    }
                }
                if ($class->can_post_private) {
                    $private = $ibforums->input['private'];
                    if ($private != $this->topic['private']) {
                        global $mod_enhanced_topics;

                        $dbs = $DB->compile_db_update_string( array( 'private'     => $private,
                                                            )      );
                        $DB->query("UPDATE ibf_topics SET $dbs WHERE tid=".$this->topic['tid']);
                        $mod_enhanced_topics->update_forum($this->topic['forum_id']);
                    }
                }
//-- mod_enhanced_topics end


                if ( ($ibforums->input['TopicTitle'] != $this->topic['title']) or ($ibforums->input['TopicDesc'] != $this->topic['description'])  )

  C. Suche in function show_form(..)

        // Is this the first post in the topic?
        //-------------------------------------------------

     Füge darunter ein den blauen Code

        // Is this the first post in the topic?
        //-------------------------------------------------



//-- mod_enhanced_topics begin
        if ( $this->edit_title != 1 && $class->can_post_private) {
            global $mod_enhanced_topics;
            $topic_title = $mod_enhanced_topics->show_form_private($this->topic['private']);
        }
        else
//-- mod_enhanced_topics end


  D. Suche in function show_form(..)

            $topic_title = $class->html->topictitle_fields( array( 'TITLE' => $topic_title, 'DESC' => $topic_desc ) );

     Füge darunter ein den blauen Code

            $topic_title = $class->html->topictitle_fields( array( 'TITLE' => $topic_title, 'DESC' => $topic_desc ) );



//-- mod_enhanced_topics begin
            if ($class->can_post_private) {
                global $mod_enhanced_topics;
                $topic_title .= $mod_enhanced_topics->show_form_private($this->topic['private']);
            }
            if ($class->can_enhanced_topics) {
                global $mod_enhanced_topics;
                $topic_title .= $mod_enhanced_topics->show_form($this->topic);
            }
//-- mod_enhanced_topics end



Schritt 15:  Öffne sources/lib/post_new_post.php

  A. Suche in function add_new_topic(..)

        // Build the master array
        //-------------------------------------------------

     Füge darunter ein den blauen Code

        // Build the master array
        //-------------------------------------------------



//-- mod_enhanced_topics begin
        if ($class->can_enhanced_topics) {
            global $mod_enhanced_topics;

            $release_date = $mod_enhanced_topics->check("start");
            if ($release_date == "-1") {
                $std->Error( array( LEVEL => 1, MSG => 'error_date') );
            }
            $end_date = $mod_enhanced_topics->check("end");
            if ($end_date == "-1") {
                $std->Error( array( LEVEL => 1, MSG => 'error_date') );
            }
            if ($end_date && $release_date >= $end_date) {
                $std->Error( array( LEVEL => 1, MSG => 'error_date_range') );
            }
            if ($release_date && $release_date > time())
                $class->obj['moderate'] = 0;
        }
        if ($class->forum['f_all_private']) {
            $private = 1;
        }
        else {
            $private = $ibforums->input['private'];
            if (!$class->can_post_private) {
                $private = '0';
            }
        }
//-- mod_enhanced_topics end


  B. Suche in function add_new_topic(..)

                              'start_date'       => time(),

     Füge darunter ein den blauen Code

                              'start_date'       => time(),



//-- mod_enhanced_topics begin
                              'release_date'     => $release_date,
                              'end_date'         => $end_date,
                              'not_released'     => $release_date <> '',
                              'not_ended'        => $end_date <> '',
                              'move_forum'       => $ibforums->input['move_forum'],
                              'private'          => $private,
//-- mod_enhanced_topics end


  C. Suche in function add_new_topic(..)

        $this->post['pid'] = $DB->get_insert_id();

     Füge darunter ein den blauen Code

        $this->post['pid'] = $DB->get_insert_id();



//-- mod_enhanced_topics begin
        if ($private) {
            global $mod_enhanced_topics;
            $mod_enhanced_topics->update_members_post($class);
            $std->boink_it($class->base_url."act=ST&f={$class->forum['id']}&t={$this->topic['tid']}");
        }
        if ($class->can_enhanced_topics && $release_date && $release_date > time()) {
            $std->boink_it($class->base_url."act=ST&f={$class->forum['id']}&t={$this->topic['tid']}");
        }
//-- mod_enhanced_topics end


  D. Suche in function show_form(..)

        $class->output = preg_replace( "/<!--START TABLE-->/" , "$start_table"  , $class->output );

     Füge darüber ein den blauen Code



//-- mod_enhanced_topics begin
        if ($class->can_post_private) {
            global $mod_enhanced_topics;
            $topic_title .= $mod_enhanced_topics->show_form_private();
        }
        if ($class->can_enhanced_topics) {
            global $mod_enhanced_topics;
            $topic_title .= $mod_enhanced_topics->show_form($topic_title);
        }
//-- mod_enhanced_topics end


        $class->output = preg_replace( "/<!--START TABLE-->/" , "$start_table"  , $class->output );


Schritt 16:  Öffne sources/lib/post_poll.php

  A. Suche in function add_new_poll(..)

        // Build the master array
        //-------------------------------------------------

     Füge darunter ein den blauen Code

        // Build the master array
        //-------------------------------------------------



//-- mod_enhanced_topics begin
        if ( $ibforums->input['TopicTitle'] != "" ) {
            if ($class->can_enhanced_topics) {
                global $mod_enhanced_topics;

                $release_date = $mod_enhanced_topics->check("start");
                if ($release_date == "-1") {
                    $std->Error( array( LEVEL => 1, MSG => 'error_date') );
                }
                $end_date = $mod_enhanced_topics->check("end");
                if ($end_date == "-1") {
                    $std->Error( array( LEVEL => 1, MSG => 'error_date') );
                }
                if ($end_date && $release_date >= $end_date) {
                    $std->Error( array( LEVEL => 1, MSG => 'error_date_range') );
                }
                if ($release_date && $release_date > time())
                    $class->obj['moderate'] = 0;
            }
            if ($class->forum['f_all_private']) {
                $private = 1;
            }
            else {
                $private = $ibforums->input['private'];
                if (!$class->can_post_private) {
                    $private = '0';
                }
            }
        }
//-- mod_enhanced_topics end


  B. Suche in function add_new_poll(..)

                              'start_date'       => time(),

     Füge darunter ein den blauen Code

                              'start_date'       => time(),



//-- mod_enhanced_topics begin
                              'release_date'     => $release_date,
                              'end_date'         => $end_date,
                              'not_released'     => $release_date <> '',
                              'not_ended'        => $end_date <> '',
                              'move_forum'       => $ibforums->input['move_forum'],
                              'private'          => $private,
//-- mod_enhanced_topics end


  C. Suche in function add_new_poll(..)

        $DB->query("INSERT INTO ibf_polls (" .$db_string['FIELD_NAMES']. ") VALUES (". $db_string['FIELD_VALUES'] .")");

     Füge darunter ein den blauen Code

        $DB->query("INSERT INTO ibf_polls (" .$db_string['FIELD_NAMES']. ") VALUES (". $db_string['FIELD_VALUES'] .")");



//-- mod_enhanced_topics begin
        if ($private) {
            global $mod_enhanced_topics;
            $mod_enhanced_topics->update_members_post($class);
            $std->boink_it($class->base_url."act=ST&f={$class->forum['id']}&t={$this->topic['tid']}");
        }
        if ($class->can_enhanced_topics && $release_date && $release_date > time()) {
            $std->boink_it($class->base_url."act=ST&f={$class->forum['id']}&t={$this->topic['tid']}");
        }
//-- mod_enhanced_topics end


  D. Suche in function show_form(..)

        $class->output = preg_replace( "/<!--START TABLE-->/" , "$start_table"  , $class->output );

     Füge darüber ein den blauen Code



//-- mod_enhanced_topics begin
        if ($class->can_post_private) {
            global $mod_enhanced_topics;
            $topic_title .= $mod_enhanced_topics->show_form_private();
        }
        if ($class->can_enhanced_topics) {
            global $mod_enhanced_topics;
            $topic_title .= $mod_enhanced_topics->show_form($topic_title);
        }
//-- mod_enhanced_topics end


        $class->output = preg_replace( "/<!--START TABLE-->/" , "$start_table"  , $class->output );


Schritt 17:  Öffne sources/lib/post_q_reply_post.php

  A. Suche in function add_reply(..)

        if ( $class->obj['moderate'] == 1 or $class->obj['moderate'] == 3 )

     Füge darüber ein den blauen Code



//-- mod_enhanced_topics begin
        if ($class->can_enhanced_topics) {
            $release_date = $this->topic['release_date'];
            if ($release_date && $release_date > time())
                $class->obj['moderate'] = 0;
        }
//-- mod_enhanced_topics end


        if ( $class->obj['moderate'] == 1 or $class->obj['moderate'] == 3 )

  B. Suche in function add_reply(..)

        //-------------------------------------------------
        // If we are still here, lets update the

     Füge darüber ein den blauen Code



//-- mod_enhanced_topics begin
        if ($class->forum['f_all_private']) {
            $private = 1;
        }
        else {
            $private = $this->topic['private'];
            if (!$class->can_post_private) {
                $private = '0';
            }
        }
        if ($private) {
            global $mod_enhanced_topics;
            $mod_enhanced_topics->update_private_topic($class, $this);
            $std->boink_it($class->base_url."act=ST&f={$class->forum['id']}&t={$this->topic['tid']}");
        }
        if ($class->can_enhanced_topics && $release_date && $release_date > time()) {
            $std->boink_it($class->base_url."act=ST&f={$class->forum['id']}&t={$this->topic['tid']}");
        }
//-- mod_enhanced_topics end


        //-------------------------------------------------
        // If we are still here, lets update the


Schritt 18:  Öffne sources/lib/post_reply_post.php

  A. Suche in function add_reply(..)

        if ( $class->obj['moderate'] == 1 or $class->obj['moderate'] == 3 )

     Füge darüber ein den blauen Code



//-- mod_enhanced_topics begin
        if ($class->can_enhanced_topics) {
            $release_date = $this->topic['release_date'];
            if ($release_date && $release_date > time())
                $class->obj['moderate'] = 0;
        }
//-- mod_enhanced_topics end


        if ( $class->obj['moderate'] == 1 or $class->obj['moderate'] == 3 )

  B. Suche in function add_reply(..)

        //-------------------------------------------------
        // If we are still here, lets update the

     Füge darüber ein den blauen Code



//-- mod_enhanced_topics begin
        if ($class->forum['f_all_private']) {
            $private = 1;
        }
        else {
            $private = $this->topic['private'];
            if (!$class->can_post_private) {
                $private = '0';
            }
        }
        if ($private) {
            global $mod_enhanced_topics;
            $mod_enhanced_topics->update_private_topic($class, $this);
            $std->boink_it($class->base_url."act=ST&f={$class->forum['id']}&t={$this->topic['tid']}");
        }
        if ($class->can_enhanced_topics && $release_date && $release_date > time()) {
            $std->boink_it($class->base_url."act=ST&f={$class->forum['id']}&t={$this->topic['tid']}");
        }
//-- mod_enhanced_topics end


        //-------------------------------------------------
        // If we are still here, lets update the


Schritt 19:  Öffne sources/lib/search_mysql_ftext.php

  A. Suche in function do_simple_search(..)

            if ( $ibforums->input['sortby'] != "relevant" )

     Füge darüber ein den blauen Code



//-- mod_enhanced_topics begin
            if ($ibforums->member['mgroup'] != $ibforums->vars['admin_group']) {
                $time = time();
                $hide  = "WHERE ((t.release_date IS NULL) OR t.release_date<='$time') AND ";
                $hide .= "((t.private IS NULL) OR (t.private='0') OR (t.private='{$ibforums->member['id']}')) AND ";
                $cache  = str_replace("WHERE", $hide , $cache);
            }
//-- mod_enhanced_topics end


            if ( $ibforums->input['sortby'] != "relevant" )

  B. Suche in function do_main_search(..)

        //------------------------------------------------
        // Get the topic ID's to serialize and store into

     Füge darüber ein den blauen Code



//-- mod_enhanced_topics begin
        if ($ibforums->member['mgroup'] != $ibforums->vars['admin_group']) {
            $time = time();
            $hide  = " AND ((t.release_date IS NULL) OR (t.release_date<='$time')) AND ";
            $hide .= "((t.private IS NULL) OR t.private='0' OR (t.private='{$ibforums->member['id']}')) ";
            $topics_query .= $hide;
            $posts_query  = preg_replace("` LEFT JOIN ibf_topics t ON \(.*?\)`is", "", $posts_query);
            $posts_query  = str_replace("ibf_posts p", "ibf_posts p LEFT JOIN ibf_topics t ON (p.topic_id=t.tid)", $posts_query);
            $posts_query .= $hide;
        }
//-- mod_enhanced_topics end


        //------------------------------------------------
        // Get the topic ID's to serialize and store into


Schritt 20:  Öffne sources/lib/search_mysql_man.php

  Suche in function do_main_search(..)

        //------------------------------------------------
        // Get the topic ID's to serialize and store into

     Füge darüber ein den blauen Code



//-- mod_enhanced_topics begin
        if ($ibforums->member['mgroup'] != $ibforums->vars['admin_group']) {
            $time = time();
            $hide  = " AND ((t.release_date IS NULL ) OR (t.release_date<='$time')) AND ";
            $hide .= "((t.private IS NULL) OR (t.private='0') OR (t.private='{$ibforums->member['id']}')) ";
            $topics_query .= $hide;
            $posts_query  = preg_replace("` LEFT JOIN ibf_topics t ON \(.*?\)`is", "", $posts_query);
            $posts_query  = str_replace("ibf_posts p", "ibf_posts p LEFT JOIN ibf_topics t ON (p.topic_id=t.tid)", $posts_query);
            $posts_query .= $hide;
        }
//-- mod_enhanced_topics end


        //------------------------------------------------
        // Get the topic ID's to serialize and store into

 5.  Anpassen

Manuelle Installation


Installiere diesen Mod nicht manuell, verwende den ModInstaller. Es ist so leicht.

Wie bitte ? Du willst doch manuell installieren? Gegen meine ausdrückliche Empfehlung ?

Na gut. Kopiere ./sources/mods/enhanced_topics/mod_enhanced_topics_install.php in das Wurzelverzeichnis deines ipb. Das ist jenes Verzeichnis, wo index.php und admin.php liegen.

Starte dann das Installationsscript über deinen Browser. Es wird die fehlenden Tabellen und Felder in die Datenbank einfügen.

Ändere nun alle Dateien so, wie es in dieser Dokumentation beschrieben ist. Gehe sorgfältig vor, um die richtigen Codeteile zu ändern. Achte auf die betroffenen Funktionen. Manchmal treten die Suchstellen mehrmals im Code auf. Ändere jede Stelle.





 6.  Kommentar

Datieren von Themen

Für Administratoren und Moderatoren steht beim Erstellen und Bearbeiten von Themen und Umfragen ein neuer Optionenbereich zur Verfügung

Optionen für die Veröffentlichung


Private Themen

Private Themen sind nicht öffentliche Themen in Foren, die nur Administratoren, Moderatoren und der Autor selbst sehen können.

Administratoren können Gruppen die Berechtigung für private Themen geben. Die Mitglieder dieser Gruppen können aber nur in denjenigen Foren private Themen erstellen, für die der Administrator das Erstellen privater Themen erlauibt hat.

Es sind also zwei Schritte notwendig, bevor private Themen erstellt werden können:



 7.  Ältere History und Change Logs

Version 1.0.9


Version 1.0.8


Version 1.0.7


Version 1.0.6


Version 1.0