Seite 1 von 1

Social Media

Verfasst: 01.09.2017 21:51
von vfrblue
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

Re: Social Media

Verfasst: 02.09.2017 11:37
von Kirk
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}"

Re: Social Media

Verfasst: 02.09.2017 11:47
von vfrblue
Dank dir, Udo. Ich werde mir das anschauen und probieren. :geek:

Re: Social Media

Verfasst: 07.09.2017 19:02
von vfrblue
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.

Re: Social Media

Verfasst: 09.09.2017 11:11
von Kirk
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;
   }
}

Re: Social Media

Verfasst: 09.09.2017 12:34
von vfrblue
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.