本文整理汇总了PHP中champ_sql函数的典型用法代码示例。如果您正苦于以下问题:PHP champ_sql函数的具体用法?PHP champ_sql怎么用?PHP champ_sql使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了champ_sql函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: balise_PETITION_dist
/**
* #PETITION
* retourne '' si l'article courant n'a pas de petition
* le texte de celle-ci sinon (et ' ' si il est vide)
* cf FORMULAIRE_PETITION
*
* http://code.spip.net/@balise_PETITION_dist
*
* @param $p
* @return
*/
function balise_PETITION_dist($p)
{
$nom = $p->id_boucle;
$p->code = "quete_petitions(" . champ_sql('id_article', $p) . ",'" . $p->boucles[$nom]->type_requete . "','" . $nom . "','" . $p->boucles[$nom]->sql_serveur . "', \$Cache)";
$p->interdire_scripts = false;
return $p;
}
示例2: balise_BOUTONS_ADMIN_FORUM_dist
/**
* Generer les boutons d'admin des forum selon les droits du visiteur
* en SPIP >= 2.1 uniquement
*
* @param object $p
* @return object
*/
function balise_BOUTONS_ADMIN_FORUM_dist($p)
{
if (($_id = interprete_argument_balise(1, $p)) === NULL) {
$_id = champ_sql('id_forum', $p);
}
$p->code = "\n'<'.'?php\n\tif (isset(\$GLOBALS[\\'visiteur_session\\'][\\'statut\\'])\n\t AND \$GLOBALS[\\'visiteur_session\\'][\\'statut\\']==\\'0minirezo\\'\n\t\tAND (\$id = '.intval({$_id}).')\n\t\tAND\tinclude_spip(\\'inc/autoriser\\')\n\t\tAND autoriser(\\'moderer\\',\\'forum\\',\$id)) {\n\t\t\tinclude_spip(\\'inc/actions\\');include_spip(\\'inc/filtres\\');\n\t\t\techo \"<div class=\\'boutons spip-admin actions modererforum\\'>\"\n\t\t\t. bouton_action(_T(\\'forum:icone_supprimer_message\\'),generer_action_auteur(\\'instituer_forum\\',\$id.\\'-off\\',ancre_url(self(),\\'forum\\')),\\'poubelle\\')\n\t\t\t. bouton_action(_T(\\'forum:icone_bruler_message\\'),generer_action_auteur(\\'instituer_forum\\',\$id.\\'-spam\\',ancre_url(self(),\\'forum\\')),\\'spam\\')\n\t\t\t. \"</div>\";\n\t\t}\n?'.'>'";
$p->interdire_scripts = false;
return $p;
}
示例3: balise_AVANCEMENT_CAMPAGNE_dist
function balise_AVANCEMENT_CAMPAGNE_dist($p)
{
if ($p->type_requete != "souscription_campagnes") {
$msg = array('zbug_champ_hors_boucle', array('champ' => '#AVANCEMENT_CAMPAGNE'));
erreur_squelette($msg, $p);
} else {
$_campagne = champ_sql('id_souscription_campagne', $p);
$_type_objectif = champ_sql('type_objectif', $p);
$_objectif_initial = champ_sql('objectif_initial', $p);
$p->code = "calcul_avancement_campagne({$_campagne}, {$_type_objectif}, {$_objectif_initial})";
$p->interdire_scripts = false;
}
return $p;
}
示例4: balise_LESMOTS_dist
function balise_LESMOTS_dist($p){
$i_boucle = $p->nom_boucle ? $p->nom_boucle : $p->id_boucle;
// #LESMOTS hors boucle ? ne rien faire
if (!$type = $p->boucles[$i_boucle]->type_requete) {
$p->code = "''";
$p->interdire_scripts = false;
return $p;
}
// le compilateur 1.9.2 ne calcule pas primary pour les tables secondaires
// il peut aussi arriver une table sans primary (par ex: une vue)
if (!($primary = $p->boucles[$i_boucle]->primary)) {
include_spip('inc/vieilles_defs'); # 1.9.2 pour trouver_def_table
list($nom, $desc) = trouver_def_table(
$p->boucles[$i_boucle]->type_requete, $p->boucles[$i_boucle]);
$primary = $desc['key']['PRIMARY KEY'];
}
$primary = explode(',',$primary);
$id = array();
foreach($primary as $key)
$id[] = champ_sql(trim($key),$p);
$primary = implode(".'-'.",$id);
$p->code = "classe_boucle_crayon('"
. $type
."',"
.sinon(interprete_argument_balise(1,$p),"''")
.","
. $primary
.").' '";
$p->interdire_scripts = false;
return $p;
// Cherche le champ 'lesmots' dans la pile
$_lesmots = champ_sql('lesmots', $p);
// Si le champ n'existe pas (cas de spip_articles), on applique
// le fond les_mots.html en passant id_article dans le contexte;
// dans le cas contraire on prend le champ SQL 'lesmots'
if ($_lesmots AND $_lesmots != '$Pile[0][\'lesmots\']') {
$p->code = "safehtml($_lesmots)";
// $p->interdire_scripts = true;
} else {
if ($cle = $p->boucles[$p->id_boucle]->primary)
$id = champ_sql($primary, $p);
$p->code = "recuperer_fond('fonds/lesmots', array($cle => $id))";
// securite imposee par recuperer_fond()
$p->interdire_scripts = false;
}
return $p;
}
示例5: balise_INFO__dist
/**
* Generer n'importe quel info pour un objet : #INFO_TITRE{article, #ENV{id_article}}
* Utilise la fonction generer_info_entite() de inc/filtres
* se reporter a sa documentation
*
*/
function balise_INFO__dist($p)
{
$info = $p->nom_champ;
$type_objet = interprete_argument_balise(1, $p);
$id_objet = interprete_argument_balise(2, $p);
if ($info === 'INFO_' or !$type_objet or !$id_objet) {
$msg = _T('zbug_balise_sans_argument', array('balise' => ' INFO_'));
erreur_squelette($msg, $p);
$p->interdire_scripts = true;
return $p;
} else {
$info_sql = strtolower(substr($info, 5));
$code = "generer_info_entite({$id_objet}, {$type_objet}, '{$info_sql}'" . ($p->etoile ? "," . _q($p->etoile) : "") . ")";
$p->code = champ_sql($info, $p, $code);
$p->interdire_scripts = true;
return $p;
}
}
示例6: balise_CS_SOMMAIRE_dist
function balise_CS_SOMMAIRE_dist($p) {
// id de l'article a trouver pour retourner son texte
$texte = ($v = interprete_argument_balise(1,$p))!==NULL ? 'cs_champ_sql('.$v.')' : champ_sql('texte', $p);
if ($p->type_requete == 'articles' || $v!==NULL) {
$p->code = 'cs_supprime_notes('.$texte.')';
} else {
$p->code = "''";
}
$p->interdire_scripts = true;
return $p;
}
示例7: balise_MODELE_dist
function balise_MODELE_dist($p) {
$_contexte = argumenter_inclure($p->param, true, $p, $p->boucles, $p->id_boucle, false);
// erreur de syntaxe = fond absent
// (2 messages d'erreur SPIP pour le prix d'un, mais pas d'erreur PHP
if (!$_contexte) $contexte = array();
if (!isset($_contexte[1])) {
$msg = array('zbug_balise_sans_argument', array('balise' => ' MODELE'));
erreur_squelette($msg, $p);
} else {
$nom = $_contexte[1];
unset($_contexte[1]);
if (preg_match("/^\s*'[^']*'/s", $nom))
$nom = "'modeles/" . substr($nom,1);
else $nom = "'modeles/' . $nom";
// Incoherence dans la syntaxe du contexte. A revoir.
// Reserver la cle primaire de la boucle courante si elle existe
if (isset($p->boucles[$p->id_boucle]->primary)) {
$primary = $p->boucles[$p->id_boucle]->primary;
if (!strpos($primary,',')) {
$id = champ_sql($primary, $p);
$_contexte[] = "'$primary'=>".$id;
$_contexte[] = "'id'=>".$id;
}
}
$_contexte[] = "'recurs'=>(++\$recurs)";
$connect = '';
if (isset($p->boucles[$p->id_boucle]))
$connect = $p->boucles[$p->id_boucle]->sql_serveur;
$_options = memoriser_contexte_compil($p);
$_options = "'compil'=>array($_options), 'trim'=>true"
. (isset($_contexte['ajax'])?", 'ajax'=>true":'');
$page = sprintf(CODE_RECUPERER_FOND, $nom, 'array(' . join(',', $_contexte) .')', $_options, _q($connect));
$p->code = "\n\t(((\$recurs=(isset(\$Pile[0]['recurs'])?\$Pile[0]['recurs']:0))>=5)? '' :\n\t$page)\n";
$p->interdire_scripts = false; // securite assuree par le squelette
}
return $p;
}
示例8: logo_survol
function logo_survol($id_objet, $_id_objet, $type, $align, $fichier, $lien, $p, $suite)
{
$code = "quete_logo('{$id_objet}', '" . ($suite == '_SURVOL' ? 'off' : ($suite == '_NORMAL' ? 'on' : 'ON')) . "', {$_id_objet}," . ($suite == '_RUBRIQUE' ? champ_sql("id_rubrique", $p) : ($type == 'rubrique' ? "quete_parent({$_id_objet})" : "''")) . ", " . intval($fichier) . ")";
if ($fichier) {
return $code;
}
$code = "\n((!is_array(\$l = {$code})) ? '':\n (" . '"<img class=\\"spip_logos\\" alt=\\"\\"' . ($align ? " align=\\\"{$align}\\\"" : '') . ' src=\\"$l[0]\\"" . $l[2] . ($l[1] ? " onmouseover=\\"this.src=\'$l[1]\'\\" onmouseout=\\"this.src=\'$l[0]\'\\"" : "") . \' />\'))';
if (!$lien) {
return $code;
}
return '(strlen($logo=' . $code . ')?\'<a href="\' .' . $lien . ' . \'">\' . $logo . \'</a>\':\'\')';
}
示例9: balise_INTRODUCTION
function balise_INTRODUCTION($p) {
$type = $p->type_requete;
$_texte = champ_sql('texte', $p);
$_descriptif = "''";
$_id = 0;
$_lgr = "600";
switch ($type) {
case 'articles':
$_chapo = champ_sql('chapo', $p);
$_descriptif = champ_sql('descriptif', $p);
$_texte = "(strlen($_descriptif) OR chapo_redirigetil($_chapo)) ? '' : $_chapo . \"\\n\\n\" . $_texte";
$_lgr = "500";
break;
case 'rubriques':
$_descriptif = champ_sql('descriptif', $p);
break;
case 'breves':
$_lgr = "300";
break;
}
// longueur en parametre ?
if(($v = interprete_argument_balise(1,$p))!==NULL) $_lgr = "-intval($v)" ;
$_id = champ_sql(id_table_objet($racc = objet_type($type)), $p);
$p->code = "cs_introduction($_texte, $_descriptif, $_lgr, $_id, '$racc', \$connect)";
#$p->interdire_scripts = true;
$p->etoile = '*'; // propre est deja fait dans le calcul de l'intro
return $p;
}
示例10: balise_CS_SOMMAIRE_dist
function balise_CS_SOMMAIRE_dist($p)
{
if ($p->type_requete == 'articles') {
$p->code = 'cs_supprime_notes(' . champ_sql('texte', $p) . ')';
} else {
$p->code = "''";
}
$p->interdire_scripts = true;
return $p;
}
示例11: balise_LISTER_VALEURS_dist
/**
* Liste les valeurs des champs de type liste (enum, radio, case)
*
* Ces champs enregistrent en base la valeur de la clé
* Il faut donc transcrire clé -> valeur
*
* @example
* ```
* #LISTER_VALEURS{champ}
* #LISTER_VALEURS{champ, " > "}
* #LISTER_VALEURS**{champ} // retourne un tableau cle/valeur
* ```
*
* @note
* Pour des raisons d'efficacité des requetes SQL
* le paramètre "champ" ne peut être calculé
* ``#LISTER_VALEURS{#GET{champ}}`` ne peut pas fonctionner.
*
* Si cette restriction est trop limitative, on verra par la suite
* pour l'instant, on laisse comme ca...
*
* @balise
* @param Champ $p
* AST au niveau de la balise
* @return Champ
* AST complété par le code PHP de la balise
*/
function balise_LISTER_VALEURS_dist($p) {
// prendre nom de la cle primaire de l'objet pour calculer sa valeur
$id_boucle = $p->nom_boucle ? $p->nom_boucle : $p->id_boucle;
// s'il n'y a pas de nom de boucle, on ne peut pas fonctionner
if (!isset($p->boucles[$id_boucle])) {
$msg = array('zbug_champ_hors_boucle', array('champ' => ' LISTER_VALEURS'));
erreur_squelette($msg, $p);
$p->code = "''";
return $p;
}
$objet = $p->boucles[$id_boucle]->id_table;
$_id_objet = $p->boucles[$id_boucle]->primary;
$id_objet = champ_sql($_id_objet, $p);
// recuperer les parametres : colonne sql (champ)
if (!$colonne = interprete_argument_balise(1, $p)) {
$msg = array('zbug_balise_sans_argument', array('balise' => ' LISTER_VALEURS'));
erreur_squelette($msg, $p);
$p->code = "''";
return $p;
}
$separateur = interprete_argument_balise(2, $p);
if (!$separateur) $separateur = "', '";
// demander la colonne dans la requete SQL
// $colonne doit etre un texte 'nom_du_champ'
if ($p->param[0][1][0]->type != 'texte') {
$msg = array('cextras:zbug_balise_argument_non_texte', array('nb'=>1, 'balise' => ' LISTER_VALEURS'));
erreur_squelette($msg, $p);
$p->code = "''";
return $p;
}
$texte_colonne = $p->param[0][1][0]->texte;
$valeur = champ_sql($texte_colonne, $p);
// generer le code d'execution
$p->code = "calculer_balise_LISTER_VALEURS('$objet', $colonne, $valeur)";
// retourne un array si #LISTER_VALEURS**
// sinon fabrique une chaine avec le separateur designe.
if ($p->etoile != "**") {
$p->code = "(is_array(\$a = $p->code) ? join($separateur, \$a) : " . $p->code . ")";
}
return $p;
}
示例12: balise_PUBLIE_dist
/**
* Compile la balise `#PUBLIE` qui indique si un objet est publié ou non
*
* @balise
* @link http://www.spip.net/5545
* @see objet_test_si_publie()
* @example
* ```
* #PUBLIE : porte sur la boucle en cours
* [(#PUBLIE{article, 3}|oui) ... ] : pour l'objet indiqué
* ```
*
* @param Champ $p
* Pile au niveau de la balise
* @return Champ
* Pile complétée par le code à générer
*/
function balise_PUBLIE_dist($p)
{
if (!($_type = interprete_argument_balise(1, $p))) {
$_type = _q($p->type_requete);
$_id = champ_sql($p->boucles[$p->id_boucle]->primary, $p);
} else {
$_id = interprete_argument_balise(2, $p);
}
$connect = '';
if (isset($p->boucles[$p->id_boucle])) {
$connect = $p->boucles[$p->id_boucle]->sql_serveur;
}
$p->code = "(objet_test_si_publie(" . $_type . ",intval(" . $_id . ")," . _q($connect) . ")?' ':'')";
$p->interdire_scripts = false;
return $p;
}
示例13: balise_URL_SITE_dist
function balise_URL_SITE_dist($p)
{
$code = champ_sql('url_site', $p);
if (strpos($code, '@$Pile[0]') !== false) {
$code = generer_generer_url('site', $p);
if ($code === NULL) {
return NULL;
}
} else {
if (!$p->etoile) {
$code = "calculer_url({$code},'','url', \$connect)";
}
}
$p->code = $code;
$p->interdire_scripts = false;
return $p;
}
示例14: balise_EDIT
/**
* Balise indiquant un champ SQL crayonnable
*
* @note
* Si cette fonction est absente, `balise_EDIT_dist()` déclarée par SPIP
* ne retourne rien
*
* @example
* ```
* <div class="#EDIT{texte}">#TEXTE</div>
* <div class="#EDIT{ps}">#PS</div>
* ```
*
* @param Champ $p
* Pile au niveau de la balise
* @return Champ
* Pile complétée par le code à générer
**/
function balise_EDIT($p)
{
// le code compile de ce qui se trouve entre les {} de la balise
$label = interprete_argument_balise(1, $p);
// Verification si l'on est dans le cas d'une meta
// #EDIT{meta-descriptif_site} ou #EDIT{meta-demo/truc}
if (preg_match('/meta-(.*)\'/', $label, $meta)) {
$type = 'meta';
$label = 'valeur';
$primary = $meta[1];
$p->code = "classe_boucle_crayon('" . $type . "','" . $label . "'," . "str_replace('/', '__', '{$primary}')" . ").' '";
$p->interdire_scripts = false;
return $p;
}
$i_boucle = $p->nom_boucle ? $p->nom_boucle : $p->id_boucle;
// #EDIT hors boucle? ne rien faire
if (!isset($p->boucles[$i_boucle]) or !($type = $p->boucles[$i_boucle]->type_requete)) {
$p->code = "''";
$p->interdire_scripts = false;
return $p;
}
// crayon sur une base distante 'nua__article-intro-5'
if ($distant = $p->boucles[$i_boucle]->sql_serveur) {
$type = $distant . '__' . $type;
}
// le compilateur 1.9.2 ne calcule pas primary pour les tables secondaires
// il peut aussi arriver une table sans primary (par ex: une vue)
if (!($primary = $p->boucles[$i_boucle]->primary)) {
include_spip('inc/vieilles_defs');
# 1.9.2 pour trouver_def_table
if (function_exists('trouver_def_table')) {
list($nom, $desc) = trouver_def_table($p->boucles[$i_boucle]->type_requete, $p->boucles[$i_boucle]);
$primary = $desc['key']['PRIMARY KEY'];
}
}
// On rajoute ici un debug dans le cas où aucune clé primaire n'est trouvée.
// Cela peut se présenter par exemple si on utilise #EDIT{monchamp} directement
// dans une boucle CONDITION sans faire référence au nom de la boucle d'au dessus.
if (!$primary) {
erreur_squelette(_T('crayons:absence_cle_primaire'), $p);
}
$primary = explode(',', $primary);
$id = array();
foreach ($primary as $key) {
$id[] = champ_sql(trim($key), $p);
}
$primary = implode(".'-'.", $id);
$p->code = "classe_boucle_crayon('" . $type . "'," . sinon($label, "''") . "," . $primary . ").' '";
$p->interdire_scripts = false;
return $p;
}
示例15: balise_PUBLIE_dist
/**
* Savoir si on objet est publie ou non
*
* @param <type> $p
* @return <type>
*/
function balise_PUBLIE_dist($p) {
$type = $p->type_requete;
$_statut = champ_sql('statut',$p);
$_texte = champ_sql('texte', $p);
$_descriptif = "''";
switch ($type){
case 'articles':
$p->code = "$_statut=='publie'";
if ($GLOBALS['meta']["post_dates"] == 'non'){
$_date_pub = champ_sql('date',$p);
$p->code .= "AND $_date_pub<quete_date_postdates()";
}
break;
case 'auteurs':
$_id = champ_sql('id_auteur',$p);
$p->code = "sql_countsel('spip_articles AS AR JOIN spip_auteurs_articles AS AU ON AR.id_article=AU.id_article',
'AU.id_auteur=intval('.$_id.') AND AR.statut=\'publie\''"
.(($GLOBALS['meta']['post_dates'] == 'non')?".' AND AR.date<'.sql_quote(quete_date_postdates())":'')
.")>0";
break;
// le cas des documents prend directement en compte la mediatheque
// car le fonctionnement par defaut de SPIP <=2.0 est trop tordu et insatisfaisant
case 'documents':
$p->code = "$_statut=='publie'";
if ($GLOBALS['meta']["post_dates"] == 'non'){
$_date_pub = champ_sql('date_publication',$p);
$p->code .= "AND $_date_pub<quete_date_postdates()";
}
break;
default:
$p->code = "($_statut=='publie'?' ':'')";
break;
}
$p->code = "((".$p->code.")?' ':'')";
#$p->interdire_scripts = true;
return $p;
}