Seite 1 von 1

Spalten durch migration der Datenbank hinzufügen

Verfasst: 27.04.2019 00:03
von masterronnow
Hallo zusammen,

ich versuche gerade eine bestehende MOD in eine Extension umzuwandeln. Leider ist in der vorhanden Anleitung nicht hinterlegt, was in die migration Datei muss, damit bei der installation der Extension Spalten hinzugefügt bzw. beim deinstallieren entfernt werden.

Die Datei sieht bis jetzt so aus:

Code: Alles auswählen

<?php
// ext/lkwebservices/grouponreg/migrations/v_b_0_0_1.php
/**
 *
 * @package migration
 * @copyright © LK-Webservices 2019-04-26
 * @license http://opensource.org/licenses/gpl-license.php GNU Public License v2
 *
 */

namespace /lkwebservices/grouponreg/migrations/;

class v_b_0_0_1 extends \phpbb\db\migration\migration
{
   public function effectively_installed()
   {
       return isset($this->config['grouponreg_mod_version']) && version_compare($this->config['grouponreg_mod_version'], '0.0.1', '>=');
   }

   static public function depends_on()
   {
       return array('\phpbb\db\migration\data\v31x\v311');
   }

   public function update_data()
   {
       return array(
           array('config.add', array('groups_on_reg_enable', false)),
           array('config.add', array('groups_require', false)),
           array('config.add', array('groups_default', false)),
           array('config.add', array('groups_to_cpf_enable', false)),
		   array('config.add', array('groups_on_reg_multiple', false)),
           array('config.add', array('groups_to_cpf_no_pending', false)),

           array('module.add', array(
               'acp',
               'ACP_CAT_DOT_MODS',
               'ACP_GROUPS'
           )),
           array('module.add', array(
               'acp',
               'ACP_GROUPS',
               array(
                   'module_basename'    => '\lkwebservices\grouponreg\acp\main_module',
				   'module_langname'	=> 'ACP_GROUPS_REGS',
				   'module_mode'		=> 'groups_reg',
				   'module_auth'       => 'acl_a_group',
                   'modes'                => array('config_grouponreg'),
               ),
           )),

           array('config.add', array('grouponreg_mod_version', '0.0.1')),
       );
   }
}
Das hier steht in der alten install.php:

Code: Alles auswählen

		// Lets add new columns to the phpbb_groups and phpbb_profile_fields_lang
		'table_column_add' => array(
			array('phpbb_groups', 'display_on_registration', array('BOOL', 0)),
			array('phpbb_profile_fields_lang', 'group_id', array('UINT', 0)),
			array('phpbb_profile_fields_lang', 'group_name', array('VCHAR:255', '')),
		),
Kann hier jemand helfen?

Re: Spalten durch migration der Datenbank hinzufügen

Verfasst: 27.04.2019 08:13
von Dr.Death

Re: Spalten durch migration der Datenbank hinzufügen

Verfasst: 04.05.2019 07:40
von masterronnow
Das hat geholfen und funktioniert jetzt soweit.

Die alte MOD hatte auch eine functions.php, diese muss wohl in den "includes" Ordner. Gibt es dazu auch noch eine Anleitung, oder was da beachtet werden muss? Die EXT lässt sich zwar installieren, bekomme jetzt aber aufgrund der Datei beim aufrufen der Einstellung diese Fehlermeldung:

Code: Alles auswählen

Allgemeiner Fehler
Auf das Modul kann nicht zugegriffen werden

BACKTRACE

FILE: (not given by php)
LINE: (not given by php)
CALL: msg_handler()

FILE: [ROOT]/includes/functions_module.php
LINE: 565
CALL: trigger_error()

FILE: [ROOT]/adm/index.php
LINE: 82
CALL: p_master->load_active()

Re: Spalten durch migration der Datenbank hinzufügen

Verfasst: 04.05.2019 08:18
von Dr.Death
Extension eigene Funktionen müssen natürlich von Deiner Extension bereitgestellt werden.

In die Core Dateien von phpBB wird nichts hinzugefügt, entfernt oder verändert.


Noch mehr Lesestoff : https://area51.phpbb.com/docs/dev/3.2.x/extensions/


Beispiel: Klick mich
Siehe z.B. protected function get_formel_userdata($user_id)

Re: Spalten durch migration der Datenbank hinzufügen

Verfasst: 04.05.2019 08:35
von masterronnow
Ich hatte zuvor die functions Datei in den Ordnder "includes" der EXT kopiert, ich dachte das zuvor auch in anderen Extensions gesehen zu haben.


Also muss ich das Verzeichnis "Controller" mit der Datei main.php erstellen und dort die functions.php Datei rein kopieren? Hab ich das richtig verstanden?

Re: Spalten durch migration der Datenbank hinzufügen

Verfasst: 04.05.2019 10:24
von Dr.Death
Ich kann dir nichts weiter sagen ohne Deine bisherigen Gehversuche sehen zu können.

Kommt auch darauf an wie Du deine Services definiert hast ( config/services.yml )

Hast Du Deinen Code auf Github bereitgestellt?

Re: Spalten durch migration der Datenbank hinzufügen

Verfasst: 04.05.2019 11:01
von masterronnow
Den Link habe ich dir einmal per PN zukommen lassen.

Re: Spalten durch migration der Datenbank hinzufügen

Verfasst: 04.05.2019 11:52
von Dr.Death
Sorry, ich supporte nicht per PN.....

Aber schau dir doch mal eine "ACME" Demo Extension an...dort kannst du auch an den Codes sehen, was alles benötigt wird.


https://github.com/phpbb/phpbb-ext-acme-demo


Und man kann MODS nicht einfach als EXT herüber kopieren....

Re: Spalten durch migration der Datenbank hinzufügen

Verfasst: 04.05.2019 14:32
von masterronnow
Habe gesehen und festgestellt, das ich natürlich die Änderungen die sonst manuell durchgeführt wurden, komplett vergessen habe.

Mir fehlt trotzdem noch die Info, ob die functions Datei eingebunden wird...ich schau mal, ob ich einen Ansatz finde....

Re: Spalten durch migration der Datenbank hinzufügen

Verfasst: 04.05.2019 15:03
von canonknipser
Die Frage ist, was du in der MOD in der functions.php geändert hast.
Ist es eine komplette Funktion, die eingefügt wurde, und die auch nur von deiner Erweiterung genutzt wird, dann wandert die mehr oder weniger 1:1 in deine Erweiterung, z.B.: https://github.com/canonknipser/viewexi ... #L504-L543
Musst du eine bestehende Funktion ergänzen, braucht du einen passenden Event. Den musst du dann passend bestücken:
https://github.com/canonknipser/viewexi ... hp#L20-L28
und
https://github.com/canonknipser/viewexi ... p#L76-L446

Diese Funktion wird dann hier aufgerufen https://github.com/phpbb/phpbb/blob/004 ... 1302-L1328

Mehr findest in der Dokumentation, u.a.
https://area51.phpbb.com/docs/dev/extensions/index.html
https://wiki.phpbb.com/Event_List