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.
Antworten
vfrblue
Ehemaliges Teammitglied
Beiträge: 1993
Registriert: 22.11.2016 18:46

Social Media

Beitrag 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
Benutzeravatar
Kirk
Supporter
Supporter
Beiträge: 7858
Registriert: 24.05.2010 08:31
Kontaktdaten:

Re: Social Media

Beitrag 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}"
vfrblue
Ehemaliges Teammitglied
Beiträge: 1993
Registriert: 22.11.2016 18:46

Re: Social Media

Beitrag von vfrblue »

Dank dir, Udo. Ich werde mir das anschauen und probieren. :geek:
vfrblue
Ehemaliges Teammitglied
Beiträge: 1993
Registriert: 22.11.2016 18:46

Re: Social Media

Beitrag 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.
Benutzeravatar
Kirk
Supporter
Supporter
Beiträge: 7858
Registriert: 24.05.2010 08:31
Kontaktdaten:

Re: Social Media

Beitrag 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;
	}
}
vfrblue
Ehemaliges Teammitglied
Beiträge: 1993
Registriert: 22.11.2016 18:46

Re: Social Media

Beitrag 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.
Antworten

Zurück zu „Extension Bastelstube“