Spalten durch migration der Datenbank hinzufügen

In diesem Forum gibt es Starthilfe zum neuen Extension-System von phpBB 3.1/3.2. Fragen zur Entwicklung von Extensions und zur Konvertierung von phpBB 3.0.x MODs sind ebenfalls willkommen.
Antworten
Benutzeravatar
masterronnow
Mitglied
Beiträge: 145
Registriert: 11.12.2006 15:28
Wohnort: Berlin
Kontaktdaten:

Spalten durch migration der Datenbank hinzufügen

Beitrag 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?
Benutzeravatar
masterronnow
Mitglied
Beiträge: 145
Registriert: 11.12.2006 15:28
Wohnort: Berlin
Kontaktdaten:

Re: Spalten durch migration der Datenbank hinzufügen

Beitrag 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()
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17395
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Re: Spalten durch migration der Datenbank hinzufügen

Beitrag 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)
Benutzeravatar
masterronnow
Mitglied
Beiträge: 145
Registriert: 11.12.2006 15:28
Wohnort: Berlin
Kontaktdaten:

Re: Spalten durch migration der Datenbank hinzufügen

Beitrag 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?
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17395
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Re: Spalten durch migration der Datenbank hinzufügen

Beitrag 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?
Benutzeravatar
masterronnow
Mitglied
Beiträge: 145
Registriert: 11.12.2006 15:28
Wohnort: Berlin
Kontaktdaten:

Re: Spalten durch migration der Datenbank hinzufügen

Beitrag von masterronnow »

Den Link habe ich dir einmal per PN zukommen lassen.
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17395
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Re: Spalten durch migration der Datenbank hinzufügen

Beitrag 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....
Benutzeravatar
masterronnow
Mitglied
Beiträge: 145
Registriert: 11.12.2006 15:28
Wohnort: Berlin
Kontaktdaten:

Re: Spalten durch migration der Datenbank hinzufügen

Beitrag 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....
Benutzeravatar
canonknipser
Ehemaliges Teammitglied
Beiträge: 2053
Registriert: 10.09.2011 11:14
Kontaktdaten:

Re: Spalten durch migration der Datenbank hinzufügen

Beitrag 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
Grüße, canonknipser
"there are only 10 types of people: those, who understand binary and those, who don't"
just arrived ;) - Bilder
Kein Support via PN, nur im Board und (manchmal) im IRC
Antworten

Zurück zu „Extension Bastelstube“