/[drupal]/contributions/modules/page_title/page_title.admin.inc
ViewVC logotype

Contents of /contributions/modules/page_title/page_title.admin.inc

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.4 - (show annotations) (download) (as text)
Sat Oct 31 14:02:28 2009 UTC (3 weeks, 6 days ago) by njt1982
Branch: MAIN
CVS Tags: HEAD
Branch point for: DRUPAL-7--2, DRUPAL-7--1
Changes since 1.3: +25 -5 lines
File MIME type: text/x-php
More work to make Page Title compatible with Drupal 7
1 <?php
2 // $Id: page_title.admin.inc,v 1.3 2009/10/29 18:11:19 njt1982 Exp $
3
4 /**
5 * @file
6 * Admin include file.
7 */
8
9 /**
10 * Displays the form for the standard settings tab.
11 *
12 * @return
13 * array A structured array for use with Forms API.
14 */
15 function page_title_admin_settings() {
16 // Define a default looking 'form element' for setting.
17 $showfield_form_element = array('#type' => 'checkbox', );
18
19
20 // Define a default looking 'form element' for setting.
21 $pattern_form_element = array(
22 '#type' => 'textfield',
23 '#size' => 30,
24 '#maxlength' => 256,
25 );
26
27
28 // Define the basic scope column values
29 $form['patterns']['scope'] = array(
30 'page_title_default' => array('#markup' => t('Global Only'),),
31 'page_title_front' => array('#markup' => t('Global Only'),),
32 'page_title_user' => array('#markup' => t('User'),),
33 );
34
35 // Define the 'default' token patterns
36 $form['patterns']['pattern'] = array(
37 'page_title_default' => array(
38 '#title' => t('Default'),
39 '#default_value' => variable_get('page_title_default', '[site:page-title] | [site:name]'),
40 '#required' => TRUE,
41 ) + $pattern_form_element,
42 'page_title_front' => array(
43 '#title' => t('Frontpage'),
44 '#default_value' => variable_get('page_title_front', '[site:name] | [site:slogan]'),
45 ) + $pattern_form_element,
46 'page_title_user' => array(
47 '#title' => t('User Profile'),
48 '#default_value' => variable_get('page_title_user', ''),
49 ) + $pattern_form_element,
50 );
51
52
53 // Define the "showfield" checkbox for the user profile page
54 $form['patterns']['showfield']['page_title_user_showfield'] = array(
55 '#default_value' => variable_get('page_title_user_showfield', 0),
56 ) + $showfield_form_element;
57
58
59 // Definate the patterns per-node-type
60 $types = node_type_get_types();
61 foreach ($types as $type) {
62 // Define the node-type key
63 $key = 'page_title_type_'. $type->type;
64
65 // Pattern entry
66 $form['patterns']['pattern'][$key] = array(
67 '#title' => t('Content Type - %type', array('%type' => $type->name)),
68 '#default_value' => variable_get($key, ''),
69 ) + $pattern_form_element;
70
71 $form['patterns']['showfield'][$key .'_showfield'] = array(
72 '#default_value' => variable_get($key .'_showfield', 0),
73 ) + $showfield_form_element;
74
75 $form['patterns']['scope'][$key] = array('#markup' => t('Node'),);
76 }
77
78
79 // Definate the patterns per-vocab-type - if Taxonomy Module is enabled
80 if (module_exists('taxonomy')) {
81 $vocabs = taxonomy_get_vocabularies();
82 foreach ($vocabs as $vocab) {
83 // Define the vocab key
84 $key = 'page_title_vocab_'. $vocab->vid;
85
86 // Pattern entry
87 $form['patterns']['pattern'][$key] = array(
88 '#title' => t('Vocabulary - %vocab_name', array('%vocab_name' => $vocab->name)),
89 '#default_value' => variable_get($key, ''),
90 ) + $pattern_form_element;
91
92 $form['patterns']['showfield'][$key .'_showfield'] = array(
93 '#default_value' => variable_get($key .'_showfield', 0),
94 ) + $showfield_form_element;
95
96 $form['patterns']['scope'][$key] = array('#markup' => t('Taxonomy'),);
97 }
98 }
99
100 // Add the blog homepage pattern field
101 if (module_exists('blog')) {
102 $key = 'page_title_blog';
103 $form['patterns']['pattern'][$key] = array(
104 '#title' => t('Blog Homepage'),
105 '#default_value' => variable_get($key, ''),
106 ) + $pattern_form_element;
107
108 $form['patterns']['scope'][$key] = array('#markup' => t('User'),);
109 }
110
111 // Define the page pattern text field. This is appended to any page requests containing 'page=[0-9]+' in the query string
112 $form['page_title_pager_pattern'] = array(
113 '#type' => 'textfield',
114 '#title' => t('Pattern for pages that contain a pager'),
115 '#default_value' => variable_get('page_title_pager_pattern', ''),
116 '#description' => t('This pattern will be appended to a page title for any given page with a pager on it'),
117 );
118
119 // Add the token help to a collapsed fieldset at the end of the configuration page.
120 $form['token_help'] = array(
121 '#type' => 'fieldset',
122 '#title' => t('Available Tokens List'),
123 '#collapsible' => TRUE,
124 '#collapsed' => TRUE,
125 );
126 $form['token_help']['content'] = array(
127 '#markup' => theme('page_title_token_help'),
128 );
129
130
131 $form = system_settings_form($form);
132 unset($form['#theme']);
133 return $form;
134 }
135
136
137 function theme_page_title_admin_settings($variables) {
138 $form = $variables['form'];
139 $rows = array();
140 foreach (element_children($form['patterns']['pattern']) as $key) {
141 $title = array(
142 '#markup' => $form['patterns']['pattern'][$key]['#title'],
143 '#required' => $form['patterns']['pattern'][$key]['#required'],
144 );
145 unset($form['patterns']['pattern'][$key]['#title']);
146 $row = array(
147 render($title),
148 render($form['patterns']['scope'][$key]),
149 render($form['patterns']['pattern'][$key]),
150 isset($form['patterns']['showfield'][$key .'_showfield']) ? render($form['patterns']['showfield'][$key .'_showfield']) : '',
151 );
152 $rows[] = $row;
153 }
154
155 $output = theme('table', array('header' => array(t('Page Type'), t('Token Scope'), t('Pattern'), t('Show Field')), 'rows' => $rows));
156 $output .= drupal_render_children($form);
157 return $output;
158 }
159
160
161 /**
162 * An internal theme function to render the tokens to help the user. NOTE: Why is this not a core theme function?!
163 */
164 function theme_page_title_token_help() {
165 $token_info = token_info();
166
167 $output = '<p>'. t('Available tokens are:') .'</p>';
168 $output .= '<dl>';
169 // TODO: Sort out user:user token help... we cant do nested tokens this way. Recursive token_help theme function needed?
170 foreach(array('node', 'term', 'vocabulary', 'site', 'date') as $key) {
171 $output .= "<dt><strong>{$token_info['types'][$key]['name']}</strong> - {$token_info['types'][$key]['description']}</dt>";
172 $token_pairs = array();
173 foreach ($token_info['tokens'][$key] as $token => $info) {
174 $token_pairs[] = "<code>[{$key}:{$token}]</code> - {$info['name']}";
175 }
176 $output .= '<dd>'. theme('item_list', array('items' => $token_pairs)) .'</dd>';
177 }
178 $output .= '</dl>';
179 return $output;
180 }

  ViewVC Help
Powered by ViewVC 1.1.2