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 ); } } } }
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 ); } } } }