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:   if( "#" == $url ) $url = "javascript:void()";
 88: 
 89:   $close = ( $close ) ? "</li>" : "";
 90: return <<< EOT
 91:   <li class="cml-lang-$id $hide">
 92:     <a cml-lang="$id" href="$url">
 93:       $img
 94:       $name
 95:     </a>
 96:   $close
 97: EOT;
 98: }
 99: 
100: ?>
API documentation generated by ApiGen 2.8.0