eigenes ACP Modul & Probleme beim realisieren von Features

Allgemeiner Support zum phpBB 3 Board und phpBB 3 Modifikationen.
Kein Support für die Download MOD / Extension!!
No support for the Download MOD / Extension!!
Please visit https://phpbb3.oxpus.net for Download MOD / Extension
Antworten
mystique
Beiträge: 2
Registriert: Di 09.Feb, 2010 15:25

eigenes ACP Modul & Probleme beim realisieren von Features

Beitrag von mystique »

Hallo zusammen,

ich versuche gerade mein phpBB3 Forum im ACP zuerweitern mit einen neuen Modul. Das Modul liest die Tabelle "phpbb_modules" aus & das klappt auch alles.

Jetzt zu meinen Problem wo ich nicht weiterkomme bzw. ich nicht weiß wie man das realsiert kann, da ich noch sehr neu bin in der PHP Materie.

Jetzt hab ich schon öfterst im ACP gesehen, dass man Sachen Aktivieren/Deaktivieren kann über ein Button sowie Datensätze Bearbeiten bzw. Löschen kann z.b. bei den Benutzerdefinierte Profilfelder.

Wie kann ich das jetzt auch in meinen Modul realisieren ? Wie man unten auf den Bild sehen kann hab ich es schon hinbekommen die 2 Icon zum löschen bzw.bearbeiten von Datensätze einzufügen sowie den Hyperlink bei Modul Status, das Problem ist nur das Script was hinter den 3 Hyperlinks steckt. Ich habe schon die verschiedenen Dateien durchgeschaut, ob ich da was hilfreiches finde aber ohne großen Erfolg.

Das einzigste was ich gefunden habe ist eine Switch-Case-Anweisung, die wie folgt aufgebaut ist: (Quelle: includes/acp/acp_profile.php)

Code: Alles auswählen

switch ($action) 
	case 'delete':
        ...
	case 'activate': 
        ...
	case 'deactivate':
        ... 
Jetzt hab ich probiert den Code bei mir einzufügen & anzupassen doch brauchte net den erwünschten Erfolg. Jetzt hab ich schon durch rumgooglen erfahren, dass da was mit JavaScript oder so gemacht werden muss, doch ich hab in den Dateien wo diese Features benutzen werden nichts mit JavaScript gefunden.

Kann mir einer von euch dabei weiterhelfen ?

Hier noch die 2 wichtigsten Codes von den Modul:

Hier die ../includes/acp/acp_foo2.php

Code: Alles auswählen

<?php
/** 
*
* @package acp
* @version $Id: xxx.php,v 1.2.1 2008-04-29 20:56:00 AUTHOR $
* @copyright (c) AUTHOR + WWW 
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

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

/**
* @package acp
*/
class acp_foo2
{
	var $u_action;
	var $new_config; 

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

		$user->add_lang('mods/info_acp_foo2');
		
		$this->tpl_name = 'acp_foo2';
		$this->page_title = $user->lang['ALL_MODULE_TITLE'] . ' Version 1.0.0';


	$sql = 'SELECT * FROM ' . MODULES_TABLE;				
    	if(!$module_row = $db->sql_query($sql)) {
    		}
	    while($row = $db->sql_fetchrow($module_row)) 
			{
			   $template->assign_block_vars('tabelle', array(
		       'ID'    		=> $row['module_id'],
    		   'STATUS'		=> ($row['module_enabled'] == "0") ? "Aus" : "Ein", 
			   'DISPLAY'	=> ($row['module_display'] == "0") ? "nein" : "ja",
			   'BASENAME'	=> $row['module_basename'],
			   'CLASS'		=> $row['module_class'],
			   'LANG'		=> $row['module_langname'],
			   'AUTH'		=> $row['module_auth'],			   	   
		   ));}	   		
	}
}
?>
Und hier die ../adm/style/acp_foo2.html

Code: Alles auswählen

<!-- INCLUDE overall_header.html -->

<a name="maincontent"></a>

<h1>{L_ALL_MODULE_TITLE}</h1>
<p>{L_ALL_MODULE_DESC}</p>
<br />
<table cellspacing="1">
<thead>
	<tr>
    	<th>{L_MODULE_ID}</th>
	    <th>{L_MODULE_STATUS}</th>
		<th>{L_MODULE_DISPLAY}</th>
		<th>{L_MODULE_BASENAME}</th>
		<th>{L_MODULE_CLASS}</th>
		<th>{L_MODULE_LANG}</th>
		<th>{L_MODULE_AUTH}</th>
		<th>{L_MODULE_OPTION}</th>
    </tr>
</thead>
<tbody>

<!-- BEGIN tabelle -->	
<!-- IF tabelle.S_ROW_COUNT is even --><tr class="row3"><!-- ELSE --><tr class="row2"><!-- ENDIF --> 
    	<td>{tabelle.ID}</td>
		<td><a href="{HYPERLINK}">{tabelle.STATUS}</a></td>
    	<td>{tabelle.DISPLAY}</td>
    	<td>{tabelle.BASENAME}</td>
		<td>{tabelle.CLASS}</td>
		<td>{tabelle.LANG}</td>
		<td>{tabelle.AUTH}</td>
		
		<td>&nbsp;<a href="{tabelle.U_EDIT}">{ICON_EDIT}</a> <a href="{tabelle.U_DELETE}">{ICON_DELETE}</a>	
	</tr>
<!-- END tabelle -->
</tbody>
</table>

<br />
<br />
<!-- INCLUDE overall_footer.html -->
Schonmal vielen Dank für eure Hilfe
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Re: eigenes ACP Modul & Probleme beim realisieren von Features

Beitrag von oxpus »

Du willst die Modul-Tabelle mit einem eigenen Modul bearbeiten?
Das solltest du lassen, um nicht diverse Panele komplett zu zerstören.
Denn ein falscher Eintrag oder eine falsche Änderung kann das betreffende Panel komplett lahmlegen.
Und das ACP ist da besonders heikel, muss gerade das doch funktionieren...

Wie dem auch sei: Aktuell habe ich selber zu wenig Zeit, ein solches Modul auch nur ansatzweise zu entwickeln, da ich in einem grösseren Kundenauftrag gebunden bin.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
mystique
Beiträge: 2
Registriert: Di 09.Feb, 2010 15:25

Re: eigenes ACP Modul & Probleme beim realisieren von Features

Beitrag von mystique »

Hi Oxpus,

danke für deine schnelle Antwort.

In Grunde hast du Recht, wenn man bei den Module was falsches einträgt, dass man im schlimmsten Fall das ganze Forum lahmlegt.

Ich muss auch gestehen, wenn das Modul fertig ist geht es auch nicht im die Tabelle "phpbb_modules" sondern um eine die genauso aufgebaut ist wie diese nur paar Spalten mehr hat die aber unbedeutent sind. Hab die "phpbb_config" jetzt nur gewählt damit auch andere das nachvollziehen können, da die bei jeden ja vorhanden ist.

Und ist kein Problem wenn du aktuell sehr eingespannt bist, vllt. kann mir einer deiner Mitglieder auch Tipps oder so geben. :)

Gruß
Mystique
Antworten