bumpy 0 Report post Posted February 5, 2004 Hatte die Frage vor einiger Zeit schon mal auf einem anderen Board gestellt, aber leider keine Antwort bekommen, vielleicht ist ja hier jemand der mir helfen kann? Hi, ich bin gerade dabei eine etwas umfangreichere FAQ für mein Forum zu erstellen. Das wird über die normalen "Board Guidelines/Rules" die man im ACP aktivieren kann etwas unübersichtlich. Ich hätte gerne das es so dargestellt wird wie bei der "Hilfe". Also das zuerst nur die Themen angezeigt werden und auch eine kleine Suchfunktion integriert ist. Gibt es da eine Möglichkeit die "Hilfe"-Funktion doppelt zu nutzen oder eine andere Lösung in dieser Art? Share this post Link to post
Stefan 0 Report post Posted February 5, 2004 Also wenn es genau so aufgebaut werden soll, wie die Hilfe, dann wäre die einfachste Möglichkeit, die entsprechenden Sourcedateien anzupassen. Zunächst brauchst du eine identische Tabelle CREATE TABLE ibf_mod_myfaq ( id mediumint(8) NOT NULL auto_increment, title varchar(128) NOT NULL default '', text text, description text NOT NULL, PRIMARY KEY (id) ) TYPE=MyISAM; Nun machst du dir eine Kopie von der Help.php und benennst diese in MyFAQ.php um. Anschließend öffnest du diese Datei und suchst in dieser den String ibf_faq. Diesen änderst du dann in ibf_mod_myfaq um, was insgesamt dreimal der Fall sein sollte. Jetzt änderst du noch lang_help in lang_mod_myfaq und skin_help in skin_mod_myfaq um. Dann noch Kopien von den Dateien skin_help.php und lang_help.php machen. Diese dann umbenennen in skin_mod_myfaq.php und lang_mod_myfaq.php. Du hast also nun eine Sourcedatei (MyFAQ.php) und je nach Anzahl von Skins und Sprachpaketen jeweils nch eine Skindatei (skin_mod_myfaq.php) und Sprachdatei (lang_mod_myfaq.php). Wichtig, die originalen Dateien der Hilfe natürlich nicht löschen, denn die müssen weiterhin existieren, da ja ansonsten nicht mehr die eigentliche Hilfe funktionieren würde. Nun noch in der index.php unterhalb von 'module' => 'modules', folgendes einfügen 'myfaq' => 'MyFAQ', Jetzt kann man das schon mit index.php?act=myfaq aufrufen. Jedoch muß du in der neuen Skindatei noch zwei Änderungen vornehmen. Aus folgender Zeile <a href='{$ibforums->base_url}act=Help&CODE=01&HID={$entry['id']}'> machst du <a href='{$ibforums->base_url}act=myfaq&CODE=01&HID={$entry['id']}'> und aus <input type='hidden' name='act' value='Help' /> dann noch <input type='hidden' name='act' value='myfaq' /> Somit sollte dies soweit schon funktionieren. Nun muß man dies nur noch im ACP einbauen, damit du es editieren kannst. Dazu schreib ich gleich nochwas. :) Share this post Link to post
Stefan 0 Report post Posted February 5, 2004 Okay, hier noch kurz für das ACP die entsprechende Duplizierung der Hilfe. Datei ad_help.php duplizieren und umbenennen in ad_myfaq.php. Nun innerhalb der Datei alle ibf_faq in ibf_mod_myfaq umbenennen (kommt 5 mal vor). Anschließend alle act=help in act=myfaq umwandeln (6 mal). Jetzt kannst du noch überall wo $ADMIN->save_log(TEXT); den entsprechenden Text anpassen, so das in den Adminlogs ersichtlich wird, das es deine FAQ sind, die bearbeitet wurden und nicht die Hilfe. Beispiel: Aus $ADMIN->save_log("Edited help files"); wird $ADMIN->save_log("Edited faq files"); Kannst natürlich auch noch die anderen Texte (Überschrift usw.) anpassen, darauf gehe ich jetzt aber, aus Zeitgründen, nicht ein. Jetzt öffne nur noch die admin_pages.php und suche folgende Stelle: 4 => array( 'Recount Statistics', 'act=op&code=count' ), Direkt darunter fügst du folgendes ein: 5 => array( 'Manage FAQ Files', 'act=myfaq' ), Sollte die 5 schon belegt sein, nehm die nächste freie Ziffer. Nun solltest du im ACP unter Administration => Manage FAQ Files deine FAQs eingeben können. Wie gesagt, ist nur ein schneller Workaround und sollte funktionieren. Konnte es jetzt nicht testen. :) Share this post Link to post
bumpy 0 Report post Posted February 5, 2004 Hi Stefan! Ist ja der wahnsinn, so schnelle und vor allem so persönlich zugeschnittene Hilfe! Find ich einfach klasse. Werde mich gleich mal dran setzen und es ausprobieren und mich dann wieder melden. Also erst mal schon vieeeeeeeelen Dank. Share this post Link to post
Anderl72 0 Report post Posted February 5, 2004 ich bin mir nicht sicher, aber Stefan hat glaub ich vergessen zu erwähnen, dass du deine neue ibf_mod_faq noch auf die alten lang und skin dateien verweist: $ibforums->lang = $std->load_words($ibforums->lang, 'lang_help', $ibforums->lang_id ); $this->html = $std->load_template('skin_help'); da müssen m.E. deine neuen skin und lang dateien rein Ob man auch die die idx, class und function "Help" in "MyFAQ" umbennen muss bin ich mir nicht sicher :ph34r: Share this post Link to post
Stefan 0 Report post Posted February 5, 2004 Jetzt änderst du noch lang_help in lang_mod_myfaq und skin_help in skin_mod_myfaq um. Dann noch Kopien von den Dateien skin_help.php und lang_help.php machen. Diese dann umbenennen in skin_mod_myfaq.php und lang_mod_myfaq.php. Nein, das hab ich nicht vergessen zu erwähnen, weil es nicht der Fall ist. Siehe Zitat. Das Umbennen der Klasse kann man, muß man aber nicht machen, dementsprechend war ich so frei und hab es nicht getan, um die Änderungen für den Anfang so minimal wie möglich zu halten. ;) Share this post Link to post
bumpy 0 Report post Posted February 5, 2004 Mit dem ersten Teil bin ich so weit fertig. Beim aufruf kommt folgende Meldung: Fatal error: Cannot instantiate non-existent class: skin_mod_myfaq in /home/www/web93/html/forum/sources/functions.php on line 618 require ROOT_PATH."Skin/".$ibforums->skin_id."/$name.php"; return new $name(); } else { Werde das jetzt noch mal überprüfen. Share this post Link to post
Stefan 0 Report post Posted February 5, 2004 Ja, das ist mir durchgegangen, denn bei der Skindatei muß man den Klassennamen ändern. Also Datei skin_mod_myfaq.php öffnen und folgende Stelle suchen: class skin_help { Dies änderst du mal in class skin_mod_myfaq { und dann sollte dieser Fehler verschwunden sein. :) Share this post Link to post
bumpy 0 Report post Posted February 5, 2004 (edited) So, jetzt bin ich durch. Der Fehler von vorhin hat sich mit der Änderung des Klassennamen behoben. Bei der ad_myfaq.php hatte ich bei der suche nach "Help" noch ein paar Stellen gefunden, wo ich mir nicht sicher war ob ich das ändern sollte. ADMIN->html .= $SKIN->start_form( array( 1 => array( 'code' , $code ), 2 => array( 'act' , 'help' ), 3 => array( 'id' , $IN['id'] ), ) ); $ADMIN->html .= $SKIN->add_td_row( array( "<b>".stripslashes($r['title'])."</b><br>".stripslashes($r['description']), "<center><a href='".$SKIN->base_url."&act=help&code=edit&id={$r['id']}'>Edit</a></center>", "<center><a href='".$SKIN->base_url."&act=help&code=remove&id={$r['id']}'>Remove</a></center>", ) ); } } $ADMIN->html .= $SKIN->add_td_basic("<a href='".$SKIN->base_url."&act=help&code=new'>Add New Help File</a>", "center", "title" ); $DB->query("DELETE FROM ibf_mod_myfaq WHERE id='".$IN['id']."'"); $ADMIN->save_log("Removed a FAQ file"); $std->boink_it($SKIN->base_url."&act=help"); exit(); } Im ACP ist zwar der Manage-FAQ-Eintrag vorhanden, aber es öffnet sich dann im Moment nur noch mal das ACP. Edited February 5, 2004 by bumpy Share this post Link to post
Stefan 0 Report post Posted February 5, 2004 Ja, jedes act=help in act=myfaq, wie ich gesagt habe und das wären die von dir geposteten Stellen. Bei dem Code ADMIN->html .= $SKIN->start_form( array( 1 => array( 'code' , $code ), 2 => array( 'act' , 'help' ), 3 => array( 'id' , $IN['id'] ), ) ); natürlich das help auch gegen myfaq austauschen. Und was mir noch untergegangen ist, ist eine Änderung in der admin.php. War halt gerade etwas stressig. Also öffne admin.php und suche: 'help' => 'help', Füge darunter ein: 'myfaq' => 'myfaq', Nun sollte er wirklich die entsprechende Seite öffnen, falls ich nicht noch was vergessen habe. ;) Share this post Link to post
bumpy 0 Report post Posted February 5, 2004 Nein, du hast nichts mehr vergessen, so weit ich das jetzt überprüft habe. Es funktioniert jetzt bei mir alles wunderbar. Muss ich mal sagen, du hast mir echt sehr geholfen und das obwohl du anscheinend auch noch gerade Stress hattest. Das ich vor dir den Hut ziehen, wie du dich generell mit dem IPB auskennst ist ja eh klar. Also noch mal tausend Dank für deine wirklich sehr kompetente Hilfe. Falls das jemand ebenfalls einbauen möchte hier noch ein paar kleine Ergänzungen. Einfügen eines Links zum FAQ: skin_global.php vor: <img src="{$ibforums->vars['img_url']}/atb_help.gif" border="0" alt="" /> <a href='{$ibforums->base_url}act=Help'>{$ibforums->lang['tb_help']}</a> einfügen: <img src="{$ibforums->vars['img_url']}/atb_my_faq.gif" border="0" alt="" /> <a href='{$ibforums->base_url}act=myfaq'>{$ibforums->lang['tb_myfaq']}</a> atb_my_faq.gif erstellen und entsprechend in das Verzeichniss: /html/forum/style_images/xxx Übersetzung des Links lang_global.php irgendwo einfügen $lang['tb_myfaq'] = "FAQ"; Textänderung Hilfe->FAQ lang_mod_myfaq.php Änderung der Texte wie z.b. Hilfe-Datenbank in FAQ-Datenbank usw. Share this post Link to post
Stefan 0 Report post Posted February 5, 2004 Kein Problem und schön, das ich dir helfen konnte. :) Share this post Link to post
TomCrow 0 Report post Posted February 5, 2004 Das klingt wirklich interessant!! Hab nur eine kleine Zusatzfrage: funktioniert denn auch die Hilfefunktion dort..? (wär echt klasse.. ).. mfg, Tom Share this post Link to post
bumpy 0 Report post Posted February 5, 2004 Was genau meinst du denn mit der Hilfefunktion? Meinst du die Suche innerhalb diesem Bereich? Das Funktioniert, es ist alles genauso wie bei der Hilfe, bloß mit eigenen Datenbankeinträgen und daher anderem Inhalt. Share this post Link to post
TomCrow 0 Report post Posted February 5, 2004 (edited) ähh.. Da war meine Schnellantwort ein bissl zu schnell - ich meinte natürlich: Suchfunktion.. Also, danke für Deine Antwort!! mfg, Tom Edited February 5, 2004 by TomCrow Share this post Link to post
bumpy 0 Report post Posted February 6, 2004 Noch eine kleine Ergänzung! Wenn man in der Boardstatistik auch bei den Onlinebenutzern sehen möchte ob jemand gerade im neuen FAQ-Bereich ist kann man das folgendermaßen machen: (hier mal als Bespiel für Deutsch und Englisch) html/forum/lang/de/lang_online.php einfügen $lang['WHERE_myfaq'] = "Ansicht der FAQ"; html/forum/lang/en/lang_online.php einfügen WHERE_myfaq => "Viewing FAQ", Share this post Link to post