CMS  Version 3.9
TemplateSelectFieldRenderer Class Reference

Inherits SelectFieldRenderer.

Public Member Functions

 TemplateSelectFieldRenderer (&$form, $field, $label, $mode="site", $onChange="")
 
 readFiles ($home, $dir="")
 
 renderScript ($field)
 

Public Attributes

 $mode = "site"
 Dynamic update mode, either 'site', 'theme' or 'none'. More...
 
 $site_id = 0
 

Static Public Attributes

static $templateMapWritten = false
 

Detailed Description

Definition at line 43 of file template_select_field_renderer.inc.

Member Function Documentation

◆ readFiles()

TemplateSelectFieldRenderer::readFiles (   $home,
  $dir = "" 
)

Definition at line 122 of file template_select_field_renderer.inc.

123  {
124  trace("Scanning Templates", 3);
125 
126  $options = array();
127 
128  $folders = array("$dir");
129 
130  while(($dir = array_shift($folders)) !== null)
131  {
132  $path = "$home/$dir";
133 
134  trace("Reading $path", 3);
135 
136  $handle = opendir($path);
137  while(false !== ($file = readdir($handle)))
138  {
139  trace("Checking $file", 4);
140 
141  if ($file != "." &&
142  $file != ".." &&
143  $file != ".svn" &&
144  $file != "CVS")
145  {
146  $f = "$path/$file";
147  $l = ($dir != '') ? "$dir/$file" : $file;
148 
149  if (is_dir($f))
150  {
151  array_push($folders, $l);
152  }
153  else if (preg_match('/.tpl$/i', $file))
154  {
155  $options[$l] = $l;
156  }
157  }
158  }
159  closedir($handle);
160  }
161  return $options;
162  }
if(! $page) $path
Definition: page.inc:57
$dir
Definition: delete.inc:44
$file
Definition: delete.inc:47
$f
Definition: download.inc:46

◆ renderScript()

TemplateSelectFieldRenderer::renderScript (   $field)

Definition at line 164 of file template_select_field_renderer.inc.

165  {
167  {
168 ?>
169 <script type='text/javascript'>
170 var TemplateSelectFieldRenderer_templateMap = <?echo json_encode($this->buildTemplateMap());?>;
171 </script>
172 <?
174  }
175 
176  switch($this->mode)
177  {
178  case "site":
179 
180  if ($this->parent->data->hasField("site_id"))
181  {
182 ?>
183 <script type='text/javascript'>
184 window.addEvent('domready', function()
185 {
186  var siteSelect = document.id("<?echo $this->parent->id?>_site_id");
187  siteSelect.addEvent('change', function()
188  {
189  var site_id = siteSelect.value;
190  var templateSelect = document.id("<?echo $this->parent->id?>_<?echo $field?>");
191  var val = templateSelect.value;
192 
193  var html = "";
194 
195  var options = TemplateSelectFieldRenderer_templateMap[site_id];
196  for (var o in options)
197  {
198  if (o == val)
199  {
200  html += "<option value='" + o + "' selected='selected'>" + o + "</option>";
201  }
202  else
203  {
204  html += "<option value='" + o + "'>" + o + "</option>";
205  }
206  }
207 
208  templateSelect.set('html', html);
209  });
210 });
211 </script>
212 <?
213  }
214  break;
215 
216  case "theme":
217 
218  if ($this->parent->data->hasField("theme"))
219  {
220 ?>
221 <script type='text/javascript'>
222 window.addEvent('domready', function()
223 {
224  var themeSelect = document.id("<?echo $this->parent->id?>_theme");
225  themeSelect.addEvent('change', function()
226  {
227  var theme = themeSelect.value;
228  var templateSelect = document.id("<?echo $this->parent->id?>_<?echo $field?>");
229  var val = templateSelect.value;
230 
231  var html = "";
232 
233  var options = TemplateSelectFieldRenderer_templateMap[theme];
234  for (var o in options)
235  {
236  if (o == val)
237  {
238  html += "<option value='" + o + "' selected='selected'>" + o + "</option>";
239  }
240  else
241  {
242  html += "<option value='" + o + "'>" + o + "</option>";
243  }
244  }
245 
246  templateSelect.set('html', html);
247  });
248 });
249 </script>
250 <?
251  }
252  break;
253 
254  case "none":
255  default:
256  break;
257  }
258 
259  return parent::renderScript(field);
260  }
$table mode
$openData field

◆ TemplateSelectFieldRenderer()

TemplateSelectFieldRenderer::TemplateSelectFieldRenderer ( $form,
  $field,
  $label,
  $mode = "site",
  $onChange = "" 
)

Definition at line 49 of file template_select_field_renderer.inc.

50  {
51  $this->mode = $mode;
52  $this->site_id = $site_id;
53 
54  $options = $this->getInitialOptions($form);
55 
56  $this->SelectFieldRenderer($form, $field, $label, $options, $onChange);
57  }
$form
$mode
Dynamic update mode, either 'site', 'theme' or 'none'.

Member Data Documentation

◆ $mode

TemplateSelectFieldRenderer::$mode = "site"

Dynamic update mode, either 'site', 'theme' or 'none'.

Definition at line 46 of file template_select_field_renderer.inc.

◆ $site_id

TemplateSelectFieldRenderer::$site_id = 0

Definition at line 47 of file template_select_field_renderer.inc.

◆ $templateMapWritten

TemplateSelectFieldRenderer::$templateMapWritten = false
static

Definition at line 45 of file template_select_field_renderer.inc.


The documentation for this class was generated from the following file: