function wppa_restore_settings($fname, $type = '') { global $wppa; if ($wppa['debug']) { wppa_dbg_msg('Restoring from: ' . $fname); } if ($type == 'skin') { $void_these = array('wppa_revision', 'wppa_resize_on_upload', 'wppa_allow_debug', 'wppa_thumb_linkpage', 'wppa_mphoto_linkpage', 'wppa_widget_linkpage', 'wppa_slideonly_widget_linkpage', 'wppa_topten_widget_linkpage', 'wppa_coverimg_linkpage', 'wppa_search_linkpage', 'permalink_structure', 'wppa_rating_max', 'wppa_file_system'); } else { $void_these = array('wppa_revision', 'wppa_rating_max', 'wppa_file_system'); } // Open file $file = fopen($fname, 'r'); // Restore if ($file) { $buffer = fgets($file, 4096); while (!feof($file)) { $buflen = strlen($buffer); if ($buflen > '0' && substr($buffer, 0, 1) != '/') { // lines that start with '/' are comment $cpos = strpos($buffer, ':'); $delta_l = $buflen - $cpos - 2; if ($cpos && $delta_l >= 0) { $slug = substr($buffer, 0, $cpos); $value = substr($buffer, $cpos + 1, $delta_l); $value = str_replace('\\n', "\n", $value); // Replace substr '\n' by nl char value $value = stripslashes($value); //wppa_dbg_msg( 'Doing|'.$slug.'|'.$value ); if (!in_array($slug, $void_these)) { wppa_update_option($slug, $value); } else { wppa_dbg_msg($slug . ' skipped'); } } } $buffer = fgets($file, 4096); } fclose($file); wppa_initialize_runtime(true); return true; } else { wppa_error_message(__('Settings file not found', 'wppa')); return false; } }
function wppa_import_photos($delp = false, $dela = false, $delz = false, $delv = false, $delu = false, $delc = false, $delf = false) { global $wpdb; global $warning_given; global $wppa_supported_photo_extensions; global $wppa_supported_video_extensions; global $wppa_supported_audio_extensions; $warning_given = false; // Get this users current source directory setting $user = wppa_get_user(); $source_type = get_option('wppa_import_source_type_' . $user, 'local'); if ($source_type == 'remote') { wppa('is_remote', true); } $source = get_option('wppa_import_source_' . $user, WPPA_DEPOT_PATH); $depot = WPPA_ABSPATH . $source; // Filesystem $depoturl = get_bloginfo('wpurl') . '/' . $source; // url // See what's in there $files = wppa_get_import_files(); // First extract zips if our php version is ok $idx = '0'; $zcount = 0; if (PHP_VERSION_ID >= 50207) { foreach ($files as $zipfile) { if (isset($_POST['file-' . $idx])) { $ext = strtolower(substr(strrchr($zipfile, "."), 1)); if ($ext == 'zip') { $err = wppa_extract($zipfile, $delz); if ($err == '0') { $zcount++; } } // if ext = zip } // if isset $idx++; } // foreach } // Now see if albums must be created $idx = '0'; $acount = 0; foreach ($files as $album) { if (isset($_POST['file-' . $idx])) { $ext = strtolower(substr(strrchr($album, "."), 1)); if ($ext == 'amf') { $name = ''; $desc = ''; $aord = '0'; $parent = '0'; $porder = '0'; $owner = ''; $handle = fopen($album, "r"); if ($handle) { $buffer = fgets($handle, 4096); while (!feof($handle)) { $tag = substr($buffer, 0, 5); $len = strlen($buffer) - 6; // substract 5 for label and one for eol $data = substr($buffer, 5, $len); switch ($tag) { case 'name=': $name = $data; break; case 'desc=': $desc = wppa_txt_to_nl($data); break; case 'aord=': if (is_numeric($data)) { $aord = $data; } break; case 'prnt=': if ($data == __('--- none ---', 'wp-photo-album-plus')) { $parent = '0'; } elseif ($data == __('--- separate ---', 'wp-photo-album-plus')) { $parent = '-1'; } else { $prnt = wppa_get_album_id($data); if ($prnt != '') { $parent = $prnt; } else { $parent = '0'; wppa_warning_message(__('Unknown parent album:', 'wp-photo-album-plus') . ' ' . $data . ' ' . __('--- none --- used.', 'wp-photo-album-plus')); } } break; case 'pord=': if (is_numeric($data)) { $porder = $data; } break; case 'ownr=': $owner = $data; break; } $buffer = fgets($handle, 4096); } // while !foef fclose($handle); if (wppa_get_album_id($name) != '') { wppa_warning_message('Album already exists ' . stripslashes($name)); if ($dela) { unlink($album); } } else { $id = basename($album); $id = substr($id, 0, strpos($id, '.')); $id = wppa_create_album_entry(array('id' => $id, 'name' => stripslashes($name), 'description' => stripslashes($desc), 'a_order' => $aord, 'a_parent' => $parent, 'p_order_by' => $porder, 'owner' => $owner)); if ($id === false) { wppa_error_message(__('Could not create album.', 'wp-photo-album-plus')); } else { //$id = wppa_get_album_id( $name ); wppa_set_last_album($id); wppa_index_add('album', $id); wppa_ok_message(__('Album #', 'wp-photo-album-plus') . ' ' . $id . ': ' . stripslashes($name) . ' ' . __('Added.', 'wp-photo-album-plus')); if ($dela) { unlink($album); } $acount++; wppa_clear_cache(); wppa_flush_treecounts($id); } // album added } // album did not exist } // if handle ( file open ) } // if its an album } // if isset $idx++; } // foreach file // Now the photos $idx = '0'; $pcount = '0'; $totpcount = '0'; // find album id if (isset($_POST['cre-album'])) { // use album ngg gallery name for ngg conversion $album = wppa_get_album_id(strip_tags($_POST['cre-album'])); if (!$album) { // the album does not exist yet, create it $name = strip_tags($_POST['cre-album']); $desc = sprintf(__('This album has been converted from ngg gallery %s', 'wp-photo-album-plus'), $name); $uplim = '0/0'; // Unlimited not to destroy the conversion process!! $album = wppa_create_album_entry(array('name' => $name, 'description' => $desc, 'upload_limit' => $uplim)); if ($album === false) { wppa_error_message(__('Could not create album.', 'wp-photo-album-plus') . '<br/>Query = ' . $query); wp_die('Sorry, cannot continue'); } } } elseif (isset($_POST['wppa-photo-album'])) { $album = $_POST['wppa-photo-album']; } else { $album = '0'; } // Report starting process wppa_ok_message(__('Processing files, please wait...', 'wp-photo-album-plus') . ' ' . __('If the line of dots stops growing or your browser reports Ready, your server has given up. In that case: try again', 'wp-photo-album-plus') . ' <a href="' . wppa_dbg_url(get_admin_url() . 'admin.php?page=wppa_import_photos') . '">' . __('here.', 'wp-photo-album-plus') . '</a>'); // Do them all foreach (array_keys($files) as $file_idx) { $unsanitized_path_name = $files[$file_idx]; $file = $files[$file_idx]; wppa_is_wppa_tree($file); // Sets wppa( 'is_wppa_tree' ) if (isset($_POST['use-backup']) && is_file($file . '_backup')) { $file = $file . '_backup'; } $file = wppa_sanitize_file_name($file); if (isset($_POST['file-' . $idx]) || wppa('ajax')) { if (wppa('is_wppa_tree')) { if (wppa('ajax')) { wppa('ajax_import_files', basename(wppa_compress_tree_path($file))); } } else { if (wppa('ajax')) { wppa('ajax_import_files', basename($file)); } } $ext = strtolower(substr(strrchr($file, "."), 1)); $ext = str_replace('_backup', '', $ext); if (in_array($ext, $wppa_supported_photo_extensions)) { // See if a metafile exists //$meta = substr( $file, 0, strlen( $file ) - 3 ).'pmf'; $meta = wppa_strip_ext($unsanitized_path_name) . '.PMF'; if (!is_file($meta)) { $meta = wppa_strip_ext($unsanitized_path_name) . '.pmf'; } // find all data: name, desc, porder form metafile if (is_file($meta)) { $alb = wppa_get_album_id(wppa_get_meta_album($meta)); $name = wppa_get_meta_name($meta); $desc = wppa_txt_to_nl(wppa_get_meta_desc($meta)); $porder = wppa_get_meta_porder($meta); $linkurl = wppa_get_meta_linkurl($meta); $linktitle = wppa_get_meta_linktitle($meta); } else { $alb = $album; // default album $name = ''; // default name $desc = ''; // default description $porder = '0'; // default p_order $linkurl = ''; $linktitle = ''; } // If there is a video or audio with the same name, this is the poster. $is_poster = wppa_file_is_in_album(wppa_strip_ext(basename($file)) . '.xxx', $alb); if ($is_poster) { // Delete possible poster sourcefile wppa_delete_source(basename($file), $alb); // Remove possible existing posters, the file-extension may be different as before $old_photo = wppa_strip_ext(wppa_get_photo_path($is_poster)); $old_thumb = wppa_strip_ext(wppa_get_thumb_path($is_poster)); foreach ($wppa_supported_photo_extensions as $pext) { if (is_file($old_photo . '.' . $pext)) { unlink($old_photo . '.' . $pext); } if (is_file($old_thumb . '.' . $pext)) { unlink($old_thumb . '.' . $pext); } } // Clear sizes on db wppa_update_photo(array('thumbx' => '0', 'thumby' => '0', 'photox' => '0', 'photoy' => '0')); // Make new files $bret = wppa_make_the_photo_files($file, $is_poster, strtolower(wppa_get_ext(basename($file)))); if ($bret) { // Success if (wppa('ajax')) { wppa('ajax_import_files_done', true); } wppa_save_source($file, basename($file), $alb); wppa_make_o1_source($is_poster); $pcount++; $totpcount += $bret; if ($delp) { unlink($file); } } else { // Failed if (!wppa('ajax')) { wppa_error_message('Failed to add poster for item ' . $is_poster); } if ($delf) { unlink($file); } } } elseif (isset($_POST['wppa-update'])) { if (wppa('is_wppa_tree')) { $tmp = explode('/wppa/', $file); $name = str_replace('/', '', $tmp[1]); } $iret = wppa_update_photo_files($unsanitized_path_name, $name); if ($iret) { if (wppa('ajax')) { wppa('ajax_import_files_done', true); } $pcount++; $totpcount += $iret; if ($delp) { unlink($unsanitized_path_name); } } else { if ($delf) { unlink($unsanitized_path_name); } } } else { if (is_numeric($alb) && $alb != '0') { if (wppa('is_wppa_tree')) { $tmp = explode('/wppa/', $file); $id = str_replace('/', '', $tmp[1]); $name = $id; } else { $id = basename($file); } if (wppa_switch('void_dups') && wppa_file_is_in_album($id, $alb)) { wppa_warning_message(sprintf(__('Photo %s already exists in album %s. (1)', 'wp-photo-album-plus'), $id, $alb)); wppa('ajax_import_files_error', __('Duplicate', 'wp-photo-album-plus')); if ($delf) { unlink($file); } } else { $id = substr($id, 0, strpos($id, '.')); if (!is_numeric($id) || !wppa_is_id_free('photo', $id)) { $id = 0; } if (wppa_insert_photo($unsanitized_path_name, $alb, stripslashes($name), stripslashes($desc), $porder, $id, stripslashes($linkurl), stripslashes($linktitle))) { if (wppa('ajax')) { wppa('ajax_import_files_done', true); } $pcount++; if ($delp) { unlink($unsanitized_path_name); if (is_file($meta)) { unlink($meta); } } } else { wppa_error_message(__('Error inserting photo', 'wp-photo-album-plus') . ' ' . basename($file) . '.'); if ($delf) { unlink($unsanitized_path_name); } } } } else { wppa_error_message(sprintf(__('Error inserting photo %s, unknown or non existent album.', 'wp-photo-album-plus'), basename($file))); } } // Insert } } $idx++; if ($source_type == 'remote') { unset($files[$file_idx]); } if (wppa_is_time_up()) { wppa_warning_message(sprintf(__('Time out. %s photos imported. Please restart this operation.', 'wp-photo-album-plus'), $pcount)); wppa_set_last_album($album); if ($source_type == 'remote') { update_option('wppa_import_source_url_found_' . $user, $files); } return; } } // foreach $files if ($source_type == 'remote') { update_option('wppa_import_source_url_found_' . $user, $files); } // Now the dirs to album imports $idx = '0'; $dircount = '0'; global $photocount; $photocount = '0'; $iret = true; foreach ($files as $file) { if (basename($file) != '.' && basename($file) != '..' && (isset($_POST['file-' . $idx]) || isset($_GET['continue']))) { if (is_dir($file)) { $iret = wppa_import_dir_to_album($file, '0'); if (wppa_is_time_up() && wppa_switch('auto_continue')) { wppa('continue', 'continue'); } $dircount++; } } $idx++; if ($iret == false) { break; } // Time out } // Now the video files $videocount = '0'; $alb = isset($_POST['wppa-video-album']) ? $_POST['wppa-video-album'] : '0'; if (wppa('ajax') && !$alb) { wppa('ajax_import_files_error', __('Unknown album', 'wp-photo-album-plus')); } else { foreach (array_keys($files) as $idx) { $file = $files[$idx]; if (isset($_POST['file-' . $idx]) || wppa('ajax')) { if (wppa('ajax')) { wppa('ajax_import_files', wppa_sanitize_file_name(basename($file))); } /* */ $ext = strtolower(substr(strrchr($file, "."), 1)); if (in_array($ext, $wppa_supported_video_extensions)) { if (is_numeric($alb) && $alb != '0') { // Do we have this filename with ext xxx in this album? $filename = wppa_strip_ext(basename($file)) . '.xxx'; $id = wppa_file_is_in_album($filename, $alb); // Or maybe the poster is already there foreach ($wppa_supported_photo_extensions as $pext) { if (!$id) { $id = wppa_file_is_in_album(str_replace('xxx', $pext, $filename), $alb); } } // This filename already exists: is the poster. Fix the filename in the photo info if ($id) { $fname = wppa_get_photo_item($id, 'filename'); $fname = wppa_strip_ext($fname) . '.xxx'; // Fix filename and ext in photo info wppa_update_photo(array('id' => $id, 'filename' => $fname, 'ext' => 'xxx')); } // Add new entry if (!$id) { $id = wppa_create_photo_entry(array('album' => $alb, 'filename' => $filename, 'ext' => 'xxx', 'name' => wppa_strip_ext($filename))); wppa_flush_treecounts($alb); } // Add video filetype $newpath = wppa_strip_ext(wppa_get_photo_path($id)) . '.' . $ext; $fs = filesize($file); if ($fs > 1024 * 1024 * 64 || $delv) { // copy fails for files > 64 Mb // Remove old version if already exists if (is_file($newpath)) { unlink($newpath); } rename($file, $newpath); } else { copy($file, $newpath); } if (wppa('ajax')) { wppa('ajax_import_files_done', true); } // Make sure ext is set to xxx after adding video to an existing poster wppa_update_photo(array('id' => $id, 'ext' => 'xxx')); // Book keeping $videocount++; } else { wppa_error_message(sprintf(__('Error inserting video %s, unknown or non existent album.', 'wp-photo-album-plus'), basename($file))); } } } } } // Now the audio files $audiocount = '0'; $alb = isset($_POST['wppa-audio-album']) ? $_POST['wppa-audio-album'] : '0'; if (wppa('ajax') && !$alb) { wppa('ajax_import_files_error', __('Unknown album', 'wp-photo-album-plus')); } else { foreach (array_keys($files) as $idx) { $file = $files[$idx]; if (isset($_POST['file-' . $idx]) || wppa('ajax')) { if (wppa('ajax')) { wppa('ajax_import_files', wppa_sanitize_file_name(basename($file))); } $ext = strtolower(substr(strrchr($file, "."), 1)); if (in_array($ext, $wppa_supported_audio_extensions)) { if (is_numeric($alb) && $alb != '0') { // Do we have this filename with ext xxx in this album? $filename = wppa_strip_ext(basename($file)) . '.xxx'; $id = wppa_file_is_in_album($filename, $alb); // Or maybe the poster is already there foreach ($wppa_supported_photo_extensions as $pext) { if (!$id) { $id = wppa_file_is_in_album(str_replace('xxx', $pext, $filename), $alb); } } // This filename already exists: is the poster. Fix the filename in the photo info if ($id) { $fname = wppa_get_photo_item($id, 'filename'); $fname = wppa_strip_ext($fname) . '.xxx'; // Fix filename and ext in photo info wppa_update_photo(array('id' => $id, 'filename' => $fname, 'ext' => 'xxx')); } // Add new entry if (!$id) { $id = wppa_create_photo_entry(array('album' => $alb, 'filename' => $filename, 'ext' => 'xxx', 'name' => wppa_strip_ext($filename))); wppa_flush_treecounts($alb); } // Add audio filetype $newpath = wppa_strip_ext(wppa_get_photo_path($id)) . '.' . $ext; copy($file, $newpath); if ($delu) { unlink($file); } if (wppa('ajax')) { wppa('ajax_import_files_done', true); } // Make sure ext is set to xxx after adding audio to an existing poster wppa_update_photo(array('id' => $id, 'ext' => 'xxx')); // Book keeping $audiocount++; } else { wppa_error_message(sprintf(__('Error inserting audio %s, unknown or non existent album.', 'wp-photo-album-plus'), basename($file))); } } } } } // The csv files. NOT with ajax $csvcount = wppa_get_csvcount($files); if ($csvcount) { $csvcount = '0'; if (!wppa('ajax')) { if (is_array($files)) { // Make sure the feature is on if (!wppa_switch('custom_fields')) { wppa_update_option('wppa_custom_fields', 'yes'); echo '<b>' . __('Custom datafields enabled', 'wp-photo-album-plus') . '</b><br />'; } // Get the captions we already have $cust_labels = array(); for ($i = '0'; $i < '10'; $i++) { $cust_labels[$i] = wppa_opt('custom_caption_' . $i); } // Process the files $photos_processed_csv = '0'; $photos_skipped_csv = '0'; $is_db_table = false; $tables = array(WPPA_ALBUMS, WPPA_PHOTOS, WPPA_RATING, WPPA_COMMENTS, WPPA_IPTC, WPPA_EXIF, WPPA_INDEX, WPPA_SESSION); foreach (array_keys($files) as $idx) { $this_skipped = '0'; $file = $files[$idx]; if (isset($_POST['file-' . $idx]) || isset($_GET['continue'])) { $ext = strtolower(wppa_get_ext($file)); if ($ext == 'csv') { // See if it is a db table foreach (array_keys($tables) as $idx) { $table_name = str_replace($wpdb->prefix, '', $tables[$idx]); if (strpos($file, $table_name . '.csv') !== false) { $is_db_table = $tables[$idx]; // Only administrators may do this if (!current_user_can('administrator')) { wppa_error_messgae(__('Only administrators are allowed to import db table data.', 'wp-photo-album-plus')); return; } } } if ($is_db_table) { echo '<b>' . __('Processing db table', 'wp-photo-album-plus') . ' ' . $is_db_table . '</b><br />'; wppa_log('dbg', __('Processing db table', 'wp-photo-album-plus') . ' ' . $is_db_table); } else { echo '<b>' . __('Processing', 'wp-photo-album-plus') . ' ' . basename($file) . '</b><br />'; wppa_log('dbg', __('Processing', 'wp-photo-album-plus') . ' ' . basename($file)); } // Copy the file to a temp file $tempfile = dirname($file) . '/temp.csv'; copy($file, $tempfile); // Open file $handle = fopen($tempfile, "rt"); if (!$handle) { wppa_error_message(__('Can not open file. Can not continue. (1)', 'wp-photo-album-plus')); return; } $write_handle = fopen($file, "wt"); if (!$write_handle) { wppa_error_message(__('Can not open file. Can not continue. (2)', 'wp-photo-album-plus')); return; } // Read header $header = fgets($handle, 4096); if (!$header) { wppa_error_message(__('Can not read header. Can not continue.', 'wp-photo-album-plus')); fclose($handle); return; } fputs($write_handle, $header); echo __('Read header:', 'wp-photo-album-plus') . ' ' . $header . '<br />'; // Is it a db table? if ($is_db_table) { // Functions for inserting db table data $entry_functions = array(WPPA_ALBUMS => 'wppa_create_album_entry', WPPA_PHOTOS => 'wppa_create_photo_entry', WPPA_RATING => 'wppa_create_rating_entry', WPPA_COMMENTS => 'wppa_create_comments_entry', WPPA_IPTC => 'wppa_create_iptc_entry', WPPA_EXIF => 'wppa_create_exif_entry', WPPA_INDEX => 'wppa_create_index_entry'); // Interprete and verify header. All fields from .csv MUST be in table fields, else fail $csv_fields = str_getcsv($header); $db_fields = $wpdb->get_results("DESCRIBE `" . $is_db_table . "`", ARRAY_A); foreach ($csv_fields as $csv_field) { $ok = false; foreach ($db_fields as $db_field) { if ($db_field['Field'] === $csv_field) { $ok = true; } } if (!$ok) { wppa_error_message('Field ' . $csv_field . ' not found in db table ' . $is_db_table . ' description'); wppa_error_message(__('Invalid header. Can not continue.', 'wp-photo-album-plus')); fclose($handle); return; } } // Now process the lines while (!feof($handle)) { $dataline = fgets($handle, 16 * 4096); if ($dataline) { $data_arr = str_getcsv($dataline); // Embedded newlines? while (count($csv_fields) > count($data_arr) && !feof($handle)) { // Assume continue after embedded linebreak $dataline .= "\n" . fgets($handle, 16 * 4096); $data_arr = str_getcsv($dataline); } reset($data_arr); $id = trim(current($data_arr)); if (wppa_is_int($id) && $id > '0') { wppa_dbg_msg('Processing id ' . $id); $existing_data = $wpdb->get_row("SELECT * FROM `" . $is_db_table . "` WHERE `id` = {$id}", ARRAY_A); // If entry exists: // 1. save existing data, // 2. remove entry, if ($existing_data) { $data = $existing_data; $wpdb->query("DELETE FROM `" . $is_db_table . "` WHERE `id` = {$id}"); } // Entry does not / no longer exist, add csv data to data array foreach (array_keys($csv_fields) as $key) { if (isset($data_arr[$key])) { $data[$csv_fields[$key]] = $data_arr[$key]; } } // Insert 'new' entry if (isset($entry_functions[$is_db_table])) { $iret = call_user_func_array($entry_functions[$is_db_table], array($data)); if ($iret) { $photos_processed_csv++; } else { // Write back to original file fputs($write_handle, $dataline); $photos_skipped_csv++; $this_skipped++; } } else { wppa_error_message('Table ' . $is_db_table . 'not supported'); return; } } else { wppa_error_message('Id field not positive numeric: ' . $id); // Write back to original file fputs($write_handle, $dataline); $photos_skipped_csv++; $this_skipped++; } } // Time up? if (wppa_is_time_up() && wppa_switch('auto_continue')) { wppa('continue', 'continue'); // Copy rest of file back to original while (!feof($handle)) { $temp = fgets($handle, 16 * 4096); fputs($write_handle, $temp); } } } } else { // Interprete header $captions = str_getcsv($header); if (!is_array($captions) || count($captions) < '2') { wppa_error_message(__('Invalid header. Can not continue.', 'wp-photo-album-plus')); fclose($handle); return; } foreach (array_keys($captions) as $key) { if ($key == '0') { if (!in_array(strtolower(trim($captions['0'])), array('name', 'photoname', 'filename'))) { wppa_error_message(__('Invalid header. First item must be \'name\', \'photoname\' or \'filename\'', 'wp-photo-album-plus')); fclose($handle); return; } } elseif (!in_array($captions[$key], $cust_labels)) { if (!in_array('', $cust_labels)) { wppa_error_message(__('All available custom data fields are in use. There is no space for', 'wp-photo-album-plus') . ' ' . $captions[$key]); fclose($handle); return; } // Add a new caption $i = '0'; while ($cust_labels[$i]) { $i++; } $cust_labels[$i] = $captions[$key]; wppa_update_option('wppa_custom_caption_' . $i, $cust_labels[$i]); wppa_update_option('wppa_custom_visible_' . $i, 'yes'); wppa_log('dbg', sprintf(__('New caption %s added.', 'wp-photo-album-plus'), $cust_labels[$i])); } } // Find the correlation between caption index and custom data index. $pointers = array(); for ($i = '1'; $i < count($captions); $i++) { for ($j = '0'; $j < '10'; $j++) { if ($captions[$i] == $cust_labels[$j]) { $pointers[$j] = $i; } } } // Now process the lines while (!feof($handle)) { $dataline = fgets($handle, 4096); if ($dataline) { wppa_log('dbg', __('Read data:', 'wp-photo-album-plus') . ' ' . trim($dataline)); $data_arr = str_getcsv($dataline); foreach (array_keys($data_arr) as $i) { if (!seems_utf8($data_arr[$i])) { $data_arr[$i] = utf8_encode($data_arr[$i]); } } $search = $data_arr[0]; switch (strtolower($captions[0])) { case 'photoname': $photos = $wpdb->get_results($wpdb->prepare("SELECT * FROM `" . WPPA_PHOTOS . "` WHERE `name` = %s", $data_arr[0]), ARRAY_A); break; case 'filename': $photos = $wpdb->get_results($wpdb->prepare("SELECT * FROM `" . WPPA_PHOTOS . "` WHERE `filename` = %s", $data_arr[0]), ARRAY_A); break; case 'name': $photos = $wpdb->get_results($wpdb->prepare("SELECT * FROM `" . WPPA_PHOTOS . "` WHERE `name` = %s OR `filename` = %s", $data_arr[0], $data_arr[0]), ARRAY_A); break; } if ($photos) { foreach ($photos as $photo) { $cust_data = $photo['custom'] ? unserialize($photo['custom']) : array('', '', '', '', '', '', '', '', '', ''); foreach (array_keys($pointers) as $p) { $cust_data[$p] = wppa_sanitize_custom_field($data_arr[$pointers[$p]]); } wppa_update_photo(array('id' => $photo['id'], 'custom' => serialize($cust_data))); $photos_processed_csv++; } wppa_log('dbg', 'Processed: ' . $data_arr[0]); } else { wppa_log('dbg', 'Could not find: ' . $data_arr[0]); // Write back to original file fputs($write_handle, $dataline); $photos_skipped_csv++; $this_skipped++; } echo '.'; } // Time up? if (wppa_is_time_up() && wppa_switch('auto_continue')) { wppa('continue', 'continue'); // Copy rest of file back to original while (!feof($handle)) { $temp = fgets($handle, 4096); fputs($write_handle, $temp); } } } } fclose($handle); fclose($write_handle); $csvcount++; // Remove tempfile unlink($tempfile); // Remove orig file if (!$this_skipped && !wppa_is_time_up()) { unlink($file); } } } } } } } wppa_ok_message(__('Done processing files.', 'wp-photo-album-plus')); if ($pcount == '0' && $acount == '0' && $zcount == '0' && $dircount == '0' && $photocount == '0' && $videocount == '0' && $audiocount == '0' && $csvcount == '0') { wppa_warning_message(__('No files to import.', 'wp-photo-album-plus')); } else { $msg = ''; if ($zcount) { $msg .= $zcount . ' ' . __('Zipfiles extracted.', 'wp-photo-album-plus') . ' '; } if ($acount) { $msg .= $acount . ' ' . __('Albums created.', 'wp-photo-album-plus') . ' '; } if ($dircount) { $msg .= $dircount . ' ' . __('Directory to album imports.', 'wp-photo-album-plus') . ' '; } if ($photocount) { $msg .= ' ' . sprintf(__('With total %s photos.', 'wppa', 'wp-photo-album-plus'), $photocount) . ' '; } if ($pcount) { if (isset($_POST['wppa-update'])) { $msg .= $pcount . ' ' . __('Photos updated', 'wp-photo-album-plus'); if ($totpcount != $pcount) { $msg .= ' ' . sprintf(__('to %s locations', 'wp-photo-album-plus'), $totpcount); } $msg .= '.'; } else { $msg .= $pcount . ' ' . __('single photos imported.', 'wp-photo-album-plus') . ' '; } } if ($videocount) { $msg .= $videocount . ' ' . __('Videos imported.', 'wp-photo-album-plus'); } if ($audiocount) { $msg .= $audiocount . ' ' . __('Audios imported.', 'wp-photo-album-plus'); } if ($csvcount) { $msg .= $csvcount . ' ' . __('CSVs imported,', 'wp-photo-album-plus') . ' ' . $photos_processed_csv . ' ' . __('items processed.', 'wp-photo-album-plus') . ' ' . $photos_skipped_csv . ' ' . __('items skipped.', 'wp-photo-album-plus'); } wppa_ok_message($msg); wppa_set_last_album($album); } }
function wppa_fix_source_path() { global $wppa_opt; if (strpos($wppa_opt['wppa_source_dir'], ABSPATH) === 0) { return; } // Nothing to do here $wp_content = trim(str_replace(home_url(), '', content_url()), '/'); // The source path should be: ( default ) WPPA_ABSPATH.WPPA_UPLOAD.'/wppa-source', // Or at least below WPPA_ABSPATH if (strpos($wppa_opt['wppa_source_dir'], WPPA_ABSPATH) === false) { if (strpos($wppa_opt['wppa_source_dir'], $wp_content) !== false) { // Its below wp-content $temp = explode($wp_content, $wppa_opt['wppa_source_dir']); $temp['0'] = WPPA_ABSPATH; $wppa_opt['wppa_source_dir'] = implode($wp_content, $temp); wppa_update_option('wppa_source_dir', $wppa_opt['wppa_source_dir']); wppa_update_message('Sourcepath set to ' . $wppa_opt['wppa_source_dir']); } else { // Give up, set to default $wppa_opt['wppa_source_dir'] = WPPA_ABSPATH . WPPA_UPLOAD . '/wppa-source'; wppa_update_option('wppa_source_dir', $wppa_opt['wppa_source_dir']); wppa_update_message('Sourcepath set to default.'); } } }
function _wppa_sidebar_page_options() { global $wpdb; $options_error = false; if (isset($_GET['walbum'])) { $walbum = wppa_walbum_sanitize($_GET['walbum']); wppa_update_option('wppa_widget_album', $walbum); } if (isset($_REQUEST['wppa-set-submit'])) { if (!wp_verify_nonce($_REQUEST['wppa-update-check'], 'wppa-update-check')) { echo 'Trying:' . $_REQUEST['wppa-update-check']; } if (isset($_POST['wppa-widgettitle'])) { wppa_update_option('wppa_widgettitle', $_POST['wppa-widgettitle']); } if (isset($_POST['wppa-potd-align'])) { wppa_update_option('wppa_potd_align', $_POST['wppa-potd-align']); } if (isset($_POST['wppa-widget-albums'])) { wppa_update_option('wppa_widget_album', wppa_walbum_sanitize($_POST['wppa-widget-albums'])); } if (isset($_POST['wppa-widget-photo'])) { wppa_update_option('wppa_widget_photo', $_POST['wppa-widget-photo']); } if (isset($_POST['wppa-widget-method'])) { wppa_update_option('wppa_widget_method', $_POST['wppa-widget-method']); } if (isset($_REQUEST['wppa-widget-period'])) { wppa_update_option('wppa_widget_period', $_REQUEST['wppa-widget-period']); } if (isset($_POST['wppa-widget-subtitle'])) { wppa_update_option('wppa_widget_subtitle', $_POST['wppa-widget-subtitle']); } if (isset($_POST['wppa-widget-linkpage'])) { wppa_update_option('wppa_widget_linkpage', $_POST['wppa-widget-linkpage']); } if (isset($_POST['wppa-widget-linkurl'])) { wppa_update_option('wppa_widget_linkurl', $_POST['wppa-widget-linkurl']); } if (isset($_POST['wppa-widget-linktitle'])) { wppa_update_option('wppa_widget_linktitle', $_POST['wppa-widget-linktitle']); } if (isset($_POST['wppa-widget-linktype'])) { wppa_update_option('wppa_widget_linktype', $_POST['wppa-widget-linktype']); } if (isset($_POST['wppa-widget-status-filter'])) { wppa_update_option('wppa_widget_status_filter', $_POST['wppa-widget-status-filter']); } if (isset($_POST['wppa-potd-offset'])) { wppa_update_option('wppa_potd_offset', $_POST['wppa-potd-offset']); } if (isset($_POST['wppa-potd-widget-width'])) { if (wppa_check_numeric($_POST['wppa-potd-widget-width'], '100', __('Widget Photo Width.', 'wp-photo-album-plus'))) { wppa_update_option('wppa_potd_widget_width', $_POST['wppa-potd-widget-width']); } else { $options_error = true; } } if (!$options_error && isset($_POST['wppa-set-submit'])) { wppa_update_message(__('Changes Saved. Don\'t forget to activate the widget!', 'wp-photo-album-plus')); } } wppa_initialize_runtime('force'); ?> <div class="wrap"> <?php $iconurl = WPPA_URL . '/images/settings32.png'; ?> <div id="icon-album" class="icon32" style="background: transparent url(<?php echo $iconurl; ?> ) no-repeat"> <br /> </div> <h2><?php _e('Photo of the Day Widget Settings', 'wp-photo-album-plus'); ?> </h2> <?php $action_url = wppa_dbg_url(get_admin_url() . 'admin.php?page=wppa_photo_of_the_day'); ?> <form action="<?php echo $action_url; ?> " method="post"> <?php echo wp_nonce_field('wppa-update-check', 'wppa-update-check'); ?> <table class="form-table wppa-table wppa-photo-table"> <tbody> <tr valign="top"> <th scope="row"> <label ><?php _e('Widget Title:', 'wp-photo-album-plus'); ?> </label> </th> <td> <input type="text" name="wppa-widgettitle" id="wppa-widgettitle" value="<?php echo wppa_opt('widgettitle'); ?> " /> <span class="description"><br/><?php _e('Enter/modify the title for the widget. This is a default and can be overriden at widget activation.', 'wp-photo-album-plus'); ?> </span> </td> </tr> <tr valign="top"> <th scope="row"> <label ><?php _e('Widget Photo Width:', 'wp-photo-album-plus'); ?> </label> </th> <td> <input type="text" name="wppa-potd-widget-width" id="wppa-potd-widget-width" value="<?php echo wppa_opt('potd_widget_width'); ?> " style="width: 50px;" /> <?php _e('pixels.', 'wp-photo-album-plus'); echo ' '; _e('Horizontal alignment:', 'wp-photo-album-plus'); ?> <select name="wppa-potd-align" id="wppa-potd-align"> <?php $ali = wppa_opt('potd_align'); ?> <?php $sel = 'selected="selected"'; ?> <option value="none" <?php if ($ali == 'none') { echo $sel; } ?> ><?php _e('--- none ---', 'wp-photo-album-plus'); ?> </option> <option value="left" <?php if ($ali == 'left') { echo $sel; } ?> ><?php _e('left', 'wp-photo-album-plus'); ?> </option> <option value="center" <?php if ($ali == 'center') { echo $sel; } ?> ><?php _e('center', 'wp-photo-album-plus'); ?> </option> <option value="right" <?php if ($ali == 'right') { echo $sel; } ?> ><?php _e('right', 'wp-photo-album-plus'); ?> </option> </select> <span class="description"><br/><?php _e('Enter the desired display width and alignment of the photo in the sidebar.', 'wp-photo-album-plus'); ?> </span> </td> </tr> <tr valign="top"> <th scope="row"> <label ><?php _e('Use album(s):', 'wp-photo-album-plus'); ?> </label> </th> <td> <script type="text/javascript"> /* <![CDATA[ */ function wppaCheckWa() { document.getElementById('wppa-spin').style.visibility = 'visible'; document.getElementById('wppa-upd').style.visibility = 'hidden'; var album = document.getElementById('wppa-wa').value; if ( album != 'all' && album != 'sep' && album != 'all-sep' && album != 'topten' && album != 'clr' ) album = document.getElementById('wppa-was').value + ',' + album; var url = "<?php echo wppa_dbg_url(get_admin_url() . 'admin.php?page=wppa_photo_of_the_day'); ?> &walbum=" + album; document.location.href = url; } /* ]]> */ </script> <?php _e('Select:', 'wp-photo-album-plus'); ?> <select name="wppa-widget-album" id="wppa-wa" onchange="wppaCheckWa()" ><?php echo wppa_walbum_select(wppa_opt('widget_album')); ?> </select> <img id="wppa-spin" src="<?php echo wppa_get_imgdir(); ?> wpspin.gif" style="visibility:hidden;"/> <?php _e('Or Edit:', 'wp-photo-album-plus'); ?> <input type="text" name="wppa-widget-albums" id="wppa-was" value="<?php echo wppa_opt('widget_album'); ?> " /> <input class="button-primary" name="wppa-upd" id="wppa-upd" value="<?php _e('Update thumbnails', 'wp-photo-album-plus'); ?> " onclick="wppaCheckWa()" /> <span class="description"><br/> <?php _e('Select or edit the album(s) you want to use the photos of for the widget.', 'wp-photo-album-plus'); ?> <br /> <?php _e('If you want a <b>- special -</b> selection or get rid of it, you may need to use <b>- start over -</b> first.', 'wp-photo-album-plus'); ?> </span> </td> </tr> <!-- Status filter --> <tr valign="top" > <th scope="row" > <label ><?php _e('Status filter:', 'wp-photo-album-plus'); ?> </label> </th> <td> <?php $sel = 'selected="selected"'; ?> <?php $filter = wppa_opt('widget_status_filter'); ?> <select name="wppa-widget-status-filter" > <option value="" <?php if ($filter == 'none') { echo $sel; } ?> ><?php _e('- none -', 'wp-photo-album-plus'); ?> </option> <option value="publish" <?php if ($filter == 'publish') { echo $sel; } ?> ><?php _e('Publish', 'wp-photo-album-plus'); ?> </option> <option value="featured" <?php if ($filter == 'featured') { echo $sel; } ?> ><?php _e('Featured', 'wp-photo-album-plus'); ?> </option> <option value="gold" <?php if ($filter == 'gold') { echo $sel; } ?> ><?php _e('Gold', 'wp-photo-album-plus'); ?> </option> <option value="silver" <?php if ($filter == 'silver') { echo $sel; } ?> ><?php _e('Silver', 'wp-photo-album-plus'); ?> </option> <option value="bronze" <?php if ($filter == 'bronze') { echo $sel; } ?> ><?php _e('Bronze', 'wp-photo-album-plus'); ?> </option> <option value="anymedal" <?php if ($filter == 'anymedal') { echo $sel; } ?> ><?php _e('Any medal', 'wp-photo-album-plus'); ?> </option> </select> </td> </tr> <tr valign="top" > <th scope="row"> <label ><?php _e('Display method:', 'wp-photo-album-plus'); ?> </label> </th> <td> <?php $sel = 'selected="selected"'; ?> <?php $method = wppa_opt('widget_method'); ?> <select name="wppa-widget-method" id="wppa-wm" onchange="wppaCheckWidgetMethod()" > <option value="1" <?php if ($method == '1') { echo $sel; } ?> ><?php _e('Fixed photo', 'wp-photo-album-plus'); ?> </option> <option value="2" <?php if ($method == '2') { echo $sel; } ?> ><?php _e('Random', 'wp-photo-album-plus'); ?> </option> <option value="3" <?php if ($method == '3') { echo $sel; } ?> ><?php _e('Last upload', 'wp-photo-album-plus'); ?> </option> <option value="4" <?php if ($method == '4') { echo $sel; } ?> ><?php _e('Change every', 'wp-photo-album-plus'); ?> </option> </select> <?php $period = wppa_opt('widget_period'); $text = esc_attr(__('The page will now be reloaded', 'wp-photo-album-plus')); $onchange = esc_attr('alert(\'' . $text . '\');wppaPotdChangePeriod()'); ?> <script type="text/javascript" > function wppaPotdChangePeriod() { var url = '<?php echo $action_url; ?> '; url += '&wppa-set-submit=1'; url += '&wppa-update-check='+jQuery('#wppa-update-check').val(); url += '&wppa-widget-period='+jQuery('#wppa-wp').val(); document.location.href = url; } </script> <select name="wppa-widget-period" id="wppa-wp" onchange="<?php echo $onchange; ?> " > <option value="0" <?php if ($period == '0') { echo $sel; } ?> ><?php _e('pageview.', 'wp-photo-album-plus'); ?> </option> <option value="1" <?php if ($period == '1') { echo $sel; } ?> ><?php _e('hour.', 'wp-photo-album-plus'); ?> </option> <option value="24" <?php if ($period == '24') { echo $sel; } ?> ><?php _e('day.', 'wp-photo-album-plus'); ?> </option> <option value="168" <?php if ($period == '168') { echo $sel; } ?> ><?php _e('week.', 'wp-photo-album-plus'); ?> </option> <option value="736" <?php if ($period == '736') { echo $sel; } ?> ><?php _e('month.', 'wp-photo-album-plus'); ?> </option> <option value="day-of-week" <?php if ($period == 'day-of-week') { echo $sel; } ?> ><?php _e('day of week is order#', 'wp-photo-album-plus'); ?> </option> <option value="day-of-month" <?php if ($period == 'day-of-month') { echo $sel; } ?> ><?php _e('day of month is order#', 'wp-photo-album-plus'); ?> </option> <option value="day-of-year" <?php if ($period == 'day-of-year') { echo $sel; } ?> ><?php _e('day of year is order#', 'wp-photo-album-plus'); ?> </option> </select> <span class="description"><br/><?php _e('Select how the widget should display.', 'wp-photo-album-plus'); ?> </span> <div class="wppa-order" > <?php if (substr(wppa_opt('widget_period'), 0, 7) == 'day-of-') { switch (substr(wppa_opt('widget_period'), 7)) { case 'week': $n_days = '7'; $date_key = 'w'; break; case 'month': $n_days = '31'; $date_key = 'd'; break; case 'year': $n_days = '366'; $date_key = 'z'; break; } while (get_option('wppa_potd_offset', '0') > $n_days) { update_option('wppa_potd_offset', get_option('wppa_potd_offset') - $n_days); } echo sprintf(__('Current day# = %s, offset =', 'wp-photo-album-plus'), date_i18n($date_key)) . ' '; echo '<select name="wppa-potd-offset" >'; $day = '0'; while ($day < $n_days) { echo '<option value="' . $day . '" ' . (get_option('wppa_potd_offset', '0') == $day ? 'selected="selected"' : '') . ' >' . $day . '</option>'; $day++; } echo '</select>'; $photo_order = date_i18n($date_key) - get_option('wppa_potd_offset', '0'); while ($photo_order < '1') { $photo_order += $n_days; } echo '. ' . sprintf(__('Todays photo order# = %s.', 'wp-photo-album-plus'), $photo_order); $photo = wppa_get_potd(); if ($photo) { echo ' <img src="' . wppa_fix_poster_ext(wppa_get_thumb_url($photo['id']), $photo['id']) . '" style="width:100px;" />'; } else { echo ' ' . __('Not found.', 'wp-photo-album-plus'); } } ?> </div> </td> </tr> <?php $linktype = wppa_opt('widget_linktype'); if ($linktype != 'custom') { ?> <tr> <th scope="row"> <label ><?php _e('Link to:', 'wp-photo-album-plus'); ?> </label> </th> <td> <?php _e('Links are set on the <b>Photo Albums -> Settings</b> screen.', 'wp-photo-album-plus'); ?> </td> </tr> <?php } else { ?> <tr class="wppa-wlu" > <th scope="row"> <label ><?php _e('Link to:', 'wp-photo-album-plus'); ?> </label> </th> <td> <?php _e('Title:', 'wp-photo-album-plus'); ?> <input type="text" name="wppa-widget-linktitle" id="wppa-widget-linktitle" value="<?php echo wppa_opt('widget_linktitle'); ?> "style="width:20%" /> <?php _e('Url:', 'wp-photo-album-plus'); ?> <input type="text" name="wppa-widget-linkurl" id="wppa-widget-linkurl" value="<?php echo wppa_opt('widget_linkurl'); ?> " style="width:50%" /> <span class="description"><br/><?php _e('Enter the title and the url. Do\'nt forget the HTTP://', 'wp-photo-album-plus'); ?> </span> </td> </tr> <?php } ?> <!--<script type="text/javascript">wppaCheckWidgetLink()</script>--> <tr> <th scope="row"> <label ><?php _e('Subtitle:', 'wp-photo-album-plus'); ?> </label> </th> <td> <?php $subtit = wppa_opt('widget_subtitle'); ?> <select name="wppa-widget-subtitle" id="wppa-st" > <option value="none" <?php if ($subtit == 'none') { echo $sel; } ?> ><?php _e('--- none ---', 'wp-photo-album-plus'); ?> </option> <option value="name" <?php if ($subtit == 'name') { echo $sel; } ?> ><?php _e('Photo Name', 'wp-photo-album-plus'); ?> </option> <option value="desc" <?php if ($subtit == 'desc') { echo $sel; } ?> ><?php _e('Description', 'wp-photo-album-plus'); ?> </option> <option value="owner" <?php if ($subtit == 'owner') { echo $sel; } ?> ><?php _e('Owner', 'wp-photo-album-plus'); ?> </option> </select> <span class="description"><br/><?php _e('Select the content of the subtitle.', 'wp-photo-album-plus'); ?> </span> </td> </tr> </tbody> </table> <p> <input type="submit" class="button-primary" name="wppa-set-submit" value="<?php _e('Save Changes', 'wp-photo-album-plus'); ?> " /> </p> <?php $alb = wppa_opt('widget_album'); $opt = wppa_is_int($alb) ? ' ' . wppa_get_photo_order($alb) . ' ' : ''; $photos = wppa_get_widgetphotos($alb, $opt); if (empty($photos)) { echo '<p>' . __('No photos yet in this album.', 'wp-photo-album-plus') . '</p>'; } else { $curid = wppa_opt('widget_photo'); // Process photos foreach ($photos as $photo) { $id = $photo['id']; // Open container div echo '<div' . ' class="photoselect"' . ' style="' . 'width:180px;' . 'height:300px;' . '" >'; // Open image container div echo '<div' . ' style="' . 'width:180px;' . 'height:135px;' . 'overflow:hidden;' . 'text-align:center;' . '" >'; // The image if a video if (wppa_is_video($id)) { echo wppa_get_video_html(array('id' => $id, 'style' => 'width:180px;')); } else { echo '<img' . ' src=" ' . wppa_fix_poster_ext(wppa_get_thumb_url($id), $id) . '"' . ' style="' . 'max-width:180px;' . 'max-height:135px;' . 'margin:auto;' . '"' . ' alt="' . esc_attr(wppa_get_photo_name($photo['id'])) . '" />'; // Audio ? if (wppa_has_audio($id)) { echo wppa_get_audio_html(array('id' => $id, 'style' => 'width:180px;' . 'position:relative;' . 'bottom:' . (wppa_get_audio_control_height() + 4) . 'px;')); } } // Close image container div echo '</div>'; ?> <div style="clear:both;width:100%;margin:3px 0;" > <div style="font-size:9px; line-height:10px;float:left;"><?php echo '(#' . $photo['p_order'] . ')'; ?> </div> <input style="float:right;" type="radio" name="wppa-widget-photo" id="wppa-widget-photo<?php echo $id; ?> " value="<?php echo $id; ?> " <?php if ($id == $curid) { echo 'checked="checked"'; } ?> /> </div> <div style="clear:both;overflow:auto;height:150px" > <div style="font-size:11px; overflow:hidden;"><?php echo wppa_get_photo_name($photo['id']); ?> </div> <div style="font-size:9px; line-height:10px;"><?php echo wppa_get_photo_desc($photo['id']); ?> </div> </div> </div> <?php } echo '<div class="clear"></div>'; } ?> <script type="text/javascript">wppaCheckWidgetMethod();</script> <br /> <p> <input type="submit" class="button-primary" name="wppa-set-submit" value="<?php _e('Save Changes', 'wp-photo-album-plus'); ?> " /> </p> </form> </div> <?php }
function wppa_ajax_callback() { global $wpdb; global $wppa_session; wppa('ajax', true); wppa('error', '0'); wppa('out', ''); $wppa_session['page']--; $wppa_session['ajax']++; wppa_save_session(); // ALTHOUGH IF WE ARE HERE AS FRONT END VISITOR, is_admin() is true. // So, $wppa_opt switches are 'yes' or 'no' and not true or false. // So, always use the function wppa_switch( $slug ) to test on a bool setting // Globally check query args to prevent php injection $wppa_args = array('album', 'photo', 'slide', 'cover', 'occur', 'woccur', 'searchstring', 'topten', 'lasten', 'comten', 'featen', 'single', 'photos-only', 'debug', 'relcount', 'upldr', 'owner', 'rootsearch'); foreach ($_REQUEST as $arg) { if (in_array(str_replace('wppa-', '', $arg), $wppa_args)) { if (strpos($arg, '<?') !== false) { die('Security check failure #91'); } if (strpos($arg, '?>') !== false) { die('Security check failure #92'); } } } wppa_vfy_arg('wppa-action', true); wppa_vfy_arg('photo-id'); wppa_vfy_arg('comment-id'); wppa_vfy_arg('moccur'); wppa_vfy_arg('comemail', true); wppa_vfy_arg('comname', true); wppa_vfy_arg('tag', true); $wppa_action = $_REQUEST['wppa-action']; switch ($wppa_action) { case 'getssiptclist': $tag = str_replace('H', '#', $_REQUEST['tag']); $mocc = $_REQUEST['moccur']; $oldvalue = ''; if (strpos($wppa_session['supersearch'], ',') !== false) { $ss_data = explode(',', $wppa_session['supersearch']); if (count($ss_data) == '4') { if ($ss_data['0'] == 'p') { if ($ss_data['1'] == 'i') { if ($ss_data['2'] == $_REQUEST['tag']) { $oldvalue = $ss_data['3']; } } } } } $iptcdata = $wpdb->get_results($wpdb->prepare("SELECT * FROM `" . WPPA_IPTC . "` WHERE `photo` > '0' AND `tag` = %s ORDER BY `description`", $tag), ARRAY_A); $last = ''; $any = false; if (is_array($iptcdata)) { foreach ($iptcdata as $item) { $desc = sanitize_text_field($item['description']); $desc = str_replace(array(chr(0), chr(1), chr(2), chr(3), chr(4), chr(5), chr(6), chr(7)), '', $desc); if ($desc != $last) { $sel = $oldvalue && $oldvalue == $desc ? 'selected="selected"' : ''; if ($sel) { echo 'selected:' . $oldvalue; } $ddesc = strlen($desc) > '32' ? substr($desc, 0, 30) . '...' : $desc; echo '<option' . ' value="' . esc_attr($desc) . '"' . ' class="wppa-iptclist-' . $mocc . '"' . ' ' . $sel . ' >' . $ddesc . '</option>'; $last = $desc; $any = true; } } } if (!$any) { $query = $wpdb->prepare("DELETE FROM `" . WPPA_IPTC . "` WHERE `photo` = '0' AND `tag` = %s", $tag); $wpdb->query($query); // wppa_log( 'dbg', $query ); } wppa_exit(); break; case 'getssexiflist': $tag = str_replace('H', '#', $_REQUEST['tag']); $mocc = $_REQUEST['moccur']; $oldvalue = ''; if (strpos($wppa_session['supersearch'], ',') !== false) { $ss_data = explode(',', $wppa_session['supersearch']); if (count($ss_data) == '4') { if ($ss_data['0'] == 'p') { if ($ss_data['1'] == 'e') { if ($ss_data['2'] == $_REQUEST['tag']) { $oldvalue = $ss_data['3']; } } } } } $exifdata = $wpdb->get_results($wpdb->prepare("SELECT * FROM `" . WPPA_EXIF . "` WHERE `photo` > '0' AND `tag` = %s ORDER BY `description`", $tag), ARRAY_A); $last = ''; $any = false; if (is_array($exifdata)) { foreach ($exifdata as $item) { $desc = sanitize_text_field($item['description']); $desc = str_replace(array(chr(0), chr(1), chr(2), chr(3), chr(4), chr(5), chr(6), chr(7)), '', $desc); if ($desc != $last) { $sel = $oldvalue && $oldvalue == $desc ? 'selected="selected"' : ''; $ddesc = strlen($desc) > '32' ? substr($desc, 0, 30) . '...' : $desc; echo '<option' . ' value="' . esc_attr($desc) . '"' . ' class="wppa-exiflist-' . $mocc . '"' . ' ' . $sel . ' >' . $ddesc . '</option>'; $last = $desc; $any = true; } } } if (!$any) { $query = $wpdb->prepare("DELETE FROM `" . WPPA_EXIF . "` WHERE `photo` = '0' AND `tag` = %s", $tag); $wpdb->query($query); // wppa_log( 'dbg', $query ); } wppa_exit(); break; case 'front-edit': if (!isset($_REQUEST['photo-id'])) { die('Missing required argument'); } $photo = $_REQUEST['photo-id']; $ok = false; if (current_user_can('wppa_admin')) { $ok = true; } if (wppa_get_user() == wppa_get_photo_owner($photo) && (current_user_can('wppa_upload') || is_user_logged_in() && wppa_switch('upload_edit'))) { $ok = true; } if (!$ok) { die('You do not have sufficient rights to do this'); } require_once 'wppa-photo-admin-autosave.php'; wppa('front_edit', true); echo ' <div style="padding-bottom:4px;height:24px;" > <span style="color:#777;" > <i>' . __('All modifications are instantly updated on the server. The <b style="color:#070" >Remark</b> field keeps you informed on the actions taken at the background.', 'wp-photo-album-plus') . '</i> </span> <input id="wppa-fe-exit" type="button" style="float:right;color:red;font-weight:bold;" onclick="window.opener.location.reload( true );window.close();" value="' . __('Exit & Refresh', 'wp-photo-album-plus') . '" /> <div id="wppa-fe-count" style="float:right;" ></div> </div><div style="clear:both;"></div>'; wppa_album_photos('', $photo); wppa_exit(); break; case 'do-comment': // Security check $mocc = $_REQUEST['moccur']; $nonce = $_REQUEST['wppa-nonce']; if (!wp_verify_nonce($nonce, 'wppa-nonce-' . $mocc)) { _e('Security check failure', 'wp-photo-album-plus'); wppa_exit(); } // Correct the fact that this is a non-admin operation, if it is only if (is_admin()) { require_once 'wppa-non-admin.php'; } wppa('mocc', $_REQUEST['moccur']); wppa('comment_photo', isset($_REQUEST['photo-id']) ? $_REQUEST['photo-id'] : '0'); wppa('comment_id', isset($_REQUEST['comment-edit']) ? $_REQUEST['comment-edit'] : '0'); $comment_allowed = !wppa_switch('comment_login') || is_user_logged_in(); if (wppa_switch('show_comments') && $comment_allowed) { // if ( wppa_switch( 'search_comments' ) ) wppa_index_remove( 'photo', $_REQUEST['photo-id'] ); wppa_do_comment($_REQUEST['photo-id']); // Process the comment if (wppa_switch('search_comments')) { wppa_index_update('photo', $_REQUEST['photo-id']); } } wppa('no_esc', true); echo wppa_comment_html($_REQUEST['photo-id'], $comment_allowed); // Retrieve the new commentbox content wppa_exit(); break; case 'import': require_once 'wppa-upload.php'; _wppa_page_import(); wppa_exit(); break; case 'approve': $iret = '0'; if (!current_user_can('wppa_moderate') && !current_user_can('wppa_comments')) { _e('You do not have the rights to moderate photos this way', 'wp-photo-album-plus'); wppa_exit(); } if (isset($_REQUEST['photo-id']) && current_user_can('wppa_moderate')) { $iret = $wpdb->query($wpdb->prepare("UPDATE `" . WPPA_PHOTOS . "` SET `status` = 'publish' WHERE `id` = %s", $_REQUEST['photo-id'])); wppa_flush_upldr_cache('photoid', $_REQUEST['photo-id']); $alb = $wpdb->get_var($wpdb->prepare("SELECT `album` FROM `" . WPPA_PHOTOS . "` WHERE `id` = %s", $_REQUEST['photo-id'])); wppa_clear_taglist(); wppa_flush_treecounts($alb); } if (isset($_REQUEST['comment-id'])) { $iret = $wpdb->query($wpdb->prepare("UPDATE `" . WPPA_COMMENTS . "` SET `status` = 'approved' WHERE `id` = %s", $_REQUEST['comment-id'])); } if ($iret) { echo 'OK'; } else { if (isset($_REQUEST['photo-id'])) { if (current_user_can('wppa_moderate')) { echo sprintf(__('Failed to update stutus of photo %s', 'wp-photo-album-plus'), $_REQUEST['photo-id']) . "\n" . __('Please refresh the page', 'wp-photo-album-plus'); } else { _e('Security check failure', 'wp-photo-album-plus'); } } if (isset($_REQUEST['comment-id'])) { echo sprintf(__('Failed to update stutus of comment %s', 'wp-photo-album-plus'), $_REQUEST['comment-id']) . "\n" . __('Please refresh the page', 'wp-photo-album-plus'); } } wppa_exit(); case 'remove': if (isset($_REQUEST['photo-id'])) { // Remove photo if (wppa_user_is('administrator') || current_user_can('wppa_moderate') || wppa_get_user() == wppa_get_photo_owner($_REQUEST['photo-id']) && wppa_switch('upload_edit')) { // Frontend delete? wppa_delete_photo($_REQUEST['photo-id']); echo 'OK||' . __('Photo removed', 'wp-photo-album-plus'); wppa_exit(); } } if (!current_user_can('wppa_moderate') && !current_user_can('wppa_comments')) { _e('You do not have the rights to moderate photos this way', 'wp-photo-album-plus'); wppa_exit(); } if (isset($_REQUEST['photo-id'])) { // Remove photo if (!current_user_can('wppa_moderate')) { _e('Security check failure', 'wp-photo-album-plus'); wppa_exit(); } wppa_delete_photo($_REQUEST['photo-id']); echo 'OK||' . __('Photo removed', 'wp-photo-album-plus'); wppa_exit(); } if (isset($_REQUEST['comment-id'])) { // Remove comment $iret = $wpdb->query($wpdb->prepare("DELETE FROM `" . WPPA_COMMENTS . "` WHERE `id`= %s", $_REQUEST['comment-id'])); if ($iret) { echo 'OK||' . __('Comment removed', 'wp-photo-album-plus'); } else { _e('Could not remove comment', 'wp-photo-album-plus'); } wppa_exit(); } _e('Unexpected error', 'wp-photo-album-plus'); wppa_exit(); case 'downloadalbum': // Feature enabled? if (!wppa_switch('allow_download_album')) { echo '||ER||' . __('This feature is not enabled on this website', 'wp-photo-album-plus'); wppa_exit(); } // Validate args $alb = $_REQUEST['album-id']; $status = "`status` <> 'pending' AND `status` <> 'scheduled'"; if (!is_user_logged_in()) { $status .= " AND `status` <> 'private'"; } $photos = $wpdb->get_results($wpdb->prepare("SELECT * FROM `" . WPPA_PHOTOS . "` WHERE `album` = %s AND ( ( " . $status . " ) OR owner = %s ) " . wppa_get_photo_order($alb), $alb, wppa_get_user()), ARRAY_A); if (!$photos) { echo '||ER||' . __('The album is empty', 'wp-photo-album-plus'); wppa_exit(); } // Remove obsolete files wppa_delete_obsolete_tempfiles(); // Open zipfile if (!class_exists('ZipArchive')) { echo '||ER||' . __('Unable to create zip archive', 'wp-photo-album-plus'); wppa_exit(); } $zipfilename = wppa_get_album_name($alb); $zipfilename = wppa_sanitize_file_name($zipfilename . '.zip'); // Remove illegal chars $zipfilepath = WPPA_UPLOAD_PATH . '/temp/' . $zipfilename; if (is_file($zipfilepath)) { // unlink( $zipfilepath ); // Debug } $wppa_zip = new ZipArchive(); $iret = $wppa_zip->open($zipfilepath, 1); if ($iret !== true) { echo '||ER||' . sprintf(__('Unable to create zip archive. code = %s', 'wp-photo-album-plus'), $iret); wppa_exit(); } // Add photos to zip $stop = false; foreach ($photos as $p) { if (wppa_is_time_up()) { wppa_log('obs', 'Time up during album to zip creation'); $stop = true; } else { $id = $p['id']; if (!wppa_is_multi($id)) { $source = wppa_switch('download_album_source') && is_file(wppa_get_source_path($id)) ? wppa_get_source_path($id) : wppa_get_photo_path($id); if (is_file($source)) { $dest = $p['filename'] ? wppa_sanitize_file_name($p['filename']) : wppa_sanitize_file_name(wppa_strip_ext($p['name']) . '.' . $p['ext']); $dest = wppa_fix_poster_ext($dest, $id); $iret = $wppa_zip->addFile($source, $dest); // To prevent too may files open, and to have at least a file when there are too many photos, close and re-open $wppa_zip->close(); $wppa_zip->open($zipfilepath); // wppa_log( 'dbg', 'Added ' . basename($source) . ' to ' . basename($zipfilepath)); } } } if ($stop) { break; } } // Close zip and return $zipcount = $wppa_zip->numFiles; $wppa_zip->close(); // A zip is created $desturl = WPPA_UPLOAD_URL . '/temp/' . $zipfilename; echo $desturl . '||OK||'; if ($zipcount != count($photos)) { echo sprintf(__('Only %s out of %s photos could be added to the zipfile', 'wp-photo-album-plus'), $zipcount, count($photos)); } wppa_exit(); break; case 'getalbumzipurl': $alb = $_REQUEST['album-id']; $zipfilename = wppa_get_album_name($alb); $zipfilename = wppa_sanitize_file_name($zipfilename . '.zip'); // Remove illegal chars $zipfilepath = WPPA_UPLOAD_PATH . '/temp/' . $zipfilename; $zipfileurl = WPPA_UPLOAD_URL . '/temp/' . $zipfilename; if (is_file($zipfilepath)) { echo $zipfileurl; } else { echo 'ER'; } wppa_exit(); break; case 'makeorigname': $photo = $_REQUEST['photo-id']; $from = $_REQUEST['from']; if ($from == 'fsname') { $type = wppa_opt('art_monkey_link'); } elseif ($from == 'popup') { $type = wppa_opt('art_monkey_popup_link'); } else { echo '||7||' . __('Unknown source of request', 'wp-photo-album-plus'); wppa_exit(); } $data = $wpdb->get_row($wpdb->prepare("SELECT * FROM `" . WPPA_PHOTOS . "` WHERE `id` = %s", $photo), ARRAY_A); if ($data) { // The photo is supposed to exist // Make the name if ($data['filename']) { $name = $data['filename']; } else { $name = __($data['name'], 'wp-photo-album-plus'); } $name = wppa_sanitize_file_name($name); // Remove illegal chars $name = preg_replace('/\\.[^.]*$/', '', $name); // Remove file extension if (strlen($name) == '0') { echo '||1||' . __('Empty filename', 'wp-photo-album-plus'); wppa_exit(); } // Make the file if (wppa_switch('artmonkey_use_source')) { if (is_file(wppa_get_source_path($photo))) { $source = wppa_get_source_path($photo); } else { $source = wppa_get_photo_path($photo); } } else { $source = wppa_get_photo_path($photo); } $source = wppa_fix_poster_ext($source, $photo); // Fix the extension for mm items. if ($data['ext'] == 'xxx') { $data['ext'] = wppa_get_ext($source); } $dest = WPPA_UPLOAD_PATH . '/temp/' . $name . '.' . $data['ext']; $zipfile = WPPA_UPLOAD_PATH . '/temp/' . $name . '.zip'; $tempdir = WPPA_UPLOAD_PATH . '/temp'; if (!is_dir($tempdir)) { @mkdir($tempdir); } if (!is_dir($tempdir)) { echo '||2||' . __('Unable to create tempdir', 'wp-photo-album-plus'); wppa_exit(); } // Remove obsolete files wppa_delete_obsolete_tempfiles(); // Make the files if ($type == 'file') { copy($source, $dest); $ext = $data['ext']; } elseif ($type == 'zip') { if (!class_exists('ZipArchive')) { echo '||8||' . __('Unable to create zip archive', 'wp-photo-album-plus'); wppa_exit(); } $ext = 'zip'; $wppa_zip = new ZipArchive(); $wppa_zip->open($zipfile, 1); $wppa_zip->addFile($source, basename($dest)); $wppa_zip->close(); } else { echo '||6||' . __('Unknown type', 'wp-photo-album-plus'); wppa_exit(); } $desturl = WPPA_UPLOAD_URL . '/temp/' . $name . '.' . $ext; echo '||0||' . $desturl; // No error: return url wppa_exit(); } else { echo '||9||' . __('The photo does no longer exist', 'wp-photo-album-plus'); wppa_exit(); } wppa_exit(); break; case 'tinymcedialog': $result = wppa_make_tinymce_dialog(); echo $result; wppa_exit(); break; case 'bumpviewcount': $nonce = $_REQUEST['wppa-nonce']; if (wp_verify_nonce($nonce, 'wppa-check')) { wppa_bump_viewcount('photo', $_REQUEST['wppa-photo']); } else { _e('Security check failure', 'wp-photo-album-plus'); } wppa_exit(); break; case 'rate': // Get commandline args $photo = $_REQUEST['wppa-rating-id']; $rating = $_REQUEST['wppa-rating']; $occur = $_REQUEST['wppa-occur']; $index = $_REQUEST['wppa-index']; $nonce = $_REQUEST['wppa-nonce']; // Make errortext $errtxt = __('An error occurred while processing you rating request.', 'wp-photo-album-plus'); $errtxt .= "\n" . __('Maybe you opened the page too long ago to recognize you.', 'wp-photo-album-plus'); $errtxt .= "\n" . __('You may refresh the page and try again.', 'wp-photo-album-plus'); $wartxt = __('Althoug an error occurred while processing your rating, your vote has been registered.', 'wp-photo-album-plus'); $wartxt .= "\n" . __('However, this may not be reflected in the current pageview', 'wp-photo-album-plus'); // Check on validity if (!wp_verify_nonce($nonce, 'wppa-check')) { echo '0||100||' . $errtxt; wppa_exit(); // Nonce check failed } if (wppa_opt('rating_max') == '1' && $rating != '1') { echo '0||106||' . $errtxt . ':' . $rating; wppa_exit(); // Value out of range } elseif (wppa_opt('rating_max') == '5' && !in_array($rating, array('-1', '1', '2', '3', '4', '5'))) { echo '0||106||' . $errtxt . ':' . $rating; wppa_exit(); // Value out of range } elseif (wppa_opt('rating_max') == '10' && !in_array($rating, array('-1', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10'))) { echo '0||106||' . $errtxt . ':' . $rating; wppa_exit(); // Value out of range } // Get other data if (!$wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM `" . WPPA_PHOTOS . "` WHERE `id` = %s", $photo))) { echo '0||999||' . __('Photo has been removed.', 'wp-photo-album-plus'); wppa_exit(); } $user = wppa_get_user(); $mylast = $wpdb->get_row($wpdb->prepare('SELECT * FROM `' . WPPA_RATING . '` WHERE `photo` = %s AND `user` = %s ORDER BY `id` DESC LIMIT 1', $photo, $user), ARRAY_A); $myavgrat = '0'; // Init // Rate own photo? if (wppa_get_photo_item($photo, 'owner') == $user && !wppa_switch('allow_owner_votes')) { echo '0||900||' . __('Sorry, you can not rate your own photos', 'wp-photo-album-plus'); wppa_exit(); } // Already a pending one? $pending = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM `" . WPPA_RATING . "` WHERE `photo` = %s AND `user` = %s AND `status` = %s", $photo, $user, 'pending')); // Has user motivated his vote? $hascommented = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM `" . WPPA_COMMENTS . "` WHERE `photo` = %s AND `user` = %s", $photo, wppa_get_user('display'))); if ($pending) { if (!$hascommented) { echo '0||900||' . __('Please enter a comment.', 'wp-photo-album-plus'); wppa_exit(); } else { $wpdb->query($wpdb->prepare("UPDATE `" . WPPA_RATING . "` SET `status` = 'publish' WHERE `photo` = %s AND `user` = %s", $photo, $user)); } } if (wppa_switch('vote_needs_comment')) { $ratingstatus = $hascommented ? 'publish' : 'pending'; } else { $ratingstatus = 'publish'; } // When done, we have to echo $occur.'||'.$photo.'||'.$index.'||'.$myavgrat.'||'.$allavgrat.'||'.$discount.||.$hascommented.||.$message; // So we have to do: process rating and find new $myavgrat, $allavgrat and $discount ( $occur, $photo and $index are known ) // Case 0: Illegal second vote. Frontend takes care of this, but a hacker could enter an ajaxlink manually if ($mylast && (!(wppa_switch('rating_change') || wppa_switch('rating_multi')) || $mylast['value'] < '0' || $mylast['value'] > '0' && $rating == '-1')) { echo '0||109||' . __('Security check failure.', 'wp-photo-album-plus'); wppa_exit(); } // Case 1: value = -1 this is a legal dislike vote if ($rating == '-1') { // Add my dislike $iret = wppa_create_rating_entry(array('photo' => $photo, 'value' => $rating, 'user' => $user, 'status' => $ratingstatus)); if (!$iret) { echo '0||101||' . $errtxt; wppa_exit(); // Fail on storing vote } // Add points wppa_add_credit_points(wppa_opt('cp_points_rating'), __('Photo rated', 'wp-photo-album-plus'), $photo, $rating); wppa_dislike_check($photo); // Check for email to be sent every .. dislikes if (!is_file(wppa_get_thumb_path($photo))) { // Photo is removed echo $occur . '||' . $photo . '||' . $index . '||-1||-1|0||' . wppa_opt('dislike_delete'); wppa_exit(); } } elseif (!$mylast) { // Add my vote $iret = wppa_create_rating_entry(array('photo' => $photo, 'value' => $rating, 'user' => $user, 'status' => $ratingstatus)); if (!$iret) { echo '0||102||' . $errtxt; wppa_exit(); // Fail on storing vote } // Add points wppa_add_credit_points(wppa_opt('cp_points_rating'), __('Photo rated', 'wp-photo-album-plus'), $photo, $rating); } elseif (wppa_switch('rating_change')) { // Votechanging is allowed $iret = $wpdb->query($wpdb->prepare('UPDATE `' . WPPA_RATING . '` SET `value` = %s WHERE `photo` = %s AND `user` = %s LIMIT 1', $rating, $photo, $user)); if ($iret === false) { echo '0||103||' . $errtxt; wppa_exit(); // Fail on update } } elseif (wppa_switch('rating_multi')) { // Rating multi is allowed $iret = wppa_create_rating_entry(array('photo' => $photo, 'value' => $rating, 'user' => $user, 'status' => $ratingstatus)); if (!$iret) { echo '0||104||' . $errtxt; wppa_exit(); // Fail on storing vote } } else { // Should never get here.... echo '0||110||' . __('Unexpected error', 'wp-photo-album-plus'); wppa_exit(); } // Compute my avg rating $myrats = $wpdb->get_results($wpdb->prepare('SELECT * FROM `' . WPPA_RATING . '` WHERE `photo` = %s AND `user` = %s AND `status` = %s ', $photo, $user, 'publish'), ARRAY_A); if ($myrats) { $sum = 0; $cnt = 0; foreach ($myrats as $rat) { if ($rat['value'] == '-1') { $sum += wppa_opt('dislike_value'); } else { $sum += $rat['value']; } $cnt++; } $myavgrat = $sum / $cnt; $i = wppa_opt('rating_prec'); $j = $i + '1'; $myavgrat = sprintf('%' . $j . '.' . $i . 'f', $myavgrat); } else { $myavgrat = '0'; } // Compute new allavgrat $ratings = $wpdb->get_results($wpdb->prepare('SELECT * FROM ' . WPPA_RATING . ' WHERE `photo` = %s AND `status` = %s', $photo, 'publish'), ARRAY_A); if ($ratings) { $sum = 0; $cnt = 0; foreach ($ratings as $rat) { if ($rat['value'] == '-1') { $sum += wppa_opt('dislike_value'); } else { $sum += $rat['value']; } $cnt++; } $allavgrat = $sum / $cnt; if ($allavgrat == '10') { $allavgrat = '9.99999999'; } // For sort order reasons text field } else { $allavgrat = '0'; } // Store it in the photo info $iret = $wpdb->query($wpdb->prepare('UPDATE `' . WPPA_PHOTOS . '` SET `mean_rating` = %s WHERE `id` = %s', $allavgrat, $photo)); if ($iret === false) { echo '0||106||' . $wartxt; wppa_exit(); // Fail on save } // Compute rating_count and store in the photo info $ratcount = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM `" . WPPA_RATING . "` WHERE `photo` = %s", $photo)); if ($ratcount !== false) { $iret = $wpdb->query($wpdb->prepare("UPDATE `" . WPPA_PHOTOS . "` SET `rating_count` = %s WHERE `id` = %s", $ratcount, $photo)); if ($iret === false) { echo '0||107||' . $wartxt; wppa_exit(); // Fail on save } } // Format $allavgrat for output $allavgratcombi = $allavgrat . '|' . $ratcount; // Compute dsilike count $discount = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM `" . WPPA_RATING . "` WHERE `photo` = %s AND `value` = -1 AND `status` = %s", $photo, 'publish')); if ($discount === false) { echo '0||108||' . $wartxt; wppa_exit(); // Fail on save } // Test for possible medal wppa_test_for_medal($photo); // Success! wppa_clear_cache(); if (wppa_switch('vote_needs_comment') && !$hascommented) { $message = __("Please explain your vote in a comment.\nYour vote will be discarded if you don't.\n\nAfter completing your comment,\nyou can refresh the page to see\nyour vote became effective.", 'wp-photo-album-plus'); } else { $message = ''; } echo $occur . '||' . $photo . '||' . $index . '||' . $myavgrat . '||' . $allavgratcombi . '||' . $discount . '||' . $hascommented . '||' . $message; break; case 'render': $tim_1 = microtime(true); $nq_1 = get_num_queries(); // Correct the fact that this is a non-admin operation, if it is if (is_admin()) { require_once 'wppa-non-admin.php'; } wppa_load_theme(); // Register geo shortcode if google-maps-gpx-vieuwer is on board. GPX does it in wp_head(), what is not done in an ajax call // if ( function_exists( 'gmapv3' ) ) add_shortcode( 'map', 'gmapv3' ); // Get the post we are working for if (isset($_REQUEST['wppa-fromp'])) { $p = $_REQUEST['wppa-fromp']; if (wppa_is_int($p)) { $GLOBALS['post'] = get_post($p); } } // Render echo wppa_albums(); $tim_2 = microtime(true); $nq_2 = get_num_queries(); $mem = memory_get_peak_usage(true) / 1024 / 1024; $msg = sprintf('WPPA Ajax render: db queries: WP:%d, WPPA+: %d in %4.2f seconds, using %4.2f MB memory max', $nq_1, $nq_2 - $nq_1, $tim_2 - $tim_1, $mem); echo '<script type="text/javascript">wppaConsoleLog( \'' . $msg . '\', \'force\' )</script>'; break; case 'delete-photo': $photo = $_REQUEST['photo-id']; $nonce = $_REQUEST['wppa-nonce']; // Check validity if (!wp_verify_nonce($nonce, 'wppa_nonce_' . $photo)) { echo '||0||' . __('You do not have the rights to delete a photo', 'wp-photo-album-plus'); wppa_exit(); // Nonce check failed } if (!is_numeric($photo)) { echo '||0||' . __('Security check failure', 'wp-photo-album-plus'); wppa_exit(); // Nonce check failed } $album = $wpdb->get_var($wpdb->prepare('SELECT `album` FROM `' . WPPA_PHOTOS . '` WHERE `id` = %s', $photo)); wppa_delete_photo($photo); wppa_clear_cache(); echo '||1||<span style="color:red" >' . sprintf(__('Photo %s has been deleted', 'wp-photo-album-plus'), $photo) . '</span>'; echo '||'; $a = wppa_allow_uploads($album); if (!$a) { echo 'full'; } else { echo 'notfull||' . $a; } break; case 'update-album': $album = $_REQUEST['album-id']; $nonce = $_REQUEST['wppa-nonce']; $item = $_REQUEST['item']; $value = $_REQUEST['value']; $value = wppa_decode($value); // Check validity if (!wp_verify_nonce($nonce, 'wppa_nonce_' . $album)) { echo '||0||' . __('You do not have the rights to update album information', 'wp-photo-album-plus') . $nonce; wppa_exit(); // Nonce check failed } switch ($item) { case 'clear_ratings': $photos = $wpdb->get_results($wpdb->prepare('SELECT * FROM `' . WPPA_PHOTOS . '` WHERE `album` = %s', $album), ARRAY_A); if ($photos) { foreach ($photos as $photo) { $iret1 = $wpdb->query($wpdb->prepare('DELETE FROM `' . WPPA_RATING . '` WHERE `photo` = %s', $photo['id'])); $iret2 = $wpdb->query($wpdb->prepare('UPDATE `' . WPPA_PHOTOS . '` SET `mean_rating` = %s WHERE `id` = %s', '', $photo['id'])); } } if ($photos && $iret1 !== false && $iret2 !== false) { echo '||97||' . __('<b>Ratings cleared</b>', 'wp-photo-album-plus') . '||' . __('No ratings for this photo.', 'wp-photo-album-plus'); } elseif ($photos) { echo '||1||' . __('An error occurred while clearing ratings', 'wp-photo-album-plus'); } else { echo '||97||' . __('<b>No photos in this album</b>', 'wp-photo-album-plus') . '||' . __('No ratings for this photo.', 'wp-photo-album-plus'); } wppa_exit(); break; case 'set_deftags': // to be changed for large albums $photos = $wpdb->get_results($wpdb->prepare('SELECT * FROM `' . WPPA_PHOTOS . '` WHERE `album` = %s', $album), ARRAY_A); $deftag = $wpdb->get_var($wpdb->prepare('SELECT `default_tags` FROM `' . WPPA_ALBUMS . '` WHERE `id` = %s', $album)); if (is_array($photos)) { foreach ($photos as $photo) { $tags = wppa_sanitize_tags(wppa_filter_iptc(wppa_filter_exif($deftag, $photo['id']), $photo['id'])); $iret = $wpdb->query($wpdb->prepare('UPDATE `' . WPPA_PHOTOS . '` SET `tags` = %s WHERE `id` = %s', $tags, $photo['id'])); wppa_index_update('photo', $photo['id']); } } if ($photos && $iret !== false) { echo '||97||' . __('<b>Tags set to defaults</b> (reload)', 'wp-photo-album-plus'); } elseif ($photos) { echo '||1||' . __('An error occurred while setting tags', 'wp-photo-album-plus'); } else { echo '||97||' . __('<b>No photos in this album</b>', 'wp-photo-album-plus'); } wppa_clear_taglist(); wppa_exit(); break; case 'add_deftags': $photos = $wpdb->get_results($wpdb->prepare('SELECT * FROM `' . WPPA_PHOTOS . '` WHERE `album` = %s', $album), ARRAY_A); $deftag = $wpdb->get_var($wpdb->prepare('SELECT `default_tags` FROM `' . WPPA_ALBUMS . '` WHERE `id` = %s', $album)); if (is_array($photos)) { foreach ($photos as $photo) { $tags = wppa_sanitize_tags(wppa_filter_iptc(wppa_filter_exif($photo['tags'] . ',' . $deftag, $photo['id']), $photo['id'])); $iret = $wpdb->query($wpdb->prepare('UPDATE `' . WPPA_PHOTOS . '` SET `tags` = %s WHERE `id` = %s', $tags, $photo['id'])); wppa_index_update('photo', $photo['id']); } } if ($photos && $iret !== false) { echo '||97||' . __('<b>Tags added width defaults</b> (reload)', 'wp-photo-album-plus'); } elseif ($photos) { echo '||1||' . __('An error occurred while adding tags', 'wp-photo-album-plus'); } else { echo '||97||' . __('<b>No photos in this album</b>', 'wp-photo-album-plus'); } wppa_clear_taglist(); wppa_exit(); break; case 'name': $value = trim(strip_tags($value)); if (!wppa_sanitize_file_name($value)) { // Empty album name is not allowed $value = 'Album-#' . $album; echo '||5||' . sprintf(__('Album name may not be empty.<br />Reset to <b>%s</b>', 'wp-photo-album-plus'), $value); } $itemname = __('Name', 'wp-photo-album-plus'); break; case 'description': $itemname = __('Description', 'wp-photo-album-plus'); if (wppa_switch('check_balance')) { $value = str_replace(array('<br/>', '<br>'), '<br />', $value); if (balanceTags($value, true) != $value) { echo '||3||' . __('Unbalanced tags in album description!', 'wp-photo-album-plus'); wppa_exit(); } } $value = trim($value); break; case 'a_order': $itemname = __('Album order #', 'wp-photo-album-plus'); break; case 'main_photo': $itemname = __('Cover photo', 'wp-photo-album-plus'); break; case 'a_parent': $itemname = __('Parent album', 'wp-photo-album-plus'); wppa_flush_treecounts($album); // Myself and my parents wppa_flush_treecounts($value); // My new parent break; case 'p_order_by': $itemname = __('Photo order', 'wp-photo-album-plus'); break; case 'alt_thumbsize': $itemname = __('Use Alt thumbsize', 'wp-photo-album-plus'); break; case 'cover_type': $itemname = __('Cover Type', 'wp-photo-album-plus'); break; case 'cover_linktype': $itemname = __('Link type', 'wp-photo-album-plus'); break; case 'cover_linkpage': $itemname = __('Link to', 'wp-photo-album-plus'); break; case 'owner': $itemname = __('Owner', 'wp-photo-album-plus'); if ($value != '--- public ---' && !get_user_by('login', $value)) { echo '||4||' . sprintf(__('User %s does not exist', 'wp-photo-album-plus'), $value); wppa_exit(); } break; case 'upload_limit_count': wppa_ajax_check_range($value, false, '0', false, __('Upload limit count', 'wp-photo-album-plus')); if (wppa('error')) { wppa_exit(); } $oldval = $wpdb->get_var($wpdb->prepare('SELECT `upload_limit` FROM ' . WPPA_ALBUMS . ' WHERE `id` = %s', $album)); $temp = explode('/', $oldval); $value = $value . '/' . $temp[1]; $item = 'upload_limit'; $itemname = __('Upload limit count', 'wp-photo-album-plus'); break; case 'upload_limit_time': $oldval = $wpdb->get_var($wpdb->prepare('SELECT `upload_limit` FROM ' . WPPA_ALBUMS . ' WHERE `id` = %s', $album)); $temp = explode('/', $oldval); $value = $temp[0] . '/' . $value; $item = 'upload_limit'; $itemname = __('Upload limit time', 'wp-photo-album-plus'); break; case 'default_tags': $value = wppa_sanitize_tags($value, false, true); $itemname = __('Default tags', 'wp-photo-album-plus'); break; case 'cats': $value = wppa_sanitize_cats($value); wppa_clear_catlist(); $itemname = __('Categories', 'wp-photo-album-plus'); break; case 'suba_order_by': $itemname = __('Sub albums sort order', 'wp-photo-album-plus'); break; case 'year': case 'month': case 'day': case 'hour': case 'min': $itemname = __('Schedule date/time', 'wp-photo-album-plus'); $scheduledtm = $wpdb->get_var($wpdb->prepare("SELECT `scheduledtm` FROM`" . WPPA_ALBUMS . "` WHERE `id` = %s", $album)); if (!$scheduledtm) { $scheduledtm = wppa_get_default_scheduledtm(); } $temp = explode(',', $scheduledtm); if ($item == 'year') { $temp[0] = $value; } if ($item == 'month') { $temp[1] = $value; } if ($item == 'day') { $temp[2] = $value; } if ($item == 'hour') { $temp[3] = $value; } if ($item == 'min') { $temp[4] = $value; } $scheduledtm = implode(',', $temp); wppa_update_album(array('id' => $album, 'scheduledtm' => $scheduledtm)); echo '||0||' . sprintf(__('<b>%s</b> of album %s updated', 'wp-photo-album-plus'), $itemname, $album); wppa_exit(); break; case 'setallscheduled': $scheduledtm = $wpdb->get_var($wpdb->prepare("SELECT `scheduledtm` FROM `" . WPPA_ALBUMS . "` WHERE `id` = %s", $album)); if ($scheduledtm) { $iret = $wpdb->query($wpdb->prepare("UPDATE `" . WPPA_PHOTOS . "` SET `status` = 'scheduled', `scheduledtm` = %s WHERE `album` = %s", $scheduledtm, $album)); echo '||0||' . __('All photos set to scheduled per date', 'wp-photo-album-plus') . ' ( ' . $iret . ' ) ' . wppa_format_scheduledtm($scheduledtm); } wppa_exit(); break; default: $itemname = $item; } $query = $wpdb->prepare('UPDATE ' . WPPA_ALBUMS . ' SET `' . $item . '` = %s WHERE `id` = %s', $value, $album); $iret = $wpdb->query($query); if ($iret !== false) { if ($item == 'name' || $item == 'description' || $item == 'cats') { wppa_index_update('album', $album); } if ($item == 'name') { wppa_create_pl_htaccess(); } echo '||0||' . sprintf(__('<b>%s</b> of album %s updated', 'wp-photo-album-plus'), $itemname, $album); if ($item == 'upload_limit') { echo '||'; $a = wppa_allow_uploads($album); if (!$a) { echo 'full'; } else { echo 'notfull||' . $a; } } } else { echo '||2||' . sprintf(__('An error occurred while trying to update <b>%s</b> of album %s', 'wp-photo-album-plus'), $itemname, $album); echo '<br>' . __('Press CTRL+F5 and try again.', 'wp-photo-album-plus'); } wppa_clear_cache(); wppa_exit(); break; case 'update-comment-status': $photo = $_REQUEST['wppa-photo-id']; $nonce = $_REQUEST['wppa-nonce']; $comid = $_REQUEST['wppa-comment-id']; $comstat = $_REQUEST['wppa-comment-status']; // Check validity if (!wp_verify_nonce($nonce, 'wppa_nonce_' . $photo)) { echo '||0||' . __('You do not have the rights to update comment status', 'wp-photo-album-plus') . $nonce; wppa_exit(); // Nonce check failed } // if ( wppa_switch( 'search_comments' ) ) wppa_index_remove( 'photo', $photo ); $iret = $wpdb->query($wpdb->prepare('UPDATE `' . WPPA_COMMENTS . '` SET `status` = %s WHERE `id` = %s', $comstat, $comid)); if (wppa_switch('search_comments')) { wppa_index_update('photo', $photo); } if ($iret !== false) { echo '||0||' . sprintf(__('Status of comment #%s updated', 'wp-photo-album-plus'), $comid); } else { echo '||1||' . sprintf(__('Error updating status comment #%s', 'wp-photo-album-plus'), $comid); } wppa_exit(); break; case 'watermark-photo': $photo = $_REQUEST['photo-id']; $nonce = $_REQUEST['wppa-nonce']; // Check validity if (!wp_verify_nonce($nonce, 'wppa_nonce_' . $photo)) { echo '||1||' . __('You do not have the rights to change photos', 'wp-photo-album-plus'); wppa_exit(); // Nonce check failed } wppa_cache_thumb($photo); if (wppa_add_watermark($photo)) { if (wppa_switch('watermark_thumbs')) { wppa_create_thumbnail($photo); // create new thumb } echo '||0||' . __('Watermark applied', 'wp-photo-album-plus'); wppa_exit(); } else { echo '||1||' . __('An error occured while trying to apply a watermark', 'wp-photo-album-plus'); wppa_exit(); } case 'update-photo': $photo = $_REQUEST['photo-id']; $nonce = $_REQUEST['wppa-nonce']; $item = $_REQUEST['item']; $value = isset($_REQUEST['value']) ? $_REQUEST['value'] : ''; $value = wppa_decode($value); // Check validity if (!wp_verify_nonce($nonce, 'wppa_nonce_' . $photo)) { echo '||0||' . __('You do not have the rights to update photo information', 'wp-photo-album-plus'); wppa_exit(); // Nonce check failed } if (substr($item, 0, 20) == 'wppa_watermark_file_' || substr($item, 0, 19) == 'wppa_watermark_pos_') { wppa_update_option($item, $value); echo '||0||' . sprintf(__('%s updated to %s.', 'wp-photo-album-plus'), $item, $value); wppa_exit(); } switch ($item) { case 'exifdtm': $format = '0000:00:00 00:00:00'; $err = '0'; // Length ok? if (strlen($value) != 19) { $err = '1'; } // Check on digits, colons and space for ($i = 0; $i < 19; $i++) { $d = substr($value, $i, 1); $f = substr($format, $i, 1); switch ($f) { case '0': if (!in_array($d, array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9'))) { $err = '2'; } break; case ':': case ' ': if ($d != $f) { $err = '3'; } break; } } // Check on values if format correct, report first error only if (!$err) { $temp = explode(':', str_replace(' ', ':', $value)); if ($temp['0'] < '1970') { $err = '11'; } // Before UNIX epoch if (!$err && $temp['0'] > date('Y')) { $err = '12'; } // Future if (!$err && $temp['1'] < '1') { $err = '13'; } // Before january if (!$err && $temp['1'] > '12') { $err = '14'; } // After december if (!$err && $temp['2'] < '1') { $err = '15'; } // Before first of month if (!$err && $temp['2'] > '31') { $err = '17'; } // After 31st ( forget about feb and months with 30 days ) if (!$err && $temp['3'] < '1') { $err = '18'; } // Before first hour if (!$err && $temp['3'] > '24') { $err = '19'; } // Hour > 24 if (!$err && $temp['4'] < '1') { $err = '20'; } // Min < 1 if (!$err && $temp['4'] > '59') { $err = '21'; } // Min > 59 if (!$err && $temp['5'] < '1') { $err = '22'; } // Sec < 1 if (!$err && $temp['5'] > '59') { $err = '23'; } // Sec > 59 } if ($err) { echo '||1||' . sprintf(__('Format error %s. Must be yyyy:mm:dd hh:mm:ss', 'wp-photo-album-plus'), $err); } else { wppa_update_photo(array('id' => $photo, 'exifdtm' => $value)); echo '||0||' . __('Exif date/time updated', 'wp-photo-album-plus'); } wppa_exit(); break; case 'lat': if (!is_numeric($value) || $value < '-90.0' || $value > '90.0') { echo '||1||' . __('Enter a value > -90 and < 90', 'wp-photo-album-plus'); wppa_exit(); } $photodata = $wpdb->get_row($wpdb->prepare('SELECT * FROM ' . WPPA_PHOTOS . ' WHERE `id` = %s', $photo), ARRAY_A); $geo = $photodata['location'] ? $photodata['location'] : '///'; $geo = explode('/', $geo); $geo = wppa_format_geo($value, $geo['3']); $iret = $wpdb->query($wpdb->prepare('UPDATE `' . WPPA_PHOTOS . '` SET `location` = %s WHERE `id` = %s', $geo, $photo)); if ($iret) { echo '||0||' . __('Lattitude updated', 'wp-photo-album-plus'); } else { echo '||1||' . __('Could not update lattitude', 'wp-photo-album-plus'); } wppa_exit(); break; case 'lon': if (!is_numeric($value) || $value < '-180.0' || $value > '180.0') { echo '||1||' . __('Enter a value > -180 and < 180', 'wp-photo-album-plus'); wppa_exit(); } $photodata = $wpdb->get_row($wpdb->prepare('SELECT * FROM ' . WPPA_PHOTOS . ' WHERE `id` = %s', $photo), ARRAY_A); $geo = $photodata['location'] ? $photodata['location'] : '///'; $geo = explode('/', $geo); $geo = wppa_format_geo($geo['2'], $value); $iret = $wpdb->query($wpdb->prepare('UPDATE `' . WPPA_PHOTOS . '` SET `location` = %s WHERE `id` = %s', $geo, $photo)); if ($iret) { echo '||0||' . __('Longitude updated', 'wp-photo-album-plus'); } else { echo '||1||' . __('Could not update longitude', 'wp-photo-album-plus'); } wppa_exit(); break; case 'remake': if (wppa_remake_files('', $photo)) { wppa_bump_photo_rev(); wppa_bump_thumb_rev(); echo '||0||' . __('Photo files remade', 'wp-photo-album-plus'); } else { echo '||2||' . __('Could not remake files', 'wp-photo-album-plus'); } wppa_exit(); break; case 'remakethumb': if (wppa_create_thumbnail($photo)) { echo '||0||' . __('Thumbnail remade', 'wp-photo-album-plus'); } else { echo '||0||' . __('Could not remake thumbnail', 'wp-photo-album-plus'); } wppa_exit(); break; case 'rotright': case 'rot180': case 'rotleft': switch ($item) { case 'rotleft': $angle = '90'; $dir = __('left', 'wp-photo-album-plus'); break; case 'rot180': $angle = '180'; $dir = __('180°', 'wp-photo-album-plus'); break; case 'rotright': $angle = '270'; $dir = __('right', 'wp-photo-album-plus'); break; } wppa('error', wppa_rotate($photo, $angle)); if (!wppa('error')) { wppa_update_modified($photo); wppa_bump_photo_rev(); wppa_bump_thumb_rev(); echo '||0||' . sprintf(__('Photo %s rotated %s', 'wp-photo-album-plus'), $photo, $dir); } else { echo '||' . wppa('error') . '||' . sprintf(__('An error occurred while trying to rotate photo %s', 'wp-photo-album-plus'), $photo); } wppa_exit(); break; case 'moveto': $photodata = $wpdb->get_row($wpdb->prepare('SELECT * FROM ' . WPPA_PHOTOS . ' WHERE `id` = %s', $photo), ARRAY_A); if (wppa_switch('void_dups')) { // Check for already exists $exists = wppa_file_is_in_album($photodata['filename'], $value); if ($exists) { // Already exists echo '||3||' . sprintf(__('A photo with filename %s already exists in album %s.', 'wp-photo-album-plus'), $photodata['filename'], $value); wppa_exit(); break; } } wppa_flush_treecounts($photodata['album']); // Current album wppa_flush_treecounts($value); // New album $iret = $wpdb->query($wpdb->prepare('UPDATE ' . WPPA_PHOTOS . ' SET `album` = %s WHERE `id` = %s', $value, $photo)); if ($iret !== false) { wppa_move_source($photodata['filename'], $photodata['album'], $value); echo '||99||' . sprintf(__('Photo %s has been moved to album %s (%s)', 'wp-photo-album-plus'), $photo, wppa_get_album_name($value), $value); } else { echo '||3||' . sprintf(__('An error occurred while trying to move photo %s', 'wp-photo-album-plus'), $photo); } wppa_exit(); break; case 'copyto': $photodata = $wpdb->get_row($wpdb->prepare('SELECT * FROM ' . WPPA_PHOTOS . ' WHERE `id` = %s', $photo), ARRAY_A); if (wppa_switch('void_dups')) { // Check for already exists $exists = wppa_file_is_in_album($photodata['filename'], $value); if ($exists) { // Already exists echo '||4||' . sprintf(__('A photo with filename %s already exists in album %s.', 'wp-photo-album-plus'), $photodata['filename'], $value); wppa_exit(); break; } } wppa('error', wppa_copy_photo($photo, $value)); wppa_flush_treecounts($value); // New album if (!wppa('error')) { echo '||0||' . sprintf(__('Photo %s copied to album %s (%s)', 'wp-photo-album-plus'), $photo, wppa_get_album_name($value), $value); } else { echo '||4||' . sprintf(__('An error occurred while trying to copy photo %s', 'wp-photo-album-plus'), $photo); echo '<br>' . __('Press CTRL+F5 and try again.', 'wp-photo-album-plus'); } wppa_exit(); break; case 'status': if (!current_user_can('wppa_moderate') && !current_user_can('wppa_admin')) { die('Security check failure #78'); } wppa_flush_treecounts(wppa_get_photo_item($photo, 'album')); // $wpdb->get_var( $wpdb->prepare( "SELECT `album` FROM `".WPPA_PHOTOS."` WHERE `id` = %s", $photo ) ) ); // $wpdb->get_var( $wpdb->prepare( "SELECT `album` FROM `".WPPA_PHOTOS."` WHERE `id` = %s", $photo ) ) ); case 'owner': case 'name': case 'description': case 'p_order': case 'linkurl': case 'linktitle': case 'linktarget': case 'tags': case 'alt': case 'videox': case 'videoy': switch ($item) { case 'name': $value = strip_tags($value); $itemname = __('Name', 'wp-photo-album-plus'); break; case 'description': $itemname = __('Description', 'wp-photo-album-plus'); if (wppa_switch('check_balance')) { $value = str_replace(array('<br/>', '<br>'), '<br />', $value); if (balanceTags($value, true) != $value) { echo '||3||' . __('Unbalanced tags in photo description!', 'wp-photo-album-plus'); wppa_exit(); } } break; case 'p_order': $itemname = __('Photo order #', 'wp-photo-album-plus'); break; case 'owner': $usr = get_user_by('login', $value); if (!$usr) { echo '||4||' . sprintf(__('User %s does not exists', 'wp-photo-album-plus'), $value); wppa_exit(); } $value = $usr->user_login; // Correct possible case mismatch wppa_flush_upldr_cache('photoid', $photo); // Current owner wppa_flush_upldr_cache('username', $value); // New owner $itemname = __('Owner', 'wp-photo-album-plus'); break; case 'linkurl': $itemname = __('Link url', 'wp-photo-album-plus'); break; case 'linktitle': $itemname = __('Link title', 'wp-photo-album-plus'); break; case 'linktarget': $itemname = __('Link target', 'wp-photo-album-plus'); break; case 'tags': $value = wppa_sanitize_tags($value, false, true); $value = wppa_sanitize_tags(wppa_filter_iptc(wppa_filter_exif($value, $photo), $photo)); wppa_clear_taglist(); $itemname = __('Photo Tags', 'wp-photo-album-plus'); break; case 'status': wppa_clear_taglist(); wppa_flush_upldr_cache('photoid', $photo); $itemname = __('Status', 'wp-photo-album-plus'); break; case 'alt': $itemname = __('HTML Alt', 'wp-photo-album-plus'); $value = strip_tags(stripslashes($value)); break; case 'videox': $itemname = __('Video width', 'wp-photo-album-plus'); if (!wppa_is_int($value) || $value < '0') { echo '||3||' . __('Please enter an integer value >= 0', 'wp-photo-album-plus'); wppa_exit(); } break; case 'videoy': $itemname = __('Video height', 'wp-photo-album-plus'); if (!wppa_is_int($value) || $value < '0') { echo '||3||' . __('Please enter an integer value >= 0', 'wp-photo-album-plus'); wppa_exit(); } break; default: $itemname = $item; } // if ( $item == 'name' || $item == 'description' || $item == 'tags' ) wppa_index_quick_remove( 'photo', $photo ); $iret = $wpdb->query($wpdb->prepare('UPDATE ' . WPPA_PHOTOS . ' SET `' . $item . '` = %s WHERE `id` = %s', $value, $photo)); if ($item == 'name' || $item == 'description' || $item == 'tags') { wppa_index_update('photo', $photo); } if ($item == 'status' && $value != 'scheduled') { wppa_update_photo(array('id' => $photo, 'scheduledtm' => '')); } if ($item == 'status') { wppa_flush_treecounts(wppa_get_photo_item($photo, 'album')); } if ($iret !== false) { wppa_update_modified($photo); if (wppa_is_video($photo)) { echo '||0||' . sprintf(__('<b>%s</b> of video %s updated', 'wp-photo-album-plus'), $itemname, $photo); } else { echo '||0||' . sprintf(__('<b>%s</b> of photo %s updated', 'wp-photo-album-plus'), $itemname, $photo); } } else { echo '||2||' . sprintf(__('An error occurred while trying to update <b>%s</b> of photo %s', 'wp-photo-album-plus'), $itemname, $photo); echo '<br>' . __('Press CTRL+F5 and try again.', 'wp-photo-album-plus'); wppa_exit(); } break; case 'year': case 'month': case 'day': case 'hour': case 'min': $itemname = __('Schedule date/time', 'wp-photo-album-plus'); $scheduledtm = $wpdb->get_var($wpdb->prepare("SELECT `scheduledtm` FROM`" . WPPA_PHOTOS . "` WHERE `id` = %s", $photo)); if (!$scheduledtm) { $scheduledtm = wppa_get_default_scheduledtm(); } $temp = explode(',', $scheduledtm); if ($item == 'year') { $temp[0] = $value; } if ($item == 'month') { $temp[1] = $value; } if ($item == 'day') { $temp[2] = $value; } if ($item == 'hour') { $temp[3] = $value; } if ($item == 'min') { $temp[4] = $value; } $scheduledtm = implode(',', $temp); wppa_update_photo(array('id' => $photo, 'scheduledtm' => $scheduledtm, 'status' => 'scheduled')); wppa_flush_treecounts($wpdb->get_var($wpdb->prepare("SELECT `album` FROM `" . WPPA_PHOTOS . "` WHERE `id` = %s", $photo))); wppa_flush_upldr_cache('photoid', $photo); if (wppa_is_video($photo)) { echo '||0||' . sprintf(__('<b>%s</b> of video %s updated', 'wp-photo-album-plus'), $itemname, $photo); } else { echo '||0||' . sprintf(__('<b>%s</b> of photo %s updated', 'wp-photo-album-plus'), $itemname, $photo); } break; case 'custom_0': case 'custom_1': case 'custom_2': case 'custom_3': case 'custom_4': case 'custom_5': case 'custom_6': case 'custom_7': case 'custom_8': case 'custom_9': $index = substr($item, -1); $custom = wppa_get_photo_item($photo, 'custom'); if ($custom) { $custom_data = unserialize($custom); } else { $custom_data = array('', '', '', '', '', '', '', '', '', ''); } $custom_data[$index] = strip_tags($value); $custom = serialize($custom_data); wppa_update_photo(array('id' => $photo, 'custom' => $custom, 'modified' => time())); wppa_index_update('photo', $photo); echo '||0||' . sprintf(__('<b>Custom field %s</b> of photo %s updated', 'wp-photo-album-plus'), wppa_opt('custom_caption_' . $index), $photo); break; case 'file': // Check on upload error if ($_FILES['photo']['error']) { echo '||' . $_FILES['photo']['error'] . '||' . __('<b>Error during upload.</b>', 'wp-photo-album-plus'); wppa_exit(); } // Save new source wppa_save_source($_FILES['photo']['tmp_name'], wppa_get_photo_item($photo, 'filename'), wppa_get_photo_item($photo, 'album')); // Make the files $bret = wppa_make_the_photo_files($_FILES['photo']['tmp_name'], $photo, strtolower(wppa_get_ext($_FILES['photo']['name']))); if ($bret) { // Update timestamps and sizes $alb = wppa_get_photo_item($photo, 'album'); wppa_update_album(array('id' => $alb, 'modified' => time())); wppa_update_photo(array('id' => $photo, 'modified' => time(), 'thumbx' => '0', 'thumby' => '0', 'photox' => '0', 'photoy' => '0')); // Report success echo '||0||' . __('Photo files updated.', 'wp-photo-album-plus'); } else { // Report fail echo '||1||' . __('Could not update files.', 'wp-photo-album-plus'); } wppa_exit(); break; case 'stereo': $t = microtime(true); wppa_update_photo(array('id' => $photo, 'stereo' => $value)); wppa_create_stereo_images($photo); wppa_create_thumbnail($photo); $t = microtime(true) - $t; echo '||0||' . sprintf(__('Stereo mode updated in %d milliseconds', 'wp-photo-album-plus'), floor($t * 1000)); wppa_exit(); break; default: echo '||98||This update action is not implemented yet( ' . $item . ' )'; wppa_exit(); } wppa_clear_cache(); break; // The wppa-settings page calls ajax with $wppa_action == 'update-option'; // The wppa-settings page calls ajax with $wppa_action == 'update-option'; case 'update-option': // Verify that we are legally here $nonce = $_REQUEST['wppa-nonce']; if (!wp_verify_nonce($nonce, 'wppa-nonce')) { echo '||1||' . __('You do not have the rights to update settings', 'wp-photo-album-plus'); wppa_exit(); // Nonce check failed } // Initialize $old_minisize = wppa_get_minisize(); // Remember for later, maybe we do something that requires regen $option = $_REQUEST['wppa-option']; // The option to be processed $value = isset($_REQUEST['value']) ? wppa_decode($_REQUEST['value']) : ''; // The new value, may also contain & # and + $value = stripslashes($value); $value = trim($value); // Remaove surrounding spaces $alert = ''; // Init the return string data wppa('error', '0'); // $title = ''; // // If it is a font family, change all double quotes into single quotes as this destroys much more than you would like if (strpos($option, 'wppa_fontfamily_') !== false) { $value = str_replace('"', "'", $value); } $option = wppa_decode($option); // Dispatch on option if (substr($option, 0, 16) == 'wppa_iptc_label_') { $tag = substr($option, 16); $q = $wpdb->prepare("UPDATE `" . WPPA_IPTC . "` SET `description`=%s WHERE `tag`=%s AND `photo`='0'", $value, $tag); $bret = $wpdb->query($q); // Produce the response text if ($bret) { $output = '||0||' . $tag . ' updated to ' . $value . '||'; } else { $output = '||1||Failed to update ' . $tag . '||'; } echo $output; wppa_exit(); } elseif (substr($option, 0, 17) == 'wppa_iptc_status_') { $tag = substr($option, 17); $q = $wpdb->prepare("UPDATE `" . WPPA_IPTC . "` SET `status`=%s WHERE `tag`=%s AND `photo`='0'", $value, $tag); $bret = $wpdb->query($q); // Produce the response text if ($bret) { $output = '||0||' . $tag . ' updated to ' . $value . '||'; } else { $output = '||1||Failed to update ' . $tag . '||'; } echo $output; wppa_exit(); } elseif (substr($option, 0, 16) == 'wppa_exif_label_') { $tag = substr($option, 16); $q = $wpdb->prepare("UPDATE `" . WPPA_EXIF . "` SET `description`=%s WHERE `tag`=%s AND `photo`='0'", $value, $tag); $bret = $wpdb->query($q); // Produce the response text if ($bret) { $output = '||0||' . $tag . ' updated to ' . $value . '||'; } else { $output = '||1||Failed to update ' . $tag . '||'; } echo $output; wppa_exit(); } elseif (substr($option, 0, 17) == 'wppa_exif_status_') { $tag = substr($option, 17); $q = $wpdb->prepare("UPDATE `" . WPPA_EXIF . "` SET `status`=%s WHERE `tag`=%s AND `photo`='0'", $value, $tag); $bret = $wpdb->query($q); // Produce the response text if ($bret) { $output = '||0||' . $tag . ' updated to ' . $value . '||'; } else { $output = '||1||Failed to update ' . $tag . '||'; } echo $output; wppa_exit(); } elseif (substr($option, 0, 5) == 'caps-') { // Is capability setting global $wp_roles; //$R = new WP_Roles; $setting = explode('-', $option); if ($value == 'yes') { $wp_roles->add_cap($setting[2], $setting[1]); echo '||0||' . __('Capability granted', 'wp-photo-album-plus') . '||'; wppa_exit(); } elseif ($value == 'no') { $wp_roles->remove_cap($setting[2], $setting[1]); echo '||0||' . __('Capability withdrawn', 'wp-photo-album-plus') . '||'; wppa_exit(); } else { echo '||1||Invalid value: ' . $value . '||'; wppa_exit(); } } else { switch ($option) { case 'wppa_colwidth': // ?? fixed low high title wppa_ajax_check_range($value, 'auto', '100', false, __('Column width.', 'wp-photo-album-plus')); break; case 'wppa_initial_colwidth': wppa_ajax_check_range($value, false, '100', false, __('Initial width.', 'wp-photo-album-plus')); break; case 'wppa_fullsize': wppa_ajax_check_range($value, false, '100', false, __('Full size.', 'wp-photo-album-plus')); break; case 'wppa_maxheight': wppa_ajax_check_range($value, false, '100', false, __('Max height.', 'wp-photo-album-plus')); break; case 'wppa_thumbsize': wppa_ajax_check_range($value, false, '50', false, __('Thumbnail size.', 'wp-photo-album-plus')); break; case 'wppa_tf_width': wppa_ajax_check_range($value, false, '50', false, __('Thumbnail frame width', 'wp-photo-album-plus')); break; case 'wppa_tf_height': wppa_ajax_check_range($value, false, '50', false, __('Thumbnail frame height', 'wp-photo-album-plus')); break; case 'wppa_tn_margin': wppa_ajax_check_range($value, false, '0', false, __('Thumbnail Spacing', 'wp-photo-album-plus')); break; case 'wppa_min_thumbs': wppa_ajax_check_range($value, false, '0', false, __('Photocount treshold.', 'wp-photo-album-plus')); break; case 'wppa_thumb_page_size': wppa_ajax_check_range($value, false, '0', false, __('Thumb page size.', 'wp-photo-album-plus')); break; case 'wppa_smallsize': wppa_ajax_check_range($value, false, '50', false, __('Cover photo size.', 'wp-photo-album-plus')); break; case 'wppa_album_page_size': wppa_ajax_check_range($value, false, '0', false, __('Album page size.', 'wp-photo-album-plus')); break; case 'wppa_topten_count': wppa_ajax_check_range($value, false, '2', false, __('Number of TopTen photos', 'wp-photo-album-plus'), '40'); break; case 'wppa_topten_size': wppa_ajax_check_range($value, false, '32', false, __('Widget image thumbnail size', 'wp-photo-album-plus'), wppa_get_minisize()); break; case 'wppa_max_cover_width': wppa_ajax_check_range($value, false, '150', false, __('Max Cover width', 'wp-photo-album-plus')); break; case 'wppa_text_frame_height': wppa_ajax_check_range($value, false, '0', false, __('Minimal description height', 'wp-photo-album-plus')); break; case 'wppa_cover_minheight': wppa_ajax_check_range($value, false, '0', false, __('Minimal cover height', 'wp-photo-album-plus')); break; case 'wppa_head_and_text_frame_height': wppa_ajax_check_range($value, false, '0', false, __('Minimal text frame height', 'wp-photo-album-plus')); break; case 'wppa_bwidth': wppa_ajax_check_range($value, '', '0', false, __('Border width', 'wp-photo-album-plus')); break; case 'wppa_bradius': wppa_ajax_check_range($value, '', '0', false, __('Border radius', 'wp-photo-album-plus')); break; case 'wppa_box_spacing': wppa_ajax_check_range($value, '', '-20', '100', __('Box spacing', 'wp-photo-album-plus')); break; case 'wppa_popupsize': $floor = wppa_opt('thumbsize'); $temp = wppa_opt('smallsize'); if ($temp > $floor) { $floor = $temp; } wppa_ajax_check_range($value, false, $floor, wppa_opt('fullsize'), __('Popup size', 'wp-photo-album-plus')); break; case 'wppa_fullimage_border_width': wppa_ajax_check_range($value, '', '0', false, __('Fullsize border width', 'wp-photo-album-plus')); break; case 'wppa_lightbox_bordersize': wppa_ajax_check_range($value, false, '0', false, __('Lightbox Bordersize', 'wp-photo-album-plus')); break; case 'wppa_ovl_border_width': wppa_ajax_check_range($value, false, '0', '16', __('Lightbox Borderwidth', 'wp-photo-album-plus')); break; case 'wppa_ovl_border_radius': wppa_ajax_check_range($value, false, '0', '16', __('Lightbox Borderradius', 'wp-photo-album-plus')); break; case 'wppa_comment_count': wppa_ajax_check_range($value, false, '2', '40', __('Number of Comment widget entries', 'wp-photo-album-plus')); break; case 'wppa_comment_size': wppa_ajax_check_range($value, false, '32', wppa_get_minisize(), __('Comment Widget image thumbnail size', 'wp-photo-album-plus'), wppa_get_minisize()); break; case 'wppa_thumb_opacity': wppa_ajax_check_range($value, false, '0', '100', __('Opacity.', 'wp-photo-album-plus')); break; case 'wppa_cover_opacity': wppa_ajax_check_range($value, false, '0', '100', __('Opacity.', 'wp-photo-album-plus')); break; case 'wppa_star_opacity': wppa_ajax_check_range($value, false, '0', '50', __('Opacity.', 'wp-photo-album-plus')); break; // case 'wppa_filter_priority': // wppa_ajax_check_range( $value, false, wppa_opt( 'shortcode_priority' ), false, __( 'Filter priority' ,'wp-photo-album-plus' ) ); // break; // case 'wppa_shortcode_priority': // wppa_ajax_check_range( $value, false, '0', wppa_opt( 'filter_priority' ) - '1', __( 'Shortcode_priority', 'wp-photo-album-plus' ) ); // break; // case 'wppa_filter_priority': // wppa_ajax_check_range( $value, false, wppa_opt( 'shortcode_priority' ), false, __( 'Filter priority' ,'wp-photo-album-plus' ) ); // break; // case 'wppa_shortcode_priority': // wppa_ajax_check_range( $value, false, '0', wppa_opt( 'filter_priority' ) - '1', __( 'Shortcode_priority', 'wp-photo-album-plus' ) ); // break; case 'wppa_gravatar_size': wppa_ajax_check_range($value, false, '10', '256', __('Avatar size', 'wp-photo-album-plus')); break; case 'wppa_watermark_opacity': wppa_ajax_check_range($value, false, '0', '100', __('Watermark opacity', 'wp-photo-album-plus')); break; case 'wppa_watermark_opacity_text': wppa_ajax_check_range($value, false, '0', '100', __('Watermark opacity', 'wp-photo-album-plus')); break; case 'wppa_ovl_txt_lines': wppa_ajax_check_range($value, 'auto', '0', '24', __('Number of text lines', 'wp-photo-album-plus')); break; case 'wppa_ovl_opacity': wppa_ajax_check_range($value, false, '0', '100', __('Overlay opacity', 'wp-photo-album-plus')); break; case 'wppa_upload_limit_count': wppa_ajax_check_range($value, false, '0', false, __('Upload limit', 'wp-photo-album-plus')); break; case 'wppa_dislike_mail_every': wppa_ajax_check_range($value, false, '0', false, __('Notify inappropriate', 'wp-photo-album-plus')); break; case 'wppa_dislike_set_pending': wppa_ajax_check_range($value, false, '0', false, __('Dislike pending', 'wp-photo-album-plus')); break; case 'wppa_dislike_delete': wppa_ajax_check_range($value, false, '0', false, __('Dislike delete', 'wp-photo-album-plus')); break; case 'wppa_max_execution_time': wppa_ajax_check_range($value, false, '0', '900', __('Max execution time', 'wp-photo-album-plus')); break; case 'wppa_cp_points_comment': case 'wppa_cp_points_rating': case 'wppa_cp_points_upload': wppa_ajax_check_range($value, false, '0', false, __('Cube Points points', 'wp-photo-album-plus')); break; case 'wppa_jpeg_quality': wppa_ajax_check_range($value, false, '20', '100', __('JPG Image quality', 'wp-photo-album-plus')); if (wppa_cdn('admin') == 'cloudinary' && !wppa('out')) { wppa_delete_derived_from_cloudinary(); } break; case 'wppa_imgfact_count': wppa_ajax_check_range($value, false, '1', '24', __('Number of coverphotos', 'wp-photo-album-plus')); break; case 'wppa_dislike_value': wppa_ajax_check_range($value, false, '-10', '0', __('Dislike value', 'wp-photo-album-plus')); break; case 'wppa_slideshow_pagesize': wppa_ajax_check_range($value, false, '0', false, __('Slideshow pagesize', 'wp-photo-album-plus')); break; case 'wppa_pagelinks_max': wppa_ajax_check_range($value, false, '0', false, __('Max Pagelinks', 'wp-photo-album-plus')); break; case 'wppa_start_pause_symbol_size': wppa_ajax_check_range($value, false, '0', false, __('Start/pause symbol size', 'wp-photo-album-plus')); break; case 'wppa_start_pause_symbol_bradius': wppa_ajax_check_range($value, false, '0', false, __('Start/pause symbol border radius', 'wp-photo-album-plus')); break; case 'wppa_stop_symbol_size': wppa_ajax_check_range($value, false, '0', false, __('Stop symbol size', 'wp-photo-album-plus')); break; case 'wppa_stop_symbol_bradius': wppa_ajax_check_range($value, false, '0', false, __('Stop symbol border radius', 'wp-photo-album-plus')); break; case 'wppa_rating_clear': $iret1 = $wpdb->query('TRUNCATE TABLE ' . WPPA_RATING); $iret2 = $wpdb->query('UPDATE ' . WPPA_PHOTOS . ' SET mean_rating="0", rating_count="0" WHERE id > -1'); if ($iret1 !== false && $iret2 !== false) { delete_option('wppa_' . WPPA_RATING . '_lastkey'); $title = __('Ratings cleared', 'wp-photo-album-plus'); } else { $title = __('Could not clear ratings', 'wp-photo-album-plus'); $alert = $title; wppa('error', '1'); } break; case 'wppa_viewcount_clear': $iret = $wpdb->query("UPDATE `" . WPPA_PHOTOS . "` SET `views` = '0'") && $wpdb->query("UPDATE `" . WPPA_ALBUMS . "` SET `views` = '0'"); if ($iret !== false) { $title = __('Viewcounts cleared', 'wp-photo-album-plus'); } else { $title = __('Could not clear viewcounts', 'wp-photo-album-plus'); $alert = $title; wppa('error', '1'); } break; case 'wppa_iptc_clear': $iret = $wpdb->query('TRUNCATE TABLE ' . WPPA_IPTC); if ($iret !== false) { delete_option('wppa_' . WPPA_IPTC . '_lastkey'); $title = __('IPTC data cleared', 'wp-photo-album-plus'); $alert = __('Refresh this page to clear table X', 'wp-photo-album-plus'); update_option('wppa_index_need_remake', 'yes'); } else { $title = __('Could not clear IPTC data', 'wp-photo-album-plus'); $alert = $title; wppa('error', '1'); } break; case 'wppa_exif_clear': $iret = $wpdb->query('TRUNCATE TABLE ' . WPPA_EXIF); if ($iret !== false) { delete_option('wppa_' . WPPA_EXIF . '_lastkey'); $title = __('EXIF data cleared', 'wp-photo-album-plus'); $alert = __('Refresh this page to clear table XI', 'wp-photo-album-plus'); update_option('wppa_index_need_remake', 'yes'); } else { $title = __('Could not clear EXIF data', 'wp-photo-album-plus'); $alert = $title; wppa('error', '1'); } break; case 'wppa_recup': $result = wppa_recuperate_iptc_exif(); echo '||0||' . __('Recuperation performed', 'wp-photo-album-plus') . '||' . $result; wppa_exit(); break; case 'wppa_bgcolor_thumbnail': $value = trim(strtolower($value)); if (strlen($value) != '7' || substr($value, 0, 1) != '#') { wppa('error', '1'); } else { for ($i = 1; $i < 7; $i++) { if (!in_array(substr($value, $i, 1), array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'))) { wppa('error', '1'); } } } if (!wppa('error')) { $old_minisize--; } else { $alert = __('Illegal format. Please enter a 6 digit hexadecimal color value. Example: #77bbff', 'wp-photo-album-plus'); } break; case 'wppa_thumb_aspect': $old_minisize--; // Trigger regen message break; case 'wppa_rating_max': if ($value == '5' && wppa_opt('rating_max') == '10') { $rats = $wpdb->get_results('SELECT `id`, `value` FROM `' . WPPA_RATING . '`', ARRAY_A); if ($rats) { foreach ($rats as $rat) { $wpdb->query($wpdb->prepare('UPDATE `' . WPPA_RATING . '` SET `value` = %s WHERE `id` = %s', $rat['value'] / 2, $rat['id'])); } } } if ($value == '10' && wppa_opt('rating_max') == '5') { $rats = $wpdb->get_results('SELECT `id`, `value` FROM `' . WPPA_RATING . '`', ARRAY_A); if ($rats) { foreach ($rats as $rat) { $wpdb->query($wpdb->prepare('UPDATE `' . WPPA_RATING . '` SET `value` = %s WHERE `id` = %s', $rat['value'] * 2, $rat['id'])); } } } update_option('wppa_rerate_status', 'Required'); $alert .= __('You just changed a setting that requires the recalculation of ratings.', 'wp-photo-album-plus'); $alert .= ' ' . __('Please run the appropriate action in Table VIII.', 'wp-photo-album-plus'); wppa_update_option($option, $value); wppa('error', '0'); break; case 'wppa_newphoto_description': if (wppa_switch('check_balance') && balanceTags($value, true) != $value) { $alert = __('Unbalanced tags in photo description!', 'wp-photo-album-plus'); wppa('error', '1'); } else { wppa_update_option($option, $value); wppa('error', '0'); $alert = ''; wppa_index_compute_skips(); } break; case 'wppa_keep_source': $dir = wppa_opt('source_dir'); if (!is_dir($dir)) { @mkdir($dir); } if (!is_dir($dir) || !is_writable($dir)) { wppa('error', '1'); $alert = sprintf(__('Unable to create or write to %s', 'wp-photo-album-plus'), $dir); } break; case 'wppa_source_dir': $olddir = wppa_opt('source_dir'); $value = rtrim($value, '/'); if (strpos($value . '/', WPPA_UPLOAD_PATH . '/') !== false) { wppa('error', '1'); $alert = sprintf(__('Source can not be inside the wppa folder.', 'wp-photo-album-plus')); } else { $dir = $value; if (!is_dir($dir)) { @mkdir($dir); } if (!is_dir($dir) || !is_writable($dir)) { wppa('error', '1'); $alert = sprintf(__('Unable to create or write to %s', 'wp-photo-album-plus'), $dir); } else { @rmdir($olddir); // try to remove when empty } } break; case 'wppa_newpag_content': if (strpos($value, 'w#album') === false) { $alert = __('The content must contain w#album', 'wp-photo-album-plus'); wppa('error', '1'); } break; case 'wppa_gpx_shortcode': if (strpos($value, 'w#lat') === false || strpos($value, 'w#lon') === false) { $alert = __('The content must contain w#lat and w#lon', 'wp-photo-album-plus'); wppa('error', '1'); } break; case 'wppa_i_responsive': if ($value == 'yes') { wppa_update_option('wppa_colwidth', 'auto'); } if ($value == 'no') { wppa_update_option('wppa_colwidth', '640'); } break; case 'wppa_i_downsize': if ($value == 'yes') { wppa_update_option('wppa_resize_on_upload', 'yes'); if (wppa_opt('resize_to') == '0') { wppa_update_option('wppa_resize_to', '1024x768'); } } if ($value == 'no') { wppa_update_option('wppa_resize_on_upload', 'no'); } break; case 'wppa_i_source': if ($value == 'yes') { wppa_update_option('wppa_keep_source_admin', 'yes'); wppa_update_option('wppa_keep_source_frontend', 'yes'); } if ($value == 'no') { wppa_update_option('wppa_keep_source_admin', 'no'); wppa_update_option('wppa_keep_source_frontend', 'no'); } break; case 'wppa_i_userupload': if ($value == 'yes') { wppa_update_option('wppa_user_upload_on', 'yes'); wppa_update_option('wppa_user_upload_login', 'yes'); wppa_update_option('wppa_owner_only', 'yes'); wppa_update_option('wppa_upload_moderate', 'yes'); wppa_update_option('wppa_upload_edit', 'yes'); wppa_update_option('wppa_upload_notify', 'yes'); wppa_update_option('wppa_grant_an_album', 'yes'); $grantparent = wppa_opt('grant_parent'); if (!wppa_album_exists($grantparent)) { $id = wppa_create_album_entry(array('name' => __('Members', 'wp-photo-album-plus'), 'description' => __('Parent of the member albums', 'wp-photo-album-plus'), 'a_parent' => '-1', 'upload_limit' => '0/0')); if ($id) { wppa_index_add('album', $id); wppa_update_option('wppa_grant_parent', $id); } $my_post = array('post_title' => __('Members', 'wp-photo-album-plus'), 'post_content' => '[wppa type="content" album="' . $id . '"][/wppa]', 'post_status' => 'publish', 'post_type' => 'page'); $pagid = wp_insert_post($my_post); } wppa_update_option('wppa_alt_is_restricted', 'yes'); wppa_update_option('wppa_link_is_restricted', 'yes'); wppa_update_option('wppa_covertype_is_restricted', 'yes'); wppa_update_option('wppa_porder_restricted', 'yes'); } if ($value == 'no') { wppa_update_option('wppa_user_upload_on', 'no'); } break; case 'wppa_i_rating': if ($value == 'yes') { wppa_update_option('wppa_rating_on', 'yes'); } if ($value == 'no') { wppa_update_option('wppa_rating_on', 'no'); } break; case 'wppa_i_comment': if ($value == 'yes') { wppa_update_option('wppa_show_comments', 'yes'); wppa_update_option('wppa_comment_moderation', 'all'); wppa_update_option('wppa_comment_notify', 'admin'); } if ($value == 'no') { wppa_update_option('wppa_show_comments', 'no'); } break; case 'wppa_i_share': if ($value == 'yes') { wppa_update_option('wppa_share_on', 'yes'); } if ($value == 'no') { wppa_update_option('wppa_share_on', 'no'); } break; case 'wppa_i_iptc': if ($value == 'yes') { wppa_update_option('wppa_show_iptc', 'yes'); wppa_update_option('wppa_save_iptc', 'yes'); } if ($value == 'no') { wppa_update_option('wppa_show_iptc', 'no'); wppa_update_option('wppa_save_iptc', 'no'); } break; case 'wppa_i_exif': if ($value == 'yes') { wppa_update_option('wppa_show_exif', 'yes'); wppa_update_option('wppa_save_exif', 'yes'); } if ($value == 'no') { wppa_update_option('wppa_show_exif', 'no'); wppa_update_option('wppa_save_exif', 'no'); } break; case 'wppa_i_gpx': if ($value == 'yes') { $custom_content = wppa_opt('custom_content'); if (strpos($custom_content, 'w#location') === false) { $custom_content = $custom_content . ' w#location'; wppa_update_option('wppa_custom_content', $custom_content); } if (!wppa_switch('custom_on')) { wppa_update_option('wppa_custom_on', 'yes'); } if (wppa_opt('gpx_implementation') == 'none') { wppa_update_option('wppa_gpx_implementation', 'wppa-plus-embedded'); } } break; case 'wppa_i_fotomoto': if ($value == 'yes') { $custom_content = wppa_opt('custom_content'); if (strpos($custom_content, 'w#fotomoto') === false) { $custom_content = 'w#fotomoto ' . $custom_content; wppa_update_option('wppa_custom_content', $custom_content); } if (!wppa_switch('custom_on')) { wppa_update_option('wppa_custom_on', 'yes'); } wppa_update_option('wppa_fotomoto_on', 'yes'); wppa_update_option('wppa_custom_on', 'yes'); } break; case 'wppa_i_video': if ($value == 'yes') { wppa_update_option('wppa_enable_video', 'yes'); } else { wppa_update_option('wppa_enable_video', 'no'); } break; case 'wppa_i_audio': if ($value == 'yes') { wppa_update_option('wppa_enable_audio', 'yes'); } else { wppa_update_option('wppa_enable_audio', 'no'); } break; case 'wppa_i_done': $value = 'done'; break; case 'wppa_search_tags': case 'wppa_search_cats': case 'wppa_search_comments': update_option('wppa_index_need_remake', 'yes'); break; case 'wppa_blacklist_user': // Does user exist? $value = trim($value); $user = get_user_by('login', $value); // seems to be case insensitive if ($user && $user->user_login === $value) { $wpdb->query($wpdb->prepare("UPDATE `" . WPPA_PHOTOS . "` SET `status` = 'pending' WHERE `owner` = %s", $value)); $black_listed_users = get_option('wppa_black_listed_users', array()); if (!in_array($value, $black_listed_users)) { $black_listed_users[] = $value; update_option('wppa_black_listed_users', $black_listed_users); } $alert = esc_js(sprintf(__('User %s has been blacklisted.', 'wp-photo-album-plus'), $value)); } else { $alert = esc_js(sprintf(__('User %s does not exist.', 'wp-photo-album-plus'), $value)); } $value = ''; break; case 'wppa_un_blacklist_user': $wpdb->query($wpdb->prepare("UPDATE `" . WPPA_PHOTOS . "` SET `status` = 'publish' WHERE `owner` = %s", $value)); $black_listed_users = get_option('wppa_black_listed_users', array()); if (in_array($value, $black_listed_users)) { foreach (array_keys($black_listed_users) as $usr) { if ($black_listed_users[$usr] == $value) { unset($black_listed_users[$usr]); } } update_option('wppa_black_listed_users', $black_listed_users); } $value = '0'; break; case 'wppa_fotomoto_on': if ($value == 'yes') { $custom_content = wppa_opt('custom_content'); if (strpos($custom_content, 'w#fotomoto') === false) { $custom_content = 'w#fotomoto ' . $custom_content; wppa_update_option('wppa_custom_content', $custom_content); $alert = __('The content of the Custom box has been changed to display the Fotomoto toolbar.', 'wp-photo-album-plus') . ' '; } if (!wppa_switch('custom_on')) { wppa_update_option('wppa_custom_on', 'yes'); $alert .= __('The display of the custom box has been enabled', 'wp-photo-album-plus'); } } break; case 'wppa_gpx_implementation': if ($value != 'none') { $custom_content = wppa_opt('custom_content'); if (strpos($custom_content, 'w#location') === false) { $custom_content = $custom_content . ' w#location'; wppa_update_option('wppa_custom_content', $custom_content); $alert = __('The content of the Custom box has been changed to display maps.', 'wp-photo-album-plus') . ' '; } if (!wppa_switch('custom_on')) { wppa_update_option('wppa_custom_on', 'yes'); $alert .= __('The display of the custom box has been enabled', 'wp-photo-album-plus'); } } break; case 'wppa_regen_thumbs_skip_one': $last = get_option('wppa_regen_thumbs_last', '0'); $skip = $last + '1'; update_option('wppa_regen_thumbs_last', $skip); break; case 'wppa_remake_skip_one': $last = get_option('wppa_remake_last', '0'); $skip = $last + '1'; update_option('wppa_remake_last', $skip); break; case 'wppa_errorlog_purge': @unlink(WPPA_CONTENT_PATH . '/wppa-depot/admin/error.log'); break; case 'wppa_pl_dirname': $value = wppa_sanitize_file_name($value); $value = trim($value, ' /'); if (!$value) { wppa('error', '714'); wppa_out(__('This value can not be empty', 'wp-photo-album-plus')); } else { wppa_create_pl_htaccess($value); } break; case 'wppa_new_tag_value': $value = wppa_sanitize_tags($value, false, true); break; case 'wppa_up_tagselbox_content_1': case 'wppa_up_tagselbox_content_2': case 'wppa_up_tagselbox_content_3': $value = wppa_sanitize_tags($value); break; case 'wppa_wppa_set_shortcodes': $value = str_replace(' ', '', $value); break; case 'wppa_enable_video': // if off: set all statusses of videos to pending break; default: wppa('error', '0'); $alert = ''; } } if (wppa('error')) { if (!$title) { $title = sprintf(__('Failed to set %s to %s', 'wp-photo-album-plus'), $option, $value); } if (!$alert) { $alert .= wppa('out'); } } else { wppa_update_option($option, $value); if (!$title) { $title = sprintf(__('Setting %s updated to %s', 'wp-photo-album-plus'), $option, $value); } } // Save possible error $error = wppa('error'); // Something to do after changing the setting? wppa_initialize_runtime(true); // force reload new values // .htaccess wppa_create_wppa_htaccess(); // Thumbsize $new_minisize = wppa_get_minisize(); if ($old_minisize != $new_minisize) { update_option('wppa_regen_thumbs_status', 'Required'); $alert .= __('You just changed a setting that requires the regeneration of thumbnails.', 'wp-photo-album-plus'); $alert .= ' ' . __('Please run the appropriate action in Table VIII.', 'wp-photo-album-plus'); } // Produce the response text $output = '||' . $error . '||' . esc_attr($title) . '||' . esc_js($alert); echo $output; wppa_clear_cache(); wppa_exit(); break; // End update-option // End update-option case 'maintenance': $slug = $_POST['slug']; $nonce = $_REQUEST['wppa-nonce']; if (!wp_verify_nonce($nonce, 'wppa-nonce')) { echo 'Security check failure||' . $slug . '||Error||0'; wppa_exit(); } echo wppa_do_maintenance_proc($slug); wppa_exit(); break; case 'maintenancepopup': $slug = $_POST['slug']; $nonce = $_REQUEST['wppa-nonce']; if (!wp_verify_nonce($nonce, 'wppa-nonce')) { echo 'Security check failure||' . $slug . '||Error||0'; wppa_exit(); } echo wppa_do_maintenance_popup($slug); wppa_exit(); break; case 'do-fe-upload': if (is_admin()) { require_once 'wppa-non-admin.php'; } wppa_user_upload(); echo wppa('out'); wppa_exit(); break; case 'sanitizetags': $tags = isset($_GET['tags']) ? $_GET['tags'] : ''; $album = isset($_GET['album']) ? $_GET['album'] : '0'; $deftags = $album ? wppa_get_album_item($album, 'default_tags') : ''; $tags = $deftags ? $tags . ',' . $deftags : $tags; echo wppa_sanitize_tags($tags, false, true); wppa_exit(); break; case 'destroyalbum': $album = isset($_GET['album']) ? $_GET['album'] : '0'; if (!$album) { _e('Missing album id', 'wp-photo-album-plus'); wppa_exit(); } $nonce = isset($_GET['nonce']) ? $_GET['nonce'] : ''; if (!$nonce || !wp_verify_nonce($nonce, 'wppa_nonce_' . $album)) { echo 'Security check failure #798'; wppa_exit(); } // May I? $imay = true; if (!wppa_switch('user_destroy_on')) { $may = false; } if (wppa_switch('user_create_login')) { if (!is_user_logged_in()) { $may = false; } // Must login } if (!wppa_have_access($album)) { $may = false; // No album access } if (wppa_is_user_blacklisted()) { $may = false; } if (!$imay) { _e('You do not have the rights to delete this album', 'wp-photo-album-plus'); wppa_exit(); } // I may require_once 'wppa-album-admin-autosave.php'; wppa_del_album($album, ''); wppa_exit(); break; default: // Unimplemented $wppa-action die('-1'); } wppa_exit(); }
function _wppa_sidebar_page_options() { global $wpdb; $options_error = false; if (isset($_GET['walbum'])) { $walbum = wppa_walbum_sanitize($_GET['walbum']); wppa_update_option('wppa_widget_album', $walbum); } if (isset($_POST['wppa-set-submit'])) { check_admin_referer('$wppa_nonce', WPPA_NONCE); if (isset($_POST['wppa-widgettitle'])) { wppa_update_option('wppa_widgettitle', $_POST['wppa-widgettitle']); } if (isset($_POST['wppa-potd-align'])) { wppa_update_option('wppa_potd_align', $_POST['wppa-potd-align']); } if (isset($_POST['wppa-widget-albums'])) { wppa_update_option('wppa_widget_album', wppa_walbum_sanitize($_POST['wppa-widget-albums'])); } if (isset($_POST['wppa-widget-photo'])) { wppa_update_option('wppa_widget_photo', $_POST['wppa-widget-photo']); } if (isset($_POST['wppa-widget-method'])) { wppa_update_option('wppa_widget_method', $_POST['wppa-widget-method']); } if (isset($_POST['wppa-widget-period'])) { wppa_update_option('wppa_widget_period', $_POST['wppa-widget-period']); } if (isset($_POST['wppa-widget-subtitle'])) { wppa_update_option('wppa_widget_subtitle', $_POST['wppa-widget-subtitle']); } if (isset($_POST['wppa-widget-linkpage'])) { wppa_update_option('wppa_widget_linkpage', $_POST['wppa-widget-linkpage']); } if (isset($_POST['wppa-widget-linkurl'])) { wppa_update_option('wppa_widget_linkurl', $_POST['wppa-widget-linkurl']); } if (isset($_POST['wppa-widget-linktitle'])) { wppa_update_option('wppa_widget_linktitle', $_POST['wppa-widget-linktitle']); } if (isset($_POST['wppa-widget-linktype'])) { wppa_update_option('wppa_widget_linktype', $_POST['wppa-widget-linktype']); } if (wppa_check_numeric($_POST['wppa-potd-widget-width'], '100', __('Widget Photo Width.'))) { wppa_update_option('wppa_potd_widget_width', $_POST['wppa-potd-widget-width']); } else { $options_error = true; } if (!$options_error) { wppa_update_message(__('Changes Saved. Don\'t forget to activate the widget!', 'wppa')); } } wppa_initialize_runtime('force'); ?> <div class="wrap"> <?php $iconurl = WPPA_URL . '/images/settings32.png'; ?> <div id="icon-album" class="icon32" style="background: transparent url(<?php echo $iconurl; ?> ) no-repeat"> <br /> </div> <h2><?php _e('Photo of the Day Widget Settings', 'wppa'); ?> </h2> <form action="<?php echo wppa_dbg_url(get_admin_url() . 'admin.php?page=wppa_photo_of_the_day'); ?> " method="post"> <?php wp_nonce_field('$wppa_nonce', WPPA_NONCE); ?> <table class="form-table wppa-table wppa-photo-table"> <tbody> <tr valign="top"> <th scope="row"> <label ><?php _e('Widget Title:', 'wppa'); ?> </label> </th> <td> <input type="text" name="wppa-widgettitle" id="wppa-widgettitle" value="<?php echo wppa_opt('widgettitle'); ?> " /> <span class="description"><br/><?php _e('Enter/modify the title for the widget. This is a default and can be overriden at widget activation.', 'wppa'); ?> </span> </td> </tr> <tr valign="top"> <th scope="row"> <label ><?php _e('Widget Photo Width:', 'wppa'); ?> </label> </th> <td> <input type="text" name="wppa-potd-widget-width" id="wppa-potd-widget-width" value="<?php echo wppa_opt('potd_widget_width'); ?> " style="width: 50px;" /> <?php _e('pixels.', 'wppa'); echo ' '; _e('Horizontal alignment:', 'wppa'); ?> <select name="wppa-potd-align" id="wppa-potd-align"> <?php $ali = wppa_opt('potd_align'); ?> <?php $sel = 'selected="selected"'; ?> <option value="none" <?php if ($ali == 'none') { echo $sel; } ?> ><?php _e('--- none ---', 'wppa'); ?> </option> <option value="left" <?php if ($ali == 'left') { echo $sel; } ?> ><?php _e('left', 'wppa'); ?> </option> <option value="center" <?php if ($ali == 'center') { echo $sel; } ?> ><?php _e('center', 'wppa'); ?> </option> <option value="right" <?php if ($ali == 'right') { echo $sel; } ?> ><?php _e('right', 'wppa'); ?> </option> </select> <span class="description"><br/><?php _e('Enter the desired display width and alignment of the photo in the sidebar.', 'wppa'); ?> </span> </td> </tr> <tr valign="top"> <th scope="row"> <label ><?php _e('Use album(s):', 'wppa'); ?> </label> </th> <td> <script type="text/javascript"> /* <![CDATA[ */ function wppaCheckWa() { document.getElementById('wppa-spin').style.visibility = 'visible'; document.getElementById('wppa-upd').style.visibility = 'hidden'; var album = document.getElementById('wppa-wa').value; if ( album != 'all' && album != 'sep' && album != 'all-sep' && album != 'topten' && album != 'clr' ) album = document.getElementById('wppa-was').value + ',' + album; var url = "<?php echo wppa_dbg_url(get_admin_url() . 'admin.php?page=wppa_photo_of_the_day'); ?> &walbum=" + album; document.location.href = url; } /* ]]> */ </script> <?php _e('Select:', 'wppa'); ?> <select name="wppa-widget-album" id="wppa-wa" onchange="wppaCheckWa()" ><?php echo wppa_walbum_select(wppa_opt('widget_album')); ?> </select> <img id="wppa-spin" src="<?php echo wppa_get_imgdir(); ?> wpspin.gif" style="visibility:hidden;"/> <?php _e('Or Edit:', 'wppa'); ?> <input type="text" name="wppa-widget-albums" id="wppa-was" value="<?php echo wppa_opt('widget_album'); ?> " /> <input class="button-primary" name="wppa-upd" id="wppa-upd" value="<?php _e('Update thumbnails', 'wppa'); ?> " onclick="wppaCheckWa()" /> <span class="description"><br/> <?php _e('Select or edit the album(s) you want to use the photos of for the widget.', 'wppa'); ?> <br /> <?php _e('If you want a <b>- special -</b> selection or get rid of it, you may need to use <b>- start over -</b> first.', 'wppa'); ?> </span> </td> </tr> <tr valign="top"> <th scope="row"> <label ><?php _e('Display method:', 'wppa'); ?> </label> </th> <td> <?php $sel = 'selected="selected"'; ?> <?php $method = wppa_opt('widget_method'); ?> <select name="wppa-widget-method" id="wppa-wm" onchange="wppaCheckWidgetMethod()" > <option value="1" <?php if ($method == '1') { echo $sel; } ?> ><?php _e('Fixed photo', 'wppa'); ?> </option> <option value="2" <?php if ($method == '2') { echo $sel; } ?> ><?php _e('Random', 'wppa'); ?> </option> <option value="3" <?php if ($method == '3') { echo $sel; } ?> ><?php _e('Last upload', 'wppa'); ?> </option> <option value="4" <?php if ($method == '4') { echo $sel; } ?> ><?php _e('Change every', 'wppa'); ?> </option> </select> <?php $period = wppa_opt('widget_period'); ?> <select name="wppa-widget-period" id="wppa-wp" > <option value="0" <?php if ($period == '0') { echo $sel; } ?> ><?php _e('pageview.', 'wppa'); ?> </option> <option value="1" <?php if ($period == '1') { echo $sel; } ?> ><?php _e('hour.', 'wppa'); ?> </option> <option value="24" <?php if ($period == '24') { echo $sel; } ?> ><?php _e('day.', 'wppa'); ?> </option> <option value="168" <?php if ($period == '168') { echo $sel; } ?> ><?php _e('week.', 'wppa'); ?> </option> <option value="736" <?php if ($period == '736') { echo $sel; } ?> ><?php _e('month.', 'wppa'); ?> </option> <option value="day-of-week" <?php if ($period == 'day-of-week') { echo $sel; } ?> ><?php _e('day of week is order#', 'wppa'); ?> </option> <option value="day-of-month" <?php if ($period == 'day-of-month') { echo $sel; } ?> ><?php _e('day of month is order#', 'wppa'); ?> </option> </select> <span class="description"><br/><?php _e('Select how the widget should display.', 'wppa'); ?> </span> </td> </tr> <?php $linktype = wppa_opt('widget_linktype'); if ($linktype != 'custom') { ?> <tr> <th scope="row"> <label ><?php _e('Link to:', 'wppa'); ?> </label> </th> <td> <?php _e('Links are set on the <b>Photo Albums -> Settings</b> screen.', 'wppa'); ?> </td> </tr> <?php } else { ?> <tr class="wppa-wlu" > <th scope="row"> <label ><?php _e('Link to:', 'wppa'); ?> </label> </th> <td> <?php _e('Title:', 'wppa'); ?> <input type="text" name="wppa-widget-linktitle" id="wppa-widget-linktitle" value="<?php echo wppa_opt('widget_linktitle'); ?> "style="width:20%" /> <?php _e('Url:', 'wppa'); ?> <input type="text" name="wppa-widget-linkurl" id="wppa-widget-linkurl" value="<?php echo wppa_opt('widget_linkurl'); ?> " style="width:50%" /> <span class="description"><br/><?php _e('Enter the title and the url. Do\'nt forget the HTTP://', 'wppa'); ?> </span> </td> </tr> <?php } ?> <!--<script type="text/javascript">wppaCheckWidgetLink()</script>--> <tr> <th scope="row"> <label ><?php _e('Subtitle:', 'wppa'); ?> </label> </th> <td> <?php $subtit = wppa_opt('widget_subtitle'); ?> <select name="wppa-widget-subtitle" id="wppa-st" onchange="wppaCheckWidgetSubtitle()" > <option value="none" <?php if ($subtit == 'none') { echo $sel; } ?> ><?php _e('--- none ---', 'wppa'); ?> </option> <option value="name" <?php if ($subtit == 'name') { echo $sel; } ?> ><?php _e('Photo Name', 'wppa'); ?> </option> <option value="desc" <?php if ($subtit == 'desc') { echo $sel; } ?> ><?php _e('Description', 'wppa'); ?> </option> <option value="owner" <?php if ($subtit == 'owner') { echo $sel; } ?> ><?php _e('Owner', 'wppa'); ?> </option> </select> <span class="description"><br/><?php _e('Select the content of the subtitle.', 'wppa'); ?> </span> </td> </tr> </tbody> </table> <p> <input type="submit" class="button-primary" name="wppa-set-submit" value="<?php _e('Save Changes', 'wppa'); ?> " /> </p> <?php $alb = wppa_opt('widget_album'); $photos = wppa_get_widgetphotos($alb); if (empty($photos)) { echo '<p>' . __('No photos yet in this album.', 'wppa') . '</p>'; } else { $curid = wppa_opt('widget_photo'); $wi = wppa_get_minisize() + 24; $hi = $wi + 48; // Process photos foreach ($photos as $photo) { $id = $photo['id']; // Open container div echo '<div' . ' class="photoselect"' . ' style="' . 'width:' . wppa_opt('widget_width') . 'px;' . 'height:' . $hi . 'px;' . 'overflow:hidden;' . '" >'; // The image if a video if (wppa_is_video($id)) { echo wppa_get_video_html(array('id' => $id, 'style' => 'width:' . wppa_opt('widget_width') . 'px;')); } else { echo '<img' . ' src=" ' . wppa_fix_poster_ext(wppa_get_thumb_url($id), $id) . '"' . ' style="' . 'width:' . wppa_opt('widget_width') . 'px;' . '"' . ' alt="' . $photo['name'] . '" />'; // Audio ? if (wppa_has_audio($id)) { echo wppa_get_audio_html(array('id' => $id, 'style' => 'width:' . wppa_opt('widget_width') . 'px;' . 'position:relative;' . 'bottom:' . (wppa_get_audio_control_height() + 4) . 'px;')); } } ?> <input type="radio" name="wppa-widget-photo" id="wppa-widget-photo<?php echo $id; ?> " value="<?php echo $id; ?> " <?php if ($id == $curid) { echo 'checked="checked"'; } ?> /> <div class="clear"></div> <h4 style="position: absolute; top:<?php echo $wi - 12; ?> px; font-size:11px; overflow:hidden;"><?php echo wppa_qtrans(stripslashes($photo['name'])); ?> </h4> <h6 style="position: absolute; top:<?php echo $wi + 6; ?> px; font-size:9px; line-height:10px;"><?php echo wppa_qtrans(stripslashes($photo['description'])); ?> </h6> <h5 style="position: absolute; top:<?php echo $wi + 24; ?> px; font-size:9px; line-height:10px;"><?php echo '(#' . $photo['p_order'] . ')'; ?> </h5> </div><?php } echo '<div class="clear"></div>'; } ?> <script type="text/javascript">wppaCheckWidgetMethod();</script> <script type="text/javascript">wppaCheckWidgetSubtitle();</script> <br /> <p> <input type="submit" class="button-primary" name="wppa-set-submit" value="<?php _e('Save Changes', 'wppa'); ?> " /> </p> </form> </div> <?php }
function wppa_fix_source_path() { if (strpos(wppa_opt('source_dir'), ABSPATH) === 0) { return; } // Nothing to do here $wp_content = trim(str_replace(home_url(), '', content_url()), '/'); // The source path should be: ( default ) WPPA_ABSPATH.WPPA_UPLOAD.'/wppa-source', // Or at least below WPPA_ABSPATH if (strpos(wppa_opt('source_dir'), WPPA_ABSPATH) === false) { if (strpos(wppa_opt('source_dir'), $wp_content) !== false) { // Its below wp-content $temp = explode($wp_content, wppa_opt('source_dir')); $temp['0'] = WPPA_ABSPATH; wppa_update_option('wppa_source_dir', implode($wp_content, $temp)); wppa_log('Fix', 'Sourcepath set to ' . wppa_opt('source_dir')); } else { // Give up, set to default wppa_update_option('wppa_source_dir', WPPA_ABSPATH . WPPA_UPLOAD . '/wppa-source'); wppa_log('Fix', 'Sourcepath set to default.'); } } }
function _wppa_comment_admin() { global $wpdb; $continue = true; // Check input wppa_vfy_arg('tab', true); wppa_vfy_arg('edit_id'); wppa_vfy_arg('wppa-page'); wppa_vfy_arg('commentid'); wppa_vfy_arg('delete_id'); if (isset($_GET['tab'])) { if ($_GET['tab'] == 'edit') { $id = $_GET['edit_id']; $comment = $wpdb->get_row($wpdb->prepare("SELECT * FROM " . WPPA_COMMENTS . " WHERE id = %s LIMIT 1", $id), ARRAY_A); if ($comment) { ?> <div class="wrap"> <?php $iconurl = WPPA_URL . '/img/comment.png'; ?> <div id="icon-album" class="icon32" style="background: transparent url(<?php echo $iconurl; ?> ) no-repeat"> <br /> </div> <h2><?php _e('Photo Albums -> Edit Comment', 'wp-photo-album-plus'); ?> </h2> <?php $action = wppa_dbg_url(get_admin_url() . 'admin.php?page=wppa_manage_comments'); if (isset($_GET['wppa-page'])) { $action .= '&compage=' . strval(intval($_GET['wppa-page'])); } if (isset($_GET['commentid'])) { $action .= '&commentid=' . strval(intval($_GET['commentid'])); } ?> <form action="<?php echo $action; ?> " method="post"> <?php wp_nonce_field('$wppa_nonce', WPPA_NONCE); ?> <input type="hidden" name="edit_comment" value="<?php echo $comment['id']; ?> " /> <table class="form-table albumtable"> <tbody> <tr style="vertical-align:top" > <th> <?php $photo = $wpdb->get_row($wpdb->prepare("SELECT * FROM " . WPPA_PHOTOS . " WHERE id = %s", $comment['photo']), "ARRAY_A"); ?> <?php $url = wppa_fix_poster_ext(wppa_get_thumb_url($comment['photo']), $comment['photo']); ?> <img src="<?php echo $url; ?> " /> </th> <td> <?php echo __($photo['name']) . '<br/><br/>' . __(stripslashes($photo['description'])); ?> </td> </tr> <tr> <th scope="row"><label ><?php _e('Photo:', 'wp-photo-album-plus'); ?> </label></th> <td><?php echo $comment['photo']; ?> </td> </tr> <tr> <th scope="row"><label ><?php _e('Album:', 'wp-photo-album-plus'); ?> </label></th> <td><?php echo wppa_get_album_name($photo['album']); ?> </td> </tr> <tr> <th scope="row"><label ><?php _e('User:'******'wp-photo-album-plus'); ?> </label></th> <td><input style="width:300px;" type="text" name="user" value="<?php echo $comment['user']; ?> " /></td> </tr> <tr> <th scope="row"><label ><?php _e('Email:', 'wp-photo-album-plus'); ?> </label></th> <td><input style="width:300px;" type="text" name="email" value="<?php echo $comment['email']; ?> " /></td> </tr> <tr> <th scope="row"><label><?php _e('Comment:', 'wp-photo-album-plus'); ?> </label></th> <td><textarea style="width:300px; height:150px;" name="comment"><?php echo esc_textarea(stripslashes($comment['comment'])); ?> </textarea></td> </tr> </tbody> </table> <p> <input type="submit" class="button-primary" name="wppa_submit" value="<?php _e('Save Changes', 'wp-photo-album-plus'); ?> " /> </p> </form> <?php } $continue = false; } if ($_GET['tab'] == 'delete') { $id = strval(intval($_GET['delete_id'])); $photo = $wpdb->get_var($wpdb->prepare("SELECT `photo` FROM `" . WPPA_COMMENTS . "` WHERE `id` = %s", $id)); $iret = $wpdb->query($wpdb->prepare("DELETE FROM `" . WPPA_COMMENTS . "` WHERE `id` = %s LIMIT 1", $id)); if ($iret !== false) { if (wppa_switch('search_comments')) { wppa_index_update('photo', $photo); } wppa_update_message(__('Comment deleted', 'wp-photo-album-plus')); } else { wppa_error_message('Error deleting comment'); } $continue = true; } } if ($continue) { // Update anything or do bulkaction if (isset($_POST['wppa_submit'])) { // Security check check_admin_referer('$wppa_nonce', WPPA_NONCE); // Updates $iret = true; if (isset($_POST['wppa_comadmin_show'])) { wppa_update_option('wppa_comadmin_show', $_POST['wppa_comadmin_show']); } if (isset($_POST['wppa_comadmin_linkpage'])) { wppa_update_option('wppa_comadmin_linkpage', $_POST['wppa_comadmin_linkpage']); } if (isset($_POST['wppa_comadmin_order'])) { wppa_update_option('wppa_comadmin_order', $_POST['wppa_comadmin_order']); } if (isset($_POST['edit_comment'])) { $iret = wppa_edit_comment($_POST['edit_comment']); } // Bulk actions if (isset($_POST['bulkaction'])) { switch ($_POST['bulkaction']) { case 'approveall': $coms_to_proc = $wpdb->get_results("SELECT `id` FROM `" . WPPA_COMMENTS . "` WHERE status = 'pending'", ARRAY_A); $query = "UPDATE " . WPPA_COMMENTS . " SET status = 'approved' WHERE status = 'pending'"; if ($wpdb->query($query) === false) { wppa_error_message(__('Could not bulk update status', 'wp-photo-album-plus')); $iret = false; } else { if ($coms_to_proc) { foreach ($coms_to_proc as $item) { wppa_send_comment_approved_email($item['id']); } } $iret = true; } break; case 'spamall': $query = "UPDATE " . WPPA_COMMENTS . " SET status = 'spam' WHERE status = 'pending'"; if ($wpdb->query($query) === false) { wppa_error_message(__('Could not bulk update status', 'wp-photo-album-plus')); $iret = false; } else { $iret = true; } break; case 'delspam': $query = "DELETE FROM " . WPPA_COMMENTS . " WHERE status = 'spam'"; if ($wpdb->query($query) === false) { wppa_error_message(__('Could not bulk delete spam', 'wp-photo-album-plus')); $iret = false; } break; } } if ($iret) { wppa_update_message(__('Changes Saved', 'wp-photo-album-plus')); } // Clear (super)cache wppa_clear_cache(); } // Submit // Delete trash $query = "DELETE FROM " . WPPA_COMMENTS . " WHERE status = 'trash'"; $wpdb->query($query); // Initialize normal display $wppa_comadmin_linkpage = get_option('wppa_comadmin_linkpage', '0'); if ($wppa_comadmin_linkpage) { $exists = $wpdb->get_var("SELECT `post_title` FROM `" . $wpdb->posts . "` WHERE `ID` = " . $wppa_comadmin_linkpage); if (!$exists) { $wppa_comadmin_linkpage = '0'; update_option('wppa_comadmin_linkpage', '0'); } } $moderating = isset($_REQUEST['commentid']); ?> <div class="wrap"> <?php $iconurl = WPPA_URL . '/img/comment.png'; ?> <div id="icon-album" class="icon32" style="background: transparent url(<?php echo $iconurl; ?> ) no-repeat"> <br /> </div> <h2> <?php if ($moderating) { _e('Photo Albums -> Moderate Comment', 'wp-photo-album-plus'); } else { _e('Photo Albums -> Comment admin', 'wp-photo-album-plus'); } ?> </h2> <?php if (!wppa_switch('show_comments')) { _e('<h3>The Comment system is not activated</h3><p>To activate: check Table II item 18 on the <b>Photo Albums -> Settings</b> screen and press <b>Save Changes</b>', 'wp-photo-album-plus'); } ?> <?php if (!$moderating) { ?> <!-- Statistics --> <table> <tbody> <tr> <td><h3 style="margin:0; color:#777777;"><?php _e('Total:', 'wp-photo-album-plus'); ?> </h3></td> <td><h3 style="margin:0;"><?php $count = $wpdb->get_var("SELECT COUNT(*) FROM `" . WPPA_COMMENTS . "`"); echo $count; ?> </h3></td> </tr> <tr> <td><h3 style="margin:0; color:green;"><?php _e('Approved:', 'wp-photo-album-plus'); ?> </h3></td> <td><h3 style="margin:0;"><?php $count = $wpdb->get_var("SELECT COUNT(*) FROM `" . WPPA_COMMENTS . "` WHERE `status` = 'approved'"); echo $count; ?> </h3></td> </tr> <tr> <td><h3 style="margin:0; color:#e66f00;"><?php _e('Pending:', 'wp-photo-album-plus'); ?> </h3></td> <td><h3 style="margin:0;"><?php $count = $wpdb->get_var("SELECT COUNT(*) FROM `" . WPPA_COMMENTS . "` WHERE `status` = 'pending'"); echo $count; ?> </h3></td> </tr> <tr> <td><h3 style="margin:0; color:red;"><?php _e('Spam:', 'wp-photo-album-plus'); ?> </h3></td> <td><h3 style="margin:0;"><?php $count = $wpdb->get_var("SELECT COUNT(*) FROM `" . WPPA_COMMENTS . "` WHERE `status` = 'spam'"); echo $count; ?> </h3></td> </tr> <?php if (wppa_opt('spam_maxage') != 'none') { ?> <tr> <td><h3 style="margin:0; color:red;"><?php _e('Auto deleted spam:', 'wp-photo-album-plus'); ?> </h3></td> <td><h3 style="margin:0;"><?php echo get_option('wppa_spam_auto_delcount', '0'); ?> </h3></td> </tr> <?php } ?> </tbody> </table> <!-- end statistics --> <!-- Settings --> <div style="border:1px solid #ccc; padding:4px; margin:4px 0" > <h3><?php _e('Settings', 'wp-photo-album-plus'); ?> </h3> <form action="<?php echo wppa_dbg_url(get_admin_url() . 'admin.php?page=wppa_manage_comments'); ?> " method="post"> <p> <?php wp_nonce_field('$wppa_nonce', WPPA_NONCE); _e('Linkpage:', 'wp-photo-album-plus'); ?> <select name="wppa_comadmin_linkpage"> <option value="0" <?php if ($wppa_comadmin_linkpage == '0') { echo 'selected="selected"'; } ?> disabled="disabled" ><?php _e('--- Please select a page ---', 'wp-photo-album-plus'); ?> </option> <?php $query = "SELECT `ID`, `post_title`, `post_content` FROM `" . $wpdb->posts . "` WHERE `post_type` = 'page' AND `post_status` = 'publish' ORDER BY `post_title` ASC"; $pages = $wpdb->get_results($query, ARRAY_A); if ($pages) { foreach ($pages as $page) { if (stripos($page['post_content'], '%%wppa%%') !== false || stripos($page['post_content'], '[wppa') !== false) { if ($wppa_comadmin_linkpage == $page['ID']) { $sel = 'selected="selected"'; } else { $sel = ''; } echo '<option value="' . $page['ID'] . '" ' . $sel . '>' . __($page['post_title'], 'wp-photo-album-plus') . '</option>'; } } } ?> </select> <?php _e('You can see the photo and all its comments on the selected page by clicking on the thumbnail image', 'wp-photo-album-plus'); ?> </p> <?php $comment_show = wppa_opt('comadmin_show'); ?> <p> <?php _e('Display status:', 'wp-photo-album-plus'); ?> <select name="wppa_comadmin_show"> <option value="all" <?php if ($comment_show == 'all') { echo 'selected="selected"'; } ?> ><?php _e('all', 'wp-photo-album-plus'); ?> </option> <option value="pending" <?php if ($comment_show == 'pending') { echo 'selected="selected"'; } ?> ><?php _e('pending', 'wp-photo-album-plus'); ?> </option> <option value="approved" <?php if ($comment_show == 'approved') { echo 'selected="selected"'; } ?> ><?php _e('approved', 'wp-photo-album-plus'); ?> </option> <option value="spam" <?php if ($comment_show == 'spam') { echo 'selected="selected"'; } ?> ><?php _e('spam', 'wp-photo-album-plus'); ?> </option> </select> <?php $comment_order = wppa_opt('comadmin_order'); ?> <?php _e('Display order:', 'wp-photo-album-plus'); ?> <select name="wppa_comadmin_order"> <option value="timestamp" <?php if ($comment_order == 'timestamp') { echo 'selected="selected"'; } ?> ><?php _e('timestamp', 'wp-photo-album-plus'); ?> </option> <option value="photo" <?php if ($comment_order == 'photo') { echo 'selected="selected"'; } ?> ><?php _e('photo', 'wp-photo-album-plus'); ?> </option> </select> <?php _e('Bulk action:', 'wp-photo-album-plus'); ?> <select name="bulkaction"> <option value=""><?php ?> </option> <option value="approveall"><?php _e('Approve all pending', 'wp-photo-album-plus'); ?> </option> <option value="spamall"><?php _e('Move all pending to spam', 'wp-photo-album-plus'); ?> </option> <option value="delspam"><?php _e('Delete all spam', 'wp-photo-album-plus'); ?> </option> </select> <input type="submit" class="button-primary" name="wppa_submit" value="<?php _e('Save Settings / Perform bulk action', 'wp-photo-album-plus'); ?> " /> </p> </form> </div> <!-- End Settings --> <?php } if ($moderating) { $pagesize = '1'; $where = " WHERE `id` = '" . $_REQUEST['commentid'] . "'"; $order = ''; $curpage = '1'; $limit = ''; } else { $pagsize = wppa_opt('comment_admin_pagesize'); $where = $comment_show == 'all' ? '' : " WHERE `status` = '" . $comment_show . "'"; $order = " ORDER BY `" . $comment_order . "`"; if ($comment_order == 'timestamp') { $order .= " DESC"; } if (isset($_GET['wppa-page'])) { $curpage = strval(intval($_GET['wppa-page'])); $offset = (strval(intval($_GET['wppa-page'])) - 1) * $pagsize; $limit = " LIMIT " . $offset . "," . $pagsize; } else { $limit = ' LIMIT 0,' . $pagsize; $curpage = '1'; } if ($pagsize == '0') { $limit = ''; } // Paginating is off $nitems = $wpdb->get_var("SELECT COUNT(*) FROM " . WPPA_COMMENTS . $where); $link = wppa_dbg_url(get_admin_url() . 'admin.php?page=wppa_manage_comments'); wppa_admin_page_links($curpage, $pagsize, $nitems, $link); } ?> <table class="widefat"> <thead style="font-weight: bold" class=""> <tr> <th scope="col"><?php _e('Photo', 'wp-photo-album-plus'); ?> <br /> <?php _e('(Album)', 'wp-photo-album-plus'); ?> </th> <th scope="col"><?php _e('#', 'wp-photo-album-plus'); ?> </th> <th scope="col"><?php _e('IP', 'wp-photo-album-plus'); ?> </th> <th scope="col"><?php _e('User', 'wp-photo-album-plus'); ?> </th> <th scope="col"><?php _e('Email', 'wp-photo-album-plus'); ?> </th> <th scope="col"><?php _e('Time since', 'wp-photo-album-plus'); ?> </th> <th scope="col"><?php _e('Comment', 'wp-photo-album-plus'); ?> </th> <th scope="col" style="width: 130px;" ><?php _e('Status', 'wp-photo-album-plus'); ?> </th> <th scope="col"><?php _e('Edit', 'wp-photo-album-plus'); ?> </th> <th scope="col"><?php _e('Delete', 'wp-photo-album-plus'); ?> </th> </tr> </thead> <tbody class="wppa_table_1"> <?php $comments = $wpdb->get_results("SELECT * FROM `" . WPPA_COMMENTS . "`" . $where . $order . $limit, ARRAY_A); if ($comments) { foreach ($comments as $com) { ?> <tr> <?php $photo = $wpdb->get_row($wpdb->prepare("SELECT * FROM " . WPPA_PHOTOS . " WHERE id = %s", $com['photo']), 'ARRAY_A'); if ($photo) { $alb = $photo['album']; $pname = __($photo['name'], 'wp-photo-album-plus'); $albname = '(' . wppa_get_album_name($alb) . ')'; } else { $alb = ''; $pname = ''; $albname = ''; } if ($wppa_comadmin_linkpage == '0') { ?> <td style="text-align:center"> <img src="<?php echo wppa_fix_poster_ext(wppa_get_thumb_url($com['photo']), $com['photo']); ?> " style="max-height:64px;max-width:64px;" /> <br /> <?php echo $albname; ?> </td><?php } else { $url = get_page_link($wppa_comadmin_linkpage); if (strpos($url, '?')) { $url .= '&'; } else { $url .= '?'; } $url .= 'wppa-album=' . $alb . '&wppa-photo=' . $com['photo'] . '&wppa-occur=1'; ?> <td style="text-align:center"> <a href="<?php echo $url; ?> " target="_blank"> <img title="<?php _e('Click to see the fullsize photo and all comments', 'wp-photo-album-plus'); ?> " src="<?php echo wppa_fix_poster_ext(wppa_get_thumb_url($com['photo']), $com['photo']); ?> " style="max-height:64px;max-width:64px;" /> </a> <br /> <?php echo $albname; ?> </td><?php } ?> <td><?php echo $com['photo']; ?> </td> <td><?php echo $com['ip']; ?> </td> <td><?php echo $com['user']; ?> </td> <td><?php if ($com['email']) { $subject = str_replace(' ', '%20', sprintf(__('Reply to your comment on photo: %s on %s', 'wp-photo-album-plus'), $pname, get_bloginfo('name'))); echo '<a href="mailto:' . $com['email'] . '?Subject=' . $subject . '" title="' . __('Reply', 'wp-photo-album-plus') . '" >' . $com['email'] . '</a>'; } else { echo $com['email']; } ?> </td> <td><?php echo wppa_get_time_since($com['timestamp']); ?> </td> <td><?php echo stripslashes($com['comment']); ?> </td> <td> <input type="hidden" id="photo-nonce-<?php echo $com['photo']; ?> " value="<?php echo wp_create_nonce('wppa_nonce_' . $com['photo']); ?> " /> <select name="status['<?php echo $com['id']; ?> ']" onchange="jQuery('#wppa-comment-spin-<?php echo $com['id']; ?> ').css('visibility', 'visible'); wppaAjaxUpdateCommentStatus(<?php echo $com['photo']; ?> , <?php echo $com['id']; ?> , this.value)"> <option value="pending" <?php if ($com['status'] == 'pending') { echo 'selected="selected"'; } ?> ><?php _e('Pending', 'wp-photo-album-plus'); ?> </option> <option value="approved" <?php if ($com['status'] == 'approved') { echo 'selected="selected"'; } ?> ><?php _e('Approved', 'wp-photo-album-plus'); ?> </option> <option value="spam" <?php if ($com['status'] == 'spam') { echo 'selected="selected"'; } ?> ><?php _e('Spam', 'wp-photo-album-plus'); ?> </option> </select> <img id="wppa-comment-spin-<?php echo $com['id']; ?> " src="<?php echo wppa_get_imgdir() . 'spinner.gif'; ?> " style="visibility:hidden" /> </td> <?php $url = wppa_dbg_url(get_admin_url() . 'admin.php?page=wppa_manage_comments&tab=edit&edit_id=' . $com['id']); if (isset($_GET['wppa-page'])) { $url .= '&compage=' . strval(intval($_GET['wppa-page'])); } if (isset($_GET['commentid'])) { $url .= '&commentid=' . strval(intval($_GET['commentid'])); } ?> <?php $delurl = wppa_dbg_url(get_admin_url() . 'admin.php?page=wppa_manage_comments&tab=delete&delete_id=' . $com['id']); ?> <td style="color:green; cursor:pointer;" onclick="document.location='<?php echo $url; ?> '"><b><?php _e('Edit', 'wp-photo-album-plus'); ?> </b></td> <td style="color:red; cursor:pointer;" onclick="if (confirm('<?php _e('Are you sure you want to delete this comment?', 'wp-photo-album-plus'); ?> ')) document.location = '<?php echo $delurl; ?> ';"><b><?php _e('Delete', 'wp-photo-album-plus'); ?> </b></td> </tr> <?php } } ?> </tbody> <tfoot style="font-weight: bold" class=""> <tr> <th scope="col"><?php _e('Photo', 'wp-photo-album-plus'); ?> <br /> <?php _e('(Album)', 'wp-photo-album-plus'); ?> </th> <th scope="col"><?php _e('#', 'wp-photo-album-plus'); ?> </th> <th scope="col"><?php _e('IP', 'wp-photo-album-plus'); ?> </th> <th scope="col"><?php _e('User', 'wp-photo-album-plus'); ?> </th> <th scope="col"><?php _e('Email', 'wp-photo-album-plus'); ?> </th> <th scope="col"><?php _e('Time since', 'wp-photo-album-plus'); ?> </th> <th scope="col"><?php _e('Comment', 'wp-photo-album-plus'); ?> </th> <th scope="col"><?php _e('Status', 'wp-photo-album-plus'); ?> </th> <th scope="col"><?php _e('Edit', 'wp-photo-album-plus'); ?> </th> <th scope="col"><?php _e('Delete', 'wp-photo-album-plus'); ?> </th> </tr> </tfoot> </table> <?php if (!$moderating) { wppa_admin_page_links($curpage, $pagsize, $nitems, $link); } ?> </form> </div> <?php } }
function wppa_verify_page($xslug) { global $wpdb; global $wppa_opt; // Does slug exist? if (!isset($wppa_opt[$xslug])) { wppa_error_message('Unexpected error in wppa_verify_page()', 'red', 'force'); return; } // A page number 0 is allowed ( same post/page ) if (!$wppa_opt[$xslug]) { return; } $slug = substr($xslug, 5); // If page vanished, update to 0 $iret = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM `" . $wpdb->posts . "` WHERE `post_type` = 'page' AND `post_status` = 'publish' AND `ID` = %s", wppa_opt($slug))); if (!$iret) { wppa_update_option($slug, '0'); } }
function wppa_nextkey($table) { global $wpdb; $name = 'wppa_' . $table . '_lastkey'; $lastkey = get_option($name, 'nil'); if ($lastkey == 'nil') { // Init option $lastkey = $wpdb->get_var("SELECT `id` FROM `" . $table . "` WHERE `id` < '9223372036854775806' ORDER BY `id` DESC LIMIT 1"); wppa_dbg_q('Q207'); if (!is_numeric($lastkey)) { $lastkey = '0'; } add_option($name, $lastkey, '', 'no'); } wppa_dbg_msg('Lastkey in ' . $table . ' = ' . $lastkey); $result = $lastkey + '1'; while (!wppa_is_id_free($table, $result)) { $result++; } wppa_update_option($name, $result); return $result; }
function _wppa_admin() { global $wpdb; global $q_config; global $wppa_revno; if (get_option('wppa_revision') != $wppa_revno) { wppa_check_database(true); } echo ' <script type="text/javascript"> /* <![CDATA[ */ wppaAjaxUrl = "' . admin_url('admin-ajax.php') . '"; wppaUploadToThisAlbum = "' . __('Upload to this album', 'wp-photo-album-plus') . '"; wppaImageDirectory = "' . wppa_get_imgdir() . '"; /* ]]> */ </script> '; // Delete trashed comments $query = "DELETE FROM " . WPPA_COMMENTS . " WHERE status='trash'"; $wpdb->query($query); $sel = 'selected="selected"'; // warn if the uploads directory is no writable if (!is_writable(WPPA_UPLOAD_PATH)) { wppa_error_message(__('Warning:', 'wp-photo-album-plus') . sprintf(__('The uploads directory does not exist or is not writable by the server. Please make sure that %s is writeable by the server.', 'wp-photo-album-plus'), WPPA_UPLOAD_PATH)); } // Fix orphan albums and deleted target pages $albs = $wpdb->get_results("SELECT * FROM `" . WPPA_ALBUMS . "`", ARRAY_A); if ($albs) { foreach ($albs as $alb) { if ($alb['a_parent'] > '0' && wppa_get_parentalbumid($alb['a_parent']) == '-9') { // Parent died? $wpdb->query("UPDATE `" . WPPA_ALBUMS . "` SET `a_parent` = '-1' WHERE `id` = '" . $alb['id'] . "'"); } if ($alb['cover_linkpage'] > '0') { $iret = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM `" . $wpdb->posts . "` WHERE `ID` = %s AND `post_type` = 'page' AND `post_status` = 'publish'", $alb['cover_linkpage'])); if (!$iret) { // Page gone? $wpdb->query("UPDATE `" . WPPA_ALBUMS . "` SET `cover_linkpage` = '0' WHERE `id` = '" . $alb['id'] . "'"); } } } } if (isset($_REQUEST['tab'])) { // album edit page if ($_REQUEST['tab'] == 'edit') { if (isset($_REQUEST['edit_id'])) { $ei = $_REQUEST['edit_id']; if ($ei != 'new' && $ei != 'search' && !is_numeric($ei)) { wp_die('Security check failure 1'); } } if ($_REQUEST['edit_id'] == 'search') { $back_url = get_admin_url() . 'admin.php?page=wppa_admin_menu'; if (isset($_REQUEST['wppa-searchstring'])) { $back_url .= '&wppa-searchstring=' . wppa_sanitize_searchstring($_REQUEST['wppa-searchstring']); } $back_url .= '#wppa-edit-search-tag'; ?> <a name="manage-photos" id="manage-photos" ></a> <h2><?php _e('Manage Photos', 'wp-photo-album-plus'); if (isset($_REQUEST['bulk'])) { echo ' - <small><i>' . __('Copy / move / delete / edit name / edit description / change status', 'wp-photo-album-plus') . '</i></small>'; } elseif (isset($_REQUEST['quick'])) { echo ' - <small><i>' . __('Edit photo information except copy and move', 'wp-photo-album-plus') . '</i></small>'; } else { echo ' - <small><i>' . __('Edit photo information', 'wp-photo-album-plus') . '</i></small>'; } ?> </h2> <a href="<?php echo $back_url; ?> "><?php _e('Back to album table', 'wp-photo-album-plus'); ?> </a><br /><br /> <?php if (isset($_REQUEST['bulk'])) { wppa_album_photos_bulk($ei); } else { wppa_album_photos($ei); } ?> <br /><a href="#manage-photos"><?php _e('Top of page', 'wp-photo-album-plus'); ?> </a> <br /><a href="<?php echo $back_url; ?> "><?php _e('Back to album table', 'wp-photo-album-plus'); ?> </a> <?php return; } if ($_REQUEST['edit_id'] == 'new') { if (!wppa_can_create_album()) { wp_die('No rights to create an album'); } $id = wppa_nextkey(WPPA_ALBUMS); if (isset($_REQUEST['parent_id'])) { $parent = $_REQUEST['parent_id']; if (!is_numeric($parent)) { wp_die('Security check failure 2'); } $name = wppa_get_album_name($parent) . '-#' . $id; if (!current_user_can('administrator')) { // someone creating an album for someone else? $parentowner = $wpdb->get_var($wpdb->prepare("SELECT `owner` FROM `" . WPPA_ALBUMS . "` WHERE `id` = %s", $parent)); if ($parentowner !== wppa_get_user()) { wp_die('You are not allowed to create an album for someone else'); } } } else { $parent = wppa_opt('default_parent'); if (!$wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM `" . WPPA_ALBUMS . "` WHERE `id` = %s", $parent))) { // Deafault parent vanished wppa_update_option('wppa_default_parent', '0'); $parent = '0'; } $name = __('New Album', 'wp-photo-album-plus'); if (!wppa_can_create_top_album()) { wp_die('No rights to create a top-level album'); } } $id = wppa_create_album_entry(array('id' => $id, 'name' => $name, 'a_parent' => $parent)); if (!$id) { wppa_error_message(__('Could not create album.', 'wp-photo-album-plus')); wp_die('Sorry, cannot continue'); } else { $edit_id = $id; wppa_set_last_album($edit_id); wppa_flush_treecounts($edit_id); wppa_index_add('album', $id); wppa_update_message(__('Album #', 'wp-photo-album-plus') . ' ' . $edit_id . ' ' . __('Added.', 'wp-photo-album-plus')); wppa_create_pl_htaccess(); } } else { $edit_id = $_REQUEST['edit_id']; } $album_owner = $wpdb->get_var($wpdb->prepare("SELECT `owner` FROM " . WPPA_ALBUMS . " WHERE `id` = %s", $edit_id)); if ($album_owner == '--- public ---' && !current_user_can('wppa_admin') || !wppa_have_access($edit_id)) { wp_die('You do not have the rights to edit this album'); } // Apply new desc if (isset($_REQUEST['applynewdesc'])) { if (!wp_verify_nonce($_REQUEST['wppa_nonce'], 'wppa_nonce')) { wp_die('You do not have the rights to do this'); } $iret = $wpdb->query($wpdb->prepare("UPDATE `" . WPPA_PHOTOS . "` SET `description` = %s WHERE `album` = %s", wppa_opt('newphoto_description'), $edit_id)); wppa_ok_message($iret . ' descriptions updated.'); } // Remake album if (isset($_REQUEST['remakealbum'])) { if (!wp_verify_nonce($_REQUEST['wppa_nonce'], 'wppa_nonce')) { wp_die('You do not have the rights to do this'); } if (get_option('wppa_remake_start_album_' . $edit_id)) { // Continue after time up wppa_ok_message('Continuing remake, please wait'); } else { update_option('wppa_remake_start_album_' . $edit_id, time()); wppa_ok_message('Remaking photofiles, please wait'); } $iret = wppa_remake_files($edit_id); if ($iret) { wppa_ok_message('Photo files remade'); update_option('wppa_remake_start_album_' . $edit_id, '0'); } else { wppa_error_message('Remake of photo files did NOT complete'); } } // Get the album information $albuminfo = $wpdb->get_row($wpdb->prepare('SELECT * FROM `' . WPPA_ALBUMS . '` WHERE `id` = %s', $edit_id), ARRAY_A); ?> <div class="wrap"> <?php wppa_admin_spinner(); ?> <h2><?php echo __('Edit Album Information', 'wp-photo-album-plus') . ' <span style="color:blue">' . __('Auto Save', 'wp-photo-album-plus') . '</span>'; ?> </h2> <p class="description"> <?php echo __('All modifications are instantly updated on the server, except for those that require a button push.', 'wp-photo-album-plus'); echo ' ' . __('The <b style="color:#070" >Remark</b> fields keep you informed on the actions taken at the background.', 'wp-photo-album-plus'); ?> </p> <p> <?php _e('Album number:', 'wp-photo-album-plus'); echo ' ' . $edit_id . '.'; ?> </p> <input type="hidden" id="album-nonce-<?php echo $edit_id; ?> " value="<?php echo wp_create_nonce('wppa_nonce_' . $edit_id); ?> " /> <table class="widefat wppa-table wppa-album-table"> <tbody> <!-- Name --> <tr> <th> <label><?php _e('Name:', 'wp-photo-album-plus'); ?> </label> </th> <?php if (wppa_switch('wppa_use_wp_editor')) { ?> <td> <input id="wppaalbumname" type="text" style="width: 100%;" value="<?php echo esc_attr(stripslashes($albuminfo['name'])); ?> " /> </td> <td> <input type="button" class="button-secundary" value="<?php _e('Update Album name', 'wp-photo-album-plus'); ?> " onclick="wppaAjaxUpdateAlbum(<?php echo $edit_id; ?> , 'name', document.getElementById('wppaalbumname') )" /> </td> <?php } else { ?> <td> <input type="text" style="width: 100%;" onkeyup="wppaAjaxUpdateAlbum(<?php echo $edit_id; ?> , 'name', this)" onchange="wppaAjaxUpdateAlbum(<?php echo $edit_id; ?> , 'name', this)" value="<?php echo esc_attr(stripslashes($albuminfo['name'])); ?> " /> </td> <td> <span class="description"><?php _e('Type the name of the album. Do not leave this empty.', 'wp-photo-album-plus'); ?> </span> </td> <?php } ?> </tr> <!-- Description --> <tr> <th> <label><?php _e('Description:', 'wp-photo-album-plus'); ?> </label> </th> <?php if (wppa_switch('wppa_use_wp_editor')) { ?> <td colspan="2" > <?php // $quicktags_settings = array( 'buttons' => 'strong,em,link,block,ins,ul,ol,li,code,close' ); // wp_editor(stripslashes($albuminfo['description']), 'wppaalbumdesc', array('wpautop' => false, 'media_buttons' => false, 'textarea_rows' => '6', 'tinymce' => false, 'quicktags' => $quicktags_settings )); wp_editor(stripslashes($albuminfo['description']), 'wppaalbumdesc', array('wpautop' => true, 'media_buttons' => false, 'textarea_rows' => '6', 'tinymce' => true)); ?> <input type="button" class="button-secundary" value="<?php _e('Update Album description', 'wp-photo-album-plus'); ?> " onclick="wppaAjaxUpdateAlbum(<?php echo $edit_id; ?> , 'description', document.getElementById('wppaalbumdesc') )" /> <img id="wppa-album-spin" src="<?php echo wppa_get_imgdir() . 'wpspin.gif'; ?> " style="visibility:hidden" /> <br /> </td> <?php } else { ?> <td> <textarea style="width: 100%; height: 80px;" onkeyup="wppaAjaxUpdateAlbum(<?php echo $edit_id; ?> , 'description', this)" onchange="wppaAjaxUpdateAlbum(<?php echo $edit_id; ?> , 'description', this)" ><?php echo stripslashes($albuminfo['description']); ?> </textarea> </td> <td> <span class="description"><?php _e('Enter / modify the description for this album.', 'wp-photo-album-plus'); ?> </span> </td> <?php } ?> </tr> <!-- Timestamp --> <tr> <th> <label><?php _e('Created:', 'wp-photo-album-plus'); ?> </label> </th> <td> <?php echo wppa_local_date(get_option('date_format', "F j, Y,") . ' ' . get_option('time_format', "g:i a"), $albuminfo['timestamp']) . ' ' . __('local time', 'wp-photo-album-plus'); ?> </td> <!-- Modified --> <tr> <th> <label><?php _e('Modified:', 'wp-photo-album-plus'); ?> </label> </th> <td> <?php if ($albuminfo['modified'] > $albuminfo['timestamp']) { echo wppa_local_date(get_option('date_format', "F j, Y,") . ' ' . get_option('time_format', "g:i a"), $albuminfo['modified']) . ' ' . __('local time', 'wp-photo-album-plus'); } else { _e('Not modified', 'wp-photo-album-plus'); } ?> <?php ?> </td> <!-- Views --> <tr> <th> <label><?php _e('Views:', 'wp-photo-album-plus'); ?> </label> </th> <td> <?php echo $albuminfo['views']; ?> </td> </tr> <!-- Owner --> <?php // if ( wppa_switch('wppa_owner_only') ) { if (current_user_can('administrator')) { ?> <tr> <th> <label><?php _e('Owned by:', 'wp-photo-album-plus'); ?> </label> </th> <?php if ($albuminfo['owner'] == '--- public ---' && !current_user_can('administrator')) { ?> <td> <?php _e('--- public ---', 'wp-photo-album-plus'); ?> </td> <?php } else { ?> <td> <?php $usercount = wppa_get_user_count(); if ($usercount > wppa_opt('max_users')) { ?> <input type="text" value="<?php echo $albuminfo['owner']; ?> " onchange="wppaAjaxUpdateAlbum(<?php echo $edit_id; ?> , 'owner', this)" /> <?php } else { ?> <select onchange="wppaAjaxUpdateAlbum(<?php echo $edit_id; ?> , 'owner', this)" ><?php wppa_user_select($albuminfo['owner']); ?> </select> <?php } ?> </td> <td> <?php if (!current_user_can('administrator')) { ?> <span class="description" style="color:orange;" ><?php _e('WARNING If you change the owner, you will no longer be able to modify this album and upload or import photos to it!', 'wp-photo-album-plus'); ?> </span> <?php } ?> <?php if ($usercount > '1000') { echo '<span class="description" >' . __('Enter user login name or <b>--- public ---</b>', 'wp-photo-album-plus'), '</span>'; } ?> </td> <?php } ?> </tr> <?php } ?> <!-- Order # --> <tr> <th> <label><?php _e('Album sort order #:', 'wp-photo-album-plus'); ?> </label> </th> <td> <input type="text" onkeyup="wppaAjaxUpdateAlbum(<?php echo $edit_id; ?> , 'a_order', this)" onchange="wppaAjaxUpdateAlbum(<?php echo $edit_id; ?> , 'a_order', this)" value="<?php echo $albuminfo['a_order']; ?> " style="width: 50px;"/> </td> <td> <?php if (wppa_opt('list_albums_by') != '1' && $albuminfo['a_order'] != '0') { ?> <span class="description" style="color:red"> <?php _e('Album order # has only effect if you set the album sort order method to <b>Order #</b> in the Photo Albums -> Settings screen.<br />', 'wp-photo-album-plus'); ?> </span> <?php } ?> <span class="description"><?php _e('If you want to sort the albums by order #, enter / modify the order number here.', 'wp-photo-album-plus'); ?> </span> </td> </tr> <!-- Parent --> <tr> <th> <label><?php _e('Parent album:', 'wp-photo-album-plus'); ?> </label> </th> <td style="max-width:210px;"> <?php if (wppa_extended_access()) { ?> <select id="wppa-parsel" style="max-width:100%;" onchange="wppaAjaxUpdateAlbum(<?php echo $edit_id; ?> , 'a_parent', this)" ><?php echo wppa_album_select_a(array('checkaccess' => true, 'exclude' => $albuminfo['id'], 'selected' => $albuminfo['a_parent'], 'addselected' => true, 'addnone' => true, 'addseparate' => true, 'disableancestors' => true, 'path' => wppa_switch('wppa_hier_albsel'))); ?> </select> <?php } else { ?> <select id="wppa-parsel" style="max-width:100%;" onchange="wppaAjaxUpdateAlbum(<?php echo $edit_id; ?> , 'a_parent', this)" ><?php echo wppa_album_select_a(array('checkaccess' => true, 'exclude' => $albuminfo['id'], 'selected' => $albuminfo['a_parent'], 'addselected' => true, 'disableancestors' => true, 'path' => wppa_switch('wppa_hier_albsel'))); ?> </select> <?php } ?> </td> <td> <span class="description"> <?php _e('If this is a sub album, select the album in which this album will appear.', 'wp-photo-album-plus'); ?> </span> </td> </tr> <!-- P-order-by --> <tr> <th> <?php $order = $albuminfo['p_order_by']; ?> <label><?php _e('Photo order:', 'wp-photo-album-plus'); ?> </label> </th> <td> <?php $options = array(__('--- default ---', 'wp-photo-album-plus'), __('Order #', 'wp-photo-album-plus'), __('Name', 'wp-photo-album-plus'), __('Random', 'wp-photo-album-plus'), __('Rating mean value', 'wp-photo-album-plus'), __('Number of votes', 'wp-photo-album-plus'), __('Timestamp', 'wp-photo-album-plus'), __('EXIF Date', 'wp-photo-album-plus'), __('Order # desc', 'wp-photo-album-plus'), __('Name desc', 'wp-photo-album-plus'), __('Rating mean value desc', 'wp-photo-album-plus'), __('Number of votes desc', 'wp-photo-album-plus'), __('Timestamp desc', 'wp-photo-album-plus'), __('EXIF Date desc', 'wp-photo-album-plus')); $values = array('0', '1', '2', '3', '4', '6', '5', '7', '-1', '-2', '-4', '-6', '-5', '-7'); ?> <select onchange="wppaAjaxUpdateAlbum(<?php echo $edit_id; ?> , 'p_order_by', this)"> <?php foreach (array_keys($options) as $key) { $sel = $values[$key] == $order ? ' selected="selected"' : ''; echo '<option value="' . $values[$key] . '"' . $sel . ' >' . $options[$key] . '</option>'; } ?> </select> </td> <td> <span class="description"> <?php _e('Specify the way the photos should be ordered in this album.', 'wp-photo-album-plus'); ?> <br /> <?php if (current_user_can('wppa_settings')) { _e('The default setting can be changed in the <b>Photo Albums -> Settings</b> page <b>Table IV-C1</b>.', 'wp-photo-album-plus'); } ?> </span> </td> </tr> <!-- Child album order --> <tr> <th> <label><?php _e('Sub album sort order:', 'wp-photo-album-plus'); ?> </label> </th> <td> <select onchange="wppaAjaxUpdateAlbum(<?php echo $edit_id; ?> , 'suba_order_by', this)" > <option value="0" <?php if (!$albuminfo['suba_order_by']) { echo 'selected="selected"'; } ?> ><?php _e('See Table IV-D1', 'wp-photo-album-plus'); ?> </option> <option value="3" <?php if ($albuminfo['suba_order_by'] == '3') { echo 'selected="selected"'; } ?> ><?php _e('Random', 'wp-photo-album-plus'); ?> </option> <option value="1" <?php if ($albuminfo['suba_order_by'] == '1') { echo 'selected="selected"'; } ?> ><?php _e('Order #', 'wp-photo-album-plus'); ?> </option> <option value="-1" <?php if ($albuminfo['suba_order_by'] == '-1') { echo 'selected="selected"'; } ?> ><?php _e('Order # reverse', 'wp-photo-album-plus'); ?> </option> <option value="2" <?php if ($albuminfo['suba_order_by'] == '2') { echo 'selected="selected"'; } ?> ><?php _e('Name', 'wp-photo-album-plus'); ?> </option> <option value="-2" <?php if ($albuminfo['suba_order_by'] == '-2') { echo 'selected="selected"'; } ?> ><?php _e('Name reverse', 'wp-photo-album-plus'); ?> </option> <option value="5" <?php if ($albuminfo['suba_order_by'] == '5') { echo 'selected="selected"'; } ?> ><?php _e('Timestamp', 'wp-photo-album-plus'); ?> </option> <option value="-5" <?php if ($albuminfo['suba_order_by'] == '-5') { echo 'selected="selected"'; } ?> ><?php _e('Timestamp reverse', 'wp-photo-album-plus'); ?> </option> </select> </td> <td> <span class="description"> <?php _e('Specify the sequence order method to be used for the sub albums of this album.', 'wp-photo-album-plus'); ?> </span> </td> </tr> <!-- Alternative thumbnail size? --> <?php if (!wppa_switch('wppa_alt_is_restricted') || current_user_can('administrator')) { ?> <tr> <th> <label><?php _e('Use alt thumbsize:', 'wp-photo-album-plus'); ?> </label> </th> <td> <select onchange="wppaAjaxUpdateAlbum(<?php echo $edit_id; ?> , 'alt_thumbsize', this)" > <option value="0" <?php if (!$albuminfo['alt_thumbsize']) { echo 'selected="selected"'; } ?> ><?php _e('no', 'wp-photo-album-plus'); ?> </option> <option value="yes" <?php if ($albuminfo['alt_thumbsize']) { echo 'selected="selected"'; } ?> ><?php _e('yes', 'wp-photo-album-plus'); ?> </option> </select> </td> <td> <span class="description"> <?php _e('If set to <b>yes</b> The settings in <b>Table I-C1a,3a</b> and <b>4a</b> apply rather than <b>I-C1,3</b> and <b>4</b>.', 'wp-photo-album-plus'); ?> </span> </td> </tr> <?php } ?> <!-- Cover type --> <?php if (!wppa_switch('wppa_covertype_is_restricted') || current_user_can('administrator')) { ?> <tr> <th> <label><?php _e('Cover Type:', 'wp-photo-album-plus'); ?> </label> </th> <td> <?php $sel = 'selected="selected"'; ?> <select onchange="wppaAjaxUpdateAlbum(<?php echo $edit_id; ?> , 'cover_type', this)" > <option value="" <?php if ($albuminfo['cover_type'] == '') { echo $sel; } ?> ><?php _e('--- default ---', 'wp-photo-album-plus'); ?> </option> <option value="default" <?php if ($albuminfo['cover_type'] == 'default') { echo $sel; } ?> ><?php _e('Standard', 'wp-photo-album-plus'); ?> </option> <option value="longdesc" <?php if ($albuminfo['cover_type'] == 'longdesc') { echo $sel; } ?> ><?php _e('Long Descriptions', 'wp-photo-album-plus'); ?> </option> <option value="imagefactory" <?php if ($albuminfo['cover_type'] == 'imagefactory') { echo $sel; } ?> ><?php _e('Image Factory', 'wp-photo-album-plus'); ?> </option> <option value="default-mcr" <?php if ($albuminfo['cover_type'] == 'default-mcr') { echo $sel; } ?> ><?php _e('Standard mcr', 'wp-photo-album-plus'); ?> </option> <option value="longdesc-mcr" <?php if ($albuminfo['cover_type'] == 'longdesc-mcr') { echo $sel; } ?> ><?php _e('Long Descriptions mcr', 'wp-photo-album-plus'); ?> </option> <option value="imagefactory-mcr" <?php if ($albuminfo['cover_type'] == 'imagefactory-mcr') { echo $sel; } ?> ><?php _e('Image Factory mcr', 'wp-photo-album-plus'); ?> </option> </select> </td> <td> <span class="description"> <?php _e('The default cover type is the systems standard set in the <b>Photo Albums -> Settings</b> page <b>Table IV-D6</b>.', 'wp-photo-album-plus'); ?> </span> </td> </tr> <?php } ?> <!-- Cover photo --> <tr> <th> <label><?php _e('Cover Photo:', 'wp-photo-album-plus'); ?> </label> </th> <td> <?php echo wppa_main_photo($albuminfo['main_photo'], $albuminfo['cover_type']); ?> </td> <td> <span class="description"> <?php if (wppa_opt('cover_type') == 'default') { _e('Select the photo you want to appear on the cover of this album.', 'wp-photo-album-plus'); } else { _e('Select the way the cover photos of this album are selected, or select a single image.', 'wp-photo-album-plus'); } ?> </span> </td> </tr> <!-- Upload limit --> <tr> <th> <label><?php _e('Upload limit:', 'wp-photo-album-plus'); ?> </label> </th> <td> <?php $lims = explode('/', $albuminfo['upload_limit']); if (current_user_can('administrator')) { ?> <input type="text" id="upload_limit_count" value="<?php echo $lims[0]; ?> " style="width: 50px" onchange="wppaAjaxUpdateAlbum(<?php echo $edit_id; ?> , 'upload_limit_count', this)" /> <select onchange="wppaAjaxUpdateAlbum(<?php echo $edit_id; ?> , 'upload_limit_time', this)" > <option value="0" <?php if ($lims[1] == '0') { echo 'selected="selected"'; } ?> ><?php _e('for ever', 'wp-photo-album-plus'); ?> </option> <option value="3600" <?php if ($lims[1] == '3600') { echo 'selected="selected"'; } ?> ><?php _e('per hour', 'wp-photo-album-plus'); ?> </option> <option value="86400" <?php if ($lims[1] == '86400') { echo 'selected="selected"'; } ?> ><?php _e('per day', 'wp-photo-album-plus'); ?> </option> <option value="604800" <?php if ($lims[1] == '604800') { echo 'selected="selected"'; } ?> ><?php _e('per week', 'wp-photo-album-plus'); ?> </option> <option value="2592000" <?php if ($lims[1] == '2592000') { echo 'selected="selected"'; } ?> ><?php _e('per month', 'wp-photo-album-plus'); ?> </option> <option value="31536000" <?php if ($lims[1] == '31536000') { echo 'selected="selected"'; } ?> ><?php _e('per year', 'wp-photo-album-plus'); ?> </option> </select> </td> <td> <span class="description"><?php _e('Set the upload limit (0 means unlimited) and the upload limit period.', 'wp-photo-album-plus'); ?> </span> <?php } else { if ($lims[0] == '0') { _e('Unlimited', 'wp-photo-album-plus'); } else { echo $lims[0] . ' '; switch ($lims[1]) { case '3600': _e('per hour', 'wp-photo-album-plus'); break; case '86400': _e('per day', 'wp-photo-album-plus'); break; case '604800': _e('per week', 'wp-photo-album-plus'); break; case '2592000': _e('per month', 'wp-photo-album-plus'); break; case '31536000': _e('per year', 'wp-photo-album-plus'); break; } } } ?> </td> </tr> <!-- Cats --> <tr> <th> <label><?php _e('Catogories:', 'wp-photo-album-plus'); ?> </label> <span class="description" > <br /> </span> </th> <td> <input id="cats" type="text" style="width:100%;" onkeyup="wppaAjaxUpdateAlbum(<?php echo $edit_id; ?> , 'cats', this)" onchange="wppaAjaxUpdateAlbum(<?php echo $edit_id; ?> , 'cats', this)" value="<?php echo stripslashes(trim($albuminfo['cats'], ',')); ?> " /> </td> <td> <span class="description" > <?php _e('Separate categories with commas.', 'wp-photo-album-plus'); ?> <?php _e('Examples:', 'wp-photo-album-plus'); $catlist = wppa_get_catlist(); ?> <select onchange="wppaAddCat(this.value, 'cats'); wppaAjaxUpdateAlbum(<?php echo $edit_id; ?> , 'cats', document.getElementById('cats'))" > <?php if (is_array($catlist)) { echo '<option value="" >' . __('- select -', 'wp-photo-album-plus') . '</option>'; foreach ($catlist as $cat) { echo '<option value="' . $cat['cat'] . '" >' . $cat['cat'] . '</option>'; } } else { echo '<option value="0" >' . __('No categories yet', 'wp-photo-album-plus') . '</option>'; } ?> </select> <?php _e('Select to add', 'wp-photo-album-plus'); ?> </span> </td> </tr> <!-- Default tags --> <tr> <th> <label><?php _e('Default photo tags:', 'wp-photo-album-plus'); ?> </label> </th> <td> <input type="text" id="default_tags" value="<?php echo trim($albuminfo['default_tags'], ','); ?> " style="width: 100%" onkeyup="wppaAjaxUpdateAlbum(<?php echo $edit_id; ?> , 'default_tags', this)" onchange="wppaAjaxUpdateAlbum(<?php echo $edit_id; ?> , 'default_tags', this)" /> </td> <td> <span class="description"><?php _e('Enter the tags that you want to be assigned to new photos in this album.', 'wp-photo-album-plus'); ?> </span> </td> </tr> <!-- Apply default tags --> <?php $onc1 = 'if (confirm(\'' . __('Are you sure you want to set the default tags to all photos in this album?', 'wp-photo-album-plus') . '\')) { alert(\'The page will be reloaded after the action has taken place.\');wppaRefreshAfter(); wppaAjaxUpdateAlbum(' . $edit_id . ', \'set_deftags\', 0 ); }'; ?> <?php $onc2 = 'if (confirm(\'' . __('Are you sure you want to add the default tags to all photos in this album?', 'wp-photo-album-plus') . '\')) { alert(\'The page will be reloaded after the action has taken place.\');wppaRefreshAfter(); wppaAjaxUpdateAlbum(' . $edit_id . ', \'add_deftags\', 0 ); }'; ?> <tr> <th> <a onclick="<?php echo $onc1; ?> " ><?php _e('Apply default tags', 'wp-photo-album-plus'); ?> </a> </th> <td> </td> <td> <span class="description"><?php _e('Tag all photos in this album with the default tags.', 'wp-photo-album-plus'); ?> </span> </td> </tr> <tr> <th> <a onclick="<?php echo $onc2; ?> " ><?php _e('Add default tags', 'wp-photo-album-plus'); ?> </a> </th> <td> </td> <td> <span class="description"><?php _e('Add the default tags to all photos in this album.', 'wp-photo-album-plus'); ?> </span> </td> </tr> <!-- Link type --> <tr> <th> <label><?php _e('Link type:', 'wp-photo-album-plus'); ?> </label> </th> <td> <?php $linktype = $albuminfo['cover_linktype']; ?> <?php /* if ( !$linktype ) $linktype = 'content'; /* Default */ ?> <?php /* if ( $albuminfo['cover_linkpage'] == '-1' ) $linktype = 'none'; /* for backward compatibility */ ?> <select onchange="wppaAjaxUpdateAlbum(<?php echo $edit_id; ?> , 'cover_linktype', this)" > <option value="content" <?php if ($linktype == 'content') { echo $sel; } ?> ><?php _e('the sub-albums and thumbnails', 'wp-photo-album-plus'); ?> </option> <option value="albums" <?php if ($linktype == 'albums') { echo $sel; } ?> ><?php _e('the sub-albums', 'wp-photo-album-plus'); ?> </option> <option value="thumbs" <?php if ($linktype == 'thumbs') { echo $sel; } ?> ><?php _e('the thumbnails', 'wp-photo-album-plus'); ?> </option> <option value="slide" <?php if ($linktype == 'slide') { echo $sel; } ?> ><?php _e('the album photos as slideshow', 'wp-photo-album-plus'); ?> </option> <option value="page" <?php if ($linktype == 'page') { echo $sel; } ?> ><?php _e('the link page with a clean url', 'wp-photo-album-plus'); ?> </option> <option value="none" <?php if ($linktype == 'none') { echo $sel; } ?> ><?php _e('no link at all', 'wp-photo-album-plus'); ?> </option> </select> </td> <td> <span class="description"> <?php if (wppa_switch('auto_page')) { _e('If you select "the link page with a clean url", select an Auto Page of one of the photos in this album.', 'wp-photo-album-plus'); } else { _e('If you select "the link page with a clean url", make sure you enter the correct shortcode on the target page.', 'wp-photo-album-plus'); } ?> </span> </td> </tr> <!-- Link page --> <?php if (!wppa_switch('wppa_link_is_restricted') || current_user_can('administrator')) { ?> <tr> <th> <label><?php _e('Link to:', 'wp-photo-album-plus'); ?> </label> </th> <td style="max-width:210px;" > <?php $query = 'SELECT `ID`, `post_title` FROM `' . $wpdb->posts . '` WHERE `post_type` = \'page\' AND `post_status` = \'publish\' ORDER BY `post_title` ASC'; $pages = $wpdb->get_results($query, ARRAY_A); if (empty($pages)) { _e('There are no pages (yet) to link to.', 'wp-photo-album-plus'); } else { $linkpage = $albuminfo['cover_linkpage']; if (!is_numeric($linkpage)) { $linkpage = '0'; } ?> <select onchange="wppaAjaxUpdateAlbum(<?php echo $edit_id; ?> , 'cover_linkpage', this)" style="max-width:100%;"> <option value="0" <?php if ($linkpage == '0') { echo $sel; } ?> ><?php _e('--- the same page or post ---', 'wp-photo-album-plus'); ?> </option> <?php foreach ($pages as $page) { ?> <option value="<?php echo $page['ID']; ?> " <?php if ($linkpage == $page['ID']) { echo $sel; } ?> ><?php _e($page['post_title'], 'wp-photo-album-plus'); ?> </option> <?php } ?> </select> </td> <td> <span class="description"> <?php _e('If you want, you can link the title to a WP page in stead of the album\'s content. If so, select the page the title links to.', 'wp-photo-album-plus'); ?> </span> <?php } ?> </td> </tr> <?php } ?> <!-- Schedule --> <tr> <th> <label><?php _e('Schedule:', 'wp-photo-album-plus'); ?> </label> <input type="checkbox" <?php if ($albuminfo['scheduledtm']) { echo 'checked="checked"'; } ?> onchange="wppaChangeScheduleAlbum(<?php echo $edit_id; ?> , this);" /> </th> <td> <input type="hidden" value="" id="wppa-dummy" /> <span class="wppa-datetime-<?php echo $edit_id; ?> " <?php if (!$albuminfo['scheduledtm']) { echo 'style="display:none;"'; } ?> > <?php echo wppa_get_date_time_select_html('album', $edit_id, true); ?> </span> </td> <td> <span class="description"> <?php _e('If enabled, new photos will have their status set to the dat/time specified here.', 'wp-photo-album-plus'); ?> </span> </td> </tr> <tr class="wppa-datetime-<?php echo $edit_id; ?> " > <th> <a onclick="if (confirm('<?php _e('Are you sure you want to schedule all photos in this album?', 'wp-photo-album-plus'); ?> ')) { alert('The page will be reloaded after the action has taken place.'); wppaRefreshAfter(); wppaAjaxUpdateAlbum(<?php echo $edit_id; ?> , 'setallscheduled', 0 ) }" ><?php _e('Schedule all', 'wp-photo-album-plus'); ?> </a> </th> </tr> <!-- Reset Ratings --> <?php if (wppa_switch('wppa_rating_on')) { ?> <tr> <th> <a onclick="if (confirm('<?php _e('Are you sure you want to clear the ratings in this album?', 'wp-photo-album-plus'); ?> ')) wppaAjaxUpdateAlbum(<?php echo $edit_id; ?> , 'clear_ratings', 0 )" ><?php _e('Reset ratings', 'wp-photo-album-plus'); ?> </a> </th> </tr> <?php } ?> <!-- Goto Upload --> <?php if (current_user_can('wppa_upload')) { $a = wppa_allow_uploads($albuminfo['id']); if ($a) { $full = 'none'; $notfull = ''; } else { $full = ''; $notfull = 'none'; } $onc = 'document.location = \'' . wppa_dbg_url(get_admin_url()) . '/admin.php?page=wppa_upload_photos&wppa-set-album=' . $albuminfo['id'] . '\''; $oncfull = 'alert(\'' . __('Change the upload limit or remove photos to enable new uploads.', 'wp-photo-album-plus') . '\')'; ?> <tr> <th> <a id="notfull" style="display:<?php echo $notfull; ?> " onclick="<?php echo $onc; ?> " ><?php _e('Upload to this album', 'wp-photo-album-plus'); if ($a > '0') { echo ' ' . sprintf(__('(max %d)', 'wp-photo-album-plus'), $a); } ?> </a> <a id="full" style="display:<?php echo $full; ?> " onclick="<?php echo $oncfull; ?> " ><?php _e('Album is full', 'wp-photo-album-plus'); ?> </a> </th> </tr> <?php } ?> <!-- Apply New photo desc --> <?php if (wppa_switch('wppa_apply_newphoto_desc')) { $onc = 'if ( confirm(\'Are you sure you want to set the description of all photos to \\n\\n' . esc_js(wppa_opt('wppa_newphoto_description')) . '\')) document.location=\'' . wppa_ea_url($albuminfo['id'], 'edit') . '&applynewdesc\''; ?> <tr> <th> <a onclick="<?php echo $onc; ?> " ><?php _e('Apply new photo desc', 'wp-photo-album-plus'); ?> </a> </th> </tr> <?php } ?> <!-- Remake all --> <?php if (current_user_can('administrator')) { $onc = 'if ( confirm(\'Are you sure you want to remake the files for all photos in this album?\')) document.location=\'' . wppa_ea_url($albuminfo['id'], 'edit') . '&remakealbum\''; ?> <tr> <th> <a onclick="<?php echo $onc; ?> " ><?php _e('Remake all', 'wp-photo-album-plus'); ?> </a> </th> </tr> <?php } ?> <!-- Status --> <tr > <th style="color:blue;" > <label style="color:#070"><?php _e('Remark:', 'wp-photo-album-plus'); ?> </label> </th> <td id="albumstatus-<?php echo $edit_id; ?> " > <?php echo sprintf(__('Album %s is not modified yet', 'wp-photo-album-plus'), $edit_id); ?> </td> </tr> </tbody> </table> <a name="manage-photos" id="manage-photos" ></a> <h2><?php _e('Manage Photos', 'wp-photo-album-plus'); if (isset($_REQUEST['bulk'])) { echo ' - <small><i>' . __('Copy / move / delete / edit name / edit description / change status', 'wp-photo-album-plus') . '</i></small>'; } elseif (isset($_REQUEST['seq'])) { echo ' - <small><i>' . __('Change sequence order by drag and drop', 'wp-photo-album-plus') . '</i></small>'; } elseif (isset($_REQUEST['quick'])) { echo ' - <small><i>' . __('Edit photo information except copy and move', 'wp-photo-album-plus') . '</i></small>'; } else { echo ' - <small><i>' . __('Edit photo information', 'wp-photo-album-plus') . '</i></small>'; } ?> </h2> <?php if (isset($_REQUEST['bulk'])) { wppa_album_photos_bulk($edit_id); } elseif (isset($_REQUEST['seq'])) { wppa_album_photos_sequence($edit_id); } else { wppa_album_photos($edit_id); } ?> <br /><a href="#manage-photos"><?php _e('Top of page', 'wp-photo-album-plus'); ?> </a> </div> <?php } else { if ($_REQUEST['tab'] == 'cmod') { $photo = $_REQUEST['photo']; $alb = wppa_get_album_id_by_photo_id($photo); if (current_user_can('wppa_comments') && wppa_have_access($alb)) { ?> <div class="wrap"> <h2><?php _e('Moderate comment', 'wp-photo-album-plus'); ?> </h2> <?php // <input type="hidden" id="album-nonce-<?php echo $edit_id //" value="<?php echo wp_create_nonce('wppa_nonce_'.$edit_id); //" /> ?> <?php wppa_album_photos('', $photo); ?> </div> <?php } else { wp_die('You do not have the rights to do this'); } } elseif ($_REQUEST['tab'] == 'pmod' || $_REQUEST['tab'] == 'pedit') { $photo = $_REQUEST['photo']; $alb = wppa_get_album_id_by_photo_id($photo); if (current_user_can('wppa_admin') && wppa_have_access($alb)) { ?> <div class="wrap"> <h2><?php if ($_REQUEST['tab'] == 'pmod') { _e('Moderate photo', 'wp-photo-album-plus'); } else { _e('Edit photo', 'wp-photo-album-plus'); } ?> </h2> <?php wppa_album_photos('', $photo); ?> </div> <?php } else { wp_die('You do not have the rights to do this'); } } else { if ($_REQUEST['tab'] == 'del') { $album_owner = $wpdb->get_var($wpdb->prepare("SELECT `owner` FROM " . WPPA_ALBUMS . " WHERE `id` = %s", $_REQUEST['edit_id'])); if ($album_owner == '--- public ---' && !current_user_can('administrator') || !wppa_have_access($_REQUEST['edit_id'])) { wp_die('You do not have the rights to delete this album'); } ?> <div class="wrap"> <?php $iconurl = WPPA_URL . '/images/albumdel32.png'; ?> <div id="icon-albumdel" class="icon32" style="background: transparent url(<?php echo $iconurl; ?> ) no-repeat"> <br /> </div> <h2><?php _e('Delete Album', 'wp-photo-album-plus'); ?> </h2> <p><?php _e('Album:', 'wp-photo-album-plus'); ?> <b><?php echo wppa_get_album_name($_REQUEST['edit_id']); ?> .</b></p> <p><?php _e('Are you sure you want to delete this album?', 'wp-photo-album-plus'); ?> <br /> <?php _e('Press Delete to continue, and Cancel to go back.', 'wp-photo-album-plus'); ?> </p> <form name="wppa-del-form" action="<?php echo wppa_dbg_url(get_admin_url() . 'admin.php?page=wppa_admin_menu'); ?> " method="post"> <?php wp_nonce_field('$wppa_nonce', WPPA_NONCE); ?> <p> <?php _e('What would you like to do with photos currently in the album?', 'wp-photo-album-plus'); ?> <br /> <input type="radio" name="wppa-del-photos" value="delete" checked="checked" /> <?php _e('Delete', 'wp-photo-album-plus'); ?> <br /> <input type="radio" name="wppa-del-photos" value="move" /> <?php _e('Move to:', 'wp-photo-album-plus'); ?> <select name="wppa-move-album"> <?php echo wppa_album_select_a(array('checkaccess' => true, 'path' => wppa_switch('wppa_hier_albsel'), 'selected' => '0', 'exclude' => $_REQUEST['edit_id'], 'addpleaseselect' => true)); ?> </select> </p> <input type="hidden" name="wppa-del-id" value="<?php echo $_REQUEST['edit_id']; ?> " /> <input type="button" class="button-primary" value="<?php _e('Cancel', 'wp-photo-album-plus'); ?> " onclick="parent.history.back()" /> <input type="submit" class="button-primary" style="color: red" name="wppa-del-confirm" value="<?php _e('Delete', 'wp-photo-album-plus'); ?> " /> </form> </div> <?php } } } } else { // 'tab' not set. default, album manage page. // if add form has been submitted // if (isset($_POST['wppa-na-submit'])) { // check_admin_referer( '$wppa_nonce', WPPA_NONCE ); // wppa_add_album(); // } // if album deleted if (isset($_POST['wppa-del-confirm'])) { check_admin_referer('$wppa_nonce', WPPA_NONCE); $album_owner = $wpdb->get_var($wpdb->prepare("SELECT `owner` FROM " . WPPA_ALBUMS . " WHERE `id` = %s", $_POST['wppa-del-id'])); if ($album_owner == '--- public ---' && !current_user_can('administrator') || !wppa_have_access($_POST['wppa-del-id'])) { wp_die('You do not have the rights to delete this album'); } if ($_POST['wppa-del-photos'] == 'move') { $move = $_POST['wppa-move-album']; if (wppa_have_access($move)) { wppa_del_album($_POST['wppa-del-id'], $move); } else { wppa_error_message(__('Unable to move photos. Album not deleted.', 'wp-photo-album-plus')); } } else { wppa_del_album($_POST['wppa-del-id'], ''); } } if (wppa_extended_access()) { if (isset($_REQUEST['switchto'])) { update_option('wppa_album_table_' . wppa_get_user(), $_REQUEST['switchto']); } $style = get_option('wppa_album_table_' . wppa_get_user(), 'flat'); } else { $style = 'flat'; } // The Manage Album page ?> <div class="wrap"> <?php wppa_admin_spinner(); ?> <?php $iconurl = WPPA_URL . '/images/album32.png'; ?> <div id="icon-album" class="icon32" style="background: transparent url(<?php echo $iconurl; ?> ) no-repeat"> <br /> </div> <h2><?php _e('Manage Albums', 'wp-photo-album-plus'); ?> </h2> <br /> <?php // The Create new album button if (wppa_can_create_top_album()) { $url = wppa_dbg_url(get_admin_url() . 'admin.php?page=wppa_admin_menu&tab=edit&edit_id=new'); $vfy = __('Are you sure you want to create a new album?', 'wp-photo-album-plus'); echo '<form method="post" action="' . get_admin_url() . 'admin.php?page=wppa_admin_menu" style="float:left; margin-right:12px;" >'; echo '<input type="hidden" name="tab" value="edit" />'; echo '<input type="hidden" name="edit_id" value="new" />'; $onc = wppa_switch('confirm_create') ? 'onclick="return confirm(\'' . $vfy . '\');"' : ''; echo '<input type="submit" class="button-primary" ' . $onc . ' value="' . __('Create New Empty Album', 'wp-photo-album-plus') . '" style="height:28px;" />'; echo '</form>'; } // The switch to button(s) if (wppa_extended_access()) { if ($style == 'flat') { ?> <input type="button" class="button-secundary" onclick="document.location='<?php echo wppa_dbg_url(get_admin_url() . 'admin.php?page=wppa_admin_menu&switchto=collapsable'); ?> '" value="<?php _e('Switch to Collapsable table', 'wp-photo-album-plus'); ?> " /> <?php } if ($style == 'collapsable') { ?> <input type="button" class="button-secundary" onclick="document.location='<?php echo wppa_dbg_url(get_admin_url() . 'admin.php?page=wppa_admin_menu&switchto=flat'); ?> '" value="<?php _e('Switch to Flat table', 'wp-photo-album-plus'); ?> " /> <?php } } ?> <br /> <?php // The table of existing albums if ($style == 'flat') { wppa_admin_albums_flat(); } else { wppa_admin_albums_collapsable(); } ?> <br /> </div> <?php } }
function _wppa_admin() { global $wpdb; global $q_config; global $wppa_revno; if (get_option('wppa_revision') != $wppa_revno) { wppa_check_database(true); } echo ' <script type="text/javascript"> /* <![CDATA[ */ wppaAjaxUrl = "' . admin_url('admin-ajax.php') . '"; wppaUploadToThisAlbum = "' . __('Upload to this album', 'wp-photo-album-plus') . '"; wppaImageDirectory = "' . wppa_get_imgdir() . '"; /* ]]> */ </script> '; // Delete trashed comments $query = "DELETE FROM " . WPPA_COMMENTS . " WHERE status='trash'"; $wpdb->query($query); $sel = 'selected="selected"'; // warn if the uploads directory is no writable if (!is_writable(WPPA_UPLOAD_PATH)) { wppa_error_message(__('Warning:', 'wp-photo-album-plus') . sprintf(__('The uploads directory does not exist or is not writable by the server. Please make sure that %s is writeable by the server.', 'wp-photo-album-plus'), WPPA_UPLOAD_PATH)); } // Fix orphan albums and deleted target pages $albs = $wpdb->get_results("SELECT * FROM `" . WPPA_ALBUMS . "`", ARRAY_A); // Now we have tham, put them in cache wppa_cache_album('add', $albs); if ($albs) { foreach ($albs as $alb) { if ($alb['a_parent'] > '0' && wppa_get_parentalbumid($alb['a_parent']) == '-9') { // Parent died? $wpdb->query("UPDATE `" . WPPA_ALBUMS . "` SET `a_parent` = '-1' WHERE `id` = '" . $alb['id'] . "'"); } if ($alb['cover_linkpage'] > '0') { $iret = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM `" . $wpdb->posts . "` WHERE `ID` = %s AND `post_type` = 'page' AND `post_status` = 'publish'", $alb['cover_linkpage'])); if (!$iret) { // Page gone? $wpdb->query("UPDATE `" . WPPA_ALBUMS . "` SET `cover_linkpage` = '0' WHERE `id` = '" . $alb['id'] . "'"); } } } } if (isset($_REQUEST['tab'])) { // album edit page if ($_REQUEST['tab'] == 'edit') { if (isset($_REQUEST['edit_id'])) { $ei = $_REQUEST['edit_id']; if ($ei != 'new' && $ei != 'search' && !is_numeric($ei)) { wp_die('Security check failure 1'); } } if ($_REQUEST['edit_id'] == 'search') { $back_url = get_admin_url() . 'admin.php?page=wppa_admin_menu'; if (isset($_REQUEST['wppa-searchstring'])) { $back_url .= '&wppa-searchstring=' . wppa_sanitize_searchstring($_REQUEST['wppa-searchstring']); } $back_url .= '#wppa-edit-search-tag'; ?> <a name="manage-photos" id="manage-photos" ></a> <h2><?php _e('Manage Photos', 'wp-photo-album-plus'); if (isset($_REQUEST['bulk'])) { echo ' - <small><i>' . __('Copy / move / delete / edit name / edit description / change status', 'wp-photo-album-plus') . '</i></small>'; } elseif (isset($_REQUEST['quick'])) { echo ' - <small><i>' . __('Edit photo information except copy and move', 'wp-photo-album-plus') . '</i></small>'; } else { echo ' - <small><i>' . __('Edit photo information', 'wp-photo-album-plus') . '</i></small>'; } ?> </h2> <a href="<?php echo $back_url; ?> "><?php _e('Back to album table', 'wp-photo-album-plus'); ?> </a><br /><br /> <?php if (isset($_REQUEST['bulk'])) { wppa_album_photos_bulk($ei); } else { wppa_album_photos($ei); } ?> <br /><a href="#manage-photos"><?php _e('Top of page', 'wp-photo-album-plus'); ?> </a> <br /><a href="<?php echo $back_url; ?> "><?php _e('Back to album table', 'wp-photo-album-plus'); ?> </a> <?php return; } if ($_REQUEST['edit_id'] == 'new') { if (!wppa_can_create_album()) { wp_die('No rights to create an album'); } $id = wppa_nextkey(WPPA_ALBUMS); if (isset($_REQUEST['parent_id'])) { $parent = $_REQUEST['parent_id']; if (!is_numeric($parent)) { wp_die('Security check failure 2'); } $name = wppa_get_album_name($parent) . '-#' . $id; if (!current_user_can('administrator')) { // someone creating an album for someone else? $parentowner = $wpdb->get_var($wpdb->prepare("SELECT `owner` FROM `" . WPPA_ALBUMS . "` WHERE `id` = %s", $parent)); if ($parentowner !== wppa_get_user()) { wp_die('You are not allowed to create an album for someone else'); } } } else { $parent = wppa_opt('default_parent'); if (!$wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM `" . WPPA_ALBUMS . "` WHERE `id` = %s", $parent))) { // Deafault parent vanished wppa_update_option('wppa_default_parent', '0'); $parent = '0'; } $name = __('New Album', 'wp-photo-album-plus'); if (!wppa_can_create_top_album()) { wp_die('No rights to create a top-level album'); } } $id = wppa_create_album_entry(array('id' => $id, 'name' => $name, 'a_parent' => $parent)); if (!$id) { wppa_error_message(__('Could not create album.', 'wp-photo-album-plus')); wp_die('Sorry, cannot continue'); } else { $edit_id = $id; wppa_set_last_album($edit_id); wppa_flush_treecounts($edit_id); wppa_index_add('album', $id); wppa_update_message(__('Album #', 'wp-photo-album-plus') . ' ' . $edit_id . ' ' . __('Added.', 'wp-photo-album-plus')); wppa_create_pl_htaccess(); } } else { $edit_id = $_REQUEST['edit_id']; } $album_owner = $wpdb->get_var($wpdb->prepare("SELECT `owner` FROM " . WPPA_ALBUMS . " WHERE `id` = %s", $edit_id)); if ($album_owner == '--- public ---' && !current_user_can('wppa_admin') || !wppa_have_access($edit_id)) { wp_die('You do not have the rights to edit this album'); } // Apply new desc if (isset($_REQUEST['applynewdesc'])) { if (!wp_verify_nonce($_REQUEST['wppa_nonce'], 'wppa_nonce')) { wp_die('You do not have the rights to do this'); } $iret = $wpdb->query($wpdb->prepare("UPDATE `" . WPPA_PHOTOS . "` SET `description` = %s WHERE `album` = %s", wppa_opt('newphoto_description'), $edit_id)); wppa_ok_message($iret . ' descriptions updated.'); } // Remake album if (isset($_REQUEST['remakealbum'])) { if (!wp_verify_nonce($_REQUEST['wppa_nonce'], 'wppa_nonce')) { wp_die('You do not have the rights to do this'); } if (get_option('wppa_remake_start_album_' . $edit_id)) { // Continue after time up wppa_ok_message('Continuing remake, please wait'); } else { update_option('wppa_remake_start_album_' . $edit_id, time()); wppa_ok_message('Remaking photofiles, please wait'); } $iret = wppa_remake_files($edit_id); if ($iret) { wppa_ok_message('Photo files remade'); update_option('wppa_remake_start_album_' . $edit_id, '0'); } else { wppa_error_message('Remake of photo files did NOT complete'); } } // Get the album information $albuminfo = $wpdb->get_row($wpdb->prepare('SELECT * FROM `' . WPPA_ALBUMS . '` WHERE `id` = %s', $edit_id), ARRAY_A); // We may not use extract(), so we do something like it here manually, hence controlled. $id = $albuminfo['id']; $crypt = $albuminfo['crypt']; $timestamp = $albuminfo['timestamp']; $modified = $albuminfo['modified']; $views = $albuminfo['views']; $owner = $albuminfo['owner']; $a_order = $albuminfo['a_order']; $p_order_by = $albuminfo['p_order_by']; $a_parent = $albuminfo['a_parent']; $suba_order_by = $albuminfo['suba_order_by']; $name = stripslashes($albuminfo['name']); $description = stripslashes($albuminfo['description']); $alt_thumbsize = $albuminfo['alt_thumbsize']; $cover_type = $albuminfo['cover_type']; $main_photo = $albuminfo['main_photo']; $upload_limit = $albuminfo['upload_limit']; $cats = stripslashes(trim($albuminfo['cats'], ',')); $default_tags = trim($albuminfo['default_tags'], ','); $cover_linktype = $albuminfo['cover_linktype']; // Open the photo album admin page echo '<div class="wrap">'; // The spinner to indicate busyness wppa_admin_spinner(); // Local js functions placed here as long as there is not yet a possibility to translate texts in js files ?> <script> function wppaTryInheritCats( id ) { var query; query = '<?php echo esc_js(__('Are you sure you want to inherit categories to all (grand)children of this album?', 'wp-photo-album-plus')); ?> '; if ( confirm( query ) ) { wppaAjaxUpdateAlbum( id, 'inherit_cats', Math.random() ); } } function wppaTryAddCats( id ) { var query; query = '<?php echo esc_js(__('Are you sure you want to add the categories to all (grand)children of this album?', 'wp-photo-album-plus')); ?> '; if ( confirm( query ) ) { wppaAjaxUpdateAlbum( id, 'inhadd_cats', Math.random() ); } } function wppaTryApplyDeftags( id ) { var query; query = '<?php echo esc_js(__('Are you sure you want to set the default tags to all photos in this album?', 'wp-photo-album-plus')); ?> '; if ( confirm( query ) ) { wppaAjaxUpdateAlbum( id, 'set_deftags', Math.random(), true ); } } function wppaTryAddDeftags( id ) { var query; query = '<?php echo esc_js(__('Are you sure you want to add the default tags to all photos in this album?', 'wp-photo-album-plus')); ?> '; if ( confirm( query ) ) { wppaAjaxUpdateAlbum( id, 'add_deftags', Math.random(), true ); } } function wppaTryScheduleAll( id ) { var query; if ( jQuery( '#schedule-box' ).attr( 'checked' ) != 'checked' ) { query = '<?php echo esc_js(__('Please switch feature on and set dat/time to schedule first', 'wp-photo-album-plus')); ?> '; alert( query ); return; } query = '<?php echo esc_js(__('Are you sure you want to schedule all photos in this album?', 'wp-photo-album-plus')); ?> '; if ( confirm( query ) ) { wppaAjaxUpdateAlbum( id, 'setallscheduled', Math.random(), true ); } } </script> <?php // The header echo '<img src="' . WPPA_URL . '/img/album32.png' . '" alt="Album icon" />' . '<h1 style="display:inline;" >' . __('Edit Album Information', 'wp-photo-album-plus') . '</h1>' . '<p class="description">' . __('All modifications are instantly updated on the server, except for those that require a button push.', 'wp-photo-album-plus') . ' ' . __('The <b style="color:#070" >Remark</b> fields keep you informed on the actions taken at the background.', 'wp-photo-album-plus') . '</p>' . '<input' . ' type="hidden"' . ' id="album-nonce-' . $id . '"' . ' value="' . wp_create_nonce('wppa_nonce_' . $id) . '"' . ' />'; // The edit albuminfo panel echo '<div' . ' id="albumitem-' . $id . '"' . ' class="wppa-table-wrap"' . ' style="width:100%;position:relative;"' . ' >'; // Section 1 echo "\n" . '<!-- Album Section 1 -->' . '<table' . ' class="wppa-table wppa-album-table"' . ' >' . '<tbody>' . '<tr>' . '<td>'; // More or less static data // Album number echo __('Album number:', 'wp-photo-album-plus') . ' ' . $id . '. '; // Crypt echo __('Crypt:', 'wp-photo-album-plus') . ' ' . $crypt . '. '; // Created echo __('Created:', 'wp-photo-album-plus') . ' ' . wppa_local_date('', $timestamp) . ' ' . __('local time', 'wp-photo-album-plus') . '. '; // Modified echo __('Modified:', 'wp-photo-album-plus') . ' '; if ($modified > $timestamp) { echo wppa_local_date('', $modified) . ' ' . __('local time', 'wp-photo-album-plus') . '. '; } else { echo __('Not modified', 'wp-photo-album-plus') . '. '; } // Views if (wppa_switch('track_viewcounts')) { echo __('Views:', 'wp-photo-album-plus') . ' ' . $views . '. '; } // Clicks if (wppa_switch('track_clickcounts')) { $click_arr = $wpdb->get_col("SELECT `clicks` FROM `" . WPPA_PHOTOS . "` WHERE `album` = {$id}"); echo __('Clicks:', 'wp-photo-album-plus') . ' ' . array_sum($click_arr) . '. '; } // Owner echo __('Owned by:', 'wp-photo-album-plus') . ' '; if (!wppa_user_is('administrator')) { if ($owner == '--- public ---') { echo __('--- public ---', 'wp-photo-album-plus') . ' '; } else { echo $owner . '. '; } } else { $usercount = wppa_get_user_count(); if ($usercount > wppa_opt('max_users')) { echo '<input' . ' type="text"' . ' value="' . esc_attr($owner) . '"' . ' onchange="wppaAjaxUpdateAlbum( ' . $id . ', \'owner\', this )"' . ' />'; } else { echo '<select' . ' onchange="wppaAjaxUpdateAlbum( ' . $id . ', \'owner\', this )"' . ' >'; wppa_user_select($owner); echo '</select>' . ' '; } } // Order # --> echo __('Album sort order #:', 'wp-photo-album-plus') . ' ' . '<input' . ' type="text"' . ' onkeyup="wppaAjaxUpdateAlbum( ' . $id . ', \'a_order\', this )"' . ' onchange="wppaAjaxUpdateAlbum( ' . $id . ', \'a_order\', this )"' . ' value="' . esc_attr($a_order) . '"' . ' style="width:50px;' . '" />' . ' '; if (wppa_opt('list_albums_by') != '1' && $a_order != '0') { echo '<small class="description" style="color:red" >' . __('Album order # has only effect if you set the album sort order method to <b>Order #</b> in the Photo Albums -> Settings screen.<br />', 'wp-photo-album-plus') . '</small>' . ' '; } // Parent echo __('Parent album:', 'wp-photo-album-plus') . ' '; if (wppa_extended_access()) { echo '<select' . ' id="wppa-parsel"' . ' style="max-width:100%;"' . ' onchange="wppaAjaxUpdateAlbum( ' . $id . ', \'a_parent\', this )"' . ' >' . wppa_album_select_a(array('checkaccess' => true, 'exclude' => $id, 'selected' => $a_parent, 'addselected' => true, 'addnone' => true, 'addseparate' => true, 'disableancestors' => true, 'path' => wppa_switch('hier_albsel'))) . '</select>'; } else { echo '<select' . ' id="wppa-parsel"' . ' style="max-width:100%;"' . ' onchange="wppaAjaxUpdateAlbum( ' . $id . ', \'a_parent\', this )"' . ' >' . wppa_album_select_a(array('checkaccess' => true, 'exclude' => $id, 'selected' => $a_parent, 'addselected' => true, 'disableancestors' => true, 'path' => wppa_switch('hier_albsel'))) . '</select>'; } echo ' '; // P-order-by echo __('Photo order:', 'wp-photo-album-plus') . ' '; $options = array(__('--- default --- See Table IV-C1', 'wp-photo-album-plus'), __('Order #', 'wp-photo-album-plus'), __('Name', 'wp-photo-album-plus'), __('Random', 'wp-photo-album-plus'), __('Rating mean value', 'wp-photo-album-plus'), __('Number of votes', 'wp-photo-album-plus'), __('Timestamp', 'wp-photo-album-plus'), __('EXIF Date', 'wp-photo-album-plus'), __('Order # desc', 'wp-photo-album-plus'), __('Name desc', 'wp-photo-album-plus'), __('Rating mean value desc', 'wp-photo-album-plus'), __('Number of votes desc', 'wp-photo-album-plus'), __('Timestamp desc', 'wp-photo-album-plus'), __('EXIF Date desc', 'wp-photo-album-plus')); $values = array('0', '1', '2', '3', '4', '6', '5', '7', '-1', '-2', '-4', '-6', '-5', '-7'); echo '<select' . ' onchange="wppaAjaxUpdateAlbum( ' . $id . ', \'p_order_by\', this )"' . ' >'; foreach (array_keys($options) as $key) { $sel = $values[$key] == $p_order_by ? ' selected="selected"' : ''; echo '<option value="' . $values[$key] . '"' . $sel . ' >' . $options[$key] . '</option>'; } echo '</select>' . ' '; // Child album order echo __('Sub album sort order:', 'wp-photo-album-plus') . ' ' . '<select' . ' onchange="wppaAjaxUpdateAlbum( ' . $id . ', \'suba_order_by\', this )"' . ' >' . '<option value="0"' . ($suba_order_by == '0' ? 'selected="selected"' : '') . ' >' . __('--- default --- See Table IV-D1', 'wp-photo-album-plus') . '</option>' . '<option value="3"' . ($suba_order_by == '3' ? 'selected="selected"' : '') . ' >' . __('Random', 'wp-photo-album-plus') . '</option>' . '<option value="1"' . ($suba_order_by == '1' ? 'selected="selected"' : '') . ' >' . __('Order #', 'wp-photo-album-plus') . '</option>' . '<option value="-1"' . ($suba_order_by == '-1' ? 'selected="selected"' : '') . ' >' . __('Order # reverse', 'wp-photo-album-plus') . '</option>' . '<option value="2"' . ($suba_order_by == '2' ? 'selected="selected"' : '') . ' >' . __('Name', 'wp-photo-album-plus') . '</option>' . '<option value="-2"' . ($suba_order_by == '-2' ? 'selected="selected"' : '') . ' >' . __('Name reverse', 'wp-photo-album-plus') . '</option>' . '<option value="5"' . ($suba_order_by == '5' ? 'selected="selected"' : '') . ' >' . __('Timestamp', 'wp-photo-album-plus') . '</option>' . '<option value="-5"' . ($suba_order_by == '-5' ? 'selected="selected"' : '') . ' >' . __('Timestamp reverse', 'wp-photo-album-plus') . '</option>' . '</select>' . ' '; // Alternative thumbnail size if (!wppa_switch('alt_is_restricted') || current_user_can('administrator')) { echo __('Use alt thumbsize:', 'wp-photo-album-plus') . '<select' . ' onchange="wppaAjaxUpdateAlbum( ' . $id . ', \'alt_thumbsize\', this )"' . ' >' . '<option value="0"' . ($alt_thumbsize ? '' : ' selected="selected"') . ' >' . __('no', 'wp-photo-album-plus') . '</option>' . '<option value="yes"' . ($alt_thumbsize ? ' selected="selected"' : '') . ' >' . __('yes', 'wp-photo-album-plus') . '</option>' . '</select>' . ' '; } // Cover type if (!wppa_switch('covertype_is_restricted') || wppa_user_is('administrator')) { echo __('Cover Type:', 'wp-photo-album-plus') . ' '; $sel = ' selected="selected"'; echo '<select' . ' onchange="wppaAjaxUpdateAlbum( ' . $id . ', \'cover_type\', this )"' . ' >' . '<option value=""' . ($cover_type == '' ? $sel : '') . ' >' . __('--- default --- See Table IV-D6', 'wp-photo-album-plus') . '</option>' . '<option value="default"' . ($cover_type == 'default' ? $sel : '') . ' >' . __('Standard', 'wp-photo-album-plus') . '</option>' . '<option value="longdesc"' . ($cover_type == 'longdesc' ? $sel : '') . ' >' . __('Long Descriptions', 'wp-photo-album-plus') . '</option>' . '<option value="imagefactory"' . ($cover_type == 'imagefactory' ? $sel : '') . ' >' . __('Image Factory', 'wp-photo-album-plus') . '</option>' . '<option value="default-mcr"' . ($cover_type == 'default-mcr' ? $sel : '') . ' >' . __('Standard mcr', 'wp-photo-album-plus') . '</option>' . '<option value="longdesc-mcr"' . ($cover_type == 'longdesc-mcr' ? $sel : '') . ' >' . __('Long Descriptions mcr', 'wp-photo-album-plus') . '</option>' . '<option value="imagefactory-mcr"' . ($cover_type == 'imagefactory-mcr' ? $sel : '') . ' >' . __('Image Factory mcr', 'wp-photo-album-plus') . '</option>' . '</select>' . ' '; } // Cover photo echo __('Cover Photo:', 'wp-photo-album-plus') . ' ' . wppa_main_photo($main_photo, $cover_type) . ' '; // Upload limit echo __('Upload limit:', 'wp-photo-album-plus') . ' '; $lims = explode('/', $upload_limit); if (!is_array($lims)) { $lims = array('0', '0'); } if (wppa_user_is('administrator')) { echo '<input' . ' type="text"' . ' id="upload_limit_count"' . ' value="' . $lims[0] . '"' . ' style="width:50px"' . ' title="' . esc_attr(__('Set the upload limit (0 means unlimited).', 'wp-photo-album-plus')) . '"' . ' onchange="wppaRefreshAfter(); wppaAjaxUpdateAlbum( ' . $id . ', \'upload_limit_count\', this )"' . ' />'; $sel = ' selected="selected"'; echo '<select onchange="wppaRefreshAfter(); wppaAjaxUpdateAlbum( ' . $id . ', \'upload_limit_time\', this )" >' . '<option value="0"' . ($lims[1] == '0' ? $sel : '') . ' >' . __('for ever', 'wp-photo-album-plus') . '</option>' . '<option value="3600"' . ($lims[1] == '3600' ? $sel : '') . ' >' . __('per hour', 'wp-photo-album-plus') . '</option>' . '<option value="86400"' . ($lims[1] == '86400' ? $sel : '') . ' >' . __('per day', 'wp-photo-album-plus') . '</option>' . '<option value="604800"' . ($lims[1] == '604800' ? $sel : '') . ' >' . __('per week', 'wp-photo-album-plus') . '</option>' . '<option value="2592000"' . ($lims[1] == '2592000' ? $sel : '') . ' >' . __('per month', 'wp-photo-album-plus') . '</option>' . '<option value="31536000"' . ($lims[1] == '31536000' ? $sel : '') . ' >' . __('per year', 'wp-photo-album-plus') . '</option>' . '</select>' . ' '; } else { if ($lims[0] == '0') { _e('Unlimited', 'wp-photo-album-plus'); } else { echo $lims[0] . ' '; switch ($lims[1]) { case '3600': _e('per hour', 'wp-photo-album-plus'); break; case '86400': _e('per day', 'wp-photo-album-plus'); break; case '604800': _e('per week', 'wp-photo-album-plus'); break; case '2592000': _e('per month', 'wp-photo-album-plus'); break; case '31536000': _e('per year', 'wp-photo-album-plus'); break; } } echo '. '; } // Status echo __('Remark:', 'wp-photo-album-plus') . ' ' . '<span' . ' id="albumstatus-' . $id . '"' . ' style="font-weight:bold;color:#00AA00;"' . ' >' . sprintf(__('Album %s is not modified yet', 'wp-photo-album-plus'), $id) . '</span>'; echo '</td>' . '</tr>' . '</tbody>' . '</table>'; // Section 2 echo "\n" . '<!-- Album Section 2 -->' . '<table' . ' class="wppa-table wppa-album-table"' . ' >' . '<tbody>'; // Name echo '<tr>' . '<td>' . __('Name:', 'wp-photo-album-plus') . '</td>' . '<td>' . '<input' . ' type="text"' . ' style="width:100%;"' . ' onkeyup="wppaAjaxUpdateAlbum( ' . $id . ', \'name\', this )"' . ' onchange="wppaAjaxUpdateAlbum( ' . $id . ', \'name\', this )"' . ' value="' . esc_attr($name) . '"' . ' />' . '<span class="description" >' . __('Type the name of the album. Do not leave this empty.', 'wp-photo-album-plus') . '</span>' . '</td>' . '<td>' . '</td>' . '</tr>'; // Description echo '<tr>' . '<td>' . __('Description:', 'wp-photo-album-plus') . '</td>'; if (wppa_switch('use_wp_editor')) { echo '<td>'; wp_editor($description, 'wppaalbumdesc', array('wpautop' => true, 'media_buttons' => false, 'textarea_rows' => '6', 'tinymce' => true)); echo '<input' . ' type="button"' . ' class="button-secundary"' . ' value="' . esc_attr(__('Update Album description', 'wp-photo-album-plus')) . '"' . ' onclick="wppaAjaxUpdateAlbum( ' . $id . ', \'description\', document.getElementById( \'wppaalbumdesc\' ) )"' . ' />' . '<img' . ' id="wppa-album-spin"' . ' src="' . wppa_get_imgdir() . 'spinner.gif' . '"' . ' alt="Spin"' . ' style="visibility:hidden"' . ' />' . '</td>'; } else { echo '<td>' . '<textarea' . ' style="width:100%;height:60px;"' . ' onkeyup="wppaAjaxUpdateAlbum( ' . $id . ', \'description\', this )"' . ' onchange="wppaAjaxUpdateAlbum( ' . $id . ', \'description\', this )"' . ' >' . $description . '</textarea>' . '</td>'; } echo '<td>' . '</td>' . '</tr>'; // Categories echo '<tr>' . '<td>' . __('Catogories:', 'wp-photo-album-plus') . '</td>' . '<td>' . '<input' . ' id="cats"' . ' type="text"' . ' style="width:100%;"' . ' onkeyup="wppaAjaxUpdateAlbum( ' . $id . ', \'cats\', this )"' . ' onchange="wppaAjaxUpdateAlbum( ' . $id . ', \'cats\', this )"' . ' value="' . esc_attr($cats) . '"' . ' />' . '<br />' . '<span class="description" >' . __('Separate categories with commas.', 'wp-photo-album-plus') . '</span>' . '</td>' . '<td>' . '<select' . ' onchange="wppaAddCat( this.value, \'cats\' ); wppaAjaxUpdateAlbum( ' . $id . ', \'cats\', document.getElementById( \'cats\' ) )"' . ' >'; $catlist = wppa_get_catlist(); if (is_array($catlist)) { echo '<option value="" >' . __('- select to add -', 'wp-photo-album-plus') . '</option>'; foreach ($catlist as $cat) { echo '<option value="' . $cat['cat'] . '" >' . $cat['cat'] . '</option>'; } } else { echo '<option value="0" >' . __('No categories yet', 'wp-photo-album-plus') . '</option>'; } echo '</select>' . '</td>' . '</tr>'; // Default tags echo '<tr>' . '<td>' . __('Default photo tags:', 'wp-photo-album-plus') . '</td>' . '<td>' . '<input' . ' type="text"' . ' id="default_tags"' . ' value="' . esc_attr($default_tags) . '"' . ' style="width:100%"' . ' onkeyup="wppaAjaxUpdateAlbum( ' . $id . ', \'default_tags\', this )"' . ' onchange="wppaAjaxUpdateAlbum( ' . $id . ', \'default_tags\', this )"' . ' />' . '<br />' . '<span class="description">' . __('Enter the tags that you want to be assigned to new photos in this album.', 'wp-photo-album-plus') . '</span>' . '</td>' . '<td>' . '</td>' . '</tr>'; // Custom if (wppa_switch('album_custom_fields')) { $custom = wppa_get_album_item($edit_id, 'custom'); if ($custom) { $custom_data = unserialize($custom); } else { $custom_data = array('', '', '', '', '', '', '', '', '', ''); } foreach (array_keys($custom_data) as $key) { if (wppa_opt('album_custom_caption_' . $key)) { echo '<tr>' . '<td>' . apply_filters('translate_text', wppa_opt('album_custom_caption_' . $key)) . '<small style="float:right" >' . '(w#cc' . $key . ')' . '</small>:' . '</td>' . '<td>' . '<input' . ' type="text"' . ' style="width:100%;"' . ' id="album_custom_' . $key . '-' . $id . '"' . ' onkeyup="wppaAjaxUpdateAlbum( ' . $id . ', \'album_custom_' . $key . '\', this );"' . ' onchange="wppaAjaxUpdateAlbum( ' . $id . ', \'album_custom_' . $key . '\', this );"' . ' value="' . esc_attr(stripslashes($custom_data[$key])) . '"' . ' />' . '</td>' . '<td>' . '<small>' . '(w#cd' . $key . ')' . '</small>' . '</td>' . '</tr>'; } } } // Link type echo '<tr>' . '<td>' . __('Link type:', 'wp-photo-album-plus') . '</td>' . '<td>'; $sel = ' selected="selected"'; $lt = $cover_linktype; /* if ( !$linktype ) $linktype = 'content'; /* Default */ /* if ( $albuminfo['cover_linkpage'] == '-1' ) $linktype = 'none'; /* for backward compatibility */ echo '<select onchange="wppaAjaxUpdateAlbum( ' . $id . ', \'cover_linktype\', this )" >' . '<option value="content"' . ($lt == 'content' ? $sel : '') . ' >' . __('the sub-albums and thumbnails', 'wp-photo-album-plus') . '</option>' . '<option value="albums"' . ($lt == 'albums' ? $sel : '') . ' >' . __('the sub-albums', 'wp-photo-album-plus') . '</option>' . '<option value="thumbs"' . ($lt == 'thumbs' ? $sel : '') . ' >' . __('the thumbnails', 'wp-photo-album-plus') . '</option>' . '<option value="slide"' . ($lt == 'slide' ? $sel : '') . ' >' . __('the album photos as slideshow', 'wp-photo-album-plus') . '</option>' . '<option value="page"' . ($lt == 'page' ? $sel : '') . ' >' . __('the link page with a clean url', 'wp-photo-album-plus') . '</option>' . '<option value="none"' . ($lt == 'none' ? $sel : '') . ' >' . __('no link at all', 'wp-photo-album-plus') . '</option>' . '</select>' . '<br />' . '<span class="description">'; if (wppa_switch('auto_page')) { _e('If you select "the link page with a clean url", select an Auto Page of one of the photos in this album.', 'wp-photo-album-plus'); } else { _e('If you select "the link page with a clean url", make sure you enter the correct shortcode on the target page.', 'wp-photo-album-plus'); } echo '</span>' . '</td>' . '<td>' . '</td>' . '</tr>'; // Link page if (!wppa_switch('link_is_restricted') || wppa_user_is('administrator')) { echo '<tr>' . '<td>' . __('Link to:', 'wp-photo-album-plus') . '</td>' . '<td>'; $query = "SELECT `ID`, `post_title` FROM `" . $wpdb->posts . "` WHERE `post_type` = 'page' AND `post_status` = 'publish' ORDER BY `post_title` ASC"; $pages = $wpdb->get_results($query, ARRAY_A); if (empty($pages)) { _e('There are no pages (yet) to link to.', 'wp-photo-album-plus'); } else { $linkpage = $albuminfo['cover_linkpage']; if (!is_numeric($linkpage)) { $linkpage = '0'; } echo '<select' . ' onchange="wppaAjaxUpdateAlbum( ' . $id . ' , \'cover_linkpage\', this )"' . ' style="max-width:100%;"' . '>' . '<option value="0"' . ($linkpage == '0' ? $sel : '') . ' >' . __('--- the same page or post ---', 'wp-photo-album-plus') . '</option>'; foreach ($pages as $page) { echo '<option value="' . $page['ID'] . '"' . ($linkpage == $page['ID'] ? $sel : '') . ' >' . __($page['post_title']) . '</option>'; } echo '</select>' . '<br />' . '<span class="description" >' . __('If you want, you can link the title to a WP page in stead of the album\'s content. If so, select the page the title links to.', 'wp-photo-album-plus') . '</span>'; } echo '</td>' . '<td>' . '</td>' . '</tr>'; } // Schedule echo '<tr>' . '<td>' . __('Schedule:', 'wp-photo-album-plus') . ' ' . '<input' . ' type="checkbox"' . ' id="schedule-box"' . ($albuminfo['scheduledtm'] ? ' checked="checked"' : '') . ' onchange="wppaChangeScheduleAlbum(' . $id . ', this );"' . ' />' . '</td>' . '<td>' . '<input type="hidden" value="" id="wppa-dummy" />' . '<span class="wppa-datetime-' . $id . '"' . ($albuminfo['scheduledtm'] ? '' : ' style="display:none;"') . ' >' . wppa_get_date_time_select_html('album', $id, true) . '</span>' . '<br />' . '<span class="description" >' . __('If enabled, new photos will have their status set scheduled for publication on the date/time specified here.', 'wp-photo-album-plus') . '</span>' . '</td>' . '<td>' . '</td>' . '</tr>'; echo '</tbody>' . '</table>'; // Section 3, Actions echo "\n" . '<!-- Album Section 3 -->' . '<table' . ' class="wppa-table wppa-album-table"' . ' >' . '<tbody>' . '<tr>' . '<td>'; // Inherit cats echo '<input' . ' type="button"' . ' title="' . esc_attr(__('Apply categories to all (grand)children.', 'wp-photo-album-plus')) . '"' . ' onclick="wppaTryInheritCats( ' . $id . ' )"' . ' value="' . esc_attr(__('Inherit Cats', 'wp-photo-album-plus')) . '"' . ' />' . '<input' . ' type="button"' . ' title="' . esc_attr(__('Add categories to all (grand)children.', 'wp-photo-album-plus')) . '"' . ' onclick="wppaTryAddCats( ' . $id . ' )"' . ' value="' . esc_attr(__('Add Inherit Cats', 'wp-photo-album-plus')) . '"' . ' />'; // Apply default tags echo '<input' . ' type="button"' . ' title="' . esc_attr(__('Tag all photos in this album with the default tags.', 'wp-photo-album-plus')) . '"' . ' onclick="wppaTryApplyDeftags( ' . $id . ' )"' . ' value="' . esc_attr(__('Apply default tags', 'wp-photo-album-plus')) . '"' . ' />' . '<input' . ' type="button"' . ' title="' . esc_attr(__('Add the default tags to all photos in this album.', 'wp-photo-album-plus')) . '"' . ' onclick="wppaTryAddDeftags( ' . $id . ' )"' . ' value="' . esc_attr(__('Add default tags', 'wp-photo-album-plus')) . '"' . ' />'; // Schedule all echo '<input' . ' type="button"' . ' title="' . esc_attr(__('Tag all photos in this album with the default tags.', 'wp-photo-album-plus')) . '"' . ' onclick="wppaTryScheduleAll( ' . $id . ' )"' . ' value="' . esc_attr(__('Schedule all', 'wp-photo-album-plus')) . '"' . ' />'; // Reset Ratings if (wppa_switch('rating_on')) { $onc = 'if (confirm(\'' . __('Are you sure you want to clear the ratings in this album?', 'wp-photo-album-plus') . '\')) { wppaRefreshAfter(); wppaAjaxUpdateAlbum( ' . $id . ', \'clear_ratings\', 0 ); }'; echo '<input' . ' type="button"' . ' onclick="' . $onc . '"' . ' value="' . esc_attr(__('Reset ratings', 'wp-photo-album-plus')) . '"' . ' />'; } // Apply New photo desc if (wppa_switch('apply_newphoto_desc')) { $onc = 'if ( confirm(\'Are you sure you want to set the description of all photos to \\n\\n' . esc_js(wppa_opt('newphoto_description')) . '\')) document.location=\'' . wppa_ea_url($albuminfo['id'], 'edit') . '&applynewdesc\''; echo '<input' . ' type="button"' . ' onclick="' . $onc . '"' . ' value="' . esc_attr(__('Apply new photo desc', 'wp-photo-album-plus')) . '"' . ' />'; } // Remake all if (wppa_user_is('administrator')) { $onc = 'if ( confirm(\'Are you sure you want to remake the files for all photos in this album?\')) document.location=\'' . wppa_ea_url($albuminfo['id'], 'edit') . '&remakealbum\''; echo '<input' . ' type="button"' . ' onclick="' . $onc . '"' . ' value="' . esc_attr(__('Remake all', 'wp-photo-album-plus')) . '"' . ' />'; } // Goto Upload if (current_user_can('wppa_upload')) { $a = wppa_allow_uploads($id); if ($a) { $full = false; } else { $full = true; } $onc = $full ? 'alert(\'' . __('Change the upload limit or remove photos to enable new uploads.', 'wp-photo-album-plus') . '\')' : 'document.location = \'' . wppa_dbg_url(get_admin_url()) . '/admin.php?page=wppa_upload_photos&wppa-set-album=' . $id . '\''; $val = $full ? __('Album is full', 'wp-photo-album-plus') : __('Upload to this album', 'wp-photo-album-plus') . ($a > '0' ? ' ' . sprintf(__('(max %d)', 'wp-photo-album-plus'), $a) : ''); echo '<input' . ' type="button"' . ' onclick="' . $onc . '"' . ' value="' . $val . '"' . ' />'; } echo '</td>' . '</tr>' . '</tbody>' . '</table>'; ?> </div> <?php wppa_album_sequence($edit_id); ?> <a id="manage-photos" ></a> <img src="<?php echo WPPA_URL . '/img/camera32.png'; ?> " alt="Camera icon" /> <h1 style="display:inline;" ><?php _e('Manage Photos', 'wp-photo-album-plus'); if (isset($_REQUEST['bulk'])) { echo ' - <small><i>' . __('Copy / move / delete / edit name / edit description / change status', 'wp-photo-album-plus') . '</i></small>'; } elseif (isset($_REQUEST['seq'])) { echo ' - <small><i>' . __('Change sequence order by drag and drop', 'wp-photo-album-plus') . '</i></small>'; } elseif (isset($_REQUEST['quick'])) { echo ' - <small><i>' . __('Edit photo information except copy and move', 'wp-photo-album-plus') . '</i></small>'; } else { echo ' - <small><i>' . __('Edit photo information', 'wp-photo-album-plus') . '</i></small>'; } ?> </h1><div style="clear:both;" > </div> <?php if (isset($_REQUEST['bulk'])) { wppa_album_photos_bulk($edit_id); } elseif (isset($_REQUEST['seq'])) { wppa_album_photos_sequence($edit_id); } else { wppa_album_photos($edit_id); } ?> <br /><a href="#manage-photos"><?php _e('Top of page', 'wp-photo-album-plus'); ?> </a> </div> <?php } else { if ($_REQUEST['tab'] == 'cmod') { $photo = $_REQUEST['photo']; $alb = wppa_get_album_id_by_photo_id($photo); if (current_user_can('wppa_comments') && wppa_have_access($alb)) { ?> <div class="wrap"> <img src="<?php echo WPPA_URL . '/img/page_green.png'; ?> " /> <h1 style="display:inline;" ><?php _e('Moderate comment', 'wp-photo-album-plus'); ?> </h1> <div style="clear:both;" > </div> <?php wppa_album_photos('', $photo); ?> </div> <?php } else { wp_die('You do not have the rights to do this'); } } elseif ($_REQUEST['tab'] == 'pmod' || $_REQUEST['tab'] == 'pedit') { $photo = $_REQUEST['photo']; $alb = wppa_get_album_id_by_photo_id($photo); if (current_user_can('wppa_admin') && wppa_have_access($alb)) { ?> <div class="wrap"> <img src="<?php echo WPPA_URL . '/img/page_green.png'; ?> " /> <h1 style="display:inline;" ><?php if ($_REQUEST['tab'] == 'pmod') { _e('Moderate photo', 'wp-photo-album-plus'); } else { _e('Edit photo', 'wp-photo-album-plus'); } ?> </h1><div style="clear:both;" > </div> <?php wppa_album_photos('', $photo); ?> </div> <?php } else { wp_die('You do not have the rights to do this'); } } else { if ($_REQUEST['tab'] == 'del') { $album_owner = $wpdb->get_var($wpdb->prepare("SELECT `owner` FROM " . WPPA_ALBUMS . " WHERE `id` = %s", $_REQUEST['edit_id'])); if ($album_owner == '--- public ---' && !current_user_can('administrator') || !wppa_have_access($_REQUEST['edit_id'])) { wp_die('You do not have the rights to delete this album'); } ?> <div class="wrap"> <img src="<?php echo WPPA_URL . '/img/albumdel32.png'; ?> " /> <h1 style="display:inline;" ><?php _e('Delete Album', 'wp-photo-album-plus'); ?> </h1> <p><?php _e('Album:', 'wp-photo-album-plus'); ?> <b><?php echo wppa_get_album_name($_REQUEST['edit_id']); ?> .</b></p> <p><?php _e('Are you sure you want to delete this album?', 'wp-photo-album-plus'); ?> <br /> <?php _e('Press Delete to continue, and Cancel to go back.', 'wp-photo-album-plus'); ?> </p> <form name="wppa-del-form" action="<?php echo wppa_dbg_url(get_admin_url() . 'admin.php?page=wppa_admin_menu'); ?> " method="post"> <?php wp_nonce_field('$wppa_nonce', WPPA_NONCE); ?> <p> <?php _e('What would you like to do with photos currently in the album?', 'wp-photo-album-plus'); ?> <br /> <input type="radio" name="wppa-del-photos" value="delete" checked="checked" /> <?php _e('Delete', 'wp-photo-album-plus'); ?> <br /> <input type="radio" name="wppa-del-photos" value="move" /> <?php _e('Move to:', 'wp-photo-album-plus'); ?> <select name="wppa-move-album"> <?php echo wppa_album_select_a(array('checkaccess' => true, 'path' => wppa_switch('hier_albsel'), 'selected' => '0', 'exclude' => $_REQUEST['edit_id'], 'addpleaseselect' => true)); ?> </select> </p> <input type="hidden" name="wppa-del-id" value="<?php echo $_REQUEST['edit_id']; ?> " /> <input type="button" class="button-primary" value="<?php _e('Cancel', 'wp-photo-album-plus'); ?> " onclick="parent.history.back()" /> <input type="submit" class="button-primary" style="color: red" name="wppa-del-confirm" value="<?php _e('Delete', 'wp-photo-album-plus'); ?> " /> </form> </div> <?php } } } } else { // 'tab' not set. default, album manage page. // if add form has been submitted // if (isset($_POST['wppa-na-submit'])) { // check_admin_referer( '$wppa_nonce', WPPA_NONCE ); // wppa_add_album(); // } // if album deleted if (isset($_POST['wppa-del-confirm'])) { check_admin_referer('$wppa_nonce', WPPA_NONCE); $album_owner = $wpdb->get_var($wpdb->prepare("SELECT `owner` FROM " . WPPA_ALBUMS . " WHERE `id` = %s", $_POST['wppa-del-id'])); if ($album_owner == '--- public ---' && !current_user_can('administrator') || !wppa_have_access($_POST['wppa-del-id'])) { wp_die('You do not have the rights to delete this album'); } if ($_POST['wppa-del-photos'] == 'move') { $move = $_POST['wppa-move-album']; if (wppa_have_access($move)) { wppa_del_album($_POST['wppa-del-id'], $move); } else { wppa_error_message(__('Unable to move photos. Album not deleted.', 'wp-photo-album-plus')); } } else { wppa_del_album($_POST['wppa-del-id'], ''); } } if (wppa_extended_access()) { if (isset($_REQUEST['switchto'])) { update_option('wppa_album_table_' . wppa_get_user(), $_REQUEST['switchto']); } $style = get_option('wppa_album_table_' . wppa_get_user(), 'flat'); } else { $style = 'flat'; } // The Manage Album page ?> <div class="wrap"> <?php wppa_admin_spinner(); ?> <img src="<?php echo WPPA_URL . '/img/album32.png'; ?> " /> <h1 style="display:inline;" ><?php _e('Manage Albums', 'wp-photo-album-plus'); ?> </h1> <div style="clear:both;" > </div> <?php // The Create new album button if (wppa_can_create_top_album()) { $url = wppa_dbg_url(get_admin_url() . 'admin.php?page=wppa_admin_menu&tab=edit&edit_id=new'); $vfy = __('Are you sure you want to create a new album?', 'wp-photo-album-plus'); echo '<form method="post" action="' . get_admin_url() . 'admin.php?page=wppa_admin_menu" style="float:left; margin-right:12px;" >'; echo '<input type="hidden" name="tab" value="edit" />'; echo '<input type="hidden" name="edit_id" value="new" />'; $onc = wppa_switch('confirm_create') ? 'onclick="return confirm(\'' . $vfy . '\');"' : ''; echo '<input type="submit" class="button-primary" ' . $onc . ' value="' . __('Create New Empty Album', 'wp-photo-album-plus') . '" style="height:28px;" />'; echo '</form>'; } // The switch to button(s) if (wppa_extended_access()) { if ($style == 'flat') { ?> <input type="button" class="button-secundary" onclick="document.location='<?php echo wppa_dbg_url(get_admin_url() . 'admin.php?page=wppa_admin_menu&switchto=collapsable'); ?> '" value="<?php _e('Switch to Collapsable table', 'wp-photo-album-plus'); ?> " /> <?php } if ($style == 'collapsable') { ?> <input type="button" class="button-secundary" onclick="document.location='<?php echo wppa_dbg_url(get_admin_url() . 'admin.php?page=wppa_admin_menu&switchto=flat'); ?> '" value="<?php _e('Switch to Flat table', 'wp-photo-album-plus'); ?> " /> <input type="button" class="button-secundary" id="wppa-open-all" style="display:inline;" onclick=" jQuery('#wppa-close-all').css('display','inline'); jQuery(this).css('display','none'); jQuery('.wppa-alb-onoff').css('display',''); jQuery('.alb-arrow-off').css('display',''); jQuery('.alb-arrow-on').css('display','none'); " value="<?php _e('Open all', 'wp-photo-album-plus'); ?> " /> <input type="button" class="button-secundary" id="wppa-close-all" style="display:none;" onclick=" jQuery('#wppa-open-all').css('display','inline'); jQuery(this).css('display','none'); jQuery('.wppa-alb-onoff').css('display','none'); jQuery('.alb-arrow-on').css('display',''); jQuery('.alb-arrow-off').css('display','none'); " value="<?php _e('Close all', 'wp-photo-album-plus'); ?> " /> <?php } } ?> <br /> <?php // The table of existing albums if ($style == 'flat') { wppa_admin_albums_flat(); } else { wppa_admin_albums_collapsable(); } ?> <br /> <?php wppa_album_sequence('0'); ?> </div> <?php } }
function wppa_verify_page($slug) { global $wpdb; global $wppa_opt; if (!isset($wppa_opt[$slug])) { wppa_error_message('Unexpected error in wppa_verify_page()', 'red', 'force'); return; } $iret = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM `" . $wpdb->posts . "` WHERE `post_type` = 'page' AND `post_status` = 'publish' AND `ID` = %s", wppa_opt($slug))); if (!$iret) { wppa_update_option($slug, '0'); } }
function wppa_get_the_landing_page($slug, $title) { $page = wppa_opt($slug); if (!$page || !wppa_page_exists($page)) { $page = wppa_create_page($title); wppa_update_option('wppa_' . $slug, $page); wppa_opt($slug, $page); } return $page; }
function wppa_get_the_landing_page($slug, $title) { global $wppa_opt; $page = wppa_opt($slug); if (!$page || !wppa_page_exists($page)) { $page = wppa_create_page($title); wppa_update_option($slug, $page); $wppa_opt[$slug] = $page; } return $page; }
function wppa_initialize_runtime($force = false) { global $wppa; global $wppa_opt; global $wppa_revno; global $wppa_api_version; global $wpdb; global $wppa_initruntimetime; global $wppa_defaults; $wppa_initruntimetime = -microtime(true); if ($force) { $wppa = false; // destroy existing arrays $wppa_opt = false; delete_option('wppa_cached_options'); } if (is_array($wppa) && !$force) { return; // Done already } if (!is_array($wppa)) { $wppa = array('debug' => false, 'revno' => $wppa_revno, 'api_version' => $wppa_api_version, 'fullsize' => '', 'enlarge' => false, 'occur' => '0', 'mocc' => '0', 'widget_occur' => '0', 'in_widget' => false, 'is_cover' => '0', 'is_slide' => '0', 'is_slideonly' => '0', 'is_slideonlyf' => '0', 'is_filmonly' => '0', 'film_on' => '0', 'browse_on' => '0', 'name_on' => '0', 'desc_on' => '0', 'numbar_on' => '0', 'single_photo' => '', 'is_mphoto' => '0', 'start_album' => '', 'align' => '', 'src' => false, 'portrait_only' => false, 'in_widget_linkurl' => '', 'in_widget_linktitle' => '', 'in_widget_timeout' => '0', 'ss_widget_valign' => '', 'album_count' => '0', 'thumb_count' => '0', 'out' => '', 'auto_colwidth' => false, 'permalink' => '', 'rendering_enabled' => false, 'tabcount' => '0', 'comment_id' => '', 'comment_photo' => '0', 'comment_user' => '', 'comment_email' => '', 'comment_text' => '', 'no_default' => false, 'in_widget_frame_height' => '', 'in_widget_frame_width' => '', 'user_uploaded' => false, 'current_album' => '0', 'searchstring' => wppa_test_for_search(), 'searchresults' => '', 'any' => false, 'ajax' => false, 'error' => false, 'iptc' => false, 'exif' => false, 'is_topten' => false, 'topten_count' => '0', 'is_lasten' => false, 'lasten_count' => '0', 'is_featen' => false, 'featen_count' => '0', 'start_photo' => '0', 'is_single' => false, 'is_landing' => '0', 'is_comten' => false, 'comten_count' => '0', 'is_tag' => false, 'photos_only' => false, 'albums_only' => false, 'page' => '', 'geo' => '', 'continue' => '', 'is_upload' => false, 'ajax_import_files' => false, 'ajax_import_files_done' => false, 'ajax_import_files_error' => '', 'last_albums' => false, 'last_albums_parent' => '0', 'is_multitagbox' => false, 'is_tagcloudbox' => false, 'taglist' => '', 'tagcols' => '2', 'is_related' => false, 'related_count' => '0', 'is_owner' => '', 'is_upldr' => '', 'no_esc' => false, 'front_edit' => false, 'is_autopage' => false, 'is_cat' => false, 'bestof' => false, 'is_subsearch' => false, 'is_rootsearch' => false, 'is_superviewbox' => false, 'is_searchbox' => false, 'may_sub' => false, 'may_root' => false, 'links_no_page' => array('none', 'file', 'lightbox', 'lightboxsingle', 'fullpopup'), 'shortcode_content' => '', 'is_remote' => false, 'is_supersearch' => false, 'supersearch' => '', 'is_mobile' => wppa_is_mobile(), 'rel' => get_option('wppa_lightbox_name') == 'wppa' ? 'data-rel' : 'rel', 'lbtitle' => get_option('wppa_lightbox_name') == 'wppa' ? 'data-lbtitle' : 'title', 'alt' => 'even'); } $wppa_opt = get_option('wppa_cached_options', false); if (!is_array($wppa_opt)) { wppa_set_defaults(); $wppa_opt = $wppa_defaults; foreach (array_keys($wppa_opt) as $option) { $optval = get_option($option, 'nil'); if ($optval !== 'nil') { $wppa_opt[$option] = $optval; } } update_option('wppa_cached_options', $wppa_opt); } if (isset($_GET['debug']) && wppa_switch('wppa_allow_debug')) { $key = $_GET['debug'] ? $_GET['debug'] : E_ALL; $wppa['debug'] = $key; } wppa_load_language(); // Delete obsolete spam $spammaxage = wppa_opt('wppa_spam_maxage'); if ($spammaxage != 'none') { $time = time(); $obsolete = $time - $spammaxage; $iret = $wpdb->query($wpdb->prepare("DELETE FROM `" . WPPA_COMMENTS . "` WHERE `status` = 'spam' AND `timestamp` < %s", $obsolete)); if ($iret) { wppa_update_option('wppa_spam_auto_delcount', get_option('wppa_spam_auto_delcount', '0') + $iret); } } // Create an album if required if (wppa_switch('wppa_grant_an_album') && wppa_switch('wppa_owner_only') && is_user_logged_in() && (current_user_can('wppa_upload') || wppa_switch('wppa_user_upload_on'))) { $owner = wppa_get_user('login'); $user = wppa_get_user(wppa_opt('wppa_grant_name')); $albs = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM `" . WPPA_ALBUMS . "` WHERE `owner` = %s", $owner)); if (!$albs) { // make an album for this user $name = $user; if (is_admin()) { $desc = __('Default photo album for', 'wppa') . ' ' . $user; } else { $desc = __a('Default photo album for') . ' ' . $user; } $parent = wppa_opt('wppa_grant_parent'); $id = wppa_create_album_entry(array('name' => $name, 'description' => $desc, 'a_parent' => $parent)); wppa_flush_treecounts($parent); wppa_index_add('album', $id); } } $wppa_initruntimetime += microtime(true); }
function wppa_initialize_runtime($force = false) { global $wppa; global $wppa_opt; global $wppa_revno; global $wppa_api_version; global $wpdb; global $wppa_initruntimetime; global $wppa_defaults; $wppa_initruntimetime = -microtime(true); if ($force) { $wppa = false; // destroy existing arrays $wppa_opt = false; delete_option('wppa_cached_options'); } if (is_array($wppa) && !$force) { return; // Done already } if (!is_array($wppa)) { wppa_reset_occurrance(); } // Get the cache version of all settings $wppa_opt = get_option('wppa_cached_options', false); // Check for validity, only on admin pages (due to qTranslate behaviour), non ajax (to keep performance at front-end ajax). if (is_admin() && !defined('DOING_AJAX')) { if (is_array($wppa_opt) && md5(serialize($wppa_opt)) != get_option('wppa_md5_options', 'nil')) { // Log hash error wppa_log('Obs', 'Read hash:' . get_option('wppa_md5_options', 'nil') . ', computed hash:' . md5(serialize($wppa_opt))); // Something wrong. Let us see what, if not intentional! if (!$force) { foreach (array_keys($wppa_opt) as $key) { if ($wppa_opt[$key] != get_option($key)) { wppa_log('dbg', 'Corrupted setting found. Cached value=' . $wppa_opt[$key] . ', option value=' . get_option($key)); } } } $count = count($wppa_opt); // Report fix only if not intentional, with stacktrace if (!$force) { wppa_log('Fix', 'Option cache. Count=' . $count); } // Clear cached options to force rebuild $wppa_opt = false; } } // Rebuild cached options if required, i.e. when not yet existing or deleted. if (!is_array($wppa_opt)) { wppa_set_defaults(); $wppa_opt = $wppa_defaults; foreach (array_keys($wppa_opt) as $option) { $optval = get_option($option, 'nil'); if ($optval !== 'nil') { $wppa_opt[$option] = $optval; } } update_option('wppa_cached_options', $wppa_opt, true); update_option('wppa_md5_options', md5(serialize($wppa_opt)), true); // Verify success $temp = get_option('wppa_cached_options'); $hash = get_option('wppa_md5_options'); if (md5(serialize($temp)) != $hash) { wppa_log('Err', 'Discrepancy found. Count=' . count($temp)); } } if (isset($_GET['debug']) && wppa_switch('allow_debug')) { $key = $_GET['debug'] ? $_GET['debug'] : E_ALL; wppa('debug', $key); } // Delete obsolete spam $spammaxage = wppa_opt('spam_maxage'); if ($spammaxage != 'none') { $time = time(); $obsolete = $time - $spammaxage; $iret = $wpdb->query($wpdb->prepare("DELETE FROM `" . WPPA_COMMENTS . "` WHERE `status` = 'spam' AND `timestamp` < %s", $obsolete)); if ($iret) { wppa_update_option('wppa_spam_auto_delcount', get_option('wppa_spam_auto_delcount', '0') + $iret); } } $wppa_initruntimetime += microtime(true); }
function wppa_set_default($value, $key, $force) { $void_these = array('wppa_revision', 'wppa_rating_max', 'wppa_file_system'); if ($force) { if (!in_array($key, $void_these)) { wppa_update_option($key, $value); } } else { if (get_option($key, 'nil') == 'nil') { wppa_update_option($key, $value); } } }
function wppa_initialize_runtime($force = false) { global $wppa; global $wppa_opt; global $wppa_revno; global $wppa_api_version; global $wpdb; global $wppa_initruntimetime; global $wppa_defaults; $wppa_initruntimetime = -microtime(true); if ($force) { $wppa = false; // destroy existing arrays $wppa_opt = false; delete_option('wppa_cached_options'); } if (is_array($wppa) && !$force) { return; // Done already } if (!is_array($wppa)) { wppa_reset_occurrance(); } $wppa_opt = get_option('wppa_cached_options', false); if (!is_array($wppa_opt)) { wppa_set_defaults(); $wppa_opt = $wppa_defaults; foreach (array_keys($wppa_opt) as $option) { $optval = get_option($option, 'nil'); if ($optval !== 'nil') { $wppa_opt[$option] = $optval; } } update_option('wppa_cached_options', $wppa_opt); } if (isset($_GET['debug']) && wppa_switch('allow_debug')) { $key = $_GET['debug'] ? $_GET['debug'] : E_ALL; wppa('debug', $key); } // Delete obsolete spam $spammaxage = wppa_opt('spam_maxage'); if ($spammaxage != 'none') { $time = time(); $obsolete = $time - $spammaxage; $iret = $wpdb->query($wpdb->prepare("DELETE FROM `" . WPPA_COMMENTS . "` WHERE `status` = 'spam' AND `timestamp` < %s", $obsolete)); if ($iret) { wppa_update_option('wppa_spam_auto_delcount', get_option('wppa_spam_auto_delcount', '0') + $iret); } } // Create an album if required if (wppa_switch('grant_an_album') && wppa_switch('owner_only') && is_user_logged_in() && (current_user_can('wppa_upload') || wppa_switch('user_upload_on'))) { $owner = wppa_get_user('login'); $user = wppa_get_user(wppa_opt('grant_name')); $albs = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM `" . WPPA_ALBUMS . "` WHERE `owner` = %s", $owner)); if (!$albs) { // make an album for this user $name = $user; if (is_admin()) { $desc = __('Default photo album for', 'wp-photo-album-plus') . ' ' . $user; } else { $desc = __('Default photo album for', 'wp-photo-album-plus') . ' ' . $user; } $parent = wppa_opt('grant_parent'); $id = wppa_create_album_entry(array('name' => $name, 'description' => $desc, 'a_parent' => $parent)); wppa_flush_treecounts($parent); wppa_index_add('album', $id); } } $wppa_initruntimetime += microtime(true); }