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 -->
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>'))
);
}
}
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);
}
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
Code: Alles auswählen
'NEW_PICTURE' => 'Es wurde mindestens ein Bild der Galerie hinzugefügt.
Klick >>%shier%s<<, um zu der Galerie zu gelangen.',
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" />
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 -->
Code: Alles auswählen
<!-- IF S_BOARD_DISABLED and S_USER_LOGGED_IN and (U_MCP or U_ACP) -->
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 -->
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));
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);
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']));
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