[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как вывести PHP из файла .tpl
ashx
Здравствуйте!
У меня есть 2 файла
111.php, 222.tpl

Как мне сделать PHP запрос в файле 111.php, чтобы я его мог вывести в файле 222.tpl таким тегом: {333}



Спустя 14 минут, 9 секунд (29.07.2011 - 00:48) YVSIK написал(а):
Цитата (ashx @ 29.07.2011 - 00:34)
Здравствуйте!
У меня есть 2 файла
111.php, 222.tpl

Как мне сделать PHP запрос в файле 111.php, чтобы я его мог вывести в файле 222.tpl таким тегом: {333}

вот как-бы вы ashx (Здравствуйте !) ответили на подобны вопрос ?
не видя содержимое этих файлов ;
что к чему прицеплять будем или на оборот; что будем запрашивать ?
Свернутый текст
вот смотри подобный вопрос; я желаю сварить щи и у меня есть только два ингридиента; теперь какой надо первым варить а какой будем жарить ?
попробуй ответь ; ДА))) вот задачка то !

smile.gif
и это не тег {333} это просто три троечки в фигурных скобках.
совсем к стати получите удовольствие если это прочтете

Спустя 15 минут, 9 секунд (29.07.2011 - 01:03) record222 написал(а):
Вопрос поставлен не корректно.
Но попытаюсь ответить примерами...

файл *.tpl
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta
http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>
{title}</title>
{css}
</head>
<body>
<div
id="full">
<div
id="header">
<img
src="http://www.phpforum.ru/../templates/start/images/header.gif" alt="header">
</div>
<div
id="main">
<div
id="navigation">
{menu}
</div>
<div
id="login">
<center>
{login}</center>
</div>
<div
id="content">
<div
id="news">
<center>
{name}</center><br />
<center>
{photo}</center><br />
{description}<br />
</div>
</div>
</div>
<div
id="footer">
<img
src="http://www.phpforum.ru/../templates/start/images/footer.gif" alt="footer">
</div>
</div>
</body>
</html>



файл *.php

<?php
session_start();
$tmp=file_get_contents("../../templates/start/main.tpl");
$title="Головна сторінка";
$css="<link href='../../templates/start/css/engine.css' rel='stylesheet' type='text/css' />";

//підключаємо меню з файлу
$navigation=''; // Обнуляем переменную
function callback($s) // Эта функция будет вызываться вместо вывода данных браузеру
{
$GLOBALS['navigation'].=$s; // Новые данные добавляем к переменной
}
ob_start('callback'); // Включаем кеширование и указываем, что вместо отправки данных клиенту, их нужно отправлять в функцию callback
include 'menu.php'; // Просто выполняем скрипт
ob_end_flush(); // Выключаем кеширование... теперь все данные будут уходить браузеру
$menu="$navigation";


//підключаємо файл входу в систему
$log=''; // Обнуляем переменную
function callback1($s1) // Эта функция будет вызываться вместо вывода данных браузеру
{
$GLOBALS['log'].=$s1; // Новые данные добавляем к переменной
}
ob_start('callback1'); // Включаем кеширование и указываем, что вместо отправки данных клиенту, их нужно отправлять в функцию callback
include 'login.php'; // Просто выполняем скрипт
ob_end_flush(); // Выключаем кеширование... теперь все данные будут уходить браузеру
$login="$log";



include ("../../configuration/config.php");

$query = "SELECT * FROM main";
$result=mysql_query($query);
$r=mysql_fetch_array($result);
$name=$r['name'];
$photo=$r['photo'];
$description=$r['description'];




$tmp = ereg_replace("{title}", $title, $tmp);
$tmp = ereg_replace("{css}", $css, $tmp);
$tmp = ereg_replace("{menu}", $menu, $tmp);
$tmp = ereg_replace("{name}", $name, $tmp);
$tmp = ereg_replace("{photo}", $photo, $tmp);
$tmp = ereg_replace("{description}", $description, $tmp);
$tmp = ereg_replace("{login}", $login, $tmp);
echo $tmp;
?>

Спустя 5 минут (29.07.2011 - 01:08) Invis1ble написал(а):
record222
пора уж переходить на preg_* smile.gif

Спустя 41 минута, 44 секунды (29.07.2011 - 01:50) ashx написал(а):
Есть папка public_html/toto/templates/
В ней находится файл шаблона index.tpl


Есть файл модуль регистрации на сайте в папке public_html/modules/mod_login.php, который я хочу вывести в шаблоне index.tpl например тегом {login}

Файл mod_login.php
<?php

// no direct access
defined( '_VALID_MOS' ) or die( 'Прямой вызов запрещен' );

global $mosConfig_frontend_login;

if ( $mosConfig_frontend_login != NULL && ($mosConfig_frontend_login === 0 || $mosConfig_frontend_login === '0')) {
return;
}

// url of current page that user will be returned to after login
if ($query_string = mosGetParam( $_SERVER, 'QUERY_STRING', '' )) {
$return = 'index.php?' . $query_string;
} else {
$return = 'index.php';
}

$registration_enabled = $mainframe->getCfg( 'allowUserRegistration' );
$message_login = $params->def( 'login_message', 0 );
$message_logout = $params->def( 'logout_message', 0 );
$login = $params->def( 'login', $return );
$logout = $params->def( 'logout', $return );
$name = $params->def( 'name', 1 );
$greeting = $params->def( 'greeting', 1 );
$pretext = $params->get( 'pretext' );
$posttext = $params->get( 'posttext' );

if ( $my->id ) {
// Logout output
// ie HTML when already logged in and trying to logout

if ( $name ) {
$name = $my->name;
} else {
$name = $my->username;
}
?>
<form
action="<?php echo sefRelToAbs( 'index.php?option=logout' ); ?>" method="post" name="logout">
<?php

if ( $greeting ) {
echo _HI;
echo $name;
}
?>
<br />

<div
align="center">
<input
type="submit" name="Submit" class="button" value="<?php echo _BUTTON_LOGOUT; ?>" />
</div>

<input
type="hidden" name="option" value="logout" />
<input
type="hidden" name="op2" value="logout" />
<input
type="hidden" name="lang" value="<?php echo $mosConfig_lang; ?>" />
<input
type="hidden" name="return" value="<?php echo htmlspecialchars( sefRelToAbs( $logout ) ); ?>" />
<input
type="hidden" name="message" value="<?php echo htmlspecialchars( $message_logout ); ?>" />
</form>
<?php

} else {
// Login output
// ie HTML when not logged in and trying to login
// used for spoof hardening

$validate = josSpoofValue(1);
?>
<form
action="<?php echo sefRelToAbs( 'index.php' ); ?>" method="post" name="login" >
<?php

echo $pretext;
?>

<table
width="100%" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td>
<label
for="mod_login_username">
<?php
echo _USERNAME; ?>
</label>
<br />
<input
name="username" id="mod_login_username" type="text" class="inputbox" alt="username" size="10" />
<br />
<label
for="mod_login_password">
<?php
echo _PASSWORD; ?>
</label>
<br />
<input
type="password" id="mod_login_password" name="passwd" class="inputbox" size="10" alt="password" />
<br />
<input
type="checkbox" name="remember" id="mod_login_remember" class="inputbox" value="yes" alt="Remember Me" />
<label
for="mod_login_remember">
<?php
echo _REMEMBER_ME; ?>
</label>
<br />
<input
type="submit" name="Submit" class="button" value="<?php echo _BUTTON_LOGIN; ?>" />
</td>
</tr>
<tr>
<td>
<a
href="<?php echo sefRelToAbs( 'index.php?option=com_registration&task=lostPassword' ); ?>">
<?php
echo _LOST_PASSWORD; ?></a>
</td>
</tr>
<?php

if ( $registration_enabled ) {
?>
<tr>
<td>
<?php
echo _NO_ACCOUNT; ?>
<a
href="<?php echo sefRelToAbs( 'index.php?option=com_registration&task=register' ); ?>">
<?php
echo _CREATE_ACCOUNT; ?></a>
</td>
</tr>
<?php

}
?>
</table>
<?php

echo $posttext;
?>

<input
type="hidden" name="option" value="login" />
<input
type="hidden" name="op2" value="login" />
<input
type="hidden" name="lang" value="<?php echo $mosConfig_lang; ?>" />
<input
type="hidden" name="return" value="<?php echo htmlspecialchars( sefRelToAbs( $login ) ); ?>" />
<input
type="hidden" name="message" value="<?php echo htmlspecialchars( $message_login ); ?>" />
<input
type="hidden" name="force_session" value="1" />
<input
type="hidden" name="<?php echo $validate; ?>" value="1" />
</form>
<?php

}
?>



Вопрос, как это делается?

Спустя 36 минут, 47 секунд (29.07.2011 - 02:27) YVSIK написал(а):
biggrin.gif час от часу не легче ; зачем читать всю такую большую портянку?
тогда выкладывай весь сайт будем разбираться, но это уже за ; отдельные
действа с вашей стороны. это будет платно !
тем более тут у вас все в одной каше свалено ; и формы и таблицы и скрипы
могу только повторить , составьте коректно вопрос ,))
и вот; уже говорил
это {login} слово логин в фиугрных скобках ; почитайте чем это слово которое вы так пытаетесь выдать за тег отличатся то тега
ПС. тег это ИМХО зарезервированный оператор разметки
Цитата
что к чему прицеплять будем или на оборот; что будем запрашивать ?

biggrin.gif

Спустя 10 минут, 31 секунда (29.07.2011 - 02:37) ashx написал(а):
Можете мне разъяснить,
что означают квадратные и фигурные скобки в файле .tpl ?

как их правильно называть?

Спустя 5 минут, 32 секунды (29.07.2011 - 02:43) YVSIK написал(а):
вот корректный вопрос и ответ на него достаточно прочитать
посмотри вот это хорошее чтиво

Спустя 1 час, 20 минут, 25 секунд (29.07.2011 - 04:03) ashx написал(а):
Отличный сайт. Как раз такой я и хотел найти. Спасибо
Я бы поставил + в карму, но постов меньше 10

Спустя 4 часа, 44 минуты, 53 секунды (29.07.2011 - 08:48) YVSIK написал(а):
ashx smile.gif я доволен , приходи ещё !!!
сам когда пришел на этот ресурс был удивлен простоте рассказа и преподнесения материала, подобного ещё не встречал !

Спустя 22 минуты, 46 секунд (29.07.2011 - 09:11) Игорь_Vasinsky написал(а):
Цитата
Как мне сделать PHP запрос в файле 111.php, чтобы я его мог вывести в файле 222.tpl таким тегом: {333}


listing 111.php

<?
//Работам с буфером
ob_start();
//Получили в переменную содержимое 222.tpl
$tpl = file_get_content("/222.tpl");
//Сделали "вывод", но его не видно (это для буфера)
echo $tpl;
//Записали весь вывод в переменную
$content = ob_get_contents();
//Очистили буфер
ob_clean();
//Закончили буферизацию
ob_end();

//Допустим, назначили в переменную title
$title = "Заголовок страницы!";

//в TPL есть строка <title>{333}</title>
//Заменили {333} на содержимое $title в переменной $content

$content= str_replace("{333}", $title, $content);
//Вывели переменную(содержимое шаблона,уже всё заменно)
echo $content;
?>

при этом 222.tpl может содержат и php и буфер попадёт уже статические данные

Спустя 7 минут, 39 секунд (29.07.2011 - 09:18) Игорь_Vasinsky написал(а):
YVSIK
чёт болтаешь болтаешь.... куда то отправил.... не смог с 1 листингом разобраться - просишь целый сайт. biggrin.gif

Цитата
это {login} слово логин в фиугрных скобках ; почитайте чем это слово которое вы так пытаетесь выдать за тег отличатся то тега

кто кого пытается, куда выдать???

ashx
Цитата
что означают квадратные и фигурные скобки в файле .tpl ?

{title} {*title*} {[title]}{/title/} - это всего лишь метки, которые в дальнейшем будут заменены на переменные.

Сам определяешься.

Спустя 39 минут, 27 секунд (29.07.2011 - 09:58) YVSIK написал(а):
Игорь_Vasinsky biggrin.gif
Свернутый текст
Цитата
Цитата
Цитата
это {login} слово логин в фиугрных скобках ; почитайте чем это слово которое вы так пытаетесь выдать за тег отличатся то тега

кто кого пытается, куда выдать???

Полный абсурд biggrin.gif полное противоречие этих цитат biggrin.gif
Цитата
пора уж переходить на preg_*

я сним полностью согласен и это не я сказал smile.gif

Цитата
чтобы я его мог вывести в файле 222.tpl таким тегом: {333}

Спустя 9 минут, 38 секунд (29.07.2011 - 10:07) Игорь_Vasinsky написал(а):
YVSIK
Цитата
Тег (иногда тэг[1], англ. tag — «ярлык, этикетка, бирка; метить») — метка как ключевое слово, в более узком применении идентификатор для категоризации, описания, поиска данных и задания внутренней структуры.



Спустя 3 минуты, 17 секунд (29.07.2011 - 10:11) YVSIK написал(а):
Игорь_Vasinsky
Цитата
тег это ИМХО зарезервированный оператор разметки

biggrin.gif и что тут не так сказано biggrin.gif

Спустя 4 минуты, 25 секунд (29.07.2011 - 10:15) Игорь_Vasinsky написал(а):
Цитата
почитайте чем это слово которое вы так пытаетесь выдать за тег отличатся то тега

говорить вроде научился по русски, а читать видать, даже после себя нет.
Удач.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.