ลบลิงค์ในเมนูของ drupal

, Post in:

พอดีผมติดปัญหานี้มานานพอสมควรละเกี่ยวกับเรื่องเมนู (menu) ของระบบ drupal เนี้ยเพราะการกำหนด path ใน Menu settings ในตอนที่เราสร้างเมนูนั้น มันจะไม่ยอมให้ใส่ค่าว่างเด็ดขาด คือเราจำเป็นต้องใส่ path url เข้าไปด้วย

menu drupal

คราวนี้ปัญหาของผมมันอยู่ที่ผมสร้างเมนูเป็นแบบมี sub menu ออกมาแต่เมนู lv1 ของเราที่เราจะ hover ตัวเมนูย่อย (sub menu) ออกมาเนี้ย ผมต้องการให้มันไม่มีการกดลิงค์ไปไหนได้เลย อืมจะทำยังไงละเรามาดูวิธีแก้ไขกันครับ

วิธีลบลิงค์ออกจากเมนูที่เราต้องการ

1. เปิดไฟล์ template.php จาก theme ที่เราใช้งานอยู่ครับ จากนั้นนำโค็ดด้านล่างใส่ลงไป

function THEMENAME_menu_item_link($link) {
  if (empty($link['localized_options'])) {
    $link['localized_options'] = array();
  }

  if (!$link['page_callback'] && strpos( $link['href'], 'menu.nolink')) {
    return '<a href="javascript:void(0)" onclick="return false" class="nolink">'. $link['title'] .'</a>';
  }
  else {
        return l($link['title'], $link['href'], $link['localized_options']);
  }
}

โดยแก้ไข THEMENAME ไปเป็นชื่อ theme ที่เราใช้งานอยู่

2. แก้ไขเมนูที่เราไม่ต้องการลิงค์ โดยระบุใน path: ว่า http://menu.nolink

menu setting drupal

3. จากนั้นเพิ่ม css ดังนี้ครับ

ul li a.nolink{ cursor: default; }

แค่นี้ละครับโดยเมนูไหนที่เราใส่ระบุ path ให้เป็น http://menu.nolink เมนูนั้นก็จะถูกเปลี่ยน tag a เป็น

<a href="http://menu.nolink" title="http://menu.nolink" rel="nofollow">ชื่อเมนู</a>

ทำให้เมนูดังกล่าวไม่สามารถคลิกลิงค์ได้ครับ

Thank : http://drupal.org/node/143322#comment-1909486

Add new comment