コード例 #1
0
ファイル: UF_Qtranslate.php プロジェクト: shesser/selenenw
 /**
  * Extract a language from a multilingual string.
  * Mostly uses qtrans_split, but ensures that it is available
  * 
  * @param string $value The value to be splitted
  * @param string $language The code of the required language
  * @return mixed The splitted value or the original if it is not multilingual
  */
 public function split($value, $language = null)
 {
     global $q_config;
     # qTranslate is not available
     if (!function_exists('qtrans_split')) {
         return $value;
     }
     # If there is no language passed, use the active one
     if (!$language) {
         $language = $q_config['language'];
     }
     # Check if values are actually multilingual
     if (!is_string($value)) {
         return $value;
     }
     # Split the values
     $values = apply_filters('uf_ml_q_before_split', $value, $language);
     $values = qtrans_split($value);
     $values = apply_filters('uf_ml_q_after_split', $values, $language);
     if (isset($values[$language])) {
         $nice = array();
         foreach ($values as $lang => $data) {
             $nice[$lang] = maybe_unserialize($data);
         }
         return apply_filters('uf_ml_q_split', $nice[$language], $value, $language);
     } else {
         return apply_filters('uf_ml_q_split', $value, $value, $language);
     }
 }
コード例 #2
0
ファイル: qtranslate-meta.php プロジェクト: popovdenis/kmst
 function load_meta($post_id)
 {
     $meta = array();
     foreach ($this->field_names as $field => $field_label) {
         $field_id = "qtrans_meta:{$field}";
         $field_data = get_post_meta($post_id, $field_id, true);
         $meta[$field] = qtrans_split($field_data);
     }
     return $meta;
 }
コード例 #3
0
 /**
  *
  */
 public function transform($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property)
 {
     module_load_include('inc', 'donkeymedia_migrate', 'qtranslate_parser');
     $result = array();
     $available_languages = array('en', 'de');
     $default_language = 'en';
     $available_content = qtrans_split($value, $available_languages);
     foreach ($available_languages as $lang) {
         if (isset($available_content[$lang]) && strlen(trim($available_content[$lang])) > 1) {
             $result[] = $lang;
         }
     }
     return $result;
 }
コード例 #4
0
ファイル: textarea.php プロジェクト: Tusko/acf-qtranslate
 function render_field($field)
 {
     global $q_config;
     $languages = qtrans_getSortedLanguages(true);
     $values = qtrans_split($field['value'], $quicktags = true);
     $currentLanguage = $this->plugin->get_active_language();
     // vars
     $o = array('id', 'class', 'name', 'placeholder', 'rows');
     $s = array('readonly', 'disabled');
     $e = '';
     // maxlength
     if ($field['maxlength'] !== '') {
         $o[] = 'maxlength';
     }
     // rows
     if (empty($field['rows'])) {
         $field['rows'] = 8;
     }
     // populate atts
     $atts = array();
     foreach ($o as $k) {
         $atts[$k] = $field[$k];
     }
     // special atts
     foreach ($s as $k) {
         if ($field[$k]) {
             $atts[$k] = $k;
         }
     }
     // render
     $e .= '<div class="acf-input-wrap multi-language-field">';
     foreach ($languages as $language) {
         $class = $language === $currentLanguage ? 'wp-switch-editor current-language' : 'wp-switch-editor';
         $e .= '<a class="' . $class . '" data-language="' . $language . '">' . $q_config['language_name'][$language] . '</a>';
     }
     foreach ($languages as $language) {
         $atts['class'] = $field['class'];
         if ($language === $currentLanguage) {
             $atts['class'] .= ' current-language';
         }
         $atts['name'] = $field['name'] . "[{$language}]";
         $atts['data-language'] = $language;
         $e .= '<textarea ' . acf_esc_attr($atts) . ' >';
         $e .= esc_textarea($values[$language]);
         $e .= '</textarea>';
     }
     $e .= '</div>';
     // return
     echo $e;
 }
コード例 #5
0
function qtrans_getAvailableLanguages($text)
{
    global $q_config;
    $result = array();
    $content = qtrans_split($text);
    foreach ($content as $language => $lang_text) {
        $lang_text = trim($lang_text);
        if (!empty($lang_text)) {
            $result[] = $language;
        }
    }
    if (sizeof($result) == 0) {
        // add default language to keep default URL
        $result[] = $q_config['language'];
    }
    return $result;
}
コード例 #6
0
 function create_field($field)
 {
     global $q_config;
     $languages = qtrans_getSortedLanguages(true);
     $values = qtrans_split($field['value'], $quicktags = true);
     $currentLanguage = $this->plugin->get_active_language();
     echo '<div class="multi-language-field">';
     foreach ($languages as $language) {
         $class = $language === $currentLanguage ? 'wp-switch-editor current-language' : 'wp-switch-editor';
         echo '<a class="' . $class . '" data-language="' . $language . '">' . $q_config['language_name'][$language] . '</a>';
     }
     foreach ($languages as $language) {
         $class = $language === $currentLanguage ? $field['class'] . ' current-language' : $field['class'];
         echo '<textarea data-language="' . esc_attr($language) . '" id="' . esc_attr($field['id']) . '" rows="4" class="' . esc_attr($class) . '" name="' . esc_attr($field['name'] . "[{$language}]") . '">' . esc_textarea($values[$language]) . '</textarea>';
     }
     echo '</div>';
 }
コード例 #7
0
 function create_field($field)
 {
     if (!acf_qtranslate_enabled()) {
         acf_field_textarea::create_field($field);
         return;
     }
     global $q_config;
     $languages = qtrans_getSortedLanguages(true);
     $values = qtrans_split($field['value'], $quicktags = true);
     echo '<div class="multi-language-field">';
     foreach ($languages as $language) {
         $class = $language === end($languages) ? 'wp-switch-editor current-language' : 'wp-switch-editor';
         echo '<a class="' . $class . '" data-language="' . $language . '">' . $q_config['language_name'][$language] . '</a>';
     }
     foreach ($languages as $language) {
         $class = $language === end($languages) ? $field['class'] . ' current-language' : $field['class'];
         echo '<textarea data-language="' . esc_attr($language) . '" id="' . esc_attr($field['id']) . '" rows="4" class="' . esc_attr($class) . '" name="' . esc_attr($field['name'] . "[{$language}]") . '">' . esc_textarea($values[$language]) . '</textarea>';
     }
     echo '</div>';
 }
コード例 #8
0
ファイル: nxs_functions.php プロジェクト: JalpMi/v2contact
 function nxs_doQTrans($txt, $lng = '')
 {
     if (!function_exists(qtrans_split) || strpos($txt, '<!--:') === false) {
         return $txt;
     } else {
         $tta = qtrans_split($txt);
         if ($lng != '') {
             return $tta[$lng];
         } else {
             return reset($tta);
         }
     }
 }
コード例 #9
0
    function render_field($field)
    {
        // enqueue
        acf_enqueue_uploader();
        // vars
        $id = uniqid('acf-editor-');
        //$id = $field['id'] . '-' . uniqid();
        $mode = 'html';
        $show_tabs = true;
        // get height
        $height = acf_get_user_setting('wysiwyg_height', 300);
        $height = max($height, 300);
        // minimum height is 300
        // detect mode
        // case: visual tab only
        if ($field['tabs'] == 'visual') {
            $mode = 'tmce';
            $show_tabs = false;
        } elseif ($field['tabs'] == 'text') {
            $show_tabs = false;
        } elseif (wp_default_editor() == 'tinymce') {
            $mode = 'tmce';
        }
        // mode
        $switch_class = $mode . '-active';
        // filter value for editor
        remove_all_filters('acf_the_editor_content');
        if ($mode == 'tmce') {
            add_filter('acf_the_editor_content', 'wp_richedit_pre');
        } else {
            add_filter('acf_the_editor_content', 'wp_htmledit_pre');
        }
        global $q_config, $wp_version;
        $languages = qtrans_getSortedLanguages(true);
        $values = qtrans_split($field['value'], $quicktags = true);
        $currentLanguage = $this->plugin->get_active_language();
        echo '<div class="multi-language-field multi-language-field-wysiwyg">';
        foreach ($languages as $language) {
            $class = $language === $currentLanguage ? 'wp-switch-editor current-language' : 'wp-switch-editor';
            echo '<a class="' . $class . '" data-language="' . $language . '">' . $q_config['language_name'][$language] . '</a>';
        }
        $uid = uniqid('acf-editor-');
        foreach ($languages as $language) {
            $value = apply_filters('acf_the_editor_content', $values[$language]);
            $id = $uid . "-{$language}";
            $name = $field['name'] . "[{$language}]";
            $class = $switch_class;
            if ($language === $currentLanguage) {
                $class .= ' current-language';
            }
            ?>
			<div id="wp-<?php 
            echo $id;
            ?>
-wrap" class="acf-editor-wrap wp-core-ui wp-editor-wrap <?php 
            echo $class;
            ?>
" data-toolbar="<?php 
            echo $field['toolbar'];
            ?>
" data-upload="<?php 
            echo $field['media_upload'];
            ?>
" data-language="<?php 
            echo $language;
            ?>
">
				<div id="wp-<?php 
            echo $id;
            ?>
-editor-tools" class="wp-editor-tools hide-if-no-js">
					<?php 
            if ($field['media_upload']) {
                ?>
					<div id="wp-<?php 
                echo $id;
                ?>
-media-buttons" class="wp-media-buttons">
						<?php 
                do_action('media_buttons');
                ?>
					</div>
					<?php 
            }
            ?>
					<?php 
            if (user_can_richedit() && $show_tabs) {
                ?>
						<div class="wp-editor-tabs">
							<button id="<?php 
                echo $id;
                ?>
-tmce" class="wp-switch-editor switch-tmce" onclick="switchEditors.switchto(this);" type="button"><?php 
                echo __('Visual', 'acf');
                ?>
</button>
							<button id="<?php 
                echo $id;
                ?>
-html" class="wp-switch-editor switch-html" onclick="switchEditors.switchto(this);" type="button"><?php 
                echo _x('Text', 'Name for the Text editor tab (formerly HTML)', 'acf');
                ?>
</button>
						</div>
					<?php 
            }
            ?>
				</div>
				<div id="wp-<?php 
            echo $id;
            ?>
-editor-container" class="wp-editor-container">
					<textarea id="<?php 
            echo $id;
            ?>
" class="qtx-wp-editor-area" name="<?php 
            echo $name;
            ?>
" <?php 
            if ($height) {
                ?>
style="height:<?php 
                echo $height;
                ?>
px;"<?php 
            }
            ?>
><?php 
            echo $value;
            ?>
</textarea>
				</div>
			</div>

		<?php 
        }
        echo '</div>';
    }
 function nxs_doQTrans($txt, $lng = '')
 {
     if (!function_exists("qtrans_split") && !function_exists("qtranxf_split")) {
         return $txt;
     }
     $txt = str_ireplace('<3', '&lt;3', $txt);
     $txt = str_ireplace('<(', '&lt;(', $txt);
     //$txt = preg_replace('/\[caption\s[^\]]*\]/', '', $txt);
     $txt = preg_replace('/\\[caption[\\s]{0,}(.*?)\\][\\s]{0,}(<a[\\s]{0,}.*?<\\/a>)[\\s]{0,}(.*?)\\[\\/caption\\]/ims', '<p $1> $2 <snap class="wpimgcaption">$3</snap> </p>', $txt);
     // WP Image with Caption fix
     if (function_exists("qtrans_split") && strpos($txt, '<!--:') !== false) {
         $tta = qtrans_split($txt);
         if ($lng != '') {
             return $tta[$lng];
         } else {
             return reset($tta);
         }
     }
     if (function_exists("qtranxf_split") && (strpos($txt, '<!--:') !== false || strpos($txt, '[:') !== false)) {
         $tta = qtranxf_split($txt);
         if ($lng != '') {
             return $tta[$lng];
         } else {
             return reset($tta);
         }
     }
 }
コード例 #11
0
function qTrans_compatibility($post_title)
{
    if (function_exists('qtrans_split')) {
        $post_title = qtrans_split($post_title);
        //explode the string in a array $_array_[lang_code]=content
        $post_title = $post_title[qtrans_getLanguage()];
        //get the content from array with actual language
    }
    return $post_title;
}
コード例 #12
0
ファイル: file.php プロジェクト: Tusko/acf-qtranslate
    function create_field($field)
    {
        global $q_config;
        $languages = qtrans_getSortedLanguages(true);
        $values = qtrans_split($field['value'], $quicktags = true);
        $currentLanguage = $this->plugin->get_active_language();
        echo '<div class="multi-language-field multi-language-field-file">';
        foreach ($languages as $language) {
            $class = 'wp-switch-editor';
            if ($language === $currentLanguage) {
                $class .= ' current-language';
            }
            echo '<a class="' . $class . '" data-language="' . $language . '">' . $q_config['language_name'][$language] . '</a>';
        }
        $base_class = $field['class'];
        $base_name = $field['name'];
        foreach ($languages as $language) {
            $value = $values[$language];
            $o = array('class' => '', 'icon' => '', 'title' => '', 'size' => '', 'url' => '', 'name' => '');
            if ($value && is_numeric($value)) {
                $file = get_post($value);
                if ($file) {
                    $o['class'] = 'active';
                    $o['icon'] = wp_mime_type_icon($file->ID);
                    $o['title'] = $file->post_title;
                    $o['size'] = size_format(filesize(get_attached_file($file->ID)));
                    $o['url'] = wp_get_attachment_url($file->ID);
                    $explode = explode('/', $o['url']);
                    $o['name'] = end($explode);
                }
            }
            $field['class'] = $base_class;
            if ($language === $currentLanguage) {
                $field['class'] .= ' current-language';
                $o['class'] .= ' current-language';
            }
            $field['name'] = $base_name . '[' . $language . ']';
            ?>
			<div class="acf-file-uploader clearfix <?php 
            echo $o['class'];
            ?>
" data-library="<?php 
            echo $field['library'];
            ?>
" data-language="<?php 
            echo $language;
            ?>
">
				<input class="acf-file-value" type="hidden" name="<?php 
            echo $field['name'];
            ?>
" value="<?php 
            echo $value;
            ?>
" />
				<div class="has-file">
					<ul class="hl clearfix">
						<li>
							<img class="acf-file-icon" src="<?php 
            echo $o['icon'];
            ?>
" alt=""/>
							<div class="hover">
								<ul class="bl">
									<li><a href="#" class="acf-button-delete ir">Remove</a></li>
									<li><a href="#" class="acf-button-edit ir">Edit</a></li>
								</ul>
							</div>
						</li>
						<li>
							<p>
								<strong class="acf-file-title"><?php 
            echo $o['title'];
            ?>
</strong>
							</p>
							<p>
								<strong><?php 
            _e('Name', 'acf');
            ?>
:</strong>
								<a class="acf-file-name" href="<?php 
            echo $o['url'];
            ?>
" target="_blank"><?php 
            echo $o['name'];
            ?>
</a>
							</p>
							<p>
								<strong><?php 
            _e('Size', 'acf');
            ?>
:</strong>
								<span class="acf-file-size"><?php 
            echo $o['size'];
            ?>
</span>
							</p>

						</li>
					</ul>
				</div>
				<div class="no-file">
					<ul class="hl clearfix">
						<li>
							<p><?php 
            _e('No File Selected', 'acf');
            ?>
 <a href="#" class="button add-file"><?php 
            _e('Add File', 'acf');
            ?>
</p></a>
						</li>
					</ul>
				</div>
		</div>
		<?php 
        }
        echo '</div>';
    }
コード例 #13
0
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>";
}
コード例 #14
0
ファイル: file.php プロジェクト: Tusko/acf-qtranslate
    function render_field($field)
    {
        global $q_config;
        $languages = qtrans_getSortedLanguages(true);
        $values = qtrans_split($field['value'], $quicktags = true);
        $currentLanguage = $this->plugin->get_active_language();
        // enqueue
        acf_enqueue_uploader();
        // vars
        $o = array('icon' => '', 'title' => '', 'size' => '', 'url' => '', 'name' => '');
        $div = array('class' => 'acf-file-uploader acf-cf', 'data-library' => $field['library'], 'data-mime_types' => $field['mime_types']);
        $input_atts = array('type' => 'hidden', 'name' => $field['name'], 'value' => $field['value'], 'data-name' => 'value-id');
        $url = '';
        echo '<div class="multi-language-field multi-language-field-image">';
        foreach ($languages as $language) {
            $class = 'wp-switch-editor';
            if ($language === $currentLanguage) {
                $class .= ' current-language';
            }
            echo '<a class="' . $class . '" data-language="' . $language . '">' . $q_config['language_name'][$language] . '</a>';
        }
        foreach ($languages as $language) {
            $input_atts['name'] = $field['name'] . '[' . $language . ']';
            $field['value'] = $values[$language];
            $div['data-language'] = $language;
            $div['class'] = 'acf-file-uploader acf-cf';
            // has value?
            if ($field['value'] && is_numeric($field['value'])) {
                $file = get_post($field['value']);
                if ($file) {
                    $div['class'] .= ' has-value';
                    $o['icon'] = wp_mime_type_icon($file->ID);
                    $o['title'] = $file->post_title;
                    $o['size'] = @size_format(filesize(get_attached_file($file->ID)));
                    $o['url'] = wp_get_attachment_url($file->ID);
                    $explode = explode('/', $o['url']);
                    $o['name'] = end($explode);
                }
            }
            // basic?
            $basic = !current_user_can('upload_files');
            if ($basic) {
                $div['class'] .= ' basic';
            }
            if ($language === $currentLanguage) {
                $div['class'] .= ' current-language';
            }
            ?>
			<div <?php 
            acf_esc_attr_e($div);
            ?>
>
				<div class="acf-hidden">
					<?php 
            acf_hidden_input(array('name' => $input_atts['name'], 'value' => $field['value'], 'data-name' => 'id'));
            ?>
				</div>
				<div class="show-if-value file-wrap acf-soh">
					<div class="file-icon">
						<img data-name="icon" src="<?php 
            echo $o['icon'];
            ?>
" alt=""/>
					</div>
					<div class="file-info">
						<p>
							<strong data-name="title"><?php 
            echo $o['title'];
            ?>
</strong>
						</p>
						<p>
							<strong><?php 
            _e('File Name', 'acf');
            ?>
:</strong>
							<a data-name="name" href="<?php 
            echo $o['url'];
            ?>
" target="_blank"><?php 
            echo $o['name'];
            ?>
</a>
						</p>
						<p>
							<strong><?php 
            _e('File Size', 'acf');
            ?>
:</strong>
							<span data-name="size"><?php 
            echo $o['size'];
            ?>
</span>
						</p>

						<ul class="acf-hl acf-soh-target">
							<?php 
            if (!$basic) {
                ?>
								<li><a class="acf-icon dark" data-name="edit" href="#"><i class="acf-sprite-edit"></i></a></li>
							<?php 
            }
            ?>
							<li><a class="acf-icon dark" data-name="remove" href="#"><i class="acf-sprite-delete"></i></a></li>
						</ul>
					</div>
				</div>
				<div class="hide-if-value">
					<?php 
            if ($basic) {
                ?>

						<?php 
                if ($field['value'] && !is_numeric($field['value'])) {
                    ?>
							<div class="acf-error-message"><p><?php 
                    echo $field['value'];
                    ?>
</p></div>
						<?php 
                }
                ?>

						<input type="file" name="<?php 
                echo $field['name'];
                ?>
" id="<?php 
                echo $field['id'];
                ?>
" />

					<?php 
            } else {
                ?>

						<p style="margin:0;"><?php 
                _e('No File selected', 'acf');
                ?>
 <a data-name="add" class="acf-button" href="#"><?php 
                _e('Add File', 'acf');
                ?>
</a></p>

					<?php 
            }
            ?>

				</div>
			</div>

		<?php 
        }
        echo '</div>';
    }
コード例 #15
0
function qtranslate_conf()
{
    global $q_config, $wpdb;
    // do redirection for dashboard
    if (isset($_GET['godashboard'])) {
        echo '<h2>' . __('Switching Language', 'qtranslate') . '</h2>' . sprintf(__('Switching language to %1$s... If the Dashboard isn\'t loading, use this <a href="%2$s" title="Dashboard">link</a>.', 'qtranslate'), $q_config['language_name'][qtrans_getLanguage()], admin_url()) . '<script type="text/javascript">document.location="' . admin_url() . '";</script>';
        exit;
    }
    // init some needed variables
    $error = '';
    $original_lang = '';
    $language_code = '';
    $language_name = '';
    $language_locale = '';
    $language_date_format = '';
    $language_time_format = '';
    $language_na_message = '';
    $language_flag = '';
    $language_default = '';
    $altered_table = false;
    $message = apply_filters('qtranslate_configuration_pre', '');
    // check for action
    if (isset($_POST['qtranslate_reset']) && isset($_POST['qtranslate_reset2'])) {
        $message = __('qTranslate has been reset.', 'qtranslate');
    } elseif (isset($_POST['default_language'])) {
        // save settings
        qtrans_checkSetting('default_language', true, QT_LANGUAGE);
        qtrans_checkSetting('flag_location', true, QT_URL);
        qtrans_checkSetting('ignore_file_types', true, QT_STRING);
        qtrans_checkSetting('detect_browser_language', true, QT_BOOLEAN);
        qtrans_checkSetting('hide_untranslated', true, QT_INTEGER);
        qtrans_checkSetting('use_strftime', true, QT_INTEGER);
        qtrans_checkSetting('url_mode', true, QT_INTEGER);
        qtrans_checkSetting('auto_update_mo', true, QT_BOOLEAN);
        qtrans_checkSetting('hide_default_language', true, QT_BOOLEAN);
        if (isset($_POST['update_mo_now']) && $_POST['update_mo_now'] == '1' && qtrans_updateGettextDatabases(true)) {
            $message = __('Gettext databases updated.', 'qtranslate');
        }
    }
    if (isset($_POST['original_lang'])) {
        // validate form input
        if ($_POST['language_na_message'] == '') {
            $error = __('The Language must have a Not-Available Message!', 'qtranslate');
        }
        if (strlen($_POST['language_locale']) < 2) {
            $error = __('The Language must have a Locale!', 'qtranslate');
        }
        if ($_POST['language_name'] == '') {
            $error = __('The Language must have a name!', 'qtranslate');
        }
        if (strlen($_POST['language_code']) != 2) {
            $error = __('Language Code has to be 2 characters long!', 'qtranslate');
        }
        if ($_POST['original_lang'] == '' && $error == '') {
            // new language
            if (isset($q_config['language_name'][$_POST['language_code']])) {
                $error = __('There is already a language with the same Language Code!', 'qtranslate');
            }
        }
        if ($_POST['original_lang'] != '' && $error == '') {
            // language update
            if ($_POST['language_code'] != $_POST['original_lang'] && isset($q_config['language_name'][$_POST['language_code']])) {
                $error = __('There is already a language with the same Language Code!', 'qtranslate');
            } else {
                // remove old language
                unset($q_config['language_name'][$_POST['original_lang']]);
                unset($q_config['flag'][$_POST['original_lang']]);
                unset($q_config['locale'][$_POST['original_lang']]);
                unset($q_config['date_format'][$_POST['original_lang']]);
                unset($q_config['time_format'][$_POST['original_lang']]);
                unset($q_config['not_available'][$_POST['original_lang']]);
                if (in_array($_POST['original_lang'], $q_config['enabled_languages'])) {
                    // was enabled, so set modified one to enabled too
                    for ($i = 0; $i < sizeof($q_config['enabled_languages']); $i++) {
                        if ($q_config['enabled_languages'][$i] == $_POST['original_lang']) {
                            $q_config['enabled_languages'][$i] = $_POST['language_code'];
                        }
                    }
                }
                if ($_POST['original_lang'] == $q_config['default_language']) {
                    // was default, so set modified the default
                    $q_config['default_language'] = $_POST['language_code'];
                }
            }
        }
        if (get_magic_quotes_gpc()) {
            if (isset($_POST['language_date_format'])) {
                $_POST['language_date_format'] = stripslashes($_POST['language_date_format']);
            }
            if (isset($_POST['language_time_format'])) {
                $_POST['language_time_format'] = stripslashes($_POST['language_time_format']);
            }
        }
        if ($error == '') {
            // everything is fine, insert language
            $q_config['language_name'][$_POST['language_code']] = $_POST['language_name'];
            $q_config['flag'][$_POST['language_code']] = $_POST['language_flag'];
            $q_config['locale'][$_POST['language_code']] = $_POST['language_locale'];
            $q_config['date_format'][$_POST['language_code']] = $_POST['language_date_format'];
            $q_config['time_format'][$_POST['language_code']] = $_POST['language_time_format'];
            $q_config['not_available'][$_POST['language_code']] = $_POST['language_na_message'];
        }
        if ($error != '' || isset($_GET['edit'])) {
            // get old values in the form
            $original_lang = $_POST['original_lang'];
            $language_code = $_POST['language_code'];
            $language_name = $_POST['language_name'];
            $language_locale = $_POST['language_locale'];
            $language_date_format = $_POST['language_date_format'];
            $language_time_format = $_POST['language_time_format'];
            $language_na_message = $_POST['language_na_message'];
            $language_flag = $_POST['language_flag'];
            $language_default = $_POST['language_default'];
        }
    } elseif (isset($_GET['convert'])) {
        // update language tags
        global $wpdb;
        $wpdb->show_errors();
        foreach ($q_config['enabled_languages'] as $lang) {
            $wpdb->query('UPDATE ' . $wpdb->posts . ' set post_title = REPLACE(post_title, "[lang_' . $lang . ']","<!--:' . $lang . '-->")');
            $wpdb->query('UPDATE ' . $wpdb->posts . ' set post_title = REPLACE(post_title, "[/lang_' . $lang . ']","<!--:-->")');
            $wpdb->query('UPDATE ' . $wpdb->posts . ' set post_content = REPLACE(post_content, "[lang_' . $lang . ']","<!--:' . $lang . '-->")');
            $wpdb->query('UPDATE ' . $wpdb->posts . ' set post_content = REPLACE(post_content, "[/lang_' . $lang . ']","<!--:-->")');
        }
        $message = "Database Update successful!";
    } elseif (isset($_GET['markdefault'])) {
        // update language tags
        global $wpdb;
        $wpdb->show_errors();
        $result = $wpdb->get_results('SELECT ID, post_title, post_content FROM ' . $wpdb->posts . ' WHERE NOT (post_content LIKE "%<!--:-->%" OR post_title LIKE "%<!--:-->%")');
        foreach ($result as $post) {
            $content = qtrans_split($post->post_content);
            $title = qtrans_split($post->post_title);
            foreach ($q_config['enabled_languages'] as $language) {
                if ($language != $q_config['default_language']) {
                    $content[$language] = "";
                    $title[$language] = "";
                }
            }
            $content = qtrans_join($content);
            $title = qtrans_join($title);
            $wpdb->query('UPDATE ' . $wpdb->posts . ' set post_content = "' . mysql_escape_string($content) . '", post_title = "' . mysql_escape_string($title) . '" WHERE ID=' . $post->ID);
        }
        $message = "All Posts marked as default language!";
    } elseif (isset($_GET['edit'])) {
        $original_lang = $_GET['edit'];
        $language_code = $_GET['edit'];
        $language_name = $q_config['language_name'][$_GET['edit']];
        $language_locale = $q_config['locale'][$_GET['edit']];
        $language_date_format = $q_config['date_format'][$_GET['edit']];
        $language_time_format = $q_config['time_format'][$_GET['edit']];
        $language_na_message = $q_config['not_available'][$_GET['edit']];
        $language_flag = $q_config['flag'][$_GET['edit']];
    } elseif (isset($_GET['delete'])) {
        // validate delete (protect code)
        if ($q_config['default_language'] == $_GET['delete']) {
            $error = 'Cannot delete Default Language!';
        }
        if (!isset($q_config['language_name'][$_GET['delete']]) || strtolower($_GET['delete']) == 'code') {
            $error = 'No such language!';
        }
        if ($error == '') {
            // everything seems fine, delete language
            qtrans_disableLanguage($_GET['delete']);
            unset($q_config['language_name'][$_GET['delete']]);
            unset($q_config['flag'][$_GET['delete']]);
            unset($q_config['locale'][$_GET['delete']]);
            unset($q_config['date_format'][$_GET['delete']]);
            unset($q_config['time_format'][$_GET['delete']]);
            unset($q_config['not_available'][$_GET['delete']]);
        }
    } elseif (isset($_GET['enable'])) {
        // enable validate
        if (!qtrans_enableLanguage($_GET['enable'])) {
            $error = __('Language is already enabled or invalid!', 'qtranslate');
        }
    } elseif (isset($_GET['disable'])) {
        // enable validate
        if ($_GET['disable'] == $q_config['default_language']) {
            $error = __('Cannot disable Default Language!', 'qtranslate');
        }
        if (!qtrans_isEnabled($_GET['disable'])) {
            if (!isset($q_config['language_name'][$_GET['disable']])) {
                $error = __('No such language!', 'qtranslate');
            }
        }
        // everything seems fine, disable language
        if ($error == '' && !qtrans_disableLanguage($_GET['disable'])) {
            $error = __('Language is already disabled!', 'qtranslate');
        }
    } elseif (isset($_GET['moveup'])) {
        $languages = qtrans_getSortedLanguages();
        $message = __('No such language!', 'qtranslate');
        foreach ($languages as $key => $language) {
            if ($language == $_GET['moveup']) {
                if ($key == 0) {
                    $message = __('Language is already first!', 'qtranslate');
                    break;
                }
                $languages[$key] = $languages[$key - 1];
                $languages[$key - 1] = $language;
                $q_config['enabled_languages'] = $languages;
                $message = __('New order saved.', 'qtranslate');
                break;
            }
        }
    } elseif (isset($_GET['movedown'])) {
        $languages = qtrans_getSortedLanguages();
        $message = __('No such language!', 'qtranslate');
        foreach ($languages as $key => $language) {
            if ($language == $_GET['movedown']) {
                if ($key == sizeof($languages) - 1) {
                    $message = __('Language is already last!', 'qtranslate');
                    break;
                }
                $languages[$key] = $languages[$key + 1];
                $languages[$key + 1] = $language;
                $q_config['enabled_languages'] = $languages;
                $message = __('New order saved.', 'qtranslate');
                break;
            }
        }
    }
    $everything_fine = (isset($_POST['submit']) || isset($_GET['delete']) || isset($_GET['enable']) || isset($_GET['disable']) || isset($_GET['moveup']) || isset($_GET['movedown'])) && $error == '';
    if ($everything_fine) {
        // settings might have changed, so save
        qtrans_saveConfig();
        if (empty($message)) {
            $message = __('Options saved.', 'qtranslate');
        }
    }
    if ($q_config['auto_update_mo']) {
        if (!is_dir(WP_LANG_DIR) || !($ll = @fopen(trailingslashit(WP_LANG_DIR) . 'qtranslate.test', 'a'))) {
            $error = sprintf(__('Could not write to "%s", Gettext Databases could not be downloaded!', 'qtranslate'), WP_LANG_DIR);
        } else {
            @fclose($ll);
            @unlink(trailingslashit(WP_LANG_DIR) . 'qtranslate.test');
        }
    }
    // don't accidently delete/enable/disable twice
    $clean_uri = preg_replace("/&(delete|enable|disable|convert|markdefault|moveup|movedown)=[^&#]*/i", "", $_SERVER['REQUEST_URI']);
    $clean_uri = apply_filters('qtranslate_clean_uri', $clean_uri);
    // Generate XHTML
    if ($message) {
        ?>
<div id="message" class="updated fade"><p><strong><?php 
        echo $message;
        ?>
</strong></p></div>
<?php 
    }
    if ($error != '') {
        ?>
<div id="message" class="error fade"><p><strong><?php 
        echo $error;
        ?>
</strong></p></div>
<?php 
    }
    ?>

<?php 
    if (isset($_GET['edit'])) {
        ?>
<div class="wrap">
<h2><?php 
        _e('Edit Language', 'qtranslate');
        ?>
</h2>
<form action="" method="post" id="qtranslate-edit-language">
<?php 
        qtranslate_language_form($language_code, $language_code, $language_name, $language_locale, $language_date_format, $language_time_format, $language_flag, $language_na_message, $language_default, $original_lang);
        ?>
<p class="submit"><input type="submit" name="submit" value="<?php 
        _e('Save Changes &raquo;', 'qtranslate');
        ?>
" /></p>
</form>
</div>
<?php 
    } else {
        ?>
<div class="wrap">
<h2><?php 
        _e('Language Management (qTranslate Configuration)', 'qtranslate');
        ?>
</h2> 
<div class="tablenav"><?php 
        printf(__('For help on how to configure qTranslate correctly, take a look at the <a href="%1$s">qTranslate FAQ</a> and the <a href="%2$s">Support Forum</a>.', 'qtranslate'), 'http://www.qianqin.de/qtranslate/faq/', 'http://www.qianqin.de/qtranslate/forum/viewforum.php?f=3');
        ?>
</div>
	<form action="<?php 
        echo $clean_uri;
        ?>
" method="post">
		<h3><?php 
        _e('General Settings', 'qtranslate');
        ?>
</h3>
		<table class="form-table">
			<tr>
				<th scope="row"><?php 
        _e('Default Language / Order', 'qtranslate');
        ?>
</th>
				<td>
					<fieldset><legend class="hidden"><?php 
        _e('Default Language', 'qtranslate');
        ?>
</legend>
				<?php 
        foreach (qtrans_getSortedLanguages() as $key => $language) {
            echo "\t<label title='" . $q_config['language_name'][$language] . "'><input type='radio' name='default_language' value='" . $language . "'";
            if ($language == $q_config['default_language']) {
                echo " checked='checked'";
            }
            echo ' />';
            echo ' <a href="' . add_query_arg('moveup', $language, $clean_uri) . '"><img src="' . WP_PLUGIN_URL . '/' . basename(__DIR__) . '/arrowup.png" alt="up" /></a>';
            echo ' <a href="' . add_query_arg('movedown', $language, $clean_uri) . '"><img src="' . WP_PLUGIN_URL . '/' . basename(__DIR__) . '/arrowdown.png" alt="down" /></a>';
            echo ' <img src="' . trailingslashit(WP_CONTENT_URL) . $q_config['flag_location'] . $q_config['flag'][$language] . '" alt="' . $q_config['language_name'][$language] . '" /> ';
            echo ' ' . $q_config['language_name'][$language] . "</label><br />\n";
        }
        ?>
					</br>
					<?php 
        printf(__('Choose the default language of your blog. This is the language which will be shown on %s. You can also change the order the languages by clicking on the arrows above.', 'qtranslate'), get_bloginfo('url'));
        ?>
					</fieldset>
				</td>
			</tr>
			<tr valign="top">
				<th scope="row"><?php 
        _e('Untranslated Content', 'qtranslate');
        ?>
</th>
				<td>
					<fieldset><legend class="hidden"><?php 
        _e('URL Modification Mode', 'qtranslate');
        ?>
</legend>
						<label title="Hide untranslated"><input type="radio" name="hide_untranslated" value="<?php 
        echo QT_UNTRANSLATED_HIDE;
        ?>
" <?php 
        echo $q_config['hide_untranslated'] == QT_UNTRANSLATED_HIDE ? "checked=\"checked\"" : "";
        ?>
 /> <?php 
        _e('Hide Content which is not available for the selected language.', 'qtranslate');
        ?>
</label><br />
						<label title="Show messages"><input type="radio" name="hide_untranslated" value="<?php 
        echo QT_UNTRANSLATED_MESSAGE;
        ?>
" <?php 
        echo $q_config['hide_untranslated'] == QT_UNTRANSLATED_MESSAGE ? "checked=\"checked\"" : "";
        ?>
 /> <?php 
        _e('Display a message showing all the languages the content is available in.', 'qtranslate');
        ?>
</label><br />
						<label title="Show default language"><input type="radio" name="hide_untranslated" value="<?php 
        echo QT_UNTRANSLATED_DEFAULT;
        ?>
" <?php 
        echo $q_config['hide_untranslated'] == QT_UNTRANSLATED_DEFAULT ? "checked=\"checked\"" : "";
        ?>
 /> <?php 
        _e('Display the content in default language (or the first available language)', 'qtranslate');
        ?>
</label><br />
					</fieldset><br/>
					<?php 
        _e('This function will not work correctly if you installed qTranslate on a blog with existing entries. In this case you will need to take a look at "Convert Database" under "Advanced Settings".', 'qtranslate');
        ?>
				</td>
			</tr>
			<tr valign="top">
				<th scope="row"><?php 
        _e('Detect Browser Language', 'qtranslate');
        ?>
</th>
				<td>
					<label for="detect_browser_language"><input type="checkbox" name="detect_browser_language" id="detect_browser_language" value="1"<?php 
        echo $q_config['detect_browser_language'] ? ' checked="checked"' : '';
        ?>
/> <?php 
        _e('Detect the language of the browser and redirect accordingly.', 'qtranslate');
        ?>
</label>
					<br/>
					<?php 
        _e('When the frontpage is visited via bookmark/external link/type-in, the visitor will be forwarded to the correct URL for the language specified by his browser.', 'qtranslate');
        ?>
				</td>
			</tr>
		</table>
		<h3><?php 
        _e('Advanced Settings', 'qtranslate');
        ?>
<span id="qtranslate-show-advanced" style="display:none"> (<a name="advanced_settings" href="#advanced_settings" onclick="showAdvanced();"><?php 
        _e('Show', 'qtranslate');
        ?>
</a>)</span></h3>
		<table class="form-table" id="qtranslate-advanced">
			<tr>
				<th scope="row"><?php 
        _e('URL Modification Mode', 'qtranslate');
        ?>
</th>
				<td>
					<fieldset><legend class="hidden"><?php 
        _e('URL Modification Mode', 'qtranslate');
        ?>
</legend>
						<label title="Query Mode"><input type="radio" name="url_mode" value="<?php 
        echo QT_URL_QUERY;
        ?>
" <?php 
        echo $q_config['url_mode'] == QT_URL_QUERY ? "checked=\"checked\"" : "";
        ?>
 /> <?php 
        _e('Use Query Mode (?lang=en)', 'qtranslate');
        ?>
</label><br />
						<label title="Pre-Path Mode"><input type="radio" name="url_mode" value="<?php 
        echo QT_URL_PATH;
        ?>
" <?php 
        echo $q_config['url_mode'] == QT_URL_PATH ? "checked=\"checked\"" : "";
        ?>
 /> <?php 
        _e('Use Pre-Path Mode (Default, puts /en/ in front of URL)', 'qtranslate');
        ?>
</label><br />
						<label title="Pre-Domain Mode"><input type="radio" name="url_mode" value="<?php 
        echo QT_URL_DOMAIN;
        ?>
" <?php 
        echo $q_config['url_mode'] == QT_URL_DOMAIN ? "checked=\"checked\"" : "";
        ?>
 /> <?php 
        _e('Use Pre-Domain Mode (uses http://en.yoursite.com)', 'qtranslate');
        ?>
</label><br />
					</fieldset><br/>
					<?php 
        _e('Pre-Path and Pre-Domain mode will only work with mod_rewrite/pretty permalinks. Additional Configuration is needed for Pre-Domain mode!', 'qtranslate');
        ?>
<br/>
					<label for="hide_default_language"><input type="checkbox" name="hide_default_language" id="hide_default_language" value="1"<?php 
        echo $q_config['hide_default_language'] ? ' checked="checked"' : '';
        ?>
/> <?php 
        _e('Hide URL language information for default language.', 'qtranslate');
        ?>
</label>
				</td>
			</tr>
			<tr valign="top">
				<th scope="row"><?php 
        _e('Flag Image Path', 'qtranslate');
        ?>
</th>
				<td>
					<?php 
        echo trailingslashit(WP_CONTENT_URL);
        ?>
<input type="text" name="flag_location" id="flag_location" value="<?php 
        echo $q_config['flag_location'];
        ?>
" style="width:50%"/>
					<br/>
					<?php 
        _e('Path to the flag images under wp-content, with trailing slash. (Default: plugins/qtranslate/flags/)', 'qtranslate');
        ?>
				</td>
			</tr>
			<tr valign="top">
				<th scope="row"><?php 
        _e('Ignore Links', 'qtranslate');
        ?>
</th>
				<td>
					<input type="text" name="ignore_file_types" id="ignore_file_types" value="<?php 
        echo $q_config['ignore_file_types'];
        ?>
" style="width:100%"/>
					<br/>
					<?php 
        _e('Don\'t convert Links to files of the given file types. (Default: gif,jpg,jpeg,png,pdf,swf,tif,rar,zip,7z,mpg,divx,mpeg,avi,css,js)', 'qtranslate');
        ?>
				</td>
			</tr>
			<tr valign="top">
				<th scope="row"><?php 
        _e('Update Gettext Databases', 'qtranslate');
        ?>
</th>
				<td>
					<label for="auto_update_mo"><input type="checkbox" name="auto_update_mo" id="auto_update_mo" value="1"<?php 
        echo $q_config['auto_update_mo'] ? ' checked="checked"' : '';
        ?>
/> <?php 
        _e('Automatically check for .mo-Database Updates of installed languages.', 'qtranslate');
        ?>
</label>
					<br/>
					<label for="update_mo_now"><input type="checkbox" name="update_mo_now" id="update_mo_now" value="1" /> <?php 
        _e('Update Gettext databases now.', 'qtranslate');
        ?>
</label>
					<br/>
					<?php 
        _e('qTranslate will query the Wordpress Localisation Repository every week and download the latest Gettext Databases (.mo Files).', 'qtranslate');
        ?>
				</td>
			</tr>
			<tr valign="top">
				<th scope="row"><?php 
        _e('Date / Time Conversion', 'qtranslate');
        ?>
</th>
				<td>
					<label><input type="radio" name="use_strftime" value="<?php 
        echo QT_DATE;
        ?>
" <?php 
        echo $q_config['use_strftime'] == QT_DATE ? ' checked="checked"' : '';
        ?>
/> <?php 
        _e('Use emulated date function.', 'qtranslate');
        ?>
</label><br />
					<label><input type="radio" name="use_strftime" value="<?php 
        echo QT_DATE_OVERRIDE;
        ?>
" <?php 
        echo $q_config['use_strftime'] == QT_DATE_OVERRIDE ? ' checked="checked"' : '';
        ?>
/> <?php 
        _e('Use emulated date function and replace formats with the predefined formats for each language.', 'qtranslate');
        ?>
</label><br />
					<label><input type="radio" name="use_strftime" value="<?php 
        echo QT_STRFTIME;
        ?>
" <?php 
        echo $q_config['use_strftime'] == QT_STRFTIME ? ' checked="checked"' : '';
        ?>
/> <?php 
        _e('Use strftime instead of date.', 'qtranslate');
        ?>
</label><br />
					<label><input type="radio" name="use_strftime" value="<?php 
        echo QT_STRFTIME_OVERRIDE;
        ?>
" <?php 
        echo $q_config['use_strftime'] == QT_STRFTIME_OVERRIDE ? ' checked="checked"' : '';
        ?>
/> <?php 
        _e('Use strftime instead of date and replace formats with the predefined formats for each language.', 'qtranslate');
        ?>
</label><br />
					<?php 
        _e('Depending on the mode selected, additional customizations of the theme may be needed.', 'qtranslate');
        ?>
				</td>
			</tr>
			<tr valign="top">
				<th scope="row"><?php 
        _e('Reset qTranslate', 'qtranslate');
        ?>
</th>
				<td>
					<label for="qtranslate_reset"><input type="checkbox" name="qtranslate_reset" id="qtranslate_reset" value="1"/> <?php 
        _e('Check this box and click Save Changes to reset all qTranslate settings.', 'qtranslate');
        ?>
</label>
					<br/>
					<label for="qtranslate_reset2"><input type="checkbox" name="qtranslate_reset2" id="qtranslate_reset2" value="1"/> <?php 
        _e('Yes, I really want to reset qTranslate.', 'qtranslate');
        ?>
</label>
					<br/>
					<label for="qtranslate_reset3"><input type="checkbox" name="qtranslate_reset3" id="qtranslate_reset3" value="1"/> <?php 
        _e('Also delete Translations for Categories/Tags/Link Categories.', 'qtranslate');
        ?>
</label>
					<br/>
					<?php 
        _e('If something isn\'t working correctly, you can always try to reset all qTranslate settings. A Reset won\'t delete any posts but will remove all settings (including all languages added).', 'qtranslate');
        ?>
				</td>
			</tr>
			<tr>
				<th scope="row"><?php 
        _e('Convert Database', 'qtranslate');
        ?>
</th>
				<td>
					<?php 
        printf(__('If you are updating from qTranslate 1.x or Polyglot, <a href="%s">click here</a> to convert posts to the new language tag format.', 'qtranslate'), $clean_uri . '&convert=true');
        ?>
					<?php 
        printf(__('If you have installed qTranslate for the first time on a Wordpress with existing posts, you can either go through all your posts manually and save them in the correct language or <a href="%s">click here</a> to mark all existing posts as written in the default language.', 'qtranslate'), $clean_uri . '&markdefault=true');
        ?>
					<?php 
        _e('Both processes are <b>irreversible</b>! Be sure to make a full database backup before clicking one of the links.', 'qtranslate');
        ?>
				</td>
			</tr>
			<tr>
				<th scope="row"><?php 
        _e('Debugging Information', 'qtranslate');
        ?>
</th>
				<td>
					<p><?php 
        printf(__('If you encounter any problems and you are unable to solve them yourself, you can visit the <a href="%s">Support Forum</a>. Posting the following Content will help other detect any misconfigurations.', 'qtranslate'), 'http://www.qianqin.de/qtranslate/forum/');
        ?>
</p>
					<textarea readonly="readonly" id="qtranslate_debug"><?php 
        $q_config_copy = $q_config;
        // remove information to keep data anonymous and other not needed things
        unset($q_config_copy['url_info']);
        unset($q_config_copy['js']);
        unset($q_config_copy['windows_locale']);
        unset($q_config_copy['pre_domain']);
        unset($q_config_copy['term_name']);
        echo htmlspecialchars(print_r($q_config_copy, true));
        ?>
</textarea>
				</td>
			</tr>
		</table>
		<script type="text/javascript">
		// <![CDATA[
			function showAdvanced() {
				document.getElementById('qtranslate-advanced').style.display='block';
				document.getElementById('qtranslate-show-advanced').style.display='none';
				return false;
			}
			
			if(location.hash!='#advanced_settings') {
					document.getElementById('qtranslate-show-advanced').style.display='inline';
					document.getElementById('qtranslate-advanced').style.display='none';
			}
		// ]]>
		</script>
<?php 
        do_action('qtranslate_configuration', $clean_uri);
        ?>
		<p class="submit">
			<input type="submit" name="submit" class="button-primary" value="<?php 
        _e('Save Changes', 'qtranslate');
        ?>
" />
		</p>
	</form>

</div>
<div class="wrap">

<h2><?php 
        _e('Languages', 'qtranslate');
        ?>
</h2>
<div id="col-container">

<div id="col-right">
<div class="col-wrap">

<table class="widefat">
	<thead>
	<tr>
<?php 
        print_column_headers('language');
        ?>
	</tr>
	</thead>

	<tfoot>
	<tr>
<?php 
        print_column_headers('language', false);
        ?>
	</tr>
	</tfoot>

	<tbody id="the-list" class="list:cat">
<?php 
        foreach ($q_config['language_name'] as $lang => $language) {
            if ($lang != 'code') {
                ?>
	<tr>
		<td><img src="<?php 
                echo trailingslashit(WP_CONTENT_URL) . $q_config['flag_location'] . $q_config['flag'][$lang];
                ?>
" alt="<?php 
                echo $language;
                ?>
 Flag"></td>
		<td><?php 
                echo $language;
                ?>
</td>
		<td><?php 
                if (in_array($lang, $q_config['enabled_languages'])) {
                    ?>
<a class="edit" href="<?php 
                    echo $clean_uri;
                    ?>
&disable=<?php 
                    echo $lang;
                    ?>
"><?php 
                    _e('Disable', 'qtranslate');
                    ?>
</a><?php 
                } else {
                    ?>
<a class="edit" href="<?php 
                    echo $clean_uri;
                    ?>
&enable=<?php 
                    echo $lang;
                    ?>
"><?php 
                    _e('Enable', 'qtranslate');
                    ?>
</a><?php 
                }
                ?>
</td>
		<td><a class="edit" href="<?php 
                echo $clean_uri;
                ?>
&edit=<?php 
                echo $lang;
                ?>
"><?php 
                _e('Edit', 'qtranslate');
                ?>
</a></td>
		<td><?php 
                if ($q_config['default_language'] == $lang) {
                    _e('Default', 'qtranslate');
                } else {
                    ?>
<a class="delete" href="<?php 
                    echo $clean_uri;
                    ?>
&delete=<?php 
                    echo $lang;
                    ?>
"><?php 
                    _e('Delete', 'qtranslate');
                    ?>
</a><?php 
                }
                ?>
</td>
	</tr>
<?php 
            }
        }
        ?>
	</tbody>
</table>
<p><?php 
        _e('Enabling a language will cause qTranslate to update the Gettext-Database for the language, which can take a while depending on your server\'s connection speed.', 'qtranslate');
        ?>
</p>
</div>
</div><!-- /col-right -->

<div id="col-left">
<div class="col-wrap">
<div class="form-wrap">
<h3><?php 
        _e('Add Language', 'qtranslate');
        ?>
</h3>
<form name="addcat" id="addcat" method="post" class="add:the-list: validate">
<?php 
        qtranslate_language_form($language_code, $language_code, $language_name, $language_locale, $language_date_format, $language_time_format, $language_flag, $language_default, $language_na_message);
        ?>
<p class="submit"><input type="submit" name="submit" value="<?php 
        _e('Add Language &raquo;', 'qtranslate');
        ?>
" /></p>
</form></div>
</div>
</div><!-- /col-left -->

</div><!-- /col-container -->
<?php 
    }
}
コード例 #16
0
function mqtrans_postUpdated($post_ID, $after, $before)
{
    global $wpdb, $q_config;
    // Don't handle custom post types
    if (!in_array($after->post_type, array('post', 'page')) && !in_array($after->post_type, $q_config['allowed_custom_post_types'])) {
        return;
    }
    $titleMap = array();
    $contentMap = array();
    $cu = wp_get_current_user();
    if ($cu->has_cap('edit_users') || empty($q_config['ul_lang_protection'])) {
        $title = qtrans_split($after->post_title, true, $titleMap);
        foreach ($title as $k => $v) {
            if (qtrans_isEmptyContent($v)) {
                unset($title[$k]);
            }
        }
        $content = qtrans_split($after->post_content, true, $contentMap);
        foreach ($content as $k => $v) {
            if (qtrans_isEmptyContent($v)) {
                unset($content[$k]);
            }
        }
    } else {
        $titleBeforeMap = array();
        $titleBefore = qtrans_split($before->post_title, true, $titleBeforeMap);
        $titleAfter = qtrans_split($after->post_title, true, $titleMap);
        foreach ($titleAfter as $k => $v) {
            if (!mqtrans_currentUserCanEdit($k)) {
                unset($titleAfter[$k], $titleMap[$k]);
            }
        }
        $title = array_merge($titleBefore, $titleAfter);
        $titleMap = array_merge($titleBeforeMap, $titleMap);
        $contentBeforeMap = array();
        $contentBefore = qtrans_split($before->post_content, true, $contentBeforeMap);
        $contentAfter = qtrans_split($after->post_content, true, $contentMap);
        foreach ($contentAfter as $k => $v) {
            if (qtrans_isEmptyContent($v) || !mqtrans_currentUserCanEdit($k)) {
                unset($contentAfter[$k], $contentMap[$k]);
            }
        }
        $content = array_merge($contentBefore, $contentAfter);
        $contentMap = array_merge($contentBeforeMap, $contentMap);
    }
    $data = array('post_title' => qtrans_join($title, $titleMap), 'post_content' => qtrans_join($content, $contentMap));
    if (get_magic_quotes_gpc()) {
        $data = stripslashes_deep($data);
    }
    $where = array('ID' => $post_ID);
    $wpdb->update($wpdb->posts, $data, $where);
}
コード例 #17
0
ファイル: mqtranslate_core.php プロジェクト: Roman921/Step-21
function qtrans_use($lang, $text, $show_available = false)
{
    global $q_config;
    // return full string if language is not enabled
    if (!qtrans_isEnabled($lang) || is_string($text) && !preg_match('/(<!--:[a-z]{2}-->|\\[:[a-z]{2}\\])/', $text)) {
        return $text;
    }
    if (is_array($text)) {
        // handle arrays recursively
        foreach ($text as &$t) {
            $t = qtrans_use($lang, $t, $show_available);
        }
        return $text;
    }
    if (is_object($text) || $text instanceof __PHP_Incomplete_Class) {
        foreach ($text as &$t) {
            $t = qtrans_use($lang, $t, $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;
        }
    }
    unset($lang_text);
    // if no languages available show full text
    if (empty($available_languages)) {
        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'] && !empty($content[$q_config['default_language']])) {
            $str = $content[$q_config['default_language']];
            if ($q_config['show_displayed_language_prefix']) {
                $str = "(" . $q_config['language_name'][$q_config['default_language']] . ") " . $str;
            }
            return $str;
        }
        foreach ($content as $language => $lang_text) {
            if (!empty($lang_text)) {
                $str = $lang_text;
                if ($q_config['show_displayed_language_prefix']) {
                    $str = "(" . $q_config['language_name'][$language] . ") " . $str;
                }
                return $str;
            }
        }
    }
    // display selection for available languages
    $available_languages = array_unique($available_languages);
    $language_list = "";
    if (preg_match('/%LANG:([^:]*):([^%]*)%/S', $q_config['not_available'][$lang], $match)) {
        $normal_seperator = $match[1];
        $end_seperator = $match[2];
        // build available languages string backward
        foreach ($available_languages as $k => $language) {
            if ($k == 1) {
                $language_list = $end_seperator . $language_list;
            } else {
                if ($k > 1) {
                    $language_list = $normal_seperator . $language_list;
                }
            }
            $language_list = "<a href=\"" . qtrans_convertURL('', $language) . "\">" . $q_config['language_name'][$language] . "</a>" . $language_list;
        }
    }
    return "<p>" . preg_replace('/%LANG:([^:]*):([^%]*)%/S', $language_list, $q_config['not_available'][$lang]) . "</p>";
}
コード例 #18
0
ファイル: save.php プロジェクト: HeliWang/EngSoc-Website
			<tbody>
				<tr>
					<th><label for="Gallery_title"><?php 
_e('Title', $this->plugin_name);
?>
</label>
					<?php 
echo $this->Html->help(__('Give this gallery a title/name for your own reference.', $this->plugin_name));
?>
</th>
					<td>
						<?php 
if ($this->language_do()) {
    ?>
							<?php 
    $titles = qtrans_split($this->Gallery->data->title);
    ?>
							<div id="gallery-title-tabs">
								<ul>
									<?php 
    foreach ($languages as $language) {
        ?>
										<li><a href="#gallery-title-tabs-<?php 
        echo $language;
        ?>
"><?php 
        echo $this->language_flag($language);
        ?>
</a></li>
									<?php 
    }
コード例 #19
0
    function create_field($field)
    {
        if (!acf_qtranslate_enabled()) {
            acf_field_wysiwyg::create_field($field);
            return;
        }
        $defaults = array('toolbar' => 'full', 'media_upload' => 'yes');
        $field = array_merge($defaults, $field);
        global $q_config, $wp_version;
        $languages = qtrans_getSortedLanguages(true);
        $values = qtrans_split($field['value'], $quicktags = true);
        echo '<div class="multi-language-field multi-language-field-wysiwyg">';
        foreach ($languages as $language) {
            $class = $language === end($languages) ? 'wp-switch-editor current-language' : 'wp-switch-editor';
            echo '<a class="' . $class . '" data-language="' . $language . '">' . $q_config['language_name'][$language] . '</a>';
        }
        foreach ($languages as $language) {
            $value = $values[$language];
            $id = 'wysiwyg' . $field['id'] . "[{$language}]";
            $name = $field['name'] . "[{$language}]";
            $class = $language === end($languages) ? 'acf_wysiwyg wp-editor-wrap current-language' : 'acf_wysiwyg wp-editor-wrap';
            ?>
			<div id="wp-<?php 
            echo $id;
            ?>
-wrap" class="<?php 
            echo $class;
            ?>
" data-toolbar="<?php 
            echo $field['toolbar'];
            ?>
" data-upload="<?php 
            echo $field['media_upload'];
            ?>
" data-language="<?php 
            echo $language;
            ?>
">
				<?php 
            if ($field['media_upload'] == 'yes') {
                ?>
					<?php 
                if (version_compare($wp_version, '3.3', '<')) {
                    ?>
						<div id="editor-toolbar">
							<div id="media-buttons" class="hide-if-no-js">
								<?php 
                    do_action('media_buttons');
                    ?>
							</div>
						</div>
					<?php 
                } else {
                    ?>
						<div id="wp-<?php 
                    echo $id;
                    ?>
-editor-tools" class="wp-editor-tools">
							<div id="wp-<?php 
                    echo $id;
                    ?>
-media-buttons" class="hide-if-no-js wp-media-buttons">
								<?php 
                    do_action('media_buttons');
                    ?>
							</div>
						</div>
					<?php 
                }
                ?>
				<?php 
            }
            ?>
				<div id="wp-<?php 
            echo $id;
            ?>
-editor-container" class="wp-editor-container">
					<textarea id="<?php 
            echo $id;
            ?>
" class="wp-editor-area" name="<?php 
            echo $name;
            ?>
" ><?php 
            echo wp_richedit_pre($value);
            ?>
</textarea>
				</div>
			</div>
		<?php 
        }
        echo '</div>';
    }
コード例 #20
0
    function create_field($field)
    {
        global $q_config;
        $languages = qtrans_getSortedLanguages(true);
        $values = qtrans_split($field['value'], $quicktags = true);
        $currentLanguage = $this->plugin->get_active_language();
        echo '<div class="multi-language-field multi-language-field-image">';
        foreach ($languages as $language) {
            $class = 'wp-switch-editor';
            if ($language === $currentLanguage) {
                $class .= ' current-language';
            }
            echo '<a class="' . $class . '" data-language="' . $language . '">' . $q_config['language_name'][$language] . '</a>';
        }
        $base_class = $field['class'];
        $base_name = $field['name'];
        foreach ($languages as $language) {
            $value = $values[$language];
            $o = array('class' => '', 'url' => '');
            if ($value && is_numeric($value)) {
                $url = wp_get_attachment_image_src($value, $field['preview_size']);
                $o['class'] = 'active';
                $o['url'] = $url[0];
            }
            $field['class'] = $base_class;
            if ($language === $currentLanguage) {
                $field['class'] .= ' current-language';
                $o['class'] .= ' current-language';
            }
            $field['name'] = $base_name . '[' . $language . ']';
            ?>
			<div class="acf-image-uploader clearfix <?php 
            echo $o['class'];
            ?>
" data-preview_size="<?php 
            echo $field['preview_size'];
            ?>
" data-library="<?php 
            echo $field['library'];
            ?>
" data-language="<?php 
            echo $language;
            ?>
" >
				<input class="acf-image-value" type="hidden" name="<?php 
            echo $field['name'];
            ?>
" value="<?php 
            echo $value;
            ?>
" />
				<div class="has-image">
					<div class="hover">
						<ul class="bl">
							<li><a class="acf-button-delete ir" href="#"><?php 
            _e("Remove", 'acf');
            ?>
</a></li>
							<li><a class="acf-button-edit ir" href="#"><?php 
            _e("Edit", 'acf');
            ?>
</a></li>
						</ul>
					</div>
					<img class="acf-image-image" src="<?php 
            echo $o['url'];
            ?>
" alt="" />
				</div>
				<div class="no-image">
					<p><?php 
            _e('No image selected', 'acf');
            ?>
 <input type="button" class="button add-image" value="<?php 
            _e('Add Image', 'acf');
            ?>
" />
				</div>
			</div>
		<?php 
        }
        echo '</div>';
    }
コード例 #21
0
function qs_UpdateOrder($order_id)
{
    global $wpdb;
    $orders = get_option('qs_orders');
    if (!is_array($orders)) {
        return false;
    }
    foreach ($orders as $key => $order) {
        // search for wanted order
        if ($order['order']['order_id'] != $order_id) {
            continue;
        }
        // query server for updates
        $order['order']['order_url'] = get_option('home');
        $result = qs_queryQS(QS_RETRIEVE_TRANSLATION, $order['order']);
        $orders[$key]['status'] = $result['order_comment'];
        // update db if post is updated
        if (isset($result['order_status']) && $result['order_status'] == QS_STATE_CLOSED) {
            $order['post_id'] = intval($order['post_id']);
            $post =& get_post($order['post_id']);
            $title = qtrans_split($post->post_title);
            $content = qtrans_split($post->post_content);
            $title[$order['target_language']] = $result['order_translated_title'];
            $content[$order['target_language']] = $result['order_translated_text'];
            $post->post_title = qtrans_join($title);
            $post->post_content = qtrans_join($content);
            $wpdb->show_errors();
            $wpdb->query('UPDATE ' . $wpdb->posts . ' SET post_title="' . mysql_escape_string($post->post_title) . '", post_content = "' . mysql_escape_string($post->post_content) . '" WHERE ID = "' . $post->ID . '"');
            wp_cache_add($post->ID, $post, 'posts');
            unset($orders[$key]);
        }
        update_option('qs_orders', $orders);
        return true;
    }
    return false;
}
コード例 #22
0
    function render_field($field)
    {
        global $q_config;
        $languages = qtrans_getSortedLanguages(true);
        $values = qtrans_split($field['value'], $quicktags = true);
        $currentLanguage = $this->plugin->get_active_language();
        // enqueue
        acf_enqueue_uploader();
        // vars
        $div = array('class' => 'acf-image-uploader acf-cf', 'data-preview_size' => $field['preview_size'], 'data-library' => $field['library'], 'data-mime_types' => $field['mime_types']);
        $input_atts = array('type' => 'hidden', 'name' => $field['name'], 'value' => $field['value'], 'data-name' => 'value-id');
        $url = '';
        echo '<div class="multi-language-field multi-language-field-image">';
        foreach ($languages as $language) {
            $class = 'wp-switch-editor';
            if ($language === $currentLanguage) {
                $class .= ' current-language';
            }
            echo '<a class="' . $class . '" data-language="' . $language . '">' . $q_config['language_name'][$language] . '</a>';
        }
        foreach ($languages as $language) {
            $input_atts['name'] = $field['name'] . '[' . $language . ']';
            $field['value'] = $values[$language];
            $div['data-language'] = $language;
            $div['class'] = 'acf-image-uploader acf-cf';
            // has value?
            if ($field['value'] && is_numeric($field['value'])) {
                $url = wp_get_attachment_image_src($field['value'], $field['preview_size']);
                $url = $url[0];
                $div['class'] .= ' has-value';
            }
            // basic?
            $basic = !current_user_can('upload_files');
            if ($basic) {
                $div['class'] .= ' basic';
            }
            if ($language === $currentLanguage) {
                $div['class'] .= ' current-language';
            }
            ?>
			<div <?php 
            acf_esc_attr_e($div);
            ?>
>
				<div class="acf-hidden">
					<?php 
            acf_hidden_input(array('name' => $input_atts['name'], 'value' => $field['value'], 'data-name' => 'id'));
            ?>
				</div>
				<div class="view show-if-value acf-soh">
					<img data-name="image" src="<?php 
            echo $url;
            ?>
" alt=""/>
					<ul class="acf-hl acf-soh-target">
						<?php 
            if (!$basic) {
                ?>
							<li><a class="acf-icon dark" data-name="edit" href="#"><i class="acf-sprite-edit"></i></a></li>
						<?php 
            }
            ?>
						<li><a class="acf-icon dark" data-name="remove" href="#"><i class="acf-sprite-delete"></i></a></li>
					</ul>
				</div>
				<div class="view hide-if-value">
					<?php 
            if ($basic) {
                ?>
						<?php 
                if ($field['value'] && !is_numeric($field['value'])) {
                    ?>
							<div class="acf-error-message"><p><?php 
                    echo $field['value'];
                    ?>
</p></div>
						<?php 
                }
                ?>
						<input type="file" name="<?php 
                echo $field['name'];
                ?>
" id="<?php 
                echo $field['id'];
                ?>
" />
					<?php 
            } else {
                ?>
						<p style="margin:0;"><?php 
                _e('No image selected', 'acf');
                ?>
 <a data-name="add" class="acf-button" href="#"><?php 
                _e('Add Image', 'acf');
                ?>
</a></p>
					<?php 
            }
            ?>
				</div>
			</div>

		<?php 
        }
        echo '</div>';
    }
コード例 #23
0
 /**
  * MigrateEvents::POST_ROW_SAVE event handler.
  *
  * @param GetResponseEvent $event
  *   Instance of Symfony\Component\HttpKernel\Event\GetResponseEvent.
  */
 public function updateTranslations(GetResponseEvent $event)
 {
     $row = $event->getRow();
     $migrate_src_values = $row->getSource();
     $migrate_dest_values = $row->getDestination();
     // Make sure that this post processing is enables for this migration.
     if (!isset($migrate_src_values['constants']['post_save_process']) || $migrate_src_values['constants']['post_save_process'] != 'DonkeymediaMigratePostSave') {
         return $event;
     }
     module_load_include('inc', 'donkeymedia_migrate', 'qtranslate_parser');
     // These are defined in migration.yml.
     $available_languages = $row->getSource()['constants']['available_languages'];
     $default_language = $row->getDestination()['langcode'];
     // Unset default language from available langguages.
     if (($key = array_search($default_language, $available_languages)) !== FALSE) {
         unset($available_languages[$key]);
     }
     $migrated_node = $event->destinationIdValues[0];
     $entity = node_load($migrated_node);
     // Get multilingual fields in all languages.
     $titles = qtrans_split($migrate_src_values['title'], $available_languages);
     $body_values = qtrans_split($migrate_src_values['content:encoded'], $available_languages);
     foreach ($available_languages as $lang) {
         // Preprocess Body:
         // Remove Caption and prepare Image.
         $caption_tags = $this->getTags($body_values[$lang]);
         // Remove Caption.
         $body_value = $this->getTags($body_values[$lang], TRUE);
         // Only add translation if we have some translated Stuff.
         $check_values = isset($titles[$lang]) && strlen($titles[$lang]) > 0 && isset($body_values[$lang]) && strlen($body_values[$lang]) > 0;
         $check_content = TRUE;
         //($titles[$lang] != $entity->getTitle()) || $body_values[$lang] != $entity->get('body');
         $has_images = count($caption_tags['caption']['values']) > 0;
         if ($has_images) {
             $X = FALSE;
         }
         if ($check_values && $check_content) {
             $values = array('created' => $migrate_dest_values['created'], 'uid' => $migrate_dest_values['uid'], 'sticky' => $migrate_dest_values['sticky'], 'status' => $migrate_dest_values['status'], 'title' => $titles[$lang], 'body' => array('value' => $body_value, 'format' => $migrate_dest_values['body']['format']));
             if ($has_images) {
                 $images = array();
                 foreach ($caption_tags['caption']['values'] as $img) {
                     $q = db_select('migrate_map_donkeymedia_file', 'm')->fields('m', array('sourceid1', 'destid1'))->condition('m.sourceid1', $img['attachment'])->execute();
                     $map = $q->fetchObject();
                     $file = \Drupal::entityManager()->getStorage('file')->load($map->destid1);
                     if (is_object($file)) {
                         $image_values = array('target_id' => $file->id(), 'alt' => $img['alt'], 'title' => $img['caption']);
                         $images[] = $image_values;
                         $file = FALSE;
                     } else {
                         trigger_error("Can't find file:", E_USER_WARNING);
                         var_dump($img);
                     }
                 }
                 // Directly setting the values doesn't work :/
                 // $values['field_image'] = $images;
             }
             $translated_entity = $entity->addTranslation($lang, $values);
             if ($has_images && !empty($images)) {
                 $translated_entity->save();
                 $translated_entity->field_image->setValue($images);
                 $translated_entity->setChangedTime($migrate_dest_values['changed']);
                 $translated_entity->save();
             } else {
                 $translated_entity->setChangedTime($migrate_dest_values['changed']);
                 $translated_entity->save();
             }
         }
     }
     $map = $event->getMigration()->getIdMap();
     $map->saveIdMapping($event->getRow(), array($migrated_node));
 }
コード例 #24
0
    function create_field($field)
    {
        global $q_config, $wp_version;
        $languages = qtrans_getSortedLanguages(true);
        $values = qtrans_split($field['value'], $quicktags = true);
        $currentLanguage = $this->plugin->get_active_language();
        echo '<div class="multi-language-field multi-language-field-wysiwyg">';
        foreach ($languages as $language) {
            $class = $language === $currentLanguage ? 'wp-switch-editor current-language' : 'wp-switch-editor';
            echo '<a class="' . $class . '" data-language="' . $language . '">' . $q_config['language_name'][$language] . '</a>';
        }
        foreach ($languages as $language) {
            $value = $values[$language];
            $id = 'wysiwyg-' . $field['id'] . '-' . uniqid();
            $name = $field['name'] . "[{$language}]";
            $class = $language === $currentLanguage ? 'acf_wysiwyg wp-editor-wrap current-language' : 'acf_wysiwyg wp-editor-wrap';
            ?>
			<div id="wp-<?php 
            echo $id;
            ?>
-wrap" class="<?php 
            echo $class;
            ?>
" data-toolbar="<?php 
            echo $field['toolbar'];
            ?>
" data-upload="<?php 
            echo $field['media_upload'];
            ?>
" data-language="<?php 
            echo $language;
            ?>
">
				<?php 
            if (user_can_richedit() && $field['media_upload'] == 'yes') {
                ?>
					<?php 
                if (version_compare($wp_version, '3.3', '<')) {
                    ?>
						<div id="editor-toolbar">
							<div id="media-buttons" class="hide-if-no-js">
								<?php 
                    do_action('media_buttons');
                    ?>
							</div>
						</div>
					<?php 
                } else {
                    ?>
						<div id="wp-<?php 
                    echo $id;
                    ?>
-editor-tools" class="wp-editor-tools">
							<div id="wp-<?php 
                    echo $id;
                    ?>
-media-buttons" class="hide-if-no-js wp-media-buttons">
								<?php 
                    do_action('media_buttons');
                    ?>
							</div>
						</div>
					<?php 
                }
                ?>
				<?php 
            }
            ?>
				<div id="wp-<?php 
            echo $id;
            ?>
-editor-container" class="wp-editor-container">
					<textarea id="<?php 
            echo $id;
            ?>
" class="qtx-wp-editor-area" name="<?php 
            echo $name;
            ?>
" ><?php 
            if (user_can_richedit()) {
                echo wp_richedit_pre($field['value']);
            } else {
                echo wp_htmledit_pre($field['value']);
            }
            ?>
</textarea>
				</div>
			</div>
		<?php 
        }
        echo '</div>';
    }
コード例 #25
0
 /**
  * 
  * get excerpt from post id
  */
 public static function getExcerptById($postID, $limit = 55, $delimiter = ' ', $limit_type = 'words')
 {
     $post = get_post($postID);
     $excerpt = $post->post_excerpt;
     if (function_exists("qtrans_split")) {
         $arrExcerpt = qtrans_split($excerpt);
         $lang = get_bloginfo("language");
         if ($lang) {
             $arrLang = explode("-", $lang);
             $lang = $arrLang[0];
             $lang = strtolower($lang);
         }
         if (isset($arrExcerpt[$lang])) {
             $excerpt = $arrExcerpt[$lang];
         }
     }
     $excerpt = trim($excerpt);
     if (empty($excerpt)) {
         $excerpt = $post->post_content;
     }
     $excerpt = strip_tags($excerpt, "<b><br><br/><i><small>");
     if ($limit_type == 'words') {
         $excerpt = UniteFunctionsBiz::getTextIntro($excerpt, $limit, $delimiter);
     } else {
         $excerpt = UniteFunctionsBiz::getTextIntroChar($excerpt, $limit);
     }
     return $excerpt;
 }
コード例 #26
0
ファイル: summary-page.php プロジェクト: popovdenis/kmst
    ?>
/wp-admin/page.php?action=edit&post=<?php 
    echo $post->ID;
    ?>
">
			<?php 
    echo str_repeat('&mdash;', $post->qtm_depth) . '&nbsp;' . 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>';
}
?>
コード例 #27
0
				</tr>
				<tr>
					<th><label for="Slide.description"><?php 
_e('Description', $this->plugin_name);
?>
</label>
					<?php 
echo $this->Html->help(__('The description is specifically used for the information bar if you have that turned on.', $this->plugin_name));
?>
</th>
					<td>
						<?php 
if ($this->language_do()) {
    ?>
							<?php 
    $descriptions = qtrans_split($this->Slide->data->description);
    ?>
							<div id="slide-description-tabs">
								<ul>
									<?php 
    foreach ($languages as $language) {
        ?>
										<li><a href="#slide-description-tabs-<?php 
        echo $language;
        ?>
"><?php 
        echo $this->language_flag($language);
        ?>
</a></li>
									<?php 
    }