/** * Used by all the shortcodes + widget to render the weather. The top bar has a separate function bellow * @param $atts * @param $block_uid * @param $template string -> block_template | top_bar_template * @return string */ static function render_generic($atts, $block_uid, $template = 'block_template') { if (empty($atts['w_location'])) { return self::error('<strong>location</strong> is empty. Configure this block/widget and enter a location and we will show the weather from that location :) '); } $current_unit = 0; // 0 - metric $current_temp_label = 'C'; $current_speed_label = 'kmh'; if (!empty($atts['w_units'])) { $current_unit = 1; // imperial $current_temp_label = 'F'; $current_speed_label = 'mph'; } // prepare the data and do an api call $weather_data = array('block_uid' => '', 'api_location' => $atts['w_location'], 'api_language' => '', 'api_key' => self::get_a_owm_key(), 'today_icon' => '', 'today_icon_text' => '', 'today_temp' => array(0, 0), 'today_humidity' => '', 'today_wind_speed' => array(0, 0), 'today_min' => array(0, 0), 'today_max' => array(0, 0), 'today_clouds' => 0, 'current_unit' => $current_unit, 'forecast' => array()); // disable the cache for debugging // td_remote_cache::_disable_cache(); $weather_data_status = self::get_weather_data($atts, $weather_data); // check if we have an error and return that if ($weather_data_status != 'api_fail_cache' and $weather_data_status != 'api' and $weather_data_status != 'cache') { return $weather_data_status; } // we have to patch the cached data - to make sure we have the REAL block_uid that is now on the page $weather_data['block_uid'] = $block_uid; // render the HTML $buffy = '<!-- td weather source: ' . $weather_data_status . ' -->'; if ($template == 'block_template') { // renders the block template $buffy .= self::render_block_template($atts, $weather_data, $current_temp_label, $current_speed_label); } else { // render the top menu template $buffy .= self::render_top_bar_template($atts, $weather_data, $current_temp_label); } // render the JS ob_start(); ?> <script> jQuery().ready(function() { tdWeather.items.push(<?php echo json_encode($weather_data); ?> ); }); </script> <?php $script_buffer = ob_get_clean(); $js_script = "\n" . td_util::remove_script_tag($script_buffer); td_js_buffer::add_to_footer($js_script); return $buffy; }
function td_bottom_code() { global $post; // try to detect speed booster $speed_booster = ''; if (defined('TD_SPEED_BOOSTER')) { $speed_booster = 'Speed booster: ' . TD_SPEED_BOOSTER . "\n"; } echo ' <!-- Theme: ' . TD_THEME_NAME . ' by tagDiv 2015 Version: ' . TD_THEME_VERSION . ' (rara) Deploy mode: ' . TD_DEPLOY_MODE . ' ' . $speed_booster . ' uid: ' . uniqid() . ' --> '; // get and paste user custom css $td_custom_css = stripslashes(td_util::get_option('tds_custom_css')); // get the custom css for the responsive values $responsive_css_values = array(); foreach (td_global::$theme_panel_custom_css_fields_list as $option_id => $css_params) { $responsive_css = td_util::get_option($option_id); if ($responsive_css != '') { $responsive_css_values[$css_params['media_query']] = $responsive_css; } } // check if we have to show any css if (!empty($td_custom_css) or count($responsive_css_values) > 0) { $css_buffy = PHP_EOL . '<!-- Custom css form theme panel -->'; $css_buffy .= PHP_EOL . '<style type="text/css" media="screen">'; //paste custom css if (!empty($td_custom_css)) { $css_buffy .= PHP_EOL . '/* custom css theme panel */' . PHP_EOL; $css_buffy .= $td_custom_css . PHP_EOL; } foreach ($responsive_css_values as $media_query => $responsive_css) { $css_buffy .= PHP_EOL . PHP_EOL . '/* custom responsive css from theme panel (Advanced CSS) */'; $css_buffy .= PHP_EOL . $media_query . ' {' . PHP_EOL; $css_buffy .= $responsive_css; $css_buffy .= PHP_EOL . '}' . PHP_EOL; } $css_buffy .= '</style>' . PHP_EOL . PHP_EOL; // echo the css buffer echo $css_buffy; } //get and paste user custom javascript $td_custom_javascript = stripslashes(td_util::get_option('tds_custom_javascript')); if (!empty($td_custom_javascript)) { echo '<script type="text/javascript">' . $td_custom_javascript . '</script>'; } //AJAX POST VIEW COUNT if (td_util::get_option('tds_ajax_post_view_count') == 'enabled') { //Ajax get & update counter views if (is_single()) { //echo 'post page: '. $post->ID; if ($post->ID > 0) { td_js_buffer::add_to_footer(' jQuery().ready(function jQuery_ready() { td_ajax_count.td_get_views_counts_ajax("post",' . json_encode('[' . $post->ID . ']') . '); }); '); } } } if (TD_DEBUG_USE_LESS) { $style_sheet_path = td_global::$get_template_directory_uri . '/td_less_style.css.php?part=style.css_v2'; } else { $style_sheet_path = get_stylesheet_uri(); } /** * javascript splitter js split for IE8 and IE9. * It searches in the stylesheet for #td_css_split_separator and adds it in two pieces for ie8 ie9 selector bug */ ob_start(); ?> <script> (function(){ var html_jquery_obj = jQuery('html'); if (html_jquery_obj.length && (html_jquery_obj.is('.ie8') || html_jquery_obj.is('.ie9'))) { var path = '<?php echo $style_sheet_path; ?> '; jQuery.get(path, function(data) { var str_split_separator = '#td_css_split_separator'; var arr_splits = data.split(str_split_separator); var arr_length = arr_splits.length; if (arr_length > 1) { var dir_path = '<?php echo get_template_directory_uri(); ?> '; var splited_css = ''; for (var i = 0; i < arr_length; i++) { if (i > 0) { arr_splits[i] = str_split_separator + ' ' + arr_splits[i]; } //jQuery('head').append('<style>' + arr_splits[i] + '</style>'); var formated_str = arr_splits[i].replace(/\surl\(\'(?!data\:)/gi, function regex_function(str) { return ' url(\'' + dir_path + '/' + str.replace(/url\(\'/gi, '').replace(/^\s+|\s+$/gm,''); }); splited_css += "<style>" + formated_str + "</style>"; } var td_theme_css = jQuery('link#td-theme-css'); if (td_theme_css.length) { td_theme_css.after(splited_css); } } }); } })(); </script> <?php $script_buffer = ob_get_clean(); $js_script = "\n" . td_util::remove_script_tag($script_buffer); td_js_buffer::add_to_footer($js_script); }
function td_js_generator() { td_js_buffer::add_variable('td_ajax_url', admin_url('admin-ajax.php?td_theme_name=' . TD_THEME_NAME . '&v=' . TD_THEME_VERSION)); td_js_buffer::add_variable('td_get_template_directory_uri', get_template_directory_uri()); td_js_buffer::add_variable('tds_snap_menu', td_util::get_option('tds_snap_menu')); td_js_buffer::add_variable('tds_logo_on_sticky', td_util::get_option('tds_logo_on_sticky')); td_js_buffer::add_variable('tds_header_style', td_util::get_option('tds_header_style')); td_js_buffer::add_variable('td_please_wait', __td('Please wait...', TD_THEME_NAME)); td_js_buffer::add_variable('td_email_user_pass_incorrect', __td('User or password incorrect!', TD_THEME_NAME)); td_js_buffer::add_variable('td_email_user_incorrect', __td('Email or username incorrect!', TD_THEME_NAME)); td_js_buffer::add_variable('td_email_incorrect', __td('Email incorrect!', TD_THEME_NAME)); //use for more articles on post pages td_js_buffer::add_variable('tds_more_articles_on_post_enable', td_util::get_option('tds_more_articles_on_post_pages_enable')); td_js_buffer::add_variable('tds_more_articles_on_post_time_to_wait', td_util::get_option('tds_more_articles_on_post_pages_time_to_wait')); td_js_buffer::add_variable('tds_more_articles_on_post_pages_distance_from_top', intval(td_util::get_option('tds_more_articles_on_post_pages_distance_from_top'))); //theme color - used for loading box $td_get_db_theme_color = td_util::get_option('tds_theme_color'); if (!preg_match('/^#[a-f0-9]{6}$/i', $td_get_db_theme_color)) { $td_get_db_theme_color = '#4db2ec'; //default theme color } td_js_buffer::add_variable('tds_theme_color_site_wide', $td_get_db_theme_color); td_js_buffer::add_variable('tds_smart_sidebar', td_util::get_option('tds_smart_sidebar')); td_js_buffer::add_variable('td_theme_v', base64_encode(TD_THEME_VERSION)); td_js_buffer::add_variable('td_theme_n', base64_encode(TD_THEME_NAME)); // magnific popup translations td_js_buffer::add_variable('td_magnific_popup_translation_tPrev', __td('Previous (Left arrow key)', TD_THEME_NAME)); td_js_buffer::add_variable('td_magnific_popup_translation_tNext', __td('Next (Right arrow key)', TD_THEME_NAME)); td_js_buffer::add_variable('td_magnific_popup_translation_tCounter', __td('%curr% of %total%', TD_THEME_NAME)); td_js_buffer::add_variable('td_magnific_popup_translation_ajax_tError', __td('The content from %url% could not be loaded.', TD_THEME_NAME)); td_js_buffer::add_variable('td_magnific_popup_translation_image_tError', __td('The image #%curr% could not be loaded.', TD_THEME_NAME)); td_js_buffer::add_to_header("\r\nvar td_blocks = []; //here we store all the items for the current page\r\n\r\n//td_block class - each ajax block uses a object of this class for requests\r\nfunction td_block() {\r\n this.id = '';\r\n this.block_type = 1; //block type id (1-234 etc)\r\n this.atts = '';\r\n this.td_column_number = '';\r\n this.td_current_page = 1; //\r\n this.post_count = 0; //from wp\r\n this.found_posts = 0; //from wp\r\n this.max_num_pages = 0; //from wp\r\n this.td_filter_value = ''; //current live filter value\r\n this.td_filter_ui_uid = ''; //used to select a item from the drop down filter\r\n this.is_ajax_running = false;\r\n this.td_user_action = ''; // load more or infinite loader (used by the animation)\r\n this.header_color = '';\r\n this.ajax_pagination_infinite_stop = ''; //show load more at page x\r\n}\r\n\r\n "); // The mini detector - ads classes to the HTML tag, it enables us to fix issues in each device. // Has to run as fast as possible ob_start(); ?> <script> // td_js_generator - mini detector (function(){ var html_tag = document.getElementsByTagName("html")[0]; if(navigator.userAgent.indexOf("MSIE 10.0") > -1) { html_tag.className+=' ie10'; } if(!!navigator.userAgent.match(/Trident.*rv\:11\./)) { html_tag.className+=' ie11'; } if (/(iPad|iPhone|iPod)/g.test( navigator.userAgent )) { html_tag.className+=' td-md-is-ios'; } var user_agent = navigator.userAgent.toLowerCase(); if(user_agent.indexOf("android") > -1) { html_tag.className+=' td-md-is-android'; } if (navigator.userAgent.indexOf('Mac OS X') != -1) { html_tag.className+=' td-md-is-os-x'; } if(/chrom(e|ium)/.test(navigator.userAgent.toLowerCase())) { html_tag.className+=' td-md-is-chrome'; } if (navigator.userAgent.indexOf('Firefox') != -1) { html_tag.className+=' td-md-is-firefox'; } if (navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Chrome') == -1) { html_tag.className+=' td-md-is-safari'; } })(); </script> <?php td_js_buffer::add_to_header(td_util::remove_script_tag(ob_get_clean())); }
private function add_js_hook() { ob_start(); // @todo chestia asta ar trebuii trecuta pe flag sau ceva in td_config ? ?> <script> // if the theme has td_backstr support, it means this already uses it if (typeof window.td_backstr !== 'undefined') { (function(){ // the site background td-backstretch jquery object is dynamically added in DOM, and after any translation effects are applied over td-backstretch var wrapper_image_jquery_obj = jQuery('<div class=\'backstretch\'></div>'); var image_jquery_obj = jQuery('<img class=\'td-backstretch not-parallax\' src=\'<?php echo $this->background_parameters['theme_bg_image']; ?> \'>'); wrapper_image_jquery_obj.append(image_jquery_obj); jQuery('body').prepend(wrapper_image_jquery_obj); var td_backstr_item = new td_backstr.item(); td_backstr_item.wrapper_image_jquery_obj = wrapper_image_jquery_obj; td_backstr_item.image_jquery_obj = image_jquery_obj; td_backstr.add_item(td_backstr_item); })(); } </script> <?php $buffer = ob_get_clean(); $js = "\n" . td_util::remove_script_tag($buffer); return $js; }
function inner($posts, $td_column_number = '') { ob_start(); if (!empty($posts[0])) { $post = $posts[0]; //we get only one post // $td_post_featured_image = td_util::get_featured_image_src($post->ID, 'full'); $td_mod_single = new td_module_single($post); //make the js template ?> <!-- add class to body, no jQuery and inline --> <?php ob_start(); ?> <script> document.body.className+=' td-boxed-layout single_template_8 homepage-post '; </script> <?php echo ob_get_clean(); ?> <script type="text/template" id="<?php echo $this->block_uid . '_tmpl'; ?> "> <article id="post-<?php echo $td_mod_single->post->ID; ?> " class="<?php echo join(' ', get_post_class('post td-post-template-8')); ?> " <?php echo $td_mod_single->get_item_scope(); ?> > <div class="td-post-header td-image-gradient-style8"> <div class="td-crumb-container"><?php echo td_page_generator::get_single_breadcrumbs($td_mod_single->title); ?> </div> <div class="td-post-header-holder"> <header class="td-post-title"> <?php echo $td_mod_single->get_category(); ?> <?php echo $td_mod_single->get_title(); ?> <?php if (!empty($td_mod_single->td_post_theme_settings['td_subtitle'])) { ?> <p class="td-post-sub-title"><?php echo $td_mod_single->td_post_theme_settings['td_subtitle']; ?> </p> <?php } ?> <div class="td-module-meta-info"> <?php echo $td_mod_single->get_author(); ?> <?php echo $td_mod_single->get_date(false); ?> <?php echo $td_mod_single->get_views(); ?> <?php echo $td_mod_single->get_comments(); ?> </div> </header> </div> </div> </article> </script> <?php $td_post_featured_image = td_util::get_featured_image_src($post->ID, 'full'); ob_start(); ?> <script> // add the template jQuery( '.td-header-wrap' ).after( jQuery( '#<?php echo $this->block_uid; ?> _tmpl' ).html() ); // make the wrapper and the image -> and add the image inside var td_homepage_full_bg_image_wrapper = jQuery( '<div class="backstretch"></div>' ); var td_homepage_full_bg_image = jQuery( '<img class="td-backstretch not-parallax" src="<?php echo $td_post_featured_image; ?> "/>' ); td_homepage_full_bg_image_wrapper.append(td_homepage_full_bg_image); // add to body jQuery('body').prepend( td_homepage_full_bg_image_wrapper ); // run the backstracher var td_backstr_item = new tdBackstr.item(); td_backstr_item.wrapper_image_jquery_obj = td_homepage_full_bg_image_wrapper; td_backstr_item.image_jquery_obj = td_homepage_full_bg_image; tdBackstr.add_item( td_backstr_item ); </script> <?php $buffer = ob_get_clean(); $js = "\n" . td_util::remove_script_tag($buffer); td_js_buffer::add_to_footer($js); } return ob_get_clean(); }