function balise_URL_PAGE_dist($p) { $code = interprete_argument_balise(1, $p); $args = interprete_argument_balise(2, $p); if ($args == NULL) { $args = "''"; } if ($s = trouver_nom_serveur_distant($p)) { // si une fonction de generation des url a ete definie pour ce connect l'utiliser // elle devra aussi traiter le cas derogatoire type=page if (function_exists($f = 'generer_generer_url_' . $s)) { if ($args and $args !== "''") { $code .= ", {$args}"; } $code = $f('page', $code, $s); return $p; } $s = 'connect=' . addslashes($s); $args = ($args and $args !== "''") ? "{$args} . '&{$s}'" : "'{$s}'"; } if (!$code) { $noentities = $p->etoile ? "'&'" : ''; $code = "url_de_base() . preg_replace(',^./,', '', self({$noentities}))"; } else { if (!$args) { $args = "''"; } $noentities = $p->etoile ? ", true" : ''; $code = "generer_url_public({$code}, {$args}{$noentities})"; } $p->code = $code; spip_log("connect vaut {$s} ca donne " . $p->code . " args {$args}"); #$p->interdire_scripts = true; return $p; }
/** * Teste si une balise est appliquée sur une base distante * * La fonction loge une erreur si la balise est utilisée sur une * base distante et retourne false dans ce cas. * * @note * Il faudrait savoir traiter les formulaires en local * tout en appelant le serveur SQL distant. * En attendant, cette fonction permet de refuser une authentification * sur quelque-chose qui n'a rien a voir. * * @param Champ $p * AST positionné sur la balise * @return bool * * - true : La balise est autorisée * - false : La balise est interdite car le serveur est distant **/ function balise_distante_interdite($p) { $nom = $p->id_boucle; if ($nom and trouver_nom_serveur_distant($p)) { spip_log($nom . ':' . $p->nom_champ . ' ' . _T('zbug_distant_interdit')); return false; } return true; }