PDA

View Full Version : Master Page در php



zatron
یک شنبه 17 دی 1391, 21:06 عصر
سلام دوستان
ایا میشه تو php مثل asp.net یه مستر پیج درست کرد و ازاون استفاده کرد تا مجبور نشی فالب رو تو همه ی صفحات php ببری

SilverLearn
یک شنبه 17 دی 1391, 21:24 عصر
خوب آره این کار به سادگی قابل انجام هست

مثلا شما یک فایل header.php و یک فایل footer.php ایجاد می کنید وقالب خودتون رو میسازید و در هر صفحه این فایل ها رو لود می کنید به طور مثال با کد زیر :



include('header.php')

dousti_design
یک شنبه 17 دی 1391, 21:26 عصر
دوست عزیز اگه قابلیت به این کوچکی در پی اچ پی نبود که انقدر قدرت و شهرت پیدا نمیکرد.
اولین و ساده ترین راهش اینکلود ساده هست.
دومین راه استفاده از معماری MVC هست
سومین راه استفاده از یک TEMPLATE ENGINE مثل SMARTY هست

webdesign2
یک شنبه 17 دی 1391, 21:30 عصر
دوست عزیز تو php دستوری به نام function داریم که این کار را انجام میده .

برای مثال یک صفحه php به نام function درست میکنیم که به فرض مثال این قالب شما
function Name() // البته به جای name چیزهای دیگر هم می تواند باشد .

{
'جای قالب سایت ، یا هر چیز دیگر '
}
ودر صفحه دیگر که فراخانی میشود این دستور را میزاریم
require_once("function.php");//صفحه function را فراخانی میکند

Name();//نام function که بالا نوشتین البته به جای name چیزهای دیگر هم می تواند باشد .

webdesign2
یک شنبه 17 دی 1391, 21:36 عصر
خوب آره این کار به سادگی قابل انجام هست

مثلا شما یک فایل header.php و یک فایل footer.php ایجاد می کنید وقالب خودتون رو میسازید و در هر صفحه این فایل ها رو لود می کنید به طور مثال با کد زیر :



include('header.php')

دوست عزیز به این صورت فایلهای در صفحه زیاد میشوند البته هر کی روش خودش را داره

MMSHFE
یک شنبه 17 دی 1391, 22:53 عصر
بهترین راه استفاده از Template Engineهایی مثل Smarty (http://www.smarty.net) هست.

webdesign2
یک شنبه 17 دی 1391, 23:00 عصر
بهترین راه استفاده از Template Engineهایی مثل Smarty (http://www.smarty.net) هست. استاده عزیز می توانید بیشتر توضیح دهید از آن صفحه هیچی متوجه نشدم .
با تشکر از شما

MMSHFE
یک شنبه 17 دی 1391, 23:08 عصر
توی این لینک (http://www.smarty.net/files/docs/manual-en-3.1.8.zip) آموزش خوبی درباره Smarty هست.

ravand
دوشنبه 18 دی 1391, 06:50 صبح
مهندس یادمه این روش رو هم که با هم کار میکردیم رو می گفتید smarty هست . http://barnamenevis.org/showthread.php?319805-%D9%85%D8%B4%D9%83%D9%84-%D8%AA%D9%83%D8%B1%D8%A7%D8%B1-%D8%B4%D8%AF%D9%86-%D9%83%D9%84-%D9%82%D8%A7%D9%84%D8%A8
این روشی که الان گفتید با این روشی که من لینکش رو گذاشتم چه فرقی داره؟

ravand
دوشنبه 18 دی 1391, 08:35 صبح
کدهایی که شما دادید رو دیدم همون روش هست ولی به صورت شی گرایی.
اینم منبع خوبیه.
http://www.broculos.net/en/article/how-make-simple-html-template-engine-php

zatron
دوشنبه 18 دی 1391, 16:11 عصر
خوب آره این کار به سادگی قابل انجام هست

مثلا شما یک فایل header.php و یک فایل footer.php ایجاد می کنید وقالب خودتون رو میسازید و در هر صفحه این فایل ها رو لود می کنید به طور مثال با کد زیر :



include('header.php')


خوب اینطوری که تمام قالب میاد روسایت بعد چجوری بهش داده وارد کنم

MMSHFE
دوشنبه 18 دی 1391, 17:10 عصر
دوست عزیز، توی header.php چیزی echo نکنید. فقط محتوای دلخواه رو بریزین توی یک متغیر و بعد از includeکردن محتوای متغیر رو با str_replace و... اصلاح کنید و محتوای اصلی رو جای تگها توی قالب کنید و بعد، مقدار متغیر نهایی قالب رو echo کنید.

zatron
دوشنبه 18 دی 1391, 17:18 عصر
دوست عزیز، توی header.php چیزی echo نکنید. فقط محتوای دلخواه رو بریزین توی یک متغیر و بعد از includeکردن محتوای متغیر رو با str_replace و... اصلاح کنید و محتوای اصلی رو جای تگها توی قالب کنید و بعد، مقدار متغیر نهایی قالب رو echo کنید.

داداش یه مثال بزن

ravand
دوشنبه 18 دی 1391, 17:21 عصر
این ساده ترین مثالی هست که میشه براش زد:

<?php
$content = 'متن';
$tpl = file_get_contents('tpl.html');
echo str_replace('{content}',$content,$tpl);
?>
tpl.html
<html>
<head><title>Whatever</title></head>
<body>{content}</body>
</html>

zatron
دوشنبه 18 دی 1391, 17:37 عصر
این ساده ترین مثالی هست که میشه براش زد:

<?php
$content = 'متن';
$tpl = file_get_contents('tpl.html');
echo str_replace('{content}',$content,$tpl);
?>
tpl.html
<html>
<head><title>Whatever</title></head>
<body>{content}</body>
</html>


کاملا متوجه شدم پس همش با این دستوره
echo str_replace('{content}',$content,$tpl);

desatir7316
پنج شنبه 20 تیر 1392, 14:12 عصر
دوستان استفاده از ajax برای این کار چطوره؟ مثلا روی هر لینکلی کلیک شد محتویات مربوطه توی یه div مشخص قرار داده بشه؟
البته اگه جاوا اسکریپت روی مرورگر غیر فعال بشه یه جورای سایت فلج می شه ولی معمولا کسی جاوااسکریپت رو غیر فعال نمی کنه
ممنون می شم نظراتتون رو در مورد این روش بنویسید

desatir7316
جمعه 21 تیر 1392, 17:13 عصر
این که کسی چیزی نمی گه یعنی خوبه یا بده؟