|
|
|
| Здравствуйте, мастера!
Я совсем недавно начал изучать PHP, и наверное мой вопрос весьма простой...
Я устанвил вашу CMS, настраиваю под себя, и по ходу дела разбираюсь в коде...
Вопрос такой: я использую модуль статей (article). Создал множество разделов:
Статьи
Повести
Рассказы
Романы
Эпопеи
....
Не важно... Этот список отображается на странице ./article/index.php
Далее заходим в раздел Статьи, а там у нас заголовок, выводимый с помощью
... ?>
<h1 class=artnamepage>Статьи</h1>
<? ...
|
Этот же заголовок выводится и на странице в разделе Повести и т.д.
Как можно вывести значение переменной .$page['name']. , чтобы при обращении к разделу выводилось его имя, а не заголовок из статичного кода?
Я пытался скопировать данный код
while($page = mysql_fetch_array($pgs))
{
echo "<li><a href=http://".$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF']."?id_page=".$page['id_artpage'].">".$page['name']."</a>";
}
|
Ну, естесственно, оставив только .$page['name']., но ничего не выходит...
Может, надо написать что-то другое в while($page = mysql_fetch_array($pgs))?
Поскажите, пожалуйста... Заранее спасибо! :) | |
|
|
|
|
|
|
|
для: Радосвет
(16.04.2006 в 02:15)
| | Добавлю к своему вопросу, что так же хочу вывести название Раздела в тэги <title></title>
Не могу понять, почему при включении в заголовок переменной <title><? echo $title; ?></title> , которой в файле index.php присвоено значение $title="Заголовок";, этот заголовок выводится в списке Разделов и в Разделе, а вот в Статье выводится то значение, которое берётся из базы при создании Статьи?
Надеюсь, я ясно описал ситуацию...
Проще говоря, я хочу при выводе списка разделов в заголовке было "Список разделов", при выводе Раздела в заголовке было Название Раздела...
Даже если, допустим, я в файле index.php пропишу $title="Список Разделов";, как мне подключить к переменной $title название раздела?
И просьба ответить на предыдущее сообщение... :) | |
|
|
|
|
|
|
|
для: Радосвет
(16.04.2006 в 02:15)
| | Здесь имеется ввиду CMS из книги "PHP 5. Практика создания Web-сайтов" или что-то другое? | |
|
|
|
|
|
|
|
для: cheops
(16.04.2006 в 13:48)
| | Абсолютно верно, я установил эту CMS с диска книги "PHP 5. Практика создания Web-сайтов"...
Там вроде всё подробно описывается, но вот с этим у меня затруднения...
Я так понимаю, чтобы в базе не держать лишнюю колонку для title раздела, лучше сделать запрос в базу к параметру id_page (name) и присвоить значение переменной $title ... Точно так же, как присвоено этой переменной в Статье параметр в базе title_html...
Прошу прощения, если пишу запутанно, я просто хочу научиться выводить из нужной таблицы нужные данные, в данном случае, чтобы Раздел имел соответствующий его названию title и заголовок в тексте... | |
|
|
|
|
|
|
|
для: Радосвет
(17.04.2006 в 01:02)
| | И ещё... Не знаю, в тему ли... Допустим, у меня 15 разделов, и в каждом разделе мне нужно какое-то особое оформление... Можно ли средствами PHP написать алгоритм, который будет проверять ID раздела, и выдавать в том месте, где выводится список статей, часть html-кода, то есть картинку, например? В разделе статей - картинка газеты, в разделе повестей - картинка с книгой... Можно ли так, или мне в таком случае лучше создать 15 модулей, и отдельно их администрировать? | |
|
|
|
|
|
|
|
для: Радосвет
(17.04.2006 в 16:22)
| | Да, вы можете даже для удобства оформить это в виде отдельной функции, которая будет принимать ID раздела и возвращать HTML-код оформления. | |
|
|
|
|
|
|
|
для: cheops
(17.04.2006 в 18:45)
| | То есть, при обращении к странице ./article/index.php?id_page=1 функция проверит ID, который равен 1, и вставит определённый код? А можно чуть подробнее об этом, или где можно прочитать? | |
|
|
|
|
|
|
|
для: Радосвет
(17.04.2006 в 01:02)
| | Так т.е. мы обращаемся к таблице artpage или articles - не очень понятно что выводится? | |
|
|
|
|
|
|
|
для: cheops
(17.04.2006 в 18:49)
| | То есть, при обращении к странице ./article/index.php?id_page=1 функция проверит ID, который равен 1, и вставит определённый код? А можно чуть подробнее об этом, или где можно прочитать?
Очень прошу ответить на предыдущее сообщение...
А насчёт базы следующее...
В таблице artpage есть поле name, там прописываются названия разделов...
Так вот, мне нужно написать такой запрос к этой таблице и к этому полю, чтобы при ID страницы ./article/index.php?id_page=1 равной 1 в заголовке страницы (title) прописалось имя раздела, взятое из таблицы по ID, и это же имя раздела прописалось бы вот здесь
// Если больше одной - выводим список статей
else
{
?>
<h1 class=artnamepage>НАЗВАНИЕ РАЗДЕЛА</h1>
<?
echo "<ol>";
while($articles = mysql_fetch_array($art))
{
echo "<li><font id=idlinks><a href=http://".$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF']."?id_article=".$articles['id_article'].">".$articles['name']."</a></font><br>".
"".$articles['description']."";
}
echo "</ol>";
echo "<p><a href='http://".$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF']."'>Все разделы</a><br><br>";
}
}
|
вместо <h1 class=artnamepage>НАЗВАНИЕ РАЗДЕЛА</h1> прописать нечто такое:
<h1 class=artnamepage> <? echo $id_page_name; ?> </h1>
|
ult $id_page_name - "функция" проверки ID...
Прошу помочь... Пожалуйста! :) | |
|
|
|
|
|
|
|
для: Радосвет
(17.04.2006 в 19:50)
| | Добры молодцы! Помогите управиться с заголовками! :) | |
|
|
|
|
автор: cheops (из кафе) (18.04.2006 в 12:14) |
|
|
для: Радосвет
(17.04.2006 в 19:50)
| | Что-то пропустил ваше сообщение - постараюсь отписаться более подробно вечером. | |
|
|
|
|
|
|
|
для: cheops (из кафе)
(18.04.2006 в 12:14)
| | Буду весьма благодарен! :)
ПС:
По ходу дела, реорганизую админку, и там опять препятствие для меня с выводом разделов...
В одной из известных CMS в админке есть возможность выбрать раздел из выпадающего меню, вписать в поле имя статьи, ввести текст статьи и нажать "Добавить"... Вот и я так хочу сделать, но пока не получается...
В той системе я отыскал такой код файла админки:
echo "
<h4>"._MD_ADDARTICLE."</h4>
<form name='edit' action='./index.php' method='post'><br />";
echo _MD_GROUPPROMPT."<br />";
$articleAccess = new groupAccess('addArticle');
echo $articleAccess->listGroups();
echo "
<br /><br />
<b>"._MD_TITLEC."</b><br />
<input type='text' class='text' name='title' value='$title' size='50' value='' /><br /><br />";
$result = $db->query("SELECT secid, secname FROM ".$db->prefix(_MI_NSECTIONS_TABLE)." ORDER BY secid");
echo "<select class='select' name='secid'>";
while (list($sid, $secname) = $db->fetch_row($result)) {
$secname = $myts->makeTboxData4Show($secname);
echo "<option value='$sid'";
if ($sid == $secid) { echo " selected='selected'"; }
echo ">$secname</option>";
}
echo "</select>";
|
Пытался его под себя подстроить - не получается... Помогите?
(Прошу прощения, если завалил вопросами, не подумайте что я ленивый, просто иногда мозги начинают плавиться)... Да и создавать созвучные темы есть ли смысл? | |
|
|
|
|
|
|
|
для: Радосвет
(18.04.2006 в 23:45)
| | Давайте под разные вопросы новые темы заводить, а то мы так быстро запутается... | |
|
|
|
|
|
|
|
для: Радосвет
(17.04.2006 в 19:50)
| | Для извлечения названия раздела следует поступить следующим образом вместо строки
<h1 class=artnamepage>НАЗВАНИЕ РАЗДЕЛА</h1>
|
написать
<?php
if(!empty($_GET['id_page']))
{
if(!preg_match("|^[\d]+$|",$_GET['id_page'])) exit("Недопустимый формат URL");
$query = "SELECT name FROM artpage WHERE id_artpage = ".$_GET['id_page']." LIMIT 1";
$pag = mysql_query($query);
if(!$pag) exit("Ошибка при обращении к таблице разделов");
$title = mysql_result($pag,0);
echo "<h1 class=artnamepage>$title</h1>";
}
else
{
echo "<h1 class=artnamepage>НАЗВАНИЕ РАЗДЕЛА</h1>";
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(19.04.2006 в 17:13)
| | Спасибо большое! С этим разобрался... Осталось только научиться делать то же с заголовками...
Кстати, пока вы написали это, я решил свою проблему весьма извращенческим способом:
<?php
$query = "SELECT * FROM artpage WHERE id_artpage=".$_GET['id_page']." ORDER BY id_artpage";
$pgs = mysql_query($query);
while($idpage = mysql_fetch_array($pgs))
{
echo "".$idpage['name']."";
}
?>
|
Я сильно не прав?
Да, ещё пытался вычленить заголовок таким образом
if ($idpage['name']!="") $title = $idpage['name'];
|
Но, видимо, поторопился... | |
|
|
|
|
|
|
|
для: Радосвет
(19.04.2006 в 17:52)
| | Это по сути одно и тоже, только ORDER BY id_artpage - лишняя, так как у вас будет возвращаться только одна запись и while - по той же причине, ваш скрипт можно переписать следующим образом.
<?php
$query = "SELECT * FROM artpage WHERE id_artpage=".$_GET['id_page'];
$pgs = mysql_query($query);
$idpage = mysql_fetch_array($pgs));
echo "".$idpage['name']."";
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(19.04.2006 в 18:20)
| | Благодарю, добрый человек! :) Всё получилось...
А в базе, в таблице с разделами решил добавить поле title_html , как у статей, и в админке сделать возможность добавлять не только название раздела, но и заголовок title, что, на мой взгляд, весьма удобно! | |
|
|
|