Разделы

Прямой эфир

Весь эфир | RSS

Вывод случайных документов средствами DItto.

В голову приходит только такой способ, но он не реально кривой.

<?php
$results = $modx->getDocumentChildren($id = $rootID,$active = 1,$deleted = 0,'id',$where = '',$sort='',$dir='',$limit = '');
shuffle($results);
for($i=0;$i<$countItem;$i++){
  if($i==0){
   $s.= $results[$i]['id'];
  }else{
    $s.= ', '.$results[$i]['id'];
  }
}
echo $modx->runSnippet('Ditto', array('startID' => $rootID, 'documents'=>$s, 'tpl'=>$tpl' ));
?>


Вызов [!RandChildren? &rootID=`6` &countItem=`2` &tpl=`TPL_ROW_PARTNERS` !]
  • +2
  • 3 сентября 2009, 11:26
  • chus

Комментарии (9)

RSS свернуть / развернуть
0
случайного документов

Случайного документа или случайных документов? ;)

Главное чтобы результат работы сниппета вас устраивал и был предсказуемым)

Ничего кривого в этом, имхо, нет )
avatar

pitbull

  • 3 сентября 2009, 11:31
0
Спасибо поправил… Запросов к базе надо сделать минимум…
avatar

chus

  • 3 сентября 2009, 11:44
0
Я тоже считаю, что это далеко не криво. Для произвольного числа случайных документов (то что здесь и выложено) вариант с Дитто лучше всего, если же один документ, то наверно лучше через API (может будет на 1 запрос больше к БД, но машинного времени займёт точно меньше).
avatar

iJack

  • 3 сентября 2009, 11:40
0
Если все так считаю так и оставлю ))))
avatar

chus

  • 3 сентября 2009, 11:46
+4
У Ditto есть параметр randomize
avatar

Temus

  • 3 сентября 2009, 13:04
0
Вот ведь, во истину так и есть)

Еще подумал, что в дитто предусмотрено все, но поленился параметры посмотреть.
avatar

pitbull

  • 3 сентября 2009, 13:13
0
Опа а я на своем велосипеде хотел поехать ))
Опять понадеялся на это www.modx-cms.ru/dokumentatsiya/razrabotka/snippety/ditto/parametry-ditto.html

Огромное спасибо )
avatar

chus

  • 3 сентября 2009, 13:29
0
Подскажите, а никто не сталкивался со сниппетом по типу как в WP «походие новости, статьи или ещё новости по теме». Или может кто реализовывал такую штуковину?
avatar

SDee

  • 14 сентября 2009, 21:42
0
Делал это через тэги.
avatar

Zinich

  • 29 июля 2010, 13:57

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.