? advanced_page_title.patch Index: page_title.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/page_title/page_title.module,v retrieving revision 1.2.2.10 diff -u -r1.2.2.10 page_title.module --- page_title.module 3 Aug 2007 06:52:10 -0000 1.2.2.10 +++ page_title.module 31 Jul 2008 07:26:14 -0000 @@ -82,6 +82,22 @@ '#maxlength' => 128, '#description' => t('Available placeholders: !site_name, !site_slogan.'), ); + + $form['page_title']['advanced'] = array( + '#type' => 'fieldset', + '#title' => t('Advanced path based settings'), + '#collapsible' => true, + '#collapsed' => true, + + ); + + $form['page_title']['advanced']['page_title_advanced'] = array( + '#type' => 'textarea', + '#rows' => 15, + '#description' => t('Enter advanced rules in the form: pathpattern==titlepattern' . " where pathpattern is the path in the browser (not the drupal menu path)\n" . " for instance stories/*==!page_title is a story"), + '#default_value' => variable_get('page_title_advanced', ''), + ); + return system_settings_form($form); } @@ -178,6 +194,7 @@ static $title = NULL; if (is_null($title)) { + $page_title_individual = variable_get('page_title_individual', '!page_title | !site_name'); $page_title_front = variable_get('page_title_front', '!site_name | !site_slogan'); @@ -191,6 +208,19 @@ $site_name = variable_get('site_name', 'drupal'); $site_slogan = variable_get('site_slogan', ''); + if ($page_title_advanced = variable_get('page_title_advanced','')) { + $advanced_patterns = explode("\n",$page_title_advanced); + foreach ($advanced_patterns as $pattern) { + list($path,$title_pattern) = explode('==',$pattern); + if ($path && $title_pattern) { + if (ereg($path,$_SERVER['REQUEST_URI'])) { + $title = t($title_pattern, array('!page_title' => $page_title, '!site_name' => $site_name, '!site_slogan' => $site_slogan)); + return $title; + } + } + } + } + if (drupal_is_front_page() || !$drupal_title) { $title = t($page_title_front, array('!site_name' => $site_name, '!site_slogan' => $site_slogan)); }