<?php if (comments_open()) { if (!in_category($options['cat_open']) && !in_category($options['cat_close']) && !in_category($options['cat_results'])) { ?> <div class="sidespot comment_spot"> <a href="#respond" class="respond_below">Σχολιάστε!</a> </div> <?php } } ?> <?php if (function_exists('get_downloads')) { $dl = get_downloads('category=' . $cons_cat->cat_ID . ''); if (!empty($dl)) { ?> <div class="sidespot orange_spot"> <h4>Σχετικό Υλικό</h4> <?php foreach ($dl as $d) { $date = date("j F Y, H:s", strtotime($d->date)); echo '<span class="file"><a href="' . $d->url . '" title="(Έκδοση ' . $d->version . ') Μεταφορτώθηκε ' . $d->hits . ' φορές" >' . $d->title . '</a></span>'; } ?> </div> <?php } } ?>
function wp_dlmp_output($base_heading_level = '3', $pop_count = 4, $pop_cat_count = 4, $show_uncategorized = true, $per_page = 20, $format = '', $exclude = '', $exclude_cat = '', $show_tags = 0, $default_order = 'title', $front_order = 'hits') { if (function_exists('get_downloads')) { // DEFINE STRINGS (translate these if needed) $popular_text = __('Popular Downloads', 'wp-download_monitor'); $tags_widget_text = __('Tags', 'wp-download_monitor'); $uncategorized = __('Other', 'wp-download_monitor'); $search_text = __('Search Downloads:', 'wp-download_monitor'); $search_submit_text = __('Go', 'wp-download_monitor'); $search_results_text = __('Results found for ', 'wp-download_monitor'); $nonefound = __('No downloads were found.', 'wp-download_monitor'); $notfound = __('No download found matching given ID.', 'wp-download_monitor'); $main_page_back_text = __('Downloads', 'wp-download_monitor'); $desc_heading = __('Description', 'wp-download_monitor'); $version_text = __('Version', 'wp-download_monitor'); $category_text = __('Categories', 'wp-download_monitor'); $single_tags_text = __('Tags', 'wp-download_monitor'); $hits_text = __('Downloaded', 'wp-download_monitor'); $hits_text2 = __(' time', 'wp-download_monitor'); $hits_text2_p = __(' times', 'wp-download_monitor'); $posted_text = __('Date posted', 'wp-download_monitor'); $posted_text2 = __('F j, Y', 'wp-download_monitor'); $dbutton_text = __('Download', 'wp-download_monitor'); $readmore_text = __('Read More', 'wp-download_monitor'); $subcat_text = __('Sub-Categories:', 'wp-download_monitor'); $sort_text = __('Sort by:', 'wp-download_monitor'); $tags_text = __('Downloads tagged:', 'wp-download_monitor'); // END DEFINE STRINGS global $wpdb, $wp_dlm_db, $wp_dlm_db_taxonomies, $wp_dlm_db_relationships, $post, $wp_dlmp_root, $wp_dlm_db_meta, $download_taxonomies; // Handle $exclude $exclude_array = array(); if ($exclude) { $exclude_unclean = explode(',', $exclude); foreach ($exclude_unclean as $e) { $e = trim($e); if (is_numeric($e)) { $exclude_array[] = $e; } } } if (sizeof($exclude_array) > 0) { $exclude_query = ' AND ' . $wp_dlm_db . '.id NOT IN (' . implode(',', $exclude_array) . ')'; } else { $exclude_query = ""; $exclude_array[] = 0; } // Handle $exclude_cat $exclude_cat_array = array(); if ($exclude_cat) { $exclude_cat_unclean = explode(',', $exclude_cat); foreach ($exclude_cat_unclean as $e) { $e = trim($e); if (is_numeric($e)) { $exclude_cat_array[] = $e; } } } $category_array = array(); if (is_object($download_taxonomies) && sizeof($download_taxonomies->categories) > 0) { foreach ($download_taxonomies->categories as $category) { if (!in_array($category->id, $exclude_cat_array)) { $category_array[$category->id] = $category; } } } // Find more IDS to exlude if (sizeof($exclude_cat_array) > 0) { $results = $wpdb->get_results("\n\t\tSELECT {$wp_dlm_db}.id \n\t\tFROM {$wp_dlm_db} \t\t\n\t\tLEFT JOIN {$wp_dlm_db_relationships} ON( {$wp_dlm_db}.id = {$wp_dlm_db_relationships}.download_id )\n\t\tLEFT JOIN {$wp_dlm_db_taxonomies} ON({$wp_dlm_db_relationships}.taxonomy_id = {$wp_dlm_db_taxonomies}.id)\n\t\tWHERE {$wp_dlm_db_taxonomies}.id IN (" . implode(',', $exclude_cat_array) . ")\n\t\tAND {$wp_dlm_db_taxonomies}.taxonomy = 'category';"); $new_exclude_array = array(); foreach ($results as $r) { $new_exclude_array[] = $r->id; } $exclude_array = array_merge($exclude_array, $new_exclude_array); } if (sizeof($exclude_array) > 0) { $exclude_query = ' AND ' . $wp_dlm_db . '.id NOT IN (' . implode(',', $exclude_array) . ')'; } else { $exclude_query = ""; } // Handle Formats global $download_formats_names_array, $def_format; $format = trim($format); if (!$format && $def_format > 0) { $format = wp_dlm_get_custom_format($def_format); } elseif ($format > 0 && is_numeric($format)) { $format = wp_dlm_get_custom_format($format); } else { if (isset($download_formats_names_array) && is_array($download_formats_names_array) && in_array($format, $download_formats_names_array)) { $format = wp_dlm_get_custom_format_by_name($format); } else { $format = html_entity_decode($format); } } // Default is none set/no defaults if (empty($format) || $format == '0') { $format = '<a class="downloadlink" href="{url}" title="{version,"' . __("Version", "wp-download_monitor") . '", ""} ' . __("downloaded", "wp-download_monitor") . ' {hits} ' . __("times", "wp-download_monitor") . '" >{title} ({hits})</a>'; } wp_dlm_magic(); // DOWNLOAD PAGE DATA FUNCTIONS if (!function_exists('wp_dlmp_append_url')) { function wp_dlmp_append_url($append) { global $post; $querystring = explode('?', get_permalink($post->ID)); $add = '?'; if (isset($querystring[1])) { $add .= $querystring[1] . '&'; } $add .= $append; return $querystring[0] . $add; } } if (!function_exists('get_chain')) { function get_chain($cat, $chain = array()) { global $download_taxonomies; $chain[] = '<a href="' . wp_dlmp_append_url('category=' . urlencode(strtolower($cat->id))) . '">« ' . $cat->name . '</a>'; if ($cat->parent > 0) { $chain = get_chain($download_taxonomies->categories[$cat->parent], $chain); } return $chain; } function no_chain($chain = array()) { return $chain; } } // START PAGE OUTPUT $page = ''; $fields = ''; // Ensure it works with default permalinks global $post; if ($post && is_page()) { $fields = '<input type="hidden" name="page_id" value="' . $post->ID . '" />'; } if ($post && is_single()) { $fields = '<input type="hidden" name="p" value="' . $post->ID . '" />'; } if (isset($_GET['lang'])) { $fields .= '<input type="hidden" name="lang" value="' . $_GET['lang'] . '" />'; } $dlsearch = ''; if (isset($_REQUEST['dlsearch'])) { $dlsearch = $_REQUEST['dlsearch']; } $page .= '<div id="download-page"> <form id="download-page-search" action="" method="post"> <p><label for="dlsearch">' . $search_text . '</label> <input type="text" name="dlsearch" id="dlsearch" value="' . $dlsearch . '" /><input class="search_submit" type="submit" value="' . $search_submit_text . '" />' . $fields . '</p></form>'; if (isset($dlsearch) && !empty($dlsearch)) { ########################################################################################################################################################################################## ## Search View ########################################################################################################################################################################################## $page .= '<h' . $base_heading_level . '>' . $search_results_text . '<em>"' . $dlsearch . '"</em> <small><a href="' . get_permalink($post->ID) . '">« ' . $main_page_back_text . '</a></small></h' . $base_heading_level . '>'; $orderby = ''; if (!isset($_GET['sortby'])) { $_GET['sortby'] = $default_order; } // Sorting Options switch (trim(strtolower($_GET['sortby']))) { case 'hits': $sort_hits = 'class="active"'; $sort_date = ''; $sort_title = ''; $orderby = 'ORDER BY ' . $wp_dlm_db . '.hits DESC'; break; case 'date': $sort_date = 'class="active"'; $sort_hits = ''; $sort_title = ''; $orderby = 'ORDER BY ' . $wp_dlm_db . '.postDate DESC'; break; default: $sort_title = 'class="active"'; $sort_date = ''; $sort_hits = ''; $orderby = 'ORDER BY ' . $wp_dlm_db . '.title ASC'; break; } $sort_options = array('<a href="' . wp_dlmp_append_url('dlsearch=' . urlencode($dlsearch) . '&sortby=title') . '" ' . $sort_title . '>' . __('Title', 'wp-download_monitor') . '</a>', '<a href="' . wp_dlmp_append_url('dlsearch=' . urlencode($dlsearch) . '&sortby=hits') . '" ' . $sort_hits . '>' . __('Hits', 'wp-download_monitor') . '</a>', '<a href="' . wp_dlmp_append_url('dlsearch=' . urlencode($dlsearch) . '&sortby=date') . '" ' . $sort_date . '>' . __('Date', 'wp-download_monitor') . '</a>'); $page .= '<p class="sorting"><strong>' . $sort_text . '</strong> '; $page .= implode(' | ', $sort_options) . '</p>'; // End Sorting Options // Pagination Calc $paged_query = ""; if (!isset($_GET['dlpage'])) { $dlpage = 1; } else { $dlpage = $_GET['dlpage']; } $from = $dlpage * $per_page - $per_page; $paged_query = 'LIMIT ' . $from . ',' . $per_page . ''; $total = $wpdb->get_var("SELECT COUNT(DISTINCT {$wp_dlm_db}.id) \n\t\t\t\tFROM {$wp_dlm_db} \n\t\t\t\tLEFT JOIN {$wp_dlm_db_relationships} ON( {$wp_dlm_db}.id = {$wp_dlm_db_relationships}.download_id )\n\t\t\t\tLEFT JOIN {$wp_dlm_db_taxonomies} ON({$wp_dlm_db_relationships}.taxonomy_id = {$wp_dlm_db_taxonomies}.id)\n\t\t\t\tWHERE \n\t\t\t\t\t(\n\t\t\t\t\ttitle LIKE '%" . $wpdb->escape($_REQUEST['dlsearch']) . "%' \n\t\t\t\t\tOR filename LIKE '%" . $wpdb->escape($_REQUEST['dlsearch']) . "%'\n\t\t\t\t\tOR {$wp_dlm_db_taxonomies}.name LIKE '%" . $wpdb->escape($_REQUEST['dlsearch']) . "%'\n\t\t\t\t\tOR file_description LIKE '%" . $wpdb->escape($_REQUEST['dlsearch']) . "%'\n\t\t\t\t\t)\n\t\t\t\tAND {$wp_dlm_db}.id NOT IN (" . implode(',', $exclude_array) . ")\n\t\t\t;"); $total_pages = ceil($total / $per_page); // End Pagination Calc $downloads = $wpdb->get_results("SELECT DISTINCT {$wp_dlm_db}.* \n\t\t\t\tFROM {$wp_dlm_db} \n\t\t\t\tLEFT JOIN {$wp_dlm_db_relationships} ON( {$wp_dlm_db}.id = {$wp_dlm_db_relationships}.download_id )\n\t\t\t\tLEFT JOIN {$wp_dlm_db_taxonomies} ON({$wp_dlm_db_relationships}.taxonomy_id = {$wp_dlm_db_taxonomies}.id)\n\t\t\t\tWHERE \n\t\t\t\t\t(\n\t\t\t\t\ttitle LIKE '%" . $wpdb->escape($_REQUEST['dlsearch']) . "%' \n\t\t\t\t\tOR filename LIKE '%" . $wpdb->escape($_REQUEST['dlsearch']) . "%'\n\t\t\t\t\tOR {$wp_dlm_db_taxonomies}.name LIKE '%" . $wpdb->escape($_REQUEST['dlsearch']) . "%'\n\t\t\t\t\tOR file_description LIKE '%" . $wpdb->escape($_REQUEST['dlsearch']) . "%'\n\t\t\t\t\t)\n\t\t\t\tAND {$wp_dlm_db}.id NOT IN (" . implode(',', $exclude_array) . ")\n\t\t\t\t{$orderby} {$paged_query};"); if (!empty($downloads)) { $page .= '<ul>'; foreach ($downloads as $d) { $page .= '<li>' . do_shortcode('[download id="' . $d->id . '" format="' . htmlspecialchars(str_replace('{url}', wp_dlmp_append_url('did=') . '{id}', $format)) . '"]') . '</li>'; } $page .= '</ul>'; // Show Pagination if ($total_pages > 1) { $page .= '<ul class="pagination">'; if ($dlpage > 1) { $prev = $dlpage - 1; $page .= "<li><a href=\"" . wp_dlmp_append_url('dlsearch=' . urlencode($dlsearch) . '&sortby=' . strtolower($_GET['sortby']) . '&dlpage=' . $prev . '') . "\">« " . __('Previous', "wp-download_monitor") . "</a></li>"; } else { $page .= "<li><span class='current page-numbers'>« " . __('Previous', "wp-download_monitor") . "</span></li>"; } for ($i = 1; $i <= $total_pages; $i++) { if ($dlpage == $i) { $page .= "<li><span class='page-numbers current'>{$i}</span></li>"; } else { $page .= "<li><a href=\"" . wp_dlmp_append_url('dlsearch=' . urlencode($dlsearch) . '&sortby=' . strtolower($_GET['sortby']) . '&dlpage=' . $i . '') . "\">{$i}</a></li>"; } } if ($dlpage < $total_pages) { $next = $dlpage + 1; $page .= "<li><a href=\"" . wp_dlmp_append_url('dlsearch=' . urlencode($dlsearch) . '&sortby=' . strtolower($_GET['sortby']) . '&dlpage=' . $next . '') . "\">" . __('Next', "wp-download_monitor") . " »</a></li>"; } else { $page .= "<li><span class='current page-numbers'>" . __('Next', "wp-download_monitor") . " »</span></li>"; } $page .= '</ul>'; } // End show pagination } else { $page .= '<p>' . $nonefound . '</p>'; } } elseif (isset($_GET['category'])) { ########################################################################################################################################################################################## ## Single Category view ########################################################################################################################################################################################## $category = $wpdb->escape(trim(urldecode(strtolower($_GET['category'])))); $downloads = ""; $total_pages = ""; $dlpage = ""; if (($category == strtolower($uncategorized) || $category == 0) && $show_uncategorized) { $count = $wpdb->get_var("\n\t\t\t\tSELECT COUNT(DISTINCT {$wp_dlm_db}.id) \n\t\t\t\tFROM {$wp_dlm_db} \n\t\t\t\tWHERE {$wp_dlm_db}.id NOT IN (\n\t\t\t\t\tSELECT download_id FROM {$wp_dlm_db_relationships}\n\t\t\t\t\tLEFT JOIN {$wp_dlm_db_taxonomies} ON {$wp_dlm_db_relationships}.taxonomy_id = {$wp_dlm_db_taxonomies}.id\n\t\t\t\t\tWHERE {$wp_dlm_db_taxonomies}.taxonomy = 'category'\n\t\t\t\t)\n\t\t\t\t{$exclude_query};\n\t\t\t"); $page .= '<h' . $base_heading_level . '>' . ucwords($uncategorized) . ' (' . $count . ') <small><a href="' . get_permalink($post->ID) . '">« ' . $main_page_back_text . '</a></small></h' . $base_heading_level . '>'; $orderby = ''; if (!isset($_GET['sortby'])) { $_GET['sortby'] = $default_order; } // Sorting Options switch (trim(strtolower($_GET['sortby']))) { case 'hits': $sort_hits = 'class="active"'; $orderby = 'hits'; $order = 'desc'; break; case 'date': $sort_date = 'class="active"'; $orderby = 'postdate'; $order = 'desc'; break; default: $sort_title = 'class="active"'; $orderby = 'title'; $order = 'asc'; break; } $sort_options = array('<a href="' . wp_dlmp_append_url('category=' . urlencode(strtolower($uncategorized)) . '&sortby=title') . '" ' . $sort_title . '>' . __('Title', 'wp-download_monitor') . '</a>', '<a href="' . wp_dlmp_append_url('category=' . urlencode(strtolower($uncategorized)) . '&sortby=hits') . '" ' . $sort_hits . '>' . __('Hits', 'wp-download_monitor') . '</a>', '<a href="' . wp_dlmp_append_url('category=' . urlencode(strtolower($uncategorized)) . '&sortby=date') . '" ' . $sort_date . '>' . __('Date', 'wp-download_monitor') . '</a>'); $page .= '<p class="sorting"><strong>' . $sort_text . '</strong> '; $page .= implode(' | ', $sort_options) . '</p>'; // End Sorting Options // Pagination Calc if (!isset($_GET['dlpage'])) { $dlpage = 1; } else { $dlpage = $_GET['dlpage']; } $from = $dlpage * $per_page - $per_page; $total_pages = ceil($count / $per_page); // End Pagination Calc $page .= do_shortcode('[downloads query="exclude=' . implode(',', $exclude_array) . '&limit=' . $per_page . '&orderby=' . $orderby . '&order=' . $order . '&offset=' . $from . '&category=none" format="' . htmlspecialchars(str_replace('{url}', wp_dlmp_append_url('did=') . '{id}', $format)) . '"]'); } else { if ($category_array[$category]) { $cat = $category_array[$category]; } if ($cat->id > 0) { $chain = $download_taxonomies->do_something_to_cat_parents($cat->id, 'get_chain', 'no_chain'); if (is_array($chain) && sizeof($chain) > 0) { $cat_breadcrumb = implode(' ', $chain); } // Count = children too $in_cats = $cat->decendents; $in_cats[] = $cat->id; $count = $wpdb->get_var("\n\t\t\t\t\tSELECT COUNT(DISTINCT {$wp_dlm_db_relationships}.download_id) \n\t\t\t\t\tFROM {$wp_dlm_db_relationships} \n\t\t\t\t\tLEFT JOIN {$wp_dlm_db_taxonomies} ON({$wp_dlm_db_relationships}.taxonomy_id = {$wp_dlm_db_taxonomies}.id)\n\t\t\t\t\tWHERE {$wp_dlm_db_taxonomies}.id IN (" . implode(',', $in_cats) . ")\n\t\t\t\t\tAND {$wp_dlm_db_relationships}.download_id NOT IN (" . implode(',', $exclude_array) . ")\n\t\t\t\t\tAND {$wp_dlm_db_taxonomies}.taxonomy = 'category';\n\t\t\t\t"); if (!isset($cat_breadcrumb)) { $cat_breadcrumb = ''; } $page .= '<h' . $base_heading_level . '>' . wptexturize($cat->name) . ' (' . $count . ') <small>' . $cat_breadcrumb . ' <a href="' . get_permalink($post->ID) . '">« ' . $main_page_back_text . '</a></small></h' . $base_heading_level . '>'; if (sizeof($cat->decendents) > 0) { $subcats = array(); foreach ($cat->direct_decendents as $child_cat) { if ($category_array[$child_cat]->name) { $sub_in_cats = $category_array[$child_cat]->decendents; $sub_in_cats[] = $category_array[$child_cat]->id; $scount = $wpdb->get_var("\n\t\t\t\t\t\t\t\tSELECT COUNT(DISTINCT {$wp_dlm_db_relationships}.download_id) \n\t\t\t\t\t\t\t\tFROM {$wp_dlm_db_relationships} \n\t\t\t\t\t\t\t\tLEFT JOIN {$wp_dlm_db_taxonomies} ON({$wp_dlm_db_relationships}.taxonomy_id = {$wp_dlm_db_taxonomies}.id)\n\t\t\t\t\t\t\t\tWHERE {$wp_dlm_db_taxonomies}.id IN (" . implode(',', $sub_in_cats) . ")\n\t\t\t\t\t\t\t\tAND {$wp_dlm_db_relationships}.download_id NOT IN (" . implode(',', $exclude_array) . ")\n\t\t\t\t\t\t\t\tAND {$wp_dlm_db_taxonomies}.taxonomy = 'category';\n\t\t\t\t\t\t\t"); if ($scount > 0) { $subcats[] = wptexturize($category_array[$child_cat]->name) . ' ' . '<a href="' . wp_dlmp_append_url('category=' . urlencode(strtolower($category_array[$child_cat]->id))) . '">(' . $scount . ')</a>'; } } } if (sizeof($subcats) > 0) { $page .= '<p class="subcats"><strong>' . $subcat_text . '</strong> '; sort($subcats); $page .= implode(' | ', $subcats) . '</p>'; } } $orderby = ''; if (!isset($_GET['sortby'])) { $_GET['sortby'] = $default_order; } // Sorting Options switch (trim(strtolower($_GET['sortby']))) { case 'hits': $sort_hits = 'class="active"'; $sort_date = ''; $sort_title = ''; $orderby = 'hits'; $order = 'desc'; break; case 'date': $sort_date = 'class="active"'; $sort_hits = ''; $sort_title = ''; $orderby = 'postdate'; $order = 'desc'; break; default: $sort_title = 'class="active"'; $sort_hits = ''; $sort_date = ''; $orderby = 'title'; $order = 'asc'; break; } $sort_options = array('<a href="' . wp_dlmp_append_url('category=' . urlencode(strtolower($cat->id)) . '&sortby=title') . '" ' . $sort_title . '>' . __('Title', 'wp-download_monitor') . '</a>', '<a href="' . wp_dlmp_append_url('category=' . urlencode(strtolower($cat->id)) . '&sortby=hits') . '" ' . $sort_hits . '>' . __('Hits', 'wp-download_monitor') . '</a>', '<a href="' . wp_dlmp_append_url('category=' . urlencode(strtolower($cat->id)) . '&sortby=date') . '" ' . $sort_date . '>' . __('Date', 'wp-download_monitor') . '</a>'); $page .= '<p class="sorting"><strong>' . $sort_text . '</strong> '; $page .= implode(' | ', $sort_options) . '</p>'; // End Sorting Options // Pagination Calc if (!isset($_GET['dlpage'])) { $dlpage = 1; } else { $dlpage = $_GET['dlpage']; } $from = $dlpage * $per_page - $per_page; $paged_query = 'LIMIT ' . $from . ',' . $per_page . ''; $total_pages = ceil($count / $per_page); // End Pagination Calc $page .= do_shortcode('[downloads query="exclude=' . implode(',', $exclude_array) . '&limit=' . $per_page . '&orderby=' . $orderby . '&order=' . $order . '&offset=' . $from . '&category=' . $cat->id . '" format="' . htmlspecialchars(str_replace('{url}', wp_dlmp_append_url('did=') . '{id}', $format)) . '"]'); } } // Show Pagination if ($total_pages > 1) { $page .= '<ul class="pagination">'; if ($dlpage > 1) { $prev = $dlpage - 1; $page .= "<li><a href=\"" . wp_dlmp_append_url('category=' . urlencode(strtolower($cat->id)) . '&sortby=' . strtolower($_GET['sortby']) . '&dlpage=' . $prev . '') . "\">« " . __('Previous', "wp-download_monitor") . "</a></li>"; } else { $page .= "<li><span class='current page-numbers'>« " . __('Previous', "wp-download_monitor") . "</span></li>"; } for ($i = 1; $i <= $total_pages; $i++) { if ($dlpage == $i) { $page .= "<li><span class='page-numbers current'>{$i}</span></li>"; } else { $page .= "<li><a href=\"" . wp_dlmp_append_url('category=' . urlencode(strtolower($cat->id)) . '&sortby=' . strtolower($_GET['sortby']) . '&dlpage=' . $i . '') . "\">{$i}</a></li>"; } } if ($dlpage < $total_pages) { $next = $dlpage + 1; $page .= "<li><a href=\"" . wp_dlmp_append_url('category=' . urlencode(strtolower($cat->id)) . '&sortby=' . strtolower($_GET['sortby']) . '&dlpage=' . $next . '') . "\">" . __('Next', "wp-download_monitor") . " »</a></li>"; } else { $page .= "<li><span class='current page-numbers'>" . __('Next', "wp-download_monitor") . " »</span></li>"; } $page .= '</ul>'; } // End show pagination } elseif (isset($_GET['dltag'])) { ########################################################################################################################################################################################## ## Tag View ########################################################################################################################################################################################## $tag = urldecode(strtolower(trim($_GET['dltag']))); if ($tag) { $page .= '<h' . $base_heading_level . '>' . $tags_text . ' ' . $tag . ' <small><a href="' . get_permalink($post->ID) . '">« ' . $main_page_back_text . '</a></small></h' . $base_heading_level . '>'; $orderby = ''; if (!isset($_GET['sortby'])) { $_GET['sortby'] = $default_order; } // Sorting Options switch (trim(strtolower($_GET['sortby']))) { case 'hits': $sort_hits = 'class="active"'; $sort_date = ''; $sort_title = ''; $orderby = 'hits'; $order = 'desc'; break; case 'date': $sort_date = 'class="active"'; $sort_hits = ''; $sort_title = ''; $orderby = 'postdate'; $order = 'desc'; break; default: $sort_title = 'class="active"'; $sort_date = ''; $sort_hits = ''; $orderby = 'title'; $order = 'asc'; break; } $sort_options = array('<a href="' . wp_dlmp_append_url('dltag=' . urlencode(strtolower($tag)) . '&sortby=title') . '" ' . $sort_title . '>' . __('Title', 'wp-download_monitor') . '</a>', '<a href="' . wp_dlmp_append_url('dltag=' . urlencode(strtolower($tag)) . '&sortby=hits') . '" ' . $sort_hits . '>' . __('Hits', 'wp-download_monitor') . '</a>', '<a href="' . wp_dlmp_append_url('dltag=' . urlencode(strtolower($tag)) . '&sortby=date') . '" ' . $sort_date . '>' . __('Date', 'wp-download_monitor') . '</a>'); $page .= '<p class="sorting"><strong>' . $sort_text . '</strong> '; $page .= implode(' | ', $sort_options) . '</p>'; // End Sorting Options // Pagination Calc if (!isset($_GET['dlpage'])) { $dlpage = 1; } else { $dlpage = $_GET['dlpage']; } $from = $dlpage * $per_page - $per_page; $count = $wpdb->get_var("\n\t\t\t\t\tSELECT COUNT(DISTINCT {$wp_dlm_db_relationships}.download_id) \n\t\t\t\t\tFROM {$wp_dlm_db_relationships} \n\t\t\t\t\tLEFT JOIN {$wp_dlm_db_taxonomies} ON({$wp_dlm_db_relationships}.taxonomy_id = {$wp_dlm_db_taxonomies}.id)\n\t\t\t\t\tWHERE {$wp_dlm_db_taxonomies}.name = '{$tag}' \n\t\t\t\t\tAND {$wp_dlm_db_relationships}.download_id NOT IN (" . implode(',', $exclude_array) . ") \n\t\t\t\t\tAND {$wp_dlm_db_taxonomies}.taxonomy = 'tag';\n\t\t\t\t"); $total_pages = ceil($count / $per_page); // End Pagination Calc $page .= do_shortcode('[downloads query="exclude=' . implode(',', $exclude_array) . '&limit=' . $per_page . '&orderby=' . $orderby . '&order=' . $order . '&offset=' . $from . '&tags=' . $tag . '" format="' . htmlspecialchars(str_replace('{url}', wp_dlmp_append_url('did=') . '{id}', $format)) . '"]'); // Show Pagination if ($total_pages > 1) { $page .= '<ul class="pagination">'; if ($dlpage > 1) { $prev = $dlpage - 1; $page .= "<li><a href=\"" . wp_dlmp_append_url('dltag=' . urlencode(strtolower($tag)) . '&sortby=' . strtolower($_GET['sortby']) . '&dlpage=' . $prev . '') . "\">« " . __('Previous', "wp-download_monitor") . "</a></li>"; } else { $page .= "<li><span class='current page-numbers'>« " . __('Previous', "wp-download_monitor") . "</span></li>"; } for ($i = 1; $i <= $total_pages; $i++) { if ($dlpage == $i) { $page .= "<li><span class='page-numbers current'>{$i}</span></li>"; } else { $page .= "<li><a href=\"" . wp_dlmp_append_url('dltag=' . urlencode(strtolower($tag)) . '&sortby=' . strtolower($_GET['sortby']) . '&dlpage=' . $i . '') . "\">{$i}</a></li>"; } } if ($dlpage < $total_pages) { $next = $dlpage + 1; $page .= "<li><a href=\"" . wp_dlmp_append_url('dltag=' . urlencode(strtolower($tag)) . '&sortby=' . strtolower($_GET['sortby']) . '&dlpage=' . $next . '') . "\">" . __('Next', "wp-download_monitor") . " »</a></li>"; } else { $page .= "<li><span class='current page-numbers'>" . __('Next', "wp-download_monitor") . " »</span></li>"; } $page .= '</ul>'; } // End show pagination } } elseif (isset($_GET['did']) && is_numeric($_GET['did']) && $_GET['did'] > 0) { ########################################################################################################################################################################################## ## Single Download View ########################################################################################################################################################################################## $d = $wpdb->get_row("SELECT * FROM {$wp_dlm_db} WHERE {$wp_dlm_db}.id = " . $wpdb->escape($_GET['did']) . " {$exclude_query} LIMIT 1;"); if (!empty($d)) { $download = new downloadable_file($d); if ($download->category) { $catname = trim($download->category); } else { $catname = ucwords($uncategorized); } $date = date("jS M Y", strtotime($download->date)); if ($download->dlversion) { $version = __('Version', "wp-download_monitor") . ' ' . $download->dlversion; } else { $version = ''; } if ($download->file_description) { $desc = apply_filters('download_description', $download->file_description); } else { $desc = ""; } $thumbnail_url = $download->thumbnail; // Gen category breadcrumb if ($download->category_id) { $chain[] = '<a href="' . wp_dlmp_append_url('category=' . urlencode(strtolower($download_taxonomies->categories[$download->category_id]->id))) . '">« ' . $download_taxonomies->categories[$download->category_id]->name . '</a>'; $chain = $download_taxonomies->do_something_to_cat_parents($download->category_id, 'get_chain', 'no_chain', $chain); $cat_breadcrumb = implode(' ', $chain); } else { $cat_breadcrumb = '<a href="' . wp_dlmp_append_url('category=' . urlencode(strtolower($uncategorized)) . '') . '">« ' . ucwords($uncategorized) . '</a>'; } $page .= '<div class="download-info single"> <div class="side-section"> <p><img src="' . $thumbnail_url . '" class="download-image" alt="' . strip_tags($download->title) . '" title="' . strip_tags($download->title) . '" width="112" /></p>'; if (!isset($download->meta['hide_download_button'])) { $page .= '<p><a href="' . do_shortcode('[download id="' . $download->id . '" format="{url}"]') . '" class="download-button">' . $dbutton_text . '</a></p>'; } // Handle post_id field if (isset($download->meta['post_id']) && is_numeric($download->meta['post_id'])) { $page .= '<p><a href="' . get_permalink($download->meta['post_id']) . '" class="more-button">' . $readmore_text . '</a></p>'; } else { $page .= '<div class="related-projects">' . "\n"; // multiple ids $page .= '<h3>' . __('Related', 'wp-download_monitor') . ':</h3><ul>'; $post_ids = explode(',', $download->meta['post_id']); // split into array foreach ($post_ids as $dl) { // print link for each array entry $page .= '<li><a href="' . get_permalink(trim($dl)) . '">' . get_the_title(trim($dl)) . '</a></li>'; } $page .= '</ul></div> <!-- /.related-projects -->' . "\n"; } // Special additional content meta field if (isset($download->meta['side_content'])) { $extra = $download->meta['side_content']; if ($extra) { $page .= '<div class="extra">' . $extra . '</div>'; } } $page .= ' </div> <div class="main-section"> <h' . $base_heading_level . ' class="download-info-heading">' . $download->title . ' <small>' . $cat_breadcrumb . ' <small><a href="' . get_permalink($post->ID) . '">« ' . $main_page_back_text . '</a></small></small></h' . $base_heading_level . '> '; // Show Meta Fields + download data $custom_field_data = array(); if ($download->dlversion) { $custom_field_data[] = array($version_text, $download->dlversion); } $custom_field_data[] = array($posted_text, date($posted_text2, strtotime($download->postDate))); if (!isset($download->meta['hide_hits'])) { if ($download->hits == 1) { $custom_field_data[] = array($hits_text, $download->hits . $hits_text2); } else { $custom_field_data[] = array($hits_text, $download->hits . $hits_text2_p); } } if ($download->categories) { $names = array(); foreach ($download->categories as $cat) { $names[] = '<a href="' . wp_dlmp_append_url('category=' . urlencode(strtolower($cat['id']))) . '">' . $cat['name'] . '</a>'; } $custom_field_data[] = array($category_text, implode(', ', $names)); } if ($download->tags) { $names = array(); foreach ($download->tags as $tag) { $names[] = '<a href="' . wp_dlmp_append_url('dltag=' . urlencode(strtolower($tag['name']))) . '">' . $tag['name'] . '</a>'; } $custom_field_data[] = array($single_tags_text, implode(', ', $names)); } if (isset($download->meta['include_fields'])) { $show_custom_fields = $download->meta['include_fields']; if ($show_custom_fields) { $show_custom_fields = explode(',', $show_custom_fields); } if (sizeof($show_custom_fields) > 0) { // Get each custom field's value ready to output foreach ($show_custom_fields as $field) { $value = $download->meta[$field]; if (!empty($value)) { $custom_field_data[] = array(ucfirst(str_replace('-', ' ', $field)), $value); } } } } if (sizeof($custom_field_data) > 0) { // Output $page .= '<table class="download-meta" cellspacing="0" style="width:100%"><thead><tr><th scope="col">Attribute</th><th style="text-align:right" scope="col">Value</th></tr></thead><tbody>'; foreach ($custom_field_data as $field) { $page .= '<tr><th scope="row">' . $field[0] . '</th><td style="text-align:right">' . do_shortcode($field[1]) . '</td></tr>'; } $page .= '</tbody></table>'; } // Show Description if ($desc) { $page .= '<div class="download-desc"> <h' . ($base_heading_level + 1) . ' class="download-desc-heading">' . $desc_heading . '</h' . ($base_heading_level + 1) . '> ' . $desc . ' </div>'; } $page .= '</div>'; /* Close main-section */ $page .= '</div>'; /* Close download-info */ } else { $page .= '<p>' . $notfound . '</p>'; } } else { ########################################################################################################################################################################################## ## Front View ########################################################################################################################################################################################## if ($pop_count > 0) { // Front view $page .= '<div id="download-page-featured"> <h' . $base_heading_level . '>' . $popular_text . '</h' . $base_heading_level . '><ul>'; // Get top downloads $downloads = get_downloads('limit=' . $pop_count . '&orderby=hits&order=desc&exclude=' . implode(',', $exclude_array) . ''); if (!empty($downloads)) { $alt = -1; foreach ($downloads as $d) { if ($alt == 1) { $alttext = 'alternate'; } else { $alttext = ''; } $date = date("jS M Y", strtotime($d->date)); if ($d->version) { $version = __('Version', "wp-download_monitor") . ' ' . $d->version; } else { $version = ''; } if ($d->desc) { $desc = do_shortcode(wptexturize(wpautop(current(explode('<!--more-->', $d->desc))))); } else { $desc = ""; } $thumbnail_url = $d->thumbnail; if (!$thumbnail_url) { $thumbnail_url = $wp_dlmp_root . 'thumbnail.gif'; } $page .= '<li class="' . $alttext . '"><a href="' . wp_dlmp_append_url('did=' . $d->id) . '" title="' . $version . ' ' . __('Downloaded', "wp-download_monitor") . ' ' . $d->hits . ' ' . __('times', "wp-download_monitor") . '" ><span><img src="' . $thumbnail_url . '" class="download-thumbnail" alt="' . strip_tags($d->title) . '" title="' . strip_tags($d->title) . '" /></span> <span>' . $d->title . '</span></a></li>'; $alt = $alt * -1; } } $page .= '</ul></div>'; // End top } // Tags View if ($show_tags > 0) { $page .= '<div id="download-page-tags"> <h' . $base_heading_level . '>' . $tags_widget_text . '</h' . $base_heading_level . '><ul>'; // Get tags $tags = $download_taxonomies->used_tags; if (!empty($tags)) { $sized_tags = array(); foreach ($tags as $tag) { $sized_tags[$tag->name] = $tag->size; } $max = max($sized_tags); $min = min($sized_tags); $div = $max - $min; if (!$div) { $div = 1; } $multiplier = (200 - 80) / $div; asort($sized_tags); $sized_tags = array_reverse($sized_tags); $sized_tags = array_slice($sized_tags, 0, $show_tags); ksort($sized_tags); foreach ($sized_tags as $tag => $count) { $size = 80 + ($max - ($max - ($count - $min))) * $multiplier; $page .= '<li style="font-size:' . $size . '%"><a href="' . wp_dlmp_append_url('dltag=' . urlencode(strtolower($tag))) . '">' . $tag . '</a></li>'; } } $page .= '</ul></div>'; } // End Tags // Begin cats $page .= '<div id="download-page-categories">'; // Show categories if (sizeof($category_array) > 0) { $alt = -1; foreach ($category_array as $cat) { if ($cat->parent > 0) { continue; } // Count = children too $in_cats = $cat->decendents; $in_cats[] = $cat->id; $count = $wpdb->get_var("\n\t\t\t\t\tSELECT COUNT(DISTINCT {$wp_dlm_db_relationships}.download_id) \n\t\t\t\t\tFROM {$wp_dlm_db_relationships} \n\t\t\t\t\tLEFT JOIN {$wp_dlm_db_taxonomies} ON({$wp_dlm_db_relationships}.taxonomy_id = {$wp_dlm_db_taxonomies}.id)\n\t\t\t\t\tWHERE {$wp_dlm_db_taxonomies}.id IN (" . implode(',', $in_cats) . ")\n\t\t\t\t\tAND {$wp_dlm_db_relationships}.download_id NOT IN (" . implode(',', $exclude_array) . ")\n\t\t\t\t\tAND {$wp_dlm_db_taxonomies}.taxonomy = 'category';\n\t\t\t\t"); if ($count == 0) { continue; } if ($alt == 1) { $alttext = 'alternate'; } else { $alttext = ''; } $page .= '<div class="category ' . $alttext . '"><div class="inner">'; $page .= '<h' . $base_heading_level . '><a href="' . wp_dlmp_append_url('category=' . urlencode(strtolower($cat->id))) . '">' . wptexturize($cat->name) . ' (' . $count . ') »</a></h' . $base_heading_level . '>'; if ($pop_cat_count > 0) { $page .= '<ol>'; $page .= do_shortcode('[downloads query="exclude=' . implode(',', $exclude_array) . '&limit=' . $pop_cat_count . '&orderby=' . $front_order . '&order=desc&category=' . $cat->id . '" wrap="" format="' . htmlspecialchars(str_replace('{url}', wp_dlmp_append_url('did=') . '{id}', $format)) . '"]'); $page .= '</ol>'; } $page .= '</div></div>'; $alt = $alt * -1; } // $show_uncategorized if ($show_uncategorized) { if ($alt == 1) { $alttext = 'alternate'; } else { $alttext = ''; } $count = $wpdb->get_var("\n\t\t\t\t\tSELECT COUNT(DISTINCT {$wp_dlm_db}.id) \n\t\t\t\t\tFROM {$wp_dlm_db} \n\t\t\t\t\tWHERE {$wp_dlm_db}.id NOT IN (\n\t\t\t\t\t\tSELECT download_id FROM {$wp_dlm_db_relationships}\n\t\t\t\t\t\tLEFT JOIN {$wp_dlm_db_taxonomies} ON {$wp_dlm_db_relationships}.taxonomy_id = {$wp_dlm_db_taxonomies}.id\n\t\t\t\t\t\tWHERE {$wp_dlm_db_taxonomies}.taxonomy = 'category'\n\t\t\t\t\t)\n\t\t\t\t\t{$exclude_query};\n\t\t\t\t"); if ($count > 0) { $page .= '<div class="category ' . $alttext . '"><div class="inner">'; $page .= '<h' . $base_heading_level . '><a href="' . wp_dlmp_append_url('category=' . urlencode(strtolower($uncategorized)) . '') . '">' . ucwords($uncategorized) . ' (' . $count . ') »</a></h' . $base_heading_level . '>'; if ($pop_cat_count > 0) { $page .= '<ol>'; $page .= do_shortcode('[downloads query="exclude=' . implode(',', $exclude_array) . '&limit=' . $pop_cat_count . '&orderby=' . $front_order . '&order=desc&category=none" wrap="" format="' . htmlspecialchars(str_replace('{url}', wp_dlmp_append_url('did=') . '{id}', $format)) . '"]'); $page .= '</ol>'; } $page .= '</div></div>'; $alt = $alt * -1; } } } $page .= '</div>'; // End cats } $page .= '</div>'; $page .= "\n<!-- Download Page powered by WordPress Download Monitor (http://mikejolley.com). Fugue icons by Yusuke Kamiyamane (http://pinvoke.com). -->"; return $page; } }
function wp_dlm_shortcode_downloads($atts) { extract(shortcode_atts(array('query' => 'limit=5&orderby=rand', 'format' => '0', 'autop' => false, 'wrap' => 'ul', 'before' => '<li>', 'after' => '</li>'), $atts)); $query = str_replace('&', '&', $query); global $wpdb, $wp_dlm_root, $wp_dlm_db, $wp_dlm_db_taxonomies, $def_format, $wp_dlm_db_meta; $dl = get_downloads($query); $output = ''; if (!empty($dl)) { // Handle Formats global $download_formats_names_array; $format = trim($format); if (!$format && $def_format > 0) { $format = wp_dlm_get_custom_format($def_format); } elseif ($format > 0 && is_numeric($format)) { $format = wp_dlm_get_custom_format($format); } else { if (isset($download_formats_names_array) && is_array($download_formats_names_array) && in_array($format, $download_formats_names_array)) { $format = wp_dlm_get_custom_format_by_name($format); } else { $format = html_entity_decode($format); } } if (empty($format) || $format == '0') { $format = '<a class="downloadlink" href="{url}" title="{version,"' . __("Version", "wp-download_monitor") . '", ""} ' . __("downloaded", "wp-download_monitor") . ' {hits} ' . __("times", "wp-download_monitor") . '" >{title} ({hits})</a>'; } $format = str_replace('\\"', "'", $format); foreach ($dl as $d) { $d->prep_download_data($format); $fpatts = $d->patts; $fsubs = $d->subs; $output .= html_entity_decode($before) . str_replace($fpatts, $fsubs, $format) . html_entity_decode($after); } } else { $output = html_entity_decode($before) . '[' . __("No Downloads found", "wp-download_monitor") . ']' . html_entity_decode($after); } if ($wrap == 'ul') { $output = '<ul class="dlm_download_list">' . $output . '</ul>'; } if ($autop) { return wpautop(do_shortcode($output)); } return do_shortcode($output); }
//is the "hide" option overriden for the individual download if ($ebd_link->is_masked != NULL) { $is_masked = $ebd_link->is_masked == 'yes' || $ebd_link->is_masked == 'true'; } if ($is_force_download) { $is_masked = true; } $file = ''; if ($ebd_item->file) { $file = $ebd_item->file; } if ($ebd_item->download_id) { if (!$is_new_dm) { $dl = $wpdb->get_row("SELECT * FROM {$wp_dlm_db} WHERE id = " . esc_sql($ebd_item->download_id) . ";"); //another way of getting downloads from download monitor $downloads = get_downloads('include=' . $ebd_item->download_id . ''); $d = new downloadable_file($dl); $file = $downloads[0]->url; //if the link is masked use the real path of the DM file if ($is_masked && function_exists('curl_init')) { $file = $d->filename; } } else { //$file = do_shortcode('[download_data id="'.$ebd_item->download_id.'" data="download_link"]'); if ($is_masked && function_exists('curl_init')) { $dld = new DLM_Download($ebd_item->download_id); $file = $dld->get_file_version()->url; if (!isset($_SERVER['HTTP_RANGE'])) { $dld->get_file_version()->increase_download_count(); } } else {
function wp_dlm_advanced() { global $wpdb, $wp_dlm_root, $wp_dlm_db, $wp_dlm_db_taxonomies, $downloadurl, $dlm_url, $downloadtype, $download_taxonomies; // Get post data if (isset($_POST['show_downloads'])) { $showing = (int) $_POST['show_downloads']; } else { $showing = 0; } if ($showing == 0 || $showing == "") { $dl = get_downloads('limit=10&orderby=hits&order=desc'); } else { $dl = get_downloads('limit=&orderby=title&order=asc&category=' . $showing . ''); } // Output selector box $retval = '<div class="download-box"><form method="post" action="#"> <select name="show_downloads"> <option value="0">' . __('Most Popular Downloads', "wp-download_monitor") . '</option> <optgroup label="' . __('Categories', "wp-download_monitor") . '">'; // Echo categories; $cats = $download_taxonomies->get_parent_cats(); if (!empty($cats)) { foreach ($cats as $c) { $retval .= '<option '; if ($showing == $c->id) { $retval .= 'selected="selected"'; } $retval .= 'value="' . $c->id . '">' . $c->name . '</option>'; $retval .= get_option_children_cats($c->id, "{$c->name} — ", $showing, 0); } } $retval .= '</optgroup></select> <input type="submit" value="Go" /></form>'; if (!empty($dl)) { $retval .= '<ul class="download-list">'; foreach ($dl as $d) { $retval .= '<li><a href="' . $d->url . '" title="' . __('Version', "wp-download_monitor") . ' ' . $d->version . ' ' . __('downloaded', "wp-download_monitor") . ' ' . $d->hits . ' ' . __('times', "wp-download_monitor") . ' - ' . __('Added', "wp-download_monitor") . ' ' . date_i18n(__("jS M Y", "wp-download_monitor"), strtotime($d->date)) . '" >' . $d->title . ' (' . $d->hits . ')</a></li>'; } $retval .= '</ul>'; } else { $retval .= '<p>' . __('No Downloads Found', "wp-download_monitor") . '</p>'; } $retval .= "</div>"; return $retval; }