Social Media

In diesem Forum gibt es Starthilfe zum neuen Extension-System von phpBB 3.1/3.2. Fragen zur Entwicklung von Extensions und zur Konvertierung von phpBB 3.0.x MODs sind ebenfalls willkommen.
Benutzeravatar
vfrblue
Junior Supporter
Beiträge: 634
Registriert: 22.11.2016 18:46
Wohnort: Niedersachsen-West
Kontaktdaten:

Social Media

Beitragvon vfrblue » 01.09.2017 21:51

Hallo,
ich habe mal eine kleine Erweiterung gebastelt, die Social-Media-Buttons in einem Forum anzeigt. Die Erweiterung ist ganz einfach gehalten und enthält Links zu Facebook, Google+, Twitter und WhatsApp. Der WhatsApp-Button wird nur in der mobilen Ansicht angezeigt, was ja auch Sinn macht.
Zur Zeit werden die Buttons unterhalb der Statistik angezeigt. Das möchte ich ändern, nur habe ich keinen Anhaltspunkt, wie ich das im ACP darstellen und auswählen kann. Auch wäre ein Hinweis hilfreich, wie ich das mit den Sprachdateien lösen kann. In der jetzigen Form gibt es nur eine englische Variante, die im Template hinterlegt ist. title="Share on xxx"
Download
Demo
Gruß Hermann

Forum VFR-OC
User: phpbbtest PW: vfroc

Benutzeravatar
Kirk
Supporter
Supporter
Beiträge: 5401
Registriert: 24.05.2010 08:31
Kontaktdaten:

Re: Social Media

Beitragvon Kirk » 02.09.2017 11:37

Hi
Du müsstest ein ACP Modul erstellen wo z.b. die Position dieser Social-Media-Buttons auswählen kann, schau dir mal meine EXT Top Posters an, da kann man die Position im ACP auswählen.
Was die Sprachdateien angeht, lege doch welche an, in deiner listener.php müsstest du es so definieren:

Code: Alles auswählen

use Symfony\Component\EventDispatcher\EventSubscriberInterface;

/**
* Event listener
*/
class listener implements EventSubscriberInterface
{
   /** @var \phpbb\template\template */
   protected $template;

   //** @var string phpbb_root_path */
   protected $root_path;

   /**
   * 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;
   }
}

Vorrausgesetzt du benennst die Sprachdatei "mediabutton" ansonsten einfach diesen Namen in der listener ändern.
In der root/ext/vfrocde/mediabutton/config/services.yml musst du nach - '%core.root_path%' das hier mit einfügen - '@user'
So kannst du im template das hier benutzen title="{L_SHARE_ON_FACEBOOK}"

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

Re: Social Media

Beitragvon vfrblue » 02.09.2017 11:47

Dank dir, Udo. Ich werde mir das anschauen und probieren. :geek:
Gruß Hermann

Forum VFR-OC
User: phpbbtest PW: vfroc

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

Re: Social Media

Beitragvon vfrblue » 07.09.2017 19:02

Ich habe jetzt nach mehreren Versuchen, die immer wieder einen PHP-Fehler verursachten, die Sprachdateien eingebunden. Vor lauter Klammern in der "listener.php" habe ich übersehen, dass eine geschweifte Klammer zuviel des Guten war. :-?
Ich habe die Icons jetzt auch erst einmal in der "Footer-Breadcrumb" links neben der "Forenübersicht" und "Startseite/Homepage" verbannt. Dann sind sie nicht so allein, wie in der ersten Lösung. :grin: Download der "neuen" Version : erster Beitrag.
Gruß Hermann

Forum VFR-OC
User: phpbbtest PW: vfroc

Benutzeravatar
Kirk
Supporter
Supporter
Beiträge: 5401
Registriert: 24.05.2010 08:31
Kontaktdaten:

Re: Social Media

Beitragvon Kirk » 09.09.2017 11:11

Ich finde es so auch besser, du hast einen kleine Fehler in der overall_footer_breadcrumb_append.html es steht {L_MB_WHATAPP} anstatt {L_MB_WHATSAPP} drin.
Kleiner Verbesserungsvorschlag, in der responsiven Ansicht sieht man es so: [ externes Bild ]
So würde es besser aussehen: [ externes Bild ]
Ersetze den Code in der overall_footer_breadcrumb_append.html hiermit:

Code: Alles auswählen

<li class="nav_social" role="navigation">
   <!-- Facebook -->
   <a href="https://www.facebook.com/sharer/sharer.php?u={BOARD_URL}" title="{L_MB_FACEBOOK}"><i class="fa fa-facebook-official" aria-hidden="true"></i><span class="mb-responsive-show">{L_MB_FACEBOOK}</span></a>
   <!-- Google+ -->
   <a href="https://plus.google.com/share?url={BOARD_URL}&title=Foren-%C3%9Cbersicht" title="{L_MB_GOOGLEPLUS}"> <i class="fa fa-google-plus-official" aria-hidden="true"></i><span class="mb-responsive-show">{L_MB_GOOGLEPLUS}</span></a>
   <!-- Twitter -->
   <a href="https://twitter.com/share" title="{L_MB_TWITTER}" data-lang="de"><i class="fa fa-twitter" aria-hidden="true"></i><span class="mb-responsive-show">{L_MB_TWITTER}</span></a><script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
   <!-- WhatsApp -->
   <a href="WhatsApp://send?text={BOARD_URL}" title="{L_MB_WHATSAPP}"><i class="fa fa-whatsapp" aria-hidden="true"></i><span class="mb-responsive-show">{L_MB_WHATSAPP}</span></a>
</li>

Die dazugehörige css:

Code: Alles auswählen

@media (max-width: 9999px){
   .mb-responsive-show {
      display: none;
   }
}

@media (max-width: 521px){
   .mb-responsive-show {
      display: inline-block;
   }
}

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

Re: Social Media

Beitragvon vfrblue » 09.09.2017 12:34

Hallo Udo, dank dir. So sieht es richtig professionell aus. :wink: 8)

Edit: Habe die geänderte Version bereitgestellt (siehe Download 1. Beitrag). Wenn jemand Interesse hat, bitte sehr.
Gruß Hermann

Forum VFR-OC
User: phpbbtest PW: vfroc


Zurück zu „Extension Bastelstube“