實驗出了一些東西,覺得很有趣,po出來和大家分享。
開始的需求其實和amd168 在這篇文章要求的有點像,可是目的網頁卻是.html...於是,開始在drupaltaiwan上狂找。不用google找的原因是因為,google出來的東西也是以drupaltaiwan為主。好,結果就找到了這篇:
把 Drupal 的功能,套進自己寫的程式裡頭
過程略過,以下是結果:
原始碼 ann.php
<?php
//chdir('../drupal');
include_once './includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
$view_name = 'views_lib'; //name of view
$limit = 10; // number of returns
$view_args = array();
$view = views_get_view($view_name);
print views_build_view('embed', $view, $view_args, FALSE, $limit);
?>
解釋一下。import後面是template的css,chdir後面是ann.php所在,views_lib是建立在views中的id,limit決定要抽多少則node出來。
真好,這下子無論網頁在哪裡,插個 就可以把drupal中的東西撈出來顯示。全校就一套drupal與資料庫,各處室自己做的網頁就可以包含自己的消息。
結果:
後記:
更好的辦法:https://drupaltaiwan.org/forum/20090401/3279#comment-10691
附加檔案 | 大小 |
---|---|
Noname.jpg | 45.64 KB |
Re:
我想了又想, 想了又想, 你最終是用 < iframe >
那在Drupal 建一頁面, 然後 < iframe >進去有什麼分別 ??
Re:
啊,差很多呢。假如某單位自己用MS frontpage寫了個index.html (default.htm?),說不會用druapl,可是又要你把drupal網頁中的部分內容坎進去,那就只有
可以用了。
另外,你用
...
code>
把帶有<, >
符號的東西包起來就可以正常顯示了。Re:
既然是用 iframe
那一樣都是顯示外部網頁
所以不管哪種方式,對不會用 drupal 的人都是沒差的
對他來說同樣都只是在網頁內插入一個 iframe 然後設定 src 這種單純的 html 作業而已
就你提的需求來說,就變成繞遠路了
其實直接把 iframe 的 src 設定為 drupal 內的某一個路徑就可以了
差別只在要不要讓該路徑的輸出套用 page.tpl.php 罷了
Re: 在任何一個網頁中插入drupal的內容
這我試過,drupal會把整個網頁都顯示出來,沒有辦法只顯示一個表格。
曾經想過改page.tpl.php,可是功力太淺...
Re:
你可以將沒有 layout 的輸出集中在某個路徑底下
例如我有幾個路徑的頁面:
outside/1
outside/2
outside/3
希望讓外部網站嵌入頁面
接著在目前版型內
複製一份 page.tpl.php 然後更名為 page-outside.tpl.php
然後 page-outside.tpl.php 裡面,直接把 layout 的部份都砍光,剩下 print $content 就行了
這樣的好處是還會載入 drupal 的 css 或 js
不需要自行 import drupal 的 css 和 js 檔案
如果模組內使用了 drupal_add_js 加入了 Drupal.settings 資料到瀏覽器端供 js 使用
以你的作法,這部份就失效了
Re: 在任何一個網頁中插入drupal的內容
啊!對哦,可以這樣做。了解你說「繞遠路」是什麼意思了。
超棒,馬上回去實做~~
Re: 在任何一個網頁中插入drupal的內容
這內容並沒有解決標題的目標。
是說明了iframe的應用。
Re: 在任何一個網頁中插入drupal的內容
是啊,小弟不才,有點野人獻曝了。
不過這種需求是有的,因為有人一定要用自己用frontpage做的網頁當底...
Re: 在任何一個網頁中插入drupal的內容
我也覺得這個需求不錯,感謝分享!
Re: 在任何一個網頁中插入drupal的內容
感謝 最近剛好有這個需要
原本我們的網站是用drupal架的
沒想到英明偉大的縣網要求主機代管然後所有學校系統全改成統一的版本(schoolpad)
然後把資料全轉移到新系統上
想來想去 似乎用iframe把node插入到新系統的網頁中比較快
Re: 在任何一個網頁中插入drupal的內容
突然看到一句話,處長指示,再不作更新將懲處相關人員 ---> 我無言了................ =.=
Re: 在任何一個網頁中插入drupal的內容
原來也有人看到了
想請問如果只想把node的內容插入到新網頁 而不要header sidebar那些東西
該怎麼做
hom的方法看不太懂
謝謝
Re: 在任何一個網頁中插入drupal的內容
非常有用的代碼。感謝分享
Re: 在任何一個網頁中插入drupal的內容
請參考 http://drupaltaiwan.org/forum/20090401/3279#comment-10691
Re: 在任何一個網頁中插入drupal的內容
想到一個新的想法
透過在網址後面附加 get 參數 (?view=outside 之類的)
讓 page.tpl.php 來判斷 layout 有無的切換
然後 views 的部份改用 teaser views 來製作
就可以利用node在套版的時候
判斷 get 參數來調整 node 的連結,讓路徑也加上同樣的 get 參數
讓 page.tpl.php 調整輸出 node 時的 layout
就可以在不修改 dns 設定,不使用 session 的狀況下達成需求了
有需要的話,晚點有空我再把詳細的作法試出來
Re: 在任何一個網頁中插入drupal的內容
可以請問hom,詳細作法要如何做呢?感謝~~~
目前我的遇到的問題是-
有一個主站(校網,有公告系統,用views將資料呈現在首頁),數個分站(各單位網站)分站中的首頁,鑲入用iframe包著主站中自已單位的公告(在views中產生一個page,ex:news_a,並生出page-news_a.tpl.php,刪光只留是 print $content ),到此都ok~(如附圖1)
可是再點分站中,鑲入的單位公告時,連到公告內容時(iframe中的內容又連回主站),外框又會跑出來了~~~(如附圖2)
不知道有沒有啥方法還是模組是可以分享drupal的內容在不同的網站之中??
謝謝~~~
Re: 在任何一個網頁中插入drupal的內容
試試看用 domain_access 模組
可以依照網址的 domain name 來區分成不同的子站
但是資料庫其實都是同一個
然後把某一個子站的版型改成只輸出內容的部份來給外部網站的 iframe 使用
就不用特別去修正 views 裡面的連結了
只是這個作法需要用到兩個 domain
Re: 在任何一個網頁中插入drupal的內容
It's work!!
感謝hom的指點~
我除了試domain_access 模組外, 另還試了-
用子目錄+第二個domain,例如-
/sites/default
/sites/output.mysite
然後再/sites/output.mysite/settings.php裡設-
$conf = array(
'site_name' => 'output',
'theme_default' => 'garland',
'site_frontpage' => 'outupt_home',
);
其實和用domain_access 模組是不差不多的功能,也是做一個和原主站共資料庫,但可用自己的板型,以供輸出(給別站用)的分站~
另外想到,如果只是單純分享某些固定網頁的話,也可透過theme key模組+配合版型,達到效果~
現在就剩用"iframe"鑲入資料時,資料過多時iframe會出現scroll,這美中不足之處了~~~~
再次感謝hom^^
Re: 在任何一個網頁中插入drupal的內容
如果利用 webform 做了一份調查問卷表單
想要把這份表單利用 iframe 崁在一般html 網頁中 ( header 、 sidebar 那些也都不要顯示)
請問大致的處理流程是什麼?上面提的方法看不太懂...