Drupal Modül Geliştirme hook_menu () Yarı Statik Sayfalar için

1 Cevap php

Ben kesinlikle bir form değil bir sayfa var ama ben bir dış kaynak ve ekran (örn. kampüs ve erişilebilirlik bilgilere binaların listesi) veri yüklemek için bazı geri arama işlevleri kullanmak gerekir.

Ne için bir ihtiyaç var bir açılış ilan sayfası (listeler tüm binalar) ve bir 'görünümü ayrı yapı' sayfası. Ayrıca, ben size öğrenci kimliği yumruk ve test prosedürleri hakkında bilgi görüntülemek bir sayfa var. Ve nihayet temelde (ben geçmişte daha önce başarıyla yapmış) bir şeklidir bir sayfa var.

Şimdi, HAD bina listesi çalışma, ancak ben küçük bir değişiklik yapılmış ve bu çalışma durdu!

Şu anda benim hook_menu () fonksiyonu aşağıdaki gibi görünür:

<?php
/**
 * Implementation of hook_menu()
 */
function disability_menu()
{
    $items = array();

    // Ignore me, shell
    $items['quickreg'] = array(
        'title' => 'Quick Registration',
        'description' => t(''),

        'page callback' => 'drupal_get_form',
        'page arguments' => array(),
        'file' => 'disability.quickreg.view.inc',

        'access arguments' => array('access quick registration system'),

        'type' => MENU_SUGGESTED_ITEM,
    );

    $items['tests/status'] = array(
        'title' => 'Test Status Results',
        'description' => t('Check on the status of your tests'),

        'page callback' => 'disability_view_testing_status',
        'page arguments' => array(),
        'file' => 'disability.tests.view.inc',

        'access arguments' => array('access test check information'),

        'type' => MENU_CALLBACK,
    );

    $items['tests'] = array(
        'title' => 'Testing Services',
        'description' => t('Check on the status of your tests'),

        'page callback' => 'disability_view_testing',
        'page arguments' => array(),
        'file' => 'disability.tests.view.inc',

        'access arguments' => array('access test check information'),

        'type' => MENU_SUGGESTED_ITEM,
    );

    $items['access/%building'] = array(
        'title' => 'Campus Accessibility Guide',
        'description' => t('A summary list of detailed accessibliity information about each building on the A&M campus'),

        'page callback' => 'disability_view_access',
        'page arguments' => array(1),
        'file' => 'disability.access.view.inc',

        'access arguments' => array('access building access information'),

        'type' => MENU_SUGGESTED_ITEM,
    );

    return $items;
}

Bazı değişiklikten önce ben "Kampüs Erişilebilirlik Kılavuzu" (tabii etkin sonra) düzgün sırıtmak için menü öğesi yapmış olmalısınız. /access url bir bütün bina listesini ve /access/12345 doğru ID # 12345 tek bir kayıt görüntülemek istiyorsunuz görüntüleyen düzgün çalışmaya devam eder.

Şimdi access/%building menü girişi bile görünmüyor ve hatta (bana kimliği için something geçen düşünüyorum yapan bir yönlendirme döngü içine url /access gönderme hangi /access iken kimliği) yok yönlendirir görünümü belirli bir işlev içine gönderir.

Herkes 2 temalı sayfalarını desteklemek için yapmanız gereken ne yanlış ne yapıyorum söyle ya da yapabilirsiniz: /access ve /access/%building url desen?

1 Cevap

Eğer url üzerinde hareket etmek istediğiniz bir işlevi var iken sadece adresler de% adı yerine% kullanmalısınız. Drupal tüm kullanıcı ve düğüm yerde yapar, ve sadece tek bir yerde, bir kullanıcı veya bir düğüm yüklemek için kodu olması gerekir gibi bu, çok akıllı, ama yerlerde bir sürü alışmak. Bu durumda ben bu binayı yüklemek için bir işlevi yapmak için biraz overkill bahse girerim. Öte yandan avantajı hiçbir nesne bulunabilir eğer bunu bu şekilde yapıyor, sen, 404 deste olmasıdır. En iyi çözüm gerçekten yok binaları nasıl işlemek istediğinizi aşağı gelir. Hatta 'Kampüs Erişilebilirlik Kılavuzu' işlevi iki seçenek daha fazla veya daha az eşit kılacak 404 başa yapabilir. Ben yapmak için en kolay ne olursa olsun gitmek istiyorum.