[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Разделение php и html
Renden
echo "Привет ребят :)";
Почитав несколько тем\доков по поводу шаблонизаторов понял что.. да нифига почти не понял)), поэтому задам вопрос.
допустим есть код: index.php

include('head.tpl'); //в нем хтмл код шапки
$q= mysql_query("select * from bla-bla");
while ($row = mysql_fetch_array($q))
{
include('while1.tpl'); // тут html код и php код вывода
}
include('foot.tpl'); // тут html код футера

Собственно в чем вопрос, получаеться как-то тупо тк в каждый цикл или условие мне придецо инклудом добавлять tpl файл в котором содержиться html и php ввиде <? echo "переменные";?> так чтоль? Подругому нельзя сделать index.php не изменяемым как-бы, чтоб там чисто только php был, а в tpl html и php, но без всяких циклов и условий, чтоб любой мог понять че там..?
Возможно криво обьяснил, если кто не понял задайте наводящий вопрос))



Спустя 50 минут, 48 секунд (7.12.2010 - 14:03) inpost написал(а):
В цикле лишь формируешь таблицы из БД, вывод же таблицы идёт отдельно за циклом в другом tpl

Спустя 12 минут, 32 секунды (7.12.2010 - 14:15) Renden написал(а):
inpost
об этом я что-то не подумал, а c if else как быть?
ну вплане:

if ($a==$b) {
тут куча хтмл кода, но не заслуживающая отдельного tpl файла
}
else {
тут тоже самое
}


поправочка: вывод за циклом выводит только 1 результат.. я чето не фкуриваю..

Спустя 30 минут, 16 секунд (7.12.2010 - 14:45) kovaldm написал(а):
Renden
Не понял вопроса.
если
"тут куча хтмл кода, но не заслуживающая отдельного tpl файла" == "тут тоже самое"

то зачем условие вобще нужно?
Если html действительно куча, то почему он не заслуживает отдельного tpl?
А если его совсем немного, то пиши прямо в скрипте, ничего страшного не случится.

Спустя 2 часа, 11 минут, 2 секунды (7.12.2010 - 16:56) Renden написал(а):
kovaldm
тоже самое - имелось ввиду "тоже куча хтмл не заслуживающая отдельного tpl happy.gif"
Да я и так писал все прямо в скрипте, но потом недельку побыл в отпуске вернулся, и понять не мог че там где)) , а учитывая то что я пишу потихоньку небольшую, но полезную системку, хотелось бы чтоб php было отдельно от html.
Да и пусть там совсем немного, смыл в том что тот кто пишет html css, зачем ему лесть в дебри php кода чтоб прописать class или ид, и ваще задать параметры-оформление html-лю.

ps. Да и 100 tpl-лек под каждый случай плодить тоже не вариант, я просто спрашиваю как будет лутьше разделить php от html чтоб было красиво и не сложно))

Спустя 4 часа, 46 минут (7.12.2010 - 21:42) kovaldm написал(а):
Либо шаблонизатор, либо много tpl-ек, либо нативе-синтаксис я больше не знаю как.

Спустя 12 дней, 6 часов, 27 минут, 58 секунд (20.12.2010 - 04:10) Георгий написал(а):
доброе время суток! мож подскажите как в шаблонезаторе смарти, а именно интернет магазин Shop-Script PREMIUM прописать только для главной страницы отдельный шаблон, например index2.tpl.html ???
---------------------------------------------------------------------------------------------
мой index.php

<?

/*****************************************************************************
* *
* Shop-Script PREMIUM *
* Copyright © 2004 Articus consulting group. All rights reserved. *
* *
*****************************************************************************/
//core file

// -------------------------INITIALIZATION-----------------------------//

//make sure that URL does not contain something like index.php/?parameter1=1&... //

//include core files
include("./cfg/connect.inc.php");
include("./includes/database/".DBMS.".php");
include("./cfg/language_list.php");
include("./core_functions/functions.php");
include("./core_functions/category_functions.php");
include("./core_functions/cart_functions.php");
include("./core_functions/product_functions.php");
include("./core_functions/statistic_functions.php");
include("./core_functions/reg_fields_functions.php" );
include("./core_functions/registration_functions.php" );
include("./core_functions/country_functions.php" );
include("./core_functions/zone_functions.php" );
include("./core_functions/datetime_functions.php" );
include("./core_functions/order_status_functions.php" );
include("./core_functions/order_functions.php" );
include("./core_functions/aux_pages_functions.php" );
include("./core_functions/picture_functions.php" );
include("./core_functions/configurator_functions.php" );
include("./core_functions/option_functions.php" );
include("./core_functions/search_function.php" );
include("./core_functions/discount_functions.php" );
include("./core_functions/custgroup_functions.php" );
include("./core_functions/shipping_functions.php" );
include("./core_functions/payment_functions.php" );
include("./core_functions/tax_function.php" );
include("./core_functions/currency_functions.php" );
include("./core_functions/module_function.php" );
include("./core_functions/crypto/crypto_functions.php");
include("./core_functions/quick_order_function.php" );
include("./core_functions/setting_functions.php" );
include("./core_functions/subscribers_functions.php" );
include("./core_functions/news_function.php" );
include("./core_functions/version_function.php" );
include("./core_functions/discussion_functions.php" );
include("./core_functions/order_amount_functions.php" );

session_start();

MagicQuotesRuntimeSetting();

//init Smarty
require 'smarty/smarty.class.php';
$smarty = new Smarty; //core smarty object
$smarty_mail = new Smarty; //for e-mails

$smarty->force_compile = true; //this forces Smarty to recompile templates each time.
//please remove this line in you finished redesign of your shopping cart and would like to optimise your shopping cart work

//select a new language?
if (isset($_POST["lang"]))
$_SESSION["current_language"] = $_POST["lang"];

//current language session variable
if (!isset($_SESSION["current_language"]) ||
$_SESSION["current_language"] < 0 || $_SESSION["current_language"] > count($lang_list))
$_SESSION["current_language"] = 0; //set default language
//include a language file
if (isset($lang_list[$_SESSION["current_language"]]) && file_exists($lang_list[$_SESSION["current_language"]]->filename))
include($lang_list[$_SESSION["current_language"]]->filename); //include current language file
else
{
die("<font color=red><b>ERROR: Couldn't find language file!</b></font>");
}

//connect to the database
db_connect(DB_HOST,DB_USER,DB_PASS) or die (db_error());
db_select_db(DB_NAME) or die (db_error());

settingDefineConstants();

//authorized access check
include("./checklogin.php");

//# of selected currency
$current_currency = isset($_SESSION["current_currency"]) ? $_SESSION["current_currency"] : CONF_DEFAULT_CURRENCY;
$smarty->assign("current_currency", $current_currency);
$q = db_query("select code, currency_value, where2show, currency_iso_3, Name from ".CURRENCY_TYPES_TABLE." where CID='$current_currency'") or die (db_error());
if ($row = db_fetch_row($q))
{
$smarty->assign("currency_name", $row[0]);
$selected_currency_details = $row; //for show_price() function
}
else //no currency found. In this case check is there any currency type in the database
{
$q = db_query("select code, currency_value, where2show from ".CURRENCY_TYPES_TABLE) or die (db_error());
if ($row = db_fetch_row($q))
{
$smarty->assign("currency_name", $row[0]);
$selected_currency_details = $row; //for show_price() function
}
}

//load all categories to array $cats to avoid multiple DB queries (frequently used in future - but not always!)
$cats = array();
$i=0;
$q = db_query("SELECT categoryID, name, parent, products_count, description, picture FROM ".
CATEGORIES_TABLE." where categoryID<>0 ORDER BY sort_order, name") or die (db_error());
while ($row = db_fetch_row($q))
{
$cats[$i++] = $row;
}

//set $categoryID
if (isset($_GET["categoryID"]) || isset($_POST["categoryID"]))
$categoryID = isset($_GET["categoryID"]) ? $_GET["categoryID"] : $_POST["categoryID"];
// else $categoryID = 1;
//$productID
if (!isset($_GET["productID"]))
{
if (isset($_POST["productID"])) $productID = $_POST["productID"];
}
else $productID = $_GET["productID"];

//and different vars...
if (isset($_GET["register"]) || isset($_POST["register"]))
$register = isset($_GET["register"]) ? $_GET["register"] : $_POST["register"];
if (isset($_GET["update_details"]) || isset($_POST["update_details"]))
$update_details = isset($_GET["update_details"]) ? $_GET["update_details"] : $_POST["update_details"];
if (isset($_GET["order"]) || isset($_POST["order"]))
$order = isset($_GET["order"]) ? $_GET["order"] : $_POST["order"];
if (isset($_GET["order_without_billing_address"]) || isset($_POST["order_without_billing_address"]))
$order_without_billing_address = isset($_GET["order_without_billing_address"])?
$_GET["order_without_billing_address"]:$_POST["order_without_billing_address"];
if (isset($_GET["check_order"]) || isset($_POST["check_order"]))
$check_order = isset($_GET["check_order"]) ? $_GET["check_order"] : $_POST["check_order"];
if (isset($_GET["proceed_ordering"]) || isset($_POST["proceed_ordering"]))
$proceed_ordering = isset($_GET["proceed_ordering"]) ? $_GET["proceed_ordering"] : $_POST["proceed_ordering"];
if ( isset($_GET["update_customer_info"]) || isset($_POST["update_customer_info"]) )
$update_customer_info = isset($_GET["update_customer_info"]) ? $_GET["update_customer_info"] : $_POST["update_customer_info"];
if ( isset($_GET["show_aux_page"]) || isset($_POST["show_aux_page"]) )
$show_aux_page = isset($_GET["show_aux_page"]) ? $_GET["show_aux_page"] : $_POST["show_aux_page"];
if ( isset($_GET["visit_history"]) || isset($_POST["visit_history"]) )
$visit_history = 1;
if ( isset($_GET["order_history"]) || isset($_POST["order_history"]) )
$order_history = 1;
if ( isset($_GET["address_book"]) || isset($_POST["address_book"]) )
$address_book = 1;
if ( isset($_GET["address_editor"]) || isset($_POST["address_editor"]) )
$address_editor = isset($_GET["address_editor"]) ? $_GET["address_editor"] : $_POST["address_editor"];
if ( isset($_GET["add_new_address"]) || isset($_POST["add_new_address"]) )
$add_new_address = isset($_GET["add_new_address"]) ? $_GET["add_new_address"] : $_POST["add_new_address"];
if ( isset($_GET["contact_info"]) || isset($_POST["contact_info"]) )
$contact_info = isset($_GET["contact_info"]) ? $_GET["contact_info"] : $_POST["contact_info"];
if ( isset($_GET["comparison_products"]) || isset($_POST["comparison_products"]) )
$comparison_products = 1;
if ( isset($_GET["register_authorization"]) || isset($_POST["register_authorization"]) )
$register_authorization = 1;
if ( isset($_GET["page_not_found"]) || isset($_POST["page_not_found"]) )
$page_not_found = 1;
if ( isset($_GET["news"]) || isset($_GET["news"]) )
$news = 1;

if ( isset($_GET["quick_register"]) )
$quick_register = 1;
if ( isset($_GET["order2_shipping_quick"]) )
$order2_shipping_quick = 1;
if ( isset($_GET["order3_billing_quick"]) )
$order3_billing_quick = 1;

if ( isset($_GET["order2_shipping"]) || isset($_POST["order2_shipping"]) )
$order2_shipping = 1;
if ( isset($_GET["order3_billing"]) || isset($_POST["order3_billing"]) )
$order3_billing = 1;
if ( isset($_GET["change_address"]) || isset($_POST["change_address"]) )
$change_address = 1;
if ( isset($_GET["order4_confirmation"]) || isset($_POST["order4_confirmation"]) )
$order4_confirmation = 1;
if ( isset($_GET["order_detailed"]) || isset($_POST["order_detailed"]) )
$order_detailed = isset($_GET["order_detailed"])?$_GET["order_detailed"]:$_POST["order_detailed"];

if (!isset($_SESSION["vote_completed"])) $_SESSION["vote_completed"] = array();

//checking for proper $offset init
$offset = isset($_GET["offset"]) ? $_GET["offset"] : 0;
if ($offset<0 || $offset % CONF_PRODUCTS_PER_PAGE) $offset = 0;




// -------------SET SMARTY VARS AND INCLUDE SOURCE FILES------------//

if (isset($productID)) //to rollout categories navigation table
{
$q = db_query("SELECT categoryID FROM ".PRODUCTS_TABLE." WHERE productID='$productID'") or die (db_error());
$r = db_fetch_row($q);
if ($r) $categoryID = $r[0];
}

//set Smarty include files dir
$smarty->template_dir = $lang_list[$_SESSION["current_language"]]->template_path;
$smarty_mail->template_dir = $lang_list[$_SESSION["current_language"]]->template_path."/mail";

//assign core Smarty variables
//fetch currency types from database
$q = db_query("select CID, Name, code, currency_value, where2show from ".CURRENCY_TYPES_TABLE." order by sort_order") or die (db_error());
$currencies = array();
while ($row = db_fetch_row($q))
{
$currencies[] = $row;
}
$smarty->assign("currencies", $currencies);
$smarty->assign("currencies_count", count($currencies));

$smarty->assign("lang_list", $lang_list);

if (isset($_SESSION["current_language"])) $smarty->assign("current_language", $_SESSION["current_language"]);
if (isset($_SESSION["log"])) $smarty->assign("log", $_SESSION["log"]);
// - following vars are used as hidden in the customer survey form
if ( isset($categoryID) )
$smarty->assign("categoryID", $categoryID);
if (isset($productID)) $smarty->assign("productID", $productID);
if (isset($_GET["currency"])) $smarty->assign("currency", $_GET["currency"]);
if (isset($_GET["user_details"])) $smarty->assign("user_details", $_GET["user_details"]);
if (isset($_GET["aux_page"])) $smarty->assign("aux_page", $_GET["aux_page"]);
if (isset($_GET["show_price"])) $smarty->assign("show_price", $_GET["show_price"]);
if (isset($_GET["adv_search"])) $smarty->assign("adv_search", $_GET["adv_search"]);
if (isset($_GET["searchstring"])) $smarty->assign("searchstring", $_GET["searchstring"]);
if (isset($register)) $smarty->assign("register", $register);
if (isset($order)) $smarty->assign("order", $order);
if (isset($check_order)) $smarty->assign("check_order", $check_order);

//set defualt main_content template to homepage
$smarty->assign("main_content_template", "home.tpl.html");
// includes all .php files from includes/ dir
$includes_dir = opendir("./includes");
while ( ($inc_file = readdir($includes_dir)) != false )
if (strstr($inc_file,".php"))
{
include("./includes/$inc_file");
}

// output:

//security warnings!
if (file_exists("./install.php"))
{
echo WARNING_DELETE_INSTALL_PHP;
}

/* else if (get_magic_quotes_gpc() == 0)
{
echo WARNING_MAGIC_QUOTES_GPC;
}*/

if (!is_writable("./temp") || !is_writable("./products_files") || !is_writable("./products_pictures") || !is_writable("./templates_c"))
{
echo WARNING_WRONG_CHMOD;
}

//show admin a administrative mode link
if (isset($_SESSION["log"]) && !strcmp($_SESSION["log"], ADMIN_LOGIN))
echo "<br><center><a href=\"admin.php\"><font color=red>".ADMINISTRATE_LINK."</font></a></center><p>";


$aux_pages = auxpgGetAllPageAttributes();
if ( count($aux_pages) != 0 )
$smarty->assign( "aux_page1", $aux_pages[0] );

{if $product_category_path[i].categoryID != 1}
$smarty->display($lang_list[$_SESSION["current_language"]]->template_path."index2.tpl.html");

{else}

if ( count($aux_pages) > 1 )
$smarty->assign( "aux_page2", $aux_pages[1] );

//show Smarty output
$smarty->display($lang_list[$_SESSION["current_language"]]->template_path."index.tpl.html");

?>

Спустя 2 минуты, 45 секунд (20.12.2010 - 04:13) inpost написал(а):
Георгий
Со своим вопросом в свою тему!

Спустя 1 минута, 45 секунд (20.12.2010 - 04:15) Георгий написал(а):
Сам пытался не работает: {if $product_category_path[i].categoryID != 1}
$smarty->display($lang_list[$_SESSION["current_language"]]->template_path."index2.tpl.html");

Быстрый ответ:

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