2012-03-06 15 views
1

我在這個新項目中處於一個奇怪的地方:我有一個運行Javascript應用程序的客戶端,他們想用CMS來管理文本元素。原生的JS環境將是領先的。EE來管理靜態內容:你會如何做到這一點?

理想情況下,EE會管理內容,然後渲染到內容目錄中的靜態文件。我不是一個PHP的人,我的EE內容經驗一直是動態的,使用它的標籤。現在我需要將內容預渲染到模板目錄之外的文件或網址中......所以我可以使用一些指導。

事情是這樣工作的:

{exp:channel:entries 
    channel="content" 
    disable="categories|category_fields|member_data|pagination|trackbacks" 
    status="Open" 
    dynamic="no" 
    limit="1" 
} 

<?php 
$File = "./articles/YourFile.html"; 
$Handle = fopen($File, 'w'); 
$Data = "<h1>{title}</h1>\n<hr /><p>{base_body}</p>\n"; 
fwrite($Handle, $Data); 
print "Data Written"; 
fclose($Handle); 
?> 

{/exp:channel:entries} 

但我實際上是手動查看網頁呈現內容......有沒有解決的辦法?我可以使用EE作爲服務嗎?一個關於如何呈現上述內容的例子將是有幫助的。我現在也在我的腦海裏圍繞着服務。

+0

聽起來MovableType的:) 你看起來功能因爲據我所知並不存在。你真的需要從系統中讀取文件嗎?或者有可能捲曲一個url(甚至是本地的)? – 2012-03-06 14:16:06

回答

0

這就是我之前設置的一個獲得EE模板的靜態文件。

我像正常一樣設置我的EE模板。然後設置一個使用CURL調用模板URL並將內容寫入靜態文件的PHP腳本。我設置了一個cron以按需要的間隔運行文件。

PHP腳本文件和輸出的PHP或TXT文件(或任何您需要它命名的)位於同一個目錄中。確保輸出文件具有777權限。

這是你將放在php腳本文件。只要改變$網站,$文件名變量要使用什麼:

set_time_limit(3450); 

#GRAB DATA 
$site = "http://www.domain.com/template-group/template"; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,$site); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
$result=curl_exec ($ch); 
curl_close ($ch); 

#WRITE DATA TO FILE 
$filename = 'static-file-name.php'; 
if (is_writable($filename)) { 
    if (!$handle = fopen($filename, 'w')) { 
     echo "Cannot open file ($filename)"; 
     exit; 
    } 
    if (fwrite($handle, $result) === FALSE) { 
     echo "Cannot write to file ($filename)"; 
     exit; 
    } 
    echo "Success, updated the accordion file"; 
    fclose($handle); 
} else echo "The file $filename is not writable"; 

你EE模板應該是這樣的:

{exp:channel:entries channel="content" disable="categories|category_fields|member_data|pagination|trackbacks" status="Open" dynamic="no" limit="1" } 
     <h1>{title}</h1> 
     <hr /> 
     <p>{base_body}</p> 
{/exp:channel:entries} 
0

關於EE的一點是,系統中的內容不會翻譯成頁面或url 。渠道數據是動態的,並且經常與來自其他渠道的數據(全局變量,多渠道,低變量,名單繼續)混雜在一起。

要做到這一點,最好的方法就是寫一個擴展名,當保存一個條目時觸發一個文件寫入系統。你已經在你的模板中運行的php的一部分。

檢出entry_submission_end掛鉤用於擴展如果你走這條路線。訣竅是弄清楚你輸出的是什麼。由於通道數據不一定與模板相關,因此您需要選擇一個模板來渲染通道數據或使用頁面模塊來允許用戶在EE中選擇模板。

這不是100%解決您的問題,但它應該指向你需要去的方向。

相關問題