if ($faq->isAlreadyTranslated($record_id, $record_lang)) {
         $faq->updateRecord($recordData);
     } else {
         $record_id = $faq->addRecord($recordData, false);
     }
     $faq->deleteCategoryRelations($record_id, $record_lang);
     $faq->addCategoryRelations($categories['rubrik'], $record_id, $record_lang);
     if ($tags != '') {
         $tagging->saveTags($record_id, explode(',', $tags));
     } else {
         $tagging->deleteTagsFromRecordId($record_id);
     }
     $faq->deletePermission('user', $record_id);
     $faq->addPermission('user', $record_id, $restricted_users);
     $category->deletePermission('user', $categories['rubrik']);
     $category->addPermission('user', $categories['rubrik'], $restricted_users);
     if ($faqConfig->get('security.permLevel') != 'basic') {
         $faq->deletePermission('group', $record_id);
         $faq->addPermission('group', $record_id, $restricted_groups);
         $category->deletePermission('group', $categories['rubrik']);
         $category->addPermission('group', $categories['rubrik'], $restricted_groups);
     }
 } else {
     if ('insertentry' == $do) {
         unset($recordData['id']);
         unset($recordData['revision_id']);
         $revision_id = 1;
         $record_id = $faq->addRecord($recordData);
         if ($record_id) {
             $faq->createChangeEntry($record_id, $user->getUserId(), nl2br($changed), $recordData['lang']);
             $visits = new PMF_Visits($faqConfig);
Beispiel #2
0
 $newData = array('lang' => $isTranslation == true ? $newLanguage : $languageCode, 'thema' => $question, 'active' => $autoActivate ? FAQ_SQL_ACTIVE_YES : FAQ_SQL_ACTIVE_NO, 'sticky' => 0, 'content' => nl2br($answer), 'keywords' => $keywords, 'author' => $name, 'email' => $email, 'comment' => FAQ_SQL_YES, 'date' => date('YmdHis'), 'dateStart' => '00000000000000', 'dateEnd' => '99991231235959', 'linkState' => '', 'linkDateCheck' => 0);
 if ($isNew) {
     $categories = $categories['rubrik'];
 } else {
     $newData['id'] = $faqid;
     $categories = $category->getCategoryIdsFromArticle($newData['id']);
 }
 $recordId = $faq->addRecord($newData, $isNew);
 $faq->addCategoryRelations($categories, $recordId, $newData['lang']);
 // Activate visits
 $visits = PMF_Visits::getInstance();
 $visits->add($recordId, $newData['lang']);
 if ($autoActivate) {
     // Add user permissions
     $faq->addPermission('user', $recordId, -1);
     $category->addPermission('user', $categories['rubrik'], array(-1));
     // Add group permission
     if ($faqconfig->get('security.permLevel') != 'basic') {
         $faq->addPermission('group', $recordId, -1);
         $category->addPermission('group', $categories['rubrik'], array(-1));
     }
 }
 // Let the PMF Administrator and the Category Owner to be informed by email of this new entry
 $send = array();
 $mail = new PMF_Mail();
 $mail->setReplyTo($email, $name);
 $mail->addTo($faqconfig->get('main.administrationMail'));
 $send[$faqconfig->get('main.administrationMail')] = 1;
 foreach ($categories as $_category) {
     $userId = $category->getCategoryUser($_category);
     // @todo Move this code to Category.php
Beispiel #3
0
         printf('<p class="success">%s</p>', $PMF_LANG['ad_categ_added']);
     } else {
         printf('<p class="error">%s</p>', $db->error());
     }
 }
 // Updates an existing category
 if ($action == 'updatecategory') {
     $category = new PMF_Category($current_admin_user, $current_admin_groups, false);
     $parent_id = PMF_Filter::filterInput(INPUT_POST, 'parent_id', FILTER_VALIDATE_INT);
     $category_data = array('id' => PMF_Filter::filterInput(INPUT_POST, 'id', FILTER_VALIDATE_INT), 'lang' => PMF_Filter::filterInput(INPUT_POST, 'catlang', FILTER_SANITIZE_STRING), 'parent_id' => $parent_id, 'name' => PMF_Filter::filterInput(INPUT_POST, 'name', FILTER_SANITIZE_STRING), 'description' => PMF_Filter::filterInput(INPUT_POST, 'description', FILTER_SANITIZE_STRING), 'user_id' => PMF_Filter::filterInput(INPUT_POST, 'user_id', FILTER_VALIDATE_INT));
     $userperm = PMF_Filter::filterInput(INPUT_POST, 'userpermission', FILTER_SANITIZE_STRING);
     $user_allowed = 'all' == $userperm ? -1 : PMF_Filter::filterInput(INPUT_POST, 'restricted_users', FILTER_VALIDATE_INT);
     $groupperm = PMF_Filter::filterInput(INPUT_POST, 'grouppermission', FILTER_SANITIZE_STRING);
     $group_allowed = 'all' == $groupperm ? -1 : PMF_Filter::filterInput(INPUT_POST, 'restricted_groups', FILTER_VALIDATE_INT);
     if (!$category->checkLanguage($category_data['id'], $category_data['lang'])) {
         if ($category->addCategory($category_data, $parent_id, $category_data['id']) && $category->addPermission('user', array($category_data['id']), $user_allowed) && $category->addPermission('group', array($category_data['id']), $group_allowed)) {
             printf('<p class="success">%s</p>', $PMF_LANG['ad_categ_translated']);
         } else {
             printf('<p class="error">%s</p>', $db->error());
         }
     } else {
         if ($category->updateCategory($category_data)) {
             $category->deletePermission('user', array($category_data['id']));
             $category->deletePermission('group', array($category_data['id']));
             $category->addPermission('user', array($category_data['id']), $user_allowed);
             $category->addPermission('group', array($category_data['id']), $group_allowed);
             printf('<p class="success">%s</p>', $PMF_LANG['ad_categ_updated']);
         } else {
             printf('<p class="error">%s</p>', $db->error());
         }
     }
 $category->setGroups($currentAdminGroups);
 $parentId = PMF_Filter::filterInput(INPUT_POST, 'parent_id', FILTER_VALIDATE_INT);
 $categoryData = array('id' => PMF_Filter::filterInput(INPUT_POST, 'id', FILTER_VALIDATE_INT), 'lang' => PMF_Filter::filterInput(INPUT_POST, 'catlang', FILTER_SANITIZE_STRING), 'parent_id' => $parentId, 'name' => PMF_Filter::filterInput(INPUT_POST, 'name', FILTER_SANITIZE_STRING), 'description' => PMF_Filter::filterInput(INPUT_POST, 'description', FILTER_SANITIZE_STRING), 'user_id' => PMF_Filter::filterInput(INPUT_POST, 'user_id', FILTER_VALIDATE_INT));
 $permissions = array();
 if ('all' === PMF_Filter::filterInput(INPUT_POST, 'userpermission', FILTER_SANITIZE_STRING)) {
     $permissions += array('restricted_user' => array(-1));
 } else {
     $permissions += array('restricted_user' => array(PMF_Filter::filterInput(INPUT_POST, 'restricted_users', FILTER_VALIDATE_INT)));
 }
 if ('all' === PMF_Filter::filterInput(INPUT_POST, 'grouppermission', FILTER_SANITIZE_STRING)) {
     $permissions += array('restricted_groups' => array(-1));
 } else {
     $permissions += PMF_Filter::filterInputArray(INPUT_POST, array('restricted_groups' => array('filter' => FILTER_VALIDATE_INT, 'flags' => FILTER_REQUIRE_ARRAY)));
 }
 if (!$category->checkLanguage($categoryData['id'], $categoryData['lang'])) {
     if ($category->addCategory($categoryData, $parentId, $categoryData['id']) && $category->addPermission('user', array($categoryData['id']), $permissions['restricted_user']) && $category->addPermission('group', array($categoryData['id']), $permissions['restricted_groups'])) {
         printf('<p class="alert alert-success">%s</p>', $PMF_LANG['ad_categ_translated']);
     } else {
         printf('<p class="alert alert-error">%s</p>', $faqConfig->getDb()->error());
     }
 } else {
     if ($category->updateCategory($categoryData)) {
         $category->deletePermission('user', array($categoryData['id']));
         $category->deletePermission('group', array($categoryData['id']));
         $category->addPermission('user', array($categoryData['id']), $permissions['restricted_user']);
         $category->addPermission('group', array($categoryData['id']), $permissions['restricted_groups']);
         printf('<p class="alert alert-success">%s</p>', $PMF_LANG['ad_categ_updated']);
     } else {
         printf('<p class="alert alert-error">%s</p>', $faqConfig->getDb()->error());
     }
 }
 if ($openQuestionId) {
     if ($faqConfig->get('records.enableDeleteQuestion')) {
         $faq->deleteQuestion($openQuestionId);
     } else {
         // adds this faq record id to the related open question
         $faq->updateQuestionAnswer($openQuestionId, $recordId, $categories[0]);
     }
 }
 // Activate visits
 $visits = new PMF_Visits($faqConfig);
 $visits->add($recordId, $newData['lang']);
 // Set permissions
 $userPermissions = $category->getPermissions('user', $categories);
 // Add user permissions
 $faq->addPermission('user', $recordId, $userPermissions);
 $category->addPermission('user', $categories, $userPermissions);
 // Add group permission
 if ($faqConfig->get('security.permLevel') !== 'basic') {
     $groupPermissions = $category->getPermissions('group', $categories);
     $faq->addPermission('group', $recordId, $groupPermissions);
     $category->addPermission('group', $categories, $groupPermissions);
 }
 // Let the PMF Administrator and the Category Owner to be informed by email of this new entry
 $send = array();
 $mail = new PMF_Mail($faqConfig);
 $mail->setReplyTo($email, $name);
 $mail->addTo($faqConfig->get('main.administrationMail'));
 $send[$faqConfig->get('main.administrationMail')] = 1;
 foreach ($categories as $_category) {
     $userId = $category->getCategoryUser($_category);
     // @todo Move this code to Category.php