function wppa_get_album_count($id, $use_treecounts = false) { global $wpdb; if ($use_treecounts && $id) { $treecounts = wppa_treecount_a($id); $count = $treecounts['selfalbums']; } else { $count = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM " . WPPA_ALBUMS . " WHERE a_parent=%s", $id)); } return $count; }
function do_album_navigator($parent, $page, $skip, $propclass, $extraclause = '') { global $wpdb; static $level; static $ca; if (!$level) { $level = '1'; if (isset($_REQUEST['wppa-album'])) { $ca = $_REQUEST['wppa-album']; } elseif (isset($_REQUEST['album'])) { $ca = $_REQUEST['album']; } else { $ca = '0'; } $ca = wppa_force_numeric_else($ca, '0'); if ($ca && !wppa_album_exists($ca)) { // wppa_log('dbg', 'Non-existent album '.$ca.' in url. Referrer= '.$_ENV["HTTP_REFERER"].', Request uri= '.$_ENV["REQUEST_URI"]); $ca = '0'; } } else { $level++; } $slide = wppa_opt('album_navigator_widget_linktype') == 'slide' ? '&wppa-slide=1' : ''; $w = $this->get_widget_id(); $p = $parent; $result = ''; $albums = $wpdb->get_results($wpdb->prepare("SELECT * FROM `" . WPPA_ALBUMS . "` WHERE `a_parent` = %s " . $extraclause . wppa_get_album_order(max('0', $parent)), $parent), ARRAY_A); if (!empty($albums)) { wppa_cache_album('add', $albums); $result .= '<ul>'; foreach ($albums as $album) { $a = $album['id']; $treecount = wppa_treecount_a($a); if ($treecount['albums'] || $treecount['photos'] > wppa_opt('min_thumbs') || $skip == 'no') { $result .= ' <li class="anw-' . $w . '-' . $p . $propclass . '" style="list-style:none; display:' . ($level == '1' ? '' : 'none') . ';">'; if (wppa_has_children($a)) { $result .= ' <div style="cursor:default;width:12px;float:left;text-align:center;font-weight:bold;" class="anw-' . $w . '-' . $a . '-" onclick="jQuery(\'.anw-' . $w . '-' . $a . '\').css(\'display\',\'\'); jQuery(\'.anw-' . $w . '-' . $a . '-\').css(\'display\',\'none\');" >' . ($a == $ca ? '»' : '+') . '</div> <div style="cursor:default;width:12px;float:left;text-align:center;font-weight:bold;display:none;" class="anw-' . $w . '-' . $a . '" onclick="jQuery(\'.anw-' . $w . '-' . $a . '-\').css(\'display\',\'\'); jQuery(\'.anw-' . $w . '-' . $a . '\').css(\'display\',\'none\'); jQuery(\'.p-' . $w . '-' . $a . '\').css(\'display\',\'none\');" >' . ($a == $ca ? '»' : '-') . '</div>'; } else { $result .= ' <div style="width:12px;float:left;" > ' . ($a == $ca ? '»' : '') . '</div>'; } $result .= ' <a href="' . wppa_encrypt_url(wppa_get_permalink($page) . '&wppa-album=' . $a . '&wppa-cover=0&wppa-occur=1' . $slide) . '">' . wppa_get_album_name($a) . '</a> </li>'; $newpropclass = $propclass . ' p-' . $w . '-' . $p; $result .= '<li class="anw-' . $w . '-' . $p . $propclass . '" style="list-style:none;" >' . $this->do_album_navigator($a, $page, $skip, $newpropclass, $extraclause) . '</li>'; } } $result .= '</ul>'; if ($level == '1' && $ca) { // && $parent != '-1' ) { $result .= '<script type="text/javascript" >'; while ($ca != '0' && $ca != '-1') { $result .= ' jQuery(\'.anw-' . $w . '-' . $ca . '\').css(\'display\',\'\'); jQuery(\'.anw-' . $w . '-' . $ca . '-\').css(\'display\',\'none\');'; $ca = wppa_get_parentalbumid($ca); } $result .= '</script>'; } } $level--; return str_replace('<ul></ul>', '', $result); }
function wppa_treecount_a($alb) { global $wpdb; global $wppa; $albums = '0'; $photos = '1'; $selfalbums = '3'; $selfphotos = '4'; $pendphotos = '5'; $scheduledphotos = '6'; // Initial fetch if (!isset($wppa['counts'])) { $wppa['counts'] = WPPA_MULTISITE_GLOBAL ? get_site_option('wppa_counts', array()) : get_option('wppa_counts', array()); } if (!isset($wppa['treecounts'])) { $wppa['treecounts'] = WPPA_MULTISITE_GLOBAL ? get_site_option('wppa_counts_tree', array()) : get_option('wppa_counts_tree', array()); } // See if we have this in cache if (isset($wppa['counts'][$alb]) && isset($wppa['treecounts'][$alb])) { // Album found $result['albums'] = $wppa['treecounts'][$alb][$albums]; // Use data $result['photos'] = $wppa['treecounts'][$alb][$photos]; $result['selfalbums'] = $wppa['counts'][$alb][$selfalbums]; $result['selfphotos'] = $wppa['counts'][$alb][$selfphotos]; $result['pendphotos'] = $wppa['counts'][$alb][$pendphotos]; $result['scheduledphotos'] = $wppa['counts'][$alb][$scheduledphotos]; return $result; // And return } else { $albs = $wpdb->get_results($wpdb->prepare("SELECT `id` FROM `" . WPPA_ALBUMS . "` WHERE `a_parent` = %s", $alb), ARRAY_A); $album_count = empty($albs) ? '0' : count($albs); $photo_count = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM `" . WPPA_PHOTOS . "` WHERE `album` = %s AND `status` <> 'pending' AND `status` <> 'scheduled'", $alb)); $pend_count = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM `" . WPPA_PHOTOS . "` WHERE `album` = %s AND `status` = 'pending'", $alb)); $sched_count = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM `" . WPPA_PHOTOS . "` WHERE `album` = %s AND `status` = 'scheduled'", $alb)); // Result this level $result = array('albums' => $album_count, 'photos' => $photo_count, 'selfalbums' => $album_count, 'selfphotos' => $photo_count, 'pendphotos' => $pend_count, 'scheduledphotos' => $sched_count); // Subalbums to process? if (empty($albs)) { } else { foreach ($albs as $albm) { $subcount = wppa_treecount_a($albm['id']); $result['albums'] += $subcount['albums']; $result['photos'] += $subcount['photos']; } } // Save to cache $wppa['treecounts'][$alb][$albums] = $result['albums']; $wppa['treecounts'][$alb][$photos] = $result['photos']; $wppa['counts'][$alb][$selfalbums] = $result['selfalbums']; $wppa['counts'][$alb][$selfphotos] = $result['selfphotos']; $wppa['counts'][$alb][$pendphotos] = $result['pendphotos']; $wppa['counts'][$alb][$scheduledphotos] = $result['scheduledphotos']; $bret = WPPA_MULTISITE_GLOBAL ? update_site_option('wppa_counts', $wppa['counts']) : update_option('wppa_counts', $wppa['counts']); $bret = WPPA_MULTISITE_GLOBAL ? update_site_option('wppa_counts_tree', $wppa['treecounts']) : update_option('wppa_counts_tree', $wppa['treecounts']); return $result; } }
function wppa_get_albums() { global $wpdb; global $wppa_session; wppa_dbg_msg('get_albums entered: ' . wppa('mocc') . ' Start_album=' . wppa('start_album') . ', Cover=' . wppa('is_cover')); if (wppa('is_topten')) { return false; } if (wppa('is_lasten')) { return false; } if (wppa('is_comten')) { return false; } if (wppa('is_featen')) { return false; } if (wppa('is_tag')) { return false; } if (wppa('photos_only')) { return false; } if (wppa('src') && wppa_switch('photos_only')) { return false; } if (wppa('is_owner') && !wppa('start_album')) { return false; } // No owner album( s ) if (wppa('calendar') == 'exifdtm') { return false; } if (wppa('calendar') == 'timestamp') { return false; } if (wppa('calendar') == 'modified') { return false; } // Supersearch? if (wppa('supersearch')) { $ss_data = explode(',', wppa('supersearch')); $data = $ss_data['3']; switch ($ss_data['1']) { // Category case 'c': $catlist = wppa_get_catlist(); if (strpos($data, '.')) { $temp = explode('.', $data); $ids = $catlist[$temp['0']]['ids']; $i = '1'; while ($i < count($temp)) { $ids = array_intersect($ids, $catlist[$temp[$i]]['ids']); $i++; } } else { $ids = $catlist[$data]['ids']; } if (empty($ids)) { $ids = array('0'); // Dummy } $query = "SELECT * FROM `" . WPPA_ALBUMS . "` WHERE `id` IN (" . implode(',', $ids) . ")"; $albums = $wpdb->get_results($query, ARRAY_A); wppa_dbg_q('Q_SS'); break; // Name. Name is converted to number or enum // Name. Name is converted to number or enum case 'n': $query = $wpdb->prepare("SELECT * FROM `" . WPPA_ALBUMS . "` WHERE `name` = %s", $data); $albums = $wpdb->get_results($query, ARRAY_A); wppa_dbg_q('Q_SS'); break; // Text // Text case 't': if (strpos($data, '.')) { $temp = explode('.', $data); $query = $wpdb->prepare("SELECT * FROM `" . WPPA_INDEX . "` WHERE `slug` = %s", $temp['0']); $indexes = $wpdb->get_row($query, ARRAY_A); wppa_dbg_q('Q_SS'); $ids = explode('.', wppa_expand_enum($indexes['albums'])); $i = '1'; while ($i < count($temp)) { $query = $wpdb->prepare("SELECT * FROM `" . WPPA_INDEX . "` WHERE `slug` = %s", $temp[$i]); $indexes = $wpdb->get_row($query, ARRAY_A); wppa_dbg_q('Q_SS'); $ids = array_intersect($ids, explode('.', wppa_expand_enum($indexes['albums']))); $i++; } } else { $query = $wpdb->prepare("SELECT * FROM `" . WPPA_INDEX . "` WHERE `slug` = %s", $data); $indexes = $wpdb->get_row($query, ARRAY_A); wppa_dbg_q('Q_SS'); $ids = explode('.', wppa_expand_enum($indexes['albums'])); } if (empty($ids)) { $ids = array('0'); // Dummy } $query = "SELECT * FROM `" . WPPA_ALBUMS . "` WHERE `id` IN (" . implode(',', $ids) . ")"; $albums = $wpdb->get_results($query, ARRAY_A); wppa_dbg_q('Q_SS'); break; } } elseif (wppa('src')) { $final_array = array(); $chunks = explode(',', stripslashes(strtolower(wppa('searchstring')))); // all chunks foreach ($chunks as $chunk) { if (strlen(trim($chunk))) { $words = wppa_index_raw_to_words($chunk); $album_array = array(); // all words in the searchstring foreach ($words as $word) { $word = trim($word); if (strlen($word) > 1) { if (strlen($word) > 10) { $word = substr($word, 0, 10); } if (wppa_switch('wild_front')) { $aidxs = $wpdb->get_results("SELECT `slug`, `albums` FROM `" . WPPA_INDEX . "` WHERE `slug` LIKE '%" . $word . "%'", ARRAY_A); } else { $aidxs = $wpdb->get_results("SELECT `slug`, `albums` FROM `" . WPPA_INDEX . "` WHERE `slug` LIKE '" . $word . "%'", ARRAY_A); } $albums = ''; if ($aidxs) { foreach ($aidxs as $ai) { $albums .= $ai['albums'] . ','; } } $album_array[] = wppa_index_string_to_array(trim($albums, ',')); } } // Must meet all words: intersect photo sets foreach (array_keys($album_array) as $idx) { if ($idx > '0') { $album_array['0'] = array_intersect($album_array['0'], $album_array[$idx]); } } // Save partial result if (isset($album_array['0'])) { $final_array = array_merge($final_array, $album_array['0']); } } } // Compose WHERE clause $selection = " `id` = '0' "; foreach (array_keys($final_array) as $p) { $selection .= "OR `id` = '" . $final_array[$p] . "' "; } // Get them $albums = $wpdb->get_results("SELECT * FROM `" . WPPA_ALBUMS . "` WHERE " . $selection . " " . wppa_get_album_order('0'), ARRAY_A); wppa_dbg_q('Q10'); // Exclusive separate albums? if (wppa_switch('excl_sep')) { foreach (array_keys($albums) as $idx) { if (wppa_is_separate($albums[$idx]['id'])) { unset($albums[$idx]); } } } // Rootsearch? if (wppa('is_rootsearch')) { $root = $wppa_session['search_root']; if (is_array($albums)) { $c1 = count($albums); foreach (array_keys($albums) as $idx) { if (!wppa_is_ancestor($root, $albums[$idx]['id'])) { unset($albums[$idx]); } } $c2 = count($albums); wppa_dbg_msg('Rootsearch albums:' . $c1 . ' -> ' . $c2); } } // Check maximum if (is_array($albums) && count($albums) > wppa_opt('max_search_albums') && wppa_opt('max_search_albums') != '0') { $alert_text = sprintf(__('There are %s albums found. Only the first %s will be shown. Please refine your search criteria.', 'wp-photo-album-plus'), count($albums), wppa_opt('max_search_albums')); wppa_alert($alert_text); foreach (array_keys($albums) as $idx) { if ($idx >= wppa_opt('max_search_albums')) { unset($albums[$idx]); } } } if (is_array($albums)) { wppa('any', true); } } else { // Its not search $id = wppa('start_album'); if (!$id) { $id = '0'; } // Do the query if ($id == '-2') { // All albums if (wppa('is_cover')) { $q = "SELECT * FROM `" . WPPA_ALBUMS . "` " . wppa_get_album_order(); wppa_dbg_q('Q11d'); $albums = $wpdb->get_results($q, ARRAY_A); } else { $albums = false; } } elseif (wppa('last_albums')) { // is_cover = true. For the order sequence, see remark in wppa_albums() if (wppa('last_albums_parent')) { $q = $wpdb->prepare("SELECT * FROM `" . WPPA_ALBUMS . "` WHERE `a_parent` = %s ORDER BY `timestamp` DESC LIMIT %d", wppa('last_albums_parent'), wppa('last_albums')); } else { $q = $wpdb->prepare("SELECT * FROM `" . WPPA_ALBUMS . "` ORDER BY `timestamp` DESC LIMIT %d", wppa('last_albums')); } wppa_dbg_q('Q11a'); $albums = $wpdb->get_results($q, ARRAY_A); } elseif (wppa_is_int($id)) { if (wppa('is_cover')) { $q = $wpdb->prepare('SELECT * FROM ' . WPPA_ALBUMS . ' WHERE `id` = %s', $id); } else { $q = $wpdb->prepare('SELECT * FROM ' . WPPA_ALBUMS . ' WHERE `a_parent` = %s ' . wppa_get_album_order($id), $id); } wppa_dbg_q('Q11b'); $albums = $wpdb->get_results($q, ARRAY_A); if (!wppa('is_cover')) { wppa_verify_treecounts($id, 'albums', count($albums)); } } elseif (strpos($id, '.') !== false) { // Album enum $ids = wppa_series_to_array($id); if (wppa('is_cover')) { $q = "SELECT * FROM `" . WPPA_ALBUMS . "` WHERE `id` = " . implode(" OR `id` = ", $ids) . " " . wppa_get_album_order(); } else { $q = "SELECT * FROM `" . WPPA_ALBUMS . "` WHERE `a_parent` = " . implode(" OR `a_parent` = ", $ids) . " " . wppa_get_album_order(); } wppa_dbg_q('Q11c'); wppa_dbg_msg($q, 'red'); $albums = $wpdb->get_results($q, ARRAY_A); } else { $albums = false; } } // Check for empty albums if (wppa_switch('skip_empty_albums')) { $user = wppa_get_user(); if (is_array($albums)) { foreach (array_keys($albums) as $albumkey) { $albumid = $albums[$albumkey]['id']; $albumowner = $albums[$albumkey]['owner']; $treecount = wppa_treecount_a($albums[$albumkey]['id']); $photocount = $treecount['photos']; if (!$photocount && !wppa_user_is('administrator') && $user != $albumowner) { unset($albums[$albumkey]); } } } } // Copy data into secondary cache if ($albums) { wppa_cache_album('add', $albums); } wppa('album_count', count($albums)); return $albums; }
function wppa_get_supersearch_html() { global $wpdb; global $wppa_session; // Init $page = wppa_get_the_landing_page('wppa_supersearch_linkpage', __('Photo search results', 'wp-photo-album-plus')); $pagelink = wppa_dbg_url(get_page_link($page)); $fontsize = wppa_in_widget() ? 'font-size: 9px;' : ''; $query = "SELECT `id`, `name`, `owner` FROM `" . WPPA_ALBUMS . "` ORDER BY `name`"; $albums = $wpdb->get_results($query, ARRAY_A); $query = "SELECT `name` FROM `" . WPPA_PHOTOS . "` WHERE `status` <> 'pending' AND `status` <> 'scheduled' ORDER BY `name`"; $photonames = $wpdb->get_results($query, ARRAY_A); $query = "SELECT `owner` FROM `" . WPPA_PHOTOS . "` WHERE `status` <> 'pending' AND `status` <> 'scheduled' ORDER BY `owner`"; $ownerlist = $wpdb->get_results($query, ARRAY_A); $catlist = wppa_get_catlist(); $taglist = wppa_get_taglist(); $ss_data = explode(',', $wppa_session['supersearch']); if (count($ss_data) < '4') { $ss_data = array('', '', '', ''); } $ss_cats = $ss_data['0'] == 'a' && $ss_data['1'] == 'c' ? explode('.', $ss_data['3']) : array(); $ss_tags = $ss_data['0'] == 'p' && $ss_data['1'] == 'g' ? explode('.', $ss_data['3']) : array(); $ss_data['3'] = str_replace('...', '***', $ss_data['3']); $ss_atxt = $ss_data['0'] == 'a' && $ss_data['1'] == 't' ? explode('.', $ss_data['3']) : array(); foreach (array_keys($ss_atxt) as $key) { $ss_atxt[$key] = str_replace('***', '...', $ss_atxt[$key]); } $ss_ptxt = $ss_data['0'] == 'p' && $ss_data['1'] == 't' ? explode('.', $ss_data['3']) : array(); foreach (array_keys($ss_ptxt) as $key) { $ss_ptxt[$key] = str_replace('***', '...', $ss_ptxt[$key]); } $ss_data['3'] = str_replace('***', '...', $ss_data['3']); $query = "SELECT `slug` FROM `" . WPPA_INDEX . "` WHERE `albums` <> '' ORDER BY `slug`"; $albumtxt = $wpdb->get_results($query, ARRAY_A); $query = "SELECT `slug` FROM `" . WPPA_INDEX . "` WHERE `photos` <> '' ORDER BY `slug`"; $phototxt = $wpdb->get_results($query, ARRAY_A); $iptclist = wppa_switch('save_iptc') ? $wpdb->get_results("SELECT `tag`, `description` FROM `" . WPPA_IPTC . "` WHERE `photo` = '0' AND `status` <> 'hide' ", ARRAY_A) : array(); $exiflist = wppa_switch('save_exif') ? $wpdb->get_results("SELECT `tag`, `description` FROM `" . WPPA_EXIF . "` WHERE `photo` = '0' AND `status` <> 'hide' ", ARRAY_A) : array(); // Check for empty albums if (wppa_switch('skip_empty_albums')) { $user = wppa_get_user(); if (is_array($albums)) { foreach (array_keys($albums) as $albumkey) { $albumid = $albums[$albumkey]['id']; $albumowner = $albums[$albumkey]['owner']; $treecount = wppa_treecount_a($albums[$albumkey]['id']); $photocount = $treecount['photos']; if (!$photocount && !wppa_user_is('administrator') && $user != $albumowner) { unset($albums[$albumkey]); } } } } if (empty($albums)) { $albums = array(); } // Compress photonames if partial length search if (wppa_opt('ss_name_max')) { $maxl = wppa_opt('ss_name_max'); $last = ''; foreach (array_keys($photonames) as $key) { if (strlen($photonames[$key]['name']) > $maxl) { $photonames[$key]['name'] = substr($photonames[$key]['name'], 0, $maxl) . '...'; } if ($photonames[$key]['name'] == $last) { unset($photonames[$key]); } else { $last = $photonames[$key]['name']; } } } // Compress phototxt if partial length search if (wppa_opt('ss_text_max')) { $maxl = wppa_opt('ss_text_max'); $last = ''; foreach (array_keys($phototxt) as $key) { if (strlen($phototxt[$key]['slug']) > $maxl) { $phototxt[$key]['slug'] = substr($phototxt[$key]['slug'], 0, $maxl) . '...'; } if ($phototxt[$key]['slug'] == $last) { unset($phototxt[$key]); } else { $last = $phototxt[$key]['slug']; } } } // Remove dup photo owners $last = ''; foreach (array_keys($ownerlist) as $key) { if ($ownerlist[$key]['owner'] == $last) { unset($ownerlist[$key]); } else { $last = $ownerlist[$key]['owner']; } } // Make the html $id = 'wppa_searchform_' . wppa('mocc'); $result = '<form' . ' id="' . $id . '"' . ' action="' . $pagelink . '"' . ' method="post"' . ' class="widget_search"' . ' >' . '<input' . ' type="hidden"' . ' id="wppa-ss-pageurl-' . wppa('mocc') . '"' . ' name="wppa-ss-pageurl"' . ' value="' . $pagelink . '"' . ' />'; // album or photo $id = 'wppa-ss-pa-' . wppa('mocc'); $result .= '<select' . ' id="' . $id . '"' . ' name="wppa-ss-pa"' . ' style="margin:2px;padding:0;vertical-align:top;"' . ' onchange="wppaSuperSearchSelect( ' . wppa('mocc') . ' );"' . ' size="2"' . ' >' . '<option' . ' value="a" ' . ($ss_data['0'] == 'a' ? 'selected="selected" ' : '') . ' >' . __('Albums', 'wp-photo-album-plus') . '</option>' . '<option' . ' value="p" ' . ($ss_data['0'] == 'p' ? 'selected="selected" ' : '') . ' >' . __('Photos', 'wp-photo-album-plus') . '</option>' . '</select>'; // album $id = 'wppa-ss-albumopt-' . wppa('mocc'); $result .= '<select' . ' id="' . $id . '"' . ' name="wppa-ss-albumopt"' . ' style="display:none;margin:2px;padding:0;vertical-align:top;"' . ' onchange="wppaSuperSearchSelect( ' . wppa('mocc') . ' );"' . ' size="' . (!empty($catlist) ? '3' : '2') . '"' . ' >' . (!empty($catlist) ? '<option' . ' value="c"' . ($ss_data['0'] == 'a' && $ss_data['1'] == 'c' ? 'selected="selected" ' : '') . ' >' . __('Category', 'wp-photo-album-plus') . '</option>' : '') . '<option' . ' value="n"' . ($ss_data['0'] == 'a' && $ss_data['1'] == 'n' ? 'selected="selected" ' : '') . ' >' . __('Name', 'wp-photo-album-plus') . '</option>' . '<option' . ' value="t"' . ($ss_data['0'] == 'a' && $ss_data['1'] == 't' ? 'selected="selected" ' : '') . ' >' . __('Text', 'wp-photo-album-plus') . '</option>' . '</select>'; // album category if (!empty($catlist)) { $id = 'wppa-ss-albumcat-' . wppa('mocc'); $result .= '<select' . ' id="' . $id . '"' . ' name="wppa-ss-albumcat"' . ' style="display:none;margin:2px;padding:0;vertical-align:top;"' . ' onchange="wppaSuperSearchSelect( ' . wppa('mocc') . ' );"' . ' size="' . min(count($catlist), '6') . '"' . ' multiple' . ' title="' . esc_attr(__('CTRL+Click to add/remove option.', 'wp-photo-album-plus')) . "\n" . esc_attr(__('Items must meet all selected options.', 'wp-photo-album-plus')) . '"' . ' >'; foreach (array_keys($catlist) as $cat) { $sel = in_array($cat, $ss_cats); $result .= '<option' . ' value="' . $cat . '"' . ' class="' . $id . '"' . ($sel ? ' selected="selected"' : '') . ' >' . $cat . '</option>'; } $result .= '</select>'; } // album name $id = 'wppa-ss-albumname-' . wppa('mocc'); $result .= '<select' . ' id="' . $id . '"' . ' name="wppa-ss-albumname"' . ' style="display:none;margin:2px;padding:0;vertical-align:top;"' . ' onchange="wppaSuperSearchSelect( ' . wppa('mocc') . ' );"' . ' size="' . min(count($albums), '6') . '"' . ' >'; foreach ($albums as $album) { $name = stripslashes($album['name']); $sel = $ss_data['3'] == $name && $ss_data['0'] == 'a' && $ss_data['1'] == 'n'; $result .= '<option' . ' value="' . esc_attr($name) . '"' . ($sel ? ' selected="selected"' : '') . ' >' . __($name) . '</option>'; } $result .= '</select>'; // album text $id = 'wppa-ss-albumtext-' . wppa('mocc'); $result .= ' <select' . ' id="' . $id . '"' . ' name="wppa-ss-albumtext"' . ' style="display:none;margin:2px;padding:0;vertical-align:top;"' . ' onchange="wppaSuperSearchSelect( ' . wppa('mocc') . ' );"' . ' size="' . min(count($albumtxt), '6') . '"' . ' multiple="multiple"' . ' title="' . esc_attr(__('CTRL+Click to add/remove option.', 'wp-photo-album-plus')) . "\n" . esc_attr(__('Items must meet all selected options.', 'wp-photo-album-plus')) . '"' . ' >'; foreach ($albumtxt as $txt) { $text = $txt['slug']; $sel = in_array($text, $ss_atxt); $result .= '<option' . ' value="' . $text . '"' . ' class="' . $id . '"' . ($sel ? ' selected="selected"' : '') . ' >' . $text . '</option>'; } $result .= ' </select>'; // photo $n = '1' + (count($ownerlist) > '1') + !empty($taglist) + '1' + wppa_switch('save_iptc') + wppa_switch('save_exif'); $result .= ' <select' . ' id="wppa-ss-photoopt-' . wppa('mocc') . '"' . ' name="wppa-ss-photoopt"' . ' style="display:none;margin:2px;padding:0;vertical-align:top;"' . ' onchange="wppaSuperSearchSelect( ' . wppa('mocc') . ' );"' . ' size="' . $n . '"' . ' >' . '<option' . ' value="n"' . ($ss_data['0'] == 'p' && $ss_data['1'] == 'n' ? 'selected="selected" ' : '') . ' >' . __('Name', 'wp-photo-album-plus') . '</option>'; if (count($ownerlist) > '1') { $result .= '<option' . ' value="o"' . ($ss_data['0'] == 'p' && $ss_data['1'] == 'o' ? 'selected="selected" ' : '') . ' >' . __('Owner', 'wp-photo-album-plus') . '</option>'; } if (!empty($taglist)) { $result .= '<option' . ' value="g"' . ($ss_data['0'] == 'p' && $ss_data['1'] == 'g' ? 'selected="selected" ' : '') . ' >' . __('Tag', 'wp-photo-album-plus') . '</option>'; } $result .= '<option' . ' value="t"' . ($ss_data['0'] == 'p' && $ss_data['1'] == 't' ? 'selected="selected" ' : '') . ' >' . __('Text', 'wp-photo-album-plus') . '</option>'; if (wppa_switch('save_iptc')) { $result .= '<option' . ' value="i"' . ($ss_data['0'] == 'p' && $ss_data['1'] == 'i' ? 'selected="selected" ' : '') . ' >' . __('Iptc', 'wp-photo-album-plus') . '</option>'; } if (wppa_switch('save_exif')) { $result .= '<option' . ' value="e"' . ($ss_data['0'] == 'p' && $ss_data['1'] == 'e' ? 'selected="selected" ' : '') . ' >' . __('Exif', 'wp-photo-album-plus') . '</option>'; } $result .= '</select>'; // photo name $id = 'wppa-ss-photoname-' . wppa('mocc'); $result .= ' <select' . ' id="' . $id . '"' . ' name="wppa-ss-photoname"' . ' style="display:none;margin:2px;padding:0;vertical-align:top;"' . ' onchange="wppaSuperSearchSelect( ' . wppa('mocc') . ' );"' . ' size="' . min(count($photonames), '6') . '"' . ' >'; foreach ($photonames as $photo) { $name = stripslashes($photo['name']); $sel = $ss_data['3'] == $name && $ss_data['0'] == 'p' && $ss_data['1'] == 'n'; $result .= '<option' . ' value="' . esc_attr($name) . '"' . ($sel ? ' selected="selected"' : '') . ' >' . __($name) . '</option>'; } $result .= ' </select>'; // photo owner $id = 'wppa-ss-photoowner-' . wppa('mocc'); $result .= ' <select' . ' id="' . $id . '"' . ' name="wppa-ss-photoowner"' . ' style="display:none;margin:2px;padding:0;vertical-align:top;"' . ' onchange="wppaSuperSearchSelect( ' . wppa('mocc') . ' );"' . ' size="' . min(count($ownerlist), '6') . '"' . ' >'; foreach ($ownerlist as $photo) { $owner = $photo['owner']; $sel = $ss_data['3'] == $owner && $ss_data['0'] == 'p' && $ss_data['1'] == 'o'; $result .= '<option' . ' value="' . $owner . '"' . ($sel ? ' selected="selected"' : '') . ' >' . $owner . '</option>'; } $result .= ' </select>'; // photo tag if (!empty($taglist)) { $id = 'wppa-ss-phototag-' . wppa('mocc'); $result .= ' <select' . ' id="' . $id . '"' . ' name="wppa-ss-phototag"' . ' style="display:none;margin:2px;padding:0;vertical-align:top;"' . ' onchange="wppaSuperSearchSelect( ' . wppa('mocc') . ' );"' . ' size="' . min(count($taglist), '6') . '"' . ' multiple' . ' title="' . esc_attr(__('CTRL+Click to add/remove option.', 'wp-photo-album-plus')) . "\n" . esc_attr(__('Items must meet all selected options.', 'wp-photo-album-plus')) . '"' . ' >'; foreach (array_keys($taglist) as $tag) { $sel = in_array($tag, $ss_tags); $result .= '<option' . ' value="' . $tag . '"' . ' class="' . $id . '"' . ($sel ? ' selected="selected"' : '') . ' >' . $tag . '</option>'; } $result .= '</select>'; } // photo text $id = 'wppa-ss-phototext-' . wppa('mocc'); $result .= ' <select' . ' id="' . $id . '"' . ' name="wppa-ss-phototext"' . ' style="display:none;margin:2px;padding:0;vertical-align:top;"' . ' onchange="wppaSuperSearchSelect( ' . wppa('mocc') . ' );"' . ' size="' . min(count($phototxt), '6') . '"' . ' multiple="multiple"' . ' title="' . esc_attr(__('CTRL+Click to add/remove option.', 'wp-photo-album-plus')) . "\n" . esc_attr(__('Items must meet all selected options.', 'wp-photo-album-plus')) . '"' . ' >'; foreach ($phototxt as $txt) { $text = $txt['slug']; $sel = in_array($text, $ss_ptxt); $result .= '<option' . ' value="' . $text . '"' . ' class="' . $id . '"' . ($sel ? ' selected="selected"' : '') . ' >' . $text . '</option>'; } $result .= '</select>'; // photo iptc $result .= ' <select' . ' id="wppa-ss-photoiptc-' . wppa('mocc') . '"' . ' name="wppa-ss-photoiptc"' . ' style="display:none;margin:2px;padding:0;vertical-align:top;"' . ' onchange="wppaSuperSearchSelect( ' . wppa('mocc') . ' );"' . ' size="' . min(count($iptclist), '6') . '"' . ' >'; $reftag = str_replace('H', '#', $ss_data['2']); foreach ($iptclist as $item) { $tag = $item['tag']; $sel = $reftag == $tag && ($ss_data['0'] = 'p' && $ss_data['1'] == 'i'); $result .= '<option' . ' value="' . $tag . '"' . ($sel ? ' selected="selected"' : '') . ' >' . __($item['description'], 'wp-photo-album-plus') . '</option>'; } $result .= '</select>'; // Iptc items $result .= ' <select' . ' id="wppa-ss-iptcopts-' . wppa('mocc') . '"' . ' name="wppa-ss-iptcopts"' . ' style="display:none;margin:2px;padding:0;vertical-align:top;"' . ' size="6"' . ' onchange="wppaSuperSearchSelect(' . wppa('mocc') . ')"' . ' > </select>'; // photo exif $result .= ' <select' . ' id="wppa-ss-photoexif-' . wppa('mocc') . '"' . ' name="wppa-ss-photoexif"' . ' style="display:none;margin:2px;padding:0;vertical-align:top;"' . ' onchange="wppaSuperSearchSelect( ' . wppa('mocc') . ' );"' . ' size="' . min(count($exiflist), '6') . '"' . ' >'; $reftag = str_replace('H', '#', $ss_data['2']); foreach ($exiflist as $item) { $tag = $item['tag']; $sel = $reftag == $tag && ($ss_data['0'] = 'p' && $ss_data['1'] == 'e'); $result .= '<option' . ' value="' . $tag . '"' . ($sel ? ' selected="selected"' : '') . ' >' . __($item['description'], 'wp-photo-album-plus') . '</option>'; } $result .= '</select>'; // Exif items $result .= ' <select' . ' id="wppa-ss-exifopts-' . wppa('mocc') . '"' . ' name="wppa-ss-exifopts"' . ' style="display:none;margin:2px;padding:0;vertical-align:top;"' . ' size="6"' . ' onchange="wppaSuperSearchSelect(' . wppa('mocc') . ')"' . ' > </select>'; // The spinner $result .= ' <img' . ' id="wppa-ss-spinner-' . wppa('mocc') . '"' . ' src="' . wppa_get_imgdir() . '/wpspin.gif' . '"' . ' style="margin:0 4px;display:none;"' . ' />'; // The button $result .= ' <input' . ' type="button"' . ' id="wppa-ss-button-' . wppa('mocc') . '"' . ' value="' . __('Submit', 'wp-photo-album-plus') . '"' . ' style="vertical-align:top;margin:2px;"' . ' onclick="wppaSuperSearchSelect(' . wppa('mocc') . ' , true)"' . ' ontouchstart="wppaSuperSearchSelect(' . wppa('mocc') . ' , true)"' . ' />'; $result .= ' </form> <script type="text/javascript" > wppaSuperSearchSelect(' . wppa('mocc') . '); </script>'; return $result; }
function wppa_album_cover_view_link($albumid, $has_content, $photocount, $albumcount, $mincount, $href_content, $target, $onclick_content) { $album = wppa_cache_album($albumid); if (wppa_switch('show_viewlink')) { wppa_out('<div class="wppa-box-text wppa-black wppa-info wppa-viewlink">'); if ($has_content) { // Fake photocount to prevent link to empty page if (wppa_opt('thumbtype') == 'none') { $photocount = '0'; } // Still has content if ($photocount > $mincount || $albumcount) { // Get treecount data if (wppa_switch('show_treecount')) { $treecount = wppa_treecount_a($albumid); } else { $treecount = false; } if ($href_content == '#') { wppa_out('<a onclick="' . $onclick_content . '" title="' . __('View the album', 'wp-photo-album-plus') . ' ' . esc_attr(stripslashes(__($album['name']))) . '" style="cursor:pointer;' . __wcs('wppa-box-text-nocolor') . '" >'); } else { wppa_out('<a href="' . $href_content . '" target="' . $target . '" onclick="' . $onclick_content . '" title="' . __('View the album', 'wp-photo-album-plus') . ' ' . esc_attr(stripslashes(__($album['name']))) . '" style="cursor:pointer;' . __wcs('wppa-box-text-nocolor') . '" >'); } $text = __('View', 'wp-photo-album-plus'); if ($albumcount) { if ($albumcount == '1') { $text .= ' 1 ' . __('album', 'wp-photo-album-plus'); } else { $text .= ' ' . $albumcount . ' ' . __('albums', 'wp-photo-album-plus'); } if ($treecount) { if ($treecount['albums'] > $albumcount) { $text .= ' (' . $treecount['albums'] . ')'; } } } if ($photocount > $mincount && $albumcount) { $text .= ' ' . __('and', 'wp-photo-album-plus'); } if ($photocount > $mincount || $treecount) { if ($photocount <= $mincount) { $photocount = '0'; } if ($photocount == '1') { $text .= ' 1 ' . __('photo', 'wp-photo-album-plus'); } elseif ($photocount) { $text .= ' ' . $photocount . ' ' . __('photos', 'wp-photo-album-plus'); } if ($treecount) { if ($treecount['photos'] > $photocount) { if (!$photocount) { $text .= ', ' . __('photos', 'wp-photo-album-plus'); } $text .= ' (' . $treecount['photos'] . ')'; } } } wppa_out(str_replace(' ', ' ', $text)); wppa_out('</a>'); } } else { wppa_out(' '); } wppa_out('</div>'); } }
function wppa_shortcodes($xatts, $content = '') { global $wppa; global $wppa_postid; global $wppa_api_version; global $wppa_revno; $atts = shortcode_atts(array('type' => 'generic', 'album' => '', 'photo' => '', 'size' => '', 'align' => '', 'taglist' => '', 'cols' => '', 'sub' => '', 'root' => '', 'calendar' => '', 'all' => '', 'reverse' => '', 'landing' => '', 'admin' => '', 'parent' => '', 'pcount' => '', 'acount' => ''), $xatts); // Find occur if (get_the_ID() != $wppa_postid) { // New post $wppa['occur'] = '0'; // Init this occurance $wppa['fullsize'] = ''; // Reset at each post $wppa_postid = get_the_ID(); // Remember the post id } // Set internal defaults $wppa['start_album'] = ''; $wppa['is_cover'] = '0'; $wppa['is_slide'] = '0'; $wppa['is_slideonly'] = '0'; $wppa['is_filmonly'] = '0'; $wppa['single_photo'] = ''; $wppa['is_mphoto'] = '0'; $wppa['film_on'] = '0'; $wppa['is_landing'] = '0'; $wppa['start_photo'] = '0'; // Start a slideshow here $wppa['is_single'] = false; // Is a one image slideshow $wppa['is_upload'] = false; $wppa['is_multitagbox'] = false; $wppa['is_tagcloudbox'] = false; $wppa['taglist'] = ''; $wppa['tagcols'] = '2'; $wppa['is_autopage'] = false; $wppa['portrait_only'] = false; $wppa['shortcode_content'] = $content; $wppa['is_url'] = false; $wppa['forceroot'] = ''; $wppa['landingpage'] = ''; $wppa['is_admins_choice'] = false; $wppa['admins_choice_users'] = ''; $wppa['albums_only'] = false; $wppa['max_width'] = false; // Find type switch ($atts['type']) { case 'version': return $wppa_api_version; break; case 'dbversion': return $wppa_revno; break; case 'landing': $wppa['is_landing'] = '1'; case 'generic': break; case 'cover': $wppa['start_album'] = $atts['album']; $wppa['is_cover'] = '1'; $wppa['albums_only'] = true; break; case 'album': case 'content': $wppa['start_album'] = $atts['album']; break; case 'thumbs': $wppa['start_album'] = $atts['album']; $wppa['photos_only'] = true; break; case 'covers': $wppa['start_album'] = $atts['album']; $wppa['albums_only'] = true; break; case 'slide': $wppa['start_album'] = $atts['album']; $wppa['is_slide'] = '1'; $wppa['start_photo'] = $atts['photo']; break; case 'slideonly': $wppa['start_album'] = $atts['album']; $wppa['is_slideonly'] = '1'; $wppa['start_photo'] = $atts['photo']; break; case 'slideonlyf': $wppa['start_album'] = $atts['album']; $wppa['is_slideonly'] = '1'; $wppa['film_on'] = '1'; $wppa['start_photo'] = $atts['photo']; break; case 'slidef': $wppa['start_album'] = $atts['album']; $wppa['is_slide'] = '1'; $wppa['film_on'] = '1'; case 'filmonly': $wppa['start_album'] = $atts['album']; $wppa['is_slideonly'] = '1'; $wppa['is_filmonly'] = '1'; $wppa['film_on'] = '1'; $wppa['start_photo'] = $atts['photo']; break; case 'photo': case 'sphoto': $wppa['single_photo'] = $atts['photo']; break; case 'mphoto': $wppa['single_photo'] = $atts['photo']; $wppa['is_mphoto'] = '1'; break; case 'xphoto': $wppa['single_photo'] = $atts['photo']; $wppa['is_xphoto'] = '1'; break; case 'slphoto': $wppa['is_slide'] = '1'; $wppa['single_photo'] = $atts['photo']; $wppa['start_photo'] = $atts['photo']; $wppa['is_single'] = '1'; break; case 'autopage': $wppa['is_autopage'] = '1'; break; case 'upload': if ($atts['parent']) { $wppa['start_album'] = wppa_alb_to_enum_children($atts['parent']); } else { $wppa['start_album'] = $atts['album']; } $wppa['is_upload'] = true; break; case 'multitag': $wppa['taglist'] = wppa_sanitize_tags($atts['taglist']); $wppa['is_multitagbox'] = true; if ($atts['cols']) { $wppa['tagcols'] = $atts['cols']; } break; case 'tagcloud': $wppa['taglist'] = wppa_sanitize_tags($atts['taglist']); $wppa['is_tagcloudbox'] = true; break; case 'bestof': $wppa['bestof'] = true; $wppa['bestof_args'] = $xatts; break; case 'superview': $wppa['is_superviewbox'] = true; $wppa['start_album'] = $atts['album']; break; case 'search': $wppa['is_searchbox'] = true; $wppa['may_sub'] = $atts['sub']; if ($atts['root']) { if (substr($atts['root'], 0, 1) == '#') { $wppa['forceroot'] = strval(intval(substr($atts['root'], 1))); } else { $wppa['may_root'] = $atts['root']; } } $wppa['landingpage'] = $atts['landing']; break; case 'supersearch': $wppa['is_supersearch'] = true; break; case 'calendar': if (!wppa_switch('allow_ajax')) { wppa_dbg_msg('Shortcode [wppa type="calendar" ... requires Ajax acive. See Photo Albums -> Settings Table IV-A1.0', 'red', 'force'); return ''; } $wppa['is_calendar'] = true; $wppa['calendar'] = 'timestamp'; if (in_array($atts['calendar'], array('exifdtm', 'timestamp', 'modified'))) { $wppa['calendar'] = $atts['calendar']; } if ($atts['all']) { $wppa['calendarall'] = true; } $wppa['reverse'] = $atts['reverse']; $wppa['start_album'] = $atts['album']; break; case 'stereo': $wppa['is_stereobox'] = true; break; case 'url': $wppa['is_url'] = true; $wppa['single_photo'] = $atts['photo']; break; case 'choice': $wppa['is_admins_choice'] = true; $wppa['admins_choice_users'] = $atts['admin']; break; case 'acount': case 'pcount': $a = strval(intval($atts['album'])); $p = strval(intval($atts['parent'])); $t = $atts['type']; if ($a xor $p) { $alb = $a ? $a : $p; $tc = wppa_treecount_a($alb); // Album based count requested if ($a) { if ($t == 'acount') { return wppa_get_album_count($alb, true); } else { return wppa_get_photo_count($alb, true); } } else { if ($t == 'acount') { return $tc['albums']; } else { return $tc['photos']; } } } else { wppa_dbg_msg('Error in shortcode spec for type="' . $atts['type'] . '": either attribute album="" or parent="" should supply a positive integer', 'red', 'force'); return; } break; case 'share': $result = wppa_get_share_page_html(); return $result; break; default: wppa_dbg_msg('Invalid type: ' . $atts['type'] . ' in wppa shortcode.', 'red', 'force'); return ''; } // Count (internally to wppa_albums) // Find size if ($atts['size'] && is_numeric($atts['size']) && $atts['size'] < 1.0) { $wppa['auto_colwidth'] = true; $wppa['fullsize'] = $atts['size']; } elseif (substr($atts['size'], 0, 4) == 'auto') { $wppa['auto_colwidth'] = true; $wppa['fullsize'] = ''; $wppa['max_width'] = substr($atts['size'], 5); } else { $wppa['auto_colwidth'] = false; $wppa['fullsize'] = $atts['size']; } // Find align $wppa['align'] = $atts['align']; // Ready to render ??? $do_it = false; if (wppa('rendering_enabled')) { $do_it = true; } // NOT in a head section (in a meta tag or so) if (wppa_in_widget()) { $do_it = true; } // A widget always works if (is_feed()) { $do_it = true; } // A feed has no head section if (wppa_switch('render_shortcode_always')) { $do_it = true; } // Always if (wppa('debug')) { if ($do_it) { $msg = 'Doit is on'; } else { $msg = 'Doit is off'; } wppa_dbg_msg($msg); } // Do it also for url only shortcode if ($do_it || $wppa['is_url']) { $result = wppa_albums(); // Get the HTML } else { $result = '<span style="color:blue; font-weight:bold; ">[WPPA+ Photo display (fsh)]</span>'; // Or an indicator } // Reset $wppa['start_photo'] = '0'; // Start a slideshow here $wppa['is_single'] = false; // Is a one image slideshow // Relative urls? $result = wppa_make_relative($result); // In widget if (wppa_in_widget()) { if (!wppa_switch('shortcode_at_priority_widget')) { return $result; } } else { if (!wppa_switch('shortcode_at_priority')) { return $result; } } // Url always immediately if ($wppa['is_url']) { return $result; } // New method to prevent damage of the result by content filters that run on higher priorities than do_shortcode. // Previous methods, e.g. increasing the do_shortcode priority sometimes fail due to requirements of other plugins/shortcodes. // To prevent this, i first asked an enhancement to add a priority argument to add_shortcode(), but the wp boys simply say // 'this is not possible'. Everything is possible, they should say that they are not smart enough to implement it. // Since there are plans to set the do_shortcode() priority ( currently 11 ) lower than wpautop() ( 10 ), and there are many serious // bugs in wpautop() it is now urgent to create a monkey-proof solution to the problem that others destructify the so preciously created // shortcode process output. // // What we do is: // 1. Save the result in memory and return a placeholder for the result. // 2. Run a contentfilter on the highest possible priority that replaced the placeholder by the original result. // // It sounds simple, but it took me a few sleepless nights to figure out. // Here it goes: // Define storage for the results global $wppa_shortcode_results; // Create a key to identify the result. // Any unique key will do, as long as it is not tampered by any content filter. // Hopefully everything keeps an unadded shortcode untouched, // therefor we wrap the random key in square brackets $key = '[' . md5(rand()) . ']'; // Store $wppa_shortcode_results[$key] = $result; // Return the placeholder ( = the key ) in stead of $result return $key; }
function wppa_album_photos_bulk($album) { global $wpdb; // Check input wppa_vfy_arg('wppa-page'); // Init $count = '0'; $abort = false; if (isset($_POST['wppa-bulk-action'])) { check_admin_referer('wppa-bulk', 'wppa-bulk'); if (isset($_POST['wppa-bulk-photo'])) { $ids = $_POST['wppa-bulk-photo']; $newalb = isset($_POST['wppa-bulk-album']) ? $_POST['wppa-bulk-album'] : '0'; $status = isset($_POST['wppa-bulk-status']) ? $_POST['wppa-bulk-status'] : ''; $owner = isset($_POST['wppa-bulk-owner']) ? $_POST['wppa-bulk-owner'] : ''; $totcount = count($ids); if (!is_numeric($newalb)) { wp_die('Security check failure 1'); } if (is_array($ids)) { foreach (array_keys($ids) as $id) { $skip = false; switch ($_POST['wppa-bulk-action']) { case 'wppa-bulk-delete': wppa_delete_photo($id); break; case 'wppa-bulk-move-to': if ($newalb) { $photo = $wpdb->get_row($wpdb->prepare('SELECT * FROM ' . WPPA_PHOTOS . ' WHERE `id` = %s', $id), ARRAY_A); if (wppa_switch('void_dups')) { // Check for already exists $exists = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM `" . WPPA_PHOTOS . "` WHERE `filename` = %s AND `album` = %s", $photo['filename'], $newalb)); if ($exists) { // Already exists wppa_error_message(sprintf(__('A photo with filename %s already exists in album %s.', 'wp-photo-album-plus'), $photo['filename'], $newalb)); $skip = true; } } if ($skip) { continue; } wppa_flush_treecounts($photo['album']); // Current album wppa_flush_treecounts($newalb); // New album $wpdb->query($wpdb->prepare('UPDATE `' . WPPA_PHOTOS . '` SET `album` = %s WHERE `id` = %s', $newalb, $id)); wppa_move_source($photo['filename'], $photo['album'], $newalb); } else { wppa_error_message('Unexpected error #4 in wppa_album_photos_bulk().'); } break; case 'wppa-bulk-copy-to': if ($newalb) { $photo = $wpdb->get_row($wpdb->prepare('SELECT * FROM ' . WPPA_PHOTOS . ' WHERE `id` = %s', $id), ARRAY_A); if (wppa_switch('void_dups')) { // Check for already exists $exists = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM `" . WPPA_PHOTOS . "` WHERE `filename` = %s AND `album` = %s", $photo['filename'], $newalb)); if ($exists) { // Already exists wppa_error_message(sprintf(__($exists . 'A photo with filename %s already exists in album %s.', 'wp-photo-album-plus'), $photo['filename'], $newalb)); $skip = true; } } if ($skip) { continue; } wppa_copy_photo($id, $newalb); wppa_flush_treecounts($newalb); } else { wppa_error_message('Unexpected error #3 in wppa_album_photos_bulk().'); } break; case 'wppa-bulk-status': if (!in_array($status, array('publish', 'pending', 'featured', 'scheduled', 'gold', 'silver', 'bronze', 'private'))) { wppa_log('error', 'Unknown status ' . strip_tags($status) . ' found in wppa-photo-admin-autosave.php -> wppa_album_photos_bulk()'); $status = 'publish'; } if (current_user_can('wppa_admin') || current_user_can('wppa_moderate')) { if ($status == 'publish' || $status == 'pending' || wppa_user_is('administrator') || !wppa_switch('ext_status_restricted')) { $wpdb->query("UPDATE `" . WPPA_PHOTOS . "` SET `status` = '" . $status . "' WHERE `id` = " . $id); wppa_flush_treecounts($id, wppa_get_photo_item($id, 'album')); } else { wp_die('Security check failure 2'); } } else { wp_die('Security check failure 3'); } break; case 'wppa-bulk-owner': if (wppa_user_is('administrator') && wppa_switch('photo_owner_change')) { if ($owner) { $owner = sanitize_user($owner); $exists = $wpdb->get_var("SELECT COUNT(*) FROM `" . $wpdb->users . "` WHERE `user_login` = '" . $owner . "'"); if ($exists) { $wpdb->query("UPDATE `" . WPPA_PHOTOS . "` SET `owner` = '" . $owner . "' WHERE `id` = " . $id); } else { wppa_error_message('A user with login name ' . $owner . ' does not exist.'); $skip = true; } } else { wp_die('Missing required arg in bulk change owner'); } } else { wp_die('Security check failure 4'); } break; default: wppa_error_message('Unimplemented bulk action requested in wppa_album_photos_bulk().'); break; } if (!$skip) { $count++; } if (wppa_is_time_up()) { wppa_error_message(sprintf(__('Time is out after processing %d out of %d items.', 'wp-photo-album-plus'), $count, $totcount)); $abort = true; } if ($abort) { break; } } } else { wppa_error_message('Unexpected error #2 in wppa_album_photos_bulk().'); } } else { wppa_error_message('Unexpected error #1 in wppa_album_photos_bulk().'); } if ($count && !$abort) { switch ($_POST['wppa-bulk-action']) { case 'wppa-bulk-delete': $message = sprintf(__('%d photos deleted.', 'wp-photo-album-plus'), $count); break; case 'wppa-bulk-move-to': $message = sprintf(__('%1$s photos moved to album %2$s.', 'wp-photo-album-plus'), $count, $newalb . ': ' . wppa_get_album_name($newalb)); break; case 'wppa-bulk-copy-to': $message = sprintf(__('%1$s photos copied to album %2$s.', 'wp-photo-album-plus'), $count, $newalb . ': ' . wppa_get_album_name($newalb)); break; case 'wppa-bulk-status': $message = sprintf(__('Changed status to %1$s on %2$s photos.', 'wp-photo-album-plus'), $status, $count); break; case 'wppa-bulk-owner': $message = sprintf(__('Changed owner to %1$s on %2$s photos.', 'wp-photo-album-plus'), $owner, $count); break; default: $message = sprintf(__('%d photos processed.', 'wp-photo-album-plus'), $count); break; } wppa_ok_message($message); } } $pagesize = wppa_opt('photo_admin_pagesize'); $page = isset($_GET['wppa-page']) ? $_GET['wppa-page'] : '1'; $skip = ($page - '1') * $pagesize; $limit = $pagesize < '1' ? '' : ' LIMIT ' . $skip . ',' . $pagesize; if ($album) { if ($album == 'search') { $count = wppa_get_edit_search_photos('', 'count_only'); $photos = wppa_get_edit_search_photos($limit); $link = wppa_dbg_url(get_admin_url() . 'admin.php?page=wppa_admin_menu&tab=edit&edit_id=' . $album . '&wppa-searchstring=' . wppa_sanitize_searchstring($_REQUEST['wppa-searchstring']) . '&bulk'); wppa_show_search_statistics(); } else { $counts = wppa_treecount_a($album); $count = $counts['selfphotos'] + $counts['pendphotos']; //$wpdb->get_var( $wpdb->prepare( 'SELECT COUNT(*) FROM `'.WPPA_PHOTOS.'` WHERE `album` = %s', $album ) ); $photos = $wpdb->get_results($wpdb->prepare('SELECT * FROM `' . WPPA_PHOTOS . '` WHERE `album` = %s ' . wppa_get_photo_order($album, 'norandom') . $limit, $album), ARRAY_A); $link = wppa_dbg_url(get_admin_url() . 'admin.php?page=wppa_admin_menu&tab=edit&edit_id=' . $album . '&bulk'); } if ($photos) { wppa_admin_page_links($page, $pagesize, $count, $link, '#manage-photos'); ?> <script type="text/javascript" > function wppaBulkActionChange( elm, id ) { wppa_setCookie( 'wppa_bulk_action',elm.value,365 ); if ( elm.value == 'wppa-bulk-move-to' || elm.value == 'wppa-bulk-copy-to' ) jQuery( '#wppa-bulk-album' ).css( 'display', 'inline' ); else jQuery( '#wppa-bulk-album' ).css( 'display', 'none' ); if ( elm.value == 'wppa-bulk-status' ) jQuery( '#wppa-bulk-status' ).css( 'display', 'inline' ); else jQuery( '#wppa-bulk-status' ).css( 'display', 'none' ); if ( elm.value == 'wppa-bulk-owner' ) jQuery( '#wppa-bulk-owner' ).css( 'display', 'inline' ); else jQuery( '#wppa-bulk-owner' ).css( 'display', 'none' ); } function wppaBulkDoitOnClick() { var photos = jQuery( '.wppa-bulk-photo' ); var count=0; for ( i=0; i< photos.length; i++ ) { var photo = photos[i]; if ( photo.checked ) count++; } if ( count == 0 ) { alert( 'No photos selected' ); return false; } var action = document.getElementById( 'wppa-bulk-action' ).value; switch ( action ) { case '': alert( 'No action selected' ); return false; break; case 'wppa-bulk-delete': break; case 'wppa-bulk-move-to': case 'wppa-bulk-copy-to': var album = document.getElementById( 'wppa-bulk-album' ).value; if ( album == 0 ) { alert( 'No album selected' ); return false; } break; case 'wppa-bulk-status': var status = document.getElementById( 'wppa-bulk-status' ).value; if ( status == 0 ) { alert( 'No status selected' ); return false; } break; case 'wppa-bulk-owner': var owner = documnet.getElementById( 'wppa-bulk-owner' ).value; if ( owner == 0 ) { alert( 'No new owner selected' ); return false; } break; default: alert( 'Unimplemented action requested: '+action ); return false; break; } return true; } function wppaSetThumbsize( elm ) { var thumbsize = elm.value; wppa_setCookie( 'wppa_bulk_thumbsize',thumbsize,365 ); jQuery( '.wppa-bulk-thumb' ).css( 'max-width', thumbsize+'px' ); jQuery( '.wppa-bulk-thumb' ).css( 'max-height', ( thumbsize/2 )+'px' ); jQuery( '.wppa-bulk-dec' ).css( 'height', ( thumbsize/2 )+'px' ); } jQuery( document ).ready( function() { var action = wppa_getCookie( 'wppa_bulk_action' ); document.getElementById( 'wppa-bulk-action' ).value = action; if ( action == 'wppa-bulk-move-to' || action == 'wppa-bulk-copy-to' ) { jQuery( '#wppa-bulk-album' ).css( 'display','inline' ); document.getElementById( 'wppa-bulk-album' ).value = wppa_getCookie( 'wppa_bulk_album' ); } if ( action == 'wppa-bulk-status' ) { jQuery( '#wppa-bulk-status' ).css( 'display','inline' ); document.getElementById( 'wppa-bulk-status' ).value = wppa_getCookie( 'wppa_bulk_status' ); } if ( action == 'wppa-bulk-owner' ) { jQuery( '#wppa-bulk-owner' ).css( 'display','inline' ); document.getElementById( 'wppa-bulk-owner' ).value = wppa_getCookie( 'wppa_bulk_owner' ); } } ); </script> <form action="<?php echo $link . '&wppa-page=' . $page . '#manage-photos'; ?> " method="post" > <?php wp_nonce_field('wppa-bulk', 'wppa-bulk'); ?> <h3> <span style="font-weight:bold;" ><?php _e('Bulk action:', 'wp-photo-album-plus'); ?> </span> <select id="wppa-bulk-action" name="wppa-bulk-action" onchange="wppaBulkActionChange( this, 'bulk-album' )" > <option value="" ></option> <option value="wppa-bulk-delete" ><?php _e('Delete', 'wp-photo-album-plus'); ?> </option> <option value="wppa-bulk-move-to" ><?php _e('Move to', 'wp-photo-album-plus'); ?> </option> <option value="wppa-bulk-copy-to" ><?php _e('Copy to', 'wp-photo-album-plus'); ?> </option> <?php if (current_user_can('wppa_admin') || current_user_can('wppa_moderate')) { ?> <option value="wppa-bulk-status" ><?php _e('Set status to', 'wp-photo-album-plus'); ?> </option> <?php } ?> <?php if (wppa_user_is('administrator') && wppa_switch('photo_owner_change')) { ?> <option value="wppa-bulk-owner" ><?php _e('Set owner to', 'wp-photo-album-plus'); ?> </option> <?php } ?> </select> <select name="wppa-bulk-album" id="wppa-bulk-album" style="display:none;" onchange="wppa_setCookie( 'wppa_bulk_album',this.value,365 );" > <?php echo wppa_album_select_a(array('checkaccess' => true, 'path' => wppa_switch('hier_albsel'), 'exclude' => $album, 'selected' => '0', 'addpleaseselect' => true)); ?> </select> <select name="wppa-bulk-status" id="wppa-bulk-status" style="display:none;" onchange="wppa_setCookie( 'wppa_bulk_status',this.value,365 );" > <option value="" ><?php _e('- select a status -', 'wp-photo-album-plus'); ?> </option> <option value="pending" ><?php _e('Pending', 'wp-photo-album-plus'); ?> </option> <option value="publish" ><?php _e('Publish', 'wp-photo-album-plus'); ?> </option> <?php if (wppa_switch('ext_status_restricted') && !wppa_user_is('administrator')) { $dis = ' disabled'; } else { $dis = ''; } ?> <option value="featured"<?php echo $dis; ?> ><?php _e('Featured', 'wp-photo-album-plus'); ?> </option> <option value="gold" <?php echo $dis; ?> ><?php _e('Gold', 'wp-photo-album-plus'); ?> </option> <option value="silver" <?php echo $dis; ?> ><?php _e('Silver', 'wp-photo-album-plus'); ?> </option> <option value="bronze" <?php echo $dis; ?> ><?php _e('Bronze', 'wp-photo-album-plus'); ?> </option> <option value="scheduled" <?php echo $dis; ?> ><?php _e('Scheduled', 'wp-photo-album-plus'); ?> </option> <option value="private" <?php echo $dis; ?> ><?php _e('Private', 'wp-photo-album-plus'); ?> </option> </select> <!-- Owner --> <?php $users = wppa_get_users(); if (count($users)) { ?> <select name="wppa-bulk-owner" id="wppa-bulk-owner" style="display:none;" onchange="wppa_setCookie( 'wppa_bulk_owner',this.value,365 );"> <option value="" ><?php _e('- select an owner -', 'wp-photo-album-plus'); ?> </option> <?php foreach ($users as $user) { echo '<option value="' . $user['user_login'] . '" >' . $user['display_name'] . ' (' . $user['user_login'] . ')</option>'; } ?> </select> <?php } else { ?> <input name="wppa-bulk-owner" id="wppa-bulk-owner" style="display:none;" onchange="wppa_setCookie( 'wppa_bulk_owner',this.value,365 );" /> <?php } ?> <!-- Submit --> <input type="submit" onclick="return wppaBulkDoitOnClick()" class="button-primary" value="<?php _e('Doit!', 'wp-photo-album-plus'); ?> " /> <span style="font-family:sans-serif; font-size:12px; font-style:italic; font-weight:normal;" > <?php _e('Pressing this button will reload the page after executing the selected action', 'wp-photo-album-plus'); ?> </span> </h3> <table class="widefat" > <thead style="font-weight:bold;" > <td><input type="checkbox" class="wppa-bulk-photo" onchange="jQuery( '.wppa-bulk-photo' ).attr( 'checked', this.checked );" /></td> <td><?php _e('ID', 'wp-photo-album-plus'); ?> </td> <td><?php _e('Preview', 'wp-photo-album-plus'); ?> </td> <td><?php _e('Name', 'wp-photo-album-plus'); ?> </td> <td><?php _e('Description', 'wp-photo-album-plus'); ?> </td> <td><?php _e('Status', 'wp-photo-album-plus'); ?> </td> <td><?php _e('Owner', 'wp-photo-album-plus'); ?> </td> <td><?php _e('Remark', 'wp-photo-album-plus'); ?> </td> </thead> <tbody> <?php foreach ($photos as $photo) { ?> <?php $id = $photo['id']; ?> <tr id="photoitem-<?php echo $photo['id']; ?> " > <!-- Checkbox --> <td> <input type="hidden" id="photo-nonce-<?php echo $photo['id']; ?> " value="<?php echo wp_create_nonce('wppa_nonce_' . $photo['id']); ?> " /> <input type="checkbox" name="wppa-bulk-photo[<?php echo $photo['id']; ?> ]" class="wppa-bulk-photo" /> </td> <!-- ID and delete link --> <td><?php echo $photo['id']; ?> <br /><a onclick="if ( confirm( '<?php _e('Are you sure you want to delete this photo?', 'wp-photo-album-plus'); ?> ' ) ) wppaAjaxDeletePhoto( <?php echo $photo['id']; ?> , '<td colspan=3 >', '</td>' )" style="color:red;font-weight:bold;"><?php _e('Delete', 'wp-photo-album-plus'); ?> </a> </td> <!-- Preview --> <td style="min-width:240px; text-align:center;" > <?php if (wppa_is_video($photo['id'])) { ?> <a href="<?php echo str_replace('xxx', 'mp4', wppa_get_photo_url($photo['id'])); ?> " target="_blank" title="Click to see fullsize" > <?php // Animating size changes of a video tag is not a good idea. It will rapidly screw up browser cache and cpu ?> <?php echo wppa_get_video_html(array('id' => $id, 'height' => '60', 'controls' => false, 'tagid' => 'pa-id-' . $id, 'events' => ' onmouseover="jQuery( this ).css( \'height\', \'160\' )" onmouseout="jQuery( this ).css( \'height\', \'60\' )"', 'preload' => 'metadata', 'use_thumb' => true)); ?> <!-- <video preload="metadata" style="height:60px;" onmouseover="jQuery( this ).css( 'height', '160' )" onmouseout="jQuery( this ).css( 'height', '60' )" > <?php // echo wppa_get_video_body( $photo['id'] ) ?> </video> --> </a> <?php } else { ?> <a href="<?php echo wppa_fix_poster_ext(wppa_get_photo_url($photo['id']), $photo['id']); ?> " target="_blank" title="Click to see fullsize" > <img class="wppa-bulk-thumb" src="<?php echo wppa_fix_poster_ext(wppa_get_thumb_url($photo['id']), $photo['id']); ?> " style="height:60px;" onmouseover="jQuery( this ).stop().animate( {height:120}, 100 )" onmouseout="jQuery( this ).stop().animate( {height:60}, 100 )" /> </a> <?php } ?> </td> <td style="width:25%;" > <input type="text" style="width:100%;" id="pname-<?php echo $photo['id']; ?> " onchange="wppaAjaxUpdatePhoto( <?php echo $photo['id']; ?> , 'name', this );" value="<?php echo esc_attr(stripslashes($photo['name'])); ?> " /> <?php if (wppa_is_video($photo['id'])) { echo '<br />' . wppa_get_videox($photo['id']) . ' x ' . wppa_get_videoy($photo['id']) . ' px.'; } else { $sp = wppa_get_source_path($photo['id']); if (is_file($sp)) { $ima = getimagesize($sp); if (is_array($ima)) { echo '<br />' . $ima['0'] . ' x ' . $ima['1'] . ' px.'; } } } ?> </td> <!-- Description --> <td style="width:25%;" > <textarea class="wppa-bulk-dec" style="height:50px; width:100%" onchange="wppaAjaxUpdatePhoto( <?php echo $photo['id']; ?> , 'description', this )" ><?php echo stripslashes($photo['description']); ?> </textarea> </td> <!-- Status --> <td> <?php if (current_user_can('wppa_admin') || current_user_can('wppa_moderate')) { ?> <select id="status-<?php echo $photo['id']; ?> " onchange="wppaAjaxUpdatePhoto( <?php echo $photo['id']; ?> , 'status', this ); wppaPhotoStatusChange( <?php echo $photo['id']; ?> ); "> <option value="pending" <?php if ($photo['status'] == 'pending') { echo 'selected="selected"'; } ?> ><?php _e('Pending', 'wp-photo-album-plus'); ?> </option> <option value="publish" <?php if ($photo['status'] == 'publish') { echo 'selected="selected"'; } ?> ><?php _e('Publish', 'wp-photo-album-plus'); ?> </option> <?php if (wppa_switch('ext_status_restricted') && !wppa_user_is('administrator')) { $dis = ' disabled'; } else { $dis = ''; } ?> <option value="featured" <?php if ($photo['status'] == 'featured') { echo 'selected="selected"'; } echo $dis; ?> ><?php _e('Featured', 'wp-photo-album-plus'); ?> </option> <option value="gold" <?php if ($photo['status'] == 'gold') { echo 'selected="selected"'; } echo $dis; ?> ><?php _e('Gold', 'wp-photo-album-plus'); ?> </option> <option value="silver" <?php if ($photo['status'] == 'silver') { echo 'selected="selected"'; } echo $dis; ?> ><?php _e('Silver', 'wp-photo-album-plus'); ?> </option> <option value="bronze" <?php if ($photo['status'] == 'bronze') { echo 'selected="selected"'; } echo $dis; ?> ><?php _e('Bronze', 'wp-photo-album-plus'); ?> </option> <option value="scheduled" <?php if ($photo['status'] == 'scheduled') { echo 'selected="selected"'; } echo $dis; ?> ><?php _e('Scheduled', 'wp-photo-album-plus'); ?> </option> <option value="private" <?php if ($photo['status'] == 'private') { echo 'selected="selected"'; } echo $dis; ?> ><?php _e('Private', 'wp-photo-album-plus'); ?> </option> </select> <?php } else { if ($photo['status'] == 'pending') { _e('Pending', 'wp-photo-album-plus'); } elseif ($photo['status'] == 'publish') { _e('Publish', 'wp-photo-album-plus'); } elseif ($photo['status'] == 'featured') { e('Featured'); } elseif ($photo['status'] == 'gold') { _e('Gold', 'wp-photo-album-plus'); } elseif ($photo['status'] == 'silver') { _e('Silver', 'wp-photo-album-plus'); } elseif ($photo['status'] == 'bronze') { _e('Bronze', 'wp-photo-album-plus'); } elseif ($photo['status'] == 'scheduled') { _e('Scheduled', 'wp-photo-album-plus'); } elseif ($photo['status'] == 'private') { _e('Private', 'wp-photo-album-plus'); } } ?> </td> <!-- Owner --> <td> <?php echo $photo['owner']; ?> </td> <!-- Remark --> <td id="photostatus-<?php echo $photo['id']; ?> " style="width:25%;" > <?php _e('Not modified', 'wp-photo-album-plus'); ?> <script type="text/javascript">wppaPhotoStatusChange( <?php echo $photo['id']; ?> )</script> </td> </tr> <?php } ?> </tbody> <tfoot style="font-weight:bold;" > <td><input type="checkbox" class="wppa-bulk-photo" onchange="jQuery( '.wppa-bulk-photo' ).attr( 'checked', this.checked );" /></td> <td><?php _e('ID', 'wp-photo-album-plus'); ?> </td> <td><?php _e('Preview', 'wp-photo-album-plus'); ?> </td> <td><?php _e('Name', 'wp-photo-album-plus'); ?> </td> <td><?php _e('Description', 'wp-photo-album-plus'); ?> </td> <td><?php _e('Status', 'wp-photo-album-plus'); ?> </td> <td><?php _e('Owner', 'wp-photo-album-plus'); ?> </td> <td><?php _e('Remark', 'wp-photo-album-plus'); ?> </td> </tfoot> </table> </form> <?php wppa_admin_page_links($page, $pagesize, $count, $link); } else { if ($page == '1') { if (isset($_REQUEST['wppa-searchstring'])) { echo '<h3>' . __('No photos matching your search criteria.', 'wp-photo-album-plus') . '</h3>'; } else { echo '<h3>' . __('No photos yet in this album.', 'wp-photo-album-plus') . '</h3>'; } } else { $page_1 = $page - '1'; echo sprintf(__('Page %d is empty, try <a href="%s" >page %d</a>.', 'wp-photo-album-plus'), $page, $link . '&wppa-page=' . $page_1 . '#manage-photos', $page_1); } } } else { wppa_dbg_msg('Missing required argument in wppa_album_photos() 2', 'red', 'force'); } }
function wppa_album_cover_view_link($albumid, $has_content, $photocount, $albumcount, $mincount, $href_content, $target, $onclick_content) { global $wppa; $album = wppa_cache_album($albumid); if (wppa_switch('wppa_show_viewlink')) { $wppa['out'] .= wppa_nltab('+') . '<div class="wppa-box-text wppa-black wppa-info wppa-viewlink">'; if ($has_content) { // Fake photocount to prevent link to empty page if (wppa_opt('wppa_thumbtype') == 'none') { $photocount = '0'; } // Still has content if ($photocount > $mincount || $albumcount) { // Get treecount data if (wppa_switch('wppa_show_treecount')) { $treecount = wppa_treecount_a($albumid); } else { $treecount = false; } if ($href_content == '#') { $wppa['out'] .= wppa_nltab('+') . '<a onclick="' . $onclick_content . '" title="' . __a('View the album') . ' ' . esc_attr(stripslashes(wppa_qtrans($album['name']))) . '" style="' . __wcs('wppa-box-text-nocolor') . '" >'; } else { $wppa['out'] .= wppa_nltab('+') . '<a href="' . $href_content . '" target="' . $target . '" onclick="' . $onclick_content . '" title="' . __a('View the album') . ' ' . esc_attr(stripslashes(wppa_qtrans($album['name']))) . '" style="' . __wcs('wppa-box-text-nocolor') . '" >'; } /**/ $text = __a('View'); if ($albumcount) { if ($albumcount == '1') { $text .= ' 1 ' . __a('album'); } else { $text .= ' ' . $albumcount . ' ' . __a('albums'); } if ($treecount) { if ($treecount['albums'] > $albumcount) { $text .= ' (' . $treecount['albums'] . ')'; } } } if ($photocount > $mincount && $albumcount) { $text .= ' ' . __a('and'); } if ($photocount > $mincount || $treecount) { if ($photocount <= $mincount) { $photocount = '0'; } if ($photocount == '1') { $text .= ' 1 ' . __a('photo'); } elseif ($photocount) { $text .= ' ' . $photocount . ' ' . __a('photos'); } if ($treecount) { if ($treecount['photos'] > $photocount) { if (!$photocount) { $text .= ', ' . __a('photos'); } $text .= ' (' . $treecount['photos'] . ')'; } } } $wppa['out'] .= str_replace(' ', ' ', $text); /**/ $wppa['out'] .= wppa_nltab('-') . '</a>'; } } else { $wppa['out'] .= ' '; } $wppa['out'] .= wppa_nltab('-') . '</div>'; } }
function wppa_do_albumlist($parent, $nestinglevel, $albums, $seq) { global $wpdb; $alt = true; foreach (array_keys($seq) as $s) { // Obey the global sequence $album = $albums[$s]; if ($album['a_parent'] == $parent) { if (wppa_have_access($album)) { $counts = wppa_treecount_a($album['id']); $pendcount = $counts['pendphotos']; $schedulecount = $counts['scheduledphotos']; $haschildren = wppa_have_accessable_children($album); $class = ''; if ($parent != '0' && $parent != '-1') { $class .= 'wppa-alb-on-' . $parent . ' '; $par = $parent; while ($par != '0' && $par != '-1') { $class .= 'wppa-alb-off-' . $par . ' '; $par = wppa_get_parentalbumid($par); } } if ($alt) { $class .= ' alternate'; } $style = ''; if ($pendcount) { $style .= 'background-color:#ffdddd; '; } // if ( $haschildren ) $style .= 'font-weight:bold; '; if ($parent != '0' && $parent != '-1') { $style .= 'display:none; '; } $onclickon = 'jQuery(\'.wppa-alb-on-' . $album['id'] . '\').css(\'display\',\'\'); jQuery(\'#alb-arrow-on-' . $album['id'] . '\').css(\'display\',\'none\'); jQuery(\'#alb-arrow-off-' . $album['id'] . '\').css(\'display\',\'\');'; $onclickoff = 'jQuery(\'.wppa-alb-off-' . $album['id'] . '\').css(\'display\',\'none\'); jQuery(\'#alb-arrow-on-' . $album['id'] . '\').css(\'display\',\'\'); jQuery(\'#alb-arrow-off-' . $album['id'] . '\').css(\'display\',\'none\'); checkArrows();'; $indent = $nestinglevel; if ($indent > '5') { $indent = 5; } ?> <tr class="<?php echo $class; ?> " style="<?php echo $style; ?> " > <?php $i = 0; while ($i < $indent) { echo '<td style="padding:2px;" ></td>'; $i++; } ?> <td style="padding:2px; text-align:center;" ><?php if ($haschildren) { ?> <img id="alb-arrow-off-<?php echo $album['id']; ?> " class="alb-arrow-off" style="height:16px; display:none;" src="<?php echo wppa_get_imgdir() . 'backarrow.gif'; ?> " onclick="<?php echo $onclickoff; ?> " title="<?php _e('Collapse subalbums', 'wp-photo-album-plus'); ?> " /> <img id="alb-arrow-on-<?php echo $album['id']; ?> " class="alb-arrow-on" style="height:16px;" src="<?php echo wppa_get_imgdir() . 'arrow.gif'; ?> " onclick="<?php echo $onclickon; ?> " title="<?php _e('Expand subalbums', 'wp-photo-album-plus'); ?> " /> <?php } ?> </td> <td style="padding:2px;" ><?php echo $album['id']; ?> </td> <?php $i = $indent; while ($i < 5) { echo '<td style="padding:2px;" ></td>'; $i++; } ?> <td><?php echo esc_attr(__(stripslashes($album['name']))); ?> </td> <td><small><?php echo esc_attr(__(stripslashes($album['description']))); ?> </small></td> <?php if (current_user_can('administrator')) { ?> <td><?php echo $album['owner']; ?> </td> <?php } ?> <td><?php echo $album['a_order']; ?> </td> <td><?php echo wppa_get_album_name($album['a_parent'], 'extended'); ?> </td> <?php $url = wppa_dbg_url(get_admin_url() . 'admin.php?page=wppa_admin_menu&tab=edit&edit_id=' . $album['id']); ?> <?php $na = $counts['selfalbums']; ?> <?php $np = $counts['selfphotos']; ?> <?php $nm = $counts['pendphotos']; ?> <?php $ns = $counts['scheduledphotos']; ?> <td><?php echo $na . '/' . $np . '/' . $nm . '/' . $ns; ?> </td> <?php if ($album['owner'] != '--- public ---' || wppa_user_is('administrator')) { ?> <?php $url = wppa_ea_url($album['id']); ?> <td><a href="<?php echo $url; ?> " class="wppaedit"><?php _e('Edit', 'wp-photo-album-plus'); ?> </a></td> <td><a href="<?php echo $url . '&quick'; ?> " class="wppaedit"><?php _e('Quick', 'wp-photo-album-plus'); ?> </a></td> <td><a href="<?php echo $url . '&bulk#manage-photos'; ?> " class="wppaedit"><?php _e('Bulk', 'wp-photo-album-plus'); ?> </a></td> <td><a href="<?php echo $url . '&seq'; ?> " class="wppaedit"><?php _e('Seq', 'wp-photo-album-plus'); ?> </a></td> <?php $url = wppa_ea_url($album['id'], 'del'); ?> <td><a href="<?php echo $url; ?> " class="wppadelete"><?php _e('Delete', 'wp-photo-album-plus'); ?> </a></td> <?php if (wppa_can_create_album()) { $url = wppa_dbg_url(get_admin_url() . 'admin.php?page=wppa_admin_menu&tab=edit&edit_id=new&parent_id=' . $album['id']); if (wppa_switch('confirm_create')) { $onc = 'if (confirm(\'' . __('Are you sure you want to create a subalbum?', 'wp-photo-album-plus') . '\')) document.location=\'' . $url . '\';'; echo '<td><a onclick="' . $onc . '" class="wppacreate">' . __('Create', 'wp-photo-album-plus') . '</a></td>'; } else { echo '<td><a href="' . $url . '" class="wppacreate">' . __('Create', 'wp-photo-album-plus') . '</a></td>'; } } } else { ?> <td></td><td></td><?php if (wppa_can_create_album()) { echo '<td></td'; } ?> <?php } ?> </tr> <?php if ($alt == '') { $alt = ' class="alternate" '; } else { $alt = ''; } if ($haschildren) { wppa_do_albumlist($album['id'], $nestinglevel + '1', $albums, $seq); } } } } }
function wppa_the_album_title($alb, $href_title, $onclick_title, $title, $target) { $album = wppa_cache_album($alb); wppa_out('<h2 class="wppa-title" style="clear:none; ' . __wcs('wppa-title') . '">'); if ($href_title) { if ($href_title == '#') { wppa_out('<a onclick="' . $onclick_title . '" title="' . $title . '" class="wppa-title" style="cursor:pointer; ' . __wcs('wppa-title') . '">' . wppa_get_album_name($alb) . '</a>'); } else { wppa_out('<a href="' . $href_title . '" target="' . $target . '" onclick="' . $onclick_title . '" title="' . $title . '" class="wppa-title" style="' . __wcs('wppa-title') . '">' . wppa_get_album_name($alb) . '</a>'); } } else { wppa_out(wppa_get_album_name($alb)); } // Photo count? if (wppa_opt('count_on_title') != '-none-') { if (wppa_opt('count_on_title') == 'self') { $cnt = wppa_get_photo_count($alb); } if (wppa_opt('count_on_title') == 'total') { $temp = wppa_treecount_a($alb); $cnt = $temp['photos']; if (current_user_can('wppa_moderate')) { $cnt += $temp['pendphotos']; } } if ($cnt) { wppa_out(' <span class="wppa-cover-pcount" >(' . $cnt . ')</span>'); } } $fsize = '12'; if (wppa_is_album_new($alb)) { $type = 'new'; } elseif (wppa_is_album_modified($alb)) { $type = 'mod'; } else { $type = ''; } $do_image = !wppa_switch('new_mod_label_is_text'); if ($type) { if ($do_image) { wppa_out('<img' . ' src="' . wppa_opt($type . '_label_url') . '"' . ' title="' . __('New!', 'wp-photo-album-plus') . '"' . ' class="wppa-albumnew"' . ' style="border:none;margin:0;padding:0;box-shadow:none;"' . ' alt="' . __('New', 'wp-photo-album-plus') . '"' . ' />'); } else { wppa_out(' <span' . ' style="' . 'display:inline;' . 'box-sizing:border-box;' . 'font-size:' . $fsize . 'px;' . 'line-height:' . $fsize . 'px;' . 'font-family:\'Arial Black\', Gadget, sans-serif;' . 'border-radius:4px;' . 'border-width:2px;' . 'border-style:solid;' . wppa_get_text_medal_color_style($type, '2') . '"' . ' >' . ' ' . __(wppa_opt($type . '_label_text')) . ' ' . '</span>'); } } wppa_out('</h2>'); }