21 if (strrpos($element,
'this') ===
false && strrpos($element,
'event') ===
false) {
22 $element=
'"' . $element .
'"';
28 if (is_array($value)) {
29 $array=array_map(
"Ubiquity\js\self::_prep_value", $value);
30 $value=implode(
",", $array);
31 }
else if (strrpos($value,
'this') ===
false && strrpos($value,
'event') ===
false && is_numeric($value) ===
false) {
32 $value=
'"' . $value .
'"';
41 $codeObject=
new JsCode($code);
42 self::$codes[]=$codeObject;
47 $code=
"$( document ).ready(function() {\n" . $code .
"}\n);";
48 return preg_filter(
"/(<script[^>]*?>)?(.*)(<\/script>)?/si",
"<script>$2 </script>\n", $code, 1);
52 $url=self::_correctAjaxUrl($url);
53 $retour=
"url='" . $url .
"';\n";
55 if (UString::endsWith($url,
"/"))
59 $retour.=
"url=url+'" . $slash .
"'+$(this).val();\n";
60 else if ($attr !== null && $attr !==
"")
61 $retour.=
"url=url+'" . $slash .
"'+($(this).attr('" . $attr .
"')||'');\n";
67 if ($responseElement !==
"") {
68 $responseElement=self::_prep_value($responseElement);
70 return $responseElement;
74 if (UString::endsWith($url,
"/"))
75 $url=substr($url, 0, strlen($url) - 1);
76 if (strncmp($url,
'http://', 7) != 0 && strncmp($url,
'https://', 8) != 0) {
82 public static function addParam($parameter, $params) {
83 $params=preg_filter(
"/[\{]?([^\\}]*)[\}]?/si",
"$1", $params, 1);
84 $values=explode(
",", $params);
86 return "{" . implode(
",", $values) .
"}";
92 public static function bindToElement($element, $event, $jsCode, $parameters=array()) {
95 $function=
"function(event){";
96 if ($preventDefault) {
97 $function.=
"event.preventDefault();";
99 if ($stopPropagation) {
100 $function.=
"event.stopPropagation();";
102 if (isset(self::$condition)) {
103 $jsCode=
"if(" . self::$condition .
"){" . $jsCode .
"}";
104 if (isset(self::$else)) {
105 $jsCode.=
" else{" . self::$else .
"}";
108 if (!self::$persists) {
109 self::$condition=NULL;
112 $function.=$jsCode .
"}";
113 return self::addToCodes(
"$(" . self::_prep_element($element) .
").bind('" . $event .
"'," . $function .
");");
123 public static function executeOn($element, $event, $script, $parameters=array(
"preventDefault"=>
false,
"stopPropagation"=>
false)) {
124 return self::bindToElement($element, $event, $script, $parameters);
133 return self::addToCodes($script);
142 protected static function _ajax($url, $responseElement=
"", $method=
"get", $parameters=array()) {
147 $retour=self::_getAjaxUrl($url, $attr);
149 $retour.=
"$." . $method .
"(url," . $params .
").done(function( data ) {\n";
150 if ($responseElement !==
"")
151 $retour.=
"\t$('" . $responseElement .
"').html( data );\n";
152 $retour.=
"\t" . $jsCallback .
"\n 163 public static function _get($url, $responseElement=
"", $parameters=array()) {
164 return self::_ajax($url, $responseElement,
"get", $parameters);
173 public static function get($url, $responseElement=
"", $parameters=array()) {
174 return self::addToCodes(self::_get($url, $responseElement, $parameters));
183 public static function _post($url, $responseElement=
"", $parameters=array()) {
184 return self::_ajax($url, $responseElement,
"post", $parameters);
193 public static function post($url, $responseElement=
"", $parameters=array()) {
194 return self::addToCodes(self::_post($url, $responseElement, $parameters));
204 public static function _postForm($url, $form, $responseElement, $parameters=array()) {
209 $retour=
"url='" . $url .
"';\n";
210 if ($attr ==
"value")
211 $retour.=
"url=url+'/'+$(this).val();\n";
213 $retour.=
"url=url+'/'+$(this).attr('" . $attr .
"');\n";
214 $retour.=
"$.post(url,$(" . $form .
").serialize()).done(function( data ) {\n";
215 if ($responseElement !==
"")
216 $retour.=
"\t$('" . $responseElement .
"').html( data );\n";
217 $retour.=
"\t" . $jsCallback .
"\n 220 $retour=
"$('#" . $form .
"').validate({submitHandler: function(form) { 223 $retour.=
"$('#" . $form .
"').submit();\n";
235 public static function postForm($url, $form, $responseElement, $parameters=array()) {
236 return self::addToCodes(self::_postForm($url, $form, $responseElement, $parameters));
244 public static function _setVal($element, $value, $jsCallback=
"") {
245 return "$(" . self::_prep_element($element) .
").val(" . $value .
");\n" . $jsCallback;
253 public static function setVal($element, $value, $jsCallback=
"") {
254 return self::addToCodes(self::_setVal($element, $value, $jsCallback));
257 public static function _setHtml($element, $html=
"", $jsCallback=
"") {
258 return "$(" . self::_prep_element($element) .
").html('" . $html .
"');\n" . $jsCallback;
266 public static function setHtml($element, $html=
"", $jsCallback=
"") {
267 return self::addToCodes(self::_setHtml($element, $html, $jsCallback));
270 private static function _setAttr($element, $attr, $value=
"", $jsCallback=
"") {
271 return "$('" . $element .
"').attr('" . $attr .
"'," . $value .
");\n" . $jsCallback;
280 public static function setAttr($element, $attr, $value=
"", $jsCallback=
"") {
281 return self::addToCodes(self::_setAttr($element, $attr, $value, $jsCallback));
291 public static function _doJquery($element, $someThing, $param=
"", $jsCallback=
"") {
292 return "$(" . self::_prep_element($element) .
")." . $someThing .
"(" . self::_prep_value($param) .
");\n" . $jsCallback;
302 public static function doJquery($element, $someThing, $param=
"", $jsCallback=
"") {
303 return self::addToCodes(self::_doJquery($element, $someThing, $param, $jsCallback));
315 public static function getOn($event, $element, $url, $responseElement=
"", $parameters=array()) {
316 return self::bindToElement($element, $event, self::_get($url, $responseElement, $parameters), $parameters);
328 public static function postOn($event, $element, $url, $responseElement=
"", $parameters=array()) {
329 return self::bindToElement($element, $event, self::_post($url, $responseElement, $parameters), $parameters);
342 public static function postFormOn($event, $element, $url, $form, $responseElement=
"", $parameters=array()) {
343 return self::bindToElement($element, $event, self::_postForm($url, $form, $responseElement, $parameters), $parameters);
355 public static function setOn($event, $element, $elementToModify, $value=
"", $parameters=array(
"preventDefault"=>
false,
"stopPropagation"=>
false)) {
357 return self::bindToElement($element, $event, self::_setVal($elementToModify, $value, $jsCallback), $parameters);
369 public static function setHtmlOn($event, $element, $elementToModify, $value=
"", $jsCallback=
"") {
370 return self::bindToElement($element, $event, self::_setHtml($elementToModify, $value, $jsCallback));
381 public static function doJqueryOn($element, $event, $elementToModify, $someThing, $param=
"", $jsCallback=
"") {
382 return self::bindToElement($element, $event, self::_doJquery($elementToModify, $someThing, $param, $jsCallback));
387 if (is_array($values)) {
388 foreach ( $values as $value ) {
389 $retour.=
"$('#" . $elementPrefix . $value .
"').attr('checked', true);\n";
393 return self::addToCodes($retour);
402 foreach ( self::$codes as $c ) {
403 $result.=$c->getCode();
405 return self::addScript($result);
412 self::$codes=array ();
431 self::$condition=NULL;
433 self::$persists=
false;
static _getResponseElement($responseElement)
static executeOn($element, $event, $script, $parameters=array("preventDefault"=>false,"stopPropagation"=>false))
Exécute le script passé en paramètre, sur l'évènement $event généré sur $element. ...
static _getAjaxUrl($url, $attr)
static clearCodes()
Efface les codes js à exécuter.
static _setAttr($element, $attr, $value="", $jsCallback="")
static addParam($parameter, $params)
static _prep_value($value)
Utilitaires d'insertion de scripts côté client (JQuery)
static postOn($event, $element, $url, $responseElement="", $parameters=array())
Effectue un post vers $url sur l'évènement $event de $element en passant les paramètres $params puis ...
static _postForm($url, $form, $responseElement, $parameters=array())
Effectue un POST d'un formulaire en ajax.
static compile()
Retourne l'ensemble du code js à exécuter, entouré des balises script.
static doJqueryOn($element, $event, $elementToModify, $someThing, $param="", $jsCallback="")
Appelle la méthode JQuery $someThing sur $elementToModify avec passage éventuel du paramètre $param...
static setVal($element, $value, $jsCallback="")
Affecte une valeur à un élément HTML.
static _post($url, $responseElement="", $parameters=array())
Effectue un POST en ajax.
static setHtmlOn($event, $element, $elementToModify, $value="", $jsCallback="")
Modifie la valeur de $elementToModify et lui affecte $valeur sur l'évènement $event de $element...
static getDefaultValue($array, $key, $default)
static addToCodes($code)
Ajoute $code à la liste des codes à exécuter.
static setHtml($element, $html="", $jsCallback="")
Affecte du html à un élément.
static post($url, $responseElement="", $parameters=array())
Effectue un POST en ajax.
static postFormOn($event, $element, $url, $form, $responseElement="", $parameters=array())
Effectue un post vers $url sur l'évènement $event de $element en passant les paramètres du formulaire...
static setChecked($elementPrefix, $values)
static _prep_element($element)
static doJquery($element, $someThing, $param="", $jsCallback="")
Appelle la méthode JQuery $someThing sur $element avec passage éventuel du paramètre $param...
static _setHtml($element, $html="", $jsCallback="")
static getOn($event, $element, $url, $responseElement="", $parameters=array())
Effectue un get vers $url sur l'évènement $event de $element en passant les paramètres $params puis a...
static _doJquery($element, $someThing, $param="", $jsCallback="")
Appelle la méthode JQuery $someThing sur $element avec passage éventuel du paramètre $param...
static setAttr($element, $attr, $value="", $jsCallback="")
Modifie l'attribut $attr d'un élément html.
static _ajax($url, $responseElement="", $method="get", $parameters=array())
Effectue une requête en ajax (POST ou GET)
static _get($url, $responseElement="", $parameters=array())
Effectue un GET en ajax.
static getBooleanStr($value)
static _correctAjaxUrl($url)
static setOn($event, $element, $elementToModify, $value="", $parameters=array("preventDefault"=>false,"stopPropagation"=>false))
Modifie la valeur de $elementToModify et lui affecte $valeur sur l'évènement $event de $element...
static endCondition()
Désactive une condition activée avec l'option $persists à true.
static bindToElement($element, $event, $jsCode, $parameters=array())
Associe du code javascript à exécuter sur l'évènement $event d'un élément DOM $element.
static postForm($url, $form, $responseElement, $parameters=array())
Effectue un POST d'un formulaire en ajax.
static startCondition($condition, $else=NULL, $persists=true)
Pose une condition sur l'exécution du code associé à des évènements.
static execute($script)
Exécute le script passé en paramètre.
static _setVal($element, $value, $jsCallback="")
Affecte une valeur à un élément HTML.