Include sous condition

Bonjour,

J’essaie de faire un include sous condition mais « ça ne veut pas » fonctionner.
Quelqu’un saura-t-il éviter les embûches ?

Voici la chose:

<BOUCLE_breves(BREVES){id_rubrique}{par date}{inverse}>
</BOUCLE_breves>

<?php $a=#TOTAL_BOUCLE; ?>

</B_breves>

<BOUCLE_sous_rubs(RUBRIQUES){id_parent}{par titre}>
</BOUCLE_sous_rubs>

<?php $b=#TOTAL_BOUCLE; ?>

</B_sous_rubs>

<BOUCLE_docs_attaches(DOCUMENTS){id_rubrique}{mode=document}{doublons}>
</BOUCLE_docs_attaches>

<?php $c=#TOTAL_BOUCLE; ?>

</B_docs_attaches>

// jusqu’ici pas de souci

<?php $d = $a + $b + $c; if ($d != 0) include("colonne_grise.php3?id_rubrique=#ID_RUBRIQUE"); ?>

Et voici la réponse de la bête:

Warning: Failed opening ‹ colonne_grise.php3?id_rubrique=91 › for inclusion (include_path=’.;C:\Program Files\EasyPHP\php\pear’) in c:\program files\easyphp\www\srh\CACHE\2\srh-rubrique-91.195a17 on line 121

| |
| |

Je voudrais bien pouvoir poser un <INCLURE(colonne_grise.php3){id_rubrique}>
mais je ne sais pas comment faire dans ce cas de figure.

Merci d’avance à vous pour vos contributions,

A +

David

David Gourdet <david.gourdet@club-internet.fr> écrivait le 17/02/03 à 22h10 :

[...]

Je ne sais pas si c'est la "bonne solution" mais tu peux essayer ceci :

<?php
$d = $a + $b + $c;
if ($d != 0) {
?>
<INCLURE(colonne_grise.php3){id_rubrique}>
<? } ?>

Chrys
--
Christian Maisonnave - mailto:chrys@maisonnave.org
- Site : http://www.maisonnave.org
- GPG Key : maisonnave.org

From souadaoudi@hotmail.com Wed Feb 19 15:41:18 2003

Return-Path: <souadaoudi@hotmail.com>
Received: from hotmail.com (f141.law9.hotmail.com [64.4.9.141])
  by miel.brainstorm.fr (Postfix) with ESMTP id DB7151C809C
  for <spip@rezo.net>; Wed, 19 Feb 2003 15:41:17 +0100 (CET)
Received: from mail pickup service by hotmail.com with Microsoft SMTPSVC;
   Wed, 19 Feb 2003 06:41:16 -0800
Received: from 194.204.215.251 by lw9fd.law9.hotmail.msn.com with HTTP;
  Wed, 19 Feb 2003 14:41:16 GMT
X-Originating-IP: [194.204.215.251]
From: "souad daoudi" <souadaoudi@hotmail.com>
To: spip@rezo.net
Subject: =?iso-8859-1?B?UmU6IFtTcGlwXSBwYiBtaXNlIOAgam91ciB2ZXJzIDEuNQ==?=
Date: Wed, 19 Feb 2003 14:41:16 +0000
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1; format=flowed
Message-ID: <F1413Gb4B1r5y5JrmDL0002dbde@hotmail.com>
X-OriginalArrivalTime: 19 Feb 2003 14:41:16.0583 (UTC)
  FILETIME=[F54F4370:01C2D824]
X-BeenThere: spip@rezo.net
X-Mailman-Version: 2.1.1+
Precedence: list
List-Id: SPIP : questions/reponses <spip.rezo.net>
List-Unsubscribe: <http://listes.rezo.net/mailman/listinfo/spip&gt;,
  <mailto:spip-request@rezo.net?subject=unsubscribe>
List-Archive: <Discuter chez rezo.net;
List-Post: <mailto:spip@rezo.net>
List-Help: <mailto:spip-request@rezo.net?subject=help>
List-Subscribe: <http://listes.rezo.net/mailman/listinfo/spip&gt;,
  <mailto:spip-request@rezo.net?subject=subscribe>
X-List-Received-Date: Wed, 19 Feb 2003 14:41:18 -0000
Status: O
Content-Length: 1111
Lines: 36

pourquoi ne pas créer un nouveau site qui s'appuie sur l'ancienne base de
données?

From: "Christophe FRETARD" <cfretard@ch-hyeres.fr>
To: spip@rezo.net
Subject: [Spip] pb mise à jour vers 1.5
Date: Wed, 19 Feb 2003 11:42:55 +0100

Bonjour,

mon site est en version 1.2.1 (oui je sais, c'est vieillot) et j'ai essayé
de le passer en 1.5 dans les règles de l'art, tel que défini dans les
consignes de mises à jour.

Cependant, cela ne marche pas. J'ai essayé dans "tous les sens" en vain.

De dépit, j'ai créé un nouveau site SPIP (encore vierge) qui s'appuie sur
une nouvelle base de données.

Y a t-il un moyen de récupérer des tables de mon ancienne version pour les
"copier" dans la nouvelle ?
_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.uzine.net/spip

_________________________________________________________________
MSN Messenger : discutez en direct avec vos amis !
http://www.msn.fr/msger/default.asp

le 19/02/03 15:39, Christian Maisonnave à christian@maisonnave.org a écrit :

David Gourdet <david.gourdet@club-internet.fr> écrivait le 17/02/03 à 22h10 :

[...]

Je ne sais pas si c'est la "bonne solution" mais tu peux essayer ceci :

<?php
$d = $a + $b + $c;
if ($d != 0) {
?>
<INCLURE(colonne_grise.php3){id_rubrique}>
<? } ?>

Nicolas R : je rappelle que le php perso est executé APRES les boucles spip,
a un moment ou celles-ci ont disparu en ne laissant que leurs resultats
voir ici http://www.uzine.net/spip_contrib/article.php3?id_article=50
donc la , je me trompe peut etre, mais un INCLURE spip conditionne par (donc
s'executant apres) l'execution d'une conditions php perso cela me parait
problematique
@+
nicolas

Nicolas R : je rappelle que le php perso est executé APRES les boucles spip,
a un moment ou celles-ci ont disparu en ne laissant que leurs resultats
voir ici http://www.uzine.net/spip_contrib/article.php3?id_article=50
donc la , je me trompe peut etre, mais un INCLURE spip conditionne par (donc
s'executant apres) l'execution d'une conditions php perso cela me parait
problematique

Oui, INCLURE() est fait au moment de l'exécution (et non du calcul) du
squelette incluant, et lance éventuellement le calcul des boucles incluses,
puis l'exécution de l'inclus calculé. En clair : je pense que la solution
donnée va fonctionner.

-- Fil

le 19/02/03 15:58, Fil à fil@rezo.net a écrit :

Oui, INCLURE() est fait au moment de l'exécution (et non du calcul) du
squelette incluant, et lance éventuellement le calcul des boucles incluses,
puis l'exécution de l'inclus calculé. En clair : je pense que la solution
donnée va fonctionner.

-- Fil

Nicolas R : interessant la precision de Fil (merci lui)
si j'ai bien compris, en generalisant, on peut donc essayer de coutourner le
phasage d'execution boucles/php/etc... via l'usage d'INCLURE bien place
@+
nicolas

si j'ai bien compris, en generalisant, on peut donc essayer de coutourner le
phasage d'execution boucles/php/etc... via l'usage d'INCLURE bien place

Un certain Nicolas génère même ses squelettes à la volée...

Mais attention : tout ça est d'une technicité assez élevée, et il faut bien
jouer son coup si on ne veut pas tout casser en cas de mise à jour un peu
violente ou de chute de la base de données...

Le conseil général serait KISS : "keep it simple stupid" ; mais SPIP
n'interdit pas de s'amuser et de bidouiller ; d'ailleurs SPIP n'est qu'une
immense bidouille... (zut, je casse notre plan marketing là!)

-- Fil

le 19/02/03 16:28, Fil à fil@rezo.net a écrit :

Mais attention : tout ça est d'une technicité assez élevée, et il faut bien
jouer son coup si on ne veut pas tout casser en cas de mise à jour un peu
violente ou de chute de la base de données...

Le conseil général serait KISS : "keep it simple stupid"

Nicolas R : je profite de l'occasion pour poser une question concernant
l'usage simultané de la fonction INCLURE et de #LOGIN_PUBLIC

voila j'ai suivi la doc spip pour proteger des pages avec #LOGIN_PUBLIC, en
y rajoutant une condition prélable sur mots clefs (definit le statut d'acces
article par article) + quelques commentaires apparaissant a l'ecran pour mes
lecteurs, cela marche sans pb ...

question : pour faciliter la maintenance il me serait plus simple d'appeller
l'ensemble via un INCLURE au bon endroit dans les squelettes, plutot que de
placer le code directement dans le squelette. Est ce que cela aurait une
influence sur la securite de #LOGIN_PUBLIC ?

@+
nicolas

Fil <fil@rezo.net> écrivait le 19/02/03 à 16h30 :

si j'ai bien compris, en generalisant, on peut donc essayer de coutourner le
phasage d'execution boucles/php/etc... via l'usage d'INCLURE bien place

Un certain Nicolas génère même ses squelettes à la volée...

Je ne connais pas le nicolas en question mais c'est mon cas en partie.

Mais attention : tout ça est d'une technicité assez élevée, et il faut bien
jouer son coup si on ne veut pas tout casser en cas de mise à jour un peu
violente ou de chute de la base de données...

J'en suis venu là parce qu'une partie des données que j'affiche provient
de tables (on peut résumer à une seule apres jointure) non spip et dont
le contenu conditionne l'affichage. J'avais écrit une API qui fonctionne
super avec SPIP mais la réponse donnée est un bout de solution
d'intégration dans un squelette spip.
Bien sur il doit exister plus simple et surtout plus SPIP pour faire la
meme chose... mais je ne l'ai pas encore trouvé...

Chrys
--
Christian Maisonnave - mailto:chrys@maisonnave.org
- Site : http://www.maisonnave.org
- GPG Key : maisonnave.org

From chryjs@maisonnave.org Wed Feb 19 23:49:03 2003

Return-Path: <chryjs@maisonnave.org>
Received: from chryjsg.intra.maisonnave.org
  (lns-p19-9-213-228-46-67.adsl.proxad.net [213.228.46.67])
  by miel.brainstorm.fr (Postfix) with ESMTP id 7F2551C89C5
  for <spip@rezo.net>; Wed, 19 Feb 2003 23:49:03 +0100 (CET)
Received: from chryjs by chryjsg.intra.maisonnave.org with local (Exim 3.35 #1
  (Debian)) id 18ld1T-0006gm-00; Wed, 19 Feb 2003 23:49:03 +0100
Date: Wed, 19 Feb 2003 23:49:03 +0100
From: Christian Maisonnave <christian@maisonnave.org>
To: "S.Calas" <s.calas@wanadoo.fr>
Subject: Re: [Spip] selection fichier selon navigateur
Message-ID: <20030219224902.GC20310@chryjs>
References: <00be01c2d831$f87353e0$3c6b0e50@u5u2n3>
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-15
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <00be01c2d831$f87353e0$3c6b0e50@u5u2n3>
X-Operating-System: GNU-Linux 2.4.20-k7
Organization: Maisonnave
User-Agent: Mutt/1.5.3i
Sender: chryjs <chryjs@chryjsg.intra.maisonnave.org>
cc: SPIP <spip@rezo.net>
X-BeenThere: spip@rezo.net
X-Mailman-Version: 2.1.1+
Precedence: list
List-Id: SPIP : questions/reponses <spip.rezo.net>
List-Unsubscribe: <http://listes.rezo.net/mailman/listinfo/spip&gt;,
  <mailto:spip-request@rezo.net?subject=unsubscribe>
List-Archive: <Discuter chez rezo.net;
List-Post: <mailto:spip@rezo.net>
List-Help: <mailto:spip-request@rezo.net?subject=help>
List-Subscribe: <http://listes.rezo.net/mailman/listinfo/spip&gt;,
  <mailto:spip-request@rezo.net?subject=subscribe>
X-List-Received-Date: Wed, 19 Feb 2003 22:49:03 -0000
Status: O
Content-Length: 1447
Lines: 45

S.Calas <s.calas@wanadoo.fr> écrivait le 19/02/03 à 17h14 :

Bonjour,
j'ai trouvé un script pour discriminer l'affichage d'une page selon la version du navigateur de l'internaute.

Je n'en vois pas trop l'intéret surtout que ca a toutes les chances de
mal/pas fonctionner... mais bon.

<script language="JavaScript">

<!--Javascript issu de Script Masters-->
<!-- script-masters.com;

navigateur = navigator.appName;
if (navigateur == "Microsoft Internet Explorer")
parent.location.href = "index_ie.htm";
else
parent.location.href = "index_nn.htm";
</SCRIPT>

Il est demandé d'inserer ce script dans le head.

Sous entendu la partie <HEAD></HEAD> de ton squelette HTML

Est-il possible d'insérer ce script dans le PHP3 qui commande
l'affichage de la page en question, envoyant soit sur une version
concue pour IE soit pour Netscape ? Si oui comment je gère la cohabitation avec le PHP marci :slight_smile:

Dans le PHP3 c'est possible AMHA, une fonction similaire écrite en PHP
peut te permettre le meme résultat et évitera l'écueil JS .

Un truc du genre (à écrire proprement) :

// Ceci n'est pas du code mais un exemple

switch ($HTTP_USER_AGENT) {
  case "Mozilla/4.0 (compatible; MSIE 6.0; Windows 2003; DigExt)":
$fond="winzut"; break;
  default: $fond="autre";
  }

Voila
--
Christian Maisonnave - mailto:chrys@maisonnave.org
- Site : http://www.maisonnave.org
- GPG Key : maisonnave.org

From java@recre-action.net Wed Feb 19 23:58:21 2003

Return-Path: <java@recre-action.net>
Received: from mel-rto4.wanadoo.fr (smtp-out-4.wanadoo.fr [193.252.19.23])
  by miel.brainstorm.fr (Postfix) with ESMTP id 55C8C1C813B
  for <spip@rezo.net>; Wed, 19 Feb 2003 23:58:21 +0100 (CET)
Received: from mel-rta10.wanadoo.fr (193.252.19.193) by mel-rto4.wanadoo.fr
  (6.7.015) id 3E0C33FD022A5BDA for spip@rezo.net;
  Wed, 19 Feb 2003 23:58:21 +0100
Received: from recre-action.net (80.11.50.253) by mel-rta10.wanadoo.fr
  (6.7.015) id 3E26DAA6013B7484 for spip@rezo.net;
  Wed, 19 Feb 2003 23:58:21 +0100
Message-ID: <3E540C17.3000706@recre-action.net>
Date: Wed, 19 Feb 2003 23:58:31 +0100
From: Java <java@recre-action.net>
User-Agent: Mozilla/5.0 (Windows; U; Win98; fr-FR;
  rv:1.0.1) Gecko/20020823 Netscape/7.0
X-Accept-Language: fr-fr, fr
MIME-Version: 1.0
To: spip@rezo.net
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit
Subject: [Spip] page perdue
X-BeenThere: spip@rezo.net
X-Mailman-Version: 2.1.1+
Precedence: list
List-Id: SPIP : questions/reponses <spip.rezo.net>
List-Unsubscribe: <http://listes.rezo.net/mailman/listinfo/spip&gt;,
  <mailto:spip-request@rezo.net?subject=unsubscribe>
List-Archive: <Discuter chez rezo.net;
List-Post: <mailto:spip@rezo.net>
List-Help: <mailto:spip-request@rezo.net?subject=help>
List-Subscribe: <http://listes.rezo.net/mailman/listinfo/spip&gt;,
  <mailto:spip-request@rezo.net?subject=subscribe>
X-List-Received-Date: Wed, 19 Feb 2003 22:58:21 -0000
Status: O
Content-Length: 481
Lines: 14

bonjour,
alors que je chargeai une image dans un article deja en ligne, les
donnees de la page ont disparu. Du coup, j'ai bien le lien, le titre
apparait dans les nouveautés du site (et sur rezo.net), mais plus rien
qd on clique dessus "document ne conduit aucune données:
http://www.lmsi.net/article.php3?id_article=88

les autres articles fonctionnent toujours....

j'ai essayé de "reparer" la base, mais ca n'a pas fonctionné. Je n'ai
pas de sauvegarde recente.

Merci
Java