= _JJ0`J@`JP`J``Jp`J`J`J`J`J`J`J`J`JaJaJ aJ0aJ@aJPaJ`aJpaJaJaJaJaJaJaJaJaJJ42120eb227b2f59fc54a557f6e58f8.debugxM.shstrtab.note.gnu.property.note.gnu.build-id.note.ABI-tag.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_d.gnu.version_r.rela.dyn.rela.plt.init.plt.got.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.init_array.fini_array.dynamic.got.plt.data.bss.gnu_debuglink  $1 ?o\I ppQ``Yo  Tfop p 8uo @ B     2 "$ $ d xC##=-=-=-?/(@0A1 A114<1  = new stdClass(); $setting->rawAttributes = []; $settingExists = false; if (\in_array($key, $ignored, true)) { continue; } foreach ($attributes as $_k => $_attr) { $setting->rawAttributes[$_k] = (string)$_attr; } if ((string)$attributes->override === 'true') { $ignored[] = $key; } $setting->name = (string)$attributes->Description; $setting->key = $key; $setting->cType = (string)$attributes->Type; $setting->value = (string)$attributes->Value; $setting->isEditable = (string)$attributes->Editable; $setting->cPlaceholder = (string)$attributes->Placeholder; // negative values for the 'toggle'-attributes of textarea(resizable), check-boxes and radio-buttons $toggleValues = ['0', 'no', 'none', 'off', 'false']; if ($setting->cType === 'float') { $setting->cType = 'text'; } // special handling for textarea-type settings if ($setting->cType === 'textarea') { // inject the tag-attributes of the TextAreaValue in our oSetting $setting->textareaAttributes = []; // we insert our default "no resizable" $setting->textareaAttributes['Resizable'] = 'none'; foreach ($attributes as $_key => $_val) { $_val = (string)$_val; // cast the value(!) $setting->textareaAttributes[$_key] = $_val; // multiple values of 'disable resizing' are allowed, // but only vertical is ok, if 'resizable' is required if ((string)$_key === 'Resizable') { \in_array($_val, $toggleValues, true) ? $setting->textareaAttributes[$_key] = 'none' : $setting->textareaAttributes[$_key] = 'vertical'; // only vertical, because horizontal breaks the layout } else { $setting->textareaAttributes[$_key] = $_val; } } // get the tag content of "TextAreaValue"; trim leading and trailing spaces $textLines = \mb_split("\n", (string)$XMLSetting->TextAreaValue) ?: []; $textLines = \array_map('\trim', $textLines); $setting->cTextAreaValue = \implode("\n", $textLines); } foreach ($section->settings as $_setting) { if ($_setting->key === $setting->key) { $settingExists = true; $setting = $_setting; break; } } if (\is_string($setting->isEditable)) { $setting->isEditable = \mb_strlen($setting->isEditable) === 0 || (bool)(int)$setting->isEditable; } if (isset($XMLSetting->Option)) { $setting->options = $setting->options ?? []; foreach ($XMLSetting->Option as $XMLOption) { $opt = new stdClass(); $opt->name = (string)$XMLOption; $opt->value = (string)$XMLOption->attributes()->Value; $opt->dir = $dir; // add current folder to option - useful for theme previews if ((string)$XMLOption === '' && (string)$XMLOption->attributes()->Name !== '') { // overwrite the name (which defaults to the tag content), // if it's empty, with the Option-attribute "Name", if we got that $opt->name = (string)$XMLOption->attributes()->Name; } $setting->options[] = $opt; } } if (isset($XMLSetting->Optgroup)) { $setting->optGroups = $setting->optGroups ?? []; foreach ($XMLSetting->Optgroup as $XMLOptgroup) { $optgroup = new stdClass(); $optgroup->name = (string)$XMLOptgroup->attributes()->label; $optgroup->values = []; foreach ($XMLOptgroup->Option as $XMLOptgroupOption) { $optgroupValues = new stdClass(); $optgroupValues->name = (string)$XMLOptgroupOption; $optgroupValues->value = (string)$XMLOptgroupOption->attributes()->Value; $optgroup->values[] = $optgroupValues; } $setting->optGroups[] = $optgroup; } } if (!$settingExists) { $section->settings[] = $setting; } } } }