public static function helperAvatarResize($avatarUrl, $size) { if (defined('BDIMAGE_IS_WORKING')) { // use [bd] Image to resize avatars // TODO: read XenForo_Model_Avatar::$_sizes for this? switch ($size) { case 's': $size = 48; break; case 'm': $size = 96; break; case 'l': default: if (!is_int($size)) { $size = 192; } } $avatarUrl = bdImage_Integration::buildThumbnailLink($avatarUrl, $size); } return $avatarUrl; }
protected function _render(array $widget, $positionCode, array $params, XenForo_Template_Abstract $renderTemplateObject) { if (empty($widget['options']['url'])) { return ''; } if (empty($widget['options']['limit'])) { $widget['options']['limit'] = 5; } $core = WidgetFramework_Core::getInstance(); $feedModel = $core->getModelFromCache('XenForo_Model_Feed'); $feedUrl = $widget['options']['url']; $feedData = $feedModel->getFeedData($feedUrl); $feedConfig = array(); $feedConfig['baseUrl'] = $feedModel->getFeedBaseUrl($feedUrl); $entries = array(); if (!empty($feedData['entries'])) { foreach ($feedData['entries'] as $entryRaw) { $entry = array(); $entryRaw = $feedModel->prepareFeedEntry($entryRaw, $feedData, $feedConfig); $entry['link'] = $entryRaw['link']; $entry['author'] = $entryRaw['author']; $entry['title'] = $entryRaw['title']; $entry['content'] = $entryRaw['content']; if (class_exists('bdImage_Integration')) { // out source the image processing + handling to [bd] Image $entry['bdImage_image'] = bdImage_Integration::getBbCodeImage($entryRaw['content']); } else { // TODO: support other method? } $entries[] = $entry; if (count($entries) >= $widget['options']['limit']) { // we have got enough entries, stop here break; } } } $renderTemplateObject->setParam('entries', $entries); return $renderTemplateObject->render(); }