[Drupal] 使用者自訂快跳選單

in
Drupal

嗨!最近除了睡覺之外,都是在跟Drupal奮戰。最近研究的是使用者的部份,如何優化Drupal的使用者體驗是滿有趣的主題呢!

這個小小的教學主要是示範「整合兩個模組」,希望做到的事情是:

希望每個會員登入後,右上角有個叫做「快跳」的下拉式選單,裡面有管理者預設的一些常用連結,會員可以自行再修改、新增自己想要的頁面到快跳。

先看成果:

用到的模組有:Bookmarks, Jump

Bookmarks可以作到「每個使用者都有自己的選單」
Jump可以作到「把選單變成Dropdown選單」

步驟:
1.安裝以上模組
2.把Bookmarks區塊放到網站任何位置。這個模組提供的區塊就是「會員選單」。但並非是下拉式的,所以在我的案例中,我是不希望他出現。不過這個區塊身負著「產生選單及放入預設選單項目」的重任,所以一定要放這個區塊。可以再用CSS隱藏掉(visibility:hidden)。
3.新增一區塊,輸入格式改為PHP,輸入

<?php
global $user;
$path = drupal_urlencode(drupal_get_normal_path(drupal_get_path_alias($_GET['q'])));
$jump_menu = jump_quickly('bookmarks-' . $user->uid);
$output =  '<div id="jump_to">' . $jump_menu;
$output .=  l(t('本頁加入快跳'), 'bookmarks/item/addpage/'. base64_encode($path),array('attributes' => array('id' => 'bookmarks_addthispage'))) . ' | ' . l(t('新增常用連結'), 'bookmarks/mine/presets' ,array('attributes' => array('id' => 'bookmarks_addpreset'))) . '</div>';	
print $output;
?>

EXTRA,
Jump的樣式是有個下拉式選單,然後右邊有個GO按鈕,但我希望他能夠變成一選就跳,不需要還要按GO按鈕,這樣才叫快跳嘛!
作法如下:
1.新增模組quicker_jump
2.寫法:

/*---------------------------
  改變右上角的快跳
  需要:jump.module
----------------------------*/	
function quicker_jump_form_alter(&$form, $form_state, $form_id) {
  $form_id_short = drupal_substr($form_id, 0, 17);
  if($form_id_short == 'jump_quickly_form') {
    $form['jump_goto']['#attributes'] =  array('onchange' => 'this.form.submit();');
	array_unshift($form['jump_goto']['#options'], '快跳...');
	$form['jump_goto']['#default_value'] = '快跳...';
	//$form['jump_goto']['#options']['default_selected']['selected'] =  'selected';
 
    $form['submit']['#prefix'] = '<div class="hidden">';
	$form['submit']['#suffix'] = '</div>';
 
    return $form;
  }
}

回應

“快跳”这个翻译也太……,我个人接受不了。
简体中文一般都是4个字:快速跳转 快速链接 之类

嗨 花水妹~

Nice article!

發表新回應

這個欄位的內容會保密,不會公開顯示。 If you have a Gravatar account, used to display your avatar.
  • 自動將網址與電子郵件位址轉變為連結。
  • 可使用的 HTML 標籤:<a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • 自動斷行和分段。

更多關於格式選項的資訊