Seite 2 von 2

Verfasst: 03.09.2007 17:00
von nickvergessen
Hm, sollte doch möglich sein... :-?

Verfasst: 28.12.2007 17:29
von Kevinq
so, habe nun erneut versucht etwas ins acp zu bekommen, immernoch erfolglos

Fehelrmeldung
Parse error: parse error, unexpected T_LNUMBER in D:\Programme\xampp\htdocs\dr2o\team\includes\functions_module.php(328) : eval()'d code on line 1

Parse error: parse error, unexpected T_LNUMBER in D:\Programme\xampp\htdocs\dr2o\team\includes\functions_module.php(328) : eval()'d code on line 1
[phpBB Debug] PHP Notice: in file /adm/index.php on line 149: Cannot modify header information - headers already sent by (output started at /includes/functions_module.php(328) : eval()'d code:1)
[phpBB Debug] PHP Notice: in file /adm/index.php on line 151: Cannot modify header information - headers already sent by (output started at /includes/functions_module.php(328) : eval()'d code:1)
[phpBB Debug] PHP Notice: in file /adm/index.php on line 152: Cannot modify header information - headers already sent by (output started at /includes/functions_module.php(328) : eval()'d code:1)
[phpBB Debug] PHP Notice: in file /adm/index.php on line 153: Cannot modify header information - headers already sent by (output started at /includes/functions_module.php(328) : eval()'d code:1)
includes/acp/info/acp_dr2o_news_add.php

Code: Alles auswählen

<?php
/**
* @package module_install
*/
class acp_dr2o_news_add_info
{
	function module()
	{
		return array(
			'filename'	=> 'acp_dr2o_news_add',
			'title'		=> 'DR2o News Hinzufuegen',
			'version'	=> '1.0.0',
			'modes'		=> array(
				'add_news'		=> array('title' => 'News Hinzufuegen', 'auth' => 'acl_a_dr2o_news_add', 'cat' => array('ACP_GENERAL_TASKS')),
			),
		);
	}

	function install()
	{
	}

	function uninstall()
	{
	}
}


?>
includes/acp/acp_dr2o_news_add.php

Code: Alles auswählen

/**
* @ignore
*/
if (!defined('IN_PHPBB'))
{
	exit;
}

/**
* @package acp
*/
class acp_dr2o_news_add
{
	var $u_action;

	function main($id, $mode)
	{
		global $db, $user, $auth, $template;
		global $config, $phpbb_root_path, $phpbb_admin_path, $phpEx;

		$user->add_lang('acp/board');
        // Set up the page
		$this->tpl_name 	= 'acp_dr2o_news_add'; //name der templatedatei
		$this->page_title 	= 'DR2o News Hinzufuegen';

		// Set up general vars
		$submit	= isset($_POST['submit']) ? true : false; //prüfung ob formular abgesendet
		
		//begin des eigentlichen scripts
		$testvariable = 'hallo welt, ich bin ein test.';
		if ($mode == 'add_news')
		{
			//irgendwas
		}
		//ende des eigentlichen scripts
		
		if ($submit) //wenn formular abgesendet
		{
			trigger_error(sprintf($user->$testvariable, $greeter, $hello) . adm_back_link($this->u_action), E_USER_WARNING);
		}
		else
		{
			$template->assign_vars(array(
				'S_test'			=> $testvariable,
				'S_SUBMIT'			=> $this->u_action)
			);
		}
	}
}

?>
ich wüste jam al gerne wozu die auf phpbb.com verwendeten variablen $greeter und $hello sind, die beschreibung dort ist mehr als nur mager.

Verfasst: 28.12.2007 21:17
von gn#36
Ich versuche mal ein wenig Licht ins Dunkel zu bringen (ich habe über ähnlichen Problemen auch mehrere Stunden gebrütet):
nickvergessen hat geschrieben:...
acp_links_info.php

Code: Alles auswählen

...
				'index'=> array('title' => 'ACP_AUTOMATION'),
Hier fehlt ein bisschen was, neben den Default-locations vor allem das Recht, welches die Betrachtung ermöglichen soll. Ich bin mir nicht ganz sicher wie das System darauf reagiert, wenn der Eintrag undefiniert ist. Wenn du den Zugang generell erlauben willst, dann solltest du den Eintrag nicht weg, sondern leer lassen.

Also z.b. so (Auszug aus der ucp_main.php im info Unterordner):

Code: Alles auswählen

array('title' => 'UCP_MAIN_FRONT', 'auth' => '', 'cat' => array('UCP_MAIN')),
@ Kevinq: Du hast Ziffern in der Bezeichnung deiner Berechtigung. Das ist wie man in der Functions_module.php sieht offenbar nicht zulässig:

Code: Alles auswählen

preg_match('#(?:acl_([a-z_]+)(,\$id)?)|(?:\$id)|(?:aclf_([a-z_]+))|(?:cfg_([a-z_]+))|(?:request_([a-z_]+))#', $token)
Hier wird in allen Berechtigungen nur a-z (Kleinbuchstaben!) und der Unterstrich zugelassen. Das führt dann dazu, dass dein Recht bei der 2 abgeschnitten wird die dann nach dem Umformen des Strings in eine interpretierbare Form "übrig" bleibt und einen Syntaxfehler verursacht.

Ich hatte hier ein ähnlich schwer zu findendes Problem: Ich hatte statt acl aus Versehen acp geschrieben, was zu einem ähnlichen Fehler geführt hat, weil es diesen Modus der Berechtigungsinterpretation nun mal leider nicht gibt :roll:

Verfasst: 28.12.2007 21:44
von Kevinq
erstmal gelöst

Code: Alles auswählen

		eval('$is_auth = (int) (' . preg_replace(array('#acl_([a-z0-9_]+)(,\$id)?#', '#\$id#', '#aclf_([a-z0-9_]+)#', '#cfg_([a-z0-9_]+)#', '#request_([a-z0-9_]+)#'), array('(int) $auth->acl_get(\'\\1\'\\2)', '(int) $forum_id', '(int) $auth->acl_getf_global(\'\\1\')', '(int) $config[\'\\1\']', '!empty($_REQUEST[\'\\1\'])'), $module_auth) . ');');

Verfasst: 28.12.2007 21:47
von gn#36
Dann wird aber niemand ohne diese Änderung dein Modul benutzen können :roll:

Verfasst: 29.12.2007 08:36
von Kevinq
öhat ach keiner as von, is eins für ein masgeschneidertes forum