gkman פורסם 2012 ביולי 24 Share פורסם 2012 ביולי 24 שלום.אני מעוניין ללמוד ליצור תבניות בPHP.אני זוכר שקראתי איפשהו מדריך שמשתמש במעין עוגנים כאלו שמראים לדף לאן להכניס את התוכן,הכותרת, התפריט וכו.חיפשתי מדריכים בגוגל אבל כל מה שמצאתי היה בעיקר דברים שהם לא באמת תבניות והם משתמשים בincludeים כדי ליצור את הדף.מצאתי גם משהו דומה שמשתמש בiHTML שבחיים לא שמעתי על זה. http://ontosys.com/php/templates.html אם אני לא טועה המדריך שחיפשתי השתמש בפונקציה preg replace אבל אני לא בטוח.המטרה העיקרית שלי זה תבניות שאפשר להחליף לגמרי את המבנה והעיצוב של הדף. ולא רק לבצע שינויים קטנים באיזורים מסוימים של כל דף.שימו לב שאני מועניין לבנות את התבניות בעצמי ולא להשתמש בדברים כדוגמת סמארטי או וורדפרס- היה את האתר PHP ישראל\ איתן או משהו כזה (בעיצוב סגול) נדמה לי שלו היה מדריך אבל לא מצאתי את הכתובת שלו (מצאתי את זה: http://php.eitan.ac.il/ שיכול להיות שזה זה אבל הוא לא פעיל כרגע) קישור לתוכן שתף באתרים אחרים More sharing options...
Kirma פורסם 2012 ביולי 28 Share פורסם 2012 ביולי 28 כן זה האתר.. כניראה שהוא כבר לא פעיל או נפל זמנית אתה יכול להשתמש בפונקציה preg replace כמו שאמרת אני יתן דוגמא נגדיר מערך בשם $output ונגדיר משתנה $string שמכיל את העיצוב (אתה יכול כמובן להגדיר אותו מקובץ קיים בעזרת הפקודה file_get_contents) לצורך הדוגמא נגדיר את הנתונים הבאים: $output["title"] = "Hey";$output["content"] = Some info";$string = "<html><body><h1>{title}</h1><br>{content}</body</html>"; ונשתמש בפקודה הבאה preg_replace('/\{(\w+)\}/e',"\$output['\\1']",$string); התוצאה שתקבל היא בעצם תרגום של הסוגריים המסולסלים למערך שהגדרת התוצאה שתתקבל היא <html><body><h1>Hey</h1><br>Some info</body</html> זוהי כמובן דוגמא קטנה, אבל יכולה לעזור המון בהצלחה קישור לתוכן שתף באתרים אחרים More sharing options...
gkman פורסם 2012 ביולי 29 מחבר Share פורסם 2012 ביולי 29 תודה על התגובה.השיטה שלך תעבוד אם אני רוצה שבתוכן שלי יהיה גם קוד PHP? כי שיחקתי קצת עם הדוגמא שלך ועם הfile_get_contentsואני לא מצליח להריץ קוד PHP ביחד עם התבנית. קישור לתוכן שתף באתרים אחרים More sharing options...
Kirma פורסם 2012 ביולי 29 Share פורסם 2012 ביולי 29 בתוך התבנית לא ניתן להוסיף PHPתיצור קובץ תבנית בפורמט שרשמתי לךכל משתנה תגדיר אותו בסוגריים מסולסליםדוגמא לקובץ תבנית:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "[url]http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">[/url]<html xmlns="[url]http://www.w3.org/1999/xhtml">[/url]<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Preg replcae test</title></head><body><h1>{title}</h1><p>{content}</p><h1>{title2}</h1><p>{content2}</p></body></html>ובקוד PHP תגדיר את המשתנים title, title2, content,content2 במערך מסויםלדוגמא<?php $output["title"] = "כותרת ראשונה"; $output["content"] = "תוכן הכתבה"; $output["title2"] = "כותרת שנייה"; $output["content2"] = "תוכן הכתבה השנייה"; //some php codes will work here Ie (if $string is not set if (!isset($string)) { $string = file_get_contents("./filelocation/file.ext"); } else { $string = file_get_contents("./filelocation/file.ext"); } preg_replace('/\{(\w+)\}/e',"\$output['\\1']",$string);?> קישור לתוכן שתף באתרים אחרים More sharing options...
gkman פורסם 2012 ביולי 29 מחבר Share פורסם 2012 ביולי 29 אני קורא את התגובה האחרונה שלי- וקולט שלא הסברתי את עצמי נכון.אני רוצה שבתוך התוכן שלי יהיה קוד PHP. הנה דוגמא למה שניסיתי: index.php <?php require_once ('builder.php'); die() ?><!--INFO Begin --> {title} Some Title {/title} {date} 2012-7-29 {/date} {onload} {/onload}<!-- INFO End --><h1> this is another page </h1>another text- text if can execute php commands in template. if text succeeds should see date below:<br /><?phpecho date("Y.m.d")?><br /><a href="page1.php"> page1.php </a>ו- bulider.php<?php$page = file_get_contents(basename($_SERVER['PHP_SELF']));$template = file_get_contents('template.html');function GetBetween($content,$start,$end){ $r = explode ($start, $content); if (isset ($r[1])){ $r = explode ($end, $r[1]); return $r[0]; } return '';}$info = GetBetween($page, '<!--INFO Begin -->', '<!-- INFO End -->');$output["title"] = trim(GetBetween($info, '{title}', '{/title}'));$output["date"] = trim(GetBetween($info, '{date}', '{/date}'));$output["onload"] = trim(GetBetween($info, '{onload}', '{/onload}'));$content_pos = stripos($page, '<!-- INFO End -->');$content_pos += strlen('<!-- INFO End -->');$output["content"] = substr($page, $content_pos);$result_page = preg_replace('/\{(\w+)\}/e',"\$output['\\1']",$template);echo $result_page;?>הקוד של הPHP להצגת התאריך לא מציג- יש דרך לגרום לזה לפעול? קישור לתוכן שתף באתרים אחרים More sharing options...
Kirma פורסם 2012 ביולי 29 Share פורסם 2012 ביולי 29 לא ממש הבנתי מה התכוונתאם אתה מגדיר את ה OUTPUT בתור משתנה רגיל שמכיל את התאריךאין סיבה שהוא לא ידפיס אותו רגיל..ובתוך התבנית, אתה מגדיר את התוכן כ {title} בלבד או עם סוגר פתיחה \ סגירה ( {title} adasd {/title} ? קישור לתוכן שתף באתרים אחרים More sharing options...
genia פורסם 2012 באוגוסט 2 Share פורסם 2012 באוגוסט 2 אממ..שאלה- למה ליצור מנוע תבניות לבד כשקיימות המון אפשרויות כדוגמת Zend cakephp smarty temaplatesוכו' וכו' קישור לתוכן שתף באתרים אחרים More sharing options...
Recommended Posts
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.