extension platzierung

Du hast Probleme beim Installieren oder bei der Benutzung einer Extension? In diesem Forum bist du richtig.
Forumsregeln
Bei Fragen zu einer bestimmten Extension sind Extension-Name und die Downloadquelle der Extension erforderlich. Letztere in Form der URL zum Download.
Benutzeravatar
chris1278
Mitglied
Beiträge: 3532
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

extension platzierung

Beitrag von chris1278 »

Hallo Ich habe eine Extension Gebastel die einen Textausgabe an einer Bestimmten Stelle im Forum platzieren soll.

Im moment sieht es so aus.

[ externes Bild ]

Das einzige Problem ist das der Text der im Roten Kasten steht nicht dort auftaucht wo ich im Bild die blaue Linie gezogen habe.

Wie muss ich das Event dafür benennen?

Im Moment Heist das Event: overall_footer_page_body_after.html


PS: Die Extension macht ansonsten genau das was sie soll. Fehlt nur noch die Richtige Ausgabestelle im Forum.
Benutzeravatar
Melmac
Ehemaliges Teammitglied
Beiträge: 3623
Registriert: 15.10.2012 03:27

Re: extension platzierung

Beitrag von Melmac »

Probiere es mal mit overall_footer_copyright_prepend.
Handle nur nach derjenigen Maxime, durch die du zugleich wollen kannst, dass sie ein allgemeines Gesetz werde.
(Immanuel Kant)
Benutzeravatar
chris1278
Mitglied
Beiträge: 3532
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: extension platzierung

Beitrag von chris1278 »

Passt. Danke
Benutzeravatar
Melmac
Ehemaliges Teammitglied
Beiträge: 3623
Registriert: 15.10.2012 03:27

Re: extension platzierung

Beitrag von Melmac »

Ein Blick in die, in diesem Fall, overall_footer.html genügt: dort gibt es für diese Position nur ein einziges Event :wink:
Handle nur nach derjenigen Maxime, durch die du zugleich wollen kannst, dass sie ein allgemeines Gesetz werde.
(Immanuel Kant)
Benutzeravatar
chris1278
Mitglied
Beiträge: 3532
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: extension platzierung

Beitrag von chris1278 »

Alles klar Melmac hab gesehen was du meintest.

Frage Gibt es irgendwo eine ausführliche Anleitung zum erstellen von Extension auf Deustch.


Ich hab da noch ein Problem.

Die ext. die ich baue funktioniert soweit.

meine Verzeichnisstruktur sieht folgendermassen aus:

/root/ext/minipom/mz/(extension root Composer.joan)

Darin enthalten sind :

-Language-de/de_x_sie/en

Hier in den jeweiligen Sprach ordnern liegt die common.php mit sprachvariabeln

-Styles-all-template-event

In diesem liegen 2 event dateien:
1. overall_footer_copyright_prepend
2. overall_header_head_append (für laden der eigenen css datei)

und dann noch im Styles ordner all-theme die minipom.css

Die Dateien sehen im moment so aus.

/Language/(sprachcode)/common.php

Code: Alles auswählen

<?php


if (!defined('IN_PHPBB'))
{
	exit;
}

if (empty($lang) || !is_array($lang))
{
	$lang = array();
}

$lang = array_merge($lang, array(
	'MZ_INFO'				=> '*Minipom ist das eingetragene Markenzeichen von THE COCA-COLA COMPANY (n.d.Ges.d. Staates Delaware), Atlanta Ga., US',

));
/styles/all/theme/minipom.css

Code: Alles auswählen

.minipom {
	color: #555555;
}
.minipom {
	padding: 5px;
	text-align: center;
}
.minipom { font-size: 150%; }

/styles/all/template/event/overall_footer_copyright_prepend

Code: Alles auswählen

<div class="minipom">
<br />
		<!-- IF MZ-INFO -->{MZ_INFO}<!-- ENDIF -->
<br /><br />		
</div>
/styles/all/template/event/overall_header_head_append

Code: Alles auswählen

<!-- INCLUDECSS @minipom_mz/minipom.css -->
Und Natürlich die composer.json

Code: Alles auswählen

{
	"name": "minipom/mz",
	"type": "phpbb-extension",
	"description": "Information Zu Eingetragenem Markenzeichen",
	"homepage": "http://minipomforum.de",
	"version": "1.0.0",
	"time": "2017-11-11",
	"license": "GPL-2.0",
	"authors": [{
			"name": "Minipomforum",
			"email": "kommtnoch@ggg.de",
			"homepage": "http://minipomforum.de",
			"role": "Lead Developer"
		}
		],
	"require": {
		"php": ">=5.3.9"
	},
	"extra": {
		"display-name": "Information zum Markenzeichen",
		"soft-require": {
			"phpbb/phpbb": ">=3.1.5,<3.2.*@dev"
		}
		
	}
}
Problem ist das Sieht dann mit den Sprachvariabeln so aus:

[ externes Bild ]

Wenn ich jetzt hingehe und schreibe anstelle der Sprachvariabel den Textr in die overall_footer_copyright_prepend.html

Code: Alles auswählen

<div class="minipom">
<br />
		*Minipom ist das eingetragene Markenzeichen von THE COCA-COLA COMPANY (n.d.Ges.d. Staates Delaware), Atlanta Ga., US
<br /><br />		
</div>
Dann schaut das so aus wie es eigentlich sein sollte:

[ externes Bild ]

Ich weis allerdings nicht was ich jetzt vergessen habe.

Evtl. Kann mir noch einer sagen wie ich die schriftart anpasse Grösse hab ich gefunden.
Benutzeravatar
Melmac
Ehemaliges Teammitglied
Beiträge: 3623
Registriert: 15.10.2012 03:27

Re: extension platzierung

Beitrag von Melmac »

Mal eine Frage:

Code: Alles auswählen

<div class="minipom">
<br />
      <!-- IF MZ-INFO -->{MZ_INFO}<!-- ENDIF -->
<br /><br />      
</div>
Was soll das <!-- IF MZ-INFO --> bewirken? Was wird da abgeprüft und wo wird das definiert?

Ersetze mal das

Code: Alles auswählen

<!-- IF MZ-INFO -->{MZ_INFO}<!-- ENDIF -->
durch

Code: Alles auswählen

{L_MZ_INFO}
oder, im TWIG-Syntax

Code: Alles auswählen

{{ lang('MZ_INFO') }}
Zum CSS: warum nicht alles zusammenfassen? Du rufst 3x den gleichen Selektor auf, nur um ihm weitere Eigenschaften zuzuweisen, und ansonsten ist die Datei leer.
Außerdem würde ich dort nicht mit <br /> arbeiten, um die Abstände zu den jeweiligen Container-Rändern zu regeln.
Dies kannst Du z.B. auch über Paddings für die Container-DIV regeln.
Handle nur nach derjenigen Maxime, durch die du zugleich wollen kannst, dass sie ein allgemeines Gesetz werde.
(Immanuel Kant)
vfrblue
Ehemaliges Teammitglied
Beiträge: 1994
Registriert: 22.11.2016 18:46

Re: extension platzierung

Beitrag von vfrblue »

So, wie ich es lese, fehlt auch der "event"-Ordner mit der listener.php
listener.php

Code: Alles auswählen

<?php
/**
*
* @package phpBB Extension - (Name der Ext.)
* @copyright (c) 2017 (xxxx)
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/
namespace (Pfad zum "event"-Ordner);

use Symfony\Component\EventDispatcher\EventSubscriberInterface;

/**
* Event listener
*/
class listener implements EventSubscriberInterface
{
	/** @var string phpbb_root_path */
	protected $root_path;

	/** @var \phpbb\user */
	protected $user;

	/** @var \phpbb\template\template */
	protected $template;

	/**
	* Constructor
	*/
	public function __construct($phpbb_root_path, \phpbb\user $user, \phpbb\template\template $template)
	{
		$this->root_path = $phpbb_root_path;
		$this->user = $user;
		$this->template = $template;
	}
	
	static public function getSubscribedEvents()
	{
		return array(
		   'core.user_setup' => 'load_language_on_setup',
		);
	}

/**
   * Load language during user setup
   *
   * @param object $event The event object
   * @return null
   */
   public function load_language_on_setup($event)
   {
      $lang_set_ext = $event['lang_set_ext'];
      $lang_set_ext[] = array(
         'ext_name'   => 'xxxxxx',
         'lang_set'   => 'yyyyyyy',
      );

      $event['lang_set_ext'] = $lang_set_ext;
   }
}
Zuletzt geändert von vfrblue am 13.11.2017 21:33, insgesamt 1-mal geändert.
Benutzeravatar
chris1278
Mitglied
Beiträge: 3532
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: extension platzierung

Beitrag von chris1278 »

Also die css datei sieht jetzt so aus:

Code: Alles auswählen

.minipom 
{
	color: #555555;
	padding: 5px;
	text-align: center;
	font-size: 150%;
}

Denke das war das was du mit 3 mal gemeint hast-

Bei der anderen Änderung in der html datei sieht das dann so aus:

Code: Alles auswählen

http://prntscr.com/ha1m5z
Leider immer noch nicht so wie gewünscht.

@vrfblue

wofür ist diese listener.php
vfrblue
Ehemaliges Teammitglied
Beiträge: 1994
Registriert: 22.11.2016 18:46

Re: extension platzierung

Beitrag von vfrblue »

Die brauchst du, um die Sprach-Dateien zuweisen zu können. Diese Datei gehört aber nicht in den "event"-Ordner des Styles. Schau dir den Aufbau in einer "einfachen" Erweiterung an, wo auch unterschiedliche Sprachen vorhanden sind.
So sieht z.B. die listener.php von meiner einfachen Erweiterung aus:

Code: Alles auswählen

<?php
/**
*
* @package phpBB Extension - Social-Media-Buttons
* @copyright (c) 2017 vfrblue
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/
namespace vfrocde\mediabutton\event;

use Symfony\Component\EventDispatcher\EventSubscriberInterface;

/**
* Event listener
*/
class listener implements EventSubscriberInterface
{
	/** @var string phpbb_root_path */
	protected $root_path;

	/** @var \phpbb\user */
	protected $user;

	/** @var \phpbb\template\template */
	protected $template;

	/**
	* Constructor
	*/
	public function __construct($phpbb_root_path, \phpbb\user $user, \phpbb\template\template $template)
	{
		$this->root_path = $phpbb_root_path;
		$this->user = $user;
		$this->template = $template;
	}
	
	static public function getSubscribedEvents()
	{
		return array(
		   'core.user_setup' => 'load_language_on_setup',
		);
	}

/**
   * Load language during user setup
   *
   * @param object $event The event object
   * @return null
   */
   public function load_language_on_setup($event)
   {
      $lang_set_ext = $event['lang_set_ext'];
      $lang_set_ext[] = array(
         'ext_name'   => 'vfrocde/mediabutton',
         'lang_set'   => 'mediabutton',
      );

      $event['lang_set_ext'] = $lang_set_ext;
   }
}
Zuletzt geändert von vfrblue am 13.11.2017 21:42, insgesamt 1-mal geändert.
Benutzeravatar
chris1278
Mitglied
Beiträge: 3532
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: extension platzierung

Beitrag von chris1278 »

den ordner hab ich schon der mus dort liegen wo die composer.json ist

meine listener.php sieht so aus:

Code: Alles auswählen

<?php
/**
*
* @package phpBB Extension - (Name der Ext.)
* @copyright (c) 2017 (xxxx)
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/
namespace minipom\mz\event;

use Symfony\Component\EventDispatcher\EventSubscriberInterface;

/**
* Event listener
*/
class listener implements EventSubscriberInterface
{
   /** @var string phpbb_root_path */
   protected $root_path;

   /** @var \phpbb\user */
   protected $user;

   /** @var \phpbb\template\template */
   protected $template;

   /**
   * Constructor
   */
   public function __construct($phpbb_root_path, \phpbb\user $user, \phpbb\template\template $template)
   {
      $this->root_path = $phpbb_root_path;
      $this->user = $user;
      $this->template = $template;
   }
   
   static public function getSubscribedEvents()
   {
      return array(
         'core.user_setup' => 'load_language_on_setup',
      );
   }

/**
   * Load language during user setup
   *
   * @param object $event The event object
   * @return null
   */
   public function load_language_on_setup($event)
   {
      $lang_set_ext = $event['lang_set_ext'];
      $lang_set_ext[] = array(
         'ext_name'   => 'minipom/mz',
         'lang_set'   => 'mz',
      );

      $event['lang_set_ext'] = $lang_set_ext;
   }
}
Und in der overall_footer_copyright_prepend.html steht jetzt folgendes:

Code: Alles auswählen

<div class="minipom">
{L_MZ_INFO}		
</div>
resultat sieht so aus:

[ externes Bild ]

Ich habe in dem Ordner Lanaguage jeweils ordner de, de_x_sie und en und in diesen die jeweiligen sprachvariabeln in einer common.php gespeichert inhalt steht weiter oben.
Antworten

Zurück zu „Extension Support“