Score:0

ฉันจะพิมพ์ชื่อที่แสดงได้อย่างไร

ธง us

ฉันมีมุมมองที่มีหลายหน้า ในอินเทอร์เฟซ Views ฉันสามารถตั้งชื่อที่แสดงสำหรับแต่ละจอแสดงผลได้

ภาพหน้าจอ

ฉันสามารถพิมพ์ชื่อนี้ในมุมมองได้หรือไม่ เช่น เพิ่ม a ข้อความสากล ฟิลด์ไปยังส่วนหัวของมุมมอง?

Score:0
ธง de

ใน Drupal 7 ช่อง "Global: สรุปผลลัพธ์" ในส่วนหัวของ Views จะให้โทเค็นสองสามอย่างแก่คุณเพื่อเข้าถึงข้อมูลมุมมองบางส่วน (เช่น มีโทเค็นชื่อ @name -- ชื่อมุมมองที่มนุษย์สามารถอ่านได้ เพื่อพิมพ์ชื่อ View)

สำหรับการดึงชื่อที่แสดงของ View คุณต้องสร้างตัวจัดการ Views แบบกำหนดเองเพื่อกำหนดโทเค็นของคุณเอง:

  • สร้างโมดูลใหม่ ในของคุณ my_module_name.info ไฟล์ เพิ่มบรรทัด:
    การพึ่งพา [] = มุมมอง

    ไฟล์ [] = ตัวจัดการ/views_handler_my_custom_handler.inc
  • ในของคุณ my_module.module ไฟล์ เพิ่ม hook_views_data():
    ฟังก์ชัน my_module_views_data() {
        // คำจำกัดความของตัวจัดการแบบกำหนดเองของคุณ
        $data['views']['my_module_custom_handler'] = อาร์เรย์(
            'title' => t('ตัวจัดการแบบกำหนดเองของฉัน'),
            'help' => t('โทเค็นแบบกำหนดเองเพื่อเข้าถึงข้อมูลการดู'),
            'พื้นที่' => อาร์เรย์(
                'handler' => 'views_handler_my_custom_handler',
            ),
        );
        ส่งคืน $data;
    }
  • ในที่สุดสร้าง ตัวจัดการ/views_handler_my_custom_handler.inc ไฟล์. เนื้อหาพื้นฐานที่สุดตามความต้องการของคุณจะเป็นเช่น:

/**
 * @ไฟล์
 * คำจำกัดความของ views_handler_area
 */

/**
 * ดูตัวจัดการพื้นที่เพื่อแสดงสรุปผลลัพธ์ที่กำหนดค่าได้
 *
 * @ingroup views_area_handlers
 */
class views_handler_my_custom_handler ขยาย view_handler_area {

    ฟังก์ชั่น option_definition () {
        $options = parent::option_definition();
        $options['content'] = อาร์เรย์(
            'default' => 'กำลังแสดงโทเค็นการดู',
            'แปลได้' => จริง,
        );
        กลับตัวเลือก $;
    }

    ฟังก์ชัน options_form(&$form, &$form_state) {
        parent::options_form($form, $form_state);

        $ตัวแปร = อาร์เรย์(
            'รายการ' => อาร์เรย์ (
                '@display_name -- ชื่อของ View display'
            ),
        );
        $list = theme('item_list', $variables);
        $form['content'] = อาร์เรย์(
            '#title' => t('แสดง'),
            '#type' => 'textarea',
            '#rows' => 3,
            '#default_value' => $this->options['content'],
            '#description' => t('คุณสามารถใช้รหัส HTML ในฟิลด์นี้ได้ รองรับโทเค็นต่อไปนี้:') รายการ $
        );
    }

    /**
     * ค้นหาข้อมูลที่จะแสดงผล
     */
    ฟังก์ชันแสดงผล ($empty = FALSE) {
        $format = $this->options['เนื้อหา'];
        // แทนที่ "@display_name" ด้วยดูค่าที่แสดงปัจจุบัน
        $output = filter_xss_admin(str_replace("@display_name", $this->view->current_display, $format));
        ส่งคืน $output;
    }

แค่นั้นแหละ. ขณะนี้ตัวจัดการมุมมองที่กำหนดเองของคุณควรจะพร้อมใช้งานในมุมมองใดก็ได้

ฉันแนะนำให้คุณดูที่ไฟล์ view_handler_area_result.inc (รหัสสำหรับฟิลด์ "ทั่วโลก: สรุปผลลัพธ์") ในโมดูล Views หากคุณต้องการขยายให้มีโทเค็นในตัวจัดการที่กำหนดเองของคุณ

big_smile avatar
us flag
ขอบคุณ! ดูเหมือนว่าจะพิมพ์ชื่อของ View แทนที่จะเป็นชื่อที่แสดงของเพจ เช่น. มุมมองเรียกว่า "ดัชนี" และในมุมมองนั้น คุณสร้างเพจหลายเพจ ซึ่งแต่ละเพจมีชื่อที่ใช้แสดงต่างกัน `@name` พิมพ์ `ดัชนี` แทนที่จะเป็นชื่อที่แสดงของเพจ
misterdidi avatar
de flag
แย่แล้ว คุณพูดถูกจริงๆ! โทเค็นมุมมองพื้นฐานไม่เพียงพอสำหรับสิ่งที่คุณต้องการ โปรดดูคำตอบที่แก้ไขของฉัน

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา