59 private function getInitialOptions(
$form)
62 $directory =
$site->getThemeDirectory();
69 private function getSite(
$form =
null)
73 if (
$form->data->hasField(
"site_id"))
87 private function buildTemplateMap()
99 $directory =
$site->getThemeDirectory();
124 trace(
"Scanning Templates", 3);
128 $folders = array(
"$dir");
130 while((
$dir = array_shift($folders)) !==
null)
132 $path =
"$home/$dir";
134 trace(
"Reading $path", 3);
136 $handle = opendir(
$path);
137 while(
false !== (
$file = readdir($handle)))
139 trace(
"Checking $file", 4);
147 $l = (
$dir !=
'') ?
"$dir/$file" :
$file;
151 array_push($folders, $l);
153 else if (preg_match(
'/.tpl$/i',
$file))
169 <script type=
'text/javascript'>
170 var TemplateSelectFieldRenderer_templateMap = <?echo json_encode($this->buildTemplateMap());?>;
180 if ($this->parent->data->hasField(
"site_id"))
183 <script type=
'text/javascript'>
184 window.addEvent(
'domready',
function()
186 var siteSelect = document.id(
"<?echo $this->parent->id?>_site_id");
187 siteSelect.addEvent(
'change',
function()
189 var site_id = siteSelect.value;
190 var templateSelect = document.id(
"<?echo $this->parent->id?>_<?echo $field?>");
191 var val = templateSelect.value;
195 var options = TemplateSelectFieldRenderer_templateMap[site_id];
196 for (var o in options)
200 html +=
"<option value='" + o +
"' selected='selected'>" + o +
"</option>";
204 html +=
"<option value='" + o +
"'>" + o +
"</option>";
208 templateSelect.set(
'html', html);
218 if ($this->parent->data->hasField(
"theme"))
221 <script type=
'text/javascript'>
222 window.addEvent(
'domready',
function()
224 var themeSelect = document.id(
"<?echo $this->parent->id?>_theme");
225 themeSelect.addEvent(
'change',
function()
227 var theme = themeSelect.value;
228 var templateSelect = document.id(
"<?echo $this->parent->id?>_<?echo $field?>");
229 var val = templateSelect.value;
233 var options = TemplateSelectFieldRenderer_templateMap[theme];
234 for (var o in options)
238 html +=
"<option value='" + o +
"' selected='selected'>" + o +
"</option>";
242 html +=
"<option value='" + o +
"'>" + o +
"</option>";
246 templateSelect.set(
'html', html);
259 return parent::renderScript(
field);
static usingFeature()
Uses the specified framework feature(s).
static using()
Import the datamodels, views and manifest for the specified component(s).
static getSite()
Returns the Site object that describes the currently active site (i.e.
static getThemeDirectory($theme="")
TemplateSelectFieldRenderer(&$form, $field, $label, $mode="site", $onChange="")
$mode
Dynamic update mode, either 'site', 'theme' or 'none'.
readFiles($home, $dir="")
static $templateMapWritten
if(php_sapi_name() !="cli") $home