Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.8 veröffentlicht (17.10.16)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Hilfeseite "clonen" - neue Seite erstellen
#1
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
#2
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.

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
#3
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...
#4
Scheint was mit der Codierung nicht zu stimmen. Hast du vielleicht einen Link?
#5
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.
#6
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!


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Neue Seite mit gleichen Daten erstellen LSFarmer 10 1.430 02.05.2010, 09:33
Letzter Beitrag: Michael Malin
  Hilfeseite aus Datenbank lesen Sonnenblume 3 580 21.08.2009, 14:37
Letzter Beitrag: Michael
  Forum clonen Player83 8 846 30.06.2009, 16:01
Letzter Beitrag: Player83