function wppa_send_comment_approved_email($id) { global $wpdb; // Feature enabled? if (!wppa_switch('com_notify_approved')) { return; } // Get comment $com = $wpdb->get_row($wpdb->prepare("SELECT * FROM `" . WPPA_COMMENTS . "` WHERE `id` = %d", $id), ARRAY_A); if (!$com) { return; } // Get photo owner $owner = wppa_get_photo_item($com['photo'], 'owner'); if (!$owner) { return; } // Get email $user = get_user_by('login', $owner); if (!$user) { return; } // Custom content? if (wppa_opt('com_notify_approved_text')) { // The subject $subject = wppa_opt('com_notify_approved_subj'); // The content $content = wppa_opt('com_notify_approved_text'); $content = str_replace('w#comment', $com['comment'], $content); $content = str_replace('w#user', $com['user'], $content); $content = wppa_translate_photo_keywords($com['photo'], $content); // Try to send it with extra headers and with html $iret = wp_mail($user->user_email, $subject, $content, array('Content-Type: text/html'), ''); if ($iret) { return; } // Failed echo 'Mail sending Failed'; echo 'Subj=' . $subject . ', content=' . $content; return; } // Make email text $content = '<h3>' . __('Your photo has a new approved comment', 'wp-photo-album-plus') . '</h3>' . '<h3>' . __('From:', 'wp-photo-album-plus') . ' ' . $com['user'] . '</h3>' . '<h3>' . __('Comment:', 'wp-photo-album-plus') . '</h3>' . '<blockquote style="color:#000077; background-color: #dddddd; border:1px solid black; padding: 6px; border-radius 4px;" ><em> ' . stripslashes($com['comment']) . '</em></blockquote>'; // Send mail wppa_send_mail($user->user_email, __('Approved comment on photo', 'wp-photo-album-plus'), $content, $com['photo'], 'void'); }
function wppa_backend_upload_mail($id, $alb, $name) { $owner = wppa_get_user(); if ($owner == 'admin') { return; } // Admin does not send mails to himself if (wppa_switch('upload_backend_notify')) { $to = get_bloginfo('admin_email'); $subj = sprintf(__('New photo uploaded: %s', 'wp-photo-album-plus'), wppa_sanitize_file_name($name)); $cont['0'] = sprintf(__('User %1$s uploaded photo %2$s into album %3$s', 'wp-photo-album-plus'), $owner, $id, wppa_get_album_name($alb)); if (wppa_switch('upload_moderate') && !current_user_can('wppa_admin')) { $cont['1'] = __('This upload requires moderation', 'wp-photo-album-plus'); $cont['2'] = '<a href="' . get_admin_url() . 'admin.php?page=wppa_admin_menu&tab=pmod&photo=' . $id . '" >' . __('Moderate manage photo', 'wp-photo-album-plus') . '</a>'; } else { $cont['1'] = __('Details:', 'wp-photo-album-plus'); $cont['1'] .= ' <a href="' . get_admin_url() . 'admin.php?page=wppa_admin_menu&tab=pmod&photo=' . $id . '" >' . __('Manage photo', 'wp-photo-album-plus') . '</a>'; } wppa_send_mail($to, $subj, $cont, $id); } }
function wppa_do_frontend_file_upload($file, $alb) { global $wpdb; global $wppa_supported_video_extensions; global $wppa_supported_audio_extensions; // Log upload attempt wppa_log('Upl', 'FE Upload attempt of file ' . $file['name'] . ', size=' . filesize($file['tmp_name'])); $album = wppa_cache_album($alb); // Legal here? if (!wppa_allow_uploads($alb) || !wppa_allow_user_uploads()) { wppa_alert(__('Max uploads reached', 'wp-photo-album-plus')); return false; } // No error during upload? if ($file['error'] != '0') { wppa_alert(__('Error during upload', 'wp-photo-album-plus')); return false; } // Find the filename $filename = wppa_sanitize_file_name($file['name']); $filename = wppa_strip_ext($filename); // See if this filename with any extension already exists in this album $id = $wpdb->get_var("SELECT `id` FROM `" . WPPA_PHOTOS . "` WHERE `filename` LIKE '" . $filename . ".%' AND `album` = " . $alb); // Addition to an av item? if ($id) { $is_av = wppa_get_photo_item($id, 'ext') == 'xxx'; } else { $is_av = false; } // see if audio / video and process if (wppa_switch('enable_video') && wppa_switch('user_upload_video_on') && in_array(strtolower(wppa_get_ext($file['name'])), $wppa_supported_video_extensions) || wppa_switch('enable_audio') && wppa_switch('user_upload_audio_on') && in_array(strtolower(wppa_get_ext($file['name'])), $wppa_supported_audio_extensions)) { $is_av = true; // Find the name if (wppa_get_post('user-name')) { $name = wppa_get_post('user-name'); } else { $name = $file['name']; } $name = wppa_sanitize_photo_name($name); $filename .= '.xxx'; // update entry if ($id) { wppa_update_photo(array('id' => $id, 'ext' => 'xxx', 'filename' => $filename)); } // Add new entry if (!$id) { $id = wppa_create_photo_entry(array('album' => $alb, 'filename' => $filename, 'ext' => 'xxx', 'name' => $name, 'description' => balanceTags(wppa_get_post('user-desc'), true))); if (!$id) { wppa_alert(__('Could not insert media into db.', 'wp-photo-album-plus')); return false; } } // Housekeeping wppa_update_album(array('id' => $alb, 'modified' => time())); wppa_flush_treecounts($alb); wppa_flush_upldr_cache('photoid', $id); // Add video filetype $ext = strtolower(wppa_get_ext($file['name'])); $newpath = wppa_strip_ext(wppa_get_photo_path($id)) . '.' . $ext; copy($file['tmp_name'], $newpath); // Repair name if not standard if (!wppa_get_post('user-name')) { wppa_set_default_name($id, $file['name']); } // tags wppa_fe_add_tags($id); // custom wppa_fe_add_custom($id); // Done! return $id; } // If not already an existing audio / video; Forget the id from a previously found item with the same filename. if (!$is_av) { $id = false; } // Is it an image? $imgsize = getimagesize($file['tmp_name']); if (!is_array($imgsize)) { wppa_alert(__('Uploaded file is not an image', 'wp-photo-album-plus')); return false; } // Is it a supported image filetype? if ($imgsize[2] != IMAGETYPE_GIF && $imgsize[2] != IMAGETYPE_JPEG && $imgsize[2] != IMAGETYPE_PNG) { wppa_alert(sprintf(__('Only gif, jpg and png image files are supported. Returned info = %s.', 'wp-photo-album-plus'), wppa_serialize($imgsize)), false, false); return false; } // Is it not too big? $ms = wppa_opt('upload_fronend_maxsize'); if ($ms) { // Max size configured if ($imgsize[0] > $ms || $imgsize[1] > $ms) { wppa_alert(sprintf(__('Uploaded file is larger than the allowed maximum of %d x %d pixels.', 'wp-photo-album-plus'), $ms, $ms)); return false; } } // Check for already exists if (wppa_switch('void_dups')) { if (wppa_file_is_in_album(wppa_sanitize_file_name($file['name']), $alb)) { wppa_alert(sprintf(__('Uploaded file %s already exists in this album.', 'wp-photo-album-plus'), wppa_sanitize_file_name($file['name']))); return false; } } // Check for max memory needed to rocess image? $mayupload = wppa_check_memory_limit('', $imgsize[0], $imgsize[1]); if ($mayupload === false) { $maxsize = wppa_check_memory_limit(false); if (is_array($maxsize)) { wppa_alert(sprintf(__('The image is too big. Max photo size: %d x %d (%2.1f MegaPixel)', 'wp-photo-album-plus'), $maxsize['maxx'], $maxsize['maxy'], $maxsize['maxp'] / (1024 * 1024))); return false; } } // Find extension from mimetype switch ($imgsize[2]) { // mime type case 1: $ext = 'gif'; break; case 2: $ext = 'jpg'; break; case 3: $ext = 'png'; break; } // Did the user supply a photoname? if (wppa_get_post('user-name')) { $name = wppa_get_post('user-name'); } else { $name = $file['name']; } // Sanitize input $name = wppa_sanitize_photo_name($name); $desc = balanceTags(wppa_get_post('user-desc'), true); // If BlogIt! and no descrption given, use name field - this is for the shortcode used: typ"mphoto" if (!$desc && isset($_POST['wppa-blogit'])) { $desc = 'w#name'; } // Find status and other needed data $linktarget = '_self'; $status = wppa_switch('upload_moderate') && !current_user_can('wppa_admin') ? 'pending' : 'publish'; if (wppa_switch('fe_upload_private')) { $status = 'private'; } $filename = wppa_sanitize_file_name($file['name']); // Create new entry if this is not a posterfile if (!$is_av) { $id = wppa_create_photo_entry(array('album' => $alb, 'ext' => $ext, 'name' => $name, 'description' => $desc, 'status' => $status, 'filename' => $filename)); } if (!$id) { wppa_alert(__('Could not insert photo into db.', 'wp-photo-album-plus')); return false; } else { wppa_save_source($file['tmp_name'], $filename, $alb); wppa_make_o1_source($id); wppa_update_album(array('id' => $alb, 'modified' => time())); wppa_flush_treecounts($alb); wppa_flush_upldr_cache('photoid', $id); } if (wppa_make_the_photo_files($file['tmp_name'], $id, $ext)) { // Repair photoname if not standard if (!wppa_get_post('user-name')) { wppa_set_default_name($id, $file['name']); } // Custom data wppa_fe_add_custom($id); // Add tags wppa_fe_add_tags($id); // and add watermark ( optionally ) to fullsize image only wppa_add_watermark($id); // Also to thumbnail? if (wppa_switch('watermark_thumbs')) { wppa_create_thumbnail($id); // create new thumb } // Is it a default coverimage? wppa_check_coverimage($id); // Mail if (wppa_switch('upload_notify')) { $to = get_bloginfo('admin_email'); $subj = sprintf(__('New photo uploaded: %s', 'wp-photo-album-plus'), $name); $cont['0'] = sprintf(__('User %1$s uploaded photo %2$s into album %3$s', 'wp-photo-album-plus'), wppa_get_user(), $id, wppa_get_album_name($alb)); if (wppa_switch('upload_moderate') && !current_user_can('wppa_admin')) { $cont['1'] = __('This upload requires moderation', 'wp-photo-album-plus'); $cont['2'] = '<a href="' . get_admin_url() . 'admin.php?page=wppa_admin_menu&tab=pmod&photo=' . $id . '" >' . __('Moderate manage photo', 'wp-photo-album-plus') . '</a>'; } else { $cont['1'] = __('Details:', 'wp-photo-album-plus'); $cont['1'] .= ' <a href="' . get_admin_url() . 'admin.php?page=wppa_admin_menu&tab=pmod&photo=' . $id . '" >' . __('Manage photo', 'wp-photo-album-plus') . '</a>'; } wppa_send_mail($to, $subj, $cont, $id); } return $id; } return false; }
function wppa_do_frontend_file_upload($file, $alb) { global $wpdb; // Log upload attempt wppa_log('Upl', 'FE Upload attempt of file ' . $file['name'] . ', size=' . filesize($file['tmp_name'])); $album = wppa_cache_album($alb); if (!wppa_allow_uploads($alb) || !wppa_allow_user_uploads()) { wppa_alert(__('Max uploads reached', 'wp-photo-album-plus')); return false; } if ($file['error'] != '0') { wppa_alert(__('Error during upload', 'wp-photo-album-plus')); return false; } $imgsize = getimagesize($file['tmp_name']); if (!is_array($imgsize)) { wppa_alert(__('Uploaded file is not an image', 'wp-photo-album-plus')); return false; } if ($imgsize[2] < 1 || $imgsize[2] > 3) { wppa_alert(sprintf(__('Only gif, jpg and png image files are supported. Returned filetype = %d.', 'wp-photo-album-plus'), $imagesize[2])); return false; } $ms = wppa_opt('upload_fronend_maxsize'); if ($ms) { // Max size configured if ($imgsize[0] > $ms || $imgsize[0] > $ms) { wppa_alert(sprintf(__('Uploaded file is larger than the allowed maximum of %d x %d pixels.', 'wp-photo-album-plus'), $ms, $ms)); return false; } } if (wppa_switch('void_dups')) { // Check for already exists if (wppa_file_is_in_album(wppa_sanitize_file_name($file['name']), $alb)) { wppa_alert(sprintf(__('Uploaded file %s already exists in this album.', 'wp-photo-album-plus'), wppa_sanitize_file_name($file['name']))); return false; } } $mayupload = wppa_check_memory_limit('', $imgsize[0], $imgsize[1]); if ($mayupload === false) { $maxsize = wppa_check_memory_limit(false); if (is_array($maxsize)) { wppa_alert(sprintf(__('The image is too big. Max photo size: %d x %d (%2.1f MegaPixel)', 'wp-photo-album-plus'), $maxsize['maxx'], $maxsize['maxy'], $maxsize['maxp'] / (1024 * 1024))); return false; } } switch ($imgsize[2]) { // mime type case 1: $ext = 'gif'; break; case 2: $ext = 'jpg'; break; case 3: $ext = 'png'; break; } if (wppa_get_post('user-name')) { $name = wppa_get_post('user-name'); } else { $name = $file['name']; } $name = wppa_sanitize_photo_name($name); $desc = balanceTags(wppa_get_post('user-desc'), true); $linktarget = '_self'; $status = wppa_switch('upload_moderate') && !current_user_can('wppa_admin') ? 'pending' : 'publish'; $filename = wppa_sanitize_file_name($file['name']); $id = wppa_create_photo_entry(array('album' => $alb, 'ext' => $ext, 'name' => $name, 'description' => $desc, 'status' => $status, 'filename' => $filename)); if (!$id) { wppa_alert(__('Could not insert photo into db.', 'wp-photo-album-plus')); return false; } else { wppa_save_source($file['tmp_name'], $filename, $alb); wppa_update_album(array('id' => $alb, 'modified' => time())); wppa_flush_treecounts($alb); wppa_flush_upldr_cache('photoid', $id); } if (wppa_make_the_photo_files($file['tmp_name'], $id, $ext)) { // Repair photoname if not standard if (!wppa_get_post('user-name')) { wppa_set_default_name($id, $file['name']); } // Custom data if (wppa_switch('fe_custom_fields')) { $custom_data = array('', '', '', '', '', '', '', '', '', ''); for ($i = '0'; $i < '10'; $i++) { if (isset($_POST['wppa-user-custom-' . $i])) { $custom_data[$i] = strip_tags($_POST['wppa-user-custom-' . $i]); } } wppa_update_photo(array('id' => $id, 'custom' => serialize($custom_data))); } // Default tags wppa_set_default_tags($id); // Custom tags $tags = wppa_get_photo_item($id, 'tags'); $oldt = $tags; for ($i = '1'; $i < '4'; $i++) { if (isset($_POST['wppa-user-tags-' . $i])) { // Existing tags $tags .= ',' . implode(',', $_POST['wppa-user-tags-' . $i]); } } if (isset($_POST['wppa-new-tags'])) { // New tags $newt = $_POST['wppa-new-tags']; $tags .= ',' . $newt; } else { $newt = ''; } $tags = wppa_sanitize_tags(str_replace(array('\'', '"'), ',', wppa_filter_iptc(wppa_filter_exif($tags, $id), $id))); if ($tags != $oldt) { // Added tag(s) wppa_update_photo(array('id' => $id, 'tags' => $tags)); } // Index wppa_index_add('photo', $id); // Tags if ($tags) { wppa_clear_taglist(); // Forces recreation } // and add watermark ( optionally ) to fullsize image only wppa_add_watermark($id); // Also to thumbnail? if (wppa_switch('watermark_thumbs')) { wppa_create_thumbnail($id); // create new thumb } // Is it a default coverimage? wppa_check_coverimage($id); // Mail if (wppa_switch('upload_notify')) { $to = get_bloginfo('admin_email'); $subj = sprintf(__('New photo uploaded: %s', 'wp-photo-album-plus'), $name); $cont['0'] = sprintf(__('User %1$s uploaded photo %2$s into album %3$s', 'wp-photo-album-plus'), wppa_get_user(), $id, wppa_get_album_name($alb)); if (wppa_switch('upload_moderate') && !current_user_can('wppa_admin')) { $cont['1'] = __('This upload requires moderation', 'wp-photo-album-plus'); $cont['2'] = '<a href="' . get_admin_url() . 'admin.php?page=wppa_admin_menu&tab=pmod&photo=' . $id . '" >' . __('Moderate manage photo', 'wp-photo-album-plus') . '</a>'; } else { $cont['1'] = __('Details:', 'wp-photo-album-plus'); $cont['1'] .= ' <a href="' . get_admin_url() . 'admin.php?page=wppa_admin_menu&tab=pmod&photo=' . $id . '" >' . __('Manage photo', 'wp-photo-album-plus') . '</a>'; } wppa_send_mail($to, $subj, $cont, $id); } return true; } else { return false; } }
function wppa_dislike_check($photo) { global $wppa_opt; global $wpdb; $count = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM `" . WPPA_RATING . "` WHERE `photo` = %s AND `value` = -1", $photo)); if ($wppa_opt['wppa_dislike_mail_every'] > '0') { // Feature enabled? if ($count % $wppa_opt['wppa_dislike_mail_every'] == '0') { // Mail the admin $to = get_bloginfo('admin_email'); $subj = __('Notification of inappropriate image', 'wppa'); $cont['0'] = sprintf(__('Photo %s has been marked as inappropriate by %s different visitors.', 'wppa'), $photo, $count); $cont['1'] = '<a href="' . get_admin_url() . 'admin.php?page=wppa_admin_menu&tab=pmod&photo=' . $photo . '" >' . __('Manage photo', 'wppa') . '</a>'; wppa_send_mail($to, $subj, $cont, $photo); } } if ($wppa_opt['wppa_dislike_set_pending'] > '0') { // Feature enabled? if ($count == $wppa_opt['wppa_dislike_set_pending']) { $wpdb->query($wpdb->prepare("UPDATE `" . WPPA_PHOTOS . "` SET `status` = 'pending' WHERE `id` = %s", $photo)); $to = get_bloginfo('admin_email'); $subj = __('Notification of inappropriate image', 'wppa'); $cont['0'] = sprintf(__('Photo %s has been marked as inappropriate by %s different visitors.', 'wppa'), $photo, $count); $cont['0'] .= "\n" . __('The status has been changed to \'pending\'.', 'wppa'); $cont['1'] = '<a href="' . get_admin_url() . 'admin.php?page=wppa_admin_menu&tab=pmod&photo=' . $photo . '" >' . __('Manage photo', 'wppa') . '</a>'; wppa_send_mail($to, $subj, $cont, $photo); } } if ($wppa_opt['wppa_dislike_delete'] > '0') { // Feature enabled? if ($count == $wppa_opt['wppa_dislike_delete']) { $to = get_bloginfo('admin_email'); $subj = __('Notification of inappropriate image', 'wppa'); $cont['0'] = sprintf(__('Photo %s has been marked as inappropriate by %s different visitors.', 'wppa'), $photo, $count); $cont['0'] .= "\n" . __('It has been deleted.', 'wppa'); $cont['1'] = ''; //<a href="'.get_admin_url().'admin.php?page=wppa_admin_menu&tab=pmod&photo='.$photo.'" >'.__('Manage photo', 'wppa').'</a>'; wppa_send_mail($to, $subj, $cont, $photo); wppa_delete_photo($photo); } } }