Probleme beim Konvertieren

Fragen rund um die Installation, Administration und Benutzung von phpBB.
Forumsregeln
Bitte im Thementitel den Präfix deiner phpBB-Version angeben
BrainsAFK
Mitglied
Beiträge: 72
Registriert: 24.11.2014 02:12
Kontaktdaten:

Probleme beim Konvertieren

Beitrag von BrainsAFK »

Hallo,

ich will gerade mein altes Forum Konvertieren, er sagt mir aber das der alte Boardpfad wohl nicht stimmt.

Code: Alles auswählen

Der Pfad zu deinem alten Board konnte nicht gefunden werden. Bitte prüfe deine Einstellungen und versuche es erneut.
» Der angegebene Quell-Pfad war: ../point
Wie in diesem Thread https://phpbb.de/community/viewtopic.php?f=73&t=148918 für das 3.0.x habe ich schon alle Lösungsansetze versucht wie
set_time_limit(12);
oder Safe Mode auf Off (Standard)
Leider beides ohne Erfolg.

Zum System. Konvertiert wird local; Windows 8.1, Xampp in der neusten Version
Altes Forum: Letzte phpBB2 Version http://localhost/point (C:\xampp\htdocs\point)
Neues Forum: phpBB3.1.x http://localhost/phpbb3 (C:\xampp\htdocs\phpbb)

Der Pfad sollte also ../point lauten weswegen er aber meckert. Getestet wurden aber auch point, /point, ./point, ../point, ./../point, ../../point
Zuletzt geändert von BrainsAFK am 07.03.2015 07:43, insgesamt 1-mal geändert.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: Probleme beim Konvertieren (Board Pfad)

Beitrag von gn#36 »

Der Konverter sucht wie folgt:

Code: Alles auswählen

 442              if (!@file_exists('./../' . $forum_path . '/' . $test_file))
 443              {
 444                  $error[] = sprintf($lang['COULD_NOT_FIND_PATH'], $forum_path);
 445              }
Deine Pfadangabe sollte also mit ../point korrekt sein, da relativ zum neuen Forenpfad.

Außerdem steht in den Converter-Daten:

Code: Alles auswählen

$test_file = 'modcp.php';
Schau mal, ob es in deinem alten Forum eine Datei namens modcp.php gibt. Wenn nicht, leg sie an. Ansonsten probier' alternativ mal einen Converter auf 3.0.13-PL1, es ist gut möglich, dass der besser getestet ist als direkt auf 3.1.x zu gehen. danach kannst du ja dann sofort weiter Updaten auf 3.1.x.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
BrainsAFK
Mitglied
Beiträge: 72
Registriert: 24.11.2014 02:12
Kontaktdaten:

Re: Probleme beim Konvertieren (Board Pfad)

Beitrag von BrainsAFK »

War klar, sowas kann auch nur wieder mir passieren. Ich dank dir

Code: Alles auswählen

$test_file = 'modcp.php';
:oops:
BrainsAFK
Mitglied
Beiträge: 72
Registriert: 24.11.2014 02:12
Kontaktdaten:

Re: Probleme beim Konvertieren

Beitrag von BrainsAFK »

Nun sind 2 weitere Probleme aufgetaucht.

Alle 4002 User wurden ins Forum übertragen. Allerdings gibt es im neuen Forum kein Admin mehr.
Bis auf den User Anonymous wurden alle gelöscht und aus dem alten Forum importiert.

Welche Möglichkeiten habe ich nun um zumindest den Hauptadmin zu erhalten?

Code: Alles auswählen

array(
                'target'        => $helper->get_table('users'),
                'primary'        => 'users.user_id',
                'autoincrement'    => 'user_id',
                'query_first'    => array(
                    array('target', 'DELETE FROM ' . USERS_TABLE . ' WHERE user_id <> ' . ANONYMOUS),
                    array('target', 'DELETE FROM ' . USERS_TABLE . ' WHERE user_id <> 2'),
                    #$helper->get_truncate_statement('bots'),
                ),

                'execute_last'    => '
                    remove_invalid_users();
                ',

                array('user_id',                'users.user_id',                        array('function1' => array($helper, 'get_user_id'))),
                array('',                        'users.user_id AS poster_id',            array('function1' => array($helper, 'get_user_id'))),
                array('user_type',                USER_NORMAL,                        ''),
                array('group_id',                get_group_id('registered'),            ''),
                array('user_regdate',            'users.user_registered_since',                ''),
                array('username',                'users.user_nickname',                    array('function1' => array($helper, 'htmlspecialchars'))),
                array('username_clean',            'users.user_nickname',                    array('function1' =>  array($helper, 'htmlspecialchars'), 'function2' => 'utf8_clean_string')),
                array('user_password',            'users.user_password',                array('function1' => array($helper, 'prefix_hash'))),
                array('user_posts',                'users.user_post_count',                    'intval'),
                array('user_email',                'users.user_email',                    'strtolower'),
                array('user_email_hash',        'users.user_email',                    'gen_email_hash'),
                array('user_birthday',            ((defined('MOD_BIRTHDAY')) ? 'users.user_birthday' : ''),    ''),
                array('user_lastvisit',            'users.user_lastvisit',                'intval'),
                array('user_lastmark',            'users.user_lastvisit',                'intval'),
                array('user_lang',                $config['default_lang'],            ''),
                array('',                        'users.user_def_lang',                    ''),
                array('user_timezone',            'users.user_timezone',                ''),
                array('user_dateformat',        'users.user_dateformat',            array('function1' => array($helper, 'htmlspecialchars'), 'function2' => 'fill_dateformat')),


                array('user_jabber',            '',                                    ''),
                array('user_rank',                0,                    'intval'),
                array('user_permissions',        '',                                    ''),

                array('user_avatar',            'users.user_avatar',                array('function1' => array($helper, 'import_avatar'))),

                array('user_style',                $config['default_style'],            ''),

                array('user_options',            '',                                    'set_user_options'),

                array('user_sig',                    'users.user_signature',                                array('function1' => array($helper, 'prepare_message'))),

                array('',                            'users.user_registered_since AS post_time',                ''),


                'where'            => 'users.user_id <> -1 AND users.user_id <> 2',
            ), 
EDIT: Klar kann das nicht funktionieren :oops:

Es muss lauten:

Code: Alles auswählen

array('target', 'DELETE FROM ' . USERS_TABLE . ' WHERE user_id <> ' . ANONYMOUS . ' AND user_id <> 2'), 
Aber ein anderes Problem habe ich nun. In meinem alten Forum gibt es in der Foren Tabelle kein lleft/right_id. So wie mir aber aufgefallen ist sind diese zwingen Erforderlich für die korrekte Anzeige der Foren. Wie setzt sich diese zusammen bzw. gibt es in phpBB eine Funktion um dies zu generieren?

Ich habe jetzt via phpmmyadmin left_id =2 und reight_id = 1 eingetragen, es funktioniert zwar, dennoch bezweifel ich das dies so korrekt ist.

Problem Nummer 2: Alle Beiträge muss ich nach dem Konvertieren noch frei schalten. Welche Spalte muss ich wärend dem Konvertieren mit welchem Wert füllen um dies zu verhindern.
BrainsAFK
Mitglied
Beiträge: 72
Registriert: 24.11.2014 02:12
Kontaktdaten:

Re: Probleme beim Konvertieren

Beitrag von BrainsAFK »

Abend, Beide Probleme von oben konnte ich Gestern noch Lösen.
Einzig allein fehlen jetzt nur noch die Avatare damit der Converter fertig ist und hoffe das mir dabei schnell geholfen werden kann.

Folgenden Zeile habe ich in der convert_xxx.php

Code: Alles auswählen

 array('user_avatar',            'users.user_avatar',                array('function1' => array($helper, 'phpbb_import_avatar'))), 
In der functions_xxx.php habe ich stehen

Code: Alles auswählen

function phpbb_import_avatar($user_avatar)
    {
        global $convert_row;

            // Uploaded avatar, phpBB eigene Funktion wird aufgerufen
            return import_avatar($user_avatar, false, $convert_row['user_id']);
    } 
Er kopiert nun die Avatare aus dem alten Forum ins neue, mit neuem Namen. In der Datenbank steht allerdings nur die user_id.jpg
Arbeite ich direkt mit import_avatar in dem array (Code 1) werden die Avatare erst garnicht kopiert, geschweige den irgendwas in die DB geschrieben.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: Probleme beim Konvertieren

Beitrag von gn#36 »

Was genau für einen converter nutzt du gerade? Ich dachte du konvertierst von phpBB 2? In 3.1.x sieht das zumindest etwas anders aus: https://www.phpbb.de/infos/3.1/xref/ins ... html#l1547

Ansonsten: Hat der Converter auch Schreibrechte für die Avatare? Sonst kann der die ja gar nicht kopieren.

Kopiert wird in https://www.phpbb.de/infos/3.1/xref/inc ... .html#l549

Allerdings wird scheinbar nie überprüft ob das auch gut gegangen ist. Eventuell hilft zum Debuggen also die Ausgabe von $result in https://www.phpbb.de/infos/3.1/xref/inc ... .html#l667
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
BrainsAFK
Mitglied
Beiträge: 72
Registriert: 24.11.2014 02:12
Kontaktdaten:

Re: Probleme beim Konvertieren

Beitrag von BrainsAFK »

Nein, ich Arbeite an einem Konverter vom CBACK Forum zu 3.1 und habe mir diverse Konverter als Beispiel genommen.
Die functions_convert.php ist mir bekannt, allerdings kann ich nicht alle Funktionen davon nutzen sondern muss diese kopieren und kleine Teile abändern.

So kann ich zb. nicht import_avatar nutzen weil dies eine Fehlermeldung gibt. Ich muss also meine eigene Funktion nutzen und in dieser mit return import_avatar Arbeiten weil ich so Werte übergeben kann.

Nutze ich den phpBB eigenen Importer aus der functions_convert.php, ergibt das leider eine Fehlermeldung da noch weitere Parameter fehlen.

Code: Alles auswählen

array('user_avatar',            'users.user_avatar',                'import_avatar'), 
Daher habe ich eine Eigene Funktion geschrieben die import_avatar mit den Parametern aufruft.

Code: Alles auswählen

array('user_avatar',            'users.user_avatar',                array('function1' => array($helper, 'phpbb_import_avatar'))), 
phpbb_import_avatar ist meine Funktion.

Code: Alles auswählen

function phpbb_import_avatar($user_avatar)
    {
        global $convert_row;

            // Uploaded avatar, phpBB eigene Funktion wird aufgerufen
            return import_avatar($user_avatar, false, $convert_row['user_id']);
    } 
Ich rufe also meine funktion auf um darin für import_avatar fehlende Infos beizufügen wie User ID
Dies klappt soweit. Es kommt keine Fehlermeldung. Die Avatare werden aus dem Alten Forum ins neue mit neuem Namen (avatar_salt_user_id.jpg/png) kopiert (Datein)
Lediglich in der Datenbank werden diese nur mit der User ID abgescpeichert ohne Salt obwohl diese mit dem neuen Namen auch dort abgespeichert werden müssen.
Ich habe mir etliche phpBB Konverter angesehen (VB, WBB, SMF, phpBB2 etc.) und alle haben es genauso wie ich umgesetzt aber diese laufen ohne Fehler.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: Probleme beim Konvertieren

Beitrag von gn#36 »

Ok, das war mir nicht bewusst.
gn#36 hat geschrieben:Allerdings wird scheinbar nie überprüft ob das auch gut gegangen ist. Eventuell hilft zum Debuggen also die Ausgabe von $result in https://www.phpbb.de/infos/3.1/xref/inc ... .html#l667
Hilft das eventuell? Du müsstest ja nur zum Testen mal die Rückgabewerte ausgeben, wie gesagt überprüft die phpBB eigene Funktion gar nicht, ob das gutgeht.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
BrainsAFK
Mitglied
Beiträge: 72
Registriert: 24.11.2014 02:12
Kontaktdaten:

Re: Probleme beim Konvertieren

Beitrag von BrainsAFK »

Ja dies hat geholfen. Pfade konnten nicht gefunden werden. Dies hat man davon wenn man einen unfertigen Konverter als Vorlage nutzt ;)

Ich habe da jetzt was brauchbares gebastelt. Avatare werden nun wie es sein soll umbenannt in 009342551fe9bf69f7c0c5baa998af08_2 (avatar_salt_userid) und ind as richtige Verzeichnis kopiert. Nur in die Datenbank werden diese nicht eingetragen. Mal schauen warum er den SQK Befehl nicht ausführt.

Code: Alles auswählen

function import_avatar($source, $use_target = false, $user_id = false)
    {
        if (empty($source) || preg_match('#^https?:#i', $source) || preg_match('#blank\.(gif|png)$#i', $source))
        {
            return;
        }

        global $convert, $phpbb_root_path, $config, $user, $convert_row;

        // check for trailing slash
        if (rtrim($convert->convertor['avatar_path'], '/') === '')
        {
            $convert->p_master->error(sprintf($user->lang['CONV_ERROR_NO_AVATAR_PATH'], 'import_avatar()'), __LINE__, __FILE__);
        }

        if ($use_target === false && $user_id !== false)
        {
            $use_target = $config['avatar_salt'] . '_' . $user_id . '.' . substr(strrchr($source, '.'), 1);
        }

        $result = _import_check('avatar_path', $source, $use_target);

        $sql='update '.USERS_TABLE.' set user_avatar="'.$source.'",user_avatar_type="avatar.driver.upload" where user_id='.$convert_row['user_id'];
        $this->db->sql_query($sql);
        #return ((!empty($user_id)) ? $user_id : $use_target) . '.' . substr(strrchr($source, '.'), 1);
    } 
Gebe ich den SQL via echo aus, erhalte ich folgendes

Code: Alles auswählen

update phpbb_users set user_avatar="7_1426142582.jpg",user_avatar_type="avatar.driver.upload" where user_id=7
Dies ist auch richtig so, allerdings führt er den SQL nicht aus. import_avatar() wird also ausgeführt, nur der darin enthaltene Befehl nicht.
Führe ich den Code via phpMyAdmin aus, funktioniert dies.
Benutzeravatar
Elsensee
Ehemaliges Teammitglied
Beiträge: 832
Registriert: 19.05.2010 15:14
Wohnort: Hamburg
Kontaktdaten:

Re: Probleme beim Konvertieren

Beitrag von Elsensee »

Wenn ich das Thema richtig verfolgt habe, dann schlussfolgere ich sicherlich auch richtig, wenn ich sage, dass es das Objekt $this->db nicht gibt, oder? Daher änder das mal um in $db. (Natürlich musst du dann noch $db mit bei den Globals reinpacken ;) )
Wäre zumindest meine einzige Idee. :oops:

Und wenn du schon dabei bist, kannst du ja auch gleich noch mit $db->sql_escape() und so arbeiten. Schaden tut's nicht. :wink: :D
Posts mostly powered by GitHub and phpBB.de Cross-Reference

2015-03-20 - Never forget 8)
Antworten

Zurück zu „Support-Forum“