Pastebin launched a little side project called HostCabi.net, check it out ;-)Don't like ads? PRO users don't see any ads ;-)
Guest

front_page.php

By: a guest on Jul 10th, 2011  |  syntax: None  |  size: 20.03 KB  |  hits: 1,602  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. <?php
  2. class front_page{
  3.     static $adds = true;
  4.     static function get_categories( $nr = -1 ){
  5.         $categories = get_categories();
  6.  
  7.         $result = array();
  8.         foreach($categories as $key => $category){
  9.             if( $key == $nr ){
  10.                 break;
  11.             }
  12.             if( $nr > 0 ){
  13.                 $result[ $category -> term_id ] = $category -> term_id;
  14.             }else{
  15.                 $result[ $category -> term_id ] = $category -> cat_name;
  16.             }
  17.         }
  18.  
  19.         return $result;
  20.     }
  21.  
  22.     static function get_pages(){
  23.         $pages = get_pages();
  24.         $result = array();
  25.         foreach($pages as $page){
  26.             $result[ $page -> ID ] = $page -> post_title;
  27.         }
  28.  
  29.         return $result;
  30.     }
  31.  
  32.     static function get_front_page_content( ){
  33.         $result = '';
  34.         switch( admin_options::get_values('front_page' , 'resources') ){
  35.             case 'categories' :{
  36.                 $result = self::get_content_categories();
  37.                 if( empty( $result ) ){
  38.                     $result = self::get_null_content();
  39.                 }
  40.                 break;
  41.             }
  42.  
  43.             case 'page' :{
  44.                 $result = self::get_content_page();
  45.                 break;
  46.             }
  47.  
  48.             case 'selected_posts' : {
  49.                 $result  = self::get_content_selected_posts( );
  50.                 $result .= self::get_content_latest_posts( );
  51.                 break;
  52.             }
  53.  
  54.             default :{
  55.                 $result = self::get_content_latest_posts( );
  56.                 break;
  57.             }
  58.         }
  59.  
  60.         return $result;
  61.     }
  62.  
  63.     static function get_front_page_layout( ){
  64.         $result  = '<div class="breadcrumbs">';
  65.         $result .= '<p>'.__('You are here:','cosmotheme').'</p>';
  66.         $result .= '<ul>';
  67.         $result .= '<li>';
  68.         $result .= '<a href="'.home_url().'">' . __('Home' , 'cosmotheme') . '</a>';
  69.         $result .= '</li>';
  70.                 $result .= '</ul>';
  71.                 $result .= '</div>';
  72.  
  73.         if( strlen( admin_options::get_values('advertising','zone_1' ) ) ){
  74.             $result .= '<div class="cosmo-ads">';
  75.             $result .= admin_options::get_values('advertising','zone_1' );
  76.             $result .= '</div>';
  77.         }
  78.        
  79.         switch( admin_options::get_values('front_page' , 'layout') ){
  80.             case 'full-width' :{
  81.                 $result .= '<div class="b w_940 b_page_c" id="content">';
  82.                 $result .= self::get_front_page_content();
  83.                 $result .= '</div>';
  84.                 break;
  85.             }
  86.  
  87.             case 'right-sidebar' :{
  88.                 $result .= '<div class="b w_620 b_page_c" id="content">';
  89.                 $result .= self::get_front_page_content();
  90.                 $result .= '</div>';
  91.                 $result .= '<div class="b w_300 full b_right_area widget-area b_right_area" id="primary" role="complementary">';
  92.  
  93.                 ob_start();
  94.                 ob_clean();
  95.                 de_load_sidebar(  );
  96.                
  97.                                 $result .= ob_get_clean();
  98.                 $result .= '</div>';
  99.                 break;
  100.             }
  101.  
  102.             case 'left-sidebar' :{
  103.                 $result .= '<div class="b w_300 full b_right_area widget-area b_right_area" id="primary" role="complementary">';
  104.  
  105.                 ob_start();
  106.                 ob_clean();
  107.                 de_load_sidebar( );
  108.  
  109.                                 $result .= ob_get_clean();
  110.                 $result .= '</div>';
  111.                 $result .= '<div class="b w_620" id="content">';
  112.                 $result .= self::get_front_page_content();
  113.                 $result .= '</div>';
  114.                 break;
  115.             }
  116.         }
  117.  
  118.         echo $result;
  119.  
  120.     }
  121.  
  122.     static function get_content_categories( ){
  123.         $categories = admin_options::get_values( 'front_page' , 'categories' );
  124.         $result = '';
  125.         $i = 1;
  126.         if( !empty( $categories ) ){
  127.             foreach( $categories as $id){
  128.                 $cat = get_category( $id );
  129.                 if( admin_options::get_values( 'front_page' , 'layout' ) == 'full-width'){
  130.                     $nr = 3;
  131.                 }else{
  132.                     $nr = 2;
  133.                 }
  134.  
  135.                 if( $i %  $nr == 0 ){
  136.                     $i = 1;
  137.                     $classes = 'last';
  138.                 }else{
  139.                     $i++;
  140.                     $classes = '';
  141.                 }
  142.  
  143.                 $posts = query_posts('cat='.$id.'&posts_per_page='.admin_options::get_values( 'front_page' , 'nr_post_cat' ) );
  144.                 $j = 1;
  145.                 $result .= '<div class="b w_300 cosmo-category '.$classes.'">';
  146.                 foreach( $posts as $index => $post ){
  147.                     if( $j == 1 ){
  148.                         $result .= '<h3 class="title"><a href="' . get_category_link( $cat -> term_id ) .  '" title="' . __('Permalink to','cosmotheme') . ' ' . $cat -> cat_name . '">' . $cat -> cat_name . '</a></h3>';
  149.                         $result .= '<div class="cosmo-category-content cosmo-swap fade">';
  150.  
  151.                          /*if( has_post_thumbnail( $post -> ID ) ){
  152.                             $result .= '<a href="' . get_permalink( $post -> ID ) .  '" rel="bookmark" class="cosmo-image">';
  153.                             $args = array(
  154.                                 'numberposts' => -1,
  155.                                 'post_type' => 'attachment',
  156.                                 'status' => 'publish',
  157.                                 'post_mime_type' => 'image',
  158.                                 'post_parent' => $post -> ID
  159.                                 );
  160.  
  161.                             $images = &get_children($args);
  162.  
  163.                             if( isset( $images[ get_post_thumbnail_id( $post -> ID ) ] ) ){
  164.                                 $text = $images[ get_post_thumbnail_id( $post -> ID ) ] -> post_excerpt;
  165.                             }else{
  166.                                 $args = array(
  167.                                     'numberposts' => -1,
  168.                                     'post_type' => 'attachment',
  169.                                     'status' => 'publish',
  170.                                     'post_mime_type' => 'image',
  171.                                     'post_parent' => 0
  172.                                 );
  173.  
  174.                                 $images = &get_children($args);
  175.  
  176.                                 if( isset( $images[  get_post_thumbnail_id( $post -> ID ) ] ) ){
  177.                                     $text = $images[ get_post_thumbnail_id( $post -> ID ) ] -> post_excerpt;
  178.                                 }else{
  179.                                     $text = '';
  180.                                 }
  181.                             }*/
  182. $text = '';                                     $result .= '<a href="' . get_permalink( $post -> ID ) .  '" rel="bookmark" class="cosmo-image">';      
  183.                             $result .= '<span class="mosaic-overlay details">' . $text . '</span>';
  184.                             $result .= '<span style="background: url('.get_template_directory_uri().'/images/categories/'.$cat -> term_id.'.jpg)"></span>';
  185.                             $result .= '</a>';
  186.                         /*}else{
  187.                             $result .= '<a href="' . get_permalink( $post -> ID ) .  '" rel="bookmark" class="cosmo-image no-image">';
  188.                             $result .= '<span></span>';
  189.                             $result .= '</a>';
  190.                         }*/
  191.  
  192.                                                 if('open' == $post->comment_status)
  193.                                                 {
  194.                                 $result .= '<p class="cosmo-comments"><a href="' . get_comments_link( $post -> ID ) . '"> '. get_comments_number( $post -> ID ) .' </a></p>';
  195.                                                 }      
  196.                         $result .= '<a href="' . get_permalink( $post -> ID ) . '" title="' . $post -> post_title . '">';
  197.                         $result .= '<h4 class="cosmo-category-content-h4">';
  198.                         $result .= $post -> post_title ;
  199.                         $result .= '</h4>';
  200.                         $result .= '<p>';
  201.                         $result .= de_excerpt( $post -> post_excerpt , $post -> post_content , CAT_CNT_LN );
  202.                         $result .= '</p>';
  203.                         $result .= '</a>';
  204.                         $result .= '<div class="blog-meta">';
  205.                         $result .= '<p class="time">' . date('F j, Y' , strtotime($post -> post_date ) ) . '</p>';
  206.  
  207.                         $result .= '<p class="user"><a href="' . get_author_posts_url( $post-> post_author ) . '">'. get_the_author_meta( 'display_name' , $post-> post_author ) .'</a></p>';
  208.                         $result .= '</div>';
  209.                         $result .= '</div>';
  210.                         $result .= '<ul class="cosmo-posts-more">';
  211.  
  212.  
  213.                     }else{
  214.                         $result .= '<li><a href="' . get_permalink( $post -> ID ) . '" title="' . $post-> post_title . '">'.$post-> post_title.'</a></li>';
  215.                     }
  216.  
  217.                     $j++;
  218.                 }
  219.                 $result .= '</ul>';
  220.                 $result .= '</div>';
  221.  
  222.                 if( $classes == 'last' ){
  223.                     $result .= '<div class="clearfix border-bottom"></div>';
  224.                     if( self::$adds ){
  225.                         if( strlen( admin_options::get_values('advertising','zone_2' ) ) ){
  226.                             $result .= '<div class="cosmo-ads">';
  227.                             $result .= admin_options::get_values('advertising','zone_2' );
  228.                             $result .= '</div>';
  229.                             self::$adds = false;
  230.                         }
  231.                     }
  232.                 }
  233.             }
  234.         }
  235.  
  236.         return $result;
  237.     }
  238.  
  239.     static function get_content_selected_posts( ){
  240.         $query =  array();
  241.  
  242.         $query['paged'] = self::get_page();
  243.         $query['meta_key'] = 'front_page';
  244.         $query['post__not_in'] = get_option( 'sticky_posts' );
  245.         $wp_query = new WP_Query( $query );
  246.  
  247.         $result = '';
  248.         foreach( $wp_query -> posts as $post ){
  249.             $wp_query -> the_post();
  250.             $result .= '<div class="post" id="post-' . $post -> ID . '">';
  251.             $result .= '<h2 class="entry-title"><a rel="bookmark" title="' . __('Permalink to','cosmotheme') .' '. $post -> post_title . '" href="' . get_permalink( $post -> ID ) . '">' . $post -> post_title . '</a></h2>';
  252.  
  253.             $meta = get_post_meta($post -> ID, 'meta_post', true); /*check if user has disabled meta data for this specific post/page*/
  254.             if($meta != 'none'){
  255.                 $result .= '<div class="blog-meta">';
  256.                 $result .=     '<p class="time">' . get_the_time('j F Y, H:i', $post -> ID ) . '</p>';
  257.                 $result .=     '<p class="user"><a href="'.get_author_posts_url( $post-> post_author ).'">'.get_the_author_meta( 'display_name' , $post-> post_author ).'</a></p>';
  258.                 ob_start();
  259.                 ob_clean();
  260.                 edit_post_link( __( 'Edit', 'cosmotheme' ), '<p class="edit_post">', '</p>' );
  261.                 $result .= ob_get_clean();
  262.                 if ( comments_open( $post -> ID ) ){
  263.                     $result .=     '<p class="cosmo-comments"><a href="'.get_comments_link( $post -> ID ).'">'.get_comments_number( $post -> ID ).' </a></p>';
  264.                 }
  265.                 $result .= '</div>';
  266.             }
  267.  
  268.             $result .= '<div class="b_text">';
  269.            
  270.             ob_start();
  271.             ob_clean();
  272.             the_content();
  273.             $result .= ob_get_clean();
  274.  
  275.             $result .= '</div>';
  276.  
  277.             $tags = wp_get_post_tags( $post -> ID );
  278.  
  279.             if( !empty( $tags ) ){
  280.                 $result .= '<div class="b_tag clearfix">';
  281.                 foreach( $tags as $tag ){
  282.                     $result .= '<a href="' . get_tag_link( $tag -> term_id ) .'" title="' . __('Permalink to','cosmotheme') .' '. $tag -> name . '"><span>'. $tag -> name .'</span></a>';
  283.                 }
  284.                 $result .= '</div>';
  285.             }
  286.  
  287.             $result .= '</div>';
  288.  
  289.             if( self::$adds ){
  290.                 if( strlen( admin_options::get_values('advertising','zone_2' ) ) ){
  291.                     $result .= '<div class="cosmo-ads">';
  292.                     $result .= admin_options::get_values('advertising','zone_2' );
  293.                     $result .= '</div>';
  294.                     self::$adds = false;
  295.                 }
  296.             }    
  297.         }
  298.        
  299.         wp_reset_query();
  300.        
  301.         return $result;
  302.     }
  303.  
  304.     static function get_content_latest_posts( ){
  305.         $query =  array();
  306.        
  307.         $query['paged'] = self::get_page();
  308.         if( admin_options::get_values('front_page' , 'resources') == 'selected_posts' ){
  309.             $query['post__not_in'] = self::get_exclude_posts();
  310.         }
  311.         $query['posts_per_page'] = get_option('posts_per_page');
  312.         $wp_query = new WP_Query( $query );
  313.  
  314.         $result = '';
  315.         $i = 0;
  316.         foreach( $wp_query -> posts as $post ){
  317.             $wp_query -> the_post();
  318.             $i++;
  319.             $result .= '<div class="post" id="post-' . $post -> ID . '">';
  320.             $result .= '<h2 class="entry-title"><a rel="bookmark" title="' . __('Permalink to','cosmotheme') .' '. $post -> post_title . '" href="' . get_permalink( $post -> ID ) . '">' . $post -> post_title . '</a></h2>';
  321.            
  322.             $meta = get_post_meta($post -> ID, 'meta_post', true); /*check if user has disabled meta data for this specific post/page*/
  323.                 if($meta != 'none'){
  324.                 $result .= '<div class="blog-meta">';
  325.                 $result .=     '<p class="time">' . get_the_time('j F Y, H:i', $post -> ID ) . '</p>';
  326.                 $result .=     '<p class="user"><a href="'.get_author_posts_url( $post-> post_author ).'">'.get_the_author_meta( 'display_name' , $post-> post_author ).'</a></p>';
  327.                 ob_start();
  328.                 ob_clean();
  329.                 edit_post_link( __( 'Edit', 'cosmotheme' ), '<p class="edit_post">', '</p>' );
  330.                 $result .= ob_get_clean();
  331.                 if ( comments_open( $post -> ID ) ){
  332.                     $result .=     '<p class="cosmo-comments"><a href="'.get_comments_link( $post -> ID ).'">'.get_comments_number( $post -> ID ).' </a></p>';
  333.                 }
  334.                 $result .= '</div>';
  335.             }
  336.  
  337.             $result .= '<div class="b_text">';
  338.             if( has_post_thumbnail( $post -> ID ) ){
  339.                 $result .= '<div class="b_img">';
  340.                 $result .= wp_get_attachment_image( get_post_thumbnail_id( $post -> ID ) , '160x120' );
  341.                 $args = array(
  342.                     'numberposts' => -1,
  343.                     'post_type' => 'attachment',
  344.                     'status' => 'publish',
  345.                     'post_mime_type' => 'image',
  346.                     'post_parent' => $post -> ID
  347.                     );
  348.  
  349.                 $images = &get_children($args);
  350.                
  351.                 if( isset(  $images[ get_post_thumbnail_id( $post -> ID ) ] ) ){
  352.                     $text = $images[ get_post_thumbnail_id( $post -> ID ) ] -> post_excerpt;
  353.                 }else{
  354.                     $args = array(
  355.                         'numberposts' => -1,
  356.                         'post_type' => 'attachment',
  357.                         'status' => 'publish',
  358.                         'post_mime_type' => 'image',
  359.                         'post_parent' => 0
  360.                     );
  361.  
  362.                     $images = &get_children($args);
  363.  
  364.                     if( isset( $images[  get_post_thumbnail_id( $post -> ID ) ] ) ){
  365.                         $text = $images[ get_post_thumbnail_id( $post -> ID ) ] -> post_excerpt;
  366.                     }else{
  367.                         $text = '';
  368.                     }
  369.                 }
  370.  
  371.                 $result .= '<span class="img_text">' . $text . '</span>';
  372.                 $result .= '</div>';
  373.             }
  374.  
  375.             $result .= '<p>';
  376.             $result .= de_excerpt( $post -> post_excerpt , $post -> post_content , POST_CNT_LN );
  377.             $result .= '</p>';
  378.             $result .= '</div>';
  379.  
  380.             $tags = wp_get_post_tags( $post -> ID );
  381.  
  382.             if( !empty( $tags ) ){
  383.                 $result .= '<div class="b_tag clearfix">';
  384.                 foreach( $tags as $tag ){
  385.                     $result .= '<a href="' . get_tag_link( $tag -> term_id ) .'" title="' . __('Permalink to','cosmotheme') .' '. $tag -> name . '"><span>'. $tag -> name .'</span></a>';
  386.                 }
  387.                 $result .= '</div>';
  388.             }
  389.  
  390.             $result .= '<div class="b_but">';
  391.             $result .= '<a href="' . get_permalink( $post -> ID ) . '"><span class="but">' . __('read more','cosmotheme') . '<span>&nbsp;</span></span></a>';
  392.             $result .= '</div>';
  393.             $result .= '</div>';
  394.  
  395.             if( $i == 3 ){
  396.                 if( self::$adds ){
  397.                     if( strlen( admin_options::get_values('advertising','zone_2' ) ) ){
  398.                         $result .= '<div class="cosmo-ads">';
  399.                         $result .= admin_options::get_values('advertising','zone_2' );
  400.                         $result .= '</div>';
  401.                         self::$adds = false;
  402.                     }
  403.                 }
  404.             }
  405.         }
  406.  
  407.         $result .= '<div class="pag">';
  408.  
  409.         global $wp_rewrite;
  410.         $current = $query['paged'];
  411.  
  412.         $pagination = array(
  413.                 'base' => @add_query_arg('page','%#%'),
  414.                 'format' => '',
  415.                 'total' => $wp_query->max_num_pages,
  416.                 'current' => $current,
  417.                 'show_all' => false,
  418.                 'type' => 'array'
  419.                 );
  420.  
  421.         if( $wp_rewrite->using_permalinks() )
  422.                 $pagination['base'] = user_trailingslashit( trailingslashit( remove_query_arg( 's', get_pagenum_link( 1 ) ) ) . 'page/%#%/', 'paged' );
  423.  
  424.         if( !empty($wp_query->query_vars['s']) )
  425.                 $pagination['add_args'] = array( 's' => get_query_var( 's' ) );
  426.  
  427.         $pgn = paginate_links( $pagination );
  428.         if( $current == 1 ){
  429.             $current--;
  430.         }
  431.         $result .= '<ul class="b_pag center p_b">';
  432.  
  433.         if(!empty($pgn)){
  434.             foreach($pgn as $k => $link){
  435.                 $result .= '<li>'.str_replace('class="prev ','class="no_link ',str_replace('class="next ','class="no_link ',str_replace("'",'"',$link) ) ).'</li>';
  436.  
  437.             }
  438.         }
  439.         $result .= '</ul>';
  440.         $result .= '</div>';
  441.        
  442.         wp_reset_query();
  443.  
  444.         return $result;
  445.     }
  446.  
  447.     static function get_exclude_posts(){
  448.         $query['meta_key'] = 'front_page';
  449.         $query['post__not_in'] = get_option( 'sticky_posts' );
  450.  
  451.         $wp_query = new WP_Query( $query );
  452.         $result   = array();
  453.         foreach( $wp_query -> posts as $id => $post ){
  454.             $result[] = $post -> ID;
  455.         }
  456.        
  457.         return $result;
  458.     }
  459.  
  460.     static function get_null_content( ){
  461.  
  462.         $result  = '<div class="post">';
  463.         $result .= '<h2 class="entry-title">'. __("Not found posts",'cosmotheme') . '</h2>';
  464.         $result .= '<div class="b_text">';
  465.         $result .= '<p>';
  466.  
  467.         $result .= __('Please select the categories you want to show','cosmotheme');
  468.         $result .= '<a href="'.home_url('/wp-admin/admin.php?page=settings#front_page_settings').'"> '.__('select categories','cosmotheme').' </a>';
  469.  
  470.         $result .= '</p>';
  471.         $result .= '</div>';
  472.         $result .= '</div>';
  473.         $result .= '<div class="clearfix" width="100%"></div>';
  474.         return $result;
  475.     }
  476.  
  477.     static function get_page(){
  478.         if( (int)get_query_var('paged') > (int)get_query_var('page') ){
  479.             $result = (int)get_query_var('paged');
  480.         }else{
  481.  
  482.             if( (int)get_query_var('page') == 0 ){
  483.                 $result = 1;
  484.             }else{
  485.                 $result = (int)get_query_var('page');
  486.             }
  487.         }
  488.  
  489.         return $result;
  490.     }
  491.  
  492.     static function get_content_page( ){
  493.         $wp_query = new WP_Query('p='.admin_options::get_values( 'front_page' , 'page' ).'&post_type=page');
  494.  
  495.         foreach( $wp_query -> posts as $post ){
  496.             $wp_query -> the_post();
  497.  
  498.             $result  = '<div class="post main-page-post" id="post-' . $post -> ID . '">';
  499.             $result .= '<div class="b_text"><p>';
  500.             ob_start();
  501.             ob_clean();
  502.             the_content();
  503.             $result .= ob_get_clean();
  504.             $result .= '</p></div>';
  505.             $result .= '</div>';
  506.  
  507.         }
  508.  
  509.         wp_reset_query();
  510.  
  511.         return $result;
  512.     }
  513. }
  514.  
  515. ?>