break; } $matchcategoryid = qa_db_category_slug_to_id($inparentid, $inslug); // query against DB since MySQL ignores accents, etc... if (!isset($inparentid)) { $matchpage = qa_db_single_select(qa_db_page_full_selectspec($inslug, false)); } else { $matchpage = null; } if (empty($inslug)) { $errors['slug'] = qa_lang('main/field_required'); } elseif (qa_strlen($inslug) > QA_DB_MAX_CAT_PAGE_TAGS_LENGTH) { $errors['slug'] = qa_lang_sub('main/max_length_x', QA_DB_MAX_CAT_PAGE_TAGS_LENGTH); } elseif (preg_match('/[\\+\\/]/', $inslug)) { $errors['slug'] = qa_lang_sub('admin/slug_bad_chars', '+ /'); } elseif (!isset($inparentid) && qa_admin_is_slug_reserved($inslug)) { // only top level is a problem $errors['slug'] = qa_lang('admin/slug_reserved'); } elseif (isset($matchcategoryid) && strcmp($matchcategoryid, @$editcategory['categoryid'])) { $errors['slug'] = qa_lang('admin/category_already_used'); } elseif (isset($matchpage)) { $errors['slug'] = qa_lang('admin/page_already_used'); } else { unset($errors['slug']); } if (isset($editcategory['categoryid']) || !isset($errors['slug'])) { // don't try other options if editing existing category break; } } // Perform appropriate database action
break; case 1: $inslug = qa_lang_sub('admin/page_default_slug', $inslug); break; default: $inslug = qa_lang_sub('admin/page_default_slug', $attempt - 1); break; } list($matchcategoryid, $matchpage) = qa_db_select_with_pending(qa_db_slugs_to_category_id_selectspec($inslug), qa_db_page_full_selectspec($inslug, false)); if (empty($inslug)) { $errors['slug'] = qa_lang('main/field_required'); } elseif (qa_strlen($inslug) > QA_DB_MAX_CAT_PAGE_TAGS_LENGTH) { $errors['slug'] = qa_lang_sub('main/max_length_x', QA_DB_MAX_CAT_PAGE_TAGS_LENGTH); } elseif (preg_match('/[\\+\\/]/', $inslug)) { $errors['slug'] = qa_lang_sub('admin/slug_bad_chars', '+ /'); } elseif (qa_admin_is_slug_reserved($inslug)) { $errors['slug'] = qa_lang('admin/slug_reserved'); } elseif (isset($matchpage) && $matchpage['pageid'] != @$editpage['pageid']) { $errors['slug'] = qa_lang('admin/page_already_used'); } elseif (isset($matchcategoryid)) { $errors['slug'] = qa_lang('admin/category_already_used'); } else { unset($errors['slug']); } if (isset($editpage['pageid']) || !isset($errors['slug'])) { // don't try other options if editing existing page break; } } } // Perform appropriate database action