Файл: DESURE-dcms-f12de01ac63e/sys/widgets/feed/feed.php
Строк: 61
<?php
if (!defined('DCMS')) {
require_once '../../inc/start.php';
$doc = new document_json();
}
/**
* @param widget_feed_post $post1
* @param widget_feed_post $post2
* @return int
*/
function widget_feed_sort_callback($post1, $post2)
{
return $post1->sort_time_field == $post2->sort_time_field ? 0 : $post1->sort_time_field > $post2->sort_time_field ? -1 : 1;
}
function widget_feed_start_with($haystack, $needle)
{
return $needle === "" || strrpos($haystack, $needle, -strlen($haystack)) !== FALSE;
}
require_once dirname(__FILE__) . '/widget_feed_module.php';
require_once dirname(__FILE__) . '/widget_feed_post.php';
require_once dirname(__FILE__) . '/modules/forum.php';
require_once dirname(__FILE__) . '/modules/chat.php';
require_once dirname(__FILE__) . '/modules/users.php';
require_once dirname(__FILE__) . '/modules/files.php';
require_once dirname(__FILE__) . '/modules/obmen.php';
$user = current_user::getInstance();
$listing = new listing();
$listing->setAjaxUrl(new url('/sys/widgets/feed/feed.php', array('feed_update' => 'update')));
$posts = array();
$classes = get_declared_classes();
/**
* @var $modules_obj widget_feed_module[]
*/
$modules_obj = array();
foreach ($classes AS $class_name) {
if (!widget_feed_start_with($class_name, 'widget_feed_'))
continue;
$obj = new $class_name();
if ($obj instanceof widget_feed_module) {
$modules_obj[] = $obj;
} else {
unset($obj);
}
}
$all_posts = array();
foreach ($modules_obj AS $module_obj) {
$all_posts = array_merge($all_posts, $module_obj->getLastPosts(dcms::getInstance()->widget_items_count));
}
usort($all_posts, 'widget_feed_sort_callback');
$after_id = null;
/**
* @var widget_feed_post $post
*/
foreach ($all_posts AS $post) {
$listing->add($post);
if (isset($doc) && $doc instanceof document_json)
$doc->add_post($post, $after_id);
$after_id = $post->id;
}
if (!isset($doc))
$listing->display();