Добрый день. Осваиваю PHP и использую smarty ва данный момент.
Вот столкнулся с такйо проблемой.
В Index.php я подключаю шаблон index.tpl
В самом шаблоне в <div class="cont"> хочу выводить подключать шаблон в зависимости от нажатой ссылки
Для примера выглядеть это будет так:
{if $page=='view'}
{include file="add.tpl"}
{else}
{include file="cont/main.tpl"}
{/if}
По умолчанию page задана в index.php
Сам вопрос: как мне передать, какой-либо параметр переменной page при нажатии на ссылку в index.tpl????
Грубо говоря мне нужно, что бы скажем при нажатии на ссылку Главная в page заносилось index, при нажатии на Добавить - add
Или такое не возможно?
1. Merty - 15 Марта, 2010 - 11:59:57 - перейти к сообщению
2. JustUserR - 15 Марта, 2010 - 15:26:09 - перейти к сообщению
Merty пишет:
То есть вы хотите подключать файлы через include с передачей параметра - напрямую это не получится потому что происходит прямое считывание и интерпреация файла PHP - похожий метод бы работал в случае вывоза по CGI но не подключания файла а его исполненияСам вопрос: как мне передать, какой-либо параметр переменной page при нажатии на ссылку в index.tpl????
Чтобы передавтаь парамерты вы можете создать глобальную переменную и хранить данные в ней - либо же использовать переменную окружения
3. Merty - 16 Марта, 2010 - 01:01:29 - перейти к сообщению
JustUserR пишет:
Чтобы передавтаь парамерты вы можете создать глобальную переменную и хранить данные в ней - либо же использовать переменную окружения
Merty пишет:
То есть вы хотите подключать файлы через include с передачей параметра - напрямую это не получится потому что происходит прямое считывание и интерпреация файла PHP - похожий метод бы работал в случае вывоза по CGI но не подключания файла а его исполненияСам вопрос: как мне передать, какой-либо параметр переменной page при нажатии на ссылку в index.tpl????
Чтобы передавтаь парамерты вы можете создать глобальную переменную и хранить данные в ней - либо же использовать переменную окружения
А как этой самой переменой передать конкретное значение при нажатии на ссылку
4. JustUserR - 16 Марта, 2010 - 13:30:07 - перейти к сообщению
Merty пишет:
Например пользовтля нажимает на ссылку и переадется get-переменная значение которой копируется в опредеелную глобальную прееменную и может использовать со всех подключаемый файлах (Лишь бы к моменту подключения этих файлов переменная была объявлена и определена А как этой самой переменой передать конкретное значение при нажатии на ссылку
![Улыбка Улыбка](./im/emoticons/smile24.gif)
5. ALEN - 16 Марта, 2010 - 16:41:41 - перейти к сообщению
суть в общем такая:
$page=$_GET['page'];
а вот ссылка например:
index.php?page=add
index.php?page=index
и т.д.
Чтоб было проще разбираться, то советую файлы прикрепляемые таким образом называть так же, т.е. в данном случае:
add.tpl
index.tpl
Это чтоб в шаблоне просто вставлять:
{include file=$page.".tpl"}
но тогда по умолчанию проверяйте переменную page:
if(isset($_GET['page'])==TRUE&&$_GET['page']!=''){
$page=$_GET['page'];
} else {
$page='index';
}
$page=$_GET['page'];
а вот ссылка например:
index.php?page=add
index.php?page=index
и т.д.
Чтоб было проще разбираться, то советую файлы прикрепляемые таким образом называть так же, т.е. в данном случае:
add.tpl
index.tpl
Это чтоб в шаблоне просто вставлять:
{include file=$page.".tpl"}
но тогда по умолчанию проверяйте переменную page:
if(isset($_GET['page'])==TRUE&&$_GET['page']!=''){
$page=$_GET['page'];
} else {
$page='index';
}
6. Merty - 16 Марта, 2010 - 16:52:03 - перейти к сообщению
Окончательно затупил в своей безграмотности...
Вот более конкретный пример.
Заношу поля базы данных в массив.
После вывожу в main.tpl
{foreach from=$news item=item}
<tr>
<td>{$i++}</td>
<td> <a href="index.php?id={$item.id}">{$item.name} </a></td>
<td>{$item.rodwork}</td>
<td>{$item.datecreate}</td>
</tr>
{/foreach}
И при нажатии на ссылку, надо чтобы отобразился другой шаблон, где будет инфа о конкретной компании...
Благодарю за помощь
Вот более конкретный пример.
Заношу поля базы данных в массив.
После вывожу в main.tpl
{foreach from=$news item=item}
<tr>
<td>{$i++}</td>
<td> <a href="index.php?id={$item.id}">{$item.name} </a></td>
<td>{$item.rodwork}</td>
<td>{$item.datecreate}</td>
</tr>
{/foreach}
И при нажатии на ссылку, надо чтобы отобразился другой шаблон, где будет инфа о конкретной компании...
Благодарю за помощь
7. JustUserR - 16 Марта, 2010 - 17:16:49 - перейти к сообщению
Merty пишет:
Так делайте обычную проверку переменной с названием раздела и в заивсимости от него подключайте нужный файл - а если в подключаемый файл нужно "передать" данные то положите их в глобальную переменную
И при нажатии на ссылку, надо чтобы отобразился другой шаблон, где будет инфа о конкретной компании...
8. Merty - 16 Марта, 2010 - 18:06:00 - перейти к сообщению
Спасибо! Что-то наворотил.
В общем я получаю в index.php значение id
По умолчанию id=0 - главная
Если id не равен 0 то открывается шаблон с подробной информацией об организации, куда сейчас пытаюсь вывести информацию о конкретной организации))
В общем я получаю в index.php значение id
По умолчанию id=0 - главная
Если id не равен 0 то открывается шаблон с подробной информацией об организации, куда сейчас пытаюсь вывести информацию о конкретной организации))
9. ALEN - 16 Марта, 2010 - 18:56:50 - перейти к сообщению
Merty
Скажу так, по всей видимости еще не определился что тебе нужно. Для начала пойми, если тебе нужно научится, то учи php а потом javascript и сможешь на лету переключать страницы. В общем совет, можно передавать любые параметры, но переключение страниц - это GET тебе нужно листать.
Сейчас распишу маленький пример, а ты его перепишешь себе под смарти естественно:
1) Создаешь папку page/ в корне сайта, в нее помещаешь 3 файлика 1) index.tpl 2) info.tpl 3) contact.tpl
2) Создаешь в корне файл index.php , со следующи содержимым:
Скажу так, по всей видимости еще не определился что тебе нужно. Для начала пойми, если тебе нужно научится, то учи php а потом javascript и сможешь на лету переключать страницы. В общем совет, можно передавать любые параметры, но переключение страниц - это GET тебе нужно листать.
Сейчас распишу маленький пример, а ты его перепишешь себе под смарти естественно:
1) Создаешь папку page/ в корне сайта, в нее помещаешь 3 файлика 1) index.tpl 2) info.tpl 3) contact.tpl
2) Создаешь в корне файл index.php , со следующи содержимым:
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- <a href="/index.php?page=index">Главная</a><br/>
- <a href="/index.php?page=info">Информация</a><br/>
- <a href="/index.php?page=contact">Контакты</a><br/>
- <br/><br/>
- <?PHP
- // Определяем значение переменной page для присоединения нужного файла
- // если параметр в ссылке не указан то нам нужно брать главную страницу ,
- // т.е. по умолчанию параметр index
- $page=$_GET['page'];
- } else {
- $page='index';
- }
- // Подключаем нужный файл
- include("page/".$page.".tpl");
- ?>
Ну вот тебе и простой пример CMS - главное суть улови.