Page 1 of 1

Block lässt sich nicht in Liste auswählen.

Posted: 13. January 2013 03:39
by Annô
Hi Leute.

Habe mir einen Overview Block geschrieben mit Bezug auf den phpBB3-MOD Point MOD 3.0.1
---> http://phpbb3hacks.com/modifications.php?name=Points (Hoffe es macht nichts, das ich zur veranschaulischung meines Problems den MOD verlinkt hab.

Jetzt hab ich nen Simplen Blockgeschrieben, der keine Configurationen haben soll (Pseydo-Config) und im Portal in einer Box eine Liste der Member mit den jeweiligen Punkten ausgeben soll. Den Quelltext habe ich von dem MOD-Forum.

Hier meine block-codes:

point_3_0_1_block.html

Code: Select all

{$LR_BLOCK_H_L}<!-- IF $S_BLOCK_ICON --><img src="{$IMAGE_SRC}" width="{$IMAGE_WIDTH}" height="{$IMAGE_HEIGHT}" alt="" />&nbsp;<!-- ENDIF -->{$TITLE}{$LR_BLOCK_H_R}
<!-- START POINT BLOCK -->
<span>
{user_points.USERNAME} - {user_points.POINTS}
</span>
<!-- END POINT BLOCK -->
{$LR_BLOCK_F_L}{$LR_BLOCK_F_R}
point_3_0_1_block.php

Code: Select all

<?php
/**
*
* @package Board3 Portal v2 - Default
* @copyright (c) Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
* @block by Annô - hardware4gamer.de
*
*/

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

/**
* @package Point MOD board3 block
*/
class point_1_0_3_block_module
{
	/**
	* Allowed columns: Just sum up your options (Exp: left + right = 10)
	* top		1
	* left		2
	* center	4
	* right		8
	* bottom	16
	*/
	public $columns = 10;

	/**
	* Default Point MOD board3 block
	*/
	public $name = 'Point MOD';

	/**
	* Default module-image:
	* file must be in "{T_THEME_PATH}/images/portal/"
	*/
	public $image_src = '';

	/**
	* module-language file
	* file must be in "language/{$user->lang}/mods/portal/"
	*/
	public $language = 'point_1_0_3_block';
	
	/**
	* custom acp template
	* file must be in "adm/style/portal/"
	*/
	public $custom_acp_tpl = '';
	
	/**
	* hide module name in ACP configuration page
	*/
	public $hide_name = true;

	public function get_template_center($module_id)
	{
		global $sql_array, $template, $sql, $result, $row, $db;

		
    // Load the user points
    $sql_array = array(
        'SELECT'    => 'u.user_id, u.username, u.user_colour, u.user_points',
        'FROM'      => array(
            USERS_TABLE  => 'u',
        ),                            
        'WHERE'    => 'u.user_points > 0 AND u.user_type <> 2',
        'ORDER_BY'    => 'u.user_points DESC',
    );
    $sql = $db->sql_build_query('SELECT', $sql_array);
    $result = $db->sql_query_limit($sql);
    
    while ($row = $db->sql_fetchrow($result))
    {   
        $template->assign_block_vars('user_points', array(
            'USERNAME'     => get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']),
            'POINTS'       => $row['user_points'],
        ));
    }
    $db->sql_freeresult($result);

		return 'point_1_0_3_block.html';
	}

	public function get_template_side($module_id)
	{
		global $sql_array, $template, $sql, $result, $row, $db;

		
    // Load the user points
    $sql_array = array(
        'SELECT'    => 'u.user_id, u.username, u.user_colour, u.user_points',
        'FROM'      => array(
            USERS_TABLE  => 'u',
        ),                            
        'WHERE'    => 'u.user_points > 0 AND u.user_type <> 2',
        'ORDER_BY'    => 'u.user_points DESC',
    );
    $sql = $db->sql_build_query('SELECT', $sql_array);
    $result = $db->sql_query_limit($sql);
    
    while ($row = $db->sql_fetchrow($result))
    {   
        $template->assign_block_vars('user_points', array(
            'USERNAME'     => get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']),
            'POINTS'       => $row['user_points'],
        ));
    }

		return 'point_1_0_3_block.html';
	}

	public function get_template_acp($module_id)
	{
		return array(
			'title'	=> 'ACP_CONFIG_MODULENAME',
			'vars'	=> array(
				'legend1'								=> 'ACP_MODULENAME_CONFIGLEGEND',
				'board3_configname_' . $module_id	=> array('lang' => 'MODULENAME_CONFIGNAME',		'validate' => 'string',	'type' => 'text:10:200',	'explain' => false),
				'board3_configname2_' . $module_id	=> array('lang' => 'MODULENAME_CONFIGNAME2',	'validate' => 'int',	'type' => 'text:3:3',		'explain' => true),
			),
		);
	}

	/**
	* API functions
	*/
	public function install($module_id)
	{
		set_config('board3_configname_' . $module_id, 'point_1_0_3_block');
		set_config('board3_configname2_' . $module_id, 1.0);
		return true;
	}

	public function uninstall($module_id)
	{
		global $db;

		$del_config = array(
			'board3_configname_' . $module_id,
			'board3_configname2_' . $module_id,
		);
		$sql = 'DELETE FROM ' . CONFIG_TABLE . '
			WHERE ' . $db->sql_in_set('config_name', $del_config);
		return $db->sql_query($sql);
	}
}
Hoffe man kann mir ein paar tips geben und helfen, warum ich Ihn nach erfolgreicher Installation nicht in den listen auswählen kann (weder lins, noch mitte, noch rechts oder oben noch unten)

Habe auch die HTML in mein template unter den gegebenen Ordnern gezogen.

Re: Block lässt sich nicht in Liste auswählen.

Posted: 13. January 2013 09:43
by Kirk
Hallo
Du hast in der point_3_0_1_block.php das hier drin stehen:

Code: Select all

   /**
   * Allowed columns: Just sum up your options (Exp: left + right = 10)
   * top      1
   * left      2
   * center   4
   * right      8
   * bottom   16
   */
   public $columns = 10;
das bedeutet das dieser Block nur rechts oder links angezeigt werden kann.

Ändere mal das hier:

Code: Select all

public $name = 'Point MOD';
in das:

Code: Select all

public $name = 'POINT_MOD';
Dann hast du das hier drin:

Code: Select all

public function get_template_center($module_id)
Aber es gibt keine point_1_0_3_block_center.html


Wie man so ein Modul erstellt wird hier Bearbeiten einer Modul Datei beschrieben.

Re: Block lässt sich nicht in Liste auswählen.

Posted: 13. January 2013 13:33
by Annô
Leider nach Änderung das gleiche Problem.

Habe auch mal aus deer php und den datennamen das "_3_0_1" weggenommen. hab die daten mit "_side" und "_center" erweitert, versucht den Block über die DB einzufügen,...

Cih schreibe mal den Grund SQL-Code rein, sowie den Template-Code:

SQL-DB Abfrage:

Code: Select all

    // Load the user points
    $sql_array = array(
        'SELECT'    => 'u.user_id, u.username, u.user_colour, u.user_points',
        'FROM'      => array(
            USERS_TABLE  => 'u',
        ),                            
        'WHERE'    => 'u.user_points > 0 AND u.user_type <> 2',
        'ORDER_BY'    => 'u.user_points DESC',
    );
    $sql = $db->sql_build_query('SELECT', $sql_array);
    $result = $db->sql_query_limit($sql);
    
    while ($row = $db->sql_fetchrow($result))
    {   
        $template->assign_block_vars('user_points', array(
            'USERNAME'     => get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']),
            'POINTS'       => $row['user_points'],
        ));
    }
    $db->sql_freeresult($result);
 
Template:

Code: Select all

<!-- BEGIN user_points -->{user_points.USERNAME} ma {user_points.POINTS}<!-- END user_points -->
Vieleicht kann mir jemand so ein Block schnell Basteln. Währe sehr dankbar.

Re: Block lässt sich nicht in Liste auswählen.

Posted: 13. January 2013 15:10
by Annô
BTW

Ich könnte mich auch damit anfreunden, die Ausgabe über das Teammodul zu machen, like: Administrator -> Name (POINTS)

In der DB ist die Varialble in der User-Tabelle als Spalte "user_points" drin. Vieleicht kann man mir so weiterhelfen.

Re: Block lässt sich nicht in Liste auswählen.

Posted: 13. January 2013 18:01
by Kirk
Annô wrote:versucht den Block über die DB einzufügen,...
Die Dateien werden per FTP in die entsprechenden Verzeichnisse hochgeladen.
So ein Modul besteht aus 3 Dateien
  1. Die php Datei= kommt in den Ordner: root/portal/modules
  2. Die lanuage Datei= kommt in den Ordner root\language\{Deine Sprache}\mods\portal
  3. Die html Datei/en= kommt in den Ordner root/styles/{stylename}/template/portal/modules
Hab mal so ein Modul erstellt, ob alles passt kann ich nicht sagen weil ich diesen Mod nicht verwende.
Anmerkung:
Der Inhalt der lanuage Datei ist auf englisch den musst du noch übersetzen und evtl. die html Dateien anpassen.
portal_points_module.zip
(9.1 KiB) Downloaded 764 times

Re: Block lässt sich nicht in Liste auswählen.

Posted: 13. January 2013 19:19
by Marc
Dein Problem ist eher der Name deiner Dateien. Achte doch bitte mal auf den Zusammenhang zwischen Klassennamen und Dateinamen:
knowledge/kb_show.php?id=58