MKPortal SingleBoard 1.4.2 Invision Power Board 1.3
| Mod Beschreibung |
MKPortal for Invisionboard (Please read the instructions below) |
| Mod Kompatibilität |
Invision Power Board 1.3 |
| Mod Kategorie |
Major Mod |
| Mod Autor |
Coder: Meo, Peter Designer: Kim Tester and Translator: Our team at mkportal.it |
| Mod Emailadresse des Autors |
luponero@mclink.it, Peter@ibforen.de |
| Dokumentationspfad |
sources/mods/mkportal/mod_mkportal_howto.htm |
| Mod Version |
1.4.2 |
| Hinweis |
Weitergabe ohne Zustimmung ist untersagt. Download von ibforen.de oder invisionize.com
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 8th January, 2007
Erstellungsdatum: 2007-09-11
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_mkportal |
Inhalt
1.4.2- Code für Skin- und Sprachänderung aus index.php entfernt
1.3 Final ⇒ 1.4- Zahlreiche Bugfixes
- Update for TinyMCE
- ...
Es müssen sämtliche Dateien ausgetauscht und eine Neuinstallation im IPB ACP durchgeführt werden.
Bei einem Upgrade eines bestehenden MKPortals 1.3 muss das Upgradescript upgrade_13_14.php aufgerufen werden. Das Script sollte anschließend gelöscht werden.
| Changed file |
Changed function |
| index.php |
body |
| sources/Drivers/mySQL.php |
class properties or methods |
| sources/Drivers/mySQL.php |
query(..) |
| sources/functions.php |
authorise(..) |
| sources/functions.php |
board_offline(..) |
| sources/functions.php |
class properties or methods |
| sources/functions.php |
do_output(..) |
| sources/functions.php |
do_output(..), do_output(..) |
| sources/functions.php |
Error(..) |
| sources/lib/emailer.php |
build_headers(..) |
| sources/Login.php |
delete_cookies(..) |
EntpackenEntpacke das ZIP-Archiv. In dem Archiv befindet sich der Ordner ./ uploads mit zwei weiteren Ordnern
Invisionboard und
mkportal.
Kopiere die Invisionboard DateienKopiere alle Dateien und Ordner im Ordner
Invisionboard in das Hauptverzeichnis deines IPB und achte auf die Verzeichnisstruktur.
Am besten kpopierst du einfach den gesamten Inhalt des Ordner Invisionboard.Er ist bereits vorstrukturiert.
- archive_in ⇒ archive_in // Hier befindet sich der neue Multilanguage Skin mkportal_int
- sources/mods/mkportal ⇒ sources/mods/mkportal
- lang/en/mod_customize_lang.php ⇒ lang/en/mod_customize_lang.php
Die anderen Sprachdateien sollten in die entsprechenden Ordner kopiert werden.
Beispiel:
Wenn die Sprache Deutsch sich im Ordner lang/2 befindet, solltest du
lang/German/mod_customize_lang.php ⇒ lang/2/mod_customize_lang.php - Skin/s1/mod_mkportal_skin.php ⇒ Skin/s1/mod_mkportal_skin.php
Diese Datei sollte in alle weiteren Skinordner kopiert werden. Du kannst diese Datei anpassen, um MKPortal besser an den aktuellen Skin des Invisionboard anpassen zu können.Vergiss nicht, die Templates in der Datenbank über das ACP anzupassen.
Kopiere die MKPortal DateienNeue Installation- Kopiere den gesamten Ordner mkportal in denselben Ordner, wo auch bereits das Invisionboard ist. Ändere nicht den Ordnernamen mkportal.
- Kopiere die Datei index.php im Ordner upload in den Ordner oberhalb von mkportal.
UpgradeBefolge die gleiche Anweisungen wie oben, kopiere aber nicht die Datei mkportal/conf_mk.php. Überschreibe diese Datei nicht, denn sie enthält die Konfiguration des bisherigen MKPortals.
Achtung:
Wenn bereits neue Blöcke erzeugt worden sind, so sollte auch lang_update nach lang kopiert werden und nicht der Ordner lang.
Nach diesen Schritten liegt folgende Struktur vor:
- ./index.php
- ./upgrade_11a_12.php
- ./upgrade_101_11.php
- ./mkportal
- ./[dein ipb]
BeispielNehmen wir an, das Invisionboard befindet sich in /home/htdocs/forum, dann sollte die folgende Struktur vorliegen:
- /home/htdocs/index.php
- /home/htdocs/forum
- /home/htdocs/mkportal
Berechtigungen (chmod)Nun müssen einige Rechte auf die Verzteichnisse und Dateien gesetzt werden.
- Alle Verzeichnisse, in denen MKPortal neue Dateien oder Unterverzeichnisse erzeugen muss, müssen auf 0777 gesetzt werden.
- Alle Dateien, in die MKPortal schreiben muss, müssen auf 0777 gesetzt werden
(Manchmal kann man niedrigere Rechte setzen, aber nur dann, wenn man den Benutzer (bzw. Gruppe) kennt, unter dem das Script auf das Dateisystem zugreift)
Verwende dein FTP-Programm und setze die Berechtigungen wie folgt:
- mkportal itself: 0777
- mkportal/conf_mk.php: 0666
- mkportal/blog: 0777
- mkportal/cache: 0777
- mkportal/files: 0777
- mkportal/files/downloads: 0777
- mkportal/files/gallery: 0777
- mkportal/files/reviews: 0777
- mkportal/files/uploads: 0777
- mkportal/lang/xx: 0777 (alle Unterverzeichnisse in diesem Verzeichnis)
- mkportal/lang/xx/xx: 0666 (alle Dateien in den Unterverzeichnissen, nicht aber das Verzeichnis admin).
Schritt 1: Öffne index.php
A. Suche
$DB->obj['sql_tbl_prefix'] = $INFO['sql_tbl_prefix'];
|
Füge darunter ein den blauen Code
$DB->obj['sql_tbl_prefix'] = $INFO['sql_tbl_prefix'];
//-- mod_mkportal begin
define('IN_FORUM', TRUE);
define("MK_PATH", "../");
require MK_PATH."mkportal/conf_mk.php";
if ($MK_CONFIG['forum_view'] == "1") {
unset ($DB);
require MK_PATH."mkportal/include/mk_mySQL.php";
$DB = new mk_db_driver( $INFO['sql_database'],
$INFO['sql_user'],
$INFO['sql_pass'],
$INFO['sql_host'],
$INFO['sql_tbl_prefix'],
$MK_CONFIG['mk_tbl_prefix'],
$INFO['debug_level']
);
}
//-- mod_mkportal end
|
B. Suche
$skin_universal = $std->load_template('skin_global');
|
Füge darunter ein den blauen Code
$skin_universal = $std->load_template('skin_global');
//-- mod_mkportal begin
define('IN_MK', TRUE);
if ($MK_CONFIG['forum_view'] == "1") {
require MK_PATH."mkportal/include/functions.php";
require "$mklib->template_path/tpl_main.php";
}
//-- mod_mkportal end
|
Schritt 2: Öffne sources/functions.php
A. Suche in function
Error(..)
}
$print = new display();
|
Füge darunter ein den blauen Code
}
$print = new display();
//-- mod_mkportal begin
global $MK_CONFIG, $Skin, $mklib;
if (!defined("IN_IPB")) {
$this->boink_it($MK_CONFIG['forum_path']."/index.php");
}
if (!defined("IN_MK")) {
define('IN_MK', TRUE);
require MK_PATH."mkportal/include/functions.php";
require "$mklib->template_path/tpl_main.php";
}
if ($MK_CONFIG['forum_view'] == "1") {
if (!class_exists("mkportal") ) {
if (file_exists(ROOT_PATH."sources/mods/mkportal/mod_mkportal_func.php")) {
require ROOT_PATH."sources/mods/mkportal/mod_mkportal_func.php";
}
else {
die("Could not call required function from file 'sources/mods/mkportal/mod_mkportal_func.php'<br />Does it exist?");
}
}
$print->add_output($mkportal->insert_js());
$print->add_output($html);
$print->to_print = str_replace( "<% MEMBER BAR %>", "", $print->to_print);
$FORUM_OUT = $mkportal->clean_html($print->to_print);
$mklib->forum['js'] = $FORUM_OUT['js'];
$mklib->forum['css'] = $FORUM_OUT['css'];
$mklib->printpage(!$mklib->forumcs, !$mklib->forumcd, $mklib->sitename."->".$ibforums->lang['error_title'], $FORUM_OUT['html']);
exit();
}
//-- mod_mkportal end
|
B. Suche in function
board_offline(..)
$html = $skin_universal->board_offline( $msg );
$print = new display();
|
Füge darunter ein den blauen Code
$html = $skin_universal->board_offline( $msg );
$print = new display();
//-- mod_mkportal begin
global $MK_CONFIG;
if ($MK_CONFIG['forum_view'] == "1") {
$TAGS = $DB->query("SELECT macro_value, macro_replace FROM ibf_macro WHERE macro_set={$ibforums->skin['macro_id']}");
while ( $row = $DB->fetch_row($TAGS) ) {
if ($row['macro_value'] != "") {
$print->to_print = str_replace( "<{".$row['macro_value']."}>", $row['macro_replace'], $print->to_print );
}
}
$print->to_print = str_replace("<#IMG_DIR#>", $ibforums->skin['img_dir'], $print->to_print);
if (!class_exists("mkportal") ) {
if (file_exists(ROOT_PATH."sources/mods/mkportal/mod_mkportal_func.php")) {
require ROOT_PATH."sources/mods/mkportal/mod_mkportal_func.php";
}
else {
die("Could not call required function from file 'sources/mods/mkportal/mod_mkportal_func.php'<br />Does it exist?");
}
}
$print->add_output($mkportal->insert_js());
$print->add_output($html);
$print->to_print = str_replace( "<% MEMBER BAR %>", "", $print->to_print);
global $mklib;
$FORUM_OUT = $mkportal->clean_html($print->to_print);
$mklib->forum['js'] = $FORUM_OUT['js'];
$mklib->forum['css'] = $FORUM_OUT['css'];
$mklib->printpage(!$mklib->forumcs, !$mklib->forumcd, $mklib->sitename."->".$ibforums->lang['offline_title'], $FORUM_OUT['html']);
exit();
}
//-- mod_mkportal end
|
C. Suche in function
do_output(..)
$nav = $skin_universal->start_nav();
|
Füge darunter ein den blauen Code
$nav = $skin_universal->start_nav();
//-- mod_mkportal begin
global $MK_CONFIG;
if (!$MK_CONFIG['forum_view']) {
$nav .= "<a href='".$MK_CONFIG['site_url']."/index.php'>".$MK_CONFIG['site_name']."</a>"."<{F_NAV_SEP}>";
}
//-- mod_mkportal end
|
D. Suche in function
do_output(..)
$this_header = $skin_universal->BoardHeader();
|
Füge darüber ein den blauen Code
//-- mod_mkportal begin
global $MK_CONFIG;
if ($MK_CONFIG['forum_view'] == "1" ) {
if (!class_exists("mkportal") ) {
if (file_exists(ROOT_PATH."sources/mods/mkportal/mod_mkportal_func.php")) {
require ROOT_PATH."sources/mods/mkportal/mod_mkportal_func.php";
}
else {
die("Could not call required function from file 'sources/mods/mkportal/mod_mkportal_func.php'<br />Does it exist?");
}
}
$this_header = $mkportal->insert_js();
}
else
//-- mod_mkportal end
$this_header = $skin_universal->BoardHeader();
|
E. Suche in function
do_output(..)
if ($ibforums->member['show_popup'])
|
Füge darüber ein den blauen Code
//-- mod_mkportal begin
if (empty($output_array['OVERRIDE']) && $MK_CONFIG['forum_view'] != "1") {
if ($ibforums->member['show_popup']) {
$DB->query("UPDATE ibf_members SET show_popup=0 WHERE id={$ibforums->member['id']}");
if ( $ibforums->input['act'] != 'Msg' ) {
$pm_js = $skin_universal->PM_popup();
}
}
}
else {
$css = preg_replace("`url\s*\(css.php`i", "url(".$ibforums->vars['board_url']."/css.php", $css);
}
//-- mod_mkportal end
if ($ibforums->member['show_popup'])
|
F. Suche in function
do_output(..), do_output(..)
if ( empty($output_array['OVERRIDE']) )
|
Füge darüber ein den blauen Code
//-- mod_mkportal begin
if (empty($output_array['OVERRIDE']) && $MK_CONFIG['forum_view'] == "1") {
$ibforums->skin['template'] = str_replace( "<% MEMBER BAR %>", "", $ibforums->skin['template']);
}
//-- mod_mkportal end
if ( empty($output_array['OVERRIDE']) )
|
G. Suche
print $ibforums->skin['template'];
exit;
|
Füge darüber ein den blauen Code
//-- mod_mkportal begin
if ($MK_CONFIG['forum_view'] == "1") {
if (empty($output_array['OVERRIDE'])) {
global $mklib;
$FORUM_OUT = $mkportal->clean_html($ibforums->skin['template']);
unset($ibforums->skin['template']);
$mklib->forum['js'] = $FORUM_OUT['js'];
$mklib->forum['css'] = $FORUM_OUT['css'];
$nav = str_replace("<{F_NAV_SEP}>", "->", $nav);
$nav = preg_replace("`<.*?".">`", "", $nav);
$mklib->printpage(!$mklib->forumcs, !$mklib->forumcd, $mklib->sitename."->".$nav, $FORUM_OUT['html']);
exit();
}
else {
$ibforums->skin['template'] = preg_replace("`('|\")style_images/`i", "\\1".ROOT_PATH."style_images/", $ibforums->skin['template']);
}
}
//-- mod_mkportal end
print $ibforums->skin['template'];
exit;
|
H. Suche in function
authorise(..)
Füge darüber ein den blauen Code
//-- mod_mkportal begin
if (! $this->member['id'])
{
$lang = $std->my_getcookie('language');
if ($lang) {
$this->member['language'] = $lang;
}
$skin = $std->my_getcookie('skin');
if ($skin !== FALSE) {
$this->member['skin'] = $skin;
}
}
//-- mod_mkportal end
return $this->member;
}
|
Schritt 3: Öffne sources/Login.php
Suche in function
delete_cookies(..)
$std->my_setcookie('forum_read', '-1');
|
Füge darunter ein den blauen Code
$std->my_setcookie('forum_read', '-1');
//-- mod_mkportal begin
$std->my_setcookie('language', 'en');
//-- mod_mkportal end
|
Schritt 4: Öffne sources/lib/emailer.php
Suche in function
build_headers(..)
$this->mail_headers .= "X-Mailer: IPB PHP Mailer\n";
|
Füge darunter ein den blauen Code
$this->mail_headers .= "X-Mailer: IPB PHP Mailer\n";
//-- mod_mkportal begin
$offset = $ibforums->vars['time_offset'];
$offset += $ibforums->vars['time_adjust']/60;
$offset_h = floor(abs($offset));
$offset_m = round((abs($offset) - $offset_h)*60);
$offset_h = str_pad($offset_h, 2, "0", STR_PAD_LEFT);
if ($offset < 0) {
$offset_h = "-".$offset_h;
}
else {
$offset_h = "+".$offset_h;
}
$offset_m = str_pad($offset_m, 2, "0", STR_PAD_LEFT);
$this->mail_headers .= "Date: ".date("D, d M Y H:i:s ", time()).$offset_h.$offset_m."\n";
//-- mod_mkportal end
|
Schritt 5: Öffne sources/Admin/admin_functions.php
Schritt 6: Öffne sources/Drivers/mySQL.php
A. Suche
Füge darunter ein den blauen Code
'debug' => 0,
//-- mod_mkportal begin
'debug_level' => 0,
//-- mod_mkportal end
|
B. Suche in function
query(..)
$this->obj['cached_queries'][] = $the_query;
|
Füge darüber ein den blauen Code
//-- mod_mkportal begin
if ($this->obj['debug_level'] >= 3)
//-- mod_mkportal end
$this->obj['cached_queries'][] = $the_query;
|
Neue Installation des MKportalStarte das Installationsscript im Ordner mkportal
http://.../mkportal/mk_install.phpund befolge die Anweisungen.
Anpassung des InvisionboardZitat
Wichtig
Bevor due die Invisionboard Dateien modifizierst, versichere dich, dass der Mod Customize Date In Your Own language mit dem mod_token mod_customize_date nicht installiert ist. Sollte dies doch der Fall sein, entferne ihn bitte. Dieser Mod ist bereits in MKportal integriert.
Einige Dateien müssen modifiziert werden. Folge den obigen Anweisungen oder verwende den ModInstaller (empfohlen).
Anpassung der Sprachübersetzung für die MKPortal SprachnamenDieser Schritt kann direkt im Kontrollcenter des MKPortals erfolgen. Gehe zu Portal CP ⇒ Einstellungen und ordne den Sprachen des MKPortals die entsprechenden Sprachen des Invisionboards zu.
Integration des MKPortal in das Skinsystem des InvisionboardsMKPortal enthält im Ordner templates einen Ordner Forum_Skin mit dem Template "Forum_Skin".
- Gehe in das Kontrollcenter des MKPortal und wähle dieses Skintemplate aus. Nun wird das Portal das Design des Invisionboards übernehmen.
Neuer MKPortal Skin für das Invisionboard 1.3Wir haben dem Archiv einen neuen Skin mKPortal_int mit Button in mehreren Sprachen hinzugefügt. Wenn du diesen Skin im ACP des Invisionboards importiert hast, wirst du mehrere Unterordner in style_images/mkportal-xxx finden.
Diese Ordner sind nach Sprachen benannt: en, de, fr, it etc. und ihr Zweck wird unmittelbar einleuchtend sein. Mit den veränderten Invisionboard Dateien wirst du in der Lage sein, unterschiedliche Sprachbutton je nach Benutzersprache anbieten zu können. Die Auswahl erfolgt dann automatisch.
Schau dir den Ordner lang des Invisionboard an und merke dir die Ordnernamen. Sie sind etwa wie en, 2, 3 etc. Schau dir einige Dateien in diesen Ordnern an, damit du weißt, welche Sprache darin gespeichert ist
Nun benenne die neuen Ordner in style_images/mkportal_xxx passend zu den Ordnern in lang.
Du kannst diese Lösung auch für andere Skins des Invisionboard verwenden, falls du Button in verschiedenen Sprachen zur Verfügung hast. Erstelle einfach neue Ordner in style_images/xx, wo sich der Skin befindet und lege die gleiche Struktutr an, wie oben beschrieben. Kopiere dann die die Originalgrafiken aus style_images/xx in diese Ordner und anschließend kopiere die neuen Button in diese Verzeichnisse hinein.
Wenn die Benutzer dann ihre Sprache auswählen, wird Invisionboard diese neuen Ordner verwenden. Wird eine Sprache gewählt, für die kein Unterordner existiert, so wird der Standardordner verwendet.
Upgrade MKportal 0.1 ⇒ MKPortal 1.0.xStarte das Upgrade Script upgrade.php im Ordner mkportal. Vergiss nicht, diese Datei anschließend zu entfernen.
Upgrade MKportal 1.0.1 ⇒ MKPortal 1.1- Starte das Upgrade Script upgrade_101_11.php im Wurzelverzeichnis deiner Site, also dort, wo sich index.php des Portal befindet. Es wird die Datenbank anpassen.
Vergiss nicht, diese Datei anschließend zu entfernen. - Entferne alle Modifikationen des Invisionboard, die eine frühere MKPortal-Installation vorgenommen hat.
- Entferne alle Modifikationen des Invisionboard, die eine frühere Installation des Mod "Customize Date In Your Own Language" vorgenommen hat (falls notwendig). Verwende am besten den ModInstaller (empfohlen).
- Modifiziere dann die Invisionboard Dateien wie oben beschrieben. Folge den Anweisungen sorgfältig oder verwende den ModInstaller (empfohlen).
- Gehe dann in das Portal Kontrollcenter und setze die Optionen nach deinen Vorgaben.
Upgrade MKportal 1.1a ⇒ MKPortal 1.2- Starte das Upgrade Script upgrade_11a_12.php im Wurzelverzeichnis deiner Site, also dort, wo sich index.php des Portal befindet. Es wird die Datenbank anpassen.
Vergiss nicht, diese Datei anschließend zu entfernen. - Gehe dann in das Portal Kontrollcenter und setze die Optionen nach deinen Vorgaben.
Upgrade MKportal 1.2 ⇒ MKPortal 1.3- Alle Dateien austauschen wie oben beschrieben.
- Einen neuen Ordner ./mkportal/files/uploads anlegen und mit den Rechten 0777 ausstatten
- Für die Invisionboard-Skins gibt es eine neue mod_mkportal_skin.php. Kopiere sie in die Skin-Ordner und passe sie eventuell an.
- Gehe dann in das Portal Kontrollcenter und setze die Optionen nach deinen Vorgaben.
Feedback ist willkommen und erwünscht. Support und Feedback bei
mkportal.it
1.2 Final ⇒ 1.3- Zahlreiche Bugfixes
- Updates for TinyMCE, FCKEditor and PIRC (Chat module)
- Eine neue Datei css.php im Verzeichnis mkportal zum Laden der css-Styles aus dem Cache-Verzeichnis
Es müssen sämtliche Dateien ausgetauscht und eine Neuinstallation im IPB ACP durchgeführt werden.
Außerdem muss das Upgradescript upgrade_12_13.php aufgerufen werden.
1.2 Final ⇒ 1.3- Zahlreiche Bugfixes
- Einige Änderungen in ipb/sources/functions.php wurden entfernt (function get_date())
- Alle Änderungen in ipb/sources/Admin/admin_functions.php wurden entfernt (function get_date())
Für die automatische Entfernung des Codes ist im howto bzw. in der CodeChange.php ein leerer Bereich. Keine Sorgen wegen eventueller Fehlermeldungen für diese Datei.
Es wird dringend empfohlen, den Mod Security and Bug Update For IPB 1.3.1 bzw. Security and Bug Update For IPB 1.3 zu installieren. - Unbegrenzte Tiefe für Subkategorien in Downloads, Galerie und Besprechungen
- Suchfunktion auch für Besprechungen und Blogs
- Boxen zusammenfaltbar
- Updates for TinyMCE, FCKEditor and PIRC (Chat module)
1.1b Final ⇒ 1.2General- TinyMCE Editor as the third html editor.
It looks a little bit different compared with Multiboard, because I have ordered the buttons similar to Word. The German language files are completed and improved (UTF-8). - RSS Reader Block with management in Portal CP
Admin- ad_download:
Upload files: Existing files will not get overwritten - ad_langs.php:
Select editor (html or raw). This is helpful for the help files - ad_nav.php:
default entries replacable by user defined links (list of default entries remains for selection)
User- Blocks:
- online_home.php:
- User sees only allowed sections
- Anonymous admins are not shown as anonymous members (Stealth mode for admins. This is a MI-Mod for IPB1.3, too)
- Modules:
- blog:
- Use of magic words for the templates, language dependent magic words and system magic words
- Bug in message archive fixed
- chat:
- removing annoying characters from nickname
- nickname = member name (for members only)
- gallery:
- reviews:
- an url is formatted as a clickable link
- an email address is formatted as a clickable mailto link
- Editor:
Copyright line under the editor post box.- fckeditor:
- replaced with newest version 2.0 RC3
- missing xml-file added
- German language files optimized
- TinyMCE:
- Newest stable version 1.43
- German language files optimized
- Basic functions in directory mkportal/include
- link to the shoutbox in last shout was buggy in forum view
- line feed problem for html editors solved
- html filter only for html editors
1.1 Final ⇒ 1.1b- Bugfixes
- Google search in user language