public function filterLang($text, $lang = NULL) { if (!empty($lang) && function_exists('qtrans_use')) { return qtrans_use($lang, $text); } if (function_exists('qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage')) { return qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage($text); } return $text; }
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); }
function qtrans_showAllSeperated($text) { if (empty($text)) { return $text; } global $q_config; $result = ""; foreach (qtrans_getSortedLanguages() as $language) { $result .= $q_config['language_name'][$language] . ":\n" . qtrans_use($language, $text) . "\n\n"; } return $result; }
function eme_translate($value, $lang = '') { //if (empty($lang)) // $lang=eme_detect_lang(); if (function_exists('qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage') && function_exists('qtrans_use')) { if (empty($lang)) { return qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage($value); } else { return qtrans_use($lang, $value); } } elseif (function_exists('ppqtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage') && function_exists('ppqtrans_use')) { if (empty($lang)) { return ppqtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage($value); } else { return ppqtrans_use($lang, $value); } } elseif (function_exists('qtranxf_useCurrentLanguageIfNotFoundUseDefaultLanguage') && function_exists('qtranxf_use')) { if (empty($lang)) { return qtranxf_useCurrentLanguageIfNotFoundUseDefaultLanguage($value); } else { return qtranxf_use($lang, $value); } } elseif (function_exists('pll_translate_string') && function_exists('pll__')) { if (empty($lang)) { return pll__($value); } else { return pll_translate_string($value, $lang); } } else { return $value; } }
function wppa_qtrans($output, $lang = '') { if ($lang == '') { $output = __($output); // if ( function_exists( 'qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage' ) ) { // $output = qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage( $output ); // } } else { if (function_exists('qtrans_use')) { $output = qtrans_use($lang, $output, false); } } return $output; }
the_post(); ?> <div <?php post_class(); ?> id="post-<?php the_ID(); ?> "> <h1 class="content-title"> <span style="font-family: PTSansBold;"> <?php if ($region != "de") { $title = translate_title(qtrans_use('en', get_the_title(), false)); } else { $title = get_the_title(); } $s = explode("(", $title); $short_title1 = trim($s[0]); $short_title2 = "(" . trim($s[1]); //check for empty part2 if ($short_title2 == "(") { $short_title2 = ""; } echo $short_title1; ?> </span><?php echo $short_title2; ?>
function wordbooker_translate($text) { if (function_exists('qtrans_use')) { global $q_config; $text = qtrans_use($q_config['language'], $text); } return $text; }
"> <?php echo str_repeat('—', $post->qtm_depth) . ' ' . qtrans_use($_lang, $post->post_title); ?> </a> </td> <?php foreach ($qtransMETA->field_names as $field => $field_label) { echo '<td>'; switch ($_view) { case 'flags': foreach (qtrans_split(get_post_meta($post->ID, "qtrans_meta:{$field}", true)) as $lang => $f) { $class = $f ? 'present' : 'not-present'; $title = $f ? $f : '(empty)'; echo '<img src="' . WP_PLUGIN_URL . '/qtranslate/flags/' . $q_config['flag'][$lang] . '" alt="' . strtoupper($lang) . '" class="' . $class . '" title="' . $title . '" /> '; } break; case 'text': echo qtrans_use($_lang, get_post_meta($post->ID, "qtrans_meta:{$field}", true)); break; } echo '</td>'; } echo '</tr>'; } ?> </table> </div>
function qtrans_useDefaultLanguage($content) { global $q_config; return qtrans_use($q_config['default_language'], $content, false); }
/** * Get translated text * * @access private * @param string $origText Original text * @param string $locale Language locale * @return string Translated text */ private function getTranslatedText($origText, $locale) { // prepare languages list $this->prepareLanguages(); // initialize $text = $origText; // translate text if (isset($this->languages[$locale])) { $text = qtrans_use($this->languages[$locale], $origText, false); } // exit return $text; }
function get_category_links_us() { //echo "Testt"; global $q_config; $oldlang = $q_config['language']; $q_config['language'] = 'us'; //substr('en_EN', 0, 2); //print_r(get_the_category()); $counter = 0; $i = 0; foreach (get_the_category() as $category) { $counter++; $CID = $category->cat_ID; //$option .= "CID: $CID"; $childlist = get_category_children($CID); //print "CL: $childlist<br>"; if ($childlist !== "" or $counter == 111) { $categories = get_categories("child_of={$CID}"); //.$this_category->cat_ID); $categories_parent = get_categories("parent=1&child_of={$CID}"); //.$this_category->cat_ID); //$categories = wp_list_categories('child_of='.$this_category->cat_ID); foreach ($categories as $cat) { //remove_filter('get_category','qtrans_useTermLib',0); //use translated category names global $lang; if ($lang == "de") { $category_id = get_cat_ID($cat->cat_name); $cat_link = get_category_link($category->term_id); $cat_link2 = get_category_link($category_id); } else { $category_id = qtrans_use('us', get_cat_ID($cat->cat_name)); $cat_link = qtrans_use('us', get_category_link($category->term_id)); $cat_link2 = qtrans_convertURL(qtrans_use($oldlang, get_category_link($category_id))); $q_config['language'] = $oldlang; //substr('en_EN', 0, 2); $cat_link2 = qtrans_convertURL($cat_link2); $q_config['language'] = 'us'; //substr('en_EN', 0, 2); } //$category_id = get_cat_ID( $cat->cat_name); //echo "<br>CID: ".$category_id; //echo "<br>Link: ".$cat_link; //echo "<br>Link2: ".$cat_link2; //$tcatname = qtrans_use('en', __($cat->cat_name) ,false); /* echo "<br>TID: ",$category->term_id; echo "<br>Link: ".get_category_link($category->term_id ); echo "<br>Link2:".get_category_link($category_id); echo "<br>Name: ".qtrans_use('us',$cat->cat_name); echo "<br>TransName: ".$tcatname; echo "<br>TransCID: ".qtrans_use('us',$category_id,true); echo "<br>Lang: ".qtrans_getLanguage(); */ //$locale = $new_locale; //echo "<br>Lang: ".$q_config['language']; //$q_config['language'] = 'xy'; //substr('en_EN', 0, 2); //$option .= "<br>"; //if (in_category($category_id) == true) $option .= '<span itemscope itemtype="http://data-vocabulary.org/Breadcrumb">'; //$option .= '<a href="/" class="icon-home icon-category" title="'.$txt_arch_home.'"></a> > '; //$option .= '<a href="'.get_category_link($category->term_id ).'" title="' . esc_attr( sprintf( __( "View all posts in %s" ), $category->name ) ) . '" itemprop="url">'; //if (in_category($category_id) == true) $option .= '<span itemprop="title">'; //7$option .= $category->cat_name; //if (in_category($category_id) == true) $option .= '</span>'; //$option .= '</a>';//.$seperator; //$option .= "</div>"; /* $option .= ' > '; if (in_category($category_id) == true) $option .= '<span itemprop="child" itemscope itemtype="http://data-vocabulary.org/Breadcrumb">'; $option .= '<a href="'.get_category_link($category_id ).'" itemprop="url">'; if (in_category($category_id) == true) $option .= '<span itemprop="title">'; $option .= $cat->cat_name; if (in_category($category_id) == true) $option .= '</span>'; $option .= ' ('.$cat->category_count.')</a>'; if (in_category($category_id) == true) $option .= "</span>"; if (in_category($category_id) == true) $option .= "</span>"; */ //print "I: $i, url:".$cat_link2."<br>"; $links[$i] = $cat_link2; $i++; } } } $q_config['language'] = $oldlang; //substr('en_EN', 0, 2); //echo "Links:<br>"; //print_r($links); return $links; }
function qs_quote() { global $q_config; $mode = 'full'; if (isset($_POST['mode'])) { $mode = $_POST['mode']; } if ($mode != 'price_only') { $mode = 'full'; } $service_id = $_POST['service_id']; $translate_from = $_POST['translate_from']; $translate_to = $_POST['translate_to']; $post =& get_post($_POST['post_id']); $post = qtrans_use($translate_from, $post); $post_title = $post->post_title; $post_content = $post->post_content; $post_excerpt = $post->post_excerpt; $request = array('order_service_id' => $service_id, 'order_title' => $post_title, 'order_text' => $post_content, 'order_excerpt' => $post_excerpt, 'order_source_language' => $translate_from, 'order_source_locale' => $q_config['locale'][$translate_from], 'order_target_language' => $translate_to, 'order_target_locale' => $q_config['locale'][$translate_to], 'order_confirm_url' => get_admin_url(null, 'edit.php?page=qtranslate_services&confirm=1&post=' . $_POST['post_id'] . '&source_language=' . $translate_from . '&target_language=' . $translate_to . '&service_id=' . $service_id), 'order_failure_url' => get_admin_url(null, 'edit.php?page=qtranslate_services&post=' . $_POST['post_id'] . '&source_language=' . $translate_from . '&target_language=' . $translate_to . '&service_id=' . $service_id)); $answer = qs_queryQS(QS_QUOTE, $request); $price = __('unavailable', 'qtranslate'); $currency = ''; $short = ''; if (isset($answer['price'])) { if ($answer['price'] == 0) { $price = __('free', 'qtranslate'); } else { if ($answer['price'] < 0) { $price = __('unavailable', 'qtranslate'); } else { $price = number_format_i18n($answer['price'], 2); $currency = $answer['currency']; } } $content = sprintf(__('<p>Price: %1$s %2$s</p>', 'qtranslate'), $currency, $price); $short = sprintf(__('~ %1$s %2$s', 'qtranslate'), $currency, $price); if (!empty($answer['paypalurl'])) { $content .= '<div class="qs_submit"><a href="' . $answer['paypalurl'] . '"><img src="https://fpdbs.paypal.com/dynamicimageweb?cmd=_dynamic-image&locale=' . $q_config['locale'][$q_config['language']] . '"></a></div>'; } else { $content .= '<div class="qs_submit"><a class="button-primary" onclick="sendorder();">' . __('Request Translation', 'qtranslate') . '</a></div>'; } } else { $content = '<p>' . __('An error occured!', 'qtranslate'); if (isset($answer['error'])) { $content .= '<br>' . $answer['message']; } $content .= '</p>'; } if ($mode == 'full') { echo "jQuery('#submitdiv .request').html('"; echo $content; echo "');"; } else { if ($mode == 'price_only') { echo "jQuery('.qsprice').html('"; echo $short; echo "');"; } } die; }
function knews_create_news($aj, $pend_posts, $news, $fp, $mobile, $mobile_news_id) { global $Knews_plugin, $knewsOptions, $wpdb; $news_mod = $news[0]->html_mailing; //Cut the newsletter into modules $news_mod = explode('<!--[start module]-->', $news_mod); $news_mod2 = array(); $first = true; foreach ($news_mod as $nm) { if ($first) { $first = false; $news_mod2[] = $nm; } else { $cut_nm = explode('<!--[end module]-->', $nm); $news_mod2[] = $cut_nm[0]; $news_mod2[] = $cut_nm[1]; } } $news_mod_map = array(); $news_mod_map_duplicated = array(); $total_posts = 0; foreach ($news_mod2 as $nm) { $found = true; $n = 1; while ($found) { $found = false; if (strpos($nm, '%the_title_' . $n . '%') !== false || strpos($nm, '%the_excerpt_' . $n . '%') !== false || strpos($nm, '%the_permalink_' . $n . '%') !== false || strpos($nm, '%the_content_' . $n . '%') !== false) { $found = true; $n++; } } $news_mod_map[] = $n - 1; $news_mod_map_duplicated[] = false; $total_posts = $total_posts + $n - 1; } /*for ($a=1; $a<10; $a++) { $news_mod = str_replace('%the_permalink_' . $a . '%', '%the_permalink%', $news_mod); $news_mod = str_replace('%the_title_' . $a . '%', '%the_title%', $news_mod); $news_mod = str_replace('%the_excerpt_' . $a . '%', '%the_excerpt%', $news_mod); $news_mod = str_replace('%the_content_' . $a . '%', '%the_content%', $news_mod); }*/ $s = 0; while ($total_posts < count($pend_posts) && $total_posts != 0) { if ($news_mod_map[$s] != 0 && !$news_mod_map_duplicated[$s]) { knews_debug('- enlarging the newsletter, have ' . $total_posts . ' and must have ' . count($pend_posts) . "\r\n"); array_splice($news_mod2, $s + 1, 0, array('</td></tr><tr class="droppable"><td>' . $news_mod2[$s])); array_splice($news_mod_map, $s + 1, 0, array($news_mod_map[$s])); array_splice($news_mod_map_duplicated, $s + 1, 0, array(true)); $total_posts = $total_posts + $news_mod_map[$s]; knews_debug('- module duplicated, news now can contain ' . $total_posts . " posts inside\r\n"); $s++; } $s++; if ($s >= count($news_mod_map)) { $s = 0; } } if ($total_posts >= count($pend_posts)) { $subject = $news[0]->subject; $most_recent = 0; foreach ($pend_posts as $pp) { global $post; $post = get_post($pp->ID); //qTranslate support $permalink = get_permalink(); if (KNEWS_MULTILANGUAGE && $knewsOptions['multilanguage_knews'] == 'qt' && function_exists('qtrans_convertURL')) { $post = qtrans_use($aj->lang, $post, false); $permalink = qtrans_convertURL($permalink, $aj->lang, true); } //End qT setup_postdata($post); $excerpt_length = apply_filters('excerpt_length', 55); $excerpt = (string) get_the_excerpt(); $content = (string) get_the_content(); $title = get_the_title(); knews_debug('- including post: ' . $title . "\r\n"); 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) . '...'; } /*$content = $pp->post_content; $excerpt = strip_shortcodes( $content ); if ($knewsOptions['apply_filters_on']=='1') $excerpt = apply_filters('the_content', $excerpt); $excerpt = knews_iterative_extract_code('<script', '</script>', $excerpt, true); $excerpt = knews_iterative_extract_code('<fb:like', '</fb:like>', $excerpt, true); $excerpt = str_replace(']]>', ']]>', $excerpt); $excerpt = strip_tags($excerpt); $excerpt_length = apply_filters('excerpt_length', 55); $words = explode(' ', $excerpt, $excerpt_length + 1); if (count($words) > $excerpt_length) { array_pop($words); //array_push($words, '[...]'); $excerpt = implode(' ', $words); } //$excerpt = nl2br($excerpt); if ($knewsOptions['apply_filters_on']=='1') $content = apply_filters('the_content', $content); */ //$title = $pp->post_title; //$permalink = get_permalink($pp->ID); $s = 0; while ($news_mod_map[$s] == 0 && $s < count($news_mod_map)) { $s++; } $n = 1; $found = false; while (!$found && $n < 20) { if (strpos($news_mod2[$s], '%the_title_' . $n . '%') !== false || strpos($news_mod2[$s], '%the_excerpt_' . $n . '%') !== false || strpos($news_mod2[$s], '%the_permalink_' . $n . '%') !== false) { $found = true; } else { $n++; } } if ($found) { $news_mod_map[$s]--; $news_mod2[$s] = str_replace('%the_permalink_' . $n . '%', $permalink, $news_mod2[$s]); $news_mod2[$s] = str_replace('%the_title_' . $n . '%', $title, $news_mod2[$s]); $news_mod2[$s] = str_replace('%the_excerpt_' . $n . '%', $excerpt, $news_mod2[$s]); $news_mod2[$s] = str_replace('%the_content_' . $n . '%', $content, $news_mod2[$s]); $subject = str_replace('%the_title_1%', $title, $subject); //pro $look_img = explode('<img', $news_mod2[$s]); $news_mod2[$s] = ''; foreach ($look_img as $look_one_img) { $short_look = explode('>', $look_one_img); if (strpos($short_look[0], 'the_feat_img_' . $n) !== false) { //Lets to replace the image $short_look[0] = str_replace(' ', '', $short_look[0]); $short_look[0] = str_replace("'", '"', $short_look[0]); $short_look[0] = strtolower($short_look[0]); $width = knews_cut_code('width="', '"', $short_look[0], true); $height = knews_cut_code('height="', '"', $short_look[0], true); if ($image = knews_automate_img($pp->ID, $width, $height)) { knews_debug('- image resized: ' . $image . "\r\n"); $old_src = knews_cut_code('src="', '"', $short_look[0], true); $look_one_img = str_ireplace($old_src, $image, $look_one_img); } else { knews_debug('- image resize failed (or not featured image found) into post: ' . $title . "\r\n"); } } if ($news_mod2[$s] != '') { $news_mod2[$s] .= '<img'; } $news_mod2[$s] .= $look_one_img; } //fi pro knews_debug('- included: ' . $title . "\r\n"); if ($most_recent == 0) { $most_recent = $Knews_plugin->sql2time($pp->post_modified); } if ($most_recent < $Knews_plugin->sql2time($pp->post_modified)) { $most_recent = $Knews_plugin->sql2time($pp->post_modified); } $query = "INSERT INTO " . KNEWS_AUTOMATED_POSTS . " (id_automated, id_post, when_scheduled, id_news) VALUES (" . $aj->id . ", " . $pp->ID . ", '" . $Knews_plugin->get_mysql_date() . "', " . "0)"; $result = $wpdb->query($query); } } if ($most_recent != 0) { $news_mod = ''; foreach ($news_mod2 as $nm) { $news_mod .= $nm; } $news_mod = str_replace('<span class="chooser"></span>', '', $news_mod); //Netejem exces for ($n = 1; $n < 10; $n++) { //$news_mod = str_replace('%the_permalink_' . $n . '%', '#', $news_mod); $news_mod = str_replace('%the_title_' . $n . '%', '', $news_mod); $news_mod = str_replace('%the_excerpt_' . $n . '%', '', $news_mod); $news_mod = str_replace('%the_content_' . $n . '%', '', $news_mod); $news_mod = knews_iterative_deleteTag('a', '%the_permalink_' . $n . '%', $news_mod); $news_mod = knews_iterative_deleteTag('img', 'the_feat_img_' . $n . '%', $news_mod); } knews_debug('- saving the created newsletter' . "\r\n"); $sql = "INSERT INTO " . KNEWS_NEWSLETTERS . "(name, subject, created, modified, template, html_mailing, html_head, html_modules, html_container, lang, automated, mobile, id_mobile, newstype) VALUES ('" . esc_sql($news[0]->name) . " (" . date('d/m/Y') . ")', '" . esc_sql($subject) . "', '" . $Knews_plugin->get_mysql_date() . "', '" . $Knews_plugin->get_mysql_date() . "','" . $news[0]->template . "','" . esc_sql($news_mod) . "','" . esc_sql($news[0]->html_head) . "','" . esc_sql($news[0]->html_modules) . "','" . esc_sql($news[0]->html_container) . "', '" . $news[0]->lang . "', 1, " . ($mobile ? '1' : '0') . ", " . $mobile_news_id . ", 'automated')"; $results = $wpdb->query($sql); $id_newsletter = $Knews_plugin->real_insert_id(); $query = "UPDATE " . KNEWS_AUTOMATED_POSTS . " SET id_news=" . $id_newsletter . " WHERE id_news=0"; $results = $wpdb->query($query); if ($aj->every_mode == 1) { $last_run = "'" . $Knews_plugin->get_mysql_date($most_recent) . "'"; } else { $last_run = "'" . $Knews_plugin->get_mysql_date() . "'"; } $query = "UPDATE " . KNEWS_AUTOMATED . " SET last_run=" . $last_run . ", run_yet=1 WHERE id=" . $aj->id . " "; $results = $wpdb->query($query); if ($mobile) { return $id_newsletter; } knews_debug('- scheduling the submit' . "\r\n"); $query = "SELECT DISTINCT(" . KNEWS_USERS . ".id) FROM " . KNEWS_USERS . ", " . KNEWS_USERS_PER_LISTS . " WHERE " . KNEWS_USERS . ".id=" . KNEWS_USERS_PER_LISTS . ".id_user AND " . KNEWS_USERS . ".state='2' AND " . KNEWS_USERS_PER_LISTS . ".id_list=" . $aj->target_id; $batch_opts = array('minute' => date("i"), 'hour' => date("H"), 'day' => date("d"), 'month' => date("m"), 'year' => date("Y"), 'paused' => $aj->auto == 1 ? 0 : 1, 'priority' => 4, 'strict_control' => '', 'emails_at_once' => $aj->emails_at_once, 'id_smtp' => $aj->id_smtp); require KNEWS_DIR . "/includes/submit_batch.php"; knews_debug('- all done' . "\r\n"); } } else { knews_debug('- the newsletter kept more posts of wich there to submit, wait for more' . "\r\n"); } }
public function writeExport($language, $permalink, $slug, $post = null, $qtranslate_slug, $idx = 0, $currentUri = '/', $pageFileName = 'default') { $plugin_dir = plugin_dir_path(__FILE__); if ($post == null) { return false; } if ($post->post_type == 'page') { // add 01. style sorting to pages $idx_str = str_pad($idx + 1, 2, '0', STR_PAD_LEFT); $addedUri = $idx_str . '.' . $this->_getLastPart($permalink) . '/'; } else { // all other types $addedUri = $this->_getLastPart($permalink) . '/'; } if (isset($post->pageFileName)) { $pageFileName = $post->pageFileName; } $language_str = $language ? '.' . $language : ''; $filename = $this->destination . '/' . $currentUri . $addedUri . $pageFileName . $language_str . '.md'; $dir = $this->destination . '/' . $currentUri . $addedUri; if (!is_dir($dir)) { wp_mkdir_p($dir); } else { // echo "addedUri: $addedUri \n"; } // already generated if (is_file($filename)) { return $addedUri; } echo "\n\n<hr><b>generate Page {$addedUri}</b>\n"; if ($language) { echo "\n\n<br>language: {$language}\n"; } echo "<br>permalink: {$permalink}\n"; echo "<br>page-id {$post->ID}\n"; if ($language) { $title = qtrans_use($language, $post->post_title, false); $content = $this->processContent(qtrans_use($language, $post->post_content, false)); } else { $title = get_the_title($post->ID); $content = $this->processContent($post->post_content); } $author_id = $post->post_author; echo "<br>title: {$title}\n"; echo "<br>slug: {$slug}\n"; echo "<br>author: "; echo the_author_meta('display_name', $author_id); echo get_the_author(); echo "\n"; echo "<br>category_list: "; echo strip_tags(get_the_category_list(', ', '', $post->ID)); echo "\n"; echo "<br>tag list: "; if (get_the_tags($post->ID)) { foreach (get_the_tags($post->ID) as $tag) { $t[] = $tag->name; } echo implode(', ', $t); } // todo: $post->post_status != 'publish' // include export template by type ob_start(); include $plugin_dir . '../templates/export/' . $post->post_type . '.md'; $content = ob_get_contents(); ob_end_clean(); file_put_contents($filename, $content); $GLOBALS['WP2GRAV_CNT']++; $cnt = WP2GRAV_EXPORT_BATCH_SIZE; if ($GLOBALS['WP2GRAV_CNT'] > $cnt) { echo "<hr>generated {$cnt} pages"; ?> <script type="text/javascript"> location.reload(); </script> <?php exit; } return $addedUri; }
/** * return all posts by post types * @param $posttypes list of post types in array or string with point dilimiter */ static function get_all_posts_by_posttypes($posttypes) { if (is_string($posttypes)) { $posttypes = preg_split('#[\\s,]+#', $posttypes); } //get all posts by post types $posts_result = array(); $posts_data = new WP_Query(array('post_type' => $posttypes, 'showposts' => -1)); $currentLang = ''; //if mqtranslate plugin actived while ($posts_data->have_posts()) { $posts_data->the_post(); if (function_exists('qtrans_use')) { if (!$currentLang) { $currentLang = qtrans_getLanguage(); } $title = qtrans_use($currentLang, get_the_title(), false); } else { $title = get_the_title(); } $posts_result[get_the_ID()] = $title; } return $posts_result; }
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>"; }
/** * Sanitize title as slug, if empty slug * * @param $post (object) the post object * @param $slug (string) the slug name * @param $lang (string) the language * @return the slug validated * * @since 1.0 */ public function validate_post_slug($slug, $post, $lang) { $post_title = trim(qtrans_use($lang, $_POST['post_title'])); $post_name = get_post_meta($post->ID, $this->get_meta_key($lang), true); if (!$post_name) { $post_name = $post->post_name; } $name = $post_title == '' || strlen($post_title) == 0 ? $post_name : $post_title; $slug = trim($slug); $slug = empty($slug) ? sanitize_title($name) : sanitize_title($slug); return htmlspecialchars($slug, ENT_QUOTES); }
/** * <[ Helper ]> * Getting an excerpt to use for the buttons * * @since 0.1 * @author ppfeufer * * @param string $var_sExcerpt * @param int $var_iMaxLength * @return string */ private function _get_post_excerpt($var_sExcerpt, $var_iMaxLength) { if (function_exists('strip_shortcodes')) { $var_sExcerpt = strip_shortcodes($var_sExcerpt); } // END if(function_exists('strip_shortcodes')) $var_sExcerpt = trim($var_sExcerpt); // Now lets strip any tags which dont have balanced ends // Need to put NGgallery tags in there - there are a lot of them and they are all different. $array_OpenTag = array('[simage', '[[CP', '[gallery', '[imagebrowser', '[slideshow', '[tags', '[albumtags', '[singlepic', '[album'); $array_CloseTag = array(']', ']]', ']', ']', ']', ']', ']', ']', ']'); foreach (array_keys($array_OpenTag) as $var_sKey) { if (preg_match_all('/' . preg_quote($array_OpenTag[$var_sKey]) . '(.*?)' . preg_quote($array_CloseTag[$var_sKey]) . '/i', $var_sExcerpt, $array_Matches)) { $var_sExcerpt = str_replace($array_Matches[0], "", $var_sExcerpt); } // END if(preg_match_all('/' . preg_quote($array_OpenTag[$var_sKey]) . '(.*?)' . preg_quote($array_CloseTag[$var_sKey]) . '/i', $var_sExcerpt, $array_Matches)) } // END foreach(array_keys($array_OpenTag) as $var_sKey) $var_sExcerpt = preg_replace('#(<wpg.*?>).*?(</wpg2>)#', '$1$2', $var_sExcerpt); // Support for qTrans if (function_exists('qtrans_use')) { global $q_config; $var_sExcerpt = qtrans_use($q_config['default_language'], $var_sExcerpt); } // END if(function_exists('qtrans_use')) $var_sExcerpt = strip_tags($var_sExcerpt); // Now lets strip off the youtube stuff. preg_match_all('#http://(www.youtube|youtube|[A-Za-z]{2}.youtube)\\.com/(watch\\?v=|w/\\?v=|\\?v=)([\\w-]+)(.*?)player_embedded#i', $var_sExcerpt, $array_Matches); $var_sExcerpt = str_replace($array_Matches[0], '', $var_sExcerpt); preg_match_all('#http://(www.youtube|youtube|[A-Za-z]{2}.youtube)\\.com/(watch\\?v=|w/\\?v=|\\?v=|embed/)([\\w-]+)(.*?)#i', $var_sExcerpt, $array_Matches); $var_sExcerpt = str_replace($array_Matches[0], '', $var_sExcerpt); if (strlen($var_sExcerpt) > $var_iMaxLength) { # If we've got multibyte support then we need to make sure we get the right length - Thanks to Kensuke Akai for the fix if (function_exists('mb_strimwidth')) { $var_sExcerpt = mb_strimwidth($var_sExcerpt, 0, $var_iMaxLength, ' ...'); } else { $var_sExcerpt = current(explode('SJA26666AJS', wordwrap($var_sExcerpt, $var_iMaxLength, 'SJA26666AJSÄ'))) . ' ...'; } // END if(function_exists('mb_strimwidth')) } // END if(strlen($var_sExcerpt) > $var_iMaxLength) return strip_tags($var_sExcerpt); }
function qs_service() { global $q_config, $qs_public_key, $qs_error_messages; if (!isset($_REQUEST['post'])) { echo '<script type="text/javascript">document.location="edit.php";</script>'; printf(__('To translate a post, please go to the <a href="%s">edit posts overview</a>.', 'qtranslate'), 'edit.php'); exit; } $post_id = intval($_REQUEST['post']); $translate_from = ''; if (isset($_REQUEST['source_language']) && qtrans_isEnabled($_REQUEST['source_language'])) { $translate_from = $_REQUEST['source_language']; } if (isset($_REQUEST['target_language']) && qtrans_isEnabled($_REQUEST['target_language'])) { $translate_to = $_REQUEST['target_language']; } if ($translate_to == $translate_from) { $translate_to = ''; } $post =& get_post($post_id); if (!$post) { printf(__('Post with id "%s" not found!', 'qtranslate'), $post_id); return; } $default_service = intval(get_option('qs_default_service')); $service_settings = get_option('qs_service_settings'); // Detect available Languages and possible target languages $available_languages = qtrans_getAvailableLanguages($post->post_content); if (sizeof($available_languages) == 0) { $error = __('The requested Post has no content, no Translation possible.', 'qtranslate'); } // try to guess source and target language if (!in_array($translate_from, $available_languages)) { $translate_from = ''; } $missing_languages = array_diff($q_config['enabled_languages'], $available_languages); if (empty($translate_from) && in_array($q_config['default_language'], $available_languages) && $translate_to != $q_config['default_language']) { $translate_from = $q_config['default_language']; } if (empty($translate_to) && sizeof($missing_languages) == 1) { $translate_to = $missing_languages[0]; } if (in_array($translate_to, $available_languages)) { $message = __('The Post already has content for the selected target language. If a translation request is send, the current text for the target language will be overwritten.', 'qtranslate'); } if (sizeof($available_languages) == 1) { if ($available_languages[0] == $translate_to) { $translate_to = ''; } $translate_from = $available_languages[0]; } elseif ($translate_from == '' && sizeof($available_languages) > 1) { $languages = qtrans_getSortedLanguages(); foreach ($languages as $language) { if ($language != $translate_to && in_array($language, $available_languages)) { $translate_from = $language; break; } } } // link to current page with get variables $url_link = add_query_arg('post', $post_id); if (!empty($translate_to)) { $url_link = add_query_arg('target_language', $translate_to, $url_link); } if (!empty($translate_from)) { $url_link = add_query_arg('source_language', $translate_from, $url_link); } // get correct title and content $post_title = qtrans_use($translate_from, $post->post_title); $post_content = qtrans_use($translate_from, $post->post_content); if (isset($translate_from) && isset($translate_to)) { $title = sprintf('Translate "%1$s" from %2$s to %3$s', htmlspecialchars($post_title), $q_config['language_name'][$translate_from], $q_config['language_name'][$translate_to]); } elseif (isset($translate_from)) { $title = sprintf('Translate "%1$s" from %2$s', htmlspecialchars($post_title), $q_config['language_name'][$translate_from]); } else { $title = sprintf('Translate "%1$s"', htmlspecialchars($post_title)); } // Check data if (isset($_POST['service_id'])) { $service_id = intval($_POST['service_id']); $default_service = $service_id; update_option('qs_default_service', $service_id); $order_key = substr(md5(time() . AUTH_KEY), 0, 20); $request = array('order_service_id' => $service_id, 'order_url' => get_option('home'), 'order_key' => $order_key, 'order_title' => $post_title, 'order_text' => $post_content, 'order_source_language' => $translate_from, 'order_source_locale' => $q_config['locale'][$translate_from], 'order_target_language' => $translate_to, 'order_target_locale' => $q_config['locale'][$translate_to]); // check for additional fields if (is_array($service_settings[$service_id])) { $request['order_required_field'] = array(); foreach ($service_settings[$service_id] as $setting => $value) { $request['order_required_field'][$setting] = $value; } } $answer = qs_queryQS(QS_INIT_TRANSLATION, $request); if (isset($answer['error'])) { $error = sprintf(__('An error occured: %s', 'qtranslate'), $qs_error_messages[$answer['error']]); if ($answer['message'] != '') { $error .= '<br />' . sprintf(__('Additional information: %s', 'qtranslate'), qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage($answer['message'])); } } if (isset($answer['order_id'])) { $orders = get_option('qs_orders'); if (!is_array($orders)) { $orders = array(); } $orders[] = array('post_id' => $post_id, 'service_id' => $service_id, 'source_language' => $translate_from, 'target_language' => $translate_to, 'order' => array('order_key' => $order_key, 'order_id' => $answer['order_id'])); update_option('qs_orders', $orders); if (empty($answer['message'])) { $order_completed_message = ''; } else { $order_completed_message = htmlspecialchars($answer['message']); } qs_UpdateOrder($answer['order_id']); } } if (isset($error)) { ?> <div class="wrap"> <h2><?php _e('qTranslate Services', 'qtranslate'); ?> </h2> <div id="message" class="error fade"><p><?php echo $error; ?> </p></div> <p><?php printf(__('An serious error occured and qTranslate Services cannot proceed. For help, please visit the <a href="%s">Support Forum</a>', 'qtranslate'), 'http://www.qianqin.de/qtranslate/forum/'); ?> </p> </div> <?php return; } if (isset($order_completed_message)) { ?> <div class="wrap"> <h2><?php _e('qTranslate Services', 'qtranslate'); ?> </h2> <div id="message" class="updated fade"><p><?php _e('Order successfully sent.', 'qtranslate'); ?> </p></div> <p><?php _e('Your translation order has been successfully transfered to the selected service.', 'qtranslate'); ?> </p> <?php if (!empty($order_completed_message)) { ?> <p><?php printf(__('The service returned this message: %s', 'qtranslate'), $order_completed_message); ?> </p> <?php } ?> <p><?php _e('Feel free to choose an action:', 'qtranslate'); ?> </p> <ul> <li><a href="<?php echo add_query_arg('target_language', null, $url_link); ?> "><?php _e('Translate this post to another language.', 'qtranslate'); ?> </a></li> <li><a href="edit.php"><?php _e('Translate a different post.', 'qtranslate'); ?> </a></li> <li><a href="options-general.php?page=qtranslate#qtranslate_service_settings"><?php _e('View all open orders.', 'qtranslate'); ?> </a></li> <li><a href="options-general.php?page=qtranslate&qs_cron=true#qtranslate_service_settings"><?php _e('Let qTranslate Services check if any open orders are finished.', 'qtranslate'); ?> </a></li> <li><a href="<?php echo get_permalink($post_id); ?> "><?php _e('View this post.', 'qtranslate'); ?> </a></li> </ul> </div> <?php return; } ?> <div class="wrap"> <h2><?php _e('qTranslate Services', 'qtranslate'); ?> </h2> <?php if (!empty($message)) { ?> <div id="message" class="updated fade"><p><?php echo $message; ?> </p></div> <?php } ?> <h3><?php echo $title; ?> </h3> <form action="edit.php?page=qtranslate_services" method="post" id="qtranslate-services-translate"> <p><?php if (sizeof($available_languages) > 1) { $available_languages_name = array(); foreach (array_diff($available_languages, array($translate_from)) as $language) { $available_languages_name[] = '<a href="' . add_query_arg('source_language', $language, $url_link) . '">' . $q_config['language_name'][$language] . '</a>'; } $available_languages_names = join(", ", $available_languages_name); printf(__('Your article is available in multiple languages. If you do not want to translate from %1$s, you can switch to one of the following languages: %2$s', 'qtranslate'), $q_config['language_name'][$translate_from], $available_languages_names); } ?> </p> <input type="hidden" name="post" value="<?php echo $post_id; ?> "/> <input type="hidden" name="source_language" value="<?php echo $translate_from; ?> "/> <?php if (empty($translate_to)) { ?> <p><?php _e('Please choose the language you want to translate to:', 'qtranslate'); ?> </p> <ul> <?php foreach ($q_config['enabled_languages'] as $language) { if ($translate_from == $language) { continue; } ?> <li><label><input type="radio" name="target_language" value="<?php echo $language; ?> " /> <?php echo $q_config['language_name'][$language]; ?> </li> <?php } ?> </ul> <p class="submit"> <input type="submit" name="submit" class="button-primary" value="<?php _e('Continue', 'qtranslate'); ?> " /> </p> <?php } else { ?> <p><?php printf(__('Please review your article and <a href="%s">edit</a> it if needed.', 'qtranslate'), 'post.php?action=edit&post=' . $post_id); ?> </p> <textarea name="qs_content_preview" id="qs_content_preview" readonly="readonly"><?php echo $post_content; ?> </textarea> <?php $timestamp = time(); if ($timestamp != qs_queryQS(QS_VERIFY, $timestamp)) { ?> <p class="error"><?php _e('ERROR: Could not connect to qTranslate Services. Please try again later.', 'qtranslate'); ?> </p> <?php return; } ?> <h4><?php _e('Use the following Translation Service:', 'qtranslate'); ?> </h4> <ul> <?php if ($services = qs_queryQS(QS_GET_SERVICES)) { foreach ($services as $service_id => $service) { // check if we have data for all required fields $requirements_matched = true; foreach ($service['service_required_fields'] as $field) { if (!isset($service_settings[$service_id][$field['name']]) || $service_settings[$service_id][$field['name']] == '') { $requirements_matched = false; } } if (!$requirements_matched) { ?> <li> <label><input type="radio" name="service_id" disabled="disabled" /> <b><?php echo qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage($service['service_name']); ?> </b> ( <a href="<?php echo $service['service_url']; ?> " target="_blank"><?php _e('Website', 'qtranslate'); ?> </a> )</label> <p class="error"><?php printf(__('Cannot use this service, not all <a href="%s">required fields</a> filled in for this service.', 'qtranslate'), 'options-general.php?page=qtranslate#qs_service_' . $service_id); ?> </p> <p class="service_description"><?php echo qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage($service['service_description']); ?> </p> </li> <?php } else { ?> <li><label><input type="radio" name="service_id" <?php if ($default_service == $service['service_id']) { echo 'checked="checked"'; } ?> value="<?php echo $service['service_id']; ?> " /> <b><?php echo qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage($service['service_name']); ?> </b> ( <a href="<?php echo $service['service_url']; ?> " target="_blank"><?php _e('Website', 'qtranslate'); ?> </a> )</label><p class="service_description"><?php echo qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage($service['service_description']); ?> </p></li> <?php } } ?> </ul> <p><?php _e('Your article will be SSL encrypted and securly sent to qTranslate Services, which will forward your text to the chosen Translation Service. Once qTranslate Services receives the translated text, it will automatically appear on your blog.', 'qtranslate'); ?> </p> <p class="submit"> <input type="hidden" name="target_language" value="<?php echo $translate_to; ?> "/> <input type="submit" name="submit" class="button-primary" value="<?php _e('Request Translation', 'qtranslate'); ?> " /> </p> <?php } } ?> </div> </form> <?php }
/** * ajax handle for quering posts */ public function _hw_query_posts() { if (!wp_verify_nonce($_REQUEST['nonce'], "hw_query_posts_nonce")) { exit("hacked!"); } //valid if (!isset($_REQUEST['widget_id_base']) || !isset($_REQUEST['widget_id'])) { return; } //get params $id_base = isset($_REQUEST['widget_id_base']) ? $_REQUEST['widget_id_base'] : ''; $id = isset($_REQUEST['widget_id']) ? $_REQUEST['widget_id'] : ''; //data $args = array('showposts' => '-1'); if (!empty($_REQUEST['widget-' . $id_base][$id])) { $data = $_REQUEST['widget-' . $id_base][$id]; //query posts data if (isset($data['posttype'])) { $args['posttype'] = join(',', $data['posttype']); } //post types if (isset($data['tax'])) { $args['taxonomy'] = $data['tax']; } //filter by taxonomy if (isset($data['cat_']) && isset($args['taxonomy'])) { //filter by taxonomy $args['tax_query'] = array('relation' => 'AND', array('taxonomy' => $args['taxonomy'], 'field' => 'slug', 'terms' => array($data['cat_']), 'operator' => 'IN')); } //filter by author if (isset($data['author'])) { if (is_numeric($data['author']) && $data['author'] != '-1') { $args['author'] = $data['author']; } elseif ($data['author'] == 'logined_user' && is_user_logged_in()) { $args['author'] = get_current_user_id(); } } } if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') { $result = array(); $data = array(); //query posts $query = new WP_Query($args); while ($query->have_posts()) { $query->the_post(); //get post title if the plugin qtranslate is installed if (function_exists('qtrans_use')) { if (!isset($currentLang)) { $currentLang = qtrans_getLanguage(); } $title = qtrans_use($currentLang, get_the_title(), false); } else { $title = get_the_title(); } $data[get_the_ID()] = $title; } wp_reset_query(); $result['posts'] = $data; $result['args'] = $args; echo json_encode($result); } else { header("Location: " . $_SERVER["HTTP_REFERER"]); } die; }
// Response headers if ($format == 'excel') { header('Content-type: application/vnd.ms-excel; charset=utf-8'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Content-Disposition: attachment; filename="META-Summary-' . strtoupper($lang) . '.xls"'); } //Begin table echo '<table border="1">'; //Column headings echo '<tr>'; echo '<th>' . __('Post Title', 'qtranslate-meta') . ' (' . qtrans_getLanguageName($lang) . ')' . '</th>'; foreach ($qtransMETA->field_names as $field => $field_label) { echo '<th>' . esc_html($field_label) . '</th>'; } echo '</tr>'; //Posts $pages = $qtransMETA->get_post_meta('page'); foreach ($pages as $post) { echo '<tr>'; //Post Title echo '<td>' . __($post->post_title) . '</td>'; //use defult language, NOT language of META info //META stuff foreach ($qtransMETA->field_names as $field => $field_label) { echo '<td>' . qtrans_use($lang, get_post_meta($post->ID, "qtrans_meta:{$field}", true)) . '</td>'; } echo '</tr>'; } //End table echo '</table>';