說明我的系統是安裝在 Ubuntu 12.04.2 Server版,非 Desktop 版!
作法上一開始增加新模組後,依照 P62 頁增加高慧君老師所寫的 Scratch 線上播放的語法如下:
<div class="container">
<!-- Scratch project START -->
<applet id="ProjectApplet"
style="display:block"
code="ScratchApplet" codebase="./"
archive="ScratchApplet.jar" height="400" width="482">
<param name="project" value="<?php print $node>field_work[0]['filepath'] ?>">
</applet>
<!-- Scratch project END -->
</div>
可惜試了很久,一直都無法成功,最多會出現像下列的畫面,
看了一下內容,應該是找不到 ScratchApplet.jar,這個我也上傳了,在 default/files/ 資料夾下也有放(這裡我將上傳的 sb 檔案置於此),錯誤訊息的內容那個 jar似乎是要放置在 C:\USERS\xxx 下(目前使用者的資料夾),所以也放了一份,
此時雖然會出現 Scratch 播放畫面,但一直 Loading 中,就是找不到檔案啦,
連直接指定 IP 位置資料夾都沒用,此時只好請教高老師有無改法,高老師也立刻回復改法(感謝),但也說明網站會有錯誤訊息,不影響播放,高老師的改法如下:
======= 高老師原始改法起始 =============
◎ 設定Content Template
在導覽「架構」─「內容類型」選取右上方的「Content Template」,選取「Scratch作品」的「edit template」。
修改contemplate.module的文字第818行
原來的程式碼:
<?php
$language_to_display = (
isset($node->body[$display_language]) ?
$display_language :
(
isset($node->body[$default_language]) ?
$default_language :
$node_language
)
);
?>
修改為以下程式碼:
<?php
// choose the language
$language_to_display = 'und';
$languages = array($display_language, $default_language, $node_language);
foreach ($languages as $language) {
if (isset($node->body[$language])) {
$language_to_display = $language;
break;
}
}
?>
在Drupal提供的Body variables中,將「$node->language」改為「und」。
修改網頁內文為以下內容:
<div class="field field-type-text-textarea field-field-memo">
<h3 class="field-label">說明</h3>
<div class="field-items">
<div class="field-item"><?php print $node->field_memo[und][0]['value']; ?></div>
</div>
</div>
<div class="container">
<!-- Scratch project START-->
<applet id="ProjectApplet"
style="display:block"
code="ScratchApplet" codebase="./"
archive="ScratchApplet.jar" height="400" width="482">
<param name="project" value="<?php print "/sites/localhost.drupal.scratch/files/".substr($node->field_file[und][0]['uri'],9); ?>">
</applet>
<!-- Scratch project END-->
</div>
<div class="field field-type-file-generic field-field-file">
<h3 class="field-label">檔案</h3>
<div class="field-items">
<div class="field-item"><a href=<?php print "sites/localhost.drupal.scratch/files/".substr($node->field_file[und][0]['uri'],9); ?>><?php print $node->field_file[und][0]['filename']; ?></a></div>
</div>
</div>
======= 高老師原始改法結束 =============
也就是同時要修改 Contant Template 模組的內容及 Sractch 線上播放的語法,我也照改了,一開始還是會找不到 jar 程式,也放置到本機使用者資料夾了,接著就是一開始的錯誤訊息圖,後來就更改了
codebase=”./” - codebase=”sites/default/files/”
或者是把 jar 放入本機登入使用者資料夾,就變成 Loading 中,想想大概是找不到檔案(其實一直都是如此),看了 Contant Template BODY下面顯示的BODY VARIABLES 中直接秀出檔名的語法
$node->field_file[$node->language][0]['filename']
於是就把高老師原本呼叫檔案的語法從
<?php print "/sites/localhost.drupal.scratch/files/".substr($node->field_file[und][0]['uri'],9); ?>
改為
<?php print $node->field_file[und][0]['filename'] ?>
之後,嘿嘿,就出現正常的 Scratch 線上播放畫面啦!
下面是我修改過的語法,紅色粗體是我更改的部分,提供參考:
<div class="field field-type-text-textarea field-field-memo">
<h3 class="field-label">說明</h3>
<div class="field-items">
<div class="field-item"><?php print $node->field_memo[und][0]['safe_value']; ?></div>
</div>
</div>
<div class="container">
<!-- Scratch project START-->
<applet id="ProjectApplet"
style="display:block"
code="ScratchApplet" codebase="sites/default/files/"
archive="ScratchApplet.jar" height="400" width="482">
<param name="project" value="<?php print $node->field_file[und][0]['filename'] ?>">
</applet>
<!-- Scratch project END-->
</div>
<div class="field field-type-file-generic field-field-file">
<h3 class="field-label">上傳檔案</h3>
<div class="field-items">
<div class="field-item"><a href=<?php print "sites/default/files/".substr($node->field_file[und][0]['uri'],9); ?>><?php print $node->field_file[und][0]['filename']; ?></a></div>
</div>
</div>
至於網頁會出現的錯誤訊息如下,看看有無人能解開,哈,我無法啦!
沒有留言:
張貼留言