本文整理汇总了PHP中id_table_objet函数的典型用法代码示例。如果您正苦于以下问题:PHP id_table_objet函数的具体用法?PHP id_table_objet怎么用?PHP id_table_objet使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了id_table_objet函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: critere_compteur
/**
* Permet de faire un comptage par table liee
*
* @syntaxe `{compteur table[, champ]}`
* @link http://www.spip-contrib.net/Classer-les-articles-par-nombre-de#forum409210
*
* @example
* Pour avoir les auteurs classes par articles et
* le nombre d'article de chacun :
*
* ```
* <BOUCLE1(AUTEURS){compteur articles}{par compteur_articles}>
* #ID_AUTEUR : #COMPTEUR{articles}
* </BOUCLE1>
* ```
*
* @note
* Avec un seul argument {compteur autre_table} le groupby est fait
* implicitement sur la cle primaire de la boucle en cours.
* Avec un second argument {compteur autre_table,champ_fusion}
* le groupby est fait sur le champ_fusion"
*
* @param string $idb
* Identifiant de la boucle
* @param Boucle[] $boucles
* AST du squelette
* @param Critere $crit
* Paramètres du critère dans cette boucle
* @param bool $left
* true pour utiliser un left join plutôt qu'un inner join.
* @return void
*/
function critere_compteur($idb, &$boucles, $crit, $left = false)
{
$boucle =& $boucles[$idb];
if (isset($crit->param[1])) {
$_fusion = calculer_liste($crit->param[1], array(), $boucles, $boucle->id_parent);
} else {
$_fusion = "''";
}
$params = $crit->param;
$table = reset($params);
$table = $table[0]->texte;
$op = false;
if (preg_match(',^(\\w+)([<>=])([0-9]+)$,', $table, $r)) {
$table = $r[1];
if (count($r) >= 3) {
$op = $r[2];
}
if (count($r) >= 4) {
$op_val = $r[3];
}
}
$type = objet_type($table);
$type_id = id_table_objet($type);
/**
* Si la clé primaire est une clé multiple, on prend la première partie
* Utile pour compter les versions de spip_versions par exemple
*/
if (count($types = explode(',', $type_id)) > 1) {
$type_id = $types[0];
}
$table_sql = table_objet_sql($type);
$trouver_table = charger_fonction('trouver_table', 'base');
$arrivee = array($table, $trouver_table($table, $boucle->sql_serveur));
$depart = array($boucle->id_table, $trouver_table($boucle->id_table, $boucle->sql_serveur));
// noter les jointures deja installees
$joins = array_keys($boucle->from);
if ($compt = calculer_jointure($boucle, $depart, $arrivee)) {
if ($_fusion != "''") {
// en cas de jointure, on ne veut pas du group_by sur la cle primaire !
// cela casse le compteur !
foreach ($boucle->group as $k => $group) {
if ($group == $boucle->id_table . '.' . $boucle->primary) {
unset($boucle->group[$k]);
}
}
$boucle->group[] = '".($gb=' . $_fusion . ')."';
}
$boucle->select[] = "COUNT({$compt}.{$type_id}) AS compteur_{$table}";
if ($op) {
$boucle->having[] = array("'" . $op . "'", "'compteur_" . $table . "'", $op_val);
}
if ($left) {
foreach ($boucle->from as $k => $val) {
if (!in_array($k, $joins)) {
$boucle->from_type[$k] = 'left';
}
}
}
}
}
示例2: shop_liste_etapes
function shop_liste_etapes($id_panier)
{
static $lesetapes = array();
$etapes = array('panier', 'qui', 'commande', 'livraison', 'paiement');
if (!$id_panier) {
return $etapes;
}
if (isset($lesetapes["{$id_panier}"])) {
return $lesetapes["{$id_panier}"];
}
if ($id_auteur = intval(sql_getfetsel('id_auteur', 'spip_paniers', 'id_panier=' . intval($id_panier)))) {
$etapes = array_diff($etapes, array('qui'));
}
$items = sql_allfetsel("*", "spip_paniers_liens", "id_panier=" . intval($id_panier));
$livrable = false;
foreach ($items as $item) {
$table = table_objet_sql($item['objet']);
$primary = id_table_objet($item['objet']);
$objet = sql_fetsel("*", $table, "{$primary}=" . intval($item['id_objet']));
if (!isset($objet['immateriel']) or !$objet['immateriel']) {
$livrable = true;
break;
}
}
if (!$livrable) {
$etapes = array_diff($etapes, array('livraison'));
}
return $lesetapes["{$id_panier}"] = $etapes;
}
示例3: formulaires_forum_prive_charger_dist
function formulaires_forum_prive_charger_dist($objet, $id_objet, $id_forum, $afficher_previsu, $statut, $retour = '')
{
if (!function_exists($f = 'forum_recuperer_titre')) {
$f = 'forum_recuperer_titre_dist';
}
// si objet, il faut un titre, sinon on est dans un statut privrac/privadm qui permet un forum sans objet
if ($objet and $id_objet and !($titre = $f($objet, $id_objet, $id_forum, false))) {
return false;
}
$primary = id_table_objet($objet);
$table = table_objet($objet);
// Tableau des valeurs servant au calcul d'une signature de securite.
// Elles seront placees en Input Hidden pour que inc/forum_insert
// recalcule la meme chose et verifie l'identite des resultats.
// Donc ne pas changer la valeur de ce tableau entre le calcul de
// la signature et la fabrication des Hidden
// Faire attention aussi a 0 != ''
$ids = array();
$ids[$primary] = ($x = intval($id_objet)) ? $x : '';
$ids['id_objet'] = ($x = intval($id_objet)) ? $x : '';
$ids['objet'] = $objet;
$ids['id_forum'] = ($x = intval($id_forum)) ? $x : '';
// ne pas mettre '', sinon le squelette n'affichera rien.
$previsu = ' ';
// pour les hidden
$script_hidden = "";
foreach ($ids as $id => $v) {
$script_hidden .= "<input type='hidden' name='{$id}' value='{$v}' />";
}
$config = array();
foreach (array('afficher_barre', 'forum_titre', 'forums_texte', 'forums_urlref') as $k) {
$config[$k] = ' ';
}
return array('nom_site' => '', 'table' => $table, 'texte' => '', 'config' => $config, 'titre' => $titre, '_hidden' => $script_hidden, 'url_site' => "http://", 'id_forum' => $id_forum, '_sign' => implode('_', $ids), '_autosave_id' => $ids);
}
示例4: genie_depublier_dist
function genie_depublier_dist($time)
{
//va chercher les objets de spip_depublies avec une date_depublie pour aujourd'hui
include_spip('base/abstract_sql');
$today = date('Y-m-d H:i:s');
if ($depublications = sql_allfetsel('*', 'spip_depublies', 'DATE_FORMAT(date_depublie, "%Y-%m-%d %H:%i:%s") <= ' . sql_quote($today) . ' AND DATE_FORMAT(date_depublie, "%Y-%m-%d %H:%i:%s") >0') and is_array($depublications)) {
foreach ($depublications as $depublication) {
$objet = $depublication['objet'];
$id_objet = $depublication['id_objet'];
$statut_depublication = $depublication['statut'];
$date_depublie = $depublication['date_depublie'];
spip_log("on veut depublier {$objet} {$id_objet} {$statut_depublication}", 'depublication');
//on cherche la table de l'objet donné
$_id_objet = id_table_objet($objet);
//id_article
$table = table_objet_sql($objet);
//articles
//si le statut est différent de celui demandé
if ($a_depublier = sql_getfetsel($_id_objet, $table, "statut != " . sql_quote($statut_depublication) . " AND {$_id_objet} = " . intval($id_objet))) {
//si les conditions sont remplies, on change le statut dans cette table
sql_updateq($table, array("statut" => $statut_depublication), "{$_id_objet}= " . intval($id_objet));
//et on supprime l'entrée
sql_delete('spip_depublies', 'id_objet=' . intval($id_objet) . ' AND objet=' . sql_quote($objet));
}
}
}
return 1;
}
示例5: 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']));
}
}
}
}
示例6: action_dereferencer_traduction_rubrique_dist
function action_dereferencer_traduction_rubrique_dist() {
$securiser_action = charger_fonction('securiser_action', 'inc');
$arg = $securiser_action();
list($type, $id_objet) = explode('/', $arg);
if (!$type = objet_type($type) or !$id_objet = intval($id_objet)) {
if (!_AJAX) {
include_spip('inc/minipres');
minipres('Arguments incompris');
}
else {
spip_log('Arguments incompris dans action dereferencer_traduction_rubrique');
return false;
}
}
$objet = table_objet($type);
$_id_objet = id_table_objet($objet);
$table = table_objet_sql($objet);
$id_trad_old = sql_getfetsel('id_trad', $table, "$_id_objet = " . sql_quote($id_objet));
if ($id_trad_old) {
include_spip('inc/modifier');
modifier_contenu($objet, $id_objet, array('invalideur' => "id='$objet/$id_objet'"), array('id_trad' => 0));
// si la deliaison fait qu'il ne reste plus que la source
// dans le groupe de traduction on lui remet l'id_trad a 0
if (1 == $nb_dans_groupe = sql_countsel($table, array('id_trad = ' . sql_quote($id_trad_old)))) {
modifier_contenu($objet, $id_trad_old, array('invalideur' => "id='$objet/$id_trad_old'"), array('id_trad' => 0));
}
}
}
示例7: accesrestreint_page_indisponible
/**
* Detecter les demande d'acces aux pages restreintes
* et re-orienter vers une 401 si necessaire
*
* @param <type> $contexte
* @return <type>
*/
function accesrestreint_page_indisponible($contexte){
if ($contexte['status']=='404' AND isset($contexte['type'])){
$objet = $contexte['type'];
$table_sql = table_objet_sql($objet);
$id_table_objet = id_table_objet($objet);
if ($id = intval($contexte[$id_table_objet])){
$publie = true;
$restreint = false;
$trouver_table = charger_fonction('trouver_table','base');
$desc = $trouver_table($table_sql);
if (isset($desc['field']['statut'])){
$statut = sql_getfetsel('statut', $table_sql, "$id_table_objet=".intval($id));
if ($statut!='publie')
$publie = false;
}
include_spip('inc/autoriser');
if ($publie AND !autoriser('voir',$objet,$id)){
// c'est un contenu restreint
$contexte['status'] = '401';
$contexte['code'] = '401 Unauthorized';
$contexte['fond'] = '401';
$contexte['erreur'] = _T('accesrestreint:info_acces_restreint');
$contexte['cible'] = self();
}
}
}
return $contexte;
}
示例8: 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;
}
示例9: supprimer_lien_document
/**
* Supprimer un lien entre un document et un objet
*
* @param int $id_document
* @param string $objet
* @param int $id_objet
* @param bool $supprime
* si true, le document est supprime si plus lie a aucun objet
* @param bool $check
* si true, on verifie les documents references dans le texte de l'objet
* et on les associe si pas deja fait
* @return bool
*/
function supprimer_lien_document($id_document, $objet, $id_objet, $supprime = false, $check = false)
{
if (!($id_document = intval($id_document))) {
return false;
}
// D'abord on ne supprime pas, on dissocie
include_spip('action/editer_liens');
objet_dissocier(array('document' => $id_document), array($objet => $id_objet));
// Si c'est une vignette, l'eliminer du document auquel elle appartient
// cas tordu peu probable
sql_updateq("spip_documents", array('id_vignette' => 0), "id_vignette=" . $id_document);
// verifier son statut apres une suppression de lien
include_spip('action/editer_document');
document_instituer($id_document);
pipeline('post_edition', array('args' => array('operation' => 'delier_document', 'action' => 'delier_document', 'table' => 'spip_documents', 'id_objet' => $id_document, 'objet' => $objet, 'id' => $id_objet), 'data' => null));
if ($check) {
// si demande, on verifie que ses documents vus sont bien lies !
$spip_table_objet = table_objet_sql($objet);
$table_objet = table_objet($objet);
$id_table_objet = id_table_objet($objet, $serveur);
$champs = sql_fetsel('*', $spip_table_objet, addslashes($id_table_objet) . "=" . intval($id_objet));
$marquer_doublons_doc = charger_fonction('marquer_doublons_doc', 'inc');
$marquer_doublons_doc($champs, $id_objet, $objet, $id_table_objet, $table_objet, $spip_table_objet, '', $serveur);
}
// On supprime ensuite s'il est orphelin
// et si demande
// ici on ne bloque pas la suppression d'un document rattache a un autre
if ($supprime and !sql_countsel('spip_documents_liens', "objet!='document' AND id_document=" . $id_document)) {
$supprimer_document = charger_fonction('supprimer_document', 'action');
return $supprimer_document($id_document);
}
}
示例10: action_instituer_langue_objet_dist
/**
* Modifier la langue d'un objet
*
* @param string $objet
* @param int $id
* @param int $id_rubrique
* @param string $changer_lang
* @return string
*/
function action_instituer_langue_objet_dist($objet, $id, $id_rubrique, $changer_lang)
{
if ($changer_lang) {
$table_objet_sql = table_objet_sql($objet);
$id_table_objet = id_table_objet($objet);
if ($changer_lang != "herit") {
sql_updateq($table_objet_sql, array('lang' => $changer_lang, 'langue_choisie' => 'oui'), "{$id_table_objet}=" . intval($id));
include_spip('inc/rubriques');
if ($table_objet_sql == 'spip_rubriques') {
calculer_langues_rubriques();
}
$langues = calculer_langues_utilisees();
ecrire_meta('langues_utilisees', $langues);
} else {
$langue_parent = sql_getfetsel("lang", "spip_rubriques", "id_rubrique=" . intval($id_rubrique));
if (!$langue_parent) {
$langue_parent = $GLOBALS['meta']['langue_site'];
}
sql_updateq($table_objet_sql, array('lang' => $langue_parent, 'langue_choisie' => 'non'), "{$id_table_objet}=" . intval($id));
$changer_lang = $langue_parent;
if ($table_objet_sql == 'spip_rubriques') {
include_spip('inc/rubriques');
calculer_langues_rubriques();
}
}
}
return $changer_lang;
}
示例11: 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));
}
示例12: lister_traductions
function lister_traductions($id_trad, $objet)
{
$table_objet_sql = table_objet_sql($objet);
$primary = id_table_objet($objet);
$rows = sql_allfetsel("{$primary} as id,lang", $table_objet_sql, 'id_trad=' . intval($id_trad));
lang_select();
return $rows;
}
示例13: exec_documenter_dist
function exec_documenter_dist()
{
$script = _request('script'); // generalisation a tester
$iframe = _request('iframe');
$album = _request('s');
$type = _request('type');
$id = intval(_request(id_table_objet($type)));
exec_documenter_args($id, $type, $script, $album, $iframe);
}
示例14: generer_generer_url
function generer_generer_url($type, $p)
{
$_id = interprete_argument_balise(1, $p);
if (!$_id) {
$primary = id_table_objet($type);
$_id = champ_sql($primary, $p);
}
return generer_generer_url_arg($type, $p, $_id);
}
示例15: classement_populaires
/**
* Construire un tableau par popularite
* classemnt => id_truc
*
* @param string $type
* @param string $serveur
* @return array
*/
function classement_populaires($type, $serveur = '')
{
static $classement = array();
if (isset($classement[$type])) {
return $classement[$type];
}
$classement[$type] = sql_allfetsel(id_table_objet($type, $serveur), table_objet_sql($type, $serveur), "statut='publie' AND popularite > 0", "", "popularite DESC", '', '', $serveur);
$classement[$type] = array_map('reset', $classement[$type]);
return $classement[$type];
}