Path dinámicos

Hace algún tiempo atrás, trabaje en un modulo que debía manejar diversas URL que tuviesen un mismo patrón.

Por Ejemplo:

http://www.miwebsite.com/cars/red/automatico/
http://www.miwebsite.com/cars/blue/manual/
http://www.miwebsite.com/car/volvo/a1.html
http://www.miwebsite.com/car/audi/3S1.html

En si manejar estas diversas URL no tiene mayor complejidad, si somos programadores podemos invocar a nuestro santo patrono san hook_menu y problema resuelto, el único problema es que deberás regenerar los menus cada vez que modifiques esto para que el menu api tome los cambios.

¿Pero que pasa cuando nuestro cliente nos dice que quiere que estos patrones sean dinámicos y ademas customizables por el equipo de contenido?

Una respuesta valida es (foca madre) pero no muy políticamente correcta, pero como nosotros somo buenos profesionales nos quedamos horas extra y resolvimos el problema.

$allowPaths = split("\n",variable_get('mis_paths',''));
 foreach($allowPaths as $path){
 $items[trim($path).'/%'] = array(
  'title' => 'Mi Titulo',
  'page callback' => 'mifuncion_handler',
  'page arguments' => array(),
  'access arguments' => array('access mimodulo'),
  'type' => MENU_CALLBACK,
  );
 }

Estas lineas de código deben ponerlas en el hook_menu y proveer a la variable $allowPaths de un array de url para que las agregue a drupal como url validas, y para redondear esto agregamos a nuestro modulo un formulario de administración para ingresar las url a nuestro menú de forma rápida y en el método de accion del formulario agregamos esta linea:

function mymodule_dynamicform_submit() {
 menu_router_build()
...
}