public function createBlog($input) { return $this->createChannel($input, $this->getBlogChannel(), vB_Page::getBlogConversPageTemplate(), vB_Page::getBlogChannelPageTemplate(), vB_Api_UserGroup::CHANNEL_OWNER_SYSGROUPID); }
/** * Returns the widget instances that are used for blog sidebar. * This method should be used only for owner configuration of the blog, not rendering * * @param int Channel ID * * @return array An array of widget instances, keyed by widget instance ID * <pre> * array( * widget instance ID => array( * title * widgetid * widgetinstanceid * hidden (int flag) * ) * ) * </pre> */ public function getBlogSidebarModules($channelId = 0) { $channelId = intval($channelId); $widgetApi = vB_Api::instance('widget'); // We assume there's only one container in blog pagetemplate. If this is no longer the case, we may need to implement GUID for widgetinstances $blogTemplate = vB_Page::getBlogChannelPageTemplate(); $modules = vB::getDbAssertor()->getRows('getBlogSidebarModules', array('blogPageTemplate' => $blogTemplate)); $results = $parentConfig = $sortAgain = array(); foreach ($modules as $module) { $title = $module['title']; //Temporarily removing the Blog Categories module as it is not implemented yet (VBV-4247) //@TODO: Remove this when this module gets implemented. //@TODO: It would be great if we have a way to globally disable any module and not display it anywhere to avoid this kind of fix. if ($module['guid'] == 'vbulletin-widget_blogcategories-4eb423cfd6dea7.34930850') { continue; } //END if (isset($module['adminconfig']) and !empty($module['adminconfig'])) { // search for custom title $adminConfig = @unserialize($module['adminconfig']); if (is_array($adminConfig)) { foreach ($adminConfig as $key => $val) { if (stripos($key, 'title') !== false) { $title = $val; break; } } } } if (!isset($parentConfig[$module['containerinstanceid']])) { $parentConfig[$module['containerinstanceid']] = $widgetApi->fetchConfig($module['containerinstanceid'], 0, $channelId); if (isset($parentConfig[$module['containerinstanceid']]['display_order'])) { $sortAgain[] = $module['containerinstanceid']; } } if (isset($parentConfig[$module['containerinstanceid']]['display_modules']) and !empty($parentConfig[$module['containerinstanceid']]['display_modules'])) { $hidden = in_array($module['widgetinstanceid'], $parentConfig[$module['containerinstanceid']]['display_modules']) ? 0 : 1; } else { $hidden = 0; } $results[$module['widgetinstanceid']] = array('title' => $title, 'widgetid' => $module['widgetid'], 'widgetinstanceid' => $module['widgetinstanceid'], 'hidden' => $hidden); } if (!empty($sortAgain)) { $newOrder = array(); foreach ($sortAgain as $parent) { if (is_array($parentConfig[$parent]['display_order'])) { foreach ($parentConfig[$parent]['display_order'] as $widgetInstanceId) { $newOrder[$widgetInstanceId] = $results[$widgetInstanceId]; unset($results[$widgetInstanceId]); } } // append remaining items $newOrder += $results; } return $newOrder; } else { return $results; } }