Drupal 7 - ระงับเอาต์พุตของโหนดบน Taxonomy Pages


10

มีวิธีที่จะระงับการส่งออกของโหนดในหน้า taxonomy โดยไม่ต้องติดตั้งโมดูล (เช่นเพียงแค่ใน template.php)?

โหนดที่ติดแท็กด้วยคำว่า taxonomy จะปรากฏในหน้า "Taxonomy Index" (เช่น yoursite.com/taxonomy/term/ [รหัส]]

ใหม่ใน Drupal 7 หน้าดัชนี Taxonomy สามารถแนบฟิลด์เหล่านั้นได้ อย่างไรก็ตามหากคุณพยายามนั่งทับหน้า taxonomy ด้วยมุมมอง (ตัวอย่างเช่นเพื่อควบคุมวิธีแสดงโหนด) ฟิลด์บนหน้า Taxonomy Index จะไม่ปรากฏขึ้น

ฉันได้วางมุมมอง Taxonomy เป็นบล็อกในหน้าดัชนี Taxonomy ด้วยวิธีนี้ฉันสามารถควบคุมวิธีที่โหนดปรากฏและยังคงมีฟิลด์ดัชนีหน้า Taxonomy

ด้วยเหตุนี้หน้าอนุกรมวิธานจึงยังคงแสดงผลโหนดของตน ฉันสามารถซ่อนได้โดยการตั้งค่าทีเซอร์ของโหนดเป็นซ่อน แต่ก็ยังโหลดโหนดขึ้นมา (และดังนั้น CSS / Jquery ใด ๆ ที่แนบกับโหนดแม้ว่าโหนดจะไม่แสดง) ฉันจะระงับโหนดไม่ให้ปรากฏตามอุดมคติจากด้านในของ template.php ได้อย่างไร


ทำไมคุณไม่ต้องการติดตั้งโมดูล บางสิ่งสามารถทำได้ง่ายขึ้นด้วยโมดูล
Martin Schlagnitweit

คำตอบ:


5

ฉันรู้ว่าต้องการโซลูชันที่ไม่มีโมดูล แต่ใน Drupal 7 มีโมดูลที่ทำสิ่งที่คุณต้องการ: ปิดการใช้งานรายการคำศัพท์โหนด

มันช่วยให้คุณเลือกต่อคำศัพท์หากคุณต้องการปิดการใช้งานผลลัพธ์ของรายการคำ


ดูเพิ่มเติมที่: drupal.stackexchange.com/questions/3165/…
Benj

8

โซลูชันจากhttp://www.wardontheweb.com/remove-node-lists-from-taxonomy-pages-in-drupal-7/ใช้ได้สำหรับฉันดี:

function THEMENAME_preprocess_page(&$vars){
   if (arg(0) == 'taxonomy' && arg(1) == 'term' && is_numeric(arg(2))){
     unset($vars['page']['content']['system_main']['nodes']);
     unset($vars['page']['content']['system_main']['pager']);
     unset($vars['page']['content']['system_main']['no_content']);
   }
}

หมายเหตุ: คุณควรรีเซ็ตแคชของเว็บไซต์ของคุณ


หมายเหตุ: นี้จะปิดโหนดรายชื่อสำหรับการใด ๆหน้าระยะอนุกรมวิธานในเว็บไซต์
Duncanmoo

@Peter Lozovitskiy ฉันทำเช่นนี้และต้องเผชิญกับ "ข้อสังเกต: การใช้ข้อผิดพลาด 'taxonomy'" ที่ไม่ได้กำหนดอย่างต่อเนื่อง!
shekoufeh

@shekoufeh ฉันแก้ไขรหัสแล้ว (ใช้เครื่องหมายจุลภาคแทนที่) ลองใช้รหัสนี้ทันที
Peter Lozovitskiy

2

คุณต้องลบโหนดออกจากตัวแปร $ page

ในtemplate.phpคุณสามารถทำสิ่งนี้ได้:

function MY_THEME_preprocess_page(&$variables) {
  if(arg(0) == "taxonomy" && arg(1) == "term") {
    $variables['page']['content']['system_main']['nodes'] = null;
  }
}

ในpage.tpl.phpของคุณใช้รหัสนี้:

if(arg(0) == "taxonomy" && arg(1) == "term"){
  $page['content']['system_main']['nodes'] = null;
}

นี้จะเอาโหนดจากคำศัพท์และเงื่อนไขทั้งหมด หากคุณต้องการลบออกเฉพาะในบางคำศัพท์หรือทุกคำศัพท์จากการใช้คำศัพท์arg(2)ซึ่งมีคำว่าtidให้โหลดคำนั้นแล้วอัปเดตคำสั่ง if


มันใช้งานได้ แต่ยังคงทิ้งเพจเจอร์ไว้ นั่นหมายความว่าโหนดกำลังถูกโหลดและทำให้เซิร์ฟเวอร์เสียการดำเนินการต่อ อย่างไรก็ตามขอบคุณสำหรับเคล็ดลับฉันได้ใช้วิธีการของคุณแล้ว :) แต่ในทางทฤษฎีแล้วยังมีวิธีที่ดีกว่าอยู่
int_ua

0

คุณสามารถทำอะไรได้จริงใน template.php แต่ไม่แนะนำ จุดประสงค์ของการใช้ CMS คือคุณแยกข้อมูลพฤติกรรมและรูปลักษณ์ ไฟล์ template.php เป็นส่วนหนึ่งของเลเยอร์ชุดรูปแบบและคุณควรใช้เพื่อปรับรูปแบบภาพของเว็บไซต์ของคุณ

หากคุณต้องการปรับพฤติกรรมของไซต์ (ในกรณีนี้: ควบคุมว่าจะแสดงรายการใดในรายการบางรายการ) คุณต้องเปลี่ยนพฤติกรรมดังนั้นคุณจึงต้องติดตั้งและกำหนดค่าโมดูล หากคุณต้องการสร้างรายการเนื้อหาที่กำหนดเองโมดูลViewsเป็นสิ่งที่คุณต้องการ

ในกรณีของคุณ (ถ้าฉันเข้าใจถูกต้อง) คุณต้องการให้ฟิลด์คำศัพท์อนุกรมวิธานปรากฏเหนือรายการโหนดที่ติดแท็กด้วยคำนั้น คุณสามารถสร้างสิ่งนั้นอีกครั้งในมุมมองของคุณโดยสร้างบล็อกมุมมองที่ใช้รหัสคำจาก URL และแสดงข้อมูลที่คุณต้องการ


ขอบคุณสำหรับการตอบกลับ! ฉันใช้ Views เพื่อลบล้างหน้า taxonomy อย่างไรก็ตามฉันกำลังใช้การแทนที่การเข้าชมเป็นบล็อกแทนที่จะเป็นหน้าเว็บเพราะฉันจำเป็นต้องให้เขตข้อมูลในหน้า taxonomy ปัญหาเดียวคือหน้า taxonomy ยังโหลดโหนดซึ่งดูเหมือนไม่จำเป็น
big_smile

ฉันไม่เข้าใจสิ่งที่คุณหมายถึงด้วย "ฟิลด์ในหน้า taxonomy" แต่การซ่อนเนื้อหาของหน้าเว็บและการแทนที่ด้วยบล็อกนั้นไม่ได้ดูเหมือนโซลูชันที่ถูกต้อง หากคุณแทนที่หน้า taxonomy ด้วยมุมมองหน้าปกติคุณต้องใช้ฟังก์ชันใด (บางทีคุณสามารถอัปเดตคำถามเดิมของคุณและฉันจะปรับปรุงคำตอบของฉันตามลำดับ)
marcvangend

คำตอบอัพเดทเช่นกัน
marcvangend

น่าเสียดายที่คำตอบของคุณดูเหมือนจะไม่ทำงาน หากคุณพยายามที่จะนำเขตข้อมูล taxonomy เข้ามาในมุมมองมันจะแสดงเนื้อหาของทุก ๆ ฟิลด์ (ไม่ใช่สิ่งที่เพิ่งเป็นของเพจที่กำลังดู)
big_smile

0

ฉันใช้ CSS เพื่อซ่อนสิ่งทางอนุกรมวิธาน แต่ตั้งค่าการแสดงผลเป็นแบบกำหนดเองและ blanking ที่ดูเหมือนเป็นตัวเลือกที่ดีกว่า

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.