1
votes

I have a simple view that feeds a home page. I have a custom module that registers some specific URLs in hook_menu that I pass into my module so I can pass them as arguments into the view.

I can get the module to display the view all right, but it doesn't use the teaser/is_front view that outputs when I access the home page. I looked through the APIs but I can't seem to figure out how I can output the view via my module as if it's the front page, meaning $is_front is true and the teasers would appear.

The reason I'm not passing in the arguments via the URL bar into the view itself is:

  • My argument list is known and finite
  • The argument order is mixed, meaning I will sometimes have /argument1, /argument1/argument2 or just /argument2.
  • I only want to capture the first level URL as an argument for specific, known strings (e.g. I don't want to pass /admin into my view but I do want to pass in /los-angeles, which I register in the menu system via hook_menu in my module)

Here are some examples to make this more clear:

  • /admin - loads the admin page
  • /user - loads the login page
  • /boston - passes into the first argument of the view; shows in front/teaser mode
  • / - shows view with no arguments
  • /bread - passes into argument 2 of the view; shows in front/teaser mode
  • /boston/bread - Passes into argument 1 and 2 of the view; shows in front/teaser mode

Maybe I'm going about this the wrong way? Or perhaps there is a way to have a module load a view and somehow set front/teaser mode?

Details: Drupal 6, PHP 5, MySQL 5, Views, CCK

1

1 Answers

0
votes

This is just a wild guess but with the Panels module you can work with views and pass arguments easily. Panels can override paths as well.