// Connection à la base de donnée:
$table = $modx->getFullTableName("site_content");
// Initialisation de l'output
$output = '';
// Requéte
$Sql = "";
$Sql .= "SELECT id,pagetitle, IF(CHAR_LENGTH(content) > 310, CONCAT(LEFT(content,310), '...'), content) AS content FROM $table WHERE ";
$Sql .= "(parent = 41 OR parent =44 ";
$Sql .= "OR parent=47 OR parent=50 ";
$Sql .= "OR parent=53 OR parent=56 ";
$Sql .= "OR parent=112) ";
$Sql .= "AND published = 1";
$Sql .= " ORDER BY RAND()";
$Sql .= " LIMIT 1;";
//Résultat
$resultat = $modx->dbQuery($Sql);
//Tableau assossiatif
$array= mysql_fetch_assoc($resultat);
//Affichage
$lien = $array['id'];
echo $array['pagetitle'];
echo "<br>";
echo "<br>";
echo $array['content'];
echo "<p><A HREF='/[~".$lien."~]'>"."Lire le témoignage"."</A></p>";
<?php
/**
* @var modX $modx
* @var array $scriptProperties
*/
$c = $modx->newQuery('modDocument');
$c->select(array(
'id',
'pagetitle',
"IF(CHAR_LENGTH(content) > 310, CONCAT(LEFT(content,310), '...'), content) AS content",
));
$c->where(array(
'parent:IN' => array(41, 44, 47, 50, 53, 56, 112),
'published' => true,
));
$c->sortby('RAND()');
$c->limit(1);
// Décommenter pour voir la query
//$c->prepare();
//$modx->log(modX::LOG_LEVEL_ERROR, $c->toSQL());
/** @var $resource modDocument */
$resource = $modx->getObject('modDocument', $c);
if (!$resource) {
return 'woups!';
}
$resArray = $resource->toArray('', false, true);
$lien = $modx->makeUrl($resArray['id']);
return "{$resArray['pagetitle']}
<br><br>{$resArray['content']}
<p><a href=". $lien .">Lire le témoignage</a></p>";
<?php
?>
<script src="http://ajax.googleapis.com/ajax/
libs/jquery/1.3.0/jquery.min.js"></script>
<script>
$.ajaxSetup ({
// enlève le cache pour IE
cache: false
});
var auto_refresh = setInterval(
window.onload=function()
{
$('#bloc').slideUp().load('/interne/contenualeatoireilsontdit.html').slideDown();
}, 10000);
</script>
<div id="bloc"></div>
<?php
?>
, il se rafraichi toute les 10s, mais.... il ne change pas, lol
<?php
/**
* @var modX $modx
* @var array $scriptProperties
*/
// Paramètres du snippet
$tpl = $modx->getOption('tpl', $scriptProperties);
$parents = $modx->getOption('parents', $scriptProperties);
$limit = $modx->getOption('limit', $scriptProperties, 1);
$sortBy = $modx->getOption('sortBy', $scriptProperties, 'id');
$sortDir = $modx->getOption('sortDir', $scriptProperties, 'RAND()');
$debug = $modx->getOption('debug', $scriptProperties);
$c = $modx->newQuery('modDocument');
$c->select(array(
'id',
'pagetitle',
"IF(CHAR_LENGTH(content) > 310, CONCAT(LEFT(content,310), '...'), content) AS content",
));
$c->where(array(
'parent:IN' => explode(',', $parents),
'published' => true,
));
$c->sortby($sortBy, $sortDir);
$c->limit($limit);
if ($debug) {
// si &debug a une valeur, on log la query
$c->prepare();
$modx->log(modX::LOG_LEVEL_ERROR, $c->toSQL());
}
/** @var $resource modDocument */
$resource = $modx->getObject('modDocument', $c);
if (!$resource) {
return 'woups!';
}
$resArray = $resource->toArray('', false, true);
return $modx->getChunk($tpl, $resArray);
[[!snippet?
&parents=`1,2,3,4` // les parents dans lesquels effectuer la query
&tpl=`nom_du_chunk` // le chunk de "mise en forme"
&limit=`2` // pour avoir 2 résultats au lieu d'un
&debug=`1` // logger la query dans les logs MODX
&sortBy=`id` // effectuer un classement sur les IDs des ressources
&sortDir=`DESC` // pour afficher les ressources ayant les IDs les plus "élevées" (les dernières ressources créées)
]]
[[+pagetitle]] <br /><br /> [[+content]] <p><a href="[[~[[+id]]]]">Lire…</p>