彙整

Posts Tagged ‘drupal’

[drupal] insert view and Viewfield

四月 2, 2008 CrazyLion 留言

insert view  和 viewfield 是drupal 中兩個可以把別的view 插入到當前node 的模組。不過insert view 有點問題,他會自己cache 一份 render 後的結果,這會導致當view 裡頭的node 更新後,他會很慢很慢才更新(學弟改了node的資料後,半小時後還沒更新o_O!!!)。

這應該算是地雷 :P   所以有類似需求的話,可以改用 viewfield,他一樣可以提供類似的功能,不過這樣就只能插入一個view了。

Categories: Open Source, php 標籤:, ,

[drupal] 解決views_tabs 排序不正常的問題

二月 18, 2008 CrazyLion 留言

views_tabs 是一個drupal 的擴充套件。它可以讓view中的元素以tab的方式呈現出來。不過它有一個問題:

總是不願意依照view中的設定來好好排序。 怎麼勸都勸不聽。

這幾天追了一下,發現主要的原因應該是它所使用到的jstool tab模組中的:

function tabs_process_tabset($element)

裡面又對元素呼叫了一次 uasort($element, “_element_sort”) ; (77行附近)

而drupal中的_element_sort函式主要會根據每個$element的成員”#weight” (如果沒設定就取用#title成員)來排序。

views_tabs 在產生元素陣列的時候沒把這個成員給放進去(不過這要算誰的錯呢?)。所以解決方法很簡單,就是我們自己加進去。

底下是最簡單的方式:

在 function theme_views_tabs_display($view, $nodes, $type, $teasers = FALSE, $links = TRUE)函式中的

foreach ($nodes as $node) {

改成

$i =0;
foreach ($nodes as $node) {

111 $tabset[$title] = array(
112 '#type' => 'tabpage',
113 '#content' => $content,
114 '#title' => $title,
115 );

改成

111 $tabset[$title] = array(
112 '#type' => 'tabpage',
113 '#content' => $content,
114 '#title' => $title,
115 '#weight' =>$index,
116 );
117 $index++;

即可。

Categories: Open Source, php 標籤:, , ,

建立自己的digg-like網站

十二月 25, 2007 CrazyLion 留言

以往要建立自己的digg-like網站,可以使用pligg 這套軟體,不過現在也可以使用drupal來架設囉!!

使用方式請參考 drigg-code,範例網站請參考:drigg。以我對drupal的了解,用起來應該不會跟pligg一樣流暢,不過好處是可以跟其他drupal的模組做整合,很容易擴充出新的功能出來。不過這個介面看起來….恩 大概還有一小段路要走 XD

Categories: Open Source, php 標籤:,

Drupal 的錯誤

十一月 30, 2007 CrazyLion 留言

今天學弟跟我說,他修改了一下我們使用drupal架設的網站的選單後,就出現以下的錯誤:

* warning: array_keys() [function.array-keys]: The first argument should be an array in …/includes/menu.inc on line 1224.
* warning: Wrong parameter count for min() in …/includes/menu.inc on line 1224.

除此之外,沒有任何內容出現,不管到任何一頁均是出現找不到此頁面的錯誤。

經過查詢後發現可以透過底下的patch 來避開這個問題。

修改 include/menu.inc 1224行:

$temp_mid = min(array_keys($_menu['items'])) – 1;

改成

$temp_mid = is_array($_menu['items']) ? (min(array_keys($_menu['items'])) – 1) : -1;

除此之外,建議清空資料庫中所有cache_ 開頭table。 看起來像是Drupal的bug。

ref:http://drupal.org/node/145265

Categories: web-Development 標籤: