Beispiel #1
0
	static public function saveForum( $parentForum, $row, $user, $plugin ) {
		global $_CB_database;

		if ( $parentForum ) {
			if ( method_exists( $row, 'getCategory' ) ) {
				$authorized			=	cbgjClass::getAuthorization( $row->getCategory(), $row, $user );
			} else {
				$authorized			=	cbgjClass::getAuthorization( $row, null, $user );
			}

			$params					=	$row->getParams();
			$forum					=	$params->get( 'forum_id', null );

			if ( ! $forum ) {
				$forum				=	cbgjForumsModel::setForum( $parentForum, $row, $user, $plugin );
			} else {
				$query				=	'SELECT *'
									.	"\n FROM " . $_CB_database->NameQuote( '#__kunena_categories' )
									.	"\n WHERE " . $_CB_database->NameQuote( 'id' ) . " = " . (int) $forum;
				$_CB_database->setQuery( $query );
				$exists				=	$_CB_database->loadResult();

				if ( ! $exists ) {
					$forum			=	cbgjForumsModel::setForum( $parentForum, $row, $user, $plugin );
				}
			}

			if ( $forum ) {
				$forumShow			=	(int) cbgjClass::getCleanParam( ( $plugin->params->get( 'forum_show_config', 1 ) || cbgjClass::hasAccess( 'usr_mod', $authorized ) ), 'forum_show', $params->get( 'forum_show', $plugin->params->get( 'forum_show', 1 ) ) );

				$query				=	'UPDATE ' . $_CB_database->NameQuote( '#__kunena_categories' )
									.	"\n SET " . $_CB_database->NameQuote( 'parent' ) . " = " . (int) $parentForum
									.	', ' . $_CB_database->NameQuote( 'name' ) . " = " . $_CB_database->Quote( str_replace( '&', '&', $row->getName() ) )
									.	', ' . $_CB_database->NameQuote( 'accesstype' ) . " = " . $_CB_database->Quote( 'communitybuilder' )
									.	', ' . $_CB_database->NameQuote( 'access' ) . " = 0"
									.	', ' . $_CB_database->NameQuote( 'pub_access' ) . " = 1"
									.	', ' . $_CB_database->NameQuote( 'pub_recurse' ) . " = 1"
									.	', ' . $_CB_database->NameQuote( 'admin_access' ) . " = 0"
									.	', ' . $_CB_database->NameQuote( 'admin_recurse' ) . " = 1"
									.	', ' . $_CB_database->NameQuote( 'published' ) . " = " . (int) ( ! $forumShow ? 0 : $row->get( 'published' ) )
									.	', ' . $_CB_database->NameQuote( 'description' ) . " = " . $_CB_database->Quote( $row->getDescription() )
									.	"\n WHERE " . $_CB_database->NameQuote( 'id' ) . " = " . (int) $forum;
				$_CB_database->setQuery( $query );
				if ( ! $_CB_database->query() ) {
					trigger_error( CBTxt::P( '[element] - saveForum SQL Error: [error]', array( '[element]' => $plugin->element, '[error]' => $_CB_database->stderr( true ) ) ) );
				} else {
					$params->set( 'forum_id', (int) $forum );
					$params->set( 'forum_show', (int) $forumShow );
					$params->set( 'forum_public', (int) cbgjClass::getCleanParam( ( $plugin->params->get( 'forum_public_config', 1 ) || cbgjClass::hasAccess( 'usr_mod', $authorized ) ), 'forum_public', $params->get( 'forum_public', $plugin->params->get( 'forum_public', 1 ) ) ) );

					if ( ! $row->storeParams( $params ) ) {
						trigger_error( CBTxt::P( '[element] - saveForum SQL Error: [error]', array( '[element]' => $plugin->element, '[error]' => $row->getError() ) ) );
					}

					cbgjForumsModel::setModerator( $row->get( 'user_id' ), $row );
				}
			}
		}
	}
Beispiel #2
0
	static public function saveForum( $parentForum, $row, $user, $plugin ) {
		if ( ! class_exists( 'KunenaForumCategoryHelper' ) ) {
			return;
		}

		if ( $parentForum ) {
			if ( method_exists( $row, 'getCategory' ) ) {
				$authorized		=	cbgjClass::getAuthorization( $row->getCategory(), $row, $user );
			} else {
				$authorized		=	cbgjClass::getAuthorization( $row, null, $user );
			}

			$params				=	$row->getParams();
			$forum				=	$params->get( 'forum_id', null );

			if ( ! $forum ) {
				$forum			=	cbgjForumsModel::setForum( $parentForum, $row, $user, $plugin );
			} else {
				$exists			=	KunenaForumCategoryHelper::get( (int) $forum );

				if ( ! $exists->name ) {
					$forum		=	cbgjForumsModel::setForum( $parentForum, $row, $user, $plugin );
				}
			}

			if ( $forum ) {
				$forumShow		=	(int) cbgjClass::getCleanParam( ( $plugin->params->get( 'forum_show_config', 1 ) || cbgjClass::hasAccess( 'usr_mod', $authorized ) ), 'forum_show', $params->get( 'forum_show', $plugin->params->get( 'forum_show', 1 ) ) );
				$category		=	KunenaForumCategoryHelper::get( (int) $forum );

				if ( method_exists( $row, 'getCategory' ) ) {
					$alias		=	null;

					if ( $row->get( 'parent' ) ) {
						$alias	.=	$row->get( 'parent' ) . ' ';
					}

					$alias		.=	$row->get( 'id' ) . ' ' . $row->getName();
				} else {
					$alias		=	$row->get( 'category' ) . ' ';

					if ( $row->get( 'parent' ) ) {
						$alias	.=	$row->get( 'parent' ) . ' ';
					}

					$alias		.=	$row->get( 'id' ) . ' ' . $row->getName();
				}

				$category->set( 'parent_id', (int) $parentForum );
				$category->set( 'name', str_replace( '&', '&', $row->getName() ) );
				$category->set( 'alias', KunenaRoute::stringURLSafe( $alias ) );
				$category->set( 'accesstype', 'communitybuilder' );
				$category->set( 'access', (int) $row->get( 'id' ) );
				$category->set( 'published', (int) ( ! $forumShow ? 0 : $row->get( 'published' ) ) );
				$category->set( 'description', $row->getDescription() );

				if ( ! $category->save() ) {
					trigger_error( CBTxt::P( '[element] - saveForum SQL Error: [error]', array( '[element]' => $plugin->element, '[error]' => $category->getError() ) ) );
				} else {
					$params->set( 'forum_id', (int) $category->id );
					$params->set( 'forum_show', (int) $forumShow );
					$params->set( 'forum_public', (int) cbgjClass::getCleanParam( ( $plugin->params->get( 'forum_public_config', 1 ) || cbgjClass::hasAccess( 'usr_mod', $authorized ) ), 'forum_public', $params->get( 'forum_public', $plugin->params->get( 'forum_public', 1 ) ) ) );

					if ( ! $row->storeParams( $params ) ) {
						trigger_error( CBTxt::P( '[element] - saveForum SQL Error: [error]', array( '[element]' => $plugin->element, '[error]' => $row->getError() ) ) );
					}

					$category->addModerator( (int) $row->user_id );
				}
			}
		}
	}