Hilfe beim Benachrichtigungssystem

Allgemeiner Support zum phpBB 3 Board und phpBB 3 Modifikationen.
Kein Support für die Download MOD / Extension!!
No support for the Download MOD / Extension!!
Please visit https://phpbb3.oxpus.net for Download MOD / Extension
Antworten
Benutzeravatar
bce
Beiträge: 858
Registriert: Do 14.Okt, 2004 18:46
Kontaktdaten:

Hilfe beim Benachrichtigungssystem

Beitrag von bce »

das benachrichtigungssystem des download-mod ist super!

nun würde ich gerne diese benachrichtigung auch für einen anderen mod (gallery) verwenden. beim gallery-mod muss man ein album abonieren um über neue bilder informiert zu werden. wenn man aber immer ein neues album anlegt und dann darein die bilder kopiert, dann macht sich das schlecht mit dem abonieren...

folgender gedanke: der user müsste eine auswahl der benachrichtigung haben:
1. Board Nachricht bei neuen Bildern anzeigen
2. Popup bei neuen Bildern anzeigen
(3. Email bei neuen Bildern senden) nicht so wichtig

was benötige ich um die benachrichtigung in den gallery-mod einzubauen?

-in der phpbb_users müssten einträge angelegt werden:
user_new_picture (user_new_download)
user_allow_new_picture_popup (user_allow_new_download_popup)
und ein eintrag in der tabelle wo gespeichert wird ob popup oder board-nachricht (user_dl_note_type)

styles/prosilver/template/overall_header.html
einfügen:

Code: Alles auswählen

<!-- IF S_NEW_PICTURE_POPUP -->
<script language="Javascript" type="text/javascript">
// <![CDATA[
	window.open('{U_NEW_PICTURE_POPUP}', '_blank', 'HEIGHT=225,resizable=yes,WIDTH=400');
// ]] >
</script>
<!-- ENDIF -->

Code: Alles auswählen

		<!-- IF S_NEW_PICTURE_MESSAGE -->
			<div id="message" class="rules">
				<div class="inner"><span class="corners-top"><span></span></span>
					{NEW_PICTURE_MESSAGE}
				<span class="corners-bottom"><span></span></span></div>
			</div>
		<!-- ENDIF -->
includes/functions.php

Code: Alles auswählen

	// Download MOD 6
	$db->return_on_error = true;
	if ( $user->data['user_new_download'] )
	{
		$sql = "UPDATE " . USERS_TABLE . "
			SET user_new_download = 0
			WHERE user_id = " . $user->data['user_id'];
		$db->sql_query($sql);
		
		if ($user->data['user_dl_note_type'])
		{
			$template->assign_var('S_NEW_DL_POPUP', true);
			$template->assign_vars(array(
				'U_NEW_DOWNLOAD_POPUP' => append_sid("{$phpbb_root_path}downloads.{$phpEx}?view=popup"))
			);
		}
		else
		{
			$template->assign_var('S_NEW_DL_MESSAGE', true);
			$template->assign_vars(array(
				'NEW_DOWNLOAD_MESSAGE' => sprintf($user->lang['NEW_DOWNLOAD'], '<a href="'.append_sid("{$phpbb_root_path}downloads.$phpEx").'">', '</a>'))
			);
		}
	}
wenn ein bild oder mehrere hinzugefügt wurde muss ja irgendwo noch der sql-befehl, damit user_new_picture auf 1 gesetzt wird.
in der \dl_mod\includes\dl_modcp.php (zeile 366)

Code: Alles auswählen

		if (!$dl_config['disable_popup'] && !$disable_popup_notify)
		{
			$sql = 'UPDATE ' . USERS_TABLE . "
				SET user_new_download = 1
				WHERE user_allow_fav_download_popup = 1
					$sql_fav_user
					AND " . $db->sql_in_set('user_id', explode(',', $processing_user));
			$db->sql_query($sql);
		}
müsste noch angepasst werden
muss ich die stelle im gallery-mod suchen, wo die bilder hinzugefügt werden.


das ist erstmal das was ich mir so zusammengesucht habe.


was habe ich sonst noch vergessen?

edit: eintrag in die language-datei (\language\de\mods\gallery.php ):

Code: Alles auswählen

	'NEW_PICTURE' => 'Es ist mind. ein Bild neu hochgeladen worden.
Klick %shier%s, um zur Galerie zu gehen.',
+++++++++++++++++++++++++++++++++++++++++++

sooo.. mittels folgender änderungen wird ein popup angezeigt, sobald ein bild neu in die gallery hinzugefügt wurde.

language/de/common.php

suche nach

Code: Alles auswählen

	'default_dateformat'	=> 'D j. M Y, H:i', // Mo 1. Jan 2007, 13:57
danach einfügen:

Code: Alles auswählen

	'NEW_PICTURE' => 'Es wurde mindestens ein Bild der Galerie hinzugefügt.
Klick >>%shier%s<<, um zu der Galerie zu gelangen.',
\styles\prosilver\template\overall_header.html
suchen nach:

Code: Alles auswählen

<link href="{T_THEME_PATH}/print.css" rel="stylesheet" type="text/css" media="print" title="printonly" />
<link href="{T_STYLESHEET_LINK}" rel="stylesheet" type="text/css" media="screen, projection" />
davor einfügen:

Code: Alles auswählen

<!-- IF S_NEW_PIC_POPUP -->
<script language="Javascript" type="text/javascript">
// <![CDATA[
	window.open('{U_NEW_PICTURE_POPUP}', '_blank', 'HEIGHT=225,resizable=yes,WIDTH=400');
// ]] >
</script>
<!-- ENDIF -->
suchen nach:

Code: Alles auswählen

<!-- IF S_BOARD_DISABLED and S_USER_LOGGED_IN and (U_MCP or U_ACP) --> 
davor einfügen:

Code: Alles auswählen

		<!-- IF S_NEW_PIC_MESSAGE -->
			<div id="message" class="rules">
				<div class="inner"><span class="corners-top"><span></span></span>
					{NEW_PICTURE_MESSAGE}
				<span class="corners-bottom"><span></span></span></div>
			</div>
		<!-- ENDIF -->	        	
öffne includes/acp/acp_gallery.php

suche nach

Code: Alles auswählen

				unlink($phpbb_root_path . GALLERY_IMPORT_PATH . $import_schema . '.' . $phpEx);
				trigger_error(sprintf($user->lang['IMPORT_FINISHED'], $done_images) . adm_back_link($this->u_action));
davor einfügen:

Code: Alles auswählen

				//db eintrag, dass neue bilder vorhanden sind
				echo $sql = 'UPDATE ' . USERS_TABLE . "
					SET user_new_picture = 1
					WHERE user_allow_fav_picture_popup = 1
					AND user_id != 1 
					AND user_id != " . $user->data['user_id'];  
					/* 1 - anonymous und user der bild hochgeladen, da wird keine 1 eingetragen */
//							$sql_fav_user
//							AND user_id = " . $user_data['user_id']; 
				$db->sql_query($sql);

öffne \gallery\posting.php

suche nach:

Code: Alles auswählen

						$sql = 'UPDATE ' . GALLERY_ALBUMS_TABLE . " 
							SET album_images_real = album_images_real + $images
							WHERE album_id = $album_id";
						$db->sql_query($sql);
danach einfügen:

Code: Alles auswählen

				//db eintrag, dass neue bilder vorhanden sind
				echo $sql = 'UPDATE ' . USERS_TABLE . "
					SET user_new_picture = 1
					WHERE user_allow_fav_picture_popup = 1
					AND user_id != 1 
					AND user_id != " . $user->data['user_id'];  
					/* 1 - anonymous und user der bild hochgeladen, da wird keine 1 eingetragen */
//							$sql_fav_user
//							AND user_id = " . $user_data['user_id']; 
				$db->sql_query($sql);

öffne includes/functions.php

suche nach:

Code: Alles auswählen

	// Which timezone?
	$tz = ($user->data['user_id'] != ANONYMOUS) ? strval(doubleval($user->data['user_timezone'])) : strval(doubleval($config['board_timezone']));
davor einfügen:

Code: Alles auswählen

//+++ benachrichtigung übert neue bilder +++
	$db->return_on_error = true;
	if ( $user->data['user_new_picture'] )
	{
		//db-eintrag 1 -> 0 beim entsprechenden User
/*zum testen deaktiviert
*/		$sql = "UPDATE " . USERS_TABLE . "
			SET user_new_picture = 0
			WHERE user_id = " . $user->data['user_id'];
		$db->sql_query($sql);
		
		//popup 
		if ($user->data['user_pic_note_type'])
		{
			$template->assign_var('S_NEW_PIC_POPUP', true);
			$template->assign_vars(array(
				'U_NEW_PICTURE_POPUP' => append_sid("{$phpbb_root_path}gal_popup.{$phpEx}?view=popup"))
			);
		}
		else // oder board-message
		{
			$template->assign_var('S_NEW_PIC_MESSAGE', true);
			$template->assign_vars(array(
				'NEW_PICTURE_MESSAGE' => sprintf($user->lang['NEW_PICTURE'], '<a href="'.append_sid("{$phpbb_root_path}gallery/index.$phpEx").'">', '</a>'))
			);
		}		
	}//if

im root muss eine datei namens gal_popup.php angelegt werden und mit folgenden inhalt gefüllt werden:

Code: Alles auswählen

<?php

/*
* connect to phpBB
*/
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
include($phpbb_root_path . 'includes/bbcode.' . $phpEx);

/*
* session management
*/
$user->session_begin();
$auth->acl($user->data);
$user->setup();

	/*
	* display the popup for a new or changed download
	*/
	$gen_simple_header = TRUE;
	page_header();

	$template->set_filenames(array(
		'body' => 'ucp_pm_popup.html')
	);

	$template->assign_vars(array(
		'L_CLOSE_WINDOW' => $user->lang['CLOSE_WINDOW'],
		'MESSAGE' => sprintf($user->lang['NEW_PICTURE'], '<a href="javascript:jump_to_inbox(\'' . append_sid("{$phpbb_root_path}gallery/index.$phpEx") . '\');">', '</a>'))	
	);

	page_footer();


?>

in der tabelle phpbb_users müssen
-user_pic_note_type (tinyint 1 unsigned, not null, default 1)
-user_allow_fav_picture_popup (tinyint 1 unsigned, not null, default 1)
-user_new_picture (tinyint 1 unsigned, not null, default 0)
angelegt sein


-es werden keine rechte geprüft - popup wird bei allen usern angezeigt
-es gibt noch keine einstellmöglichkeit im ucp
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von bce am Mi 08.Jul, 2009 14:40, insgesamt 4-mal geändert.
Antworten