diff --git a/AvocadoEdition_Light/adm/board_form_update.php b/AvocadoEdition_Light/adm/board_form_update.php index 6aa2430..a7a3c15 100644 --- a/AvocadoEdition_Light/adm/board_form_update.php +++ b/AvocadoEdition_Light/adm/board_form_update.php @@ -1,4 +1,7 @@ diff --git a/AvocadoEdition_Light/adm/design_form_update.php b/AvocadoEdition_Light/adm/design_form_update.php index 7bf1cf3..f0c621e 100644 --- a/AvocadoEdition_Light/adm/design_form_update.php +++ b/AvocadoEdition_Light/adm/design_form_update.php @@ -1,4 +1,7 @@ idx = $idx; + $this->cs_name = $name; + $this->title = $title; + $this->html = ""; + $this->is_value_added = false; + if ($init) { + $this->init(); + } + + if (!empty($data)) { + foreach ($data as $val) { + switch ($val["type"]) { + case "desc": + $this->addDescription($val["desc"], array_key_exists("default", $val) ? (is_array($val["default"]) ? $val["default"] : []) : []); + break; + case "text": + $this->addTextSetting($val["desc"], array_key_exists("default", $val) ? (is_array($val["default"]) ? $val["default"] : []) : [], array_key_exists("placeholder", $val) ? $val["placeholder"] : ""); + break; + case "textarea": + $this->addTextareaSetting($val["desc"], array_key_exists("default", $val) ? (is_array($val["default"]) ? $val["default"] : []) : [], array_key_exists("placeholder", $val) ? $val["placeholder"] : ""); + break; + case "image": + $this->addImageSetting($val["desc"], array_key_exists("default", $val) ? (is_array($val["default"]) ? $val["default"] : []) : []); + break; + case "select": + $this->addSelectSetting($val["desc"], array_key_exists("default", $val) ? (is_array($val["default"]) ? $val["default"] : []) : [], array_key_exists("values", $val) ? $val["values"] : ""); + break; + case "color": + $this->addColorSetting($val["desc"], array_key_exists("default", $val) ? (is_array($val["default"]) ? $val["default"] : []) : []); + break; + case "color2": + $this->addColor2Setting($val["desc"], array_key_exists("default", $val) ? (is_array($val["default"]) ? $val["default"] : []) : []); + break; + case "border": + $this->addBorderSetting($val["desc"], array_key_exists("default", $val) ? (is_array($val["default"]) ? $val["default"] : []) : []); + break; + case "rect": + $this->addRectSetting($val["desc"], array_key_exists("default", $val) ? (is_array($val["default"]) ? $val["default"] : []) : []); + break; + case "radius": + $this->addRadiusSetting($val["desc"], array_key_exists("default", $val) ? (is_array($val["default"]) ? $val["default"] : []) : []); + break; + } + } + } + } + + public static function getSettingList() + { + global $g5; + $css = []; + $sql = sql_query("SELECT * FROM {$g5['css_table']}"); + while ($row = sql_fetch_array($sql)) { + $set = new Setting(0, "", "", [], false); + + $set->cs_id = $row['cs_id']; + $set->cs_value = $row['cs_value']; + $set->cs_name = $row['cs_name']; + $set->cs_descript = $row['cs_descript']; + for ($i = 1; $i <= 20; $i++) { + $key = "cs_etc_{$i}"; + $set->$key = $row[$key]; + } + + $css[$row['cs_name']] = $set; + } + + return $css; + } + + public function init() + { + global $g5; + $this->settings = []; + $data = sql_fetch("SELECT * FROM {$g5['css_table']} WHERE cs_name = '{$this->cs_name}'"); + if ($data) { + $this->cs_id = intval($data['cs_id']); + $this->cs_name = $data['cs_name']; + $this->cs_value = $data['cs_value']; + $this->cs_descript = $data['cs_descript']; + for ($i = 1; $i <= 20; $i++) { + $key = "cs_etc_{$i}"; + $this->$key = $data[$key]; + } + } else { + $this->cs_value = ""; + $this->cs_descript = ""; + for ($i = 1; $i <= 20; $i++) { + $key = "cs_etc_{$i}"; + $this->$key = ""; + } + } + } + + public function addHeader() + { + $count = count(array_filter($this->settings, function ($setting) { + return $setting["type"] != "image"; + })); + $count += count(array_filter($this->settings, function ($setting) { + return $setting["type"] == "image"; + })) ? 2 : 0; + return "{$this->idx}{$this->title}idx}]\" value=\"{$this->cs_name}\" readonly size=\"15\" />"; + } + + public function getCurrentCount() + { + $count = 0; + foreach ($this->settings as $setting) { + switch ($setting["type"]) { + case "image": + case "text": + case "desc": + break; + case "color": + case "border": + $count += 2; + break; + default: + $count++; + break; + } + } + return $count; + } + + public function addDescription($text, $default) + { + $this->settings[] = [ + "type" => "desc", + "html" => "{$text}" + ]; + } + + public function addTextSetting($desc, $default, $placeholder) + { + if ($this->is_value_added) + return; + $this->settings[] = [ + "type" => "text", + "html" => "{$desc}
idx}]\" value=\"{$this->cs_value}\" size=\"100\" placeholder=\"{$placeholder}\" />
" + ]; + $this->is_value_added = true; + } + + public function addTextareaSetting($desc, $default, $placeholder) + { + if ($this->is_value_added) + return; + $this->settings[] = [ + "type" => "text", + "html" => "{$desc}
" + ]; + $this->is_value_added = true; + } + + public function addImageSetting($desc, $default) + { + if ($this->is_value_added) + return; + $image_set = $this->cs_value != "" ? "cs_value}\" class=\"prev_thumb\">" : "{$desc} 이미지 미등록"; + $this->settings[] = [ + "type" => "image", + "html" => "{$image_set}
직접등록idx}]\" value=\"\" size=\"50\">
외부경로idx}]\" value=\"{$this->cs_value}\" size=\"50\"/>
" + ]; + $this->is_value_added = true; + } + + public function addRectSetting($desc, $default) + { + $idx = $this->getCurrentCount() + 1; + if ($idx <= 20) { + $key1 = "cs_etc_{$idx}"; + $values = explode("||", $this->$key1); + + if (empty($default)) { + $default = [0, 0, 0, 0]; + } + + if (count($values) < 6) { + $values = array_merge([""], $default, [""]); + } + + foreach ($values as &$val) { + $val = intval($val); + } + + $this->settings[] = [ + "type" => "rect", + "html" => "{$desc} + +
+
Xcs_name}\" min=\"-9999\" max=\"9999\" size=\"20\" name=\"cs_etc_{$idx}[{$this->idx}][]\" value=\"{$values[1]}\"/>px
+
Ycs_name}\" min=\"-9999\" max=\"9999\" size=\"20\" name=\"cs_etc_{$idx}[{$this->idx}][]\" value=\"{$values[2]}\"/>px
+
너비cs_name}\" min=\"-9999\" max=\"9999\" size=\"20\" name=\"cs_etc_{$idx}[{$this->idx}][]\" value=\"{$values[3]}\"/>px
+
높이cs_name}\" min=\"-9999\" max=\"9999\" size=\"20\" name=\"cs_etc_{$idx}[{$this->idx}][]\" value=\"{$values[4]}\"/>px
+
+ + " + ]; + } + // error + } + + public function addRadiusSetting($desc, $default) + { + $idx = $this->getCurrentCount() + 1; + if ($idx <= 20) { + $key1 = "cs_etc_{$idx}"; + $values = explode("||", $this->$key1); + + if (empty($default)) { + $default = [0, 0, 0, 0]; + } + + if (count($values) < 6) { + $values = array_merge([""], $default, [""]); + } + + foreach ($values as &$val) { + $val = intval($val); + } + + $this->settings[] = [ + "type" => "radius", + "html" => "{$desc} + +
+
cs_name}\" min=\"-9999\" max=\"9999\" size=\"20\" name=\"cs_etc_{$idx}[{$this->idx}][]\" value=\"{$values[1]}\"/>px
+
cs_name}\" min=\"-9999\" max=\"9999\" size=\"20\" name=\"cs_etc_{$idx}[{$this->idx}][]\" value=\"{$values[2]}\"/>px
+
cs_name}\" min=\"-9999\" max=\"9999\" size=\"20\" name=\"cs_etc_{$idx}[{$this->idx}][]\" value=\"{$values[3]}\"/>px
+
cs_name}\" min=\"-9999\" max=\"9999\" size=\"20\" name=\"cs_etc_{$idx}[{$this->idx}][]\" value=\"{$values[4]}\"/>px
+
+ + " + ]; + } + // error + } + + public function addColorSetting($desc, $default) + { + $idx = $this->getCurrentCount() + 1; + if ($idx <= 19) { + $idx2 = $idx + 1; + $key1 = "cs_etc_{$idx}"; + $key2 = "cs_etc_{$idx2}"; + if (empty($default)) { + if ($this->$key1 === "") + $this->$key1 = "#000000"; + if ($this->$key2 === "") + $this->$key2 = "0"; + } + $this->settings[] = [ + "type" => "color", + "html" => "{$desc}
색상idx}]\" value=\"{$this->$key1}\" class=\"colorpicker\" size=\"30\" maxlength=\"255\" placeholder=\"#색상코드\" />투명도idx}]\" value=\"{$this->$key2}\" placeholder=\"0\" title=\"투명도\" style=\"width:45px;\"/>%
" + ]; + } + // error + } + + public function addColor2Setting($desc, $default) + { + $idx = $this->getCurrentCount() + 1; + if ($idx <= 20) { + $key1 = "cs_etc_{$idx}"; + if (empty($default)) { + if ($this->$key1 === "") + $this->$key1 = "#000000FF"; + } else { + if ($this->$key1 === "") + $this->$key1 = $default[0]; + } + $this->settings[] = [ + "type" => "color2", + "html" => "{$desc}
색상idx}]\" value=\"{$this->$key1}\" class=\"neo_color\" size=\"30\" maxlength=\"255\" placeholder=\"#색상코드\" />" + ]; + } + // error + } + + public function addBorderSetting($desc, $default) + { + $idx = $this->getCurrentCount() + 1; + $options = [ + " " => "사용 안 함", + "dotted" => "점선", + "dashed" => "대시", + "solid" => "직선", + "double" => "이중선", + "groove" => "내부 경사", + "ridge" => "외부 경사", + "inset" => "내부", + "outset" => "외부" + ]; + + if ($idx <= 19) { + $idx2 = $idx + 1; + $key1 = "cs_etc_{$idx}"; + $key2 = "cs_etc_{$idx2}"; + $options_html = ""; + foreach ($options as $key => $val) { + $k = trim($key); + $s = $this->$key1 == $k ? " selected" : ""; + $options_html .= ""; + } + $this->settings[] = [ + "type" => "border", + "html" => "{$desc}
두께idx}]\" value=\"{$this->$key2}\" placeholder=\"0\" title=\"두께\" style=\"width:45px;\"/>
" + ]; + } + } + + + public function addSelectSetting($desc, $default, $values) + { + $idx = $this->getCurrentCount() + 1; + if ($idx <= 19) { + $key1 = "cs_etc_{$idx}"; + $options_html = ""; + foreach ($values as $key => $val) { + $k = trim($key); + $s = $this->$key1 == $k ? " selected" : ""; + $options_html .= ""; + } + $this->settings[] = [ + "type" => "select", + "html" => "{$desc}
" + ]; + } + } + + public function getExplodeValue($idx) + { + $key = "cs_etc_{$idx}"; + return explode("||", $this->$key); + } + + public function getSettingHtml() + { + $html = ""; + foreach ($this->settings as $idx => $val) { + if ($html == "") { + $html .= $this->addHeader(); + } else { + $html .= ""; + } + $html .= $val['html']; + } + return $html; + } +}