1. JavaScript / Говнокод #21602

    −47

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    /* Задача такова: пользователь может по своему вкусу настраивать дизайн приложения (шрифт, фон и т.д.)
     * При этом, 
     * 1. настройки должны применяться мгновенно, 
     * 2. сохраняться после перезагрузки 
     */
    
    // Было сделано так:
    // Клиент собирает информацию со всех крутилочек, и генерирует JSON-репрезентацию CSS в подобном формате: 
    
    css_data = [
      {selector : 'body', css : {'color' : 'rgb(255, 179, 0)','background' : '#4D3339 url(../images/bg134.png) repeat scroll 0 0'}}, 
      {selector : '#omv table', css : {'box-shadow' : 'rgba(0, 0, 0, 0.4) 0px 0px 9px 2px'}},
      {selector : '.well,.info', css : {'background-color' : 'rgba(66, 31, 105, 0.46)'}}
      ];
      
    // Таким нехитрым образом применяется на страницу:
    
    $.css = function ( query, propertyObject )
    {
      var elements = document.querySelectorAll(query);
      for (var i = 0; i < elements.length; i++) 
        for (var property in propertyObject){
          elements[i].style[property] = propertyObject[property];
        }
    }
    
    css_data.map(function(data){
      $.css(data.selector, data.css)
    });
    
    // И сразу же отправляется на сервер (в БД).
    // Тут начинается самый сок - генерация CSS на PHP, который будет выведен на страницу в следующий раз:
    
    function JSON2CSS($data){
      $json = json_decode($data, true);
      $result = "<style type=\"text/css\">";
      foreach($json as &$rule){
        $result .= $rule['selector'].'{';
        $props = array_keys($rule['css']);
        foreach($props as $property)
          $result .= $property . ':' . $rule['css'][$property] . ';';
        $result .= '}';
      }
      $result .= "</style>";
      return $result;
    }

    Запостил: Frederica_Bernkastel, 29 Октября 2016

    Комментарии (21) RSS

    • Ну, не знаю. У меня так получилось:

      function json2css($json) {
      $result = NULL;

      foreach (json_decode($json, true) as $rule) {
      $result .= $rule["selector"] . "{";
      foreach ($rule["css"] as $property => $value) {
      $result .= $property . ":" . $value . ";";
      }
      $result .= "}";
      }

      return "<style type=\"text/css\">" . $result . "</style>";
      }
      Ответить
    • > JSON2CSS
      Сильное название. Хочу функции JPEG2MP3, GIF2DOC и CPP2PHP!
      Ответить
      • TXT2MP4
        Ответить
        • MP42TXT полезнее

          А то гуглишь решение какой-то проблемы, а находится видео, где кто-то в реальном времени пишет reg add ololo\CLSID\{jjfkdhskhiuewfuierhewir9-332343kjhkh23-aasdsasff8}\OloloTrololo 100500, жмёт ентер и радуется, что и у него всё работает, и что теперь все знают, как набить в реальном времени {ddfsaff223434-safsf23-sdfdfdf2215-jkksrb}.
          Ответить
          • > А то гуглишь решение какой-то проблемы, а находится видео, где кто-то в реальном времени пишет reg add ololo\CLSID\{jjfkdhskhiuewfuierhewir9-332343kjhkh23-aasdsasff8}
            Блять, плюсую неимоверно. Бесят такие долбоёбы.
            Ответить
          • Видеоблогеры не нужны.
            Ответить
          • Решение проблемы: не воспроизводится видео на YouTube.
            Ответить
            • Напомнило диалоговое окно Windows: «Невозможно осуществить подключение к Интернету. Открыть веб-справку для поиска решения проблемы?»
              Ответить
        • И скормить ему 'mai hawt anime waifu'.
          Ответить
      • TXT2RL
        Ответить
    • Оказываецца, чай вредно курить.
      Ответить
    • показать все, что скрытоджаваскрипт не нуже
      Ответить
    • >Задача такова: пользователь может по своему вкусу настраивать дизайн приложения (шрифт, фон и т.д.)
      А у нас css в бд.
      Ответить
      • Чем бы дитя не тешилось, лишь бы html через sql не генерило.
        Ответить
        • Я не удивлюсь, если и такое смогу найти.
          Ответить

    Добавить комментарий