Squiz Matrix  4.12.2
 All Data Structures Namespaces Functions Variables Pages
design_area_searchbox_edit_fns.inc
1 <?php
17 require_once SQ_CORE_PACKAGE_PATH.'/designs/design_area/design_area_edit_fns.inc';
18 
32 {
33 
34 
39  function __construct()
40  {
41  parent::__construct();
42  $this->static_screens['details']['force_unlock'] = FALSE;
43 
44  }//end constructor
45 
46 
57  function paintBackendSearchPage(&$asset, &$o, $prefix)
58  {
59  if ($asset->writeAccess('attributes')) {
60  asset_finder($prefix.'_search_page', $asset->attr('search_page_assetid'), Array('search_page' => 'D'));
61  return TRUE;
62  } else {
63  $search_pageid = $asset->attr('search_page_assetid');
64  if ($search_pageid > 0) {
65  echo get_asset_tag_line($search_pageid);
66  } else {
67  echo translate('sch_no_search_page_specified');
68  }
69  return FALSE;
70  }
71 
72  }//end paintBackendSearchPage()
73 
74 
85  function processBackendSearchPage(&$asset, &$o, $prefix)
86  {
87  if (isset($_POST[$prefix.'_search_page']['assetid'])) {
88  if ($_POST[$prefix.'_search_page']['assetid'] > 0) {
89  $asset->setAttrValue('search_page_assetid', $_POST[$prefix.'_search_page']['assetid']);
90  } else {
91  $asset->setAttrValue('search_page_assetid', 0);
92  }
93  }
94  return TRUE;
95 
96  }//end processBackendSearchPage()
97 
98 
109  function paintBackendSubmitImage(&$asset, &$o, $prefix)
110  {
111  if ($asset->writeAccess('attributes')) {
112  asset_finder($prefix.'_submit_image', $asset->attr('submit_image_assetid'), Array('file' => 'D'));
113  return TRUE;
114  } else {
115  $submit_imageid = $asset->attr('submit_image_assetid');
116  if ($submit_imageid > 0) {
117  echo get_asset_tag_line($submit_imageid);
118  } else {
119  echo translate('sch_box_no_submit_image_specified');
120  }
121  return FALSE;
122  }
123 
124  }//end paintBackendSubmitImage()
125 
126 
137  function processBackendSubmitImage(&$asset, &$o, $prefix)
138  {
139  if (!isset($_POST[$prefix.'_submit_image']['assetid'])) {
140  return FALSE;
141  }
142 
143  if ($_POST[$prefix.'_submit_image']['assetid'] > 0) {
144  return $asset->setAttrValue('submit_image_assetid', $_POST[$prefix.'_submit_image']['assetid']);
145  } else {
146  return $asset->setAttrValue('submit_image_assetid', 0);
147  }
148 
149  }//end processBackendSubmitImage()
150 
151 
162  function paintSearchCategorySet(&$asset, &$o, $prefix)
163  {
164  if (!$asset->writeAccess('attributes')) {
165  echo $asset->attr('category_set');
166  return FALSE;
167  }
168 
169  $search_assetid = $asset->attr('search_page_assetid');
170  if (empty($search_assetid)) return FALSE;
171 
172  $search_page = $GLOBALS['SQ_SYSTEM']->am->getAsset($search_assetid);
173 
174  $categories[''] = '-- Please Select --';
175  foreach (array_keys($search_page->attr('categories')) as $category_id) {
176  $categories[$category_id] = $category_id;
177  }
178 
179  combo_box($prefix.'_category_set', $categories, FALSE, $asset->attr('category_set'));
180  return TRUE;
181 
182  }//end paintSearchCategorySet()
183 
184 
195  function processSearchCategorySet(&$asset, &$o, $prefix)
196  {
197  if (!$asset->writeAccess('attributes')) return FALSE;
198 
199  if (!isset($_POST[$prefix.'_category_set'])) {
200  return FALSE;
201  }
202 
203  $new_category_set = $_POST[$prefix.'_category_set'];
204 
205  // If we are changing the category then clear other category settings
206  if ($new_category_set != $asset->attr('category_set')) {
207  $asset->setAttrValue('category_show_empty', TRUE);
208  $asset->setAttrValue('category_default', '');
209  }
210  $asset->setAttrValue('category_set', $new_category_set);
211 
212  return TRUE;
213 
214  }//end processSearchCategorySet()
215 
216 
227  function paintSearchCategoryDefault(&$asset, &$o, $prefix)
228  {
229  $search_assetid = $asset->attr('search_page_assetid');
230  if (empty($search_assetid)) return FALSE;
231 
232  $search_page = $GLOBALS['SQ_SYSTEM']->am->getAsset($search_assetid);
233 
234  $categories = Array();
235  $category_sets = $search_page->attr('categories');
236  $category_set = $category_sets[$asset->attr('category_set')];
237 
238  if ($asset->attr('category_show_empty')) {
239  $categories[''] = $category_set['unselected_text'];
240  }
241 
242  foreach ($category_set['options'] as $category_id => $category_data) {
243  $categories[$category_id] = $category_data['full_name'];
244  }
245 
246  if (!$asset->writeAccess('attributes')) {
247  echo $categories[$asset->attr('category_default')];
248  return FALSE;
249  } else {
250  combo_box($prefix.'_category_default', $categories, FALSE, $asset->attr('category_default'));
251  }
252  return TRUE;
253 
254  }//end paintSearchCategoryDefault()
255 
256 
267  function processSearchCategoryDefault(&$asset, &$o, $prefix)
268  {
269  if (!$asset->writeAccess('attributes')) return FALSE;
270 
271  if (!isset($_POST[$prefix.'_category_default'])) {
272  return FALSE;
273  }
274 
275  $asset->setAttrValue('category_default', $_POST[$prefix.'_category_default']);
276  return TRUE;
277 
278  }//end processSearchCategoryDefault()
279 
280 
291  function paintSearchFieldName(&$asset, &$o, $prefix)
292  {
293  // TODO: This needs to be updated to better handle the multiple sources,
294  // it'd likely show yellow errors and 'unknown' for all of them
295  if ($asset->writeAccess('attributes')) {
296  $search_page = $GLOBALS['SQ_SYSTEM']->am->getAsset($asset->attr('search_page_assetid'));
297  $fields = $search_page->attr('fields');
298  if (is_scalar($fields)) {
299  $fields = unserialize($fields);
300  }
301 
302  $options = Array();
303  foreach ($fields as $field_name => $field) {
304  $field_description = $fields[$field_name];
305  $field_description = $field_name.' ';
306  $options[$field_name] = $field_description;
307  }
308 
309  if ($asset->attr('field_name') != array_keys($fields)) {
310  $options = array_merge(Array('' => 'None'), $options);
311  }
312  combo_box($prefix.'_field_name', $options, FALSE, $asset->attr('field_name'));
313  return TRUE;
314  } else {
315  echo $asset->attr('field_name');
316  return FALSE;
317  }
318 
319  }//end paintSearchFieldName()
320 
321 
332  function processSearchFieldName(&$asset, &$o, $prefix)
333  {
334  if (!isset($_POST[$prefix.'_field_name'])) {
335  return FALSE;
336  }
337 
338  return $asset->setAttrValue('field_name', $_POST[$prefix.'_field_name']);
339 
340  }//end processSearchFieldName()
341 
342 
354  function hasValidSearchPage(&$owner, $prefix)
355  {
356  $assetid = $owner->attr('search_page_assetid');
357  if (!$assetid) return FALSE;
358  $asset = $GLOBALS['SQ_SYSTEM']->am->getAsset($assetid);
359  if (!$asset->id) return FALSE;
360  return $asset->type() == 'search_page';
361 
362  }//end hasValidSearchPage()
363 
364 
376  function hasValidCategorySet(&$owner, $prefix)
377  {
378  if (!$this->hasValidSearchPage($owner, $prefix)) {
379  return FALSE;
380  }
381 
382  return $owner->attr('category_set') != '';
383 
384  }//end hasValidCategorySet()
385 
386 
398  function isSubmitButton(&$owner, $prefix)
399  {
400  return !$owner->attr('submit_button');
401 
402  }//end isSubmitButton()
403 
404 
405 }//end class
406 
407 ?>