Smileys global verfügbar machen
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Smileys global verfügbar machen
hallo,
ich bin gerade dabei einen chat in das template meines phpBB3 Systems einzubauen. zu diesem zweck hätte ich es gerna das in diesem feld automatisch die phpBB smyles verwendet würden... mit ner schleife a la <!-- BEGIN smiley --> geht das auf einigen seiten auch ganz gut... problem sind halt nur die seiten wo standartmäßig keine smileys drauf sind... in diesem fall wird die funktion ja nicht aufgerufen.... ich kenn mich zwar gutgenug mit php aus um das problem selbst zu lösen aber in der praxis scheitert es dann daran, dass ich mich zu wenig mit der doch recht komplexen datenstruktur von phpBB. ums kurz zu sagen ist mir noch nicht ganz klar, was ich wo ändern muss damit ich die oben genannte schleife auf jeder seite im template benutzen kann... wäre nett, wenn mir jemand sagt was ich ändern muss, beziehungsweise welche dateien dafür relevant sind.... so such ich mich ja dumm und dämlich...
mfg,
Kerwindena
PS.: ja ich habe Google und die SuFu benutzt^^
ich bin gerade dabei einen chat in das template meines phpBB3 Systems einzubauen. zu diesem zweck hätte ich es gerna das in diesem feld automatisch die phpBB smyles verwendet würden... mit ner schleife a la <!-- BEGIN smiley --> geht das auf einigen seiten auch ganz gut... problem sind halt nur die seiten wo standartmäßig keine smileys drauf sind... in diesem fall wird die funktion ja nicht aufgerufen.... ich kenn mich zwar gutgenug mit php aus um das problem selbst zu lösen aber in der praxis scheitert es dann daran, dass ich mich zu wenig mit der doch recht komplexen datenstruktur von phpBB. ums kurz zu sagen ist mir noch nicht ganz klar, was ich wo ändern muss damit ich die oben genannte schleife auf jeder seite im template benutzen kann... wäre nett, wenn mir jemand sagt was ich ändern muss, beziehungsweise welche dateien dafür relevant sind.... so such ich mich ja dumm und dämlich...
mfg,
Kerwindena
PS.: ja ich habe Google und die SuFu benutzt^^
Re: Smileys global verfügbar machen
es reicht nicht, das html zu kopieren, das php muß auch mit 

There are 10 types of people in the world: Those who understand binary and those who don't. 
Support Toolkit in Deutsch

Support Toolkit in Deutsch
- nickvergessen
- Ehrenadmin
- Beiträge: 11559
- Registriert: 09.10.2006 21:56
- Wohnort: Stuttgart, Germany
- Kontaktdaten:
Re: Smileys global verfügbar machen
Das müsste vermutlich reichen...
Code: Alles auswählen
include($phpbb_root_path . 'includes/functions_posting.' . $phpEx);
$template->assign_vars(array(
'SMILIES_STATUS' => (($config['allow_bbcode'] && $config['allow_smilies']) ? $user->lang['SMILIES_ARE_ON'] : $user->lang['SMILIES_ARE_OFF'],
'S_SMILIES_ALLOWED' => $smilies_status,
));
// Build smilies array
generate_smilies('inline', 0);
kein Support per PN
Re: Smileys global verfügbar machen
so das hilft mir schon ein wenig weiter danke...nur noch 2 sachen:
1. syntaxfehler... hast vergessen eine klammer zuzumachen
aber das ist net weiter schlimm^^
2. nur wo genau muss ich das einfügen? weil auf jeder einzelnen seite einbinden möchte ich nicht weil ich dann irgendwo es vergesse und es dann doch net überall geht.... in der common.php macht ers aber nicht mehr wenn ich auf die postig seite gehe, weil er dann die funktionen doppelt läd.... common wäre mir aber lieber... weiß denn wer auf welchen seiten die "includes/functions_posting.php" noch includirt wird oder also außer in der posting.php damit ichs dort rauswerfen kann????
mfg,
Kerwindena
1. syntaxfehler... hast vergessen eine klammer zuzumachen
Code: Alles auswählen
include($phpbb_root_path . 'includes/functions_posting.' . $phpEx);
$template->assign_vars(array(
'SMILIES_STATUS' => (($config['allow_bbcode'] && $config['allow_smilies']) ? $user->lang['SMILIES_ARE_ON'] : $user->lang['SMILIES_ARE_OFF']),
'S_SMILIES_ALLOWED' => $smilies_status,
));
// Build smilies array
generate_smilies('inline', 0);
2. nur wo genau muss ich das einfügen? weil auf jeder einzelnen seite einbinden möchte ich nicht weil ich dann irgendwo es vergesse und es dann doch net überall geht.... in der common.php macht ers aber nicht mehr wenn ich auf die postig seite gehe, weil er dann die funktionen doppelt läd.... common wäre mir aber lieber... weiß denn wer auf welchen seiten die "includes/functions_posting.php" noch includirt wird oder also außer in der posting.php damit ichs dort rauswerfen kann????
mfg,
Kerwindena
Re: Smileys global verfügbar machen
so habs jetzt thx an alle, die mir geholfen haben....
so für alle, die wie ich vergeblich nach einer lösung gesucht haben:
also von mir aus [closed]
mfg,
Kerwindena
so für alle, die wie ich vergeblich nach einer lösung gesucht haben:
- neue datei im includes/ ordner anlegen: functions_posting_smileys.XXX (xxx durch dateiendung ersetzen)
Code: Alles auswählen
<?php /** * * @package phpBB3 * @version $Id: functions_posting.php,v 1.262 2007/07/25 16:06:10 acydburn Exp $ * @copyright (c) 2005 phpBB Group * @license http://opensource.org/licenses/gpl-license.php GNU Public License * */ /** * Fill smiley templates (or just the variables) with smilies, either in a window or inline */ function generate_smilies($mode, $forum_id) { global $auth, $db, $user, $config, $template; global $phpEx, $phpbb_root_path; if ($mode == 'window') { if ($forum_id) { $sql = 'SELECT forum_style FROM ' . FORUMS_TABLE . " WHERE forum_id = $forum_id"; $result = $db->sql_query_limit($sql, 1); $row = $db->sql_fetchrow($result); $db->sql_freeresult($result); $user->setup('posting', (int) $row['forum_style']); } else { $user->setup('posting'); } page_header($user->lang['SMILIES']); $template->set_filenames(array( 'body' => 'posting_smilies.html') ); } $display_link = false; if ($mode == 'inline') { $sql = 'SELECT smiley_id FROM ' . SMILIES_TABLE . ' WHERE display_on_posting = 0'; $result = $db->sql_query_limit($sql, 1, 0, 3600); if ($row = $db->sql_fetchrow($result)) { $display_link = true; } $db->sql_freeresult($result); } $last_url = ''; $sql = 'SELECT * FROM ' . SMILIES_TABLE . (($mode == 'inline') ? ' WHERE display_on_posting = 1 ' : '') . ' ORDER BY smiley_order'; $result = $db->sql_query($sql, 3600); $smilies = array(); while ($row = $db->sql_fetchrow($result)) { if (empty($smilies[$row['smiley_url']])) { $smilies[$row['smiley_url']] = $row; } } $db->sql_freeresult($result); if (sizeof($smilies)) { $template->destroy_block_vars('smiley'); foreach ($smilies as $row) { $template->assign_block_vars('smiley', array( 'SMILEY_CODE' => $row['code'], 'A_SMILEY_CODE' => addslashes($row['code']), 'SMILEY_IMG' => $phpbb_root_path . $config['smilies_path'] . '/' . $row['smiley_url'], 'SMILEY_WIDTH' => $row['smiley_width'], 'SMILEY_HEIGHT' => $row['smiley_height'], 'SMILEY_DESC' => $row['emotion']) ); } } if ($mode == 'inline' && $display_link) { $template->assign_vars(array( 'S_SHOW_SMILEY_LINK' => true, 'U_MORE_SMILIES' => append_sid("{$phpbb_root_path}posting.$phpEx", 'mode=smilies&f=' . $forum_id)) ); } if ($mode == 'window') { page_footer(); } } ?>
- im includes/ ordner die functions_posting_.XXX die stellemit
Code: Alles auswählen
/** * * @package phpBB3 * @version $Id: functions_posting.php,v 1.262 2007/07/25 16:06:10 acydburn Exp $ * @copyright (c) 2005 phpBB Group * @license http://opensource.org/licenses/gpl-license.php GNU Public License * */ /** * Fill smiley templates (or just the variables) with smilies, either in a window or inline */ function generate_smilies($mode, $forum_id) { global $auth, $db, $user, $config, $template; global $phpEx, $phpbb_root_path; if ($mode == 'window') { if ($forum_id) { $sql = 'SELECT forum_style FROM ' . FORUMS_TABLE . " WHERE forum_id = $forum_id"; $result = $db->sql_query_limit($sql, 1); $row = $db->sql_fetchrow($result); $db->sql_freeresult($result); $user->setup('posting', (int) $row['forum_style']); } else { $user->setup('posting'); } page_header($user->lang['SMILIES']); $template->set_filenames(array( 'body' => 'posting_smilies.html') ); } $display_link = false; if ($mode == 'inline') { $sql = 'SELECT smiley_id FROM ' . SMILIES_TABLE . ' WHERE display_on_posting = 0'; $result = $db->sql_query_limit($sql, 1, 0, 3600); if ($row = $db->sql_fetchrow($result)) { $display_link = true; } $db->sql_freeresult($result); } $last_url = ''; $sql = 'SELECT * FROM ' . SMILIES_TABLE . (($mode == 'inline') ? ' WHERE display_on_posting = 1 ' : '') . ' ORDER BY smiley_order'; $result = $db->sql_query($sql, 3600); $smilies = array(); while ($row = $db->sql_fetchrow($result)) { if (empty($smilies[$row['smiley_url']])) { $smilies[$row['smiley_url']] = $row; } } $db->sql_freeresult($result); if (sizeof($smilies)) { foreach ($smilies as $row) { $template->assign_block_vars('smiley', array( 'SMILEY_CODE' => $row['code'], 'A_SMILEY_CODE' => addslashes($row['code']), 'SMILEY_IMG' => $phpbb_root_path . $config['smilies_path'] . '/' . $row['smiley_url'], 'SMILEY_WIDTH' => $row['smiley_width'], 'SMILEY_HEIGHT' => $row['smiley_height'], 'SMILEY_DESC' => $row['emotion']) ); } } if ($mode == 'inline' && $display_link) { $template->assign_vars(array( 'S_SHOW_SMILEY_LINK' => true, 'U_MORE_SMILIES' => append_sid("{$phpbb_root_path}posting.$phpEx", 'mode=smilies&f=' . $forum_id)) ); } if ($mode == 'window') { page_footer(); } }
ersetzen.Code: Alles auswählen
/** * * @package phpBB3 * @version $Id: functions_posting.php,v 1.262 2007/07/25 16:06:10 acydburn Exp $ * @copyright (c) 2005 phpBB Group * @license http://opensource.org/licenses/gpl-license.php GNU Public License * */ /** * Fill smiley templates (or just the variables) with smilies, either in a window or inline */ include_once($phpbb_root_path . 'includes/functions_posting_smileys.' . $phpEx);
- in der config.XXX im phpbb-root am ende, direkt vor dasdas hier:
Code: Alles auswählen
?>
einfügen.Code: Alles auswählen
include_once($phpbb_root_path . 'includes/functions_posting_smileys.' . $phpEx); $template->assign_vars(array( 'SMILIES_STATUS' => (($config['allow_bbcode'] && $config['allow_smilies']) ? $user->lang['SMILIES_ARE_ON'] : $user->lang['SMILIES_ARE_OFF']), 'S_SMILIES_ALLOWED' => $smilies_status, )); // Build smilies array generate_smilies('inline', 0);
also von mir aus [closed]
mfg,
Kerwindena
-
- Mitglied
- Beiträge: 211
- Registriert: 13.11.2008 21:13
Re: Smileys global verfügbar machen
Soweit ist das ja alles ganz praktisch und ich würde das auch gerne anwenden, wenn ich nicht dann an der entsprechenden Stelle (der Mypage (Mod) Editor im UCP) immer diesen Fehler kriegen würde:
Da wo die Smilies aber schon vor der Änderung funktionierten, funktionieren sie auch weiterhin.
Kann jemand helfen?
lg,
TrashMaster
Code: Alles auswählen
Fatal error: Call to a member function assign_vars() on a non-object in /home/www/**********/phpbb3/config.php on line 20
Kann jemand helfen?
lg,
TrashMaster
phpBB Version: 3.0.5
Style: Prosilver, Prosilver SE
Style: Prosilver, Prosilver SE