Hilfe bei Code-einbindung in php gesucht

Alles zu Styles, Templates, Icons und Smilies für phpBB 3.3, sowie allgemeine Designfragen zur Integration von phpBB in bestehende Websites.
Forumsregeln
Bei Style spezifischen Fragen ist der Stylename und die Downloadquelle des Styles erforderlich sowie die URL vom betroffenen Forum.
Antworten
MegaCornan
Mitglied
Beiträge: 16
Registriert: 18.03.2016 15:50

Hilfe bei Code-einbindung in php gesucht

Beitrag von MegaCornan »

Hallo, ich bin etwas "verzweifelt" :-?
Ich verwende von bb3mobi die Extension, dass in der online user liste nicht die Namen, sondern Bilder angezeigt werden. Das funktioniert. Hier der Link: http://bb3.mobi/forum/viewtopic.php?t=308

Ich möchte gerne einen Tooltip/Hover integrieren, der dann den Username Anzeigt, wenn man über das Bild färbt, nur weiß ich nicht und schaffe es nicht, den Code richtig einzubauen.
Könnte mir jemand vielleicht helfen?

Das ist der Tooltip:

Code: Alles auswählen

<a href="userlink" onmouseover="tooltip.show('Hier der Username'); Aktivieren();" onmouseout="tooltip.hide();"><img src="img.png" border="0" /></a>

Und das ist der Code wo ich das einbauen möchte:

Code: Alles auswählen

<?php

/**
*
* @package Online users avatars
* @copyright Anvar 2016 (c) http://bb3.mobi
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/

namespace bb3mobi\online_users_avatar\event;

use Symfony\Component\EventDispatcher\EventSubscriberInterface;

class listener implements EventSubscriberInterface
{
	protected $user;

	public function __construct(\phpbb\user $user)
	{
		$this->user = $user;
	}

	static public function getSubscribedEvents()
	{
		return array(
			/**
			* Modify SQL query to obtain online users data
			*
			* @event core.obtain_users_online_string_sql
			* @var	array	online_users	Array with online users data
			*								from obtain_users_online()
			* @var	int		item_id			Restrict online users to item id
			* @var	string	item			Restrict online users to a certain
			*								session item, e.g. forum for
			*								session_forum_id
			* @var	array	sql_ary			SQL query array to obtain users online data
			* @since 3.1.4-RC1
			* @changed 3.1.7-RC1			Change sql query into array and adjust var accordingly. Allows extension authors the ability to adjust the sql_ary.
			*/
			'core.obtain_users_online_string_sql'		=> 'obtain_users_online_string_sql',
			/**
			* Modify online userlist data
			*
			* @event core.obtain_users_online_string_modify
			* @var	array	online_users		Array with online users data
			*									from obtain_users_online()
			* @var	int		item_id				Restrict online users to item id
			* @var	string	item				Restrict online users to a certain
			*									session item, e.g. forum for
			*									session_forum_id
			* @var	array	rowset				Array with online users data
			* @var	array	user_online_link	Array with online users items (usernames)
			* @var	string	online_userlist		String containing users online list
			* @var	string	l_online_users		String with total online users count info
			* @since 3.1.4-RC1
			*/
			'core.obtain_users_online_string_modify'	=> 'obtain_users_online_string_modify',

			/**
			* Modify SQL query to obtain wwhlight users data
			*
			* @event wwhlight.obtain_users_online_string_sql
			* @var	array	sql_ary		SQL query array to obtain users online data
			*/
			'wwhlight.obtain_users_online_string_sql'	=> 'obtain_users_online_string_sql',
			/**
			* Modify wwhlight userlist data
			*
			* @event wwhlight.obtain_users_online_string_modify
			* @var	array	rowset				Array with wwhlight users data
			* @var	array	user_online_link	Array with wwhlight users usernames
			* @var	string	online_userlist		String containing users online list
			*/
			'wwhlight.obtain_users_online_string_modify'	=> 'obtain_users_online_string_modify',
		);
	}

	/** Добавляем запрос данных об аватарах пользователей */
	public function obtain_users_online_string_sql($event)
	{
		$sql_ary = $event['sql_ary'];
		$sql_ary['SELECT'] .= ', u.user_avatar, u.user_avatar_type, u.user_avatar_width, u.user_avatar_height';
		$event['sql_ary'] = $sql_ary;
	}

	/** Переписывем существующие списки онлайн пользователей*/
	public function obtain_users_online_string_modify($event)
	{
		$u_online = $event['user_online_link'];
		$online_users = $event['online_users'];

		/** Вариант 1 */
		$online_userlist = $event['online_userlist'];
		foreach ($event['rowset'] as $row)
		{
			if (!isset($u_online[$row['user_id']]))
			{
				continue;
			}
			$replace_avatar = '<span title="' . $row['username'] . '">' . $this->a_img($row) .  '</span>';
			if (isset($online_users['hidden_users'][$row['user_id']]))
			{
				$row['username'] = '<em>' . $row['username'] . '</em>';
			}
			// Заменяем имя пользователя на изображение аватара
			$online_userlist = str_replace($row['username'], $replace_avatar, $online_userlist);
		}
		$online_userlist = str_replace(',', '', $online_userlist); // Запятые под снос..
		$online_userlist = str_replace($this->user->lang['REGISTERED_USERS'], '', $online_userlist);

		/** Вариант 2 */
		/*
		foreach ($event['rowset'] as $row)
		{
			if (!isset($u_online[$row['user_id']]))
			{
				continue;
			}

			// Аватар пользователя со ссылкой на профиль
			if ($row['user_type'] <> USER_IGNORE || !isset($online_users['hidden_users'][$row['user_id']]))
			{
				$u_online[$row['user_id']] = '<a class="lastpostavatar" href="' . get_username_string('profile', $row['user_id'], $row['username'], $row['user_colour']) . '" title="' . $row['username'] . '">' . $this->a_img($row) . '</a>';
			}
			else
			{
				$u_online[$row['user_id']] = '<span class="lastpostavatar" title="' . $row['username'] . '">' . $this->a_img($row) . '</span>';
			}
		}
		$online_userlist = implode(' ', $u_online);*/

		$event['online_userlist'] = $online_userlist;
	}

	private function a_img($avatar)
	{
		if (!empty($avatar['user_avatar']))
		{
			// Выравниваем по высоте
			$avatar['user_avatar_width'] = round(40/$avatar['user_avatar_height']*$avatar['user_avatar_width']);
			$avatar['user_avatar_height'] = 40;

			return phpbb_get_user_avatar($avatar);
		}

		$theme = generate_board_url() . "/styles/" . rawurlencode($this->user->style['style_path']) . '/theme';
		return '<img class="avatar" src="' . $theme . '/images/no_avatar.gif" width="40" height="40" alt="" />';
	}
}

Wenn das jemand für mich tun könnte, oder mir erklären könnte, wie genau man html in php einbindet, wäre ich sehr dankbar :o :grin:
Benutzeravatar
Melmac
Ehemaliges Teammitglied
Beiträge: 3623
Registriert: 15.10.2012 03:27

Re: Hilfe bei Code-einbindung in php gesucht

Beitrag von Melmac »

Hi,

genau so verhält sich doch bereits diese Extension: Cursor auf die Grafik und der Username wird in einem Tooltip angezeigt.

Hast Du eventuell weitere Extensions installiert, die sich mit ihr beißen könnten?
Handle nur nach derjenigen Maxime, durch die du zugleich wollen kannst, dass sie ein allgemeines Gesetz werde.
(Immanuel Kant)
eko1
Mitglied
Beiträge: 135
Registriert: 03.04.2016 18:02

Re: Hilfe bei Code-einbindung in php gesucht

Beitrag von eko1 »

dateien hochladen und tooltip link im footer irgenwo einfügen.
MegaCornan
Mitglied
Beiträge: 16
Registriert: 18.03.2016 15:50

Re: Hilfe bei Code-einbindung in php gesucht

Beitrag von MegaCornan »

Melmac hat geschrieben:Hi,

genau so verhält sich doch bereits diese Extension: Cursor auf die Grafik und der Username wird in einem Tooltip angezeigt.

Hast Du eventuell weitere Extensions installiert, die sich mit ihr beißen könnten?

Ich möchte den Tooltip, der im oberen Code ist, nicht der Standard der drinnen ist :-?
Beißen tut sich nichts, läuft alles gut, ich kann und weiß nicht, wie schon gesagt, man den einbaut, da das php ist und der tooltip html :-?
Benutzeravatar
Melmac
Ehemaliges Teammitglied
Beiträge: 3623
Registriert: 15.10.2012 03:27

Re: Hilfe bei Code-einbindung in php gesucht

Beitrag von Melmac »

Wo hast Du diesen Code her? Bitte mal die Quelle verlinken.
Handle nur nach derjenigen Maxime, durch die du zugleich wollen kannst, dass sie ein allgemeines Gesetz werde.
(Immanuel Kant)
MegaCornan
Mitglied
Beiträge: 16
Registriert: 18.03.2016 15:50

Re: Hilfe bei Code-einbindung in php gesucht

Beitrag von MegaCornan »

Melmac hat geschrieben:Wo hast Du diesen Code her? Bitte mal die Quelle verlinken.
Der Quellcode des tooltips is da, der rest is in der css dann. Der andere ist im post.
Das tooltip ist von mir selber.
Benutzeravatar
Melmac
Ehemaliges Teammitglied
Beiträge: 3623
Registriert: 15.10.2012 03:27

Re: Hilfe bei Code-einbindung in php gesucht

Beitrag von Melmac »

Dann mal anders herum gefragt: was soll Dein "Code" denn bewirken - worin soll sich der Tooltip danach vom Standardtooltip unterscheiden?
Handle nur nach derjenigen Maxime, durch die du zugleich wollen kannst, dass sie ein allgemeines Gesetz werde.
(Immanuel Kant)
MegaCornan
Mitglied
Beiträge: 16
Registriert: 18.03.2016 15:50

Re: Hilfe bei Code-einbindung in php gesucht

Beitrag von MegaCornan »

Melmac hat geschrieben:Dann mal anders herum gefragt: was soll Dein "Code" denn bewirken - worin soll sich der Tooltip danach vom Standardtooltip unterscheiden?

So soll das dargestellt werden: http://megacornan.de/tool/

Das passiert mit dem Code:

Code: Alles auswählen

<a href="userlink" onmouseover="tooltip.show('Hier der Username'); Aktivieren();" onmouseout="tooltip.hide();"><img src="img.png" border="0" /></a>
Nur weiß ich nicht, wie ich das in der Datei einbaue/ersetze:

Code: Alles auswählen

    <?php

    /**
    *
    * @package Online users avatars
    * @copyright Anvar 2016 (c) http://bb3.mobi
    * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
    *
    */

    namespace bb3mobi\online_users_avatar\event;

    use Symfony\Component\EventDispatcher\EventSubscriberInterface;

    class listener implements EventSubscriberInterface
    {
       protected $user;

       public function __construct(\phpbb\user $user)
       {
          $this->user = $user;
       }

       static public function getSubscribedEvents()
       {
          return array(
             /**
             * Modify SQL query to obtain online users data
             *
             * @event core.obtain_users_online_string_sql
             * @var   array   online_users   Array with online users data
             *                        from obtain_users_online()
             * @var   int      item_id         Restrict online users to item id
             * @var   string   item         Restrict online users to a certain
             *                        session item, e.g. forum for
             *                        session_forum_id
             * @var   array   sql_ary         SQL query array to obtain users online data
             * @since 3.1.4-RC1
             * @changed 3.1.7-RC1         Change sql query into array and adjust var accordingly. Allows extension authors the ability to adjust the sql_ary.
             */
             'core.obtain_users_online_string_sql'      => 'obtain_users_online_string_sql',
             /**
             * Modify online userlist data
             *
             * @event core.obtain_users_online_string_modify
             * @var   array   online_users      Array with online users data
             *                           from obtain_users_online()
             * @var   int      item_id            Restrict online users to item id
             * @var   string   item            Restrict online users to a certain
             *                           session item, e.g. forum for
             *                           session_forum_id
             * @var   array   rowset            Array with online users data
             * @var   array   user_online_link   Array with online users items (usernames)
             * @var   string   online_userlist      String containing users online list
             * @var   string   l_online_users      String with total online users count info
             * @since 3.1.4-RC1
             */
             'core.obtain_users_online_string_modify'   => 'obtain_users_online_string_modify',

             /**
             * Modify SQL query to obtain wwhlight users data
             *
             * @event wwhlight.obtain_users_online_string_sql
             * @var   array   sql_ary      SQL query array to obtain users online data
             */
             'wwhlight.obtain_users_online_string_sql'   => 'obtain_users_online_string_sql',
             /**
             * Modify wwhlight userlist data
             *
             * @event wwhlight.obtain_users_online_string_modify
             * @var   array   rowset            Array with wwhlight users data
             * @var   array   user_online_link   Array with wwhlight users usernames
             * @var   string   online_userlist      String containing users online list
             */
             'wwhlight.obtain_users_online_string_modify'   => 'obtain_users_online_string_modify',
          );
       }

       /** Добавляем запрос данных об аватарах пользователей */
       public function obtain_users_online_string_sql($event)
       {
          $sql_ary = $event['sql_ary'];
          $sql_ary['SELECT'] .= ', u.user_avatar, u.user_avatar_type, u.user_avatar_width, u.user_avatar_height';
          $event['sql_ary'] = $sql_ary;
       }

       /** Переписывем существующие списки онлайн пользователей*/
       public function obtain_users_online_string_modify($event)
       {
          $u_online = $event['user_online_link'];
          $online_users = $event['online_users'];

          /** Вариант 1 */
          $online_userlist = $event['online_userlist'];
          foreach ($event['rowset'] as $row)
          {
             if (!isset($u_online[$row['user_id']]))
             {
                continue;
             }
             $replace_avatar = '<span title="' . $row['username'] . '">' . $this->a_img($row) .  '</span>';
             if (isset($online_users['hidden_users'][$row['user_id']]))
             {
                $row['username'] = '<em>' . $row['username'] . '</em>';
             }
             // Заменяем имя пользователя на изображение аватара
             $online_userlist = str_replace($row['username'], $replace_avatar, $online_userlist);
          }
          $online_userlist = str_replace(',', '', $online_userlist); // Запятые под снос..
          $online_userlist = str_replace($this->user->lang['REGISTERED_USERS'], '', $online_userlist);

          /** Вариант 2 */
          /*
          foreach ($event['rowset'] as $row)
          {
             if (!isset($u_online[$row['user_id']]))
             {
                continue;
             }

             // Аватар пользователя со ссылкой на профиль
             if ($row['user_type'] <> USER_IGNORE || !isset($online_users['hidden_users'][$row['user_id']]))
             {
                $u_online[$row['user_id']] = '<a class="lastpostavatar" href="' . get_username_string('profile', $row['user_id'], $row['username'], $row['user_colour']) . '" title="' . $row['username'] . '">' . $this->a_img($row) . '</a>';
             }
             else
             {
                $u_online[$row['user_id']] = '<span class="lastpostavatar" title="' . $row['username'] . '">' . $this->a_img($row) . '</span>';
             }
          }
          $online_userlist = implode(' ', $u_online);*/

          $event['online_userlist'] = $online_userlist;
       }

       private function a_img($avatar)
       {
          if (!empty($avatar['user_avatar']))
          {
             // Выравниваем по высоте
             $avatar['user_avatar_width'] = round(40/$avatar['user_avatar_height']*$avatar['user_avatar_width']);
             $avatar['user_avatar_height'] = 40;

             return phpbb_get_user_avatar($avatar);
          }

          $theme = generate_board_url() . "/styles/" . rawurlencode($this->user->style['style_path']) . '/theme';
          return '<img class="avatar" src="' . $theme . '/images/no_avatar.gif" width="40" height="40" alt="" />';
       }
    }
MegaCornan
Mitglied
Beiträge: 16
Registriert: 18.03.2016 15:50

Re: Hilfe bei Code-einbindung in php gesucht

Beitrag von MegaCornan »

Kann mir keiner helfen? :(
eko1
Mitglied
Beiträge: 135
Registriert: 03.04.2016 18:02

Re: Hilfe bei Code-einbindung in php gesucht

Beitrag von eko1 »

schaumal vielleicht hier phpbb Avatar show on "Who is Online"
Antworten

Zurück zu „Styles, Templates und Grafiken“