Jump to content
InvisionCommunity.de - Der Deutsche Invision Community Support
Sign in to follow this  
bumpy

"Hilfe" doppelt erstellen

Recommended Posts

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

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&amp;CODE=01&amp;HID={$entry['id']}'>
machst du
<a href='{$ibforums->base_url}act=myfaq&amp;CODE=01&amp;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

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

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

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 :ph34r: 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

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

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

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

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 by bumpy

Share this post


Link to post

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

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="" />&nbsp;<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="" />&nbsp;<a href='{$ibforums->base_url}act=myfaq'>{$ibforums->lang['tb_myfaq']}</a>&nbsp; &nbsp;&nbsp;

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

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

ähh.. :blush: Da war meine Schnellantwort ein bissl zu schnell - ich meinte natürlich: Suchfunktion.. :rolleyes:

Also, danke für Deine Antwort!! :)

mfg,

Tom

Edited by TomCrow

Share this post


Link to post

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

×