Как сделать path как параметр?

Главные вкладки

Аватар пользователя kuzyakiev kuzyakiev 11 ноября 2009 в 5:12

Как сделать что бы все страницы www.example.com/sort/* приходили как параметры в конкретный файл.
Напр
www.example.com/sort/age:26/
www.example.com/sort/age:26-35/
www.example.com/sort/age:26-35/height:165-185/
www.example.com/sort/age:22/height:165-185/english/
www.example.com/sort/age:22/height:165-185/english/male/
Адрес каждого из примеров ведет в sort.php с масивом params, соотв.

Вопрос: Есть ли модуль который поможет это все реализовать, если нет то что читать что бы написать свой функционал. Спасибо

Комментарии

Аватар пользователя Химический Али Химический Али 11 ноября 2009 в 9:36

В sort.php подгрузи ядро друпала и разбирай парамерты как душеньке угодно.

Подгрузка ядра у себя в скрипте:

<?php
require 'includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
?>

Разбор параметров:

http://api.drupal.org/api/function/arg

Аватар пользователя sadmin sadmin 11 ноября 2009 в 14:22

"Химический Али" wrote:
В sort.php подгрузи ядро друпала и разбирай парамерты как душеньке угодно.

интересное решение

Аватар пользователя kuzyakiev kuzyakiev 11 ноября 2009 в 21:24

Пока добился результата изменением index.php, но мне кажется что это достаточно кривой способ. Так что ищу методы по лучше)

require_once './includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
 
$return = menu_execute_active_handler();

// my modification
$arg = arg();
if("models"==$arg[0]){
    $return = menu_execute_active_handler(drupal_get_normal_path("models"));
    print theme('page', $return);
}                                
// Menu status constants are integers; page content is a string.
elseif (is_int($return)) {
  switch ($return) {
    case MENU_NOT_FOUND:
      drupal_not_found();
      break;
    case MENU_ACCESS_DENIED:
      drupal_access_denied();
      break;
    case MENU_SITE_OFFLINE:
      drupal_site_offline();
      break;
  }
}
elseif (isset($return)) {
  // Print any value (including an empty string) except NULL or undefined:
  print theme('page', $return);
}

drupal_page_footer();

Аватар пользователя kuzyakiev kuzyakiev 12 ноября 2009 в 20:21

2Химический:
Результат не стоит затраченного времени. Наверное когда мой общий уровень знаний друпала будет выше я под свои цели буду писать модули