วิธีเริ่มมุมมองที่ตำแหน่ง% nid (จากเส้นทาง)


11

ฉันมีพอร์ตโฟลิโอแสดงโหนด somes (views3 + มุมมองสไลด์โชว์โดยใช้วงรอบ) ทุกอย่างทำงานได้ดีฉันเป็นเส้นทางเริ่มต้น/portfolioในการเข้าถึง

อย่างไรก็ตามฉันพยายามกำหนดเส้นทางสำหรับแต่ละสไลด์ ฉันต้องการที่จะใช้/portfolio/%nidและใช้%nidในมุมมองเพื่อเริ่มต้นสไลด์ที่ดูครั้งแรกกับรหัสโหนดนี้

ใครรู้ว่ามันเป็นไปได้? ฉันได้ลองกับ UI แต่ฉันคิดว่ามันไม่เพียงพอ

คำตอบ:


1

ในjQuery Cycle มีตัวเลือกที่เรียกว่า startsSlide โดยค่าเริ่มต้นนี้ถูกตั้งค่าเป็น 0 เช่นนี้เริ่มต้นสไลด์: 0

ถ้าฉันจำอย่างถูกต้องมีแท็บ / textarea สำหรับการตั้งค่าขั้นสูงที่คุณสามารถเพิ่มตัวเลือกใน jQuery Cycle จากภายใน UI ของ Views ฉันคิดว่าคุณสามารถเพิ่ม "เริ่มต้นเลื่อน: 5" ได้ที่นั่น

คุณจะต้องค้นหาว่าเป็นสไลด์เริ่มต้น (แปลง% nid ไปเป็นแถวใดในมุมมองนั้น) และเพิ่มเป็นองค์ประกอบ HTML เมื่ออยู่ในสถานที่ที่เราสามารถดึงมันด้วย jQuery และเพิ่มเป็นตัวเลือก jQuery Cycle ฉันไม่แน่ใจว่าวิธีไหนดีที่สุด แต่ฉันคิดว่าคุณสามารถทำสิ่งต่อไปนี้ได้:

    function MYMODULE_views_pre_render(&$view) {
      if($view->name == "MYVIEW") {
        $view->attachment_after = $startingslide;
      }
    }

คุณจะต้องเพิ่มรหัสเพิ่มเติมเพื่อค้นหา $ startingslide แน่นอน ดูภายใน $ view-> ผลลัพธ์และค้นหาว่าแถวใดที่เป็นอาร์กิวเมนต์ซึ่งจะเป็น $ startingslide ของคุณ ใช้ dpm () บนมุมมองเพื่อค้นหาวัตถุ

หวังว่านี่จะช่วยคุณได้ แจ้งให้เราทราบว่าคุณทำอะไรลงไป :)


0

คุณสามารถเพิ่มตัวกรองที่เปิดเผยให้กับมุมมองของคุณกำหนดค่าตัวกรองเพื่อแสดงgreater thanค่าที่ระบุและระบุ URL ตามนั้น

เช่น / portfolio? nid_is_greater_than = 3

จากนั้นคุณสามารถซ่อนตัวกรองด้วย css


ฉันจะใช้อาร์กิวเมนต์ (ตัวกรองเชิงบริบท) แทนที่จะเป็นตัวกรองแบบเปิดเผย - ยกเว้นว่ามีการใช้งานอยู่แล้วและสิ่งพิเศษนี้จะยุ่งกับการจัดการสิ่งเหล่านั้น
Alfred Armstrong

ฉันไม่รู้วิธีเปรียบเทียบค่าฟิลด์กับค่าตัวกรองเชิงบริบท
magtak

จุดดี. ต้องนอนหลับครึ่งเมื่อฉันโพสต์ความคิดเห็นก่อนหน้านี้ขอโทษ
Alfred Armstrong

0

เนื่องจากปัญหาของคุณเกี่ยวกับลักษณะที่ปรากฏไม่เกี่ยวกับโครงสร้างฉันแนะนำไม่ให้แก้ปัญหาบนเซิร์ฟเวอร์และไม่ได้อยู่ในเส้นทาง URL แต่ในไคลเอนต์ที่มีการจัดการ URL: / portfolio # slide- [nid]

ฉันไม่ได้อ่านโค้ด javascript ของสไลด์โชว์ + รอบการดู แต่ฉันคิดว่ามันง่ายที่จะนำมาใช้เป็นพฤติกรรมในการอ่านส่วน URL ในการเริ่มต้นของสไลด์โชว์ หรืออาจมีการใช้ตรรกะแบบนี้อยู่แล้วซึ่งคุณสามารถใช้ ...


0

วิธีการเกี่ยวกับการใช้ตัวเลือก 'ผลลัพธ์การเขียนซ้ำผลลัพธ์' ในส่วนฟิลด์ของ Views

  1. ใน Views ให้ไปที่ Configure (Image) Field> Rewrite Results
  2. ทำเครื่องหมายที่ช่องทำเครื่องหมาย 'ส่งออกฟิลด์นี้เป็นลิงก์'
  3. ป้อน Link Path (nid /) และรายละเอียดอื่น ๆ
  4. คลิกที่ใช้
  5. บันทึกมุมมอง

หวังว่านี่จะช่วยได้


0

จำนวนการดูผ่านการแสดงผลไปยังnode_view()ในกรณีนั้นและไม่เกี่ยวข้องกับมาร์กอัปสำหรับแถว

วิธีที่ง่ายที่สุดในการทำสิ่งที่คุณต้องการคือการนำไปใช้hook_preprocess_node()มองหามุมมองในบริบทปัจจุบันและหากโหนดกำลังแสดงผลเป็นส่วนหนึ่งของจอแสดงผลนั้นคุณสามารถทำการเปลี่ยนแปลงบางอย่าง

มาดูที่นี้:

function MYMODULE_preprocess_node(&$vars) {
  if (!empty($vars['view']) && $vars['view']->view_name == 'foo') {
    $nid = $vars['node']->nid;
    $vars['extra_link'] = l('Some text', "node/$nid");
  }
}

ในnode.tpl.phpไฟล์ของคุณคุณจะสามารถเข้าถึง$extra_link.

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