本文整理汇总了PHP中sql_in函数的典型用法代码示例。如果您正苦于以下问题:PHP sql_in函数的具体用法?PHP sql_in怎么用?PHP sql_in使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了sql_in函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: notifications_instituermessage_dist
/**
* Envoyer les notifications consecutives a l'envoi d'un message
* (ie passage en statut=publie)
*
* @param string $quoi
* @param int $id_message
* @param array $options
*/
function notifications_instituermessage_dist($quoi, $id_message, $options = array())
{
// ne devrait jamais se produire
if ($options['statut'] == $options['statut_ancien']) {
spip_log("statut inchange", 'notifications');
return;
}
if ($options['statut'] == 'publie') {
include_spip('inc/messages');
$type = sql_getfetsel('type', 'spip_messages', 'id_message=' . intval($id_message));
$vue = "notifications/message_{$type}_publie";
if (trouver_fond($vue)) {
$envoyer_mail = charger_fonction('envoyer_mail', 'inc');
// pour nettoyer_titre_email
$texte = recuperer_fond($vue, array('id_message' => $id_message));
// recuperer tous les emails des auteurs qui ont recu le message dans leur boite
// si c'est une annonce generale, on envoie a tout le monde
include_spip('inc/messages');
$where = array("email!=''", "statut!='5poubelle'", sql_in('statut', messagerie_statuts_destinataires_possibles()));
// pour une annonce : tous ceux qui recoivent des messages
if ($type !== 'affich') {
$ids = sql_allfetsel('id_auteur', 'spip_auteurs_liens', "objet='message' AND id_objet=" . intval($id_message));
$ids = array_map('reset', $ids);
$where[] = sql_in('id_auteur', $ids);
}
$emails = sql_allfetsel('email', "spip_auteurs", $where);
$emails = array_map('reset', $emails);
include_spip('inc/notifications');
notifications_envoyer_mails($emails, $texte);
}
}
}
示例2: autoriser_article_creerevenementdans_dist
/**
* Autorisation d'ajout d'un evenement a un article
*
* @param string $faire
* @param string $quoi
* @param int $id
* @param int $qui
* @param array $options
* @return bool
*/
function autoriser_article_creerevenementdans_dist($faire, $quoi, $id, $qui, $options)
{
if (!$id) {
return false;
// interdit de creer un evenement sur un article vide !
}
// si on a le droit de modifier l'article alors on a peut-etre le droit d'y creer un evenement
$afficher = false;
if (autoriser('modifier', 'article', $id, $qui)) {
$afficher = true;
// un article avec des evenements a toujours le droit
if (!sql_countsel('spip_evenements', array('id_article=' . intval($id)), sql_in('statut', array('prop', 'publie')))) {
// si au moins une rubrique a le flag agenda
if (sql_countsel('spip_rubriques', 'agenda=1')) {
// alors il faut le flag agenda dans cette branche !
$afficher = false;
include_spip('inc/rubriques');
$id_rubrique = sql_getfetsel('id_rubrique', 'spip_articles', 'id_article=' . intval($id));
if ($id_rubrique > 0) {
// Rubriques classiques de SPIP
$in = calcul_hierarchie_in($id_rubrique);
$afficher = sql_countsel('spip_rubriques', sql_in('id_rubrique', $in) . ' AND agenda=1');
} else {
// Rubrique négative utilisee dans le plugin Page unique
$afficher = true;
}
}
}
}
return $afficher;
}
示例3: adhclub_revision_adhsaison_objets_lies
/**
* Mettre a jour les liens objets/saisons.
* si saisons vaut '', associe toutes les saisons a(aux) objets(s).
* $ids est une liste d'id.
* $type est le type de l'objet (assur, coti).
* $operation = add/set/del pour ajouter, affecter uniquement, ou supprimer les objets listes dans ids.
*
* @param int/array $saisons
* @param int/array $ids
* @param string $type
*/
function adhclub_revision_adhsaison_objets_lies($saisons, $ids, $type, $operation = 'add')
{
include_spip('inc/autoriser');
$in = "";
if ($saisons) {
$in = sql_in('id_saison', $saisons);
}
$liste = sql_allfetsel('id_saison', 'spip_adhsaisons', $in);
foreach ($liste as $row) {
if ($operation == 'del') {
// on supprime les ids listes
//sql_delete("spip_{$type}s",array("id_saison=".intval($row['id_saison']),sql_in("id_$type",$ids)));
//sql_delete("spip_{$type}s",array("id_saison=".intval($row['id_saison']),sql_in("id_$type",$ids)));
} else {
if (!$ids) {
$ids = array();
} elseif (!is_array($ids)) {
$ids = array($ids);
}
// si c'est une affectation exhaustive, supprimer les existants qui ne sont pas dans ids
// si c'est un ajout, ne rien effacer
if ($operation == 'set') {
//sql_delete("spip_adhassurs_{$type}s",array("id_saison=".intval($row['id_saison']),sql_in("id_$type",$ids,"NOT")));
//sql_delete("spip_adhcotis_{$type}s",array("id_saison=".intval($row['id_saison']),sql_in("id_$type",$ids,"NOT")));
}
$deja = array_map('reset', sql_allfetsel("id_{$type}", "spip_{$type}s", "id_saison=" . intval($row['id_saison'])));
$add = array_diff($ids, $deja);
//foreach ($add as $id) {
//if (autoriser('affectersaisons',$type,$id,null,array('id_saison'=>$row['id_saison'])))
//sql_insertq("spip_saisons_{$type}s",array('maj'=>'NOW()','id_saison'=>$row['id_saison'],"id_$type"=>intval($id)));
//}
}
}
}
示例4: action_documenter_post
function action_documenter_post($r)
{
// - sign indique le portfolio image ou document, dans le cas de
// la page exec=articles
// - id est l'id_objet (id_article ou id_rubrique etc)
// - type est 'article' (ou 'rubrique')
// - id_document le doc a supprimer ou a delier de l'objet
// SI VIDE, on supprime tous les documents du type SIGN
// (bouton "supprimer tous les documents")
list(, $sign, $id, $type, ,$id_document) = $r;
if ($id_document) {
supprimer_lien_document($id_document, $type, $id);
}
else {
$obj = "id_objet=".intval($id)." AND objet=".sql_quote($type);
$typdoc = sql_in('docs.extension', array('gif', 'jpg', 'png'), $sign ? '' : 'NOT');
$s = sql_select('docs.id_document AS id_doc', "spip_documents AS docs LEFT JOIN spip_documents_liens AS l ON l.id_document=docs.id_document", "$obj AND docs.mode='document' AND $typdoc");
while ($t = sql_fetch($s)) {
supprimer_lien_document($t['id_doc'], $type, $id);
}
}
if ($type == 'rubrique') {
include_spip('inc/rubriques');
depublier_branche_rubrique_if($id);
}
}
示例5: genie_ajouter_date_redac_articles_dist
function genie_ajouter_date_redac_articles_dist($t)
{
//spip_log("Mon travail c est juste une ligne de log....",_LOG_INFO_IMPORTANTE);
// echo "1";
if ($resultats = sql_select("*", "spip_articles", "id_secteur=115 AND statut='publie' AND date_redac=0000-00-00")) {
// boucler sur les resultats
while ($res = sql_fetch($resultats)) {
// utiliser les resultats
// hierarchie des rubriques de l'article via la fonction de spip
include_spip("inc/rubriques");
$hierarchie = calcul_hierarchie_in($res['id_rubrique'], true);
// la date_numero et l'id_rubrique de la rubrique Numéro.
$numero = sql_fetsel("date_numero,id_rubrique", "spip_rubriques", array(sql_in('id_rubrique', $hierarchie), 'profondeur=1'));
// la date du numéro est à 0. On ne vérifie que l'année (?)
if (substr($numero['date_numero'], 0, 4) == '0000') {
spip_log("Article #" . $res['id_article'] . " : la date_redac n'a pas pu être modifiée. La rubrique #" . $numero['id_rubrique'] . " correspondant au numéro n'a pas de date valide.", 'vacarme_cron' . _LOG_INFO_IMPORTANTE);
// return 1; // 0 ou 1 ?
} else {
spip_log("Mise à jour de l'article #" . $res['id_article'], 'vacarme_cron' . _LOG_INFO_IMPORTANTE);
sql_updateq("spip_articles", array('date_redac' => $numero['date_numero']), "id_article=" . intval($res['id_article']));
// return 1;
}
}
}
return 1;
}
示例6: load_metadata
function load_metadata()
{
$ids_array = $this->_get_path_objects_ids_array();
if (!count($ids_array)) {
return false;
}
$sys_metadata_db_table =& db_table_factory::instance('sys_metadata');
$objects_metadata = $sys_metadata_db_table->get_list(sql_in('object_id', $ids_array), '', 'object_id');
if (!count($objects_metadata)) {
return false;
}
$ids_array = array_reverse($ids_array);
$got_keywords = false;
$got_description = false;
foreach ($ids_array as $object_id) {
if ($got_keywords && $got_description) {
break;
}
if (!$got_keywords && !empty($objects_metadata[$object_id]['keywords'])) {
$this->object_metadata['keywords'] = $objects_metadata[$object_id]['keywords'];
$got_keywords = true;
}
if (!$got_description && !empty($objects_metadata[$object_id]['description'])) {
$this->object_metadata['description'] = $objects_metadata[$object_id]['description'];
$got_description = true;
}
}
return true;
}
示例7: optimiser_base_revisions
/**
* Supprimer les révisions des objets disparus
*/
function optimiser_base_revisions()
{
/**
* On commence par récupérer la liste des types d'objet ayant au moins une révision
*/
$objets_revises = sql_select('objet', 'spip_versions', 'id_version=1', 'objet');
/**
* Pour chaque objet, on va contruire un tableau des identifiants disparus
* On supprimera ensuite les occurences dans spip_versions et spip_versions_fragments
*/
while ($objet = sql_fetch($objets_revises)) {
$in = array();
$table = table_objet_sql($objet['objet']);
$id_table_objet = id_table_objet($objet['objet']);
$res = sql_select("A.id_objet AS id_objet, A.objet AS objet", "spip_versions AS A LEFT JOIN {$table} AS R\n\t\t\t\t\t\t\tON R.{$id_table_objet}=A.id_objet AND A.objet=" . sql_quote($objet['objet']), "R.{$id_table_objet} IS NULL AND A.objet=" . sql_quote($objet['objet']) . " AND A.id_objet > 0", "A.id_objet", "A.id_objet");
while ($row = sql_fetch($res)) {
$in[$row['id_objet']] = true;
}
sql_free($res);
/**
* Si on a un array
* On supprime toute occurence des objets disparus dans :
* -* spip_versions
* -* spip_versions_fragments
*/
if ($in) {
foreach (array('spip_versions', 'spip_versions_fragments') as $table) {
sql_delete($table, sql_in('id_objet', array_keys($in)) . " AND objet=" . sql_quote($objet['objet']));
}
}
}
}
示例8: action_deplacer_objets_dist
function action_deplacer_objets_dist()
{
include_spip('inc/autoriser');
if (!autoriser('ecrire')) {
return plan_json_erreur(_T("plan:erreur_autorisation_insuffisante") . " " . _T("plan:erreur_deplacement_impossible"));
}
include_spip('base/objets');
$objet = objet_type(_request('objet'));
$table = table_objet_sql($objet);
$_id_table = id_table_objet($table);
$ids = _request('id_objet');
$id_rubrique_old = _request('id_rubrique_source');
$id_rubrique_new = _request('id_rubrique_destination');
if (!is_array($ids) or !$objet) {
return plan_json_erreur(_T("plan:erreur_aucun_identifiant") . " " . _T("plan:erreur_deplacement_impossible"));
}
if ($id_rubrique_old == $id_rubrique_new) {
return plan_json_erreur(_T("plan:erreur_rubriques_parentes_incorrectes") . " " . _T("plan:erreur_deplacement_impossible"));
}
if ($objet != 'rubrique' and !$id_rubrique_new) {
return plan_json_erreur(_T("plan:erreur_rubriques_parentes_incorrectes") . " " . _T("plan:erreur_deplacement_impossible"));
}
$ids = array_filter($ids);
if ($objet == 'rubrique') {
$champ = 'id_parent';
} else {
$champ = 'id_rubrique';
}
// ne modifier que si les emplacements n'ont pas déjà changé !
$ids = sql_allfetsel($_id_table, $table, array(sql_in($_id_table, $ids), $champ . '=' . sql_quote($id_rubrique_old)));
$ids = array_map('array_shift', $ids);
include_spip('action/editer_objet');
$errors = $success = array();
$modifs = array('id_parent' => $id_rubrique_new);
foreach ($ids as $id) {
if (autoriser('modifier', $objet, $id)) {
if ($err = objet_modifier($objet, $id, $modifs)) {
$errors["{$objet}-{$id}"] = $err;
} else {
$success["{$objet}-{$id}"] = true;
}
} else {
$errors["{$objet}-{$id}"] = _T("plan:erreur_autorisation_insuffisante") . " " . _T("plan:erreur_deplacement_impossible");
}
}
// dans certains cas… on ne reçoit pas d'erreur… et pourtant !
if (!$errors) {
// on verifie qu'il n'y a plus d'objets à l'ancien emplacement
$ids = sql_allfetsel($_id_table, $table, array(sql_in($_id_table, $ids), $champ . '=' . sql_quote($id_rubrique_old)));
$ids = array_map('array_shift', $ids);
if ($ids) {
foreach ($ids as $id) {
$errors["{$objet}-{$id}"] = _T("plan:erreur_deplacement");
unset($success["{$objet}-{$id}"]);
}
}
}
return plan_json_envoi(array('done' => true, 'success' => $success, 'errors' => $errors));
}
示例9: agenda_affiche_milieu
/**
* Inserer les infos d'agenda sur les articles et rubriques
*
* @param array $flux
* @return array
*/
function agenda_affiche_milieu($flux)
{
$e = trouver_objet_exec($flux['args']['exec']);
$out = "";
if ($e['type'] == 'rubrique' and autoriser('configurer') and $e['edition'] == false and $id_rubrique = intval($flux['args']['id_rubrique']) and autoriser('modifier', 'rubrique', $id_rubrique)) {
$activer = true;
$res = "";
$actif = sql_getfetsel('agenda', 'spip_rubriques', 'id_rubrique=' . intval($id_rubrique));
$statut = "-32";
$alt = "";
$voir = "";
if (!sql_countsel('spip_rubriques', 'agenda=1')) {
$res .= "<span class='small'>" . _T('agenda:aucune_rubrique_mode_agenda') . "</span><br />";
} else {
include_spip('inc/rubriques');
if (sql_countsel('spip_rubriques', sql_in('id_rubrique', calcul_hierarchie_in($id_rubrique)) . " AND agenda=1 AND id_rubrique<>" . intval($id_rubrique))) {
$alt = _T('agenda:rubrique_dans_une_rubrique_mode_agenda');
$activer = false;
$statut = "-ok-32";
$voir = _T('agenda:voir_evenements_rubrique');
} elseif (!$actif) {
$alt = _T('agenda:rubrique_sans_gestion_evenement') . '<br />';
$statut = "-non-32";
}
if ($actif) {
$alt = _T('agenda:rubrique_mode_agenda') . '<br />';
$statut = "-ok-32";
$voir = _T('agenda:voir_evenements_rubrique');
}
}
if (!$actif) {
if ($activer) {
$res .= bouton_action(_T('agenda:rubrique_activer_agenda'), generer_action_auteur('activer_agenda_rubrique', $id_rubrique, self()), 'ajax');
}
} else {
$res .= bouton_action(_T('agenda:rubrique_desactiver_agenda'), generer_action_auteur('activer_agenda_rubrique', "-{$id_rubrique}", self()), 'ajax');
}
if ($voir) {
$res .= " | <a href='" . generer_url_ecrire('evenements', "id_rubrique={$id_rubrique}") . "'>{$voir}</a>";
}
if ($res) {
$out .= boite_ouvrir(_T('agenda:agenda') . http_img_pack("agenda{$statut}.png", $alt, "class='statut'", $alt), 'simple agenda-statut') . $res . boite_fermer();
}
} elseif ($e['type'] == 'article' and $e['edition'] == false) {
$id_article = $flux['args']['id_article'];
$out .= recuperer_fond('prive/objets/contenu/article-evenements', $flux['args']);
}
if ($out) {
if ($p = strpos($flux['data'], '<!--affiche_milieu-->')) {
$flux['data'] = substr_replace($flux['data'], $out, $p, 0);
} else {
$flux['data'] .= $out;
}
}
return $flux;
}
示例10: BOUCLE_documenthtml_b8a8020987dd01f8087ad24f961857eb
function BOUCLE_documenthtml_b8a8020987dd01f8087ad24f961857eb(&$Cache, &$Pile, &$doublons, &$Numrows, $SP)
{
static $command = array();
static $connect;
$command['connect'] = $connect = '';
$in = array();
if (!is_array($a = @$Pile[0]['mode'])) {
$in[] = $a;
} else {
$in = array_merge($in, $a);
}
if (!isset($command['table'])) {
$command['table'] = 'documents';
$command['id'] = '_document';
$command['from'] = array('documents' => 'spip_documents', 'L1' => 'spip_types_documents');
$command['type'] = array();
$command['groupby'] = array();
$command['select'] = array("documents.id_document", "L1.titre AS type_document", "documents.taille", "documents.mode", "documents.largeur", "documents.hauteur", "documents.titre", "L1.mime_type");
$command['orderby'] = array();
$command['join'] = array('L1' => array('documents', 'extension'));
$command['limit'] = '';
$command['having'] = array();
}
$command['where'] = array(array('(documents.taille > 0 OR documents.distant=\'oui\')'), array('=', 'documents.id_document', sql_quote(@$Pile[0]['id_document'], '', 'bigint(21) NOT NULL AUTO_INCREMENT')), !(is_array(@$Pile[0]['mode']) ? count(@$Pile[0]['mode']) : strlen(@$Pile[0]['mode'])) ? '' : (is_array(@$Pile[0]['mode']) ? sql_in('documents.mode', sql_quote($in)) : array('=', 'documents.mode', sql_quote(@$Pile[0]['mode'], '', 'varchar(10) NOT NULL DEFAULT \'document\''))));
if (defined("_BOUCLE_PROFILER")) {
$timer = time() + microtime();
}
$t0 = "";
// REQUETE
$iter = IterFactory::create("SQL", $command, array('plugins-dist/medias/modeles/img.html', 'html_b8a8020987dd01f8087ad24f961857eb', '_document', 1, $GLOBALS['spip_lang']));
if (!$iter->err()) {
$SP++;
// RESULTATS
while ($Pile[$SP] = $iter->fetch()) {
$t0 .= '
' . vide($Pile['vars'][$_zzz = (string) 'image'] = interdire_scripts(($a = match(entites_html(sinon(table_valeur(@$Pile[0], (string) 'mode_force', null), interdire_scripts($Pile[$SP]['mode'])), true), 'image|vignette') or is_string($a) and strlen($a)) ? $a : interdire_scripts(entites_html(table_valeur(@$Pile[0], (string) 'embed', null), true)) ? ' ' : '')) . (($t1 = strval(table_valeur($Pile["vars"], (string) 'image', null))) !== '' ? $t1 . ('
<span class=\'spip_document_' . $Pile[$SP]['id_document'] . ' spip_documents' . (($t2 = strval(interdire_scripts(entites_html(table_valeur(@$Pile[0], (string) 'align', null), true)))) !== '' ? ' spip_documents_' . $t2 : '') . (($t2 = strval(interdire_scripts(entites_html(table_valeur(@$Pile[0], (string) 'class', null), true)))) !== '' ? ' ' . $t2 : '') . ' spip_lien_ok\'' . (($t2 = strval(interdire_scripts(match(entites_html(table_valeur(@$Pile[0], (string) 'align', null), true), 'left|right')))) !== '' ? '
style=\'float:' . $t2 . ';\'' : '') . '>
' . (($t2 = strval(interdire_scripts(entites_html(table_valeur(@$Pile[0], (string) 'lien', null), true)))) !== '' ? '<a href="' . $t2 . ('"' . (($t3 = strval(interdire_scripts(entites_html(table_valeur(@$Pile[0], (string) 'lien_class', null), true)))) !== '' ? ' class="' . $t3 . '"' : '') . '>') : '') . '<img src=\'' . vider_url(urlencode_1738(generer_url_entite($Pile[$SP]['id_document'], 'document', '', '', true))) . '\'' . (($t2 = strval(interdire_scripts($Pile[$SP]['largeur']))) !== '' ? ' width="' . $t2 . '"' : '') . (($t2 = strval(interdire_scripts($Pile[$SP]['hauteur']))) !== '' ? ' height="' . $t2 . '"' : '') . ' alt="' . interdire_scripts(texte_backend(typo(supprimer_numero($Pile[$SP]['titre']), "TYPO", $connect, $Pile[0]))) . '"' . (($t2 = strval(interdire_scripts(texte_backend(typo(supprimer_numero($Pile[$SP]['titre']), "TYPO", $connect, $Pile[0]))))) !== '' ? ' title="' . $t2 . '"' : '') . ' />' . interdire_scripts(entites_html(table_valeur(@$Pile[0], (string) 'lien', null), true) ? '</a>' : '') . '</span>
') : '') . (!table_valeur($Pile["vars"], (string) 'image', null) ? ' ' . ('
' . vide($Pile['vars'][$_zzz = (string) 'fichier'] = extraire_attribut(quete_logo_document(quete_document($Pile[$SP]['id_document'], ''), '', '', '', 0, 0, ''), 'src')) . '
' . vide($Pile['vars'][$_zzz = (string) 'width'] = extraire_attribut(quete_logo_document(quete_document($Pile[$SP]['id_document'], ''), '', '', '', 0, 0, ''), 'width')) . '
' . vide($Pile['vars'][$_zzz = (string) 'height'] = extraire_attribut(quete_logo_document(quete_document($Pile[$SP]['id_document'], ''), '', '', '', 0, 0, ''), 'height')) . '
<span class=\'spip_document_' . $Pile[$SP]['id_document'] . ' spip_documents' . (($t2 = strval(interdire_scripts(entites_html(table_valeur(@$Pile[0], (string) 'align', null), true)))) !== '' ? ' spip_documents_' . $t2 : '') . (($t2 = strval(interdire_scripts(entites_html(table_valeur(@$Pile[0], (string) 'class', null), true)))) !== '' ? ' ' . $t2 : '') . ' spip_lien_ok\'' . (($t2 = strval(interdire_scripts(match(entites_html(table_valeur(@$Pile[0], (string) 'align', null), true), 'left|right')))) !== '' ? '
style=\'float:' . $t2 . (';' . (($t3 = strval(table_valeur($Pile["vars"], (string) 'width', null))) !== '' ? ' width:' . $t3 . 'px;' : '') . '\'') : '') . '><a href="' . interdire_scripts(($a = entites_html(table_valeur(@$Pile[0], (string) 'lien', null), true) or is_string($a) and strlen($a)) ? $a : vider_url(urlencode_1738(generer_url_entite($Pile[$SP]['id_document'], 'document', '', '', true)))) . '"' . (($t2 = strval(interdire_scripts(entites_html(table_valeur(@$Pile[0], (string) 'lien', null), true) ? '' : 'type="' . interdire_scripts($Pile[$SP]['mime_type']) . '"'))) !== '' ? '
' . $t2 : '') . (($t2 = strval(interdire_scripts(texte_backend(typo(supprimer_numero($Pile[$SP]['titre']), "TYPO", $connect, $Pile[0]))))) !== '' ? ' title="' . $t2 . '"' : '') . '><img src=\'' . table_valeur($Pile["vars"], (string) 'fichier', null) . '\' width=\'' . table_valeur($Pile["vars"], (string) 'width', null) . '\' height=\'' . table_valeur($Pile["vars"], (string) 'height', null) . '\' alt=\'' . interdire_scripts(attribut_html(strlen(typo(supprimer_numero($Pile[$SP]['titre']), "TYPO", $connect, $Pile[0])) ? interdire_scripts(typo(supprimer_numero($Pile[$SP]['titre']), "TYPO", $connect, $Pile[0])) . ' {' . interdire_scripts($Pile[$SP]['type_document']) . '}' : interdire_scripts($Pile[$SP]['type_document']))) . '\' /></a></span>
') : '');
}
$iter->free();
}
if (defined("_BOUCLE_PROFILER") and 1000 * ($timer = time() + microtime() - $timer) > _BOUCLE_PROFILER) {
spip_log(intval(1000 * $timer) . "ms BOUCLE_document @ plugins-dist/medias/modeles/img.html", "profiler" . _LOG_AVERTISSEMENT);
}
return $t0;
}
示例11: instituer_un_forum
function instituer_un_forum($statut,$row){
$id_forum = $row['id_forum'];
$old = $row['statut'];
// rien a faire si pas de changement de statut
if ($old==$statut)
return;
// changer le statut de toute l'arborescence dependant de ce message
$id_messages = array($id_forum);
while ($id_messages) {
sql_updateq("spip_forum", array("statut" => $statut), sql_in("id_forum", $id_messages) ." AND statut = '$old'");
$id_messages = array_map('reset',sql_allfetsel("id_forum", "spip_forum", sql_in("id_parent", $id_messages)));
}
// Notifier de la publication du message, s'il etait 'prop'
if ($old=='prop' AND $statut=='publie') {
if ($notifications = charger_fonction('notifications', 'inc')) {
$notifications('forumvalide', $id_forum);
}
}
// mettre a jour la date du thread
// si publie, ou que tout le thread est prive,
// mettre la date du thread a 'maintenant' (date de publi du message)
// sinon prendre la date_heure du dernier message public
// c'est imparfait dans le cas ou les crayons ont ete utilises pour modifier ce message entre temps
// car la date_thread aurait cette derniere date alors que pas le message
// mais c'est au mieux de ce que l'on peut faire quand on depublie un SPAM ou supprime un message
if ($statut=='publie' OR $old=='publie') {
if ($statut=='publie'
OR !($date_thread = sql_getfetsel("date_heure", "spip_forum", "statut='publie' AND id_thread=".$row['id_thread'], "", "date_heure DESC","0,1"))){
$date_thread = date('Y-m-d H:i:s');
}
sql_updateq("spip_forum", array("date_thread" => $date_thread), "id_thread=".$row['id_thread']);
}
// invalider les pages comportant ce forum
include_spip('inc/invalideur');
include_spip('inc/forum');
$index_forum = calcul_index_forum($row['id_article'], $row['id_breve'], $row['id_rubrique'], $row['id_syndic']);
suivre_invalideur("id='id_forum/$index_forum'");
// Reindexation du thread (par exemple)
pipeline('post_edition',
array(
'args' => array(
'table' => 'spip_forum',
'id_objet' => $id_forum,
'action' => 'instituer',
),
'data' => null
)
);
}
示例12: livraison_vider_tables
/**
* Fonction de désinstallation du plugin Livraison.
*
* @param string $nom_meta_base_version
* Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP
* @return void
**/
function livraison_vider_tables($nom_meta_base_version)
{
livraison_generer_csv_installation();
sql_drop_table("spip_livraisonmodes");
# Nettoyer les versionnages et forums
sql_delete("spip_versions", sql_in("objet", array('livraisonmode')));
sql_delete("spip_versions_fragments", sql_in("objet", array('livraisonmode')));
sql_delete("spip_forum", sql_in("objet", array('livraisonmode')));
effacer_meta($nom_meta_base_version);
}
示例13: reservations_credits_vider_tables
/**
* Fonction de désinstallation du plugin Réseŕvations Crédits.
*
* Vous devez :
*
* - nettoyer toutes les données ajoutées par le plugin et son utilisation
* - supprimer les tables et les champs créés par le plugin.
*
* @param string $nom_meta_base_version
* Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP
* @return void
**/
function reservations_credits_vider_tables($nom_meta_base_version)
{
sql_drop_table("spip_reservation_credit_mouvements");
sql_drop_table("spip_reservation_credits");
# Nettoyer les versionnages et forums
sql_delete("spip_versions", sql_in("objet", array('reservation_credit_mouvement', 'reservation_credit')));
sql_delete("spip_versions_fragments", sql_in("objet", array('reservation_credit_mouvement', 'reservation_credit')));
sql_delete("spip_forum", sql_in("objet", array('reservation_credit_mouvement', 'reservation_credit')));
effacer_meta($nom_meta_base_version);
}
示例14: critere_statut_controle_forum
function critere_statut_controle_forum($type, $id_rubrique = 0, $recherche = '')
{
if (is_array($id_rubrique)) {
$id_rubrique = join(',', $id_rubrique);
}
if (!$id_rubrique) {
$from = 'spip_forum AS F';
$where = "";
$and = "";
} else {
if (strpos($id_rubrique, ',')) {
$eq = " IN ({$id_rubrique})";
} else {
$eq = "={$id_rubrique}";
}
$from = 'spip_forum AS F, spip_articles AS A';
$where = "A.id_secteur{$eq} AND F.objet='article' AND F.id_objet=A.id_article";
$and = ' AND ';
}
switch ($type) {
case 'public':
$and .= "F.statut IN ('publie', 'off', 'prop', 'spam') AND F.texte!=''";
break;
case 'prop':
$and .= "F.statut='prop'";
break;
case 'spam':
$and .= "F.statut='spam'";
break;
case 'interne':
$and .= "F.statut IN ('prive', 'privrac', 'privoff', 'privadm') AND F.texte!=''";
break;
case 'vide':
$and .= "F.statut IN ('publie', 'off', 'prive', 'privrac', 'privoff', 'privadm') AND F.texte=''";
break;
default:
$where = '0=1';
$and = '';
break;
}
if ($recherche) {
# recherche par IP
if (preg_match(',^\\d+\\.\\d+\\.(\\*|\\d+\\.(\\*|\\d+))$,', $recherche)) {
$and .= " AND ip LIKE " . sql_quote(str_replace('*', '%', $recherche));
} else {
include_spip('inc/rechercher');
if ($a = recherche_en_base($recherche, 'forum')) {
$and .= " AND " . sql_in('id_forum', array_keys(array_pop($a)));
} else {
$and .= " AND 0=1";
}
}
}
return array($from, "{$where}{$and}");
}
示例15: BOUCLE_articleshtml_a80389532d86f8e6929960268237a0a8
function BOUCLE_articleshtml_a80389532d86f8e6929960268237a0a8(&$Cache, &$Pile, &$doublons, &$Numrows, $SP)
{
static $command = array();
static $connect;
$command['connect'] = $connect = '';
$doublons_index = array();
// Initialise le(s) critère(s) doublons
if (!isset($doublons[$d = 'articles'])) {
$doublons[$d] = '';
}
if (!isset($command['table'])) {
$command['table'] = 'articles';
$command['id'] = '_articles';
$command['from'] = array('articles' => 'spip_articles');
$command['type'] = array();
$command['groupby'] = array();
$command['select'] = array("articles.date", "articles.lang", "articles.id_article", "articles.texte", "articles.descriptif", "articles.chapo", "articles.titre");
$command['orderby'] = array('articles.date DESC');
$command['join'] = array();
$command['limit'] = '0,3';
$command['having'] = array();
}
$command['where'] = array(quete_condition_statut('articles.statut', 'publie,prop,prepa/auteur', 'publie', ''), array(sql_in('articles.id_article', $doublons[$doublons_index[] = 'articles'], 'NOT')));
if (defined("_BOUCLE_PROFILER")) {
$timer = time() + microtime();
}
$t0 = "";
// REQUETE
$iter = IterFactory::create("SQL", $command, array('squelettes/inc/inc-trad.html', 'html_a80389532d86f8e6929960268237a0a8', '_articles', 6, $GLOBALS['spip_lang']));
if (!$iter->err()) {
lang_select($GLOBALS['spip_lang']);
$SP++;
// RESULTATS
while ($Pile[$SP] = $iter->fetch()) {
foreach ($doublons_index as $k) {
$doublons[$k] .= "," . $Pile[$SP]['id_article'];
}
// doublons
lang_select_public($Pile[$SP]['lang'], '', $Pile[$SP]['titre']);
$t0 .= '
<li>' . (($t1 = strval(interdire_scripts(affdate(normaliser_date($Pile[$SP]['date']))))) !== '' ? '<span>' . $t1 . ((($t2 = strval(traduire_nom_langue(spip_htmlentities($Pile[$SP]['lang'] ? $Pile[$SP]['lang'] : $GLOBALS['spip_lang'])))) !== '' ? ' - <dfn class="lang">' . $t2 . '</dfn>' : '') . '</span>') : '') . '
<a href="' . spip_htmlspecialchars(sinon($GLOBALS['meta']['adresse_site'], '.')) . '/spip.php?action=converser&redirect=' . spip_htmlspecialchars(sinon($GLOBALS['meta']['adresse_site'], '.')) . '%2F' . vider_url(urlencode_1738(generer_url_entite($Pile[$SP]['id_article'], 'article', '', '', true))) . '&var_lang=' . spip_htmlentities($Pile[$SP]['lang'] ? $Pile[$SP]['lang'] : $GLOBALS['spip_lang']) . '" hreflang="' . spip_htmlentities($Pile[$SP]['lang'] ? $Pile[$SP]['lang'] : $GLOBALS['spip_lang']) . '" ' . (($t1 = strval(interdire_scripts(entites_html(textebrut(filtre_introduction_dist($Pile[$SP]['descriptif'], strlen($Pile[$SP]['descriptif']) ? '' : $Pile[$SP]['chapo'] . "\n\n" . $Pile[$SP]['texte'], 500, $connect, null)))))) !== '' ? 'title="' . $t1 . '"' : '') . '>' . interdire_scripts(supprimer_numero(typo(supprimer_numero($Pile[$SP]['titre']), "TYPO", $connect, $Pile[0]))) . '</a>
</li>
';
lang_select();
}
lang_select();
$iter->free();
}
if (defined("_BOUCLE_PROFILER") and 1000 * ($timer = time() + microtime() - $timer) > _BOUCLE_PROFILER) {
spip_log(intval(1000 * $timer) . "ms BOUCLE_articles @ squelettes/inc/inc-trad.html", "profiler" . _LOG_AVERTISSEMENT);
}
return $t0;
}