当前位置: 首页>>代码示例>>PHP>>正文


PHP lister_tables_objets_sql函数代码示例

本文整理汇总了PHP中lister_tables_objets_sql函数的典型用法代码示例。如果您正苦于以下问题:PHP lister_tables_objets_sql函数的具体用法?PHP lister_tables_objets_sql怎么用?PHP lister_tables_objets_sql使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了lister_tables_objets_sql函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: inc_profils_fusionner_dist

function inc_profils_fusionner_dist($id_auteur, $id_import)
{
    spip_log($s = "Fusion auteur #{$id_import} => #{$id_auteur}", "profils" . _LOG_INFO_IMPORTANTE);
    // dupliquer les liens
    include_spip('action/editer_liens');
    objet_dupliquer_liens('auteur', $id_import, $id_auteur);
    // supprimer les liens
    objet_dissocier(array('auteur' => $id_import), '*');
    objet_dissocier('*', array('auteur' => $id_import));
    // changer le id_auteur dans toutes les tables qui en ont un
    $tables = lister_tables_objets_sql();
    foreach ($tables as $table_sql => $desc) {
        if (isset($desc['field']['id_auteur'])) {
            spip_log("{$table_sql} : id_auteur #{$id_import} => #{$id_auteur}", "profils" . _LOG_INFO_IMPORTANTE);
            sql_updateq($table_sql, array('id_auteur' => $id_auteur), 'id_auteur=' . intval($id_import));
        }
    }
    // log/poubelle sur l'import
    $log = date('Y-m-d H:i:s') . ' par #' . $GLOBALS['visiteur_session']['id_auteur'] . ' : ' . $s . "\n";
    $auteur = sql_fetsel('*', 'spip_auteurs', 'id_auteur=' . intval($id_import));
    $set = array("statut" => "5poubelle", "email" => $auteur['email'] . "-xxdoublon", "login" => $auteur['login'] . "-xxdoublon", 'log' => $auteur['log'] . $log);
    sql_updateq("spip_auteurs", $set, "id_auteur=" . intval($auteur['id_auteur']));
    // log sur le nouveau
    $auteur = sql_fetsel('*', 'spip_auteurs', 'id_auteur=' . intval($id_auteur));
    $set = array('log' => $auteur['log'] . $log);
    sql_updateq("spip_auteurs", $set, "id_auteur=" . intval($auteur['id_auteur']));
}
开发者ID:nursit,项目名称:profils,代码行数:27,代码来源:profils_fusionner.php

示例2: massicot_declarer_tables_interfaces

/**
 * Déclaration des alias de tables et filtres automatiques de champs
 *
 * @pipeline declarer_tables_interfaces
 * @param array $interfaces
 *	   Déclarations d'interface pour le compilateur
 * @return array
 *	   Déclarations d'interface pour le compilateur
 */
function massicot_declarer_tables_interfaces($interfaces)
{
    $interfaces = ajouter_traitement_automatique($interfaces, 'massicoter_document(%s)', 'FICHIER', 'documents');
    $interfaces = ajouter_traitement_automatique($interfaces, 'massicoter_logo_document(%s, $Pile[1])', 'LOGO_DOCUMENT');
    $interfaces = ajouter_traitement_automatique($interfaces, 'massicoter_document(%s)', 'URL_DOCUMENT', 'documents');
    /* On traîte aussi les balises #HAUTEUR et #LARGEUR des documents */
    $interfaces = ajouter_traitement_automatique($interfaces, 'massicoter_largeur(%s, $Pile[1])', 'LARGEUR', 'documents');
    $interfaces = ajouter_traitement_automatique($interfaces, 'massicoter_largeur(%s, $Pile[1])', 'HAUTEUR', 'documents');
    /* Pour chaque objet éditorial existant, ajouter un traitement sur
       les logos */
    if (isset($GLOBALS['spip_connect_version'])) {
        foreach (lister_tables_objets_sql() as $table => $valeurs) {
            if ($table !== 'spip_documents') {
                $interfaces = ajouter_traitement_automatique($interfaces, 'massicoter_logo(%s, ' . objet_type($table) . ', $Pile[1][\'' . id_table_objet($table) . '\'])', strtoupper('LOGO_' . objet_type($table)));
                $interfaces = ajouter_traitement_automatique($interfaces, 'massicoter_logo(%s, ' . objet_type($table) . ', $Pile[1][\'' . id_table_objet($table) . '\'])', strtoupper('LOGO_' . objet_type($table)) . '_NORMAL');
                $interfaces = ajouter_traitement_automatique($interfaces, 'massicoter_logo(%s, ' . objet_type($table) . ', $Pile[1][\'' . id_table_objet($table) . '\'], \'logo_survol\')', strtoupper('LOGO_' . objet_type($table)) . '_SURVOL');
            }
        }
    }
    /* sans oublier #LOGO_ARTICLE_RUBRIQUE… */
    $interfaces = ajouter_traitement_automatique($interfaces, 'massicoter_logo(%s,null,null,null,$Pile[0])', 'LOGO_ARTICLE_RUBRIQUE');
    /* …ni les #LOGO_SITE_SPIP ! */
    $interfaces = ajouter_traitement_automatique($interfaces, 'massicoter_logo(%s,"site","0","",$Pile[0])', 'LOGO_SITE_SPIP');
    $interfaces = ajouter_traitement_automatique($interfaces, 'massicoter_logo(%s,"site","0","logo_survol",$Pile[0])', 'LOGO_SITE_SPIP_SURVOL');
    return $interfaces;
}
开发者ID:RadioCanut,项目名称:site-radiocanut,代码行数:35,代码来源:massicot.php

示例3: lister_datas_objets_editoriaux

/**
 * Lister les objets éditoriaux disponibles pour peupler une saisie
 *
 * @return array : un tableau qu'on peut utiliser comme paramètre
 *                 "datas" dans une saisie
 */
function lister_datas_objets_editoriaux()
{
    include_spip('base/objets');
    return array_map(function ($el) {
        return _T($el['texte_objets']);
    }, lister_tables_objets_sql());
}
开发者ID:VertigeASBL,项目名称:lier_sites,代码行数:13,代码来源:configurer_lier_sites_fonctions.php

示例4: iextras_saisies_construire_formulaire_config

/**
 * Ajouter les saisies SQL et de recherche
 * sur les options de config d'une saisie (de champs extras)
 *
 * @param array
 * @return array
**/
function iextras_saisies_construire_formulaire_config($flux)
{
    if (strpos($flux['args']['identifiant'], 'constructeur_formulaire_champs_extras_') === 0) {
        $table = substr($flux['args']['identifiant'], strlen('constructeur_formulaire_champs_extras_'));
        $name = $flux['args']['nom'];
        $formulaire_actuel = $flux['data'];
        $type_saisie = $flux['args']['saisie']['saisie'];
        // on ajoute le fieldset de restrictions de champs
        // (des autorisations pre-reglées en quelque sorte)
        $saisies_restrictions = array();
        // les restrictions de X ne peuvent apparaître que
        // si l'objet possede un Y.
        // secteurs -> id_secteur
        // branches -> id_rubrique
        // groupes -> id_groupe
        $desc = lister_tables_objets_sql($table);
        $types = array('secteurs' => 'id_secteur', 'branches' => 'id_rubrique', 'groupes' => 'id_groupe');
        foreach ($types as $type => $champ) {
            if (isset($desc['field'][$champ])) {
                $saisies_restrictions[] = array('saisie' => 'input', 'options' => array('nom' => "saisie_modifiee_{$name}[options][restrictions][{$type}]", 'label' => _T('iextras:label_restrictions_' . $type), 'explication' => _T('iextras:precisions_pour_restrictions_' . $type), 'defaut' => ''));
            }
        }
        // ajout des restrictions voir | modifier par auteur
        $actions = array('voir', 'modifier');
        foreach ($actions as $action) {
            $saisies_restrictions[] = array('saisie' => 'fieldset', 'options' => array('nom' => "saisie_modifiee_{$name}[options][restrictions][{$action}]", 'label' => _T('iextras:legend_restrictions_' . $action)), 'saisies' => array(array('saisie' => 'radio', 'options' => array('nom' => "saisie_modifiee_{$name}[options][restrictions][{$action}][auteur]", 'label' => _T('iextras:label_restrictions_auteur'), 'defaut' => '', 'datas' => array('' => _T('iextras:radio_restrictions_auteur_aucune'), 'admin' => _T('iextras:radio_restrictions_auteur_admin'), 'admin_complet' => _T('iextras:radio_restrictions_auteur_admin_complet'), 'webmestre' => _T('iextras:radio_restrictions_auteur_webmestre'))))));
        }
        $flux['data'] = saisies_inserer($flux['data'], array('saisie' => 'fieldset', 'options' => array('nom' => "saisie_modifiee_{$name}[options][restrictions]", 'label' => _T('iextras:legend_restriction')), 'saisies' => $saisies_restrictions));
        // On récupère les informations de la saisie
        // pour savoir si c'est un champs éditable (il a une ligne SQL)
        // et dans ce cas :
        //
        // - on modifie le type de vérification du nom du champ (regexp > nom_champ_extra)
        //   Cette vérification crée une erreur si le nom est déjà utilisé par SPIP ou un plugin, et si c'est un mot clé SQL
        //
        // - on ajoute les options techniques
        $saisies_sql = saisies_lister_disponibles_sql();
        if (isset($saisies_sql[$type_saisie])) {
            // Modification du type de vérification
            // Normalement le premier champ du premier onglet
            if ($flux['data'][0]['saisies'][0]['verifier']['type'] == 'regex') {
                $flux['data'][0]['saisies'][0]['verifier']['type'] = 'nom_champ_extra';
                $flux['data'][0]['saisies'][0]['verifier']['options']['table'] = $table;
            }
            // Ajout de l'onglet Technique
            // liste 'type_de_saisie' => 'Titre de la saisie'
            $liste_saisies = array();
            foreach ($saisies_sql as $s => $d) {
                $liste_saisies[$s] = $d['titre'];
            }
            $sql = $saisies_sql[$type_saisie]['defaut']['options']['sql'];
            $flux['data'] = saisies_inserer($flux['data'], array('saisie' => 'fieldset', 'options' => array('nom' => "saisie_modifiee_{$name}[options][options_techniques]", 'label' => _T('iextras:legend_options_techniques')), 'saisies' => array(array('saisie' => 'input', 'options' => array('nom' => "saisie_modifiee_{$name}[options][sql]", 'label' => _T('iextras:label_sql'), 'obligatoire' => 'oui', 'size' => 50, 'defaut' => $sql)), array('saisie' => 'oui_non', 'options' => array('nom' => "saisie_modifiee_{$name}[options][rechercher]", 'label' => _T('iextras:label_rechercher'), 'explication' => _T('iextras:precisions_pour_rechercher'), 'defaut' => '')), array('saisie' => 'input', 'options' => array('nom' => "saisie_modifiee_{$name}[options][rechercher_ponderation]", 'label' => _T('iextras:label_rechercher_ponderation'), 'explication' => _T('iextras:precisions_pour_rechercher_ponderation'), 'defaut' => 2, 'afficher_si' => "@saisie_modifiee_{$name}[options][rechercher]@ != ''")), array('saisie' => 'radio', 'options' => array('nom' => "saisie_modifiee_{$name}[options][traitements]", 'label' => _T('iextras:label_traitements'), 'explication' => _T('iextras:precisions_pour_traitements'), 'defaut' => '', 'datas' => array('' => _T('iextras:radio_traitements_aucun'), '_TRAITEMENT_TYPO' => _T('iextras:radio_traitements_typo'), '_TRAITEMENT_RACCOURCIS' => _T('iextras:radio_traitements_raccourcis')))), array('saisie' => 'oui_non', 'options' => array('nom' => "saisie_modifiee_{$name}[options][versionner]", 'label' => _T('iextras:label_versionner'), 'explication' => _T('iextras:precisions_pour_versionner'), 'defaut' => '')), array('saisie' => 'selection', 'options' => array('nom' => "saisie_modifiee_{$name}[options][nouveau_type_saisie]", 'label' => _T('iextras:label_saisie'), 'explication' => _T('iextras:precisions_pour_nouvelle_saisie'), 'attention' => _T('iextras:precisions_pour_nouvelle_saisie_attention'), 'defaut' => $type_saisie, 'datas' => $liste_saisies)))));
        }
    }
    return $flux;
}
开发者ID:RadioCanut,项目名称:site-radiocanut,代码行数:63,代码来源:iextras.php

示例5: iextras_exporter_tous

/**
 * Retourne tous les champs extras par table SQL
**/
function iextras_exporter_tous() {
	include_spip('inc/iextras');
	$tables = lister_tables_objets_sql();
	$champs = array();
	foreach ($tables as $table => $desc) {
		if ($liste = iextras_champs_extras_definis($table)) {
			$champs[$table] = $liste;
		}
	}
	return $champs;
}
开发者ID:samszo,项目名称:open-edition,代码行数:14,代码来源:iextras_exporter.php

示例6: inc_marquer_doublons_doc_dist

function inc_marquer_doublons_doc_dist($champs, $id, $type, $id_table_objet, $table_objet, $spip_table_objet, $desc = array(), $serveur = '')
{
    $champs_selection = array();
    foreach ($GLOBALS['medias_liste_champs'] as $champs_choisis) {
        if (isset($champs[$champs_choisis])) {
            array_push($champs_selection, $champs_choisis);
        }
    }
    if (count($champs_selection) == 0) {
        return;
    }
    if (!$desc) {
        $trouver_table = charger_fonction('trouver_table', 'base');
        $desc = $trouver_table($table_objet, $serveur);
    }
    $load = "";
    // charger le champ manquant en cas de modif partielle de l	'objet
    // seulement si le champ existe dans la table demande
    $champs_a_traiter = "";
    foreach ($champs_selection as $champs_a_parcourir) {
        if (isset($desc['field'][$champs_a_parcourir])) {
            $load = $champs_a_parcourir;
            $champs_a_traiter .= $champs[$champs_a_parcourir];
        }
    }
    if ($load) {
        $champs[$load] = "";
        $row = sql_fetsel($load, $spip_table_objet, "{$id_table_objet}=" . sql_quote($id));
        if ($row and isset($row[$load])) {
            $champs[$load] = $row[$load];
        }
    }
    include_spip('inc/texte');
    include_spip('base/abstract_sql');
    include_spip('action/editer_liens');
    include_spip('base/objets');
    $modeles = lister_tables_objets_sql('spip_documents');
    $modeles = $modeles['modeles'];
    $GLOBALS['doublons_documents_inclus'] = array();
    $env = array('objet' => $type, 'id_objet' => $id, $id_table_objet => $id);
    traiter_modeles($champs_a_traiter, array('documents' => $modeles), '', '', null, $env);
    // detecter les doublons
    objet_qualifier_liens(array('document' => '*'), array($type => $id), array('vu' => 'non'));
    if (count($GLOBALS['doublons_documents_inclus'])) {
        // on repasse par une requete sur spip_documents pour verifier que les documents existent bien !
        $in_liste = sql_in('id_document', $GLOBALS['doublons_documents_inclus']);
        $res = sql_allfetsel("id_document", "spip_documents", $in_liste);
        $res = array_map('reset', $res);
        // Creer le lien s'il n'existe pas deja
        objet_associer(array('document' => $res), array($type => $id), array('vu' => 'oui'));
        objet_qualifier_liens(array('document' => $res), array($type => $id), array('vu' => 'oui'));
    }
}
开发者ID:loorenzooo,项目名称:aslfc,代码行数:53,代码来源:marquer_doublons_doc.php

示例7: compositions_vider_tables

/**
 * Desinstallation
 *
 * @param string $nom_meta_base_version
 */
function compositions_vider_tables($nom_meta_base_version) {
	include_spip('inc/meta');
	include_spip('base/abstract_sql');

	include_spip('base/objets');
	$tables_objets = array_keys(lister_tables_objets_sql());
	foreach($tables_objets as $table){
		sql_alter("TABLE $table DROP composition");
		sql_alter("TABLE $table DROP composition_lock");
	}
	sql_alter("TABLE spip_rubriques DROP composition_branche_lock");

	effacer_meta('compositions');
	effacer_meta($nom_meta_base_version);
}
开发者ID:samszo,项目名称:open-edition,代码行数:20,代码来源:compositions_administrations.php

示例8: exec_puce_statut_args

/**
 * Traitement de l'affichage ajax des puces d'action rapide
 *
 * Appelle la fonction de traitement des puces statuts
 * après avoir retrouvé le statut en cours de l'objet
 * et son parent (une rubrique)
 * 
 * @param int $id
 *     Identifiant de l'objet
 * @param string $type
 *     Type d'objet
 * @return string Code HTML
**/
function exec_puce_statut_args($id, $type)
{
    if ($table_objet_sql = table_objet_sql($type) and $d = lister_tables_objets_sql($table_objet_sql) and isset($d['statut_textes_instituer']) and $d['statut_textes_instituer']) {
        $prim = id_table_objet($type);
        $id = intval($id);
        $r = sql_fetsel("id_rubrique,statut", $table_objet_sql, "{$prim}={$id}");
        $statut = $r['statut'];
        $id_rubrique = $r['id_rubrique'];
    } else {
        $id_rubrique = intval($id);
        $statut = 'prop';
        // arbitraire
    }
    $puce_statut = charger_fonction('puce_statut', 'inc');
    ajax_retour($puce_statut($id, $statut, $id_rubrique, $type, true));
}
开发者ID:nursit,项目名称:SPIP,代码行数:29,代码来源:puce_statut.php

示例9: liste_des_jointures

function liste_des_jointures()
{
    static $liste = null;
    if (is_null($liste)) {
        $liste = array();
        // recuperer les tables_objets_sql declarees
        include_spip('base/objets');
        $tables_objets = lister_tables_objets_sql();
        foreach ($tables_objets as $t => $infos) {
            if ($infos['rechercher_jointures']) {
                $liste[$infos['type']] = $infos['rechercher_jointures'];
            }
        }
        // puis passer dans le pipeline
        $liste = pipeline('rechercher_liste_des_jointures', $liste);
    }
    return $liste;
}
开发者ID:JLuc,项目名称:SPIP,代码行数:18,代码来源:rechercher.php

示例10: roles_presents

/**
 * Vérifie qu'un objet dispose de rôles fonctionnels
 *
 * Retourne une description des rôles si c'est le cas
 *
 * @param string $objet
 *     Objet source qui possède la table de liaison
 * @param string $objet_destination
 *     Objet sur quoi on veut lier
 *     Si défini, le retour ne contient que les roles possibles pour cet objet
 *     Sinon retourne tous les roles possibles quelque soit l'objet
 * @return bool|array
 *     false si rôles indisponibles on non déclarés
 *     array : description des roles applicables dans 3 index : colonne, titres, roles
 **/
function roles_presents($objet, $objet_destination = '')
{
    $desc = lister_tables_objets_sql(table_objet_sql($objet));
    // pas de liste de roles, on sort
    if (!isset($desc['roles_titres']) or !($titres = $desc['roles_titres'])) {
        return false;
    }
    // on vérifie que la table de liaison existe
    include_spip('action/editer_liens');
    if (!($lien = objet_associable($objet))) {
        return false;
    }
    // on cherche ensuite si la colonne existe bien dans la table de liaison (par défaut 'role')
    $colonne = isset($desc['roles_colonne']) ? $desc['roles_colonne'] : 'role';
    $trouver_table = charger_fonction('trouver_table', 'base');
    list(, $table_lien) = $lien;
    $desc_lien = $trouver_table($table_lien);
    if (!isset($desc_lien['field'][$colonne])) {
        return false;
    }
    // sur quoi peuvent s'appliquer nos rôles
    if (!($application = $desc['roles_objets'])) {
        return false;
    }
    // destination presente, on restreint si possible
    if ($objet_destination) {
        $objet_destination = table_objet($objet_destination);
        // pour l'objet
        if (isset($application[$objet_destination])) {
            $application = $application[$objet_destination];
            // sinon pour tous les objets
        } elseif (isset($application['*'])) {
            $application = $application['*'];
        } else {
            return false;
        }
    }
    // tout est ok
    return array('titres' => $titres, 'roles' => $application, 'colonne' => $colonne);
}
开发者ID:xablen,项目名称:Semaine14_SPIP_test,代码行数:55,代码来源:roles.php

示例11: inc_chercher_logo

  function inc_chercher_logo($id, $_id_objet, $mode = 'on') {
    include_spip('inc/chercher_logo');
    global $formats_logos;
    # attention au cas $id = '0' pour LOGO_SITE_SPIP : utiliser intval()

    $type = type_du_logo($_id_objet);

    $objet = str_replace('id_', '', $_id_objet);
    $tables = lister_tables_objets_sql();
    $table = 'spip_' . $objet . 's';

    foreach ($formats_logos as $format) {
      $nom = $type . $mode . intval($id);
      if (@file_exists($d = (_DIR_LOGOS . $nom . '.' . $format))) {
        return array(
          $d,
          _DIR_LOGOS,
          $nom,
          $format,
          @filemtime($d)
        );
      }
      //si pas de logo on cherche si l'article d'origine en a un
      elseif ($tables[$table]['field']['id_trad'] AND $id_trad = sql_getfetsel('id_trad', $table, $_id_objet . '=' . intval($id)) AND _request('exec') != $objet) {
        $nom = $type . $mode . intval($id_trad);
        if (@file_exists($d = (_DIR_LOGOS . $nom . '.' . $format))) {
          return array(
            $d,
            _DIR_LOGOS,
            $nom,
            $format,
            @filemtime($d)
          );
        };
      }
    }
    # coherence de type pour servir comme filtre (formulaire_login)
    return array();
  }
开发者ID:samszo,项目名称:open-edition,代码行数:39,代码来源:multilingue_fonctions.php

示例12: calculer_utilisations_mots

/**
 * Calculer les nombres d'elements (articles, etc.) lies a chaque mot
 *
 * @param int $id_groupe
 * @return array
 */
function calculer_utilisations_mots($id_groupe)
{
    $retour = array();
    $objets = sql_allfetsel('DISTINCT objet', array('spip_mots_liens AS L', 'spip_mots AS M'), array('L.id_mot=M.id_mot', 'M.id_groupe=' . intval($id_groupe)));
    foreach ($objets as $o) {
        $objet = $o['objet'];
        $_id_objet = id_table_objet($objet);
        $table_objet_sql = table_objet_sql($objet);
        $infos = lister_tables_objets_sql($table_objet_sql);
        if (isset($infos['field']) and $infos['field']) {
            // uniquement certains statut d'objet,
            // et uniquement si la table dispose du champ statut.
            $statuts = "";
            if (isset($infos['field']['statut']) or isset($infos['statut'][0]['champ'])) {
                // on s'approche au mieux de la declaration de l'objet.
                // il faudrait ameliorer ce point.
                $c_statut = isset($infos['statut'][0]['champ']) ? $infos['statut'][0]['champ'] : 'statut';
                // bricoler les statuts d'apres la declaration de l'objet (champ previsu a defaut de mieux)
                if (array_key_exists('previsu', $infos['statut'][0]) and strlen($infos['statut'][0]['previsu']) > 1) {
                    $str_statuts = $infos['statut'][0]['previsu'];
                    if ($GLOBALS['connect_statut'] != "0minirezo") {
                        $str_statuts = str_replace('prepa', '', $str_statuts);
                    }
                    $not = substr($str_statuts, 0, 1) == '!' ? 'NOT' : '';
                    $str_statuts = str_replace('!', '', $str_statuts);
                    $Tstatuts = array_filter(explode(',', $str_statuts));
                    $statuts = " AND " . sql_in("O.{$c_statut}", $Tstatuts, $not);
                } else {
                    $statuts = " AND " . sql_in("O.{$c_statut}", $GLOBALS['connect_statut'] == "0minirezo" ? array('prepa', 'prop', 'publie') : array('prop', 'publie'));
                }
            }
            $res = sql_allfetsel("COUNT(*) AS cnt, L.id_mot", "spip_mots_liens AS L\n\t\t\t\t\tLEFT JOIN spip_mots AS M ON L.id_mot=M.id_mot\n\t\t\t\t\t\tAND L.objet=" . sql_quote($objet) . "\n\t\t\t\t\tLEFT JOIN " . $table_objet_sql . " AS O ON L.id_objet=O.{$_id_objet}", "M.id_groupe={$id_groupe}{$statuts}", "L.id_mot");
            foreach ($res as $row) {
                $retour[$table_objet_sql][$row['id_mot']] = $row['cnt'];
            }
        }
    }
    return $retour;
}
开发者ID:genma,项目名称:spip_ynh,代码行数:45,代码来源:mots.php

示例13: verifier_nom_champ_extra_dist

/**
 * Vérifié une valeur comme devant être un nom de champ extra
 * 
 * Ce champ ne doit pas être utilisé par SPIP ou un plugin,
 * et ne doit pas être un mot clé de mysql.
 * 
 * Si c'est bon, doit aussi vérifier une expression régulière donnée
 * 
 * Options :
 * - modele : chaine représentant l'expression régulière tolérée
 *
 * @param string $valeur
 *   La valeur à vérifier.
 * @param array $options
 *   Contient une chaine représentant l'expression.
 * @return string
 *   Retourne une chaine vide si c'est valide, sinon une chaine expliquant l'erreur.
 */
function verifier_nom_champ_extra_dist($valeur, $options = array())
{
    include_spip('base/objets');
    include_spip('inc/iextras');
    include_spip('inc/saisies');
    $erreur = '';
    $table = $options['table'];
    $valeur = strtolower($valeur);
    // Champs extras (interface) / Saisies gérent déjà l'unicité des champs extras
    // déclarés dans une table : on ne peut créer 2 champs extras de même nom.
    // Ici on vérifie en plus que ce champ n'existe pas hors de champs extras.
    $tables_spip = lister_tables_objets_sql($table);
    $champs_declares = array_keys($tables_spip['field']);
    $champs_declares = array_filter($champs_declares, 'strtolower');
    // precaution
    $champs_iextras = iextras_champs_extras_definis($table);
    $champs_iextras = array_keys(saisies_lister_avec_sql($champs_iextras));
    $champs_iextras = array_filter($champs_iextras, 'strtolower');
    // precaution
    // les champs utilisés en dehors de champs extras, sont la différence
    $champs_utilises = array_diff($champs_declares, $champs_iextras);
    if (in_array($valeur, $champs_utilises)) {
        $erreur = _T('iextras:erreur_nom_champ_utilise');
    }
    // vérifier que le champ n'est pas un mot clé sql
    if (!$erreur) {
        if (in_array(strtoupper($valeur), iextras_sql_reserved_keywords())) {
            $erreur = _T('iextras:erreur_nom_champ_mysql_keyword');
        }
    }
    // vérifier que le champ est bien formaté  (expression régulière)
    if (!$erreur) {
        $verifier = charger_fonction('verifier', 'inc');
        $options += array('modele' => '/^[\\w]+$/');
        $erreur = $verifier($valeur, 'regex', $options);
    }
    return $erreur;
}
开发者ID:RadioCanut,项目名称:site-radiocanut,代码行数:56,代码来源:nom_champ_extra.php

示例14: styliser_par_objets

function styliser_par_objets($flux)
{
    if (test_espace_prive() and !($squelette = $flux['data']) and strncmp($flux['args']['fond'], 'prive/objets/', 13) == 0 and $echafauder = charger_fonction('echafauder', 'prive', true)) {
        if (strncmp($flux['args']['fond'], 'prive/objets/liste/', 19) == 0) {
            $table = table_objet(substr($flux['args']['fond'], 19));
            $table_sql = table_objet_sql($table);
            $objets = lister_tables_objets_sql();
            if (isset($objets[$table_sql])) {
                $flux['data'] = $echafauder($table, $table, $table_sql, "prive/objets/liste/objets", $flux['args']['ext']);
            }
        }
        if (strncmp($flux['args']['fond'], 'prive/objets/contenu/', 21) == 0) {
            $type = substr($flux['args']['fond'], 21);
            $table = table_objet($type);
            $table_sql = table_objet_sql($table);
            $objets = lister_tables_objets_sql();
            if (isset($objets[$table_sql])) {
                $flux['data'] = $echafauder($type, $table, $table_sql, "prive/objets/contenu/objet", $flux['args']['ext']);
            }
        }
    }
    return $flux;
}
开发者ID:nursit,项目名称:SPIP,代码行数:23,代码来源:styliser.php

示例15: base_liste_table_for_dump

/**
 * construction de la liste des tables pour le dump :
 * toutes les tables principales
 * + toutes les tables auxiliaires hors relations
 * + les tables relations dont les deux tables liees sont dans la liste
 *
 * @param array $exclude_tables
 * @return array
 */
function base_liste_table_for_dump($exclude_tables = array())
{
    $tables_for_dump = array();
    $tables_pointees = array();
    $tables = array();
    $tables_principales = $GLOBALS['tables_principales'];
    $tables_auxiliaires = $GLOBALS['tables_auxiliaires'];
    $tables_jointures = $GLOBALS['tables_jointures'];
    if (include_spip('base/objets') and function_exists('lister_tables_objets_sql')) {
        $tables = lister_tables_objets_sql();
        foreach ($tables as $t => $infos) {
            if ($infos['principale'] and !isset($tables_principales[$t])) {
                $tables_principales[$t] = true;
            }
            if (!$infos['principale'] and !isset($tables_auxiliaires[$t])) {
                $tables_auxiliaires[$t] = true;
            }
            if (count($infos['tables_jointures'])) {
                $tables_jointures[$t] = array_merge(isset($tables_jointures[$t]) ? $tables_jointures[$t] : array(), $infos['tables_jointures']);
            }
        }
    }
    // on construit un index des tables de liens
    // pour les ajouter SI les deux tables qu'ils connectent sont sauvegardees
    $tables_for_link = array();
    foreach ($tables_jointures as $table => $liste_relations) {
        if (is_array($liste_relations)) {
            $nom = $table;
            if (!isset($tables_auxiliaires[$nom]) && !isset($tables_principales[$nom])) {
                $nom = "spip_{$table}";
            }
            if (isset($tables_auxiliaires[$nom]) || isset($tables_principales[$nom])) {
                foreach ($liste_relations as $link_table) {
                    if (isset($tables_auxiliaires[$link_table])) {
                        $tables_for_link[$link_table][] = $nom;
                    } else {
                        if (isset($tables_auxiliaires["spip_{$link_table}"])) {
                            $tables_for_link["spip_{$link_table}"][] = $nom;
                        }
                    }
                }
            }
        }
    }
    $liste_tables = array_merge(array_keys($tables_principales), array_keys($tables_auxiliaires), array_keys($tables));
    foreach ($liste_tables as $table) {
        //		$name = preg_replace("{^spip_}","",$table);
        if (!isset($tables_pointees[$table]) && !in_array($table, $exclude_tables) && !isset($tables_for_link[$table])) {
            $tables_for_dump[] = $table;
            $tables_pointees[$table] = 1;
        }
    }
    foreach ($tables_for_link as $link_table => $liste) {
        $connecte = true;
        foreach ($liste as $connect_table) {
            if (!in_array($connect_table, $tables_for_dump)) {
                $connecte = false;
            }
        }
        if ($connecte) {
            # on ajoute les liaisons en premier
            # si une restauration est interrompue,
            # cela se verra mieux si il manque des objets
            # que des liens
            array_unshift($tables_for_dump, $link_table);
        }
    }
    return array($tables_for_dump, $tables_for_link);
}
开发者ID:loorenzooo,项目名称:aslfc,代码行数:78,代码来源:dump.php


注:本文中的lister_tables_objets_sql函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。