No to mi kolega pomógł.... :]
Jakoś tak słabo u mnie z rozróżnianiem wyrażeń regularnych, więc może w inny sposób podejdźmy do tego tematu.
W moim systemie, funkcja generująca url'a dla modułu 'static_pages' (dla reguły "/strona.php?m=pages&id=") wygląda tak:
func.php
$znaki1 = array('ę','ó','ą','ś','ł','ż','ź','ć','ń','Ę','Ó','Ą','Ś','Ł','Ż','Ź','Ć','Ń'); $znaki2 = array('e','o','a','s','l','z','z','c','n','e','o','a','s','l','z','z','c','n');
$r_uri = mysql_query("SELECT * FROM static_pages WHERE uri = '$uri' AND id<>'$id' LIMIT 1"); $i = 1;
$new_uri = $uri.$i++;
$r_uri = mysql_query("SELECT * FROM static_pages WHERE uri = '$new_uri' AND id<>'$id' LIMIT 1"); }
$uri = $new_uri;
}
Natomiast w <head> pobieram sobie meta w taki sposób:
<?php
$static_title = ' - static title';
// tytuł, opis i słowa kluczowe dla innych podstron niż podstrona samochodu (auto.php?id=)
$default_title = 'default tittle';
$default_desc = ' default description';
$default_keyw = 'default keywords';
if ( isset ( $_GET['uri'] ) ) { $id = (int)$_GET['id'];
myconnect();
$r_meta = mysql_query ("SELECT id,meta_title,meta_desc,meta_keyw FROM static_pages WHERE (id='$id') "); myclose();
$_GET['id'] = $meta_tags['id'];
$meta_keyw = $meta_tags['meta_keyw'];
$meta_desc = $meta_tags['meta_desc'];
$meta_title = $meta_tags['meta_title'].$static_title;
}
else {
$meta_keyw = $default_keyw;
$meta_desc = $default_desc;
$meta_title = $default_title;
}
?>
<html>
<head>
<base href="/" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>
<?php print $meta_title; ?></title>
<meta name="keywords" content="
<?php print $meta_keyw; ?>" />
<meta name="Description" content="
<?php print $meta_desc; ?>" />
I na koniec, w stopce wyświetlam kolumnę ze stronami statycznymi: <?php
myconnect();
$i=1;
?>
<?php $link= 'informacje/'.$static_pages['id'].'/'.$static_pages['page_title'].'/'. $static_pages['uri'];?>
<?php
?>
<ul>
<li><a href="
<?php echo $link; ?>.html ">
<?php echo $static_pages["page_title"]; ?></a></li>
</ul>
<?php
$i++;
}
myclose();
?>
No i dobrze, być może pojawia się tu problem w tym, że dokładnie te same funkcje próbują wygenerować ten sam efekt w stosunku do modułu 'cars' (/auto.php?id=).
func.php
myconnect();
/*
**
** pobieranie meta-tagów i..
** utworzenie na podstawie tytułu zmiennej $uri czyli "linku"
** który będzie używany w "seo linkach" w .htaccess
** następnie dodaję powyższe parametry ($meta_title, $meta_desc, $meta_keyw, $uri)
** przy wywołaniu poniższej funkcji myedit_cars()
*/
$znaki1 = array('ę','ó','ą','ś','ł','ż','ź','ć','ń','Ę','Ó','Ą','Ś','Ł','Ż','Ź','Ć','Ń'); $znaki2 = array('e','o','a','s','l','z','z','c','n','e','o','a','s','l','z','z','c','n');
$r_uri = mysql_query("SELECT * FROM cars WHERE uri = '$uri' AND id<>'$id' LIMIT 1"); $i = 1;
$new_uri = $uri.$i++;
$r_uri = mysql_query("SELECT * FROM cars WHERE uri = '$new_uri' AND id<>'$id' LIMIT 1"); }
$uri = $new_uri;
}
head.php
<?php
include("inc/func.php");
?>
<!DOCTYPE HTML>
<?php
/*
**
** tworzę zmienną $static_title i używam jej w meta-tagu title
**
*/
// dopisek do tytułu na podstronach samochodu
$static_title = ' - static tittle';
// tytuł, opis i słowa kluczowe dla innych podstron niż podstrona samochodu
$default_title = 'default tittle';
$default_desc = 'default description';
$default_keyw = 'default keywords';
if ( isset ( $_GET['uri'] ) ) { $id = (int)$_GET['id'];
myconnect();
$r_meta = mysql_query ("SELECT id,meta_title,meta_desc,meta_keyw FROM cars WHERE (id='$id') "); myclose();
$_GET['id'] = $meta_tags['id'];
$meta_keyw = $meta_tags['meta_keyw'];
$meta_desc = $meta_tags['meta_desc'];
$meta_title = $meta_tags['meta_title'].$static_title;
}
else {
$meta_keyw = $default_keyw;
$meta_desc = $default_desc;
$meta_title = $default_title;
}
?>
<html>
<head>
<base href="/" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>
<?php print $meta_title; ?></title>
<meta name="keywords" content="
<?php print $meta_keyw; ?>" />
<meta name="Description" content="
<?php print $meta_desc; ?>" />
Poległem, bo nie bardzo wiem jak połączyć te 2 wątki, tak aby nie kolidowały ze sobą..
Pomoże któryś z bardziej doświadczonych kolegów ?
...i brak odzewu :]