че не получается то? тут уже код смотреть надо, а не просто трендеть))) хотя я могу и просто трендеть) только вам врядли получиться помочь)Неа.
не получается подцепить нужную новость.
Помогите пожалуйста.
Как в кейсе item построить запрос, что бы все работало?
в БД есть поля: id, url, title...
в поле url лежит текст в виде nazvanie-novosti
case 'item':
$query = mysql_query("SELECT * FROM ".TABLE_NEWS." WHERE ??? ");
$row = mysql_fetch_array($query);
$navigation->new_item($row['title'], null, null, 'parent');
$smarty->assign('AUTHOR', $row['author']);
$smarty->assign('TITLE', $row['title']);
$smarty->assign('DATA', $row['data']);
$smarty->assign('ID', $row['id']);
$smarty->assign('TEXT', $row['text']);
$smarty->assign('URL', $row['url']);
$main_content=$smarty->fetch(MODULES.'news/news.tpl');
break;
tpl дай посмотретьНе получается то, что не могу понять как подцепить нужную новость и как будет на нее выглядеть ссылка
вот кейс полной новости
PHP:case 'item': $query = mysql_query("SELECT * FROM ".TABLE_NEWS." WHERE ??? "); $row = mysql_fetch_array($query); $navigation->new_item($row['title'], null, null, 'parent'); $smarty->assign('AUTHOR', $row['author']); $smarty->assign('TITLE', $row['title']); $smarty->assign('DATA', $row['data']); $smarty->assign('ID', $row['id']); $smarty->assign('TEXT', $row['text']); $smarty->assign('URL', $row['url']); $main_content=$smarty->fetch(MODULES.'news/news.tpl'); break;
полный код страницы news.php дан тут
$query = mysql_query("SELECT * FROM ".TABLE_NEWS." WHERE ??? ");
$query = mysql_query("SELECT * FROM ".TABLE_NEWS." WHERE ??? ");
<table border="1" cellpadding="5" cellspacing="1" width="100%">
<tr>
<td>{$TITLE}</td>
<td>{$AUTHOR} | {$DATA}</td>
<td>{$TEXT}</td>
</tr>
</table>
<!-- список -->
<table border="1" cellpadding="5" cellspacing="1" width="100%">
{foreach name=aussen item=content_data from=$module_content}
<tr>
<td><a href="/news/{$content_data.URL}">{$content_data.TITLE}</a></td>
<td>{$content_data.AUTHOR} | {$content_data.DATA}</td>
<td>{$content_data.TEXT}</td>
</tr>
{/foreach}
</table>
где, как?вот как получить $url(id) $url[id] $url->id - вам и надо сделать
это вопрос парсинга urlгде, как?
тут я как бы пас - для вас очевидным кодом я не обладаю так как сам использую сторонний роутинг, если есть желания разбираться "правильный" реквест),Я буду признателен, если поделитесь готовым примером.
Для меня такие очевидные вещи пока не очень очевидны)
// Парсинг
$list = explode('?', $url);
$url = $list[0];
$params = ( isset( $list[1] ) ) ? $list[1] : '';
$getUrl= explode('/', $url);
// Если массив $_GET не существует
$params = explode('&', $params);
$getVar = array();
foreach( $params as $v ) {
$v = explode('=', $v);
if ( count( $v ) == 2 ) $getVar[ $v[0] ] = $v[1];
}
// ===========
$url = preg_replace("/\/+/",'/',$_SERVER['REQUEST_URI']);
$url = preg_replace("/^\/(.*)\/?$/U",'\\1',$url);
$url = preg_replace("/^(.*)\?.*$/U",'\\1',$url);
$url = explode("/", $url);
switch ($url[0])
{
case 'news':
include "news.php";
break;
default:
include "index.php";
}
switch ($url[1])
{
case 'item':
// ЭТО ПОЛНАЯ НОВОСТЬ
$query = mysql_query("SELECT * FROM ".TABLE_NEWS." WHERE ??? ");
$row = mysql_fetch_array($query);
$navigation->new_item($row['title'], null, null, 'parent');
$smarty->assign('AUTHOR', $row['author']);
$smarty->assign('TITLE', $row['title']);
$smarty->assign('DATA', $row['data']);
$smarty->assign('ID', $row['id']);
$smarty->assign('TEXT', $row['text']);
$smarty->assign('URL', $row['url']);
$main_content=$smarty->fetch(MODULES.'news/news.tpl');
$smarty->assign('main_content',$main_content);
break;
default:
// ЭТО СПИСОК НОВОСТЕЙ
$res = newsAll();
$module_content = array();
while($row = mysql_fetch_array($res))
{
$module_content[] = array
(
'AUTHOR' => $row['author'],
'TITLE' => $row['title'],
'DATA' => $row['data'],
'ID' => $row['id'],
'TEXT' => $row['text'],
'URL' => $row['url']
);
}
// Уберем постраничность, чтобы кода меньше было
$smarty->assign('module_content',$module_content);
$main_content=$smarty->fetch(MODULES.'news/news_list.tpl');
$smarty->assign('main_content',$main_content);
}
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,QSA]
$url = preg_replace("/\/+/",'/',$_SERVER['REQUEST_URI']);
$url = preg_replace("/^\/(.*)\/?$/U",'\\1',$url);
$url = preg_replace("/^(.*)\?.*$/U",'\\1',$url);
$url = explode("/", getenv('REQUEST_URI'));
$urlQuery = ( isset( $url[1] ) ) ? $url[1] : false;
if ( $query == false ) {
// ЭТО СПИСОК НОВОСТЕЙ
} else {
$q = sprintf("SELECT * FROM ".TABLE_NEWS." WHERE `url` LIKE '%s' LIMIT 1",
mysql_real_escape_string( $urlQuery ));
$query = mysql_query($q);
$row = mysql_fetch_array($query);
if ( count( $row ) == 0 ) {
// Страница не найдена
} else {
// ЭТО ПОЛНАЯ НОВОСТЬ
}
}
$tmp = array();
$url = explode("/", getenv('REQUEST_URI'));
foreach( $url as $v )
if ( $v != false ) $tmp[] = $v;
$url = $tmp;
$urlQuery = ( isset( $url[2] ) ) ? $url[2] : false;
$urlSection = ( isset( $url[1] ) ) ? $url[1] : false;
if ( $urlQuery == false ) {
$urlQuery = $urlSection;
$urlSection = false;
}
$q = sprintf("SELECT * FROM ".TABLE_NEWS." WHERE `url` LIKE '%s' LIMIT 1",
mysql_real_escape_string( $urlQuery ));
$query = mysql_query($q);
$sub = ( $urlSection != false )
? sprintf("`section`=%s", mysql_real_escape_string( $urlSection ))
: '';
$q = sprintf("SELECT * FROM ".TABLE_NEWS." WHERE %s `url` LIKE '%s' LIMIT 1",
$sub , mysql_real_escape_string( $urlQuery ));
$query = mysql_query($q);