MyBB.de Forum
Hilfeseite "clonen" - neue Seite erstellen - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Archiv (https://www.mybb.de/forum/forum-57.html)
+--- Forum: MyBB 1.4.x (https://www.mybb.de/forum/forum-51.html)
+---- Forum: Allgemeiner Support (https://www.mybb.de/forum/forum-52.html)
+---- Thema: Hilfeseite "clonen" - neue Seite erstellen (/thread-10783.html)



Hilfeseite "clonen" - neue Seite erstellen - GPTrader - 04.09.2008

Hallo zusammen! Stehe gerade vor einem Problem. Mein Vorhaben ist es im Header einen Link zu einer FAQ einzubinden, der schließlich wie die Hilfe aufgebaut ist. Dazu habe ich die

helpdoc.lang

Dateien dupliziert und entsprechend bearbeitet/umbenannt in faqdic.lang, etc. Weiter habe ich den die Help-Einträge in der misc.php dupliziert und umgeschrieben:

Code:
elseif($mybb->input['action'] == "faq")
{
    $lang->load("faqdocs");
    $lang->load("faqsections");
    $lang->load("customfaqdocs");
    $lang->load("customfaqsections");

    add_breadcrumb($lang->nav_faqdocs, "misc.php?action=faq");

    $query = $db->query("
        SELECT h.*, s.enabled AS section
        FROM ".TABLE_PREFIX."helpdocs h
        LEFT JOIN ".TABLE_PREFIX."helpsections s ON (s.sid=h.sid)
        WHERE h.hid='".intval($mybb->input['hid'])."'
    ");
    $faqdoc = $db->fetch_array($query);
    if($faqdoc['hid'])
    {
        if($faqdoc['section'] != 0 && $faqdoc['enabled'] != 0)
        {
            $plugins->run_hooks("misc_faq_faqdoc_start");

            if($faqdoc['usetranslation'] == 1)
            {
                $langnamevar = "d".$faqdoc['hid']."_name";
                $langdescvar = "d".$faqdoc['hid']."_desc";
                $langdocvar = "d".$faqdoc['hid']."_document";
                if($lang->$langnamevar)
                {
                    $faqdoc['name'] = $lang->$langnamevar;
                }
                if($lang->$langdescvar)
                {
                    $faqdoc['description'] = $lang->$langdescvar;
                }
                if($lang->$langdocvar)
                {
                    $faqdoc['document'] = $lang->$langdocvar;
                }
            }
            add_breadcrumb($faqdoc['name']);

            $plugins->run_hooks("misc_faq_faqdoc_end");

            eval("\$faqpage = \"".$templates->get("misc_faq_faqdoc")."\";");
            output_page($faqpage);
        }
        else
        {
            error($lang->error_invalidfaqdoc);
        }
    }
    else
    {
        $plugins->run_hooks("misc_faq_section_start");

        $query = $db->simple_select("faqdocs", "*", "", array('order_by' => 'sid, disporder'));
        while($faqdoc = $db->fetch_array($query))
        {
            $faqdocs[$faqdoc['sid']][$faqdoc['disporder']][$faqdoc['hid']] = $faqdoc;
        }
        unset($faqdoc);
        $sections = '';
        $query = $db->simple_select("faqsections", "*", "enabled != 0", array('order_by' => 'disporder'));
        while($section = $db->fetch_array($query))
        {
            if($section['usetranslation'] == 1)
            {
                $langnamevar = "s".$section['sid']."_name";
                $langdescvar = "s".$section['sid']."_desc";
                if($lang->$langnamevar)
                {
                    $section['name'] = $lang->$langnamevar;
                }
                if($lang->$langdescvar)
                {
                    $section['description'] = $lang->$langdescvar;
                }
            }
            if(is_array($faqdocs[$section['sid']]))
            {
                $faqbits = '';
                // Expand (or Collapse) forums
                if($mybb->input['action'] == "expand")
                {
                    my_setcookie("fcollapse[{$section['sid']}]", '');
                    $scollapse[$section['sid']] = '';
                }
                elseif($mybb->input['action'] == "collapse")
                {
                    my_setcookie("fcollapse[{$section['sid']}]", "y");
                    $scollapse[$section['sid']] = "y";
                }
                foreach($faqdocs[$section['sid']] as $key => $bit)
                {
                    foreach($bit as $key => $faqdoc)
                    {
                        if($faqdoc['enabled'] != 0)
                        {
                            if($faqdoc['usetranslation'] == 1)
                            {
                                $langnamevar = "d".$faqdoc['hid'].'_name';
                                $langdescvar = "d".$faqdoc['hid'].'_desc';
                                if($lang->$langnamevar)
                                {
                                    $faqdoc['name'] = $lang->$langnamevar;
                                }
                                if($lang->$langdescvar)
                                {
                                    $faqdoc['description'] = $lang->$langdescvar;
                                }
                            }
                            $altbg = alt_trow();
                            eval("\$faqbits .= \"".$templates->get("misc_faq_section_bit")."\";");
                        }
                    }
                    $expdisplay = '';
                    $sname = "sid_".$section['sid']."_c";
                    if($collapsed[$sname] == "display: show;")
                    {
                        $expcolimage = "collapse_collapsed.gif";
                        $expdisplay = "display: none;";
                    }
                    else
                    {
                        $expcolimage = "collapse.gif";
                    }
                }
                eval("\$sections .= \"".$templates->get("misc_faq_section")."\";");
            }
        }

        $plugins->run_hooks("misc_faq_section_end");

        eval("\$faq = \"".$templates->get("misc_faq")."\";");
        output_page($faq);
    }
}

Schließlich habe ich im Header den Link eingefügt.

Problem: die Tabelle(n) ist/sind nicht eingerichtet:

SQL Error:
1146 - Table 'usr_web17_1.mybb_faqsections' doesn't exist
Query:
SELECT h.*, s.enabled AS section FROM mybb_helpdocs h LEFT JOIN mybb_faqsections s ON (s.sid=h.sid) WHERE h.hid='0'

Meine Frage nun: wie mache ich das? Oder habe ich sonstwo Fehler eingebaut (was durchaus sein kann *g*).

Ganz lieben Dank schonmal, Andy


RE: Hilfeseite "clonen" - neue Seite erstellen - Michael - 04.09.2008

Du musst die Datenbanktabellen dazu noch anlegen. Die Queries für die Originaltabellen findest du in der Datei installl/ressources/mysql_tables.php. Du musst die entsprechenden Abfragen dann auch ändern (Datenbanktabellennamen ändern) und dann ausführen.


RE: Hilfeseite "clonen" - neue Seite erstellen - GPTrader - 04.09.2008

Danke dir!

Die entsprechenden Befehle müssten dann ja so lauten (bis auf den Namen identisch mit helpdocs):

Code:
$tables[] = "CREATE TABLE mybb_faqdocs (
  hid smallint unsigned NOT NULL auto_increment,
  sid smallint unsigned NOT NULL default '0',
  name varchar(120) NOT NULL default '',
  description text NOT NULL,
  document text NOT NULL,
  usetranslation int(1) NOT NULL default '0',
  enabled int(1) NOT NULL default '0',
  disporder smallint unsigned NOT NULL default '0',
  PRIMARY KEY  (hid)
) TYPE=MyISAM;";


$tables[] = "CREATE TABLE mybb_faqsections (
  sid smallint unsigned NOT NULL auto_increment,
  name varchar(120) NOT NULL default '',
  description text NOT NULL,
  usetranslation int(1) NOT NULL default '0',
  enabled int(1) NOT NULL default '0',
  disporder smallint unsigned NOT NULL default '0',
  PRIMARY KEY (sid)
) TYPE=MyISAM;";


Edit: Sooo, die Einrichtung der Tabelle habe ich hinbekommen - bleibt nur noch offen warum ich nun in der oberen linken Bildschirmecke komische Sonderzeichen habe und warum überhaupt Umlaute nicht mehr richtig funktionieren - wohlgemerkt nur, wenn ich in der "FAQ" bin...


RE: Hilfeseite "clonen" - neue Seite erstellen - Mak - 04.09.2008

Scheint was mit der Codierung nicht zu stimmen. Hast du vielleicht einen Link?


RE: Hilfeseite "clonen" - neue Seite erstellen - Mak - 05.09.2008

Wenn du neue Sprachdateien erstellt hast, kann es gut sein, dass du sie falsch codiert hast. Du musst sicherstellen, dass alle Sprachdateien UTF-8 codiert sind. Das lässt sich in jedem vernünftigen Editor einstellen.


RE: Hilfeseite "clonen" - neue Seite erstellen - GPTrader - 05.09.2008

Hey,

so, ein Teil des Problems hatte sich erledigt, nachdem ich den UTF-8 Mod installiert hatte... die Sonderzeichen waren verschwunden.
Ein weiterer Fehler schien wirklich in der Sprachdatei zu liegen: Habe ich die helpdics.lang umbenannt in faqdocs.lang erschien auch der Text richtig formatiert, habe ich die von mir erstellte Daten (die helpdocs.lang umgeschrieben, eigentlich nicht verändert) verwendet, erschien der Text ohne jede Beachtung der Stylesheets...keine Ahnung warum.

Darüber hinaus hatte ich keinen Blassen schimmer, wo ich einstelle welches FAQ-Thema in welcher Kategorie erscheienn soll...
lange Rede, kurzer Sinn: ich habe es aufgegeben und die bestehende Hilfeseiten benutzt, im ACP umgeschrieben und den Link-Namen im Header geändert. Nu ist eigentlich alles wunderbar :-) Nur das Warum ist noch nicht geklärt *g*

Dennoch Danke für eure Hilfe!