Source for file functions.mod_rewrite_setup.php
Documentation is available at functions.mod_rewrite_setup.php
* Functions to upgrade to modrewrite, used by plugin setup
* @author Stefan Seifarth / stese
* @copyright © www.polycoder.de
/******************************************
* File : functions.mod_rewrite_setup.php
* Descr : functions to upgrade to modrewrite
* Author : Stefan Seifarth
* Modified : 06.03.2008, Murat Purc, extracted from setup/lib directory
* handle upgrading of mod rewrite needed
$db =
new DB_Contenido();
$sql =
"ALTER TABLE " .
$cfg["tab"]["art_lang"] .
" ADD urlname VARCHAR( 128 ) AFTER title";
// check for empty article fields
$sql =
"SELECT idlang, title, idart FROM " .
$cfg["tab"]["art_lang"] .
" WHERE urlname IS NULL OR urlname = ''";
while ( $db->next_record() ) {
set_article($db->f('title'), $db->f('idart'), $db->f('idlang'));
// check for empty category fields
$sql =
"SELECT name, idcat, idlang FROM " .
$cfg["tab"]["cat_lang"] .
" WHERE urlname IS NULL OR urlname = ''";
while ( $db->next_record() ) {
set_category($db->f('name'), $db->f('idcat'), $db->f('idlang'));
$db =
new DB_Contenido();
$sql =
"ALTER TABLE " .
$cfg["tab"]["art_lang"] .
" DROP urlname";
* set websafe name in article list
* insert new websafe name in article list
* @param string original name (will be converted)
* @param integer current article id
* @param integer current language id
* @return boolean true if insert was successfully
function set_article ( $str_name =
"", $int_id =
0, $int_lang_id =
0, $int_idcat =
0) {
$db =
new DB_Contenido();
$str_new_name =
capiStrCleanURLCharacters($str_name);
// check if websafe name already exists
if ( in_articles($str_new_name, $int_id, $int_lang_id, $int_idcat) ) {
// create new websafe name if exists
$str_new_name =
capiStrCleanURLCharacters($str_name) .
"_" .
$int_id;
// check again - and set name
if (!in_articles($str_new_name, $int_id, $int_lang_id, $int_idcat)) {
// insert websafe name in article list
$sql =
"UPDATE " .
$cfg["tab"]["art_lang"] .
" SET urlname = '" .
$str_new_name .
"' WHERE idart = '" .
$int_id .
"' AND idlang = '" .
$int_lang_id .
"'";
* set websafe name in category list
* insert new websafe name in category list
* @param string original name (will be converted)
* @param integer current article id
* @param integer current language id
* @return boolean true if insert was successfully
function set_category ( $str_name =
"", $int_id =
0, $int_lang_id =
0) {
$db =
new DB_Contenido();
$str_new_name =
capiStrCleanURLCharacters($str_name);
// check if websafe name already exists
if (in_category($str_new_name, $int_id, $int_lang_id)) {
// create new websafe name if exists
$str_new_name =
capiStrCleanURLCharacters($str_name) .
"_" .
$int_id;
// check again - and set name
if (!in_category($str_new_name, $int_id, $int_lang_id)) {
// insert websafe name in article list
$sql =
"UPDATE " .
$cfg["tab"]["cat_lang"] .
" SET urlname = '$str_new_name' WHERE idcat = '$int_id' AND idlang = '$int_lang_id'";
* Check articles on websafe name
* Check all articles in the current category
* on existing same websafe name
* @param string Websafe name to check
* @param integer current article id
* @param integer current language id
* @param integer current category id
* @return boolean true if websafename already exists, false if not
function in_articles ( $str_name =
"", $int_id =
0, $int_lang_id =
0, $int_idcat =
0) {
$db =
new DB_Contenido();
$int_category_id =
$int_idcat;
// get category id if not set
$sql =
"SELECT idcat FROM " .
$cfg["tab"]["cat_art"] .
" WHERE idart = '$int_id'";
$int_category_id =
($db->f("idcat") >
0 ) ?
$db->f("idcat") :
"0";
$str_where =
" ca.idcat = '$int_category_id' AND"
.
" al.idlang = '" .
$int_lang_id .
"' AND"
.
" al.urlname = '" .
$str_name .
"' AND"
.
" al.idart <> '$int_id'";
// check if websafe name is in this category
$sql =
"SELECT count(al.idart) as numcats FROM " .
$cfg["tab"]["art_lang"] .
" al LEFT JOIN " .
$cfg["tab"]["cat_art"] .
" ca ON al.idart = ca.idart WHERE " .
$str_where;
$int_count =
$db->f("numcats");
return ($int_count >
0) ?
true :
false;
* Check categories on websafe name
* Check all categories in the main parent
* category on existing same websafe name
* @param string Websafe name to check
* @param integer current category id
* @param integer current language id
* @return boolean true if websafename already exists, false if not
function in_category ( $str_name =
"", $int_id =
0, $int_lang_id =
0) {
$db =
new DB_Contenido();
$sql =
"SELECT parentid FROM " .
$cfg["tab"]["cat"] .
" WHERE idcat = '$int_id'";
$int_parent_id =
($db->f("parentid") >
0 ) ?
$db->f("parentid") :
"0";
$str_where =
" c.parentid = '$int_parent_id' AND"
.
" cl.idlang = '" .
$int_lang_id .
"' AND"
.
" cl.urlname = '" .
$str_name .
"' AND"
.
" cl.idcat <> '$int_id'";
// check if websafe name is in this category
$sql =
"SELECT count(cl.idcat) as numcats FROM " .
$cfg["tab"]["cat_lang"] .
" cl LEFT JOIN " .
$cfg["tab"]["cat"] .
" c ON cl.idcat = c.idcat WHERE " .
$str_where;
$int_count =
$db->f("numcats");
return ($int_count >
0) ?
true :
false;
Documentation generated on Mon, 19 May 2008 22:47:07 +0200 by phpDocumentor 1.4.0