Özel sayfa Drupal temiz URL'ler GET isteği

3 Cevap php

Ben temiz adresler kullanarak GET değerleri kabul gereken bir drupal sayfası (içerik türü sayfa) var.

Ben php kodu giriş biçimini kullanarak sayfa vücutta aşağıdaki kodu koyun.

<?php
  $uid = $_GET['uid'];
  $user = user_load($uid);
  print $user->name;
?>

Şimdi aşağıdaki linki kullanıcıya 5'in adı görüntülenmesi ile http://www.example.com/mypath/?uid=5 sonuç. Harika.

Benim soru: Bu temiz adresler kullanarak yapılabilir http://www.example.com/mypath/5 giden aynı sonucu böyle? (Görünümlerinde argümanları kullanarak benzer)

3 Cevap

Eğer bir modülde hook_menu kullanarak menü sisteminde sormak ne yapabilirim, ama bunun bir parçası bir isimdir bir ad oluşturmak olamaz. Bütün takma bir isim olduğunu, bu yüzden ondan bilgi ayıklamak olamaz. hook_menu bunu yapabilirsiniz:

function my_module_menu() {
  $items = array();

  $items['path/%user'] = array(
    'title' => 'Title',
    'page callback' => 'callback',
    'page arguments' => array(1),
    'access callback' => '...',
    'access arguments' => array(...),
  );

  return $items;
}

Sonra geri arama işlevi ile kullanıcı kimliği ile karşılık yolunda değer veya argüman 1 olacak (gerçekte çünkü yüklü bir kullanıcı nesnesi olacak %user).

Evet. Yerine $ _GET ve arg () kullanın

Arg () varsayılan olarak $ _GET ['q'] kullanır ve böylece etkili sonucu dönmeden önce bir takma ad çevirir unutmayın. Böylece, erişmeye çalıştığınız parametre başka bir konumda olabilir.

Örneğin, yol / 5 taxonomy/term/5 çevirmek olabilir myalias. Bu durumda, arg (2) 5'dir.

Drupal arg () işlevi hakkında daha fazla bilgi için, bkz: http://api.drupal.org/api/function/arg/6

Eğer bu sayfaları araya Görüntüleme kullanırsanız, o kısım URL sağlanan bir argüman olarak kimliğini koyarak sizin için kolayca yapılabilir.