I'm testing out the functionality of Panels, and am having a problem. I'm running Panels 3.7 and creating a panels page with two arguments. It previews properly, but when I try to check the URL, http://www.example.com/arg1/arg2, I get a page not found error. I'm testing as user 1 in a pretty basic Drupal install (although I am using embedded video) using the Acquia Prosper theme.

Any suggestions about how to solve this problem?

Thanks very much!

Tim

Comments

merlinofchaos’s picture

I would need to see an export of the page to help troubleshoot what might be wrong.

Though one thing I'll note is that your URL seems to be missing a first part. Drupal's path system does not support a variable component for the first part of a URL. i.e, http://example.com/arg isn't really possible with Panels without doing some clever URL rewriting tricks.

merlinofchaos’s picture

Status: Active » Fixed

I suspect I've actually answered this, but if I'm wrong and this needs further exploration, please attach your page and set this back to active.

kinnel’s picture

Status: Fixed » Active

Thanks for looking at this, Earl - you rock.

I added a static URL element at the beginning of the path, but I still get no page found. The two arguments are each taxonomy terms from different vocabularies, if that makes a difference.

Here's the page export:


$page = new stdClass;
$page->disabled = FALSE; /* Edit this to true to make a default page disabled initially */
$page->api_version = 1;
$page->name = 'product_page';
$page->task = 'page';
$page->admin_title = 'Product Page';
$page->admin_description = '';
$page->path = 'learn/%productline/%platform';
$page->access = array(
  'plugins' => array(),
  'logic' => 'and',
);
$page->menu = array(
  'type' => 'none',
  'title' => '%productline',
  'name' => 'primary-links',
  'weight' => '0',
  'parent' => array(
    'type' => 'none',
    'title' => '',
    'name' => 'navigation',
    'weight' => '0',
  ),
);
$page->arguments = array(
  'productline' => array(
    'id' => 1,
    'identifier' => 'Taxonomy term: Product line',
    'name' => 'term',
    'settings' => array(
      'input_form' => 'term',
      'vids' => array(
        2 => 2,
        1 => 0,
        4 => 0,
        3 => 0,
      ),
      'breadcrumb' => 0,
    ),
  ),
  'platform' => array(
    'id' => 2,
    'identifier' => 'Taxonomy term: Platform',
    'name' => 'term',
    'settings' => array(
      'input_form' => 'term',
      'vids' => array(
        3 => 3,
        1 => 0,
        4 => 0,
        2 => 0,
      ),
      'breadcrumb' => 1,
    ),
  ),
);
$page->conf = array();
$page->default_handlers = array();
$handler = new stdClass;
$handler->disabled = FALSE; /* Edit this to true to make a default handler disabled initially */
$handler->api_version = 1;
$handler->name = 'page_product_page_panel_context';
$handler->task = 'page';
$handler->subtask = 'product_page';
$handler->handler = 'panel_context';
$handler->weight = 0;
$handler->conf = array(
  'title' => 'Product Page Panel',
  'no_blocks' => 0,
  'pipeline' => 'standard',
  'css_id' => '',
  'css' => '',
  'contexts' => array(),
  'relationships' => array(),
);
$display = new panels_display;
$display->api_version = 1;
$display->layout = 'twocol_stacked';
$display->layout_settings = array();
$display->panel_settings = array(
  'style_settings' => array(
    'default' => NULL,
    'center' => NULL,
    'top' => NULL,
    'left' => NULL,
    'right' => NULL,
    'bottom' => NULL,
  ),
);
$display->cache = array();
$display->title = '';
$display->content = array();
$display->panels = array();
  $pane = new stdClass;
  $pane->api_version = 1;
  $pane->pid = 'new-1';
  $pane->panel = 'left';
  $pane->type = 'views';
  $pane->subtype = 'product_line_features';
  $pane->shown = TRUE;
  $pane->access = array();
  $pane->configuration = array(
    'override_pager_settings' => 0,
    'use_pager' => 0,
    'nodes_per_page' => '10',
    'pager_id' => '',
    'offset' => '0',
    'more_link' => 0,
    'feed_icons' => 0,
    'panel_args' => 1,
    'link_to_view' => 0,
    'args' => '',
    'url' => '',
    'display' => 'block_1',
    'context' => array(
      0 => 'argument_term_1.name',
    ),
    'override_title' => 0,
    'override_title_text' => '',
  );
  $pane->cache = array();
  $pane->style = array(
    'settings' => NULL,
  );
  $pane->css = array();
  $pane->extras = array();
  $pane->position = 0;
  $display->content['new-1'] = $pane;
  $display->panels['left'][0] = 'new-1';
  $pane = new stdClass;
  $pane->api_version = 1;
  $pane->pid = 'new-2';
  $pane->panel = 'right';
  $pane->type = 'views';
  $pane->subtype = 'product_platform_details';
  $pane->shown = TRUE;
  $pane->access = array();
  $pane->configuration = array(
    'override_pager_settings' => 0,
    'use_pager' => 0,
    'nodes_per_page' => '10',
    'pager_id' => '',
    'offset' => '0',
    'more_link' => 0,
    'feed_icons' => 0,
    'panel_args' => 0,
    'link_to_view' => 0,
    'args' => '',
    'url' => '',
    'display' => 'default',
    'context' => array(
      0 => 'argument_term_1.name',
      1 => 'argument_term_2.name',
    ),
    'override_title' => 0,
    'override_title_text' => '',
  );
  $pane->cache = array();
  $pane->style = array(
    'settings' => NULL,
  );
  $pane->css = array();
  $pane->extras = array();
  $pane->position = 0;
  $display->content['new-2'] = $pane;
  $display->panels['right'][0] = 'new-2';
  $pane = new stdClass;
  $pane->api_version = 1;
  $pane->pid = 'new-3';
  $pane->panel = 'top';
  $pane->type = 'views';
  $pane->subtype = 'product_line_features';
  $pane->shown = TRUE;
  $pane->access = array();
  $pane->configuration = array(
    'override_pager_settings' => 0,
    'use_pager' => 0,
    'nodes_per_page' => '10',
    'pager_id' => '',
    'offset' => '0',
    'more_link' => 0,
    'feed_icons' => 0,
    'panel_args' => 1,
    'link_to_view' => 0,
    'args' => '',
    'url' => '',
    'display' => 'block_2',
    'context' => array(
      0 => 'argument_term_1.name',
    ),
    'override_title' => 0,
    'override_title_text' => '',
  );
  $pane->cache = array();
  $pane->style = array(
    'settings' => NULL,
  );
  $pane->css = array();
  $pane->extras = array();
  $pane->position = 0;
  $display->content['new-3'] = $pane;
  $display->panels['top'][0] = 'new-3';
$display->hide_title = PANELS_TITLE_NONE;
$display->title_pane = '0';
$handler->conf['display'] = $display;
$page->default_handlers[$handler->name] = $handler;
merlinofchaos’s picture

Status: Active » Fixed

Hmm. I don't see anything obvious as to why it might not be working. The argument you're using requires that the term be an exact name match (should be case insensitive if using mysql, but spaces and special characters in the term such as & could be a problem depending upon the term) can cause the argument to not validate and this 404. Doublecheck that and let me know if it's the problem?

If it's not...I guess I can try and import that page and recreate. I've actually got a test page that's quite similar, but I use tids not terms. (And it might be worth testing by changing the argument input types to see if tids work and terms don't).

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.