Jaken

Untitled

May 7th, 2015
31
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.23 KB | None | 0 0
  1. <?php
  2.  
  3. //canviar credits
  4.  
  5. add_filter('tc_credits_display', 'my_custom_credits');
  6. function my_custom_credits(){
  7. $credits = 'All rights reserved';
  8. $newline_credits = '';
  9. return '
  10. <div class="span4 credits">
  11. <p> &middot; &copy; '.esc_attr( date( 'Y' ) ).' <a href="'.esc_url( home_url() ).'" title="'.esc_attr(get_bloginfo()).'" rel="bookmark">'.esc_attr(get_bloginfo()).'</a> &middot; '.($credits ? $credits : 'Designed by <a href="http://www.themesandco.com/">Themes &amp; Co</a>').' &middot;'.($newline_credits ? '<br />&middot; '.$newline_credits.' &middot;' : '').'</p> </div>';
  12. }
  13.  
  14.  
  15.  
  16. //post -- slider
  17.  
  18. /* Works with Customizr > 3.3.12 and Customizr-Pro > 1.0.17 */
  19. add_filter('tc_core', 'use_custom_slider_class');
  20. function use_custom_slider_class($classes){
  21. //don't instantiate default class
  22. unset( $classes['content'][
  23. array_search(array('inc/parts','slider'), $classes['content'])
  24. ]
  25. );
  26. //instantiate our class
  27. new TC_Slider_mod;
  28. return $classes;
  29. }
  30. add_filter('tc_slider_name_id', 'my_slider_of_posts');
  31. function my_slider_of_posts( $slider_name_id ){
  32. if ( $slider_name_id == 'front-slider' )
  33. return array(
  34. 'slider' => 'front-slider',
  35. 'query' => array(
  36. 'tag' => "front-slider",
  37. 'posts_per_page' => 5,
  38. 'order' => 'desc'
  39. ),
  40. );
  41. return $slider_name_id;
  42. }
  43.  
  44. if ( ! defined('CUSTOMIZR') )
  45. define('CUSTOMIZR', get_template_directory() );
  46.  
  47. require_once( CUSTOMIZR . '/inc/parts/class-content-slider.php');
  48. class TC_Slider_mod extends TC_slider{
  49. private $saved_slides;
  50. private $slider_name_id = false;
  51. private $layout_value;
  52. private $img_size;
  53. private $layout_class;
  54.  
  55. //override tc_set_slider_hooks()
  56. function tc_set_slider_hooks() {
  57. //gets the actual page id if we are displaying the posts page
  58. $queried_id = $this -> tc_get_real_id();
  59.  
  60. $slider_name_id = apply_filters('tc_slider_name_id', $this ->tc_get_current_slider($queried_id) );
  61.  
  62. if ( ! is_array( $slider_name_id ) )
  63. return parent::tc_set_slider_hooks();
  64.  
  65. extract($slider_name_id);
  66. $all_sliders = TC_utils::$inst -> tc_opt( 'tc_sliders');
  67. $saved_slides = ( isset($all_sliders[$slider]) ) ? $all_sliders[$slider] : false;
  68.  
  69. //if the slider not longer exists or exists but is empty, return false
  70. if ( !isset($saved_slides) || ! is_array($saved_slides) || empty($saved_slides) )
  71. return;
  72.  
  73.  
  74. add_action( '__after_header' , array( $this , 'tc_slider_display' ) );
  75. add_action( '__after_carousel_inner' , array( $this , 'tc_slider_control_view' ) );
  76. //adds the center-slides-enabled css class
  77. add_filter( 'tc_carousel_inner_classes', array( $this, 'tc_set_inner_class') );
  78.  
  79. $this -> tc_slider_mod_set_properties( $saved_slides, $slider_name_id, $queried_id );
  80. }
  81.  
  82. private function tc_get_current_slider($queried_id) {
  83. //gets the current slider id
  84. $_home_slider = TC_utils::$inst->tc_opt( 'tc_front_slider' );
  85. $slider_name_id = ( tc__f('__is_home') && $_home_slider ) ? $_home_slider : esc_attr( get_post_meta( $queried_id, $key = 'post_slider_key' , $single = true ) );
  86. return apply_filters( 'tc_slider_name_id', $slider_name_id , $queried_id);
  87. }
  88.  
  89. private function tc_get_real_id() {
  90.  
  91. global $wp_query;
  92. $queried_id = get_queried_object_id();
  93. return ( ! tc__f('__is_home') && $wp_query -> is_posts_page && ! empty($queried_id) ) ? $queried_id : get_the_ID();
  94.  
  95. }
  96.  
  97. function tc_slider_mod_set_properties( $saved_slides, $slider_name_id, $queried_id ){
  98.  
  99. $this -> saved_slides = $saved_slides;
  100. $this -> slider_name_id = $slider_name_id;
  101. //gets slider options if any
  102. $layout_value = tc__f('__is_home') ? TC_utils::$inst->tc_opt( 'tc_slider_width' ) : esc_attr(get_post_meta( $queried_id, $key = 'slider_layout_key' , $single = true ));
  103.  
  104. $this -> layout_value = apply_filters( 'tc_slider_layout', $layout_value, $queried_id );
  105.  
  106. //declares the layout vars
  107. $this -> layout_class = implode( " " , apply_filters( 'tc_slider_layout_class' , ( 0 == $layout_value ) ? array('container', 'carousel', 'slide') : array('carousel', 'slide') ) );
  108.  
  109. $this -> img_size = apply_filters( 'tc_slider_img_size' , ( 0 == $layout_value ) ? 'slider' : 'slider-full');
  110.  
  111. }
  112.  
  113. //override tc_slider_display
  114. function tc_slider_display() {
  115. if ( ! $this -> slider_name_id )
  116. return parent::tc_slider_display();
  117.  
  118. $slider_name_id = $this -> slider_name_id;
  119. $img_size = $this -> img_size;
  120. $saved_slides = $this -> saved_slides;
  121. $layout_class = $this -> layout_class;
  122.  
  123. $slides = $this -> tc_get_posts_slides( $slider_name_id, $img_size, $saved_slides );
  124. //returns nothing if no slides to display
  125. if ( ! isset($slides) || ! $slides )
  126. return;
  127.  
  128. extract($slides);
  129. //define carousel inner classes
  130. $_inner_classes = implode( ' ' , apply_filters( 'tc_carousel_inner_classes' , array( 'carousel-inner' ) ) );
  131. ob_start();
  132. ?>
  133. <div id="customizr-slider" class="<?php echo $layout_class ?> ">
  134. <?php if ( 1 == esc_attr( TC_utils::$inst->tc_opt( 'tc_display_slide_loader') ) && apply_filters( 'tc_display_slider_loader' , true ) ): ?>
  135. <div class="tc-slider-loader-wrapper">
  136. <div class="tc-img-gif-loader">
  137. <img data-no-retina src="<?php echo apply_filters('tc_slider_loader_src' , sprintf( '%1$s/%2$s' , TC_BASE_URL , 'inc/assets/img/slider-loader.gif') ) ?>">
  138. </div>
  139. </div>
  140. <?php endif; ?>
  141. <?php do_action( '__before_carousel_inner' , $slides ) ?>
  142. <div class="<?php echo $_inner_classes?>">
  143. <?php
  144. foreach ($slides as $id => $data)
  145. $this -> tc_render_single_slide_view( $id, $data , $slider_name_id, $img_size );
  146. ?>
  147. </div><!-- /.carousel-inner -->
  148. <?php do_action( '__after_carousel_inner' , $slides ) ?>
  149. </div><!-- /#customizr-slider -->
  150. <?php
  151. $html = ob_get_contents();
  152. if ($html) ob_end_clean();
  153. echo apply_filters( 'tc_slider_display', $html, $slider_name_id );
  154. }
  155.  
  156. function tc_get_posts_slides( $slider_name_id, $img_size, $saved_slides){
  157. extract($slider_name_id);
  158. global $wp_query, $wp_the_query, $post;
  159. $wp_query = new WP_Query($query);
  160.  
  161. // if you don't want to show the first attachment when featured image isn't set
  162. // remove the line below
  163. add_filter('tc_show_single_post_content', '__return_false');
  164.  
  165. // remove smart load if any
  166. $smart_load_enabled = method_exists('TC_utils', 'tc_parse_imgs') && method_exists('TC_utils', 'tc_opt') && esc_attr( TC_utils::$inst->tc_opt( 'tc_img_smart_load' ) );
  167. if ( $smart_load_enabled )
  168. remove_filter('tc_thumb_html', array(TC_utils::$instance, 'tc_parse_imgs'));
  169.  
  170. // build our array of slides
  171.  
  172. //initialize the slides array
  173. $slides = array();
  174.  
  175. //init slide active state index
  176. $__loop_index = 0;
  177. while ( have_posts() ){
  178. the_post();
  179.  
  180. //title
  181. $title = $post->post_title;
  182. $default_title_length = apply_filters( 'tc_slide_title_length', 80 );
  183. $title = ( strlen($title) > $default_title_length ) ? substr( $title,0,strpos( $title, ' ' , $default_title_length) ). ' ...' : $title;
  184. //lead text
  185. $text = get_the_excerpt();
  186. $default_text_length = apply_filters( 'tc_slide_text_length', 250 );
  187. $text = ( strlen($text) > $default_text_length ) ? substr( $text,0,strpos( $text, ' ' ,$default_text_length) ). ' ...' : $text;
  188.  
  189. //button text
  190. $button_text = __('Read more &raquo;', 'customizr');
  191. $default_button_length = apply_filters( 'tc_slide_button_length', 80 );
  192. $button_text = ( strlen($button_text) > $default_button_length ) ? substr( $button_text,0,strpos( $button_text, ' ' ,$default_button_length)). ' ...' : $button_text;
  193.  
  194. //link post id
  195. $link_id = get_the_id();
  196.  
  197. $id = $link_id;
  198. //button link
  199. $link_url = $link_id ? get_permalink( $link_id ) : 'javascript:void(0)';
  200.  
  201. //sets the first slide active
  202. $active = ( 0 == $__loop_index ) ? 'active' : '';
  203.  
  204. $color_style = '';
  205.  
  206. //attachment image
  207. $alt = apply_filters( 'tc_slide_background_alt' , trim(strip_tags( get_the_title() ) ) );
  208. $slide_background = $this -> tc_get_thumbnail_data($img_size, $alt);
  209. //adds all values to the slide array only if the content exists (=> handle the case when an attachment has been deleted for example). Otherwise apply a default slide
  210. if ( empty($slide_background) && isset($saved_slides[1]) )
  211. $slide_background = wp_get_attachment_image( $saved_slides[1], $img_size, false, array( 'class' => 'slide' , 'alt' => $alt ) );
  212.  
  213. $slides[$id] = array(
  214. 'title' => $title,
  215. 'text' => $text,
  216. 'button_text' => $button_text,
  217. 'link_id' => $link_id,
  218. 'link_url' => $link_url,
  219. 'active' => $active,
  220. 'color_style' => $color_style,
  221. 'slide_background' => $slide_background,
  222. );
  223.  
  224. //increments active index
  225. $__loop_index++;
  226. }//end of slides loop
  227.  
  228. $slides = apply_filters('tc_post_slides', ( !empty($slides) ) ? $slides : false, $img_size);
  229. // if you chose to not show the first attachment when featured image isn't set
  230. // remove the line below
  231. remove_filter('tc_show_single_post_content', '__return_false');
  232.  
  233. // re-add smart load if removed
  234. if ( $smart_load_enabled )
  235. add_filter('tc_thumb_html', array(TC_utils::$instance, 'tc_parse_imgs'));
  236.  
  237. $wp_query = $wp_the_query;
  238.  
  239. //returns the slides or false if nothing
  240. return $slides;
  241. }// end pf tc_get_the_slides
  242.  
  243. function tc_get_thumbnail_data($img_size, $alt){
  244. $attachment_id = get_post_meta( get_the_ID(), 'slide_img');
  245. if ( $attachment_id )
  246. return wp_get_attachment_image( $attachment_id[0], $img_size, false, array('class' => 'slide' , 'alt' => $alt) );
  247. $thumb = TC_post_thumbnails::$instance -> tc_get_thumbnail_model($img_size);
  248. $thumb = isset($thumb) && isset($thumb['tc_thumb']) ? $thumb['tc_thumb'] : null;
  249. return $thumb;
  250. }
  251. }
  252.  
  253. // second slider snippet
  254.  
  255.  
  256. add_filter('tc_post_slides', 'add_custom_slides', 10, 2);
  257. function add_custom_slides( $slides, $img_size){
  258. /*
  259. * set this as an empty array if you don't want slides before this way:
  260. * $my_slides_before = array();
  261. */
  262. $my_slides_before = array(
  263. 'my_479_of_your_attachment' => array( // replace my_316 with my_ID_of_your_attachment
  264. 'title' => 'Te asesoramos sin coste',
  265. 'text' => 'Dreamglish te asesorará sin coste alguno. Desde la carta de aceptación de la escuela hasta el pago final.',
  266. 'button_text' => 'Lee más',
  267. 'link_id' => 'some link',
  268. 'link_url' => 'http://dreamglish.com/modelo-de-negocio/',
  269. 'active' => 'active',
  270. 'color_style' => '',
  271. 'slide_background' => wp_get_attachment_image( 479, $img_size, false, array( 'class' => 'slide', 'alt' => 'First Slide') ), /* Replace 316 with the id of your desired attachment and the alt 'First Slide' */
  272.  
  273. )
  274. );
  275.  
  276. // same thing with slides after:
  277.  
  278. /*
  279. * set this as an empty array if you don't want slides after this way:
  280. * $my_slides_after = array();
  281. */
  282.  
  283. $my_slides_after = array();
  284.  
  285. /* reset the active post slide if we have to add slides before */
  286. if ( ! empty( $my_slides_before ) && $slides ) {
  287. $keys = array_keys($slides);
  288. $first_slide_key = $keys[0];
  289.  
  290. $slides[ $first_slide_key ]['active'] = false; //reset active
  291. }
  292.  
  293. //$slides = $my_slides_before + $slides + $my_slides_after;
  294. return $slides;
  295. }
  296.  
  297.  
  298.  
  299.  
  300. /*llargada text slider*/
  301.  
  302. add_filter( 'tc_slide_title_length', 'my_slider_text_limits' );
  303. add_filter( 'tc_slide_text_length', 'my_slider_text_limits' );
  304. add_filter( 'tc_slide_button_length', 'my_slider_text_limits' );
  305. function my_slider_text_limits() {
  306. switch ( current_filter() ) {
  307. case 'tc_slide_title_length':
  308. return 150;
  309. break;
  310.  
  311. case 'tc_slide_text_length':
  312. return 100;
  313. break;
  314.  
  315. case 'tc_slide_button_length':
  316. return 150;
  317. break;
  318. }
  319. }
  320.  
  321.  
  322.  
  323. /* full width */
  324.  
  325. add_filter('tc_fp_widget_area', 'use_row_fluid');
  326. add_filter('tc_footer_widget_area', 'use_row_fluid');
  327. add_filter('tc_column_content_wrapper_classes', 'use_row_fluid');
  328.  
  329. function use_row_fluid($classes){
  330. return str_replace('row', 'row-fluid', $classes);
  331. }
  332.  
  333. /* end full width */
Advertisement
Add Comment
Please, Sign In to add comment