El problema era el siguiente:
En un esqueleto de RUBRIQUE, una opción habitual es mostrar una lista con el título de los artículos de la sección seguido de un breve texto con las primeras líneas del artículo y un enlace a “Continuar”. El problema es que en el sitio multilingüe de International Netwok for Peace algunos artículos no están traducidos, por lo que el texto del artículo es algo así como “Este artículo todavía no está traducido”. En ese caso, no tiene sentido mostrar el enlace “Continuar”, puesto que ya se está viendo todo el texto del artículo.
Para solucionar este problema se planteó la siguiente condición:
Si el texto del artículo tiene más de 300 caracteres se muestran los primeros 300 caracteres del texto y el enlace “Continuar”. En otro caso se muestra el texto completo y no se muestra el enlace “Continuar”.
Para calcular esta condición se necesita código PHP:
<BOUCLE_articles_rubrique(ARTICLES) {branche} {par num titre} {!par date}> <?php /* determination de la longitud del texto */ /* observemos que strlen es un función PHP */ $A=[(#TEXTE|textebrut|strlen)]; /* eleccion de la longitud maxima para no cortar */ $b=300; if ($A>$b){ ?> /* salimos de PHP para no tener que escapar todos los caracteres especiales y así simplificar mucho la notación */ /* observemos la notación "if" en SPIP: si hay #DESCRIPTIF mostrarlo, y si no mostrar el #TEXTE */ (#DESCRIPTIF|sinon{[(#CHAPO|sinon{[(#TEXTE|couper{300})]})]}) <b class="separateur">&  gt;</b> <a class="suite" href="#URL_SITE_SPIP/#URL_ARTICLE" title="...<:suite:>" ><:suite:></a> /* volvemos a entrar en PHP */ <?php }else{ ?> #TEXTE <?php } ?> </BOUCLE_articles_rubrique> El resultado puede verse en la siguiente imagen:
Si este caso resulta demasiado complicado, puede verse un caso mucho más sencillo en
Variables PHP en SPIP, caso sencillo
by Genís