Seite 1 von 1

Neuer Mod zum verarbeiten eines externen Feeds

Verfasst: 06.01.2011 20:04
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?

Re: Neuer Mod zum verarbeiten eines externen Feeds

Verfasst: 07.01.2011 20:08
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.

Re: Neuer Mod zum verarbeiten eines externen Feeds

Verfasst: 09.01.2011 00:24
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?

Re: Neuer Mod zum verarbeiten eines externen Feeds

Verfasst: 09.01.2011 03:54
von Pyramide