aboutsummaryrefslogtreecommitdiff
path: root/w/class/class.w.quickcss.php
diff options
context:
space:
mode:
Diffstat (limited to 'w/class/class.w.quickcss.php')
-rw-r--r--w/class/class.w.quickcss.php291
1 files changed, 0 insertions, 291 deletions
diff --git a/w/class/class.w.quickcss.php b/w/class/class.w.quickcss.php
deleted file mode 100644
index dc7dbac..0000000
--- a/w/class/class.w.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