1: <?php
2: if ( ! defined( 'ABSPATH' ) ) die( "Access denied" );
3:
4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 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:
37: $langs = ( $only_enabled ) ? CMLLanguage::get_enableds() : CMLLanguage::get_all();
38:
39:
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:
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: 72: 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: ?>