Overview

Classes

  • CMLLanguage
  • CMLPost
  • CMLTranslations
  • CMLUtils

Functions

  • cml_dropdown_langs
  • cml_get_browser_lang
  • cml_get_menu
  • cml_get_notice
  • cml_get_the_link
  • cml_is_homepage
  • cml_show_flags
  • Overview
  • Function
  • Tree
 1: <?php
 2: if ( ! defined( 'ABSPATH' ) ) die( "Access denied" );
 3: 
 4: /**
 5:  * Print html dropdown list with all enabled languages
 6:  *
 7:  * @param string $className - class to assign to <ul> list
 8:  * @param int/string $selected - id / slug of selected language
 9:  * @param boolean $link - if true change language and refresh page
10:  * @param boolean $none - if true show "no language" item
11:  * @param string $none_text - the text of "none" element
12:  * @param int/string $none_id - id of none element
13:  * @param boolean $only_enabled - show only enabled languages?
14:  * @param string $size - size of flags ( "tiny" or "small" )
15:  * @param $style - item styles
16:  * <ul>
17:  *                <li>
18:  *                  show ( string ) - choose what to display:<br />
19:  *                  <i>default: text</i>
20:  *                </li>
21:  *                <ul>
22:  *                   <li>text: show only language name</li>
23:  *                   <li>slug: show language slug</li>
24:  *                   <li>none: show no text</li>
25:  *               </ul>
26:  * </ul>
27:  */
28: function cml_dropdown_langs( $className, $selected, $link = false, $none = false, $none_text = null, $none_id = "", $only_enabled = 1, $size = CML_FLAG_TINY, $style = "both" ) {
29:   $classNoLink = ( $link ) ? "" : " cml-lang-js-sel ";
30:   echo '<ul id="cml-lang" class="cml-lang-sel ' . $className . $classNoLink . '">';
31: 
32:   if( ! is_numeric( $selected ) ) {
33:     $selected = CMLLanguage::get_id_by_slug( $selected );
34:   }
35: 
36:   //All enabled languages
37:   $langs = ( $only_enabled ) ? CMLLanguage::get_enableds() : CMLLanguage::get_all();
38: 
39:   //selected language
40:   if( $selected != 0 ) {
41:     $url = ( $link ) ? cml_get_the_link( $langs[ $selected ], true, false, true ) : "#";
42:     echo @_cml_dropdown_lang_li( $url, $langs[ $selected ], 0, false, $size, $style );
43:   } else {
44:     echo _cml_dropdown_lang_li( "#", $none_text, "", false, $size, $style );
45:   }
46: 
47:   echo '<input type="hidden" name="cml-lang" value="' . $selected . '" />';
48:   echo '<ul>';
49:   foreach( $langs as $lang ) {
50:     $url = ( $link ) ? cml_get_the_link( $lang, true, false, true ) : "#";
51: 
52:     echo _cml_dropdown_lang_li( $url, $lang, $selected, 0, $size, $style );
53:   }
54: 
55:   //Append None element at bottom of the list
56:   if( $none ) {
57:     echo '</li>';
58: 
59:     if( $none )
60:       echo _cml_dropdown_lang_li( "#", $none_text, ( $selected == "0" ) ? "x" : "", 0, false, $style );
61:   }
62:   
63: echo <<< EOT
64:     </li>
65:   </ul>
66: </ul>
67: EOT;
68: }
69: 
70: /**
71:  * @ignore
72:  * @internal
73:  */
74: function _cml_dropdown_lang_li( $url, $lang = null, $hide_id = 0, $close = true, $size = CML_FLAG_TINY, $style ) {
75:   $id = ( is_object( $lang ) ) ? $lang->id : "x";
76:   $hide = ( $hide_id === $id ) ? "item-hidden" : "";
77: 
78:   $show = array( "", "both", "text", "flag", "slug", "fslug" );
79:   $display = array_search( $style, $show );
80: 
81:   $img = ( ( $display != 2 || $display != 4 ) && $id != "x" ) ? CMLLanguage::get_flag_img( $id, $size ) : "";
82:   $name = ( $display < 3 && $id != "x" ) ? CMLLanguage::get_by_id( $id )->cml_language : $lang;
83:   $name = ( $display == 4 ) ? CMLLanguage::get_by_id( $id )->cml_language_slug : $name;
84: 
85:   if( ! empty( $name ) ) $name = "<span>$name</span>";
86: 
87:   $close = ( $close ) ? "</li>" : "";
88: return <<< EOT
89:   <li class="cml-lang-$id $hide">
90:     <a cml-lang="$id" href="$url">
91:       $img
92:       $name
93:     </a>
94:   $close
95: EOT;
96: }
97: 
98: ?>
API documentation generated by ApiGen 2.8.0