/** * fix home_url * @param $url * @param $what * @return mixed|string */ function hw_menu_qtrans_convertHomeURL($url, $what) { if (function_exists('qtrans_convertURL') && $what == '/') { return qtrans_convertURL($url); } return $url; }
function qtrans_convertHomeURL($url, $what) { if ($what == '/') { return qtrans_convertURL($url); } return $url; }
function qt_permalink($qt, $permalink, $post_content, $modified_time, $change_freq, $priority, &$sitemap) { if ($qt["enabled"]) { // Get modified time if ($modified_time != 0) { $modified_time = $sitemap->GetTimestampFromMySql($modified_time); } // Get a list of languages if ($post_content) { // Get available languages form post $languages = qtrans_getAvailableLanguages($post_content); } else { // Get all available languages $languages = $qt["enabled_languages"]; } // Add an extra permalink url for every non-default qTranslate language foreach ($languages as $language) { if ($qt["hide_default_language"] == 1 && $qt["default_language"] == $language) { $sitemap->AddUrl($permalink, $modified_time, $change_freq, $priority); } else { $sitemap->AddUrl(qtrans_convertURL($permalink, $language, true), $modified_time, $change_freq, $priority); } } } }
function qtranslate_menu_item($menu_item) { if (stripos($menu_item->url, get_site_url()) !== false) { $menu_item->url = qtrans_convertURL($menu_item->url); //echo $menu_item->url; } return $menu_item; }
/** * Template for Converting Home link in Custom Menu * * To override this in a child theme * simply create your own catchbase_menuitem(), and that function will be used instead. * * @since Catch Base Pro 3.0 */ function catchbase_menuitem($menu_item) { // convert local URLs in custom menu items if ($menu_item->type == 'custom' && stripos($menu_item->url, get_site_url()) !== false) { $menu_item->url = qtrans_convertURL($menu_item->url); } return $menu_item; }
public function convertURL($url, $lang = '') { if (function_exists('qtranxf_convertURL')) { return qtranxf_convertURL($url, $lang); } else { return qtrans_convertURL($url, $lang); } }
/** * Template for Homepage Headline * * To override this in a child theme * simply create your own adventurous_homepage_headline(), and that function will be used instead. * * @uses adventurous_before_main action to add it in the header * @since Adventurous 1.0 */ function adventurous_homepage_headline() { //delete_transient( 'adventurous_homepage_headline' ); global $post, $wp_query, $adventurous_options_settings; $options = $adventurous_options_settings; // Getting data from Theme Options $disable_headline = $options['disable_homepage_headline']; $disable_subheadline = $options['disable_homepage_subheadline']; $disable_button = $options['disable_homepage_button']; $homepage_headline = $options['homepage_headline']; $homepage_subheadline = $options['homepage_subheadline']; $homepage_headline_button = $options['homepage_headline_button']; $homepage_headline_target = $options['homepage_headline_target']; //support qTranslate plugin if (function_exists('qtrans_convertURL')) { $homepage_headline_url = qtrans_convertURL($options['homepage_headline_url']); } else { $homepage_headline_url = $options['homepage_headline_url']; } // Front page displays in Reading Settings $page_on_front = get_option('page_on_front'); $page_for_posts = get_option('page_for_posts'); // Get Page ID outside Loop $page_id = $wp_query->get_queried_object_id(); if (empty($disable_headline) || empty($disable_subheadline) || empty($disable_button)) { if (!($adventurous_homepage_headline = get_transient('adventurous_homepage_headline'))) { echo '<!-- refreshing cache -->'; $adventurous_homepage_headline = '<div id="homepage-message"><div class="container"><div class="left-section">'; if ($disable_headline == "0") { $adventurous_homepage_headline .= '<h2>' . $homepage_headline . '</h2>'; } if ($disable_subheadline == "0") { $adventurous_homepage_headline .= '<p>' . $homepage_subheadline . '</p>'; } $adventurous_homepage_headline .= '</div><!-- .left-section -->'; if (!empty($homepage_headline_url) && $disable_button == "0") { if (!empty($homepage_headline_target)) { $headlinetarget = '_blank'; } else { $headlinetarget = '_self'; } $adventurous_homepage_headline .= '<div class="right-section"><a href="' . $homepage_headline_url . '" target="' . $headlinetarget . '">' . $homepage_headline_button . '</a></div><!-- .right-section -->'; } $adventurous_homepage_headline .= '</div><!-- .container --></div><!-- #homepage-message -->'; set_transient('adventurous_homepage_headline', $adventurous_homepage_headline, 86940); } echo $adventurous_homepage_headline; } }
/** * Показывает переключатель языков в виде ненумерованного списка * * @param $ulClasses * @param string $linkActiveClass * @param bool $echo * * @return string */ public function showLangSwitcher($ulClasses, $linkActiveClass = 'active', $echo = TRUE) { $url = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; $result = '<ul class="' . $ulClasses . '">'; foreach (qtrans_getSortedLanguages() as $lang) { $isActive = $lang == $GLOBALS['q_config']['language'] ? ' class="' . $linkActiveClass . '" ' : ''; $result .= '<li><a href="' . qtrans_convertURL($url, $lang) . '" ' . $isActive . '>' . $lang . '</a></li>'; } $result .= '</ul>'; if ($echo) { echo $result; return; } return $result; }
function get_post_knews($reply, $id, $type, $lang) { if (is_array($reply) && isset($reply['skip'])) { return $reply; } global $post, $Knews_plugin, $knewsOptions; $post = get_post($id); $permalink = get_permalink(); if (KNEWS_MULTILANGUAGE && $knewsOptions['multilanguage_knews'] == 'qt' && function_exists('qtrans_convertURL')) { $post = qtrans_use($lang, $post, false); $permalink = qtrans_convertURL($permalink, $lang, true); } setup_postdata($post); $excerpt_length = apply_filters('excerpt_length', 55); $excerpt = (string) get_the_excerpt(); $content = (string) get_the_content(); if ($knewsOptions['apply_filters_on'] == '1') { $content = apply_filters('the_content', $content); } $content = strip_shortcodes($content); $content = knews_iterative_extract_code('<script', '</script>', $content, true); $content = knews_iterative_extract_code('<fb:like', '</fb:like>', $content, true); $content = str_replace(']]>', ']]>', $content); $content = strip_tags($content); if ($excerpt == '') { $excerpt = $content; } $words = explode(' ', $content, $excerpt_length + 1); if (count($words) > $excerpt_length) { array_pop($words); //array_push($words, '[...]'); $excerpt = implode(' ', $words) . '...'; } $content = nl2br($content); $words = explode(' ', $excerpt, $excerpt_length + 1); if (count($words) > $excerpt_length) { array_pop($words); //array_push($words, '[...]'); $excerpt = implode(' ', $words) . '...'; } $featimg = ''; if ($Knews_plugin->im_pro()) { if (has_post_thumbnail($post->ID)) { $featimg = knews_get_image_path(); } } return array('title' => get_the_title(), 'excerpt' => $excerpt, 'content' => $content, 'permalink' => $permalink, 'image' => $featimg); }
public static function qtranslate($input) { global $q_config; if (is_array($input)) { // got an array? return one! foreach ($input as $url) { foreach ($q_config['enabled_languages'] as $language) { $return[] = qtrans_convertURL($url, $language); } } } else { $return = qtrans_convertURL($input); // not an array? just convert the string. } return $return; }
function qtrans_getLanguageLinks($style = '', $id = '') { if (function_exists('qtrans_init')) { global $q_config; if ($style == '') { $style = 'text'; } if (is_bool($style) && $style) { $style = 'image'; } if (is_404()) { $url = get_option('home'); } else { $url = ''; } if ($id == '') { $id = 'qtranslate'; } $id .= '-chooser'; switch ($style) { case 'image': case 'text': case 'dropdown': echo '<ul class="qtrans_language_chooser" id="' . $id . '">'; foreach (qtrans_getSortedLanguages() as $language) { echo '<li'; if ($language == $q_config['language']) { echo ' class="active"'; } echo '><a href="' . qtrans_convertURL($url, $language) . '"'; // set hreflang echo ' hreflang="' . $language . '" title="' . $q_config['language_name'][$language] . '"'; echo '><span'; echo '>' . $q_config['language_name'][$language] . '</span></a></li>'; } echo "</ul><div class=\"qtrans_widget_end\"></div>"; } } }
/** * Language list Code for non-Widget users * * @global array $q_config * @param string $sep */ function qtrans_generate_language_list($sep = " | ") { global $q_config; $languages = qtrans_getSortedLanguages(); $num_langs = count($languages); $id = 'qtranslate-chooser'; $url = is_404() ? get_option('home') : ''; echo '<div class="qtrans_language_chooser" id="' . $id . '">'; foreach ($languages as $language) { $classes = array('lang-' . $language); if ($language == $q_config['language']) { $classes[] = 'active'; } echo '<span class="' . implode(' ', $classes) . '"><a href="' . qtrans_convertURL($url, $language) . '"'; echo ' hreflang="' . $language . '" title="' . $q_config['language_name'][$language] . '"'; echo '>' . $q_config['language_name'][$language] . '</a></span>'; if (--$num_langs > 0) { echo '<span class="qtrans_separator">' . $sep . '</span>'; } } echo "</div>"; }
function qtrans_header() { global $q_config; echo "\n<meta http-equiv=\"Content-Language\" content=\"" . $q_config['locale'][$q_config['language']] . "\" />\n"; $css = "<style type=\"text/css\" media=\"screen\">\n"; $css .= ".qtrans_flag span { display:none }\n"; $css .= ".qtrans_flag { height:12px; width:18px; display:block }\n"; $css .= ".qtrans_flag_and_text { padding-left:20px }\n"; foreach ($q_config['enabled_languages'] as $language) { $css .= ".qtrans_flag_" . $language . " { background:url(" . WP_CONTENT_URL . '/' . $q_config['flag_location'] . $q_config['flag'][$language] . ") no-repeat }\n"; } $css .= "</style>\n"; echo apply_filters('qtranslate_header_css', $css); // skip the rest if 404 if (is_404()) { return; } // set links to translations of current page foreach ($q_config['enabled_languages'] as $language) { if ($language != qtrans_getLanguage()) { echo '<link hreflang="' . $language . '" href="' . qtrans_convertURL('', $language) . '" rel="alternate" rev="alternate" />' . "\n"; } } }
</div><!-- end of .widget-wrapper --> <div class="widget-wrapper"> <div class="widget-title-home"></div> <div class="textwidget"> <?php $options = get_option('responsive_theme_options'); echo '<ul class="social-icons-custom">'; if (!empty($options['twitter_uid'])) { echo '<li class="twitter-icon-custom social-icon"><a target="_blank" href="' . $options['twitter_uid'] . '">' . '<img src="' . get_stylesheet_directory_uri() . '/icons/twitter.png" width="24" height="24" alt="Twitter">' . '</a></li>'; } if (!empty($options['facebook_uid'])) { echo '<li class="facebook-icon-custom social-icon"><a target="_blank" href="' . $options['facebook_uid'] . '">' . '<img src="' . get_stylesheet_directory_uri() . '/icons/facebook.png" width="24" height="24" alt="Facebook">' . '</a></li>'; } echo '<li class="rss-icon-custom social-icon"><a target="_blank" href="' . qtrans_convertURL(get_bloginfo('rss2_url', 'display')) . '">' . '<img src="' . get_stylesheet_directory_uri() . '/icons/rss.png" width="24" height="24" alt="RSS">' . '</a></li>'; echo '</ul><!-- end of .social-icons -->'; ?> </div> </div><!-- end of .widget-wrapper --> <?php if (!dynamic_sidebar('home-widget-3')) { ?> <div class="widget-wrapper"> <div class="widget-title-home"><h4><?php
function tc_url_lang($url) { return ( function_exists( 'qtrans_convertURL' ) ) ? qtrans_convertURL($url) : $url; }
function qtrans_checkCanonical($redirect_url, $requested_url) { // fix canonical conflicts with language urls if (qtrans_convertURL($redirect_url) == qtrans_convertURL($requested_url)) { return false; } return $redirect_url; }
/** * Retrieve the home url for a given site. * * @param int $blog_id (optional) Blog ID. Defaults to current blog. * @param string $path (optional) Path relative to the home url. * @param string $scheme (optional) Scheme to give the home url context. Currently 'http', 'https'. * @return string Home url link with optional path appended. * * @since 1.0 */ public function home_url($url, $path, $scheme, $blog_id) { if (!in_array($scheme, array('http', 'https'))) { $scheme = is_ssl() && !is_admin() ? 'https' : 'http'; } if (empty($blog_id) || !is_multisite()) { $url = get_option('home'); } else { $url = get_blog_option($blog_id, 'home'); } if ('http' != $scheme) { $url = str_replace('http://', "{$scheme}://", $url); } $ignore_caller = $this->ignore_rewrite_caller(); if (!empty($path) && is_string($path) && strpos($path, '..') === false) { $url .= '/' . ltrim($path, '/'); } if (!$ignore_caller) { $url = qtrans_convertURL($url, $this->get_lang(), true); } return $url; }
/** * Returns the URL of the management page as a shortcode */ public function subscribe_url_shortcode() { global $post; $user_link = get_bloginfo('url') . get_option('subscribe_reloaded_manager_page', ''); if (function_exists('qtrans_convertURL')) { $user_link = qtrans_convertURL($user_link); } if (strpos($user_link, '?') !== false) { return "{$user_link}&srp={$post->ID}&sra=s"; } else { return "{$user_link}?srp={$post->ID}&sra=s"; } }
/** * Template for Featured Header Image from Post and Page * * To override this in a child theme * simply create your own catchbase_featured_imaage_pagepost(), and that function will be used instead. * * @since Catch Base 1.0 */ function catchbase_featured_page_post_image() { global $post, $wp_query; // Get Page ID outside Loop $page_id = $wp_query->get_queried_object_id(); $page_for_posts = get_option('page_for_posts'); if (is_home() && $page_for_posts == $page_id) { $header_page_id = $page_id; } else { $header_page_id = $post->ID; } if (has_post_thumbnail($header_page_id)) { $options = catchbase_get_theme_options(); $featured_header_image_url = $options['featured_header_image_url']; $featured_header_image_base = $options['featured_header_image_base']; if ('' != $featured_header_image_url) { //support for qtranslate custom link if (function_exists('qtrans_convertURL')) { $link = qtrans_convertURL($featured_header_image_url); } else { $link = esc_url($featured_header_image_url); } //Checking Link Target if ('1' == $featured_header_image_base) { $target = '_blank'; } else { $target = '_self'; } } else { $link = ''; $target = ''; } $featured_header_image_alt = $options['featured_header_image_alt']; // Header Image Title/Alt if ('' != $featured_header_image_alt) { $title = esc_attr($featured_header_image_alt); } else { $title = ''; } $featured_image_size = $options['featured_image_size']; if ('slider' == $featured_image_size) { $feat_image = get_the_post_thumbnail($post->ID, 'catchbase-slider', array('id' => 'main-feat-img')); } else { if ('full' == $featured_image_size) { $feat_image = get_the_post_thumbnail($post->ID, 'full', array('id' => 'main-feat-img')); } else { $feat_image = get_the_post_thumbnail($post->ID, 'catchbase-large', array('id' => 'main-feat-img')); } } $catchbase_featured_image = '<div id="header-featured-image" class =' . $featured_image_size . '>'; // Header Image Link if ('' != $featured_header_image_url) { $catchbase_featured_image .= '<a title="' . esc_attr($title) . '" href="' . esc_url($link) . '" target="' . $target . '">' . $feat_image . '</a>'; } else { // if empty featured_header_image on theme options, display default $catchbase_featured_image .= $feat_image; } $catchbase_featured_image .= '</div><!-- #header-featured-image -->'; echo $catchbase_featured_image; } else { catchbase_featured_image(); } }
if (!$Knews_plugin->initialized) { $Knews_plugin->init(); } $url_home = ''; if (KNEWS_MULTILANGUAGE) { if ($knewsOptions['multilanguage_knews'] == 'wpml') { global $sitepress; if (method_exists($sitepress, 'language_url')) { $user_lang = $Knews_plugin->get_user_lang($Knews_plugin->get_safe('e')); $url_home = $sitepress->language_url($user_lang); } } if ($knewsOptions['multilanguage_knews'] == 'qt') { if (function_exists('qtrans_convertURL')) { $user_lang = $Knews_plugin->get_user_lang($Knews_plugin->get_safe('e')); $url_home = qtrans_convertURL(get_bloginfo('url'), $user_lang); } } } if ($url_home == '') { $url_home = get_bloginfo('url'); } if (strpos($url_home, '?') === false) { $url_home .= '?unsubscribe='; } else { $url_home .= '&unsubscribe='; } if ($Knews_plugin->block_user_self()) { $url_home .= 'ok'; } else { $url_home .= 'error';
function qtrans_use($lang, $text, $show_available = false) { global $q_config; // return full string if language is not enabled if (!qtrans_isEnabled($lang)) { return $text; } if (is_array($text)) { // handle arrays recursively foreach ($text as $key => $t) { $text[$key] = qtrans_use($lang, $text[$key], $show_available); } return $text; } if (is_object($text) || @get_class($text) == '__PHP_Incomplete_Class') { foreach (get_object_vars($text) as $key => $t) { $text->{$key} = qtrans_use($lang, $text->{$key}, $show_available); } return $text; } // prevent filtering weird data types and save some resources if (!is_string($text) || $text == '') { return $text; } // get content $content = qtrans_split($text); // find available languages $available_languages = array(); foreach ($content as $language => $lang_text) { $lang_text = trim($lang_text); if (!empty($lang_text)) { $available_languages[] = $language; } } // if no languages available show full text if (sizeof($available_languages) == 0) { return $text; } // if content is available show the content in the requested language if (!empty($content[$lang])) { return $content[$lang]; } // content not available in requested language (bad!!) what now? if (!$show_available) { // check if content is available in default language, if not return first language found. (prevent empty result) if ($lang != $q_config['default_language']) { return "(" . $q_config['language_name'][$q_config['default_language']] . ") " . qtrans_use($q_config['default_language'], $text, $show_available); } foreach ($content as $language => $lang_text) { $lang_text = trim($lang_text); if (!empty($lang_text)) { return "(" . $q_config['language_name'][$language] . ") " . $lang_text; } } } // display selection for available languages $available_languages = array_unique($available_languages); $language_list = ""; if (preg_match('/%LANG:([^:]*):([^%]*)%/', $q_config['not_available'][$lang], $match)) { $normal_seperator = $match[1]; $end_seperator = $match[2]; // build available languages string backward $i = 0; foreach ($available_languages as $language) { if ($i == 1) { $language_list = $end_seperator . $language_list; } if ($i > 1) { $language_list = $normal_seperator . $language_list; } $language_list = "<a href=\"" . qtrans_convertURL('', $language) . "\">" . $q_config['language_name'][$language] . "</a>" . $language_list; $i++; } } return "<p>" . preg_replace('/%LANG:([^:]*):([^%]*)%/', $language_list, $q_config['not_available'][$lang]) . "</p>"; }
/** * Displays the checkbox to allow visitors to subscribe */ function subscribe_reloaded_show() { global $post, $wp_subscribe_reloaded; $checkbox_subscription_type = null; $_comment_ID = null; // Enable JS scripts. $wp_subscribe_reloaded->stcr->utils->add_plugin_js_scripts(); wp_enqueue_style('stcr-plugin-style'); $is_disabled = get_post_meta($post->ID, 'stcr_disable_subscriptions', true); if (!empty($is_disabled)) { return $_comment_ID; } $show_subscription_box = true; $html_to_show = ''; $user_link = get_bloginfo('url') . get_option('subscribe_reloaded_manager_page', ''); if (function_exists('qtrans_convertURL')) { $user_link = qtrans_convertURL($user_link); } $manager_link = strpos($user_link, '?') !== false ? "{$user_link}&srp={$post->ID}&srk=" . get_option('subscribe_reloaded_unique_key') : "{$user_link}?srp={$post->ID}&srk=" . get_option('subscribe_reloaded_unique_key'); if ($wp_subscribe_reloaded->stcr->is_user_subscribed($post->ID, '', 'C')) { $html_to_show = str_replace('[manager_link]', $user_link, __(html_entity_decode(stripslashes(get_option('subscribe_reloaded_subscribed_waiting_label', "Your subscription to this post needs to be confirmed. <a href='[manager_link]'>Manage your subscriptions</a>.")), ENT_QUOTES, 'UTF-8'), 'subscribe-reloaded')); $show_subscription_box = false; } elseif ($wp_subscribe_reloaded->stcr->is_user_subscribed($post->ID, '')) { $html_to_show = str_replace('[manager_link]', $user_link, __(html_entity_decode(stripslashes(get_option('subscribe_reloaded_subscribed_label', "You are subscribed to this post. <a href='[manager_link]'>Manage</a> your subscriptions.")), ENT_QUOTES, 'UTF-8'), 'subscribe-reloaded')); $show_subscription_box = false; } if ($wp_subscribe_reloaded->stcr->is_author($post->post_author)) { // when the second parameter is empty, cookie value will be used if (get_option('subscribe_reloaded_admin_subscribe', 'no') == 'no') { $show_subscription_box = false; } $html_to_show .= str_replace('[manager_link]', $manager_link, __(html_entity_decode(stripslashes(get_option('subscribe_reloaded_author_label', "You can <a href='[manager_link]'>manage the subscriptions</a> of this post.")), ENT_QUOTES, 'UTF-8'), 'subscribe-reloaded')); } if ($show_subscription_box) { $checkbox_label = str_replace('[subscribe_link]', "{$manager_link}&sra=s", __(html_entity_decode(stripslashes(get_option('subscribe_reloaded_checkbox_label', "Notify me of followup comments via e-mail. You can also <a href='[subscribe_link]'>subscribe</a> without commenting.")), ENT_QUOTES, 'UTF-8'), 'subscribe-reloaded')); $checkbox_inline_style = get_option('subscribe_reloaded_checkbox_inline_style', 'width:30px'); if (!empty($checkbox_inline_style)) { $checkbox_inline_style = " style='{$checkbox_inline_style}'"; } $checkbox_html_wrap = html_entity_decode(stripslashes(get_option('subscribe_reloaded_checkbox_html', '')), ENT_QUOTES, 'UTF-8'); if (get_option('subscribe_reloaded_enable_advanced_subscriptions', 'no') == 'no') { switch (get_option('subscribe_reloaded_checked_by_default_value')) { case '0': $checkbox_subscription_type = 'yes'; break; case '1': $checkbox_subscription_type = 'replies'; break; } $checkbox_field = "<input{$checkbox_inline_style} type='checkbox' name='subscribe-reloaded' id='subscribe-reloaded' value='{$checkbox_subscription_type}'" . (get_option('subscribe_reloaded_checked_by_default', 'no') == 'yes' ? " checked='checked'" : '') . " />"; } else { $checkbox_field = "<select name='subscribe-reloaded' id='subscribe-reloaded'>\n\t\t\t\t\t\t\t\t\t<option value='none' " . (get_option('subscribe_reloaded_default_subscription_type') === '0' ? "selected='selected'" : '') . ">" . __("Don't subscribe", 'subscribe-reloaded') . "</option>\n\t\t\t\t\t\t\t\t\t<option value='yes' " . (get_option('subscribe_reloaded_default_subscription_type') === '1' ? "selected='selected'" : '') . ">" . __("All", 'subscribe-reloaded') . "</option>\n\t\t\t\t\t\t\t\t\t<option value='replies' " . (get_option('subscribe_reloaded_default_subscription_type') === '2' ? "selected='selected'" : '') . ">" . __("Replies to my comments", 'subscribe-reloaded') . "</option>\n\t\t\t\t\t\t\t\t</select>"; } if (empty($checkbox_html_wrap)) { $html_to_show = "{$checkbox_field} <label for='subscribe-reloaded'>{$checkbox_label}</label>" . $html_to_show; } else { $checkbox_html_wrap = str_replace('[checkbox_field]', $checkbox_field, $checkbox_html_wrap); $html_to_show = str_replace('[checkbox_label]', $checkbox_label, $checkbox_html_wrap) . $html_to_show; } } if (function_exists('qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage')) { $html_to_show = qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage($html_to_show); } // Check for the Comment Form location if (get_option('subscribe_reloaded_commentbox_place') == 'yes') { echo "<div class='stcr-form hidden'>"; echo "<!-- Subscribe to Comments Reloaded version" . $wp_subscribe_reloaded->stcr->current_version . " -->"; echo "<!-- BEGIN: subscribe to comments reloaded -->" . $html_to_show . "<!-- END: subscribe to comments reloaded -->"; echo "</div>"; } else { echo "<!-- Subscribe to Comments Reloaded version" . $wp_subscribe_reloaded->stcr->current_version . " -->"; echo "<!-- BEGIN: subscribe to comments reloaded -->" . $html_to_show . "<!-- END: subscribe to comments reloaded -->"; } }
/** * Get all translated path of a specific post with ID. * * @since 2.4 * * @param int $post_id Post ID * @param string $post_type Post Type * @param string $regex Regex to include at the end * @return array $urls */ function get_rocket_i18n_translated_post_urls($post_id, $post_type = 'page', $regex = null) { $urls = array(); $path = parse_url(get_permalink($post_id), PHP_URL_PATH); $langs = get_rocket_i18n_code(); if (empty($path)) { return $urls; } // WPML if (rocket_is_plugin_active('sitepress-multilingual-cms/sitepress.php')) { foreach ($langs as $lang) { $urls[] = parse_url(get_permalink(icl_object_id($post_id, $post_type, true, $lang)), PHP_URL_PATH) . $regex; } } // qTranslate if (rocket_is_plugin_active('qtranslate/qtranslate.php')) { $langs = $GLOBALS['q_config']['enabled_languages']; $langs = array_diff($langs, array($GLOBALS['q_config']['default_language'])); $url = get_permalink($post_id); $urls[] = parse_url(get_permalink($post_id), PHP_URL_PATH) . $regex; foreach ($langs as $lang) { $urls[] = parse_url(qtrans_convertURL($url, $lang, true), PHP_URL_PATH) . $regex; } } // Polylang if (rocket_is_plugin_active('polylang/polylang.php') && is_object($GLOBALS['polylang']->model) && ($translations = $GLOBALS['polylang']->model->get_translations('page', $post_id))) { foreach ($translations as $post_id) { $urls[] = parse_url(get_permalink($post_id), PHP_URL_PATH) . $regex; } } if (trim($path, '/') != '') { $urls[] = $path . $regex; } $urls = array_unique($urls); return $urls; }
/** * Template for Promotion Headline * * To override this in a child theme * simply create your own catchresponsive_promotion_headline(), and that function will be used instead. * * @uses catchresponsive_before_main action to add it in the header * @since Catch Responsive 1.0 */ function catchresponsive_promotion_headline() { //delete_transient( 'catchresponsive_promotion_headline' ); global $post, $wp_query; $options = catchresponsive_get_theme_options(); $promotion_headline = $options['promotion_headline']; $promotion_subheadline = $options['promotion_subheadline']; $promotion_headline_button = $options['promotion_headline_button']; $promotion_headline_target = $options['promotion_headline_target']; $enablepromotion = $options['promotion_headline_option']; //support qTranslate plugin if (function_exists('qtrans_convertURL')) { $promotion_headline_url = qtrans_convertURL($options['promotion_headline_url']); } else { $promotion_headline_url = $options['promotion_headline_url']; } // Front page displays in Reading Settings $page_on_front = get_option('page_on_front'); $page_for_posts = get_option('page_for_posts'); // Get Page ID outside Loop $page_id = $wp_query->get_queried_object_id(); if (("" != $promotion_headline || "" != $promotion_subheadline || "" != $promotion_headline_url) && ($enablepromotion == 'entire-site' || (is_front_page() || is_home() && $page_for_posts != $page_id) && $enablepromotion == 'homepage')) { if (!($catchresponsive_promotion_headline = get_transient('catchresponsive_promotion_headline'))) { echo '<!-- refreshing cache -->'; $catchresponsive_promotion_headline = ' <div id="promotion-message"> <div class="wrapper"> <div class="section left">'; if ("" != $promotion_headline) { $catchresponsive_promotion_headline .= '<h2>' . $promotion_headline . '</h2>'; } if ("" != $promotion_subheadline) { $catchresponsive_promotion_headline .= '<p>' . $promotion_subheadline . '</p>'; } $catchresponsive_promotion_headline .= ' </div><!-- .section.left -->'; if ("" != $promotion_headline_url) { if ("1" == $promotion_headline_target) { $headlinetarget = '_blank'; } else { $headlinetarget = '_self'; } $catchresponsive_promotion_headline .= ' <div class="section right"> <a class="promotion-button" href="' . esc_url($promotion_headline_url) . '" target="' . $headlinetarget . '">' . esc_attr($promotion_headline_button) . ' </a> </div><!-- .section.right -->'; } $catchresponsive_promotion_headline .= ' </div><!-- .wrapper --> </div><!-- #promotion-message -->'; set_transient('catchresponsive_promotion_headline', $catchresponsive_promotion_headline, 86940); } echo $catchresponsive_promotion_headline; } }
/** * Builds the sitemap and writes it into a xml file. * * ATTENTION PLUGIN DEVELOPERS! DONT CALL THIS METHOD DIRECTLY! * The method is probably not available, since it is only loaded when needed. * Use do_action("sm_rebuild"); if you want to rebuild the sitemap. * Please refer to the documentation.txt for more details. * * @since 3.0 * @access public * @author Arne Brachhold <himself [at] arnebrachhold [dot] de> * @return array An array with messages such as failed writes etc. */ function BuildSitemap() { global $wpdb, $posts, $wp_version; $this->Initate(); if ($this->GetOption("b_memory") != '') { @ini_set("memory_limit", $this->GetOption("b_memory")); } if ($this->GetOption("b_time") != -1) { @set_time_limit($this->GetOption("b_time")); } //This object saves the status information of the script directly to the database $status = new GoogleSitemapGeneratorStatus(); //Other plugins can detect if the building process is active $this->_isActive = true; //$this->AddElement(new GoogleSitemapGeneratorXmlEntry()); //Debug mode? $debug = $this->GetOption("b_debug"); if ($this->GetOption("b_xml")) { $fileName = $this->GetXmlPath(); $status->StartXml($this->GetXmlPath(), $this->GetXmlUrl()); if ($this->IsFileWritable($fileName)) { $this->_fileHandle = fopen($fileName, "w"); if (!$this->_fileHandle) { $status->EndXml(false, "Not openable"); } } else { $status->EndXml(false, "not writable"); } } //Write gzipped sitemap file if ($this->IsGzipEnabled()) { $fileName = $this->GetZipPath(); $status->StartZip($this->GetZipPath(), $this->GetZipUrl()); if ($this->IsFileWritable($fileName)) { $this->_fileZipHandle = gzopen($fileName, "w1"); if (!$this->_fileZipHandle) { $status->EndZip(false, "Not openable"); } } else { $status->EndZip(false, "not writable"); } } if (!$this->_fileHandle && !$this->_fileZipHandle) { $status->End(); return; } //Content of the XML file $this->AddElement(new GoogleSitemapGeneratorXmlEntry('<?xml version="1.0" encoding="UTF-8"' . '?' . '>')); $styleSheet = $this->GetDefaultStyle() && $this->GetOption('b_style_default') === true ? $this->GetDefaultStyle() : $this->GetOption('b_style'); if (!empty($styleSheet)) { $this->AddElement(new GoogleSitemapGeneratorXmlEntry('<' . '?xml-stylesheet type="text/xsl" href="' . $styleSheet . '"?' . '>')); } $this->AddElement(new GoogleSitemapGeneratorDebugEntry("generator=\"wordpress/" . get_bloginfo('version') . "\"")); $this->AddElement(new GoogleSitemapGeneratorDebugEntry("sitemap-generator-url=\"http://www.arnebrachhold.de\" sitemap-generator-version=\"" . $this->GetVersion() . "\"")); $this->AddElement(new GoogleSitemapGeneratorDebugEntry("generated-on=\"" . date(get_option("date_format") . " " . get_option("time_format")) . "\"")); //All comments as an asso. Array (postID=>commentCount) $comments = $this->GetOption("b_prio_provider") != "" ? $this->GetComments() : array(); //Full number of comments $commentCount = count($comments) > 0 ? $this->GetCommentCount($comments) : 0; if ($debug && $this->GetOption("b_prio_provider") != "") { $this->AddElement(new GoogleSitemapGeneratorDebugEntry("Debug: Total comment count: " . $commentCount)); } //Go XML! $this->AddElement(new GoogleSitemapGeneratorXmlEntry('<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">')); $home = get_bloginfo('url'); $homePid = 0; //Add the home page (WITH a slash!) if ($this->GetOption("in_home")) { if ('page' == get_option('show_on_front') && get_option('page_on_front')) { $pageOnFront = get_option('page_on_front'); $p = get_page($pageOnFront); if ($p) { $homePid = $p->ID; $this->AddUrl(trailingslashit($home), $this->GetTimestampFromMySql($p->post_modified_gmt && $p->post_modified_gmt != '0000-00-00 00:00:00' ? $p->post_modified_gmt : $p->post_date_gmt), $this->GetOption("cf_home"), $this->GetOption("pr_home")); } } else { $this->AddUrl(trailingslashit($home), $this->GetTimestampFromMySql(get_lastpostmodified('GMT')), $this->GetOption("cf_home"), $this->GetOption("pr_home")); } } //Add the posts if ($this->GetOption("in_posts") || $this->GetOption("in_pages")) { if ($debug) { $this->AddElement(new GoogleSitemapGeneratorDebugEntry("Debug: Start Postings")); } //Pre 2.1 compatibility. 2.1 introduced 'future' as post_status so we don't need to check post_date $wpCompat = floatval($wp_version) < 2.1; $useQTransLate = false; //function_exists('qtrans_convertURL') && function_exists('qtrans_getEnabledLanguages'); Not really working yet $excludes = $this->GetOption('b_exclude'); //Excluded posts and pages (user enetered ID) $exclCats = $this->GetOption("b_exclude_cats"); // Excluded cats if ($exclCats && count($exclCats) > 0 && $this->IsTaxonomySupported()) { $excludedCatPosts = get_objects_in_term($exclCats, "category"); // Get all posts in excl. cats. Unforttunately this also gives us pages, revisions and so on... //Remove the pages, revisions etc from the exclude by category list, because they are always in the uncategorized one. if (count($excludedCatPosts) > 0) { $exclPages = $wpdb->get_col("SELECT ID FROM `" . $wpdb->posts . "` WHERE post_type!='post' AND ID IN ('" . implode("','", $excludedCatPosts) . "')"); $exclPages = array_map('intval', $exclPages); //Remove the pages from the exlusion list before if (count($exclPages) > 0) { $excludedCatPosts = array_diff($excludedCatPosts, $exclPages); } //Merge the category exclusion list with the users one if (count($excludedCatPosts) > 0) { $excludes = array_merge($excludes, $excludedCatPosts); } } } $contentStmt = ''; if ($useQTransLate) { $contentStmt .= ', post_content '; } $postPageStmt = ''; $inSubPages = $this->GetOption('in_posts_sub') === true; if ($inSubPages && $this->GetOption('in_posts') === true) { $pageDivider = '<!--nextpage-->'; $postPageStmt = ", (character_length(`post_content`) - character_length(REPLACE(`post_content`, '{$pageDivider}', ''))) / " . strlen($pageDivider) . " as postPages"; } $sql = "SELECT `ID`, `post_author`, `post_date`, `post_date_gmt`, `post_status`, `post_name`, `post_modified`, `post_modified_gmt`, `post_parent`, `post_type` {$postPageStmt} {$contentStmt} FROM `" . $wpdb->posts . "` WHERE "; $where = '('; if ($this->GetOption('in_posts')) { //WP < 2.1: posts are post_status = publish //WP >= 2.1: post_type must be 'post', no date check required because future posts are post_status='future' if ($wpCompat) { $where .= "(post_status = 'publish' AND post_date_gmt <= '" . gmdate('Y-m-d H:i:59') . "')"; } else { $where .= " (post_status = 'publish' AND (post_type = 'post' OR post_type = '')) "; } } if ($this->GetOption('in_pages')) { if ($this->GetOption('in_posts')) { $where .= " OR "; } if ($wpCompat) { //WP < 2.1: posts have post_status = published, pages have post_status = static $where .= " post_status='static' "; } else { //WP >= 2.1: posts have post_type = 'post' and pages have post_type = 'page'. Both must be published. $where .= " (post_status = 'publish' AND post_type = 'page') "; } } $where .= ") "; if (is_array($excludes) && count($excludes) > 0) { $where .= " AND ID NOT IN ('" . implode("','", $excludes) . "')"; } $where .= " AND post_password='' ORDER BY post_modified DESC"; $sql .= $where; if ($this->GetOption("b_max_posts") > 0) { $sql .= " LIMIT 0," . $this->GetOption("b_max_posts"); } $postCount = intval($wpdb->get_var("SELECT COUNT(*) AS cnt FROM `" . $wpdb->posts . "` WHERE " . $where, 0, 0)); //Create a new connection because we are using mysql_unbuffered_query and don't want to disturb the WP connection //Safe Mode for other plugins which use mysql_query() without a connection handler and will destroy our resultset :( $con = $postRes = null; //In 2.2, a bug which prevented additional DB connections was fixed if (floatval($wp_version) < 2.2) { $this->SetOption("b_safemode", true); } if ($this->GetOption("b_safemode") === true) { $postRes = mysql_query($sql, $wpdb->dbh); if (!$postRes) { trigger_error("MySQL query failed: " . mysql_error(), E_USER_NOTICE); //E_USER_NOTICE will be displayed on our debug mode return; } } else { $con = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD, true); if (!$con) { trigger_error("MySQL Connection failed: " . mysql_error(), E_USER_NOTICE); return; } if (!mysql_select_db(DB_NAME, $con)) { trigger_error("MySQL DB Select failed: " . mysql_error(), E_USER_NOTICE); return; } $postRes = mysql_unbuffered_query($sql, $con); if (!$postRes) { trigger_error("MySQL unbuffered query failed: " . mysql_error(), E_USER_NOTICE); return; } } if ($postRes) { //#type $prioProvider GoogleSitemapGeneratorPrioProviderBase $prioProvider = NULL; if ($this->GetOption("b_prio_provider") != '') { $providerClass = $this->GetOption('b_prio_provider'); $prioProvider = new $providerClass($commentCount, $postCount); } //$posts is used by Alex King's Popularity Contest plugin //if($posts == null || !is_array($posts)) { // $posts = &$postRes; //} $z = 1; $zz = 1; //Default priorities $default_prio_posts = $this->GetOption('pr_posts'); $default_prio_pages = $this->GetOption('pr_pages'); //Change frequencies $cf_pages = $this->GetOption('cf_pages'); $cf_posts = $this->GetOption('cf_posts'); $minPrio = $this->GetOption('pr_posts_min'); //Cycle through all posts and add them while ($post = mysql_fetch_object($postRes)) { //Fill the cache with our DB result. Since it's incomplete (no text-content for example), we will clean it later. $cache = array(&$post); update_post_cache($cache); //Set the current working post for other plugins which depend on "the loop" $GLOBALS['post'] =& $post; $permalink = get_permalink($post->ID); if ($permalink != $home && $post->ID != $homePid) { $isPage = false; if ($wpCompat) { $isPage = $post->post_status == 'static'; } else { $isPage = $post->post_type == 'page'; } //Default Priority if auto calc is disabled $prio = 0; if ($isPage) { //Priority for static pages $prio = $default_prio_pages; } else { //Priority for normal posts $prio = $default_prio_posts; } //If priority calc. is enabled, calculate (but only for posts, not pages)! if ($prioProvider !== null && !$isPage) { //Comment count for this post $cmtcnt = isset($comments[$post->ID]) ? $comments[$post->ID] : 0; $prio = $prioProvider->GetPostPriority($post->ID, $cmtcnt, $post); if ($debug) { $this->AddElement(new GoogleSitemapGeneratorDebugEntry('Debug: Priority report of postID ' . $post->ID . ': Comments: ' . $cmtcnt . ' of ' . $commentCount . ' = ' . $prio . ' points')); } } if (!$isPage && $minPrio > 0 && $prio < $minPrio) { $prio = $minPrio; } //Add it $this->AddUrl($permalink, $this->GetTimestampFromMySql($post->post_modified_gmt && $post->post_modified_gmt != '0000-00-00 00:00:00' ? $post->post_modified_gmt : $post->post_date_gmt), $isPage ? $cf_pages : $cf_posts, $prio); if ($inSubPages) { $subPage = ''; for ($p = 1; $p <= $post->postPages; $p++) { if (get_option('permalink_structure') == '') { $subPage = $permalink . '&page=' . ($p + 1); } else { $subPage = trailingslashit($permalink) . user_trailingslashit($p + 1, 'single_paged'); } $this->AddUrl($subPage, $this->GetTimestampFromMySql($post->post_modified_gmt && $post->post_modified_gmt != '0000-00-00 00:00:00' ? $post->post_modified_gmt : $post->post_date_gmt), $isPage ? $cf_pages : $cf_posts, $prio); } } // Multilingual Support with qTranslate, thanks to Qian Qin if ($useQTransLate) { global $q_config; foreach (qtrans_getEnabledLanguages($post->post_content) as $language) { if ($language != $q_config['default_language']) { $this->AddUrl(qtrans_convertURL($permalink, $language), $this->GetTimestampFromMySql($post->post_modified_gmt && $post->post_modified_gmt != '0000-00-00 00:00:00' ? $post->post_modified_gmt : $post->post_date_gmt), $isPage ? $cf_pages : $cf_posts, $prio); } } } } //Update the status every 100 posts and at the end. //If the script breaks because of memory or time limit, //we have a "last reponded" value which can be compared to the server settings if ($zz == 100 || $z == $postCount) { $status->SaveStep($z); $zz = 0; } else { $zz++; } $z++; //Clean cache because it's incomplete if (version_compare($wp_version, "2.5", ">=")) { //WP 2.5 makes a mysql query for every clean_post_cache to clear the child cache //so I've copied the function here until a patch arrives... wp_cache_delete($post->ID, 'posts'); wp_cache_delete($post->ID, 'post_meta'); clean_object_term_cache($post->ID, 'post'); } else { clean_post_cache($post->ID); } } unset($postRes); unset($prioProvider); if ($this->GetOption("b_safemode") !== true && $con) { mysql_close($con); } } if ($debug) { $this->AddElement(new GoogleSitemapGeneratorDebugEntry("Debug: End Postings")); } } //Add the cats if ($this->GetOption("in_cats")) { if ($debug) { $this->AddElement(new GoogleSitemapGeneratorDebugEntry("Debug: Start Cats")); } $exclCats = $this->GetOption("b_exclude_cats"); // Excluded cats if ($exclCats == null) { $exclCats = array(); } if (!$this->IsTaxonomySupported()) { $catsRes = $wpdb->get_results("\n\t\t\t\t\t\t\tSELECT\n\t\t\t\t\t\t\t\tc.cat_ID AS ID,\n\t\t\t\t\t\t\t\tMAX(p.post_modified_gmt) AS last_mod\n\t\t\t\t\t\t\tFROM\n\t\t\t\t\t\t\t\t`" . $wpdb->categories . "` c,\n\t\t\t\t\t\t\t\t`" . $wpdb->post2cat . "` pc,\n\t\t\t\t\t\t\t\t`" . $wpdb->posts . "` p\n\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t\tpc.category_id = c.cat_ID\n\t\t\t\t\t\t\t\tAND p.ID = pc.post_id\n\t\t\t\t\t\t\t\tAND p.post_status = 'publish'\n\t\t\t\t\t\t\t\tAND p.post_type='post'\n\t\t\t\t\t\t\tGROUP\n\t\t\t\t\t\t\t\tBY c.cat_id\n\t\t\t\t\t\t\t"); if ($catsRes) { foreach ($catsRes as $cat) { if ($cat && $cat->ID && $cat->ID > 0 && !in_array($cat->ID, $exclCats)) { if ($debug) { if ($debug) { $this->AddElement(new GoogleSitemapGeneratorDebugEntry("Cat-ID:" . $cat->ID)); } } $this->AddUrl(get_category_link($cat->ID), $this->GetTimestampFromMySql($cat->last_mod), $this->GetOption("cf_cats"), $this->GetOption("pr_cats")); } } } } else { $cats = get_terms("category", array("hide_empty" => true, "hierarchical" => false)); if ($cats && is_array($cats) && count($cats) > 0) { foreach ($cats as $cat) { if (!in_array($cat->term_id, $exclCats)) { $this->AddUrl(get_category_link($cat->term_id), 0, $this->GetOption("cf_cats"), $this->GetOption("pr_cats")); } } } } if ($debug) { $this->AddElement(new GoogleSitemapGeneratorDebugEntry("Debug: End Cats")); } } //Add the archives if ($this->GetOption("in_arch")) { if ($debug) { $this->AddElement(new GoogleSitemapGeneratorDebugEntry("Debug: Start Archive")); } $now = current_time('mysql'); //WP2.1 introduced post_status='future', for earlier WP versions we need to check the post_date_gmt $arcresults = $wpdb->get_results("\n\t\t\t\t\t\tSELECT DISTINCT\n\t\t\t\t\t\t\tYEAR(post_date_gmt) AS `year`,\n\t\t\t\t\t\t\tMONTH(post_date_gmt) AS `month`,\n\t\t\t\t\t\t\tMAX(post_date_gmt) as last_mod,\n\t\t\t\t\t\t\tcount(ID) as posts\n\t\t\t\t\t\tFROM\n\t\t\t\t\t\t\t{$wpdb->posts}\n\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\tpost_date < '{$now}'\n\t\t\t\t\t\t\tAND post_status = 'publish'\n\t\t\t\t\t\t\tAND post_type = 'post'\n\t\t\t\t\t\t\t" . (floatval($wp_version) < 2.1 ? "AND {$wpdb->posts}.post_date_gmt <= '" . gmdate('Y-m-d H:i:59') . "'" : "") . "\n\t\t\t\t\t\tGROUP BY\n\t\t\t\t\t\t\tYEAR(post_date_gmt),\n\t\t\t\t\t\t\tMONTH(post_date_gmt)\n\t\t\t\t\t\tORDER BY\n\t\t\t\t\t\t\tpost_date_gmt DESC"); if ($arcresults) { foreach ($arcresults as $arcresult) { $url = get_month_link($arcresult->year, $arcresult->month); $changeFreq = ""; //Archive is the current one if ($arcresult->month == date("n") && $arcresult->year == date("Y")) { $changeFreq = $this->GetOption("cf_arch_curr"); } else { // Archive is older $changeFreq = $this->GetOption("cf_arch_old"); } $this->AddUrl($url, $this->GetTimestampFromMySql($arcresult->last_mod), $changeFreq, $this->GetOption("pr_arch")); } } if ($debug) { $this->AddElement(new GoogleSitemapGeneratorDebugEntry("Debug: End Archive")); } } //Add the author pages if ($this->GetOption("in_auth")) { if ($debug) { $this->AddElement(new GoogleSitemapGeneratorDebugEntry("Debug: Start Author pages")); } $linkFunc = null; //get_author_link is deprecated in WP 2.1, try to use get_author_posts_url first. if (function_exists('get_author_posts_url')) { $linkFunc = 'get_author_posts_url'; } else { if (function_exists('get_author_link')) { $linkFunc = 'get_author_link'; } } //Who knows what happens in later WP versions, so check again if it worked if ($linkFunc !== null) { //Unfortunately there is no API function to get all authors, so we have to do it the dirty way... //We retrieve only users with published and not password protected posts (and not pages) //WP2.1 introduced post_status='future', for earlier WP versions we need to check the post_date_gmt $sql = "SELECT DISTINCT\n\t\t\t\t\t\t\tp.ID,\n\t\t\t\t\t\t\tu.user_nicename,\n\t\t\t\t\t\t\tMAX(p.post_modified_gmt) AS last_post\n\t\t\t\t\t\tFROM\n\t\t\t\t\t\t\t{$wpdb->users} u,\n\t\t\t\t\t\t\t{$wpdb->posts} p\n\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\tp.post_author = u.ID\n\t\t\t\t\t\t\tAND p.post_status = 'publish'\n\t\t\t\t\t\t\tAND p.post_type = 'post'\n\t\t\t\t\t\t\tAND p.post_password = ''\n\t\t\t\t\t\t\t" . (floatval($wp_version) < 2.1 ? "AND p.post_date_gmt <= '" . gmdate('Y-m-d H:i:59') . "'" : "") . "\n\t\t\t\t\t\tGROUP BY\n\t\t\t\t\t\t\tu.ID,\n\t\t\t\t\t\t\tu.user_nicename"; $authors = $wpdb->get_results($sql); if ($authors && is_array($authors)) { foreach ($authors as $author) { if ($debug) { if ($debug) { $this->AddElement(new GoogleSitemapGeneratorDebugEntry("Author-ID:" . $author->ID)); } } $url = $linkFunc == 'get_author_posts_url' ? get_author_posts_url($author->ID, $author->user_nicename) : get_author_link(false, $author->ID, $author->user_nicename); $this->AddUrl($url, $this->GetTimestampFromMySql($author->last_post), $this->GetOption("cf_auth"), $this->GetOption("pr_auth")); } } } else { //Too bad, no author pages for you :( if ($debug) { $this->AddElement(new GoogleSitemapGeneratorDebugEntry("Debug: No valid author link function found")); } } if ($debug) { $this->AddElement(new GoogleSitemapGeneratorDebugEntry("Debug: End Author pages")); } } //Add tag pages if ($this->GetOption("in_tags") && $this->IsTaxonomySupported()) { if ($debug) { $this->AddElement(new GoogleSitemapGeneratorDebugEntry("Debug: Start Tags")); } $tags = get_terms("post_tag", array("hide_empty" => true, "hierarchical" => false)); if ($tags && is_array($tags) && count($tags) > 0) { foreach ($tags as $tag) { $this->AddUrl(get_tag_link($tag->term_id), 0, $this->GetOption("cf_tags"), $this->GetOption("pr_tags")); } } if ($debug) { $this->AddElement(new GoogleSitemapGeneratorDebugEntry("Debug: End Tags")); } } //Add custom taxonomy pages if ($this->GetOption("in_tax") && $this->IsTaxonomySupported()) { if ($debug) { $this->AddElement(new GoogleSitemapGeneratorDebugEntry("Debug: Start custom taxonomies")); } $enabledTaxonomies = $this->GetOption("in_tax"); $taxList = array(); foreach ($enabledTaxonomies as $taxName) { $taxonomy = get_taxonomy($taxName); if ($taxonomy) { $taxList[] = $wpdb->escape($taxonomy->name); } } if (count($taxList) > 0) { //We're selecting all term information (t.*) plus some additional fields //like the last mod date and the taxonomy name, so WP doesnt need to make //additional queries to build the permalink structure. //This does NOT work for categories and tags yet, because WP uses get_category_link //and get_tag_link internally and that would cause one additional query per term! $sql = "\n\t\t\t\t\tSELECT\n\t\t\t\t\t\tt.*,\n\t\t\t\t\t\ttt.taxonomy AS _taxonomy,\n\t\t\t\t\t\tUNIX_TIMESTAMP(MAX(post_date_gmt)) as _mod_date\n\t\t\t\t\tFROM\n\t\t\t\t\t\t{$wpdb->posts} p ,\n\t\t\t\t\t\t{$wpdb->term_relationships} r,\n\t\t\t\t\t\t{$wpdb->terms} t,\n\t\t\t\t\t\t{$wpdb->term_taxonomy} tt\n\t\t\t\t\tWHERE\n\t\t\t\t\t\tp.ID = r.object_id\n\t\t\t\t\t\tAND p.post_status = 'publish'\n\t\t\t\t\t\tAND p.post_type = 'post'\n\t\t\t\t\t\tAND p.post_password = ''\n\t\t\t\t\t\tAND r.term_taxonomy_id = t.term_id\n\t\t\t\t\t\tAND t.term_id = tt.term_id\n\t\t\t\t\t\tAND tt.count > 0\n\t\t\t\t\t\tAND tt.taxonomy IN ('" . implode("','", $taxList) . "')\n\t\t\t\t\tGROUP BY\n\t\t\t\t\t\tt.term_id"; $termInfo = $wpdb->get_results($sql); foreach ($termInfo as $term) { $this->AddUrl(get_term_link($term, $term->_taxonomy), $term->_mod_date, $this->GetOption("cf_tags"), $this->GetOption("pr_tags")); } } if ($debug) { $this->AddElement(new GoogleSitemapGeneratorDebugEntry("Debug: End custom taxonomies")); } } //Add the custom pages if ($debug) { $this->AddElement(new GoogleSitemapGeneratorDebugEntry("Debug: Start Custom Pages")); } if ($this->_pages && is_array($this->_pages) && count($this->_pages) > 0) { //#type $page GoogleSitemapGeneratorPage foreach ($this->_pages as $page) { $this->AddUrl($page->GetUrl(), $page->getLastMod(), $page->getChangeFreq(), $page->getPriority()); } } if ($debug) { $this->AddElement(new GoogleSitemapGeneratorDebugEntry("Debug: End Custom Pages")); } if ($debug) { $this->AddElement(new GoogleSitemapGeneratorDebugEntry("Debug: Start additional URLs")); } do_action('sm_buildmap'); if ($debug) { $this->AddElement(new GoogleSitemapGeneratorDebugEntry("Debug: End additional URLs")); } $this->AddElement(new GoogleSitemapGeneratorXmlEntry("</urlset>")); $pingUrl = ''; if ($this->GetOption("b_xml")) { if ($this->_fileHandle && fclose($this->_fileHandle)) { $this->_fileHandle = null; $status->EndXml(true); $pingUrl = $this->GetXmlUrl(); } else { $status->EndXml(false, "Could not close the sitemap file."); } } if ($this->IsGzipEnabled()) { if ($this->_fileZipHandle && fclose($this->_fileZipHandle)) { $this->_fileZipHandle = null; $status->EndZip(true); $pingUrl = $this->GetZipUrl(); } else { $status->EndZip(false, "Could not close the zipped sitemap file"); } } //Ping Google if ($this->GetOption("b_ping") && !empty($pingUrl)) { $sPingUrl = "http://www.google.com/webmasters/sitemaps/ping?sitemap=" . urlencode($pingUrl); $status->StartGooglePing($sPingUrl); $pingres = $this->RemoteOpen($sPingUrl); if ($pingres == NULL || $pingres === false) { $status->EndGooglePing(false, $this->_lastError); trigger_error("Failed to ping Google: " . htmlspecialchars(strip_tags($pingres)), E_USER_NOTICE); } else { $status->EndGooglePing(true); } } //Ping Ask.com if ($this->GetOption("b_pingask") && !empty($pingUrl)) { $sPingUrl = "http://submissions.ask.com/ping?sitemap=" . urlencode($pingUrl); $status->StartAskPing($sPingUrl); $pingres = $this->RemoteOpen($sPingUrl); if ($pingres == NULL || $pingres === false || strpos($pingres, "successfully received and added") === false) { //Ask.com returns 200 OK even if there was an error, so we need to check the content. $status->EndAskPing(false, $this->_lastError); trigger_error("Failed to ping Ask.com: " . htmlspecialchars(strip_tags($pingres)), E_USER_NOTICE); } else { $status->EndAskPing(true); } } //Ping YAHOO if ($this->GetOption("b_pingyahoo") === true && $this->GetOption("b_yahookey") != "" && !empty($pingUrl)) { $sPingUrl = "http://search.yahooapis.com/SiteExplorerService/V1/updateNotification?appid=" . $this->GetOption("b_yahookey") . "&url=" . urlencode($pingUrl); $status->StartYahooPing($sPingUrl); $pingres = $this->RemoteOpen($sPingUrl); if ($pingres == NULL || $pingres === false || strpos(strtolower($pingres), "success") === false) { trigger_error("Failed to ping YAHOO: " . htmlspecialchars(strip_tags($pingres)), E_USER_NOTICE); $status->EndYahooPing(false, $this->_lastError); } else { $status->EndYahooPing(true); } } //Ping Bing if ($this->GetOption("b_pingmsn") && !empty($pingUrl)) { $sPingUrl = "http://www.bing.com/webmaster/ping.aspx?siteMap=" . urlencode($pingUrl); $status->StartMsnPing($sPingUrl); $pingres = $this->RemoteOpen($sPingUrl); if ($pingres == NULL || $pingres === false || strpos($pingres, "Thanks for submitting your sitemap") === false) { trigger_error("Failed to ping Bing: " . htmlspecialchars(strip_tags($pingres)), E_USER_NOTICE); $status->EndMsnPing(false, $this->_lastError); } else { $status->EndMsnPing(true); } } $status->End(); $this->_isActive = false; //done... return $status; }
exit; } require_once WP_PLUGIN_DIR . '/subscribe-to-comments-reloaded/classes/helper.class.php'; $helper = new subscribeToCommentsHelper(); ob_start(); if (!empty($email)) { global $wp_subscribe_reloaded; // Send management link $from_name = stripslashes(get_option('subscribe_reloaded_from_name', 'admin')); $from_email = get_option('subscribe_reloaded_from_email', get_bloginfo('admin_email')); $subject = html_entity_decode(stripslashes(get_option('subscribe_reloaded_management_subject', 'Manage your subscriptions on [blog_name]')), ENT_COMPAT, 'UTF-8'); $message = html_entity_decode(stripslashes(get_option('subscribe_reloaded_management_content', '')), ENT_COMPAT, 'UTF-8'); $manager_link = get_bloginfo('url') . get_option('subscribe_reloaded_manager_page', '/comment-subscriptions/'); $one_click_unsubscribe_link = $manager_link; if (function_exists('qtrans_convertURL')) { $manager_link = qtrans_convertURL($manager_link); } $clean_email = $wp_subscribe_reloaded->stcr->utils->clean_email($email); $subscriber_salt = $wp_subscribe_reloaded->stcr->utils->generate_temp_key($clean_email); $headers = "MIME-Version: 1.0\n"; $headers .= "From: {$from_name} <{$from_email}>\n"; $content_type = get_option('subscribe_reloaded_enable_html_emails', 'no') == 'yes' ? 'text/html' : 'text/plain'; $headers .= "Content-Type: {$content_type}; charset=" . get_bloginfo('charset'); $manager_link .= strpos($manager_link, '?') !== false ? '&' : '?'; $manager_link .= "sre=" . $wp_subscribe_reloaded->stcr->utils->get_subscriber_key($clean_email) . "&srk={$subscriber_salt}"; $one_click_unsubscribe_link .= strpos($one_click_unsubscribe_link, '?') !== false ? '&' : '?'; $one_click_unsubscribe_link .= (strpos($one_click_unsubscribe_link, '?') !== false ? '&' : '?') . "sre=" . $this->utils->get_subscriber_key($clean_email) . "&srk={$subscriber_salt}" . "&sra=u" . "&srp="; // Replace tags with their actual values $subject = str_replace('[blog_name]', get_bloginfo('name'), $subject); $message = str_replace('[blog_name]', get_bloginfo('name'), $message); $page_message = str_replace('[blog_name]', get_bloginfo('name'), $message);
static function get_form_action_url() { // returns the URL for the WP page the form was on if (function_exists('qtrans_convertURL')) { // compatible with qtranslate plugin // In case of multi-lingual pages, the /de/ /en/ language url is used. $form_action_url = qtrans_convertURL(strip_tags($_SERVER['REQUEST_URI'])); } else { $form_action_url = 'http://' . strip_tags($_SERVER['HTTP_HOST']) . strip_tags($_SERVER['REQUEST_URI']); } // set the type of request (SSL or not) if (is_ssl()) { $form_action_url = preg_replace('|http://|', 'https://', $form_action_url); } //filter hook for form action URL return apply_filters('si_contact_form_action_url', $form_action_url, self::$form_id_num); }
/** * This function to display featured posts content * * @get the data value from theme options * @displays on the index * * @useage Featured Image, Title and Excerpt of Post * * @uses set_transient * * @since Catch Base 1.0v */ function catchbase_image_content($options) { $quantity = $options['featured_content_number']; $more_link_text = $options['excerpt_more_text']; $show_content = isset($options['featured_content_show']) ? $options['featured_content_show'] : 'excerpt'; $catchbase_image_content = ''; for ($i = 1; $i <= $quantity; $i++) { if (!empty($options['featured_content_target_' . $i])) { $target = '_blank'; } else { $target = '_self'; } //Checking Link if (!empty($options['featured_content_link_' . $i])) { //support qTranslate plugin if (function_exists('qtrans_convertURL')) { $link = qtrans_convertURL($options['featured_content_link_' . $i]); } else { $link = esc_url($options['featured_content_link_' . $i]); } } else { $link = '#'; } //Checking Title if (!empty($options['featured_content_title_' . $i])) { $title = esc_attr($options['featured_content_title_' . $i]); } else { $title = ''; } //Checking Content if (!empty($options['featured_content_content_' . $i])) { $content = $options['featured_content_content_' . $i]; } else { $content = ''; } $catchbase_image_content .= ' <article id="featured-post-' . $i . '" class="post hentry featured-image-content">'; if (!empty($options['featured_content_image_' . $i])) { $catchbase_image_content .= ' <figure class="featured-homepage-image"> <a title="' . $title . '" href="' . $link . '" target="' . $target . '"> <img src="' . $options['featured_content_image_' . $i] . '" class="wp-post-image" alt="' . $title . '" title="' . $title . '"> </a> </figure>'; } if ($title != '' || $content != '') { $catchbase_image_content .= ' <div class="entry-container">'; if ($title != '') { $catchbase_image_content .= ' <header class="entry-header"> <h1 class="entry-title"> <a href="' . $link . '" rel="bookmark" target="' . $target . '">' . $title . '</a> </h1> </header>'; } if ('hide-content' != $show_content) { if ('' != $content) { $catchbase_image_content .= ' <div class="entry-content"><p> ' . $content . ' </p></div>'; } } $catchbase_image_content .= ' </div><!-- .entry-container -->'; } $catchbase_image_content .= ' </article><!-- .featured-post-' . $i . ' -->'; } return $catchbase_image_content; }
function qtrans_generateLanguageSelectCode($style = '', $id = '') { global $q_config; if ($style == '') { $style = 'text'; } if (is_bool($style) && $style) { $style = 'image'; } if (is_404()) { $url = get_option('home'); } else { $url = ''; } if ($id == '') { $id = 'qtranslate'; } $id .= '-chooser'; switch ($style) { case 'image': case 'text': case 'dropdown': echo '<ul class="qtrans_language_chooser" id="' . $id . '">'; foreach (qtrans_getSortedLanguages() as $language) { $classes = array('lang-' . $language); if ($language == $q_config['language']) { $classes[] = 'active'; } echo '<li class="' . implode(' ', $classes) . '"><a href="' . qtrans_convertURL($url, $language) . '"'; // set hreflang echo ' hreflang="' . $language . '" title="' . $q_config['language_name'][$language] . '"'; if ($style == 'image') { echo ' class="qtrans_flag qtrans_flag_' . $language . '"'; } echo '><span'; if ($style == 'image') { echo ' style="display:none"'; } echo '>' . $q_config['language_name'][$language] . '</span></a></li>'; } echo "</ul>"; if ($style == 'dropdown') { echo "<script type=\"text/javascript\">\n// <![CDATA[\r\n"; echo "var lc = document.getElementById('" . $id . "');\n"; echo "var s = document.createElement('select');\n"; echo "s.id = 'qtrans_select_" . $id . "';\n"; echo "lc.parentNode.insertBefore(s,lc);"; // create dropdown fields for each language foreach (qtrans_getSortedLanguages() as $language) { echo qtrans_insertDropDownElement($language, qtrans_convertURL($url, $language), $id); } // hide html language chooser text echo "s.onchange = function() { document.location.href = this.value;}\n"; echo "lc.style.display='none';\n"; echo "// ]]>\n</script>\n"; } break; case 'both': echo '<ul class="qtrans_language_chooser" id="' . $id . '">'; foreach (qtrans_getSortedLanguages() as $language) { echo '<li'; if ($language == $q_config['language']) { echo ' class="active"'; } echo '><a href="' . qtrans_convertURL($url, $language) . '"'; echo ' class="qtrans_flag_' . $language . ' qtrans_flag_and_text" title="' . $q_config['language_name'][$language] . '"'; echo '><span>' . $q_config['language_name'][$language] . '</span></a></li>'; } echo "</ul><div class=\"qtrans_widget_end\"></div>"; break; } }
function afg_display_gallery($atts) { global $size_heading_map, $afg_text_color_map, $pf; if (!get_option('afg_pagination')) { update_option('afg_pagination', 'on'); } extract(shortcode_atts(array('id' => '0'), $atts)); $cur_page = 1; $cur_page_url = afg_get_cur_url(); preg_match("/afg{$id}_page_id=(?P<page_id>\\d+)/", $cur_page_url, $matches); if ($matches) { $cur_page = $matches['page_id']; $match_pos = strpos($cur_page_url, "afg{$id}_page_id={$cur_page}") - 1; $cur_page_url = substr($cur_page_url, 0, $match_pos); if (function_exists('qtrans_convertURL')) { $cur_page_url = qtrans_convertURL($cur_page_url); } } if (strpos($cur_page_url, '?') === false) { $url_separator = '?'; } else { $url_separator = '&'; } $galleries = get_option('afg_galleries'); if (!isset($galleries) || array_key_exists($id, $galleries) == false) { return afg_error("Gallery ID {$id} has been either deleted or not configured."); } $gallery = $galleries[$id]; $api_key = get_option('afg_api_key'); $user_id = get_option('afg_user_id'); $disable_slideshow = get_afg_option($gallery, 'slideshow_option') == 'disable'; $slideshow_option = get_afg_option($gallery, 'slideshow_option'); $per_page = get_afg_option($gallery, 'per_page'); $sort_order = get_afg_option($gallery, 'sort_order'); $photo_size = get_afg_option($gallery, 'photo_size'); $photo_title = get_afg_option($gallery, 'captions'); $photo_descr = get_afg_option($gallery, 'descr'); $bg_color = get_afg_option($gallery, 'bg_color'); $columns = get_afg_option($gallery, 'columns'); $credit_note = get_afg_option($gallery, 'credit_note'); $gallery_width = get_afg_option($gallery, 'width'); $pagination = get_afg_option($gallery, 'pagination'); $cache_refresh_interval = get_afg_option($gallery, 'cache_refresh_interval'); if ($photo_size == 'custom') { $custom_size = get_afg_option($gallery, 'custom_size'); $custom_size_square = get_afg_option($gallery, 'custom_size_square'); if ($custom_size <= 70) { $photo_size = '_s'; } else { if ($custom_size <= 90) { $photo_size = '_t'; } else { if ($custom_size <= 220) { $photo_size = '_m'; } else { if ($custom_size <= 500) { $photo_size = 'NULL'; } } } } } else { $custom_size = 0; $custom_size_square = 'false'; } $photoset_id = NULL; $gallery_id = NULL; $group_id = NULL; $tags = NULL; $popular = false; if (!isset($gallery['photo_source'])) { $gallery['photo_source'] = 'photostream'; } if ($gallery['photo_source'] == 'photoset') { $photoset_id = $gallery['photoset_id']; } else { if ($gallery['photo_source'] == 'gallery') { $gallery_id = $gallery['gallery_id']; } else { if ($gallery['photo_source'] == 'group') { $group_id = $gallery['group_id']; } else { if ($gallery['photo_source'] == 'tags') { $tags = $gallery['tags']; } else { if ($gallery['photo_source'] == 'popular') { $popular = true; } } } } } $extras = 'url_l, description, date_upload, date_taken, owner_name'; if (!DEBUG) { $photos = get_transient('afg_id_' . $id); } if ($photos === false) { $photos = array(); if (isset($photoset_id) && $photoset_id) { $rsp_obj = $pf->photosets_getInfo($photoset_id); if ($pf->error_code) { return afg_error($pf->error_msg); } $total_photos = $rsp_obj['photos']; } else { if (isset($gallery_id) && $gallery_id) { $rsp_obj = $pf->galleries_getInfo($gallery_id); if ($pf->error_code) { return afg_error($pf->error_msg); } $total_photos = $rsp_obj['gallery']['count_photos']['_content']; } else { if (isset($group_id) && $group_id) { $rsp_obj = $pf->groups_pools_getPhotos($group_id, NULL, NULL, NULL, NULL, 1, 1); if ($pf->error_code) { return afg_error($pf->error_msg); } $total_photos = $rsp_obj['photos']['total']; if ($total_photos > 500) { $total_photos = 500; } } else { if (isset($tags) && $tags) { $rsp_obj = $pf->photos_search(array('user_id' => $user_id, 'tags' => $tags, 'extras' => $extras, 'per_page' => 1)); if ($pf->error_code) { return afg_error($pf->error_msg); } $total_photos = $rsp_obj['photos']['total']; } else { if (isset($popular) && $popular) { $rsp_obj = $pf->photos_search(array('user_id' => $user_id, 'sort' => 'interestingness-desc', 'extras' => $extras, 'per_page' => 1)); if ($pf->error_code) { return afg_error($pf->error_msg); } $total_photos = $rsp_obj['photos']['total']; } else { $rsp_obj = $pf->people_getInfo($user_id); if ($pf->error_code) { return afg_error($pf->error_msg); } $total_photos = $rsp_obj['photos']['count']['_content']; } } } } } for ($i = 1; $i < $total_photos / 500 + 1; $i++) { if ($photoset_id) { $flickr_api = 'photoset'; $rsp_obj_total = $pf->photosets_getPhotos($photoset_id, $extras, NULL, 500, $i); if ($pf->error_code) { return afg_error($pf->error_msg); } } else { if ($gallery_id) { $flickr_api = 'photos'; $rsp_obj_total = $pf->galleries_getPhotos($gallery_id, $extras, 500, $i); if ($pf->error_code) { return afg_error($pf->error_msg); } } else { if ($group_id) { $flickr_api = 'photos'; $rsp_obj_total = $pf->groups_pools_getPhotos($group_id, NULL, NULL, NULL, $extras, 500, $i); if ($pf->error_code) { return afg_error($pf->error_msg); } } else { if ($tags) { $flickr_api = 'photos'; $rsp_obj_total = $pf->photos_search(array('user_id' => $user_id, 'tags' => $tags, 'extras' => $extras, 'per_page' => 500, 'page' => $i)); if ($pf->error_code) { return afg_error($pf->error_msg); } } else { if ($popular) { $flickr_api = 'photos'; $rsp_obj_total = $pf->photos_search(array('user_id' => $user_id, 'sort' => 'interestingness-desc', 'extras' => $extras, 'per_page' => 500, 'page' => $i)); if ($pf->error_code) { return afg_error($pf->error_msg); } } else { $flickr_api = 'photos'; if (get_option('afg_flickr_token')) { $rsp_obj_total = $pf->people_getPhotos($user_id, array('extras' => $extras, 'per_page' => 500, 'page' => $i)); } else { $rsp_obj_total = $pf->people_getPublicPhotos($user_id, NULL, $extras, 500, $i); } if ($pf->error_code) { return afg_error($pf->error_msg); } } } } } } $photos = array_merge($photos, $rsp_obj_total[$flickr_api]['photo']); } if (!DEBUG) { set_transient('afg_id_' . $id, $photos, afg_get_cache_refresh_interval_secs($cache_refresh_interval)); } } else { $total_photos = count($photos); } if ($total_photos % $per_page == 0) { $total_pages = (int) ($total_photos / $per_page); } else { $total_pages = (int) ($total_photos / $per_page) + 1; } if ($gallery_width == 'auto') { $gallery_width = 100; } $text_color = isset($afg_text_color_map[$bg_color]) ? $afg_text_color_map[$bg_color] : ''; $disp_gallery .= "<div class='afg-gallery' id='afg-{$id}'>"; if ($slideshow_option == 'highslide') { $photo_count = 1; } if (!$popular && $sort_order != 'flickr') { if ($sort_order == 'random') { shuffle($photos); } else { usort($photos, $sort_order); } } if ($disable_slideshow) { $class = ''; $rel = ''; $click_event = ''; } else { if ($slideshow_option == 'colorbox') { $class = "class='afgcolorbox'"; $rel = "rel='example4{$id}'"; $click_event = ""; } else { if ($slideshow_option == 'highslide') { $class = "class='highslide'"; $rel = ""; $click_event = "onclick='return hs.expand(this, {slideshowGroup: {$id} })'"; } else { if ($slideshow_option == 'flickr') { $class = ""; $rel = ""; $click_event = "target='_blank'"; } } } } if ($photo_size == '_s') { $photo_width = "width='75'"; $photo_height = "height='75'"; } else { $photo_width = ''; $photo_height = ''; } foreach ($photos as $pid => $photo) { $p_title = esc_attr($photo['title']); $p_description = esc_attr($photo['description']['_content']); $p_description = preg_replace("/\n/", "<br />", $p_description); $photo_url = afg_get_photo_url($photo['farm'], $photo['server'], $photo['id'], $photo['secret'], $photo_size); if ($slideshow_option != 'none') { if (isset($photo['url_l']) ? $photo['url_l'] : '') { $photo_page_url = $photo['url_l']; } else { $photo_page_url = afg_get_photo_url($photo['farm'], $photo['server'], $photo['id'], $photo['secret'], '_z'); } if ($photoset_id) { $photo['owner'] = $user_id; } $photo_title_text = $p_title; if ($slideshow_option == 'highslide' && $p_description) { $photo_title_text .= '<br /><span>' . $p_description . '</span>'; } $photo_title_text .= ' • <a href="https://www.flickr.com/photos/' . $photo['owner'] . '/' . $photo['id'] . '/" target="_blank">View on Flickr</a>'; $photo_title_text = esc_attr($photo_title_text); if ($slideshow_option == 'flickr') { $photo_page_url = "https://www.flickr.com/photos/" . $photo['owner'] . "/" . $photo['id']; } } if ($photo_count <= $per_page * $cur_page && $photo_count > $per_page * ($cur_page - 1)) { $pid_len = strlen($photo['id']); if ($slideshow_option != 'none') { $disp_gallery .= "<a {$class} {$rel} {$click_event} href='{$photo_page_url}' title='{$photo['title']}'>"; } if ($custom_size) { $timthumb_script = BASE_URL . "/afg_img_rsz.php?src="; if ($photo['width_l'] > $photo['height_l']) { $timthumb_params = "&q=100&w={$custom_size}"; if ($custom_size_square == 'true') { $timthumb_params .= "&h={$custom_size}"; } } else { $timthumb_params = "&q=100&h={$custom_size}"; if ($custom_size_square == 'true') { $timthumb_params .= "&w={$custom_size}"; } } } else { $timthumb_script = ""; $timthumb_params = ""; } $disp_gallery .= "<img title='{$photo['title']}' src='{$timthumb_script}{$photo_url}{$timthumb_params}' alt='{$photo_title_text}'/>"; if ($slideshow_option != 'none') { $disp_gallery .= "</a>"; } if ($size_heading_map[$photo_size] && $photo_title == 'on') { if ($group_id || $gallery_id) { $owner_title = "- by <a href='https://www.flickr.com/photos/{$photo['owner']}/' target='_blank'>{$photo['ownername']}</a>"; } else { $owner_title = ''; } $disp_gallery .= "<div class='afg-title'>{$p_title} {$owner_title}</div>"; } if ($photo_descr == 'on' && $photo_size != '_s' && $photo_size != '_t') { $disp_gallery .= "<div class='afg-description'>" . $photo['description']['_content'] . "</div>"; } } else { if ($pagination == 'on' && $slideshow_option != 'none') { if ($slideshow_option == 'highslide') { $photo_url = afg_get_photo_url($photo['farm'], $photo['server'], $photo['id'], $photo['secret'], '_s'); } else { $photo_url = ''; } if ($slideshow_option == 'highslide') { $photo_src_text = "src='{$photo_url}'"; } else { $photo_src_text = ""; } $disp_gallery .= "<a style='display:none' {$class} {$rel} {$click_event} href='{$photo_page_url}'" . " title='{$photo['title']}'>" . " <img class='afg-img' alt='{$photo_title_text}' {$photo_src_text} width='75' height='75'></a> "; } } $photo_count += 1; } // Pagination if ($pagination == 'on' && $total_pages > 1) { $disp_gallery .= "<div class='afg-pagination'>"; if ($cur_page == 1) { $disp_gallery .= "<span>« prev </span>"; $disp_gallery .= "<span class='afg-cur-page'> 1 </span>"; } else { $prev_page = $cur_page - 1; $disp_gallery .= "<a href='{$cur_page_url}{$url_separator}afg{$id}_page_id={$prev_page}#afg-{$id}' title='Prev Page'> « prev </a> "; $disp_gallery .= "<a href='{$cur_page_url}{$url_separator}afg{$id}_page_id=1#afg-{$id}' title='Page 1'> 1 </a> "; } if ($cur_page - 2 > 2) { $start_page = $cur_page - 2; $end_page = $cur_page + 2; $disp_gallery .= " ... "; } else { $start_page = 2; $end_page = 6; } for ($count = $start_page; $count <= $end_page; $count += 1) { if ($count > $total_pages) { break; } if ($cur_page == $count) { $disp_gallery .= "<span>{$count}</span>"; } else { $disp_gallery .= "<a href='{$cur_page_url}{$url_separator}afg{$id}_page_id={$count}#afg-{$id}' title='Page {$count}'> {$count} </a> "; } } if ($count < $total_pages) { $disp_gallery .= " ... "; } if ($count <= $total_pages) { $disp_gallery .= "<a href='{$cur_page_url}{$url_separator}afg{$id}_page_id={$total_pages}#afg-{$id}' title='Page {$total_pages}'> {$total_pages} </a>"; } if ($cur_page == $total_pages) { $disp_gallery .= "<span>next »</span>"; } else { $next_page = $cur_page + 1; $disp_gallery .= "<a class='afg-page' href='{$cur_page_url}{$url_separator}afg{$id}_page_id={$next_page}#afg-{$id}' title='Next Page'> next » </a>"; } $disp_gallery .= "<br />({$total_photos} Photos)"; $disp_gallery .= "</div>"; } if ($credit_note == 'on') { $disp_gallery .= "<div class='afg-credit'>Powered by " . "<a href='http://www.ronakg.com/projects/awesome-flickr-gallery-wordpress-plugin'" . "title='Awesome Flickr Gallery by Ronak Gandhi'/>AFG</a>"; $disp_gallery .= "</div>"; } $disp_gallery .= "</div>"; return $disp_gallery; }