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. Hiervon kann lediglich bei sehr bekannten und verbreiteten Extensions abgesehen werden, soweit eindeutig ist, um welche Extension es sich handelt. Es liegt allerdings im Ermessen der Moderatoren, das Thema ggf. zu schließen, daher sollte im Zweifel der Link angegeben werden.
Benutzeravatar
chris1278
Mitglied
Beiträge: 795
Registriert: 12.11.2007 06:20
Kontaktdaten:

extension platzierung

Beitragvon chris1278 » 13.11.2017 14:52

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
Supporter
Supporter
Beiträge: 2193
Registriert: 15.10.2012 03:27

Re: extension platzierung

Beitragvon Melmac » 13.11.2017 16:13

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: 795
Registriert: 12.11.2007 06:20
Kontaktdaten:

Re: extension platzierung

Beitragvon chris1278 » 13.11.2017 16:20

Passt. Danke

Benutzeravatar
Melmac
Supporter
Supporter
Beiträge: 2193
Registriert: 15.10.2012 03:27

Re: extension platzierung

Beitragvon Melmac » 13.11.2017 16:24

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: 795
Registriert: 12.11.2007 06:20
Kontaktdaten:

Re: extension platzierung

Beitragvon chris1278 » 13.11.2017 20:58

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
Supporter
Supporter
Beiträge: 2193
Registriert: 15.10.2012 03:27

Re: extension platzierung

Beitragvon Melmac » 13.11.2017 21:26

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)

Benutzeravatar
vfrblue
Junior Supporter
Beiträge: 799
Registriert: 22.11.2016 18:46
Wohnort: Niedersachsen-West
Kontaktdaten:

Re: extension platzierung

Beitragvon vfrblue » 13.11.2017 21:29

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.
Gruß Hermann

Forum VFR-OC
User: phpbbtest PW: vfroc

Benutzeravatar
chris1278
Mitglied
Beiträge: 795
Registriert: 12.11.2007 06:20
Kontaktdaten:

Re: extension platzierung

Beitragvon chris1278 » 13.11.2017 21:32

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

Benutzeravatar
vfrblue
Junior Supporter
Beiträge: 799
Registriert: 22.11.2016 18:46
Wohnort: Niedersachsen-West
Kontaktdaten:

Re: extension platzierung

Beitragvon vfrblue » 13.11.2017 21:39

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.
Gruß Hermann

Forum VFR-OC
User: phpbbtest PW: vfroc

Benutzeravatar
chris1278
Mitglied
Beiträge: 795
Registriert: 12.11.2007 06:20
Kontaktdaten:

Re: extension platzierung

Beitragvon chris1278 » 13.11.2017 21:40

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.


Zurück zu „Extension Support“