1{* 2 * $Revision: 17380 $ 3 * Read this before changing templates! http://codex.gallery2.org/Gallery2:Editing_Templates 4 *} 5<div class="{$class}"> 6{if isset($message)} 7 <p class="giDescription"> {$message} </p> 8{/if} 9 10{include file="gallery:modules/core/templates/JavaScriptWarning.tpl"} 11 12{if isset($ThemeSettingsForm.customTemplate)} 13 {include file="gallery:`$ThemeSettingsForm.customTemplate`" l10Domain=$ThemeSettingsForm.theme.l10Domain} 14{/if} 15 16{if !empty($ThemeSettingsForm.settings)} 17 <table class="gbDataTable"><tr> 18 <th> {g->text text="Setting"} </th> 19 <th> {g->text text="Value"} </th> 20 <th> {g->text text="Use Global"} </th> 21 </tr> 22 23 {foreach from=$ThemeSettingsForm.settings item=setting} 24 {assign var="settingKey" value=$setting.key} 25 <tr class="{cycle values="gbEven,gbOdd"}"> 26 <td> 27 {$setting.name} 28 </td><td> 29 {if ($setting.type == 'text-field')} 30 <input type="text" size="{$setting.typeParams.size|default:6}" 31 onchange="changeSetting('{$settingKey}')" 32 name="{g->formVar var="form[key][$settingKey]"}" value="{$form.key.$settingKey}"/> 33 {elseif ($setting.type == 'textarea')} 34 <textarea style="width:{$setting.typeParams.width|default:'400px'};height:{$setting.typeParams.height|default:'75px'};" 35 name="{g->formVar var="form[key][$settingKey]"}">{$form.key[$settingKey]}</textarea> 36 {elseif ($setting.type == 'single-select')} 37 <select name="{g->formVar var="form[key][$settingKey]"}" 38 onchange="changeSetting('{$settingKey}')"> 39 {html_options options=$setting.choices selected=$form.key.$settingKey} 40 </select> 41 {elseif ($setting.type == 'checkbox')} 42 <input type="checkbox" onclick="changeSetting('{$settingKey}')" 43 name="{g->formVar var="form[key][$settingKey]"}" 44 {if !empty($form.key.$settingKey)} checked="checked"{/if}/> 45 {elseif ($setting.type == 'block-list')} 46 <table> 47 <tr> 48 <td style="text-align: right;"> 49 {g->text text="Available"} 50 </td> 51 <td> 52 <select id="blocksAvailableList_{$setting.key}" 53 onchange="bsw_selectToUse('{$setting.key}');"> 54 <option value="">{g->text text="Choose a block"}</option> 55 </select> 56 </td> 57 <td class="bsw_BlockCommands"> 58 <span id="bsw_AddButton_{$setting.key}" onclick="bsw_addBlock('{$setting.key}');" 59 class="bsw_ButtonDisabled"> 60 {g->text text="Add"} 61 </span> 62 </td> 63 </tr> 64 65 <tr> 66 <td style="text-align: right; vertical-align: top;"> 67 {g->text text="Selected"} 68 </td> 69 <td id="bsw_UsedBlockList_{$setting.key}"> 70 <select id="blocksUsedList_{$setting.key}" size="10" 71 onchange="bsw_selectToChange('{$setting.key}');"> 72 <option value=""></option> {* Dummy option so xhtml validates *} 73 </select> 74 </td> 75 <td class="bsw_BlockCommands"> 76 <span style="display: block" 77 id="bsw_RemoveButton_{$setting.key}" 78 onclick="bsw_removeBlock('{$setting.key}');" 79 class="bsw_ButtonDisabled"> 80 {g->text text="Remove"} 81 </span> 82 83 <span style="display: block" 84 id="bsw_MoveUpButton_{$setting.key}" 85 onclick="bsw_moveUp('{$setting.key}');" 86 class="bsw_ButtonDisabled"> 87 {g->text text="Move Up"} 88 </span> 89 90 <span style="display: block" 91 id="bsw_MoveDownButton_{$setting.key}" 92 onclick="bsw_moveDown('{$setting.key}');" 93 class="bsw_ButtonDisabled"> 94 {g->text text="Move Down"} 95 </span> 96 </td> 97 </tr> 98 <tr> 99 <td id="bsw_BlockOptions_{$setting.key}" colspan="3"> 100 </td> 101 </tr> 102 </table> 103 104 <input type="hidden" 105 onchange="changeSetting('{$settingKey}'); bsw_reInitAdminForm('{$settingKey}');" 106 id="albumBlockValue_{$setting.key}" size="60" 107 name="{g->formVar var="form[key][$settingKey]"}" 108 value="{$form.key.$settingKey|replace:'"':'"'}"/> 109 110 <script type="text/javascript"> 111 // <![CDATA[ 112 var block; 113 var tmp; 114 {foreach from=$ThemeSettingsForm.availableBlocks key=moduleId item=blocks} 115 {foreach from=$blocks key=blockName item=block} 116 block = bsw_addAvailableBlock("{$setting.key}", "{$moduleId}.{$blockName}", 117 "{g->text text=$block.description l10Domain="modules_$moduleId" forJavascript=true}"); 118 {if !empty($block.vars)} 119 {foreach from=$block.vars key=varKey item=varInfo} 120 tmp = new Array(); 121 {if ($varInfo.type == 'choice')} 122 {foreach from=$varInfo.choices key=choiceKey item=choiceValue} 123 tmp["{$choiceKey}"] = "{g->text text=$choiceValue 124 l10Domain="modules_$moduleId" forJavascript=true}"; 125 {/foreach} 126 {/if} 127 block.addVariable("{$varKey}", "{$varInfo.default}", 128 "{g->text text=$varInfo.description l10Domain="modules_$moduleId" forJavascript=true}", 129 "{$varInfo.type}", tmp); 130 {if !empty($varInfo.overrides)} 131 {foreach from=$varInfo.overrides item=override} 132 block.addVariableOverride("{$varKey}", "{$override}"); 133 {/foreach} 134 {/if} 135 {/foreach} 136 {/if} 137 {/foreach} 138 {/foreach} 139 {* Now initialize the form with the album block values *} 140 bsw_initAdminForm("{$setting.key}", "{g->text text="Parameter" forJavascript=true}", 141 "{g->text text="Value" forJavascript=true}"); 142 // ]]> 143 </script> 144 {/if} 145 </td> 146 147 <td align="center"> 148 <input type="checkbox" onclick="toggleGlobal('{$settingKey}');" 149 name="{g->formVar var="form[useGlobal][$settingKey]"}" 150 {if (!isset($ThemeSettingsForm.globalParams.$settingKey))} 151 disabled="disabled" 152 {elseif (!empty($form.useGlobal.$settingKey))} 153 checked="checked" 154 {/if}/> 155 </td> 156 </tr> 157 158 {if isset($form.error.key.$settingKey.invalid)} 159 <tr> 160 <td colspan="2" class="giError"> 161 {$form.errorMessage.$settingKey} 162 </td> 163 </tr> 164 {/if} 165 {/foreach} 166 </table> 167{elseif !isset($ThemeSettingsForm.customTemplate)} 168 <b> {g->text text="There are no settings for this theme"} </b> 169{/if} 170</div> 171 172<script type="text/javascript"> 173 // <![CDATA[ 174 var isSaved = new Array; 175 var savedValues = new Array; 176 var globalValues = new Array; 177 178 {* 179 * Convert " to " so that Javascript can parse embedded quotes in the 180 * the data. Convert \ to \\ so that when we move this value around the 181 * backslash is preserved (else \" turns into "). 182 *} 183 {foreach from=$ThemeSettingsForm.globalParams key=key item=value} 184 globalValues['{$key}'] = "{$value|replace:'"':'"'|replace:'\\':'\\\\'}"; 185 {/foreach} 186 187 {* Undo the quotes coercion here in Javascript so that we have the correct data *} 188 globalValues['albumBlocks'] = globalValues['albumBlocks'].replace(/"/g, '"'); 189 globalValues['photoBlocks'] = globalValues['photoBlocks'].replace(/"/g, '"'); 190 globalValues['sidebarBlocks'] = globalValues['sidebarBlocks'].replace(/"/g, '"'); 191 192 function toggleGlobal(key) {ldelim} 193 var frm = document.getElementById('{$formId}'); 194 inputWidget = frm.elements['{g->formVar var="form[key]["}' + key + ']']; 195 toggleWidget = frm.elements['{g->formVar var="form[useGlobal]["}' + key + ']']; 196 {literal} 197 if (toggleWidget.checked) { 198 savedValues[key] = inputWidget.value; 199 isSaved[key] = true; 200 if (inputWidget.type == 'checkbox') { 201 if (globalValues[key] != 0) { 202 inputWidget.checked = 'checked'; 203 } else { 204 inputWidget.checked = null; 205 } 206 } else { 207 inputWidget.value = globalValues[key]; 208 } 209 } else { 210 if (inputWidget.type == 'checkbox') { 211 if (globalValues[key] == 0) { 212 inputWidget.checked = 'checked'; 213 } else { 214 inputWidget.checked = null; 215 } 216 } else if (isSaved[key]) { 217 inputWidget.value = savedValues[key]; 218 } 219 } 220 if (inputWidget.type != 'checkbox') inputWidget.onchange(); 221 bsw_showBlockOptions(key); 222 } 223 224 function changeSetting(key) { 225 {/literal} 226 var frm = document.getElementById('{$formId}'); 227 inputWidget = frm.elements['{g->formVar var="form[key]["}' + key + ']']; 228 toggleWidget = frm.elements['{g->formVar var="form[useGlobal]["}' + key + ']']; 229 {literal} 230 if (inputWidget.type == 'checkbox') { 231 toggleWidget.checked = ((globalValues[key] == 0 && !inputWidget.checked) || 232 (globalValues[key] == 1 && inputWidget.checked)); 233 } else { 234 toggleWidget.checked = (inputWidget.value == globalValues[key]); 235 } 236 } 237 {/literal} 238 // ]]> 239</script> 240