Neuer Mod zum verarbeiten eines externen Feeds

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
DonCube
Mitglied
Beiträge: 11
Registriert: 03.01.2011 00:17

Neuer Mod zum verarbeiten eines externen Feeds

Beitrag von DonCube »

Hallo zusammen,
ich habe für mein altes phpbb2 Forum mal einen Mod gebastelt, der es ermöglich externe Feeds auf einfache Weise als News einzubinden. Für mein neues phpbb3 Forum würde ich das ganze nun gerne zu einem integrierbaren Mod weiterentwickeln. Dazu gehört auch eine Verwaltung des Mods im ACP. Nun habe ich es geschafft ein Modul mit zwei modes aufzubauen und ich habe das Modul auch im ACP installiert und die beiden modes hinzugefügt. Datenbankeinträge wurden auch brav gemacht. Also gehe ich davon aus, dass das Modul richtig installiert ist. Wenn ich aber nun auf Mods klicke, wird mir nur der Portal-Mod angezeigt und nicht meine neuen Module.

Ich habe alle Dateien inklusive Language Datei erstellt und hinzugefügt. Folgende Dateien sind angelegt:

Die Datei in includes/acp/info:

Code: Alles auswählen

class acp_externalnews_info
{
    function module()
    {
        return array(
            'filename'	=> 'acp_externalnews',
            'title'		=> 'ACP_EXTERNALNEWS_INFO',
            'version'	=> '0.1',
            'modes'		=> array(
				'general'		=> array('title' => 'ACP_EXTERNALNEWS_GENERAL', 'auth' => 'acl_a_externalnews_manage', 'cat' => array('ACP_EXTERNALNEWS_INFO')),
				'news'			=> array('title' => 'ACP_EXTERNALNEWS_NEWS', 'auth' => 'acl_a_externalnews_manage', 'cat' => array('ACP_EXTERNALNEWS_INFO')),
            ),
        );
    }

}
Die Datei in includes/acp: (der case news stammt aus der acp_portal und ist dort nur demomäßig entliehen)

Code: Alles auswählen

class acp_externalnews
{
   var $u_action;
   var $new_config = array();
   function main($id, $mode)
   {
      global $db, $user, $auth, $template;
      global $config, $phpbb_root_path, $phpbb_admin_path, $phpEx;
      
      //include($phpbb_root_path . '/includes/functions_feed.' . $phpEx);
      
      //$externalnews_config = obtain_externalNews_config();
      
      switch($mode)
      {
         	case 'general':
            		$this->page_title = 'ACP_EXTERNALNEWS';
            		$this->tpl_name = 'acp_externalnews';
            break;
            case 'news':
				$display_vars = array(
					'title'	=> 'ACP_EXTERNALNEWS',
					'vars'	=> array(
						'legend1'					=> 'ACP_PORTAL_GENERAL_SETTINGS',
						'portal_enable'				=> array('lang' => 'PORTAL_ENABLE',				'validate' => 'bool',	'type' => 'radio:yes_no',	'explain' => true),
						'portal_left_column'		=> array('lang' => 'PORTAL_LEFT_COLUMN',		'validate' => 'bool',	'type' => 'radio:yes_no',	'explain' => true),
						'portal_right_column'		=> array('lang' => 'PORTAL_RIGHT_COLUMN',		'validate' => 'bool',	'type' => 'radio:yes_no',	'explain' => true),
						'portal_version_check'		=> array('lang' => 'PORTAL_VERSION_CHECK',		'validate' => 'bool',	'type' => 'radio:yes_no',	'explain' => true),
						'portal_advanced_stat'		=> array('lang' => 'PORTAL_ADVANCED_STAT',		'validate' => 'bool',	'type' => 'radio:yes_no',	'explain' => true),
						'portal_search'				=> array('lang' => 'PORTAL_SEARCH',				'validate' => 'bool',	'type' => 'radio:yes_no',	'explain' => true),
						'portal_leaders'			=> array('lang' => 'PORTAL_LEADERS',			'validate' => 'bool',	'type' => 'radio:yes_no',	'explain' => true),
						'portal_leaders_ext'		=> array('lang' => 'PORTAL_LEADERS_EXT',		'validate' => 'bool',	'type' => 'radio:yes_no',	'explain' => true),
						'portal_clock'				=> array('lang' => 'PORTAL_CLOCK',				'validate' => 'bool',	'type' => 'radio:yes_no',	'explain' => true),
						'portal_link_us'			=> array('lang' => 'PORTAL_LINK_US',			'validate' => 'bool',	'type' => 'radio:yes_no',	'explain' => true),
						'portal_random_member'		=> array('lang' => 'PORTAL_RANDOM_MEMBER',		'validate' => 'bool',	'type' => 'radio:yes_no',	'explain' => true),
						'portal_forum_index'		=> array('lang' => 'PORTAL_FORUM_INDEX',		'validate' => 'bool',	'type' => 'radio:yes_no',	'explain' => true),
						'portal_whois_online'		=> array('lang' => 'PORTAL_WHOIS_ONLINE',		'validate' => 'bool',	'type' => 'radio:yes_no',	'explain' => true),
						'portal_change_style'		=> array('lang' => 'PORTAL_CHANGE_STYLE',		'validate' => 'bool',	'type' => 'radio:yes_no',	'explain' => true),
						'portal_main_menu'			=> array('lang' => 'PORTAL_MAIN_MENU',			'validate' => 'bool',	'type' => 'radio:yes_no',	'explain' => true),
						'portal_phpbb_menu'			=> array('lang' => 'PORTAL_PHPBB_MENU',			'validate' => 'bool',	'type' => 'radio:yes_no',	'explain' => true),
						'portal_user_menu'			=> array('lang' => 'PORTAL_USER_MENU',			'validate' => 'bool',	'type' => 'radio:yes_no',	'explain' => true),

						'legend2'					=> 'ACP_PORTAL_COLUMN_WIDTH_SETTINGS',
						'portal_left_column_width'	=> array('lang' => 'PORTAL_LEFT_COLUMN_WIDTH',	'validate' => 'int',	'type' => 'text:3:3',		'explain' => true),
						'portal_right_column_width'	=> array('lang' => 'PORTAL_RIGHT_COLUMN_WIDTH',	'validate' => 'int',	'type' => 'text:3:3',		'explain' => true),
					)
				);
			break;
      }
 
   }
}
Das Template unter adm/style:

Code: Alles auswählen

<!-- INCLUDE overall_header.html -->
 
IT WORKS.
 
<!-- INCLUDE overall_footer.html -->
Datenbankeinträeg gibt es drei in phpbb_modules:

219 1 1 acp 31 314 319 ACP_EXTERNALNEWS_INFO
222 1 1 externalnews acp 219 315 316 ACP_EXTERNALNEWS_GENERAL general acl_a_externalnews_manage
223 1 1 externalnews acp 219 317 318 ACP_EXTERNALNEWS_NEWS news acl_a_externalnews_manage

Also einmal die Kategorie und dann die beiden Modes.

Im ACP unter System und dann Modul-Konfiguration wird auch alles angezeigt aber leider nicht im Tab Mods. Da steht nüschts....


Kann mir jemand weiterhelfen??

Gruß
DonCube


PS: Ich habe was über Berechtigungen zum anzeigen von Modulen gelesen. Allerdings kann ich das Portal Modul auch sehen, sollte doch damit auch alle anderen sehen können oder? Wenn nein, wo finde ich die Berechtigung für ein bestimmtes Modul?
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: Neuer Mod zum verarbeiten eines externen Feeds

Beitrag von Pyramide »

In der Info-Datei hast du angegeben:

Code: Alles auswählen

'auth' => 'acl_a_externalnews_manage'
Du benötigst also die Berechtigung a_externalnews_manage, um das Modul zu sehen.
KB:knigge
DonCube
Mitglied
Beiträge: 11
Registriert: 03.01.2011 00:17

Re: Neuer Mod zum verarbeiten eines externen Feeds

Beitrag von DonCube »

Wie kann ich die setzen? Bzw wo finde ich die. Ich habe das nach dem Vorbild vom Portalmod erstellt. Aber mittlerweile weiß ich, dass die Installdatei vom Mod einige Datenbankänderungn vornimmt. Mein Wissen über das Innenleben von phpbb3 ist dazu aber zu gering. Weiß jemand wie man die Berechtigung hinzufügt und auch verwaltbar macht im ACP Bereich?
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: Neuer Mod zum verarbeiten eines externen Feeds

Beitrag von Pyramide »

KB:knigge
Antworten

Zurück zu „[3.0.x] Mod Bastelstube“