LiteSite/導航列:修訂版本之間的差異

出自六年制學程
跳轉到: 導覽搜尋
「頁」表現的底層機制
 
(未顯示同用戶所作出之8次版本)
第 1 行: 第 1 行:
 
[[分類:LiteSite]]
 
[[分類:LiteSite]]
==控制首頁表現==
+
==「頁」表現的底層機制==
 +
===PHP webContent(path)函式===
 +
依「path 中 SCRIPT_NAME 之後的字串」,如:「/study/info.php/ABC/DEF?A=123」中的「/ABC/DEF?A=123」
 +
 
 +
回傳 wiki導出頁 或 webContent表中相應的webContent欄值(簡稱:內容頁)
 +
 
 +
包含 webContent(…) 函式的程式可以對上述字串進一步處理:
 +
#/webContent.php:單純 echo 回應字串,通常配合 javascript 的 webContent(請求,頁面某個 id) 函式表現
 +
#*位置固定
 +
#/print.php:回應字串 加上 word 的 html 頭尾,然後輸出成 html 文字檔,再跳往此 html
 +
#/某 site/index.php:前後加上 $html1,$html2 ,中間 echo 回應字串
 +
#/某 site/index0.php:同上,但通常置於 uploadFiles 之下,各路徑下的 index.php 已經調用為檔案列表
 +
===控制首頁表現===
 
*網址只打 ip 或域名,不打路徑<br/>透過文件根目錄下的 index.php ,如 http://jendo.org/
 
*網址只打 ip 或域名,不打路徑<br/>透過文件根目錄下的 index.php ,如 http://jendo.org/
 
*:識別 $_SERVER['SERVER_NAME'] 即「jendo.org」。
 
*:識別 $_SERVER['SERVER_NAME'] 即「jendo.org」。
*網址只打 ip 或域名+路徑,不打程式名<br/>透過 site 目錄下的 index.php ,如 http://urclass.net/EMEP
+
*網址只打 ip 或域名+路徑,不打程式名<br/>
 +
*1.透過 site 目錄下的 index.php ,如 http://urclass.net/EMEP
 
<pre>&lt;?php
 
<pre>&lt;?php
if(substr(urldecode($_SERVER['SCRIPT_NAME']),strlen(urldecode($_SERVER['REQUEST_URI'])))=='index.php'){header("Location: site首頁要前往的 URI");}
+
if(substr(urldecode($_SERVER['SCRIPT_NAME']),strlen(urldecode($_SERVER['REQUEST_URI'])))=='index.php'){
else{
+
header("Location: site首頁要前往的 URI");
 +
}else{
 
include_once '/文件根目錄/constant.php';
 
include_once '/文件根目錄/constant.php';
 
include_once 'theme.php';
 
include_once 'theme.php';
第 14 行: 第 28 行:
 
}
 
}
 
?&gt;</pre>
 
?&gt;</pre>
 +
*2.在 site 目錄下的 index.php 中不指定跳往何方,而在表 webContent 中的 path 欄指定 SITE 路徑,如「/EMEP/20220124/」。此時「域名+路徑」只能導向內容頁。 site 目錄下的 index.php ,可以簡化如下:
 +
<pre>&lt;?php
 +
include_once '/文件根目錄/constant.php';
 +
include_once 'theme.php';
 +
if(!isset($_REQUEST['ajax'])){echo $html1;}
 +
echo webContent(urldecode($_SERVER['REQUEST_URI']));
 +
if(!isset($_REQUEST['ajax'])){echo $html2;}
 +
?&gt;</pre>
 +
 +
==控制跨 site 的內容頁==
 +
*在表 webContent 中
 +
*# path 欄值為「/webContent.php/頁名」
 +
*# webContent 欄值可以跨 site 顯示。
 +
*# webContent 欄值若含 &lt;a href='#' onClick="webContent(URI,'content');return false;"&gt;連結提示&lt;/a&gt; 。利用 theme.php 中 javascript 的 webContent 函式,秀出任何 URI 能表達的內容。點擊連結則 a 所參照的內容就會秀出在 id 為 content 的標籤中。但無法回到上一頁。
 +
*在導航列中以「*#[[[頁名]]],頁名提示」來製作二級選項,此選項指向「/webContent.php/頁名」
 +
  
  
  
 
theme.php 會去找 webContent.webContent 資料表,其中 path 為「"/".SITE."/導航列"」的筆,如找不到會提示網站編輯者去建立此筆。
 
theme.php 會去找 webContent.webContent 資料表,其中 path 為「"/".SITE."/導航列"」的筆,如找不到會提示網站編輯者去建立此筆。

2022年11月16日 (三) 00:09的最新修訂版本

「頁」表現的底層機制

PHP webContent(path)函式

依「path 中 SCRIPT_NAME 之後的字串」,如:「/study/info.php/ABC/DEF?A=123」中的「/ABC/DEF?A=123」

回傳 wiki導出頁 或 webContent表中相應的webContent欄值(簡稱:內容頁)

包含 webContent(…) 函式的程式可以對上述字串進一步處理:

  1. /webContent.php:單純 echo 回應字串,通常配合 javascript 的 webContent(請求,頁面某個 id) 函式表現
    • 位置固定
  2. /print.php:回應字串 加上 word 的 html 頭尾,然後輸出成 html 文字檔,再跳往此 html
  3. /某 site/index.php:前後加上 $html1,$html2 ,中間 echo 回應字串
  4. /某 site/index0.php:同上,但通常置於 uploadFiles 之下,各路徑下的 index.php 已經調用為檔案列表

控制首頁表現

  • 網址只打 ip 或域名,不打路徑
    透過文件根目錄下的 index.php ,如 http://jendo.org/
    識別 $_SERVER['SERVER_NAME'] 即「jendo.org」。
  • 網址只打 ip 或域名+路徑,不打程式名
  • 1.透過 site 目錄下的 index.php ,如 http://urclass.net/EMEP
<?php
if(substr(urldecode($_SERVER['SCRIPT_NAME']),strlen(urldecode($_SERVER['REQUEST_URI'])))=='index.php'){
	header("Location: site首頁要前往的 URI");
}else{
	include_once '/文件根目錄/constant.php';
	include_once 'theme.php';
	if(!isset($_REQUEST['ajax'])){echo $html1;}
	echo webContent(urldecode($_SERVER['REQUEST_URI']));
	if(!isset($_REQUEST['ajax'])){echo $html2;}
}
?>
  • 2.在 site 目錄下的 index.php 中不指定跳往何方,而在表 webContent 中的 path 欄指定 SITE 路徑,如「/EMEP/20220124/」。此時「域名+路徑」只能導向內容頁。 site 目錄下的 index.php ,可以簡化如下:
<?php
include_once '/文件根目錄/constant.php';
include_once 'theme.php';
if(!isset($_REQUEST['ajax'])){echo $html1;}
echo webContent(urldecode($_SERVER['REQUEST_URI']));
if(!isset($_REQUEST['ajax'])){echo $html2;}
?>

控制跨 site 的內容頁

  • 在表 webContent 中
    1. path 欄值為「/webContent.php/頁名」
    2. webContent 欄值可以跨 site 顯示。
    3. webContent 欄值若含 <a href='#' onClick="webContent(URI,'content');return false;">連結提示</a> 。利用 theme.php 中 javascript 的 webContent 函式,秀出任何 URI 能表達的內容。點擊連結則 a 所參照的內容就會秀出在 id 為 content 的標籤中。但無法回到上一頁。
  • 在導航列中以「*#[[[頁名]]],頁名提示」來製作二級選項,此選項指向「/webContent.php/頁名」



theme.php 會去找 webContent.webContent 資料表,其中 path 為「"/".SITE."/導航列"」的筆,如找不到會提示網站編輯者去建立此筆。