Ejemplo n.º 1
0
 /**
  * Prepare message actions display.
  *
  * @return void
  */
 protected function before()
 {
     parent::before();
     $catid = $this->input->getInt('id');
     $me = KunenaUserHelper::getMyself();
     $this->category = KunenaForumCategory::getInstance($catid);
     $token = JSession::getFormToken();
     $task = "index.php?option=com_kunena&view=category&task=%s&catid={$catid}&{$token}=1";
     $layout = "index.php?option=com_kunena&view=topic&layout=%s&catid={$catid}";
     $this->template = KunenaFactory::getTemplate();
     $this->categoryButtons = new JObject();
     // Is user allowed to post new topic?
     if ($this->category->getNewTopicCategory()->exists()) {
         $this->categoryButtons->set('create', $this->getButton(sprintf($layout, 'create'), 'create', 'topic', 'communication', true));
     }
     // Is user allowed to mark forums as read?
     if ($me->exists()) {
         $this->categoryButtons->set('markread', $this->getButton(sprintf($task, 'markread'), 'markread', 'category', 'user', true));
     }
     // Is user allowed to subscribe category?
     if ($this->category->isAuthorised('subscribe')) {
         $subscribed = $this->category->getSubscribed($me->userid);
         if (!$subscribed) {
             $this->categoryButtons->set('subscribe', $this->getButton(sprintf($task, 'subscribe'), 'subscribe', 'category', 'user', true));
         } else {
             $this->categoryButtons->set('unsubscribe', $this->getButton(sprintf($task, 'unsubscribe'), 'unsubscribe', 'category', 'user', true));
         }
     }
     JPluginHelper::importPlugin('kunena');
     $dispatcher = JDispatcher::getInstance();
     $dispatcher->trigger('onKunenaGetButtons', array('category.action', $this->categoryButtons, $this));
 }
Ejemplo n.º 2
0
 function shKUCategoryName($catid, $option, $shLangIso, $shLangName)
 {
     global $sh_LANG;
     static $cats = null;
     $sefConfig =& Sh404sefFactory::getConfig();
     if (empty($catid) || !$sefConfig->shFbInsertCategoryName) {
         return '';
     }
     if (class_exists('KunenaForum')) {
         // Kunena 2.0 support
         $category = KunenaForumCategory::getInstance($catid);
         $catname = $category->name;
     } elseif (class_exists('KunenaRouter')) {
         if (KunenaRouter::$catidcache === null) {
             KunenaRouter::loadCategories();
         }
         // Kunena 1.6 support
         $catname = empty(KunenaRouter::$catidcache[$catid]) ? '' : KunenaRouter::$catidcache[$catid]['name'];
     } else {
         // Kunena 1.0 / 1.5 support
         if (is_null($cats)) {
             try {
                 $cats = ShlDbHelper::selectObjectList('#__fb_categories', array('id', 'name'));
             } catch (Exception $e) {
                 ShlSystem_Log::error('sh404sef', '%s::%s::%d: %s', __CLASS__, __METHOD__, __LINE__, $e->getMessage());
             }
         }
         $catname = empty($cats[$catid]) ? null : $cats[$catid]->name;
     }
     $shCat = empty($catname) ? $sh_LANG[$shLangIso]['COM_SH404SEF_KU_CATEGORY'] . $sefConfig->replacement . $catid : ($sefConfig->shFbInsertCategoryId ? $catid . $sefConfig->replacement : '') . $catname;
     // if name, put ID only if requested
     return $shCat;
 }
Ejemplo n.º 3
0
 function shKUCategoryName($catid, $option, $shLangIso, $shLangName)
 {
     global $sh_LANG;
     static $cats = null;
     $sefConfig =& shRouter::shGetConfig();
     if (empty($catid) || !$sefConfig->shFbInsertCategoryName) {
         return '';
     }
     if (class_exists('KunenaForum')) {
         // Kunena 2.0 support
         $category = KunenaForumCategory::getInstance($catid);
         $catname = $category->name;
     } elseif (class_exists('KunenaRouter')) {
         if (KunenaRouter::$catidcache === null) {
             KunenaRouter::loadCategories();
         }
         // Kunena 1.6 support
         $catname = empty(KunenaRouter::$catidcache[$catid]) ? '' : KunenaRouter::$catidcache[$catid]['name'];
     } else {
         // Kunena 1.0 / 1.5 support
         if (is_null($cats)) {
             $database =& JFactory::getDBO();
             $query = 'SELECT id, name FROM #__fb_categories';
             $database->setQuery($query);
             if (!shTranslateUrl($option, $shLangName)) {
                 $cats = $database->loadObjectList('id', false);
             } else {
                 $cats = $database->loadObjectList('id');
             }
         }
         $catname = empty($cats[$catid]) ? null : $cats[$catid]->name;
     }
     $shCat = empty($catname) ? $sh_LANG[$shLangIso]['COM_SH404SEF_KU_CATEGORY'] . $sefConfig->replacement . $catid : ($sefConfig->shFbInsertCategoryId ? $catid . $sefConfig->replacement : '') . $catname;
     // if name, put ID only if requested
     return $shCat;
 }
Ejemplo n.º 4
0
 static function remove_forum_k2($course_id, $forum_id)
 {
     $kunena_forum_id = JoomdleHelperForum::get_kunena_forum_id($course_id, $forum_id);
     $category = KunenaForumCategory::getInstance($kunena_forum_id);
     $category->delete();
     $db = JFactory::getDBO();
     $query = 'DELETE ' . ' FROM #__joomdle_course_forums' . " WHERE course_id = " . $db->Quote($course_id);
     $query .= " AND moodle_forum_id = " . $db->Quote($forum_id);
     $db->setQuery($query);
     $db->query();
 }
	/**
	 * Test getChildren()
	 *
	 * @dataProvider providerGetChildren
	 * @depends PostingTest::testCreateCategories
	 */
	public function testGetChildren($id, $level, $expected) {
		$category = KunenaForumCategory::getInstance($id);
		$this->assertThat(array_keys($category->getChildren($level)), $this->equalTo($expected), 'Check category children');
	}
Ejemplo n.º 6
0
	public function permdelete() {
		$app = JFactory::getApplication ();
		if (! JRequest::checkToken ('get')) {
			$app->enqueueMessage ( JText::_ ( 'COM_KUNENA_ERROR_TOKEN' ), 'error' );
			$this->redirectBack ();
		}

		if ($this->mesid) {
			// Delete message
			$target = KunenaForumMessageHelper::get($this->mesid);
			$msg = JText::_ ( 'COM_KUNENA_POST_SUCCESS_DELETE' );
			$url = $target->getUrl($this->return, false);
		} else {
			// Delete topic
			$target = KunenaForumTopicHelper::get($this->id);
			$msg = JText::_ ( 'COM_KUNENA_TOPIC_SUCCESS_DELETE' );
			$url = KunenaForumCategory::getInstance($this->return)->getUrl(null, false);
		}
		if ($target->authorise('permdelete') && $target->delete()) {
			$app->enqueueMessage ( $msg );
		} else {
			$app->enqueueMessage ( $target->getError(), 'notice' );
		}
		$app->redirect ( $url );
	}