Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Это наверно невозможно...

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Contr
Отправлено: 10 Июня, 2014 - 09:46:28
Post Id



Частый гость


Покинул форум
Сообщений всего: 202
Дата рег-ции: Окт. 2011  
Откуда: с Марса


Помог: 1 раз(а)




в теге <head> подключается стили <link href="style.css" type="text/css">.

Вопрос: может ли апач перед тем, как отдать этот файл со стилями, прогнать его через php?

Буду благодарен каждому ответу ))
 
 Top
Zuldek
Отправлено: 10 Июня, 2014 - 10:03:57
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




Допустим, может, заставим "прогнать". Как это вам поможет?

(Отредактировано автором: 10 Июня, 2014 - 10:04:16)

 
 Top
DelphinPRO
Отправлено: 10 Июня, 2014 - 10:06:18
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




простой вариант:

CODE (html):
скопировать код в буфер обмена
  1. <link href="style.php" type="text/css">


а уже в скрипте style.php можете прочитать ваш style.css, или сгенерить на лету.

Второй вариант - настроить рерайты в апаче (или енжинксе, смотря что у вас там стоит)


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Contr
Отправлено: 10 Июня, 2014 - 10:19:15
Post Id



Частый гость


Покинул форум
Сообщений всего: 202
Дата рег-ции: Окт. 2011  
Откуда: с Марса


Помог: 1 раз(а)




Zuldek пишет:
Допустим, может, заставим "прогнать". Как это вам поможет?

Задам переменные в css.


Сразу оговорюсь - сторонние "фишки" не предлагать Подмигивание

Выкрутился так:
в <head> написал:
<style type="text/css">
<?php require 'style.css'; ?>
</style>
-теперь файл читается через интерпретатор и переменные обрабатываются.

Из минусов - необходимо прописывать полный путь (через http://) до фоновой картинки
background: url("img/save_16.png") no-repeat scroll center center transparent;
- но это быстро решается также через переменную

Результат такой:
через php пропускается, переменные обрабатываются. Но появился минус - в IDE (у меня NetBeans) подчеркивает нехарактерные для *.css теги <?php ?> и весь остальной синтаксис плохо читаем.

Так что тут теперь вопрос в другом: как заставить NetBeans не обращать внимания на теги <?php ?>
Если сменить расширение...
 
 Top
DelphinPRO
Отправлено: 10 Июня, 2014 - 10:24:48
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




и что, теперь весь CSS встраивается в страницу? не хорошо.
Можно поинтересоваться, зачем вам переменные? С какой целью вы это используете?


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Ch_chov
Отправлено: 10 Июня, 2014 - 10:31:19
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




Contr, перед тем как спрашивать как это сделать, лучше объяснить для чего это вам нужно. Смешивать php и css в одном файле сомнительная затея.
 
 Top
Contr
Отправлено: 10 Июня, 2014 - 10:41:48
Post Id



Частый гость


Покинул форум
Сообщений всего: 202
Дата рег-ции: Окт. 2011  
Откуда: с Марса


Помог: 1 раз(а)




DelphinPRO пишет:
и что, теперь весь CSS встраивается в страницу? не хорошо.
Можно поинтересоваться, зачем вам переменные? С какой целью вы это используете?

Ch_chov пишет:
Contr, перед тем как спрашивать как это сделать, лучше объяснить для чего это вам нужно. Смешивать php и css в одном файле сомнительная затея.


Для того чтобы легче было сделать несколько разных стилевых оформления сайта. Сделать несколько *.css файлов - потом трудно их синхронно менять. Вот для этого и встраиваю переменные.


Цитата:
что, теперь весь CSS встраивается в страницу? не хорошо
- Почему? В теге <head> нормально, вроде бы..



(Добавление)
В принципе я смотрю, и с IDE NetBeans тоже получилось:
было так:
<style type="text/css">
<?php require 'style.php'; ?>
</style>

сделал так:
<?php require 'style.php'; ?>
а уже внутри style.php вставил теги <style type="text/css"></style>. Теперь NetBeans css отображает красиво, в разные цвета Радость

(Отредактировано автором: 10 Июня, 2014 - 10:53:59)

 
 Top
Ch_chov
Отправлено: 10 Июня, 2014 - 10:53:33
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




Contr пишет:
Сделать несколько *.css файлов - потом трудно их синхронно менять. Вот для этого и встраиваю переменные.

Вынесите общие стили в отдельный файл, и подключайте его независимо от темы. CSS файлы тем, подключайте после него. Тогда проблем с дублированием не будет.

Другой вариант, если допустим пользователь через админку задает шрифты и цвета для темы, то можно генерить CSS файл с помощью шаблонизатора после обновления настроек.
 
 Top
Contr
Отправлено: 10 Июня, 2014 - 11:07:09
Post Id



Частый гость


Покинул форум
Сообщений всего: 202
Дата рег-ции: Окт. 2011  
Откуда: с Марса


Помог: 1 раз(а)




Ch_chov пишет:
Вынесите общие стили в отдельный файл, и подключайте его независимо от темы. CSS файлы тем, подключайте после него
Очень хороший совет.
У меня сделано так: общее оформление, одинаковое для каждой страницы (шапка, футер, строки таблиц, ...) вынесено в общий файл. Для размещения элементов, характерных для определенной страницы - подключается свой конкретный файл.

Если из общего файла вынести оформительские элементы, скажем, цвет фона для всех страниц, и создать стили тем (red.css, blue.css, и еще штук 5), то в каждый из них надо вставлять body{background: свой цвет}. Я с этим смирюсь. Но когда таких записей (касаемо других частей страницы) будет больше? В каждый css файл надо добавлять по строчке, менять синхронно их...
Вот и думаю: лучше через переменные в одном style.css или загружать стилевые css после загрузки основного?

(Отредактировано автором: 10 Июня, 2014 - 11:08:20)

 
 Top
DelphinPRO
Отправлено: 10 Июня, 2014 - 11:15:03
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




Contr пишет:
Сделать несколько *.css файлов - потом трудно их синхронно менять. Вот для этого и встраиваю переменные.
Contr пишет:
Сразу оговорюсь - сторонние "фишки" не предлагать

А вот зря!

Берем CSS-препроцессор и получаем все что нужно.

Смотрите. Создаем несколько файликов


_theme-red.scss:


_theme-blue.scss:


_common.scss:
CODE (sass):
скопировать код в буфер обмена
  1. body {
  2.     background: $body-bg;
  3. }


style-red.scss
CODE (sass):
скопировать код в буфер обмена
  1. @import "theme-red";
  2. @import "common";


style-blue.scss
CODE (sass):
скопировать код в буфер обмена
  1. @import "theme-blue";
  2. @import "common";


После запуска компилятора, получим два css файла style-red.css и style-blue.css
При этом цветовые (да и не только) параметры задаем отдельно для каждой темы, стили описываем в одном общем файле common.scss с помощью переменных.
И для смены темы оформления нам будет достаточно просто подключить нужный стилевой файл

CODE (htmlphp):
скопировать код в буфер обмена
  1. <link href="<?= $selected_theme_file ?>" type="text/css">


Плюсы очевидны:
NetBeans полностью поддерживает препроцессоры SASS\LESS (подсветка синтаксиса, рефакторинг, автокомплит и прочее)
Полное разделение кода, как следствие легкая поддержка в дальнейшем.
Переменные в CSS, остальные возможности препроцессора (а их оч много)

Из минусов: очевидно это подойдет только для преустановленых тем, т.е. как сказали выше, если пользователь на сайте может менять отдельные параметры, то придется все равно извертываться с генерацией css

(Отредактировано автором: 10 Июня, 2014 - 11:15:58)



-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
esterio
Отправлено: 10 Июня, 2014 - 11:16:19
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




может поможет LESS. хотя лично с ним не работал, но знаю что там как раз есть переменные

DelphinPRO випередил

(Отредактировано автором: 10 Июня, 2014 - 11:43:32)

 
 Top
Contr
Отправлено: 10 Июня, 2014 - 11:38:25
Post Id



Частый гость


Покинул форум
Сообщений всего: 202
Дата рег-ции: Окт. 2011  
Откуда: с Марса


Помог: 1 раз(а)




DelphinPRO пишет:
простой вариант:

<link href="style.php" type="text/css">

а уже в скрипте style.php можете прочитать ваш style.css, или генерировать на лету.

И Ваш последний пост про SASS LESS - один и тот же подход. Удобно.
Особенно, когда стилей надо наделать много, а самих типов (body{background: ..., color: ...} ) немного.

А вот если наоборот - стилей оформления -2, 3, а отличий ну просто жуть как много - тогда чище, красивее и проще будет сделать через отдельные оформительские стили, подключаемые после основного

(Отредактировано автором: 10 Июня, 2014 - 11:41:27)

 
 Top
IllusionMH
Отправлено: 10 Июня, 2014 - 11:42:50
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Contr, основная задача: отдать полный стиль как можно быстрее.
Поэтому скомпилированные и минифицированные LESS/SASS могут оказаться быстрее и удобнее, чем CSS файл с php вставками или замена регулярками(или простая замена строк) в этом файле. Особенно когда он разрастется.
Да и "синхронизировать" любые изменения в стилях и php коде(а как вы сказали различий много) может оказаться еще тем геморроем.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Apache и другие веб-серверы »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB