diff options
Diffstat (limited to 'w/class/quickcss.php')
-rw-r--r-- | w/class/quickcss.php | 291 |
1 files changed, 0 insertions, 291 deletions
diff --git a/w/class/quickcss.php b/w/class/quickcss.php deleted file mode 100644 index dc7dbac..0000000 --- a/w/class/quickcss.php +++ /dev/null @@ -1,291 +0,0 @@ -<?php - -class Quickcss -{ - - - private $active = []; - private $values = []; - private $units = []; - private $new = []; - private $jsoncss = []; - - private $quickcss = []; - - const COLOR = ['color', 'background-color', 'border-color', 'text-decoration-color']; - const SIZE = ['width', 'height', 'margin', 'padding', 'border-radius', 'border-width', 'left', 'right', 'top', 'bottom']; - const UNIQUE = ['background-image', 'opacity', 'font-size']; - - const OPTIONS = [ - 'text-align' => ['left', 'right', 'center', 'justify'], - 'border-style' => ['solid', 'double', 'outset', 'ridge'], - 'font-family' => ['serif', 'sans-serif', 'monospace', 'cursive', 'fantasy'], - 'text-decoration-line' => ['none', 'underline', 'overline', 'line-through', 'underline overline'], - 'display' => ['none', ] - ]; - - - private static function getselect() - { - return array_keys(self::OPTIONS); - } - - private static function getparams() - { - $params = array_merge(self::COLOR, self::SIZE, self::getselect(), self::UNIQUE); - sort($params, SORT_STRING ); - return $params; - } - - public function __construct($data) - { - $this->hydrate($data); } - - public function hydrate($data) - { - foreach ($data as $key => $value) { - $method = 'set' . $key; - - if (method_exists($this, $method)) { - $this->$method($value); - } - } - } - - public function calc() - { - $quickcss = $this->intersect($this->values,$this->active); - $quickcss = $this->merge($quickcss, $this->new); - $quickcss = $this->addunits($quickcss, $this->units); - $quickcss = $this->merge($this->jsoncss, $quickcss); - - $this->quickcss = $quickcss; - } - - - - // _________________________________________ P O S T __________________________________________________ - - public function setvalues($data) - { - if(is_array($data)) { - $this->values = $data; - } - } - - public function setunits($data) - { - if(is_array($data)) { - $this->units = $data; - } - } - - public function setactive($data) - { - if(is_array($data)) { - $this->active = $data; - } - } - - public function setnew($data) - { - if (!empty($data['element']) && !empty($data['param']) && in_array($data['param'], self::getparams())) { - $new = array($data['element'] => array($data['param'] => '')); - $this->new = $new; - } - } - - - public function setjson($jsoncss) - { - if(!empty($jsoncss) && is_string($jsoncss)) { - $jsoncss = json_decode($jsoncss); - if(is_array($jsoncss)) { - $this->jsoncss = $jsoncss; - } else { - $this->jsoncss = []; - } - } - } - - - // _______________________________________ C A L C ___________________________________________________ - - public function intersect($values, $active) - { - $intersect = array_intersect_key($values, $active); - - foreach ($intersect as $element => $css) { - $intersect[$element] = array_intersect_key($values[$element], $active[$element]); - } - return $intersect; - } - - public function merge($quickcss, $new) - { - $quickcss = array_merge_recursive($quickcss, $new); - return $quickcss; - } - - public function addunits($quickcss, $units) - { - foreach ($units as $element => $css) { - foreach ($css as $param => $unit) { - if (array_key_exists($element, $quickcss) && array_key_exists($param, $quickcss[$element])) { - $quickcss[$element][$param] = $quickcss[$element][$param] . $unit; - } - } - } - return $quickcss; - } - - - - // __________________________________________ C O M _________________________________________ - - public function tocss() - { - $string = ''; - foreach ($this->quickcss as $element => $css) { - $string .= PHP_EOL . $element . ' {'; - foreach ($css as $param => $value) { - $string .= PHP_EOL . ' ' . $param . ': ' . $value . ';'; - } - $string .= PHP_EOL . '}' . PHP_EOL; - } - return $string; - } - - public function tojson() - { - return json_encode($this->quickcss); - } - - - - - // _____________________________________________ F O R M ____________________________________________ - - public function form($action) - { - echo '<form action="' . $action . '" method="post">'; - echo '</br><input type="submit" value="submit">'; - $this->inputs($this->quickcss); - echo '</br><input type="submit" value="submit">'; - echo '</form>'; - - } - - public function inputs($quickcss) - { - echo '<h1>Add element</h1>'; - - echo '<input type="text" name="new[element]" list="used">'; - echo '<datalist id="used">'; - foreach (array_keys($quickcss) as $element) { - echo '<option value ="'.$element.'">'; - } - echo '</datalist>'; - - echo '<select name="new[param]">'; - foreach (self::getparams() as $param) { - echo '<option value="' . $param . '">' . $param . '</option>'; - } - echo '</select>'; - - foreach ($quickcss as $element => $css) { - echo '<h3>' . $element . '</h3>'; - foreach ($css as $param => $value) { - - echo '<div class="quicklabel">'; - echo '<input type="checkbox" name="active[' . $element . '][' . $param . ']" id="active[' . $element . '][' . $param . ']" checked>'; - echo '<label for="active[' . $element . '][' . $param . ']">' . $param . '</label>'; - echo '</div>'; - - echo '<div class="quickinput">'; - - if (in_array($param, self::COLOR)) { - echo '<input type="color" name="values[' . $element . '][' . $param . ']" value="' . $quickcss[$element][$param] . '" id="values[' . $element . '][' . $param . ']">'; - } - - if (in_array($param, self::SIZE)) { - $this->sizeinput($element, $param, $value); - } - - if (in_array($param, self::getselect())) { - $this->selectinput($element, $param, $value); - } - - if (in_array($param, self::UNIQUE)) { - $method = str_replace('-', '', $param) . 'input'; - if (method_exists($this, $method)) { - $this->$method($element, $param, $value); - } - } - - echo '</div>'; - } - } - - - } - - - - - - - // ____________________________________ I N P U T __________________________________ - - public function sizeinput($element, $param, $value) - { - echo '<input type="number" name="values[' . $element . '][' . $param . ']" value="' . intval($value) . '" id="values[' . $element . '][' . $param . ']">'; - - $unit = preg_replace('/\d/', '', $value); - ?> - <select name="units[<?= $element ?>][<?= $param ?>]" > - <option value="px" <?= $unit == 'px' ? 'selected' : '' ?>>px</option> - <option value="%" <?= $unit == '%' ? 'selected' : '' ?>>%</option> - </select> - <?php - - } - - public function fontsizeinput($element, $param, $value) - { - echo '<input type="number" name="values[' . $element . '][' . $param . ']" value="' . intval($value) . '" id="values[' . $element . '][' . $param . ']">'; - - $unit = preg_replace('/\d/', '', $value); - ?> - <select name="units[<?= $element ?>][<?= $param ?>]" > - <option value="px" <?= $unit == 'px' ? 'selected' : '' ?>>px</option> - <option value="em" <?= $unit == 'em' ? 'selected' : '' ?>>em</option> - </select> - <?php - - } - - public function opacityinput($element, $param, $value) - { - echo '<input type="number" name="values[' . $element . '][' . $param . ']" value="' . $value . '" id="values[' . $element . '][' . $param . ']" step="0.1" min="0" max="1">'; - } - - public function selectinput($element, $param, $value) - { - echo '<select name="values[' . $element . '][' . $param . ']">'; - foreach (self::OPTIONS[$param] as $option) { - if($option == $value) { - echo '<option value="'.$option.'" selected>'.$option.'</option>'; - } else { - echo '<option value="'.$option.'">'.$option.'</option>'; - } - } - echo '</select>'; - } - - -} - - - -?>
\ No newline at end of file |