Advertisement
Guest User

Untitled

a guest
Jan 31st, 2011
300
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 16.26 KB | None | 0 0
  1. <?php
  2. /**
  3. *   Custom function to get current URL
  4. **/
  5. function curPageURL() {
  6.     $pageURL = 'http';
  7.     if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
  8.     $pageURL .= "://";
  9.     if ($_SERVER["SERVER_PORT"] != "80") {
  10.      $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
  11.     } else {
  12.      $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
  13.     }
  14.     return $pageURL;
  15. }
  16.    
  17. function pp_debug($arr)
  18. {
  19.     echo '<pre>';
  20.     print_r($arr);
  21.     echo '</pre>';
  22. }
  23.  
  24. function gen_pagination($total,$currentPage,$baseLink,$nextPrev=true,$limit=10)
  25. {
  26.     if(!$total OR !$currentPage OR !$baseLink)
  27.     {
  28.         return false;
  29.     }
  30.  
  31.     //Total Number of pages
  32.     $totalPages = ceil($total/$limit);
  33.      
  34.     //Text to use after number of pages
  35.     //$txtPagesAfter = ($totalPages==1)? " page": " pages";
  36.      
  37.     //Start off the list.
  38.     //$txtPageList = '<br />'.$totalPages.$txtPagesAfter.' : <br />';
  39.      
  40.     //Show only 3 pages before current page(so that we don't have too many pages)
  41.     $min = ($page - 3 < $totalPages && $currentPage-3 > 0) ? $currentPage-3 : 1;
  42.      
  43.     //Show only 3 pages after current page(so that we don't have too many pages)
  44.     $max = ($page + 3 > $totalPages) ? $totalPages : $currentPage+3;
  45.      
  46.     //Variable for the actual page links
  47.     $pageLinks = "";
  48.    
  49.     $baseLinkArr = parse_url($baseLink);
  50.     $start = '';
  51.    
  52.     if(isset($baseLinkArr['query']) && !empty($baseLinkArr['query']))
  53.     {
  54.         $start = '&';
  55.     }
  56.     else
  57.     {
  58.         $start = '?';
  59.     }
  60.      
  61.     //Loop to generate the page links
  62.     for($i=$min;$i<=$max;$i++)
  63.     {
  64.         if($currentPage==$i)
  65.         {
  66.             //Current Page
  67.             $pageLinks .= '<a href="#" class="active">'.$i.'</a>';  
  68.         }
  69.         elseif($max <= $totalPages OR $i <= $totalPages)
  70.         {
  71.             $pageLinks .= '<a href="'.$baseLink.$start.'page='.$i.'" class="slide">'.$i.'</a>';
  72.         }
  73.     }
  74.      
  75.     if($nextPrev)
  76.     {
  77.         //Next and previous links
  78.         $next = ($currentPage + 1 > $totalPages) ? false : '<a href="'.$baseLink.$start.'page='.($currentPage + 1).'" class="slide">Next</a>';
  79.          
  80.         $prev = ($currentPage - 1 <= 0 ) ? false : '<a href="'.$baseLink.$start.'page='.($currentPage - 1).'" class="slide">Previous</a>';
  81.     }
  82.      
  83.     if($totalPages > 1)
  84.     {
  85.         return '<br class="clear"/><div class="pagination">'.$txtPageList.$prev.$pageLinks.$next.'</div>';
  86.     }
  87.     else
  88.     {
  89.         return '';
  90.     }
  91.      
  92. }
  93.  
  94. function count_shortcode($content = '')
  95. {
  96.     $return = array();
  97.    
  98.     if(!empty($content))
  99.     {
  100.         $pattern = get_shortcode_regex();
  101.         $count = preg_match_all('/'.$pattern.'/s', $content, $matches);
  102.        
  103.         $return['total'] = $count;
  104.        
  105.         if(isset($matches[0]))
  106.         {
  107.             foreach($matches[0] as $match)
  108.             {
  109.                 $return['content'][] = substr_replace($match ,"",-1);
  110.             }
  111.         }
  112.     }
  113.    
  114.     return $return;
  115. }
  116.  
  117. function pp_breadcrumbs() {
  118.  
  119.   $delimiter = '&raquo;';
  120.   $name = get_bloginfo('name'); //text for the 'Home' link
  121.   $currentBefore = '<span class="current">';
  122.   $currentAfter = '</span>';
  123.  
  124.   if ( !is_home() && !is_front_page() || is_paged() ) {
  125.  
  126.     echo '<div id="crumbs">';
  127.  
  128.     global $post;
  129.     $home = get_bloginfo('url');
  130.     echo '<a href="' . $home . '">' . $name . '</a> ' . $delimiter . ' ';
  131.  
  132.     if ( is_category() ) {
  133.       global $wp_query;
  134.       $cat_obj = $wp_query->get_queried_object();
  135.       $thisCat = $cat_obj->term_id;
  136.       $thisCat = get_category($thisCat);
  137.       $parentCat = get_category($thisCat->parent);
  138.       if ($thisCat->parent != 0) echo(get_category_parents($parentCat, TRUE, ' ' . $delimiter . ' '));
  139.       echo $currentBefore . 'Archive by category &#39;';
  140.       single_cat_title();
  141.       echo '&#39;' . $currentAfter;
  142.  
  143.     } elseif ( is_day() ) {
  144.       echo '<a href="' . get_year_link(get_the_time('Y')) . '">' . get_the_time('Y') . '</a> ' . $delimiter . ' ';
  145.       echo '<a href="' . get_month_link(get_the_time('Y'),get_the_time('m')) . '">' . get_the_time('F') . '</a> ' . $delimiter . ' ';
  146.       echo $currentBefore . get_the_time('d') . $currentAfter;
  147.  
  148.     } elseif ( is_month() ) {
  149.       echo '<a href="' . get_year_link(get_the_time('Y')) . '">' . get_the_time('Y') . '</a> ' . $delimiter . ' ';
  150.       echo $currentBefore . get_the_time('F') . $currentAfter;
  151.  
  152.     } elseif ( is_year() ) {
  153.       echo $currentBefore . get_the_time('Y') . $currentAfter;
  154.  
  155.     } elseif ( is_single() && !is_attachment() ) {
  156.       $cat = get_the_category(); $cat = $cat[0];
  157.       echo get_category_parents($cat, TRUE, ' ' . $delimiter . ' ');
  158.       echo $currentBefore;
  159.       the_title();
  160.       echo $currentAfter;
  161.  
  162.     } elseif ( is_attachment() ) {
  163.       $parent = get_post($post->post_parent);
  164.       $cat = get_the_category($parent->ID); $cat = $cat[0];
  165.       echo get_category_parents($cat, TRUE, ' ' . $delimiter . ' ');
  166.       echo '<a href="' . get_permalink($parent) . '">' . $parent->post_title . '</a> ' . $delimiter . ' ';
  167.       echo $currentBefore;
  168.       the_title();
  169.       echo $currentAfter;
  170.  
  171.     } elseif ( is_page() && !$post->post_parent ) {
  172.       echo $currentBefore;
  173.       the_title();
  174.       echo $currentAfter;
  175.  
  176.     } elseif ( is_page() && $post->post_parent ) {
  177.       $parent_id  = $post->post_parent;
  178.       $breadcrumbs = array();
  179.       while ($parent_id) {
  180.         $page = get_page($parent_id);
  181.         $breadcrumbs[] = '<a href="' . get_permalink($page->ID) . '">' . get_the_title($page->ID) . '</a>';
  182.         $parent_id  = $page->post_parent;
  183.       }
  184.       $breadcrumbs = array_reverse($breadcrumbs);
  185.       foreach ($breadcrumbs as $crumb) echo $crumb . ' ' . $delimiter . ' ';
  186.       echo $currentBefore;
  187.       the_title();
  188.       echo $currentAfter;
  189.  
  190.     } elseif ( is_search() ) {
  191.       echo $currentBefore . 'Search results for &#39;' . get_search_query() . '&#39;' . $currentAfter;
  192.  
  193.     } elseif ( is_tag() ) {
  194.       echo $currentBefore . 'Posts tagged &#39;';
  195.       single_tag_title();
  196.       echo '&#39;' . $currentAfter;
  197.  
  198.     } elseif ( is_author() ) {
  199.        global $author;
  200.       $userdata = get_userdata($author);
  201.       echo $currentBefore . 'Articles posted by ' . $userdata->display_name . $currentAfter;
  202.  
  203.     } elseif ( is_404() ) {
  204.       echo $currentBefore . 'Error 404' . $currentAfter;
  205.     }
  206.  
  207.     if ( get_query_var('paged') ) {
  208.       if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ' (';
  209.       echo __('Page') . ' ' . get_query_var('paged');
  210.       if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ')';
  211.     }
  212.  
  213.     echo '</div>';
  214.  
  215.   }
  216. }
  217.    
  218. /**
  219. *   Setup blog comment style
  220. **/
  221. function pp_comment($comment, $args, $depth)
  222. {
  223.     $GLOBALS['comment'] = $comment; ?>
  224.    
  225.     <div class="comment" id="comment-<?php comment_ID() ?>">
  226.         <div class="left">
  227.             <?php echo get_avatar($comment,$size='50',$default='<path_to_url>' ); ?>
  228.         </div>
  229.      
  230.  
  231.         <div class="right">
  232.             <?php if ($comment->comment_approved == '0') : ?>
  233.                 <em><?php _e('(Your comment is awaiting moderation.)') ?></em>
  234.                 <br />
  235.             <?php endif; ?>
  236.            
  237.             <strong><i><?php printf(__('By %1$s on %2$s at %3$s'),
  238.                     get_comment_author_link(),
  239.                     get_comment_date('d M Y'),
  240.                     get_comment_time('g:i a')); ?></i></strong>
  241.             <?php ' '.comment_text() ?>
  242.             <p class="comment-reply-link"><?php comment_reply_link(array_merge( $args, array('depth' => $depth,
  243. 'reply_text' => '
  244. Reply', 'login_text' => 'Log in to reply to this', 'max_depth' => $args['max_depth']))) ?></p>
  245.  
  246.         </div>
  247.     </div>
  248. <?php
  249. }
  250.  
  251. function pp_ago($timestamp){
  252.    $difference = time() - $timestamp;
  253.    $periods = array("second", "minute", "hour", "day", "week", "month", "years", "decade");
  254.    $lengths = array("60","60","24","7","4.35","12","10");
  255.    for($j = 0; $difference >= $lengths[$j]; $j++)
  256.    $difference /= $lengths[$j];
  257.    $difference = round($difference);
  258.    if($difference != 1) $periods[$j].= "s";
  259.    $text = "$difference $periods[$j] ago";
  260.    return $text;
  261. }
  262.  
  263.  
  264. // Substring without losing word meaning and
  265. // tiny words (length 3 by default) are included on the result.
  266. // "..." is added if result do not reach original string length
  267.  
  268. function pp_substr($str, $length, $minword = 3)
  269. {
  270.     $sub = '';
  271.     $len = 0;
  272.    
  273.     foreach (explode(' ', $str) as $word)
  274.     {
  275.         $part = (($sub != '') ? ' ' : '') . $word;
  276.         $sub .= $part;
  277.         $len += strlen($part);
  278.        
  279.         if (strlen($word) > $minword && strlen($sub) >= $length)
  280.         {
  281.             break;
  282.         }
  283.     }
  284.    
  285.     return $sub . (($len < strlen($str)) ? '...' : '');
  286. }
  287.  
  288.  
  289. /**
  290. *   Setup recent posts widget
  291. **/
  292. function pp_posts($sort = 'recent', $items = 3, $echo = TRUE, $bg_color = 'black' , $echo_title = TRUE)
  293. {
  294.     $return_html = '';
  295.    
  296.     if($sort == 'recent')
  297.     {
  298.         $posts = get_posts('numberposts='.$items.'&order=DESC&orderby=date&post_type=post&post_status=publish');
  299.         $title = 'Recent Posts';
  300.     }
  301.     else
  302.     {
  303.         global $wpdb;
  304.        
  305.         $query = "SELECT ID, post_title, post_content FROM {$wpdb->prefix}posts WHERE post_type = 'post' AND post_status= 'publish' ORDER BY comment_count DESC LIMIT 0,".$items;
  306.         $posts = $wpdb->get_results($query);
  307.         $title = 'Popular Posts';
  308.     }
  309.    
  310.     if(!empty($posts))
  311.     {
  312.         if($echo_title)
  313.         {
  314.             $return_html.= '<h2 class="widgettitle">'.$title.'</h2>';
  315.         }
  316.        
  317.         $return_html.= '<ul class="posts blog '.$bg_color.'_wrapper">';
  318.  
  319.             foreach($posts as $post)
  320.             {
  321.                 $image_thumb = '';
  322.                                
  323.                 if(has_post_thumbnail($post->ID, 'large'))
  324.                 {
  325.                     $image_id = get_post_thumbnail_id($post->ID);
  326.                     $image_thumb = wp_get_attachment_image_src($image_id, 'large', true);
  327.                 }
  328.                
  329.                 $return_html.= '<li>';
  330.                
  331.                 if(!empty($image_thumb))
  332.                 {
  333.                     $return_html.= '<a href="'.get_permalink($post->ID).'"><img src="'.get_bloginfo( 'stylesheet_directory' ).'/timthumb.php?src='.$image_thumb[0].'&h=75&w=75&zc=1" alt="" class="frame" /></a>';
  334.                 }
  335.                 $return_html.= '<strong class="header"><a href="'.get_permalink($post->ID).'">'.$post->post_title.'</a></strong><br/>';
  336.                 $return_html.= pp_substr(strip_tags(strip_shortcodes($post->post_content)), 80).'</li>';
  337.  
  338.             }  
  339.  
  340.         $return_html.= '</ul>';
  341.  
  342.     }
  343.    
  344.     if($echo)
  345.     {
  346.         echo $return_html;
  347.     }
  348.     else
  349.     {
  350.         return $return_html;
  351.     }
  352. }
  353.  
  354. function _substr($str, $length, $minword = 3)
  355. {
  356.     $sub = '';
  357.     $len = 0;
  358.    
  359.     foreach (explode(' ', $str) as $word)
  360.     {
  361.         $part = (($sub != '') ? ' ' : '') . $word;
  362.         $sub .= $part;
  363.         $len += strlen($part);
  364.        
  365.         if (strlen($word) > $minword && strlen($sub) >= $length)
  366.         {
  367.             break;
  368.         }
  369.     }
  370.    
  371.     return $sub . (($len < strlen($str)) ? '...' : '');
  372. }
  373.  
  374. function get_the_content_with_formatting ($more_link_text = '(more...)', $stripteaser = 0, $more_file = '') {
  375.  
  376.     $pp_blog_read_more_title = get_option('pp_blog_read_more_title');      
  377.     if(empty($pp_blog_read_more_title))
  378.     {
  379.         $pp_blog_read_more_title = 'Read More';
  380.     }
  381.  
  382.     $content = get_the_content('', $stripteaser, $more_file);
  383.     $content = strip_shortcodes($content);
  384.     $content = str_replace(']]>', ']]&gt;', $content);
  385.     $content = _substr(strip_tags(strip_shortcodes($content)), 600);
  386.     $content.= '<br/><br/><br/><a class="button" href="'.get_permalink().'">'.$pp_blog_read_more_title.'</a>';
  387.     return $content;
  388. }
  389.  
  390. function image_from_description($data) {
  391.     preg_match_all('/<img src="([^"]*)"([^>]*)>/i', $data, $matches);
  392.     return $matches[1][0];
  393. }
  394.  
  395.  
  396. function select_image($img, $size) {
  397.     $img = explode('/', $img);
  398.     $filename = array_pop($img);
  399.  
  400.     // The sizes listed here are the ones Flickr provides by default.  Pass the array index in the
  401.  
  402.     // 0 for square, 1 for thumb, 2 for small, etc.
  403.     $s = array(
  404.         '_s.', // square
  405.         '_t.', // thumb
  406.         '_m.', // small
  407.         '.',   // medium
  408.         '_b.'  // large
  409.     );
  410.  
  411.     $img[] = preg_replace('/(_(s|t|m|b))?\./i', $s[$size], $filename);
  412.     return implode('/', $img);
  413. }
  414.  
  415.  
  416. function get_flickr($settings) {
  417.     if (!function_exists('MagpieRSS')) {
  418.         // Check if another plugin is using RSS, may not work
  419.         include_once (ABSPATH . WPINC . '/class-simplepie.php');
  420.         error_reporting(E_ERROR);
  421.     }
  422.    
  423.     if(!isset($settings['items']) || empty($settings['items']))
  424.     {
  425.         $settings['items'] = 9;
  426.     }
  427.    
  428.     // get the feeds
  429.     if ($settings['type'] == "user") { $rss_url = 'http://api.flickr.com/services/feeds/photos_public.gne?id=' . $settings['id'] . '&tags=' . $settings['tags'] . '&per_page='.$settings['items'].'&format=rss_200'; }
  430.     elseif ($settings['type'] == "favorite") { $rss_url = 'http://api.flickr.com/services/feeds/photos_faves.gne?id=' . $settings['id'] . '&format=rss_200'; }
  431.     elseif ($settings['type'] == "set") { $rss_url = 'http://api.flickr.com/services/feeds/photoset.gne?set=' . $settings['set'] . '&nsid=' . $settings['id'] . '&format=rss_200'; }
  432.     elseif ($settings['type'] == "group") { $rss_url = 'http://api.flickr.com/services/feeds/groups_pool.gne?id=' . $settings['id'] . '&format=rss_200'; }
  433.     elseif ($settings['type'] == "public" || $settings['type'] == "community") { $rss_url = 'http://api.flickr.com/services/feeds/photos_public.gne?tags=' . $settings['tags'] . '&format=rss_200'; }
  434.     else {
  435.         print '<strong>No "type" parameter has been setup. Check your settings, or provide the parameter as an argument.</strong>';
  436.         die();
  437.     }
  438.     # get rss file
  439.  
  440.     $feed = new SimplePie($rss_url);
  441.     $photos_arr = array();
  442.    
  443.     foreach ($feed->get_items() as $key => $item)
  444.     {
  445.         $enclosure = $item->get_enclosure();
  446.         $img = image_from_description($item->get_description());
  447.         $thumb_url = select_image($img, 0);
  448.         $large_url = select_image($img, 4);
  449.        
  450.         $photos_arr[] = array(
  451.             'title' => $enclosure->get_title(),
  452.             'thumb_url' => $thumb_url,
  453.             'url' => $large_url,
  454.         );
  455.        
  456.         $current = intval($key+1);
  457.        
  458.         if($current == $settings['items'])
  459.         {
  460.             break;
  461.         }
  462.     }  
  463.  
  464.     return $photos_arr;
  465. }
  466.  
  467. function html2rgb($color)
  468. {
  469.     if ($color[0] == '#')
  470.         $color = substr($color, 1);
  471.  
  472.     if (strlen($color) == 6)
  473.         list($r, $g, $b) = array($color[0].$color[1],
  474.                                  $color[2].$color[3],
  475.                                  $color[4].$color[5]);
  476.     elseif (strlen($color) == 3)
  477.         list($r, $g, $b) = array($color[0].$color[0], $color[1].$color[1], $color[2].$color[2]);
  478.     else
  479.         return false;
  480.  
  481.     $r = hexdec($r); $g = hexdec($g); $b = hexdec($b);
  482.  
  483.     return array($r, $g, $b);
  484. }
  485.  
  486. function hex_lighter($hex,$factor = 30)
  487.     {
  488.     $new_hex = '';
  489.      
  490.     $base['R'] = hexdec($hex{0}.$hex{1});
  491.     $base['G'] = hexdec($hex{2}.$hex{3});
  492.     $base['B'] = hexdec($hex{4}.$hex{5});
  493.      
  494.     foreach ($base as $k => $v)
  495.         {
  496.         $amount = 255 - $v;
  497.         $amount = $amount / 100;
  498.         $amount = round($amount * $factor);
  499.         $new_decimal = $v + $amount;
  500.      
  501.         $new_hex_component = dechex($new_decimal);
  502.         if(strlen($new_hex_component) < 2)
  503.             { $new_hex_component = "0".$new_hex_component; }
  504.         $new_hex .= $new_hex_component;
  505.         }
  506.          
  507.     return $new_hex;    
  508. }
  509.  
  510. function hex_darker($hex,$factor = 30)
  511. {
  512.         $new_hex = '';
  513.        
  514.         $base['R'] = hexdec($hex{0}.$hex{1});
  515.         $base['G'] = hexdec($hex{2}.$hex{3});
  516.         $base['B'] = hexdec($hex{4}.$hex{5});
  517.        
  518.         foreach ($base as $k => $v)
  519.                 {
  520.                 $amount = $v / 100;
  521.                 $amount = round($amount * $factor);
  522.                 $new_decimal = $v - $amount;
  523.        
  524.                 $new_hex_component = dechex($new_decimal);
  525.                 if(strlen($new_hex_component) < 2)
  526.                         { $new_hex_component = "0".$new_hex_component; }
  527.                 $new_hex .= $new_hex_component;
  528.                 }
  529.                
  530.         return $new_hex;        
  531. }
  532.  
  533. function theme_queue_js(){
  534.   if (!is_admin()){
  535.     if (!is_page() AND is_singular() AND comments_open() AND (get_option('thread_comments') == 1)) {
  536.       wp_enqueue_script( 'comment-reply' );
  537.     }
  538.   }
  539. }
  540. add_action('get_header', 'theme_queue_js');
  541.  
  542. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement