Упрощение prosilver

Удаление скруглений, избавление от фиксированной ширины и полей

Начиная с версии 3.1.x, моды были заменены "расширениями", которые выполняют ту же самую функцию, но без изменений в исходном коде движка.
Аватара пользователя
c61
Разработчик модов
Сообщения: 249
Зарегистрирован: 24.08.13 16:46
Благодарил (а): 20 раз
Поблагодарили: 62 раза

Упрощение prosilver

Сообщение c61 »

Всякие закругления, градиенты и тени на мой взгляд только портят стиль prosilver. Конечно, многие будут спорить, но взгляните на Modern UI Windows 8 - "плиточный" интерфейс многим пришёлся по вкусу, да и стиль Metro phpBB довольно популярен.

Скрипт, приведенный ниже, не преобразует prosilver в модерновый стиль, а лишь убирает (точнее, закрывает в комментарии) все излишества в файлах css стиля (скругления, градиенты, тени блоков), тем самым упрощая жизнь дизайнерам, желающим получить в дальнейшем некое подобие Metro или Flat или непоймичегоплиточного ) Или сразу использовать результат (по вкусу - после перекрашивания) как более-менее приемлемый ) Скриншот:
undecorated.gif
Примитивный скрипт (назовём его undecorate.php) разыскивает все файлы css в текущем каталоге и модифицирует их как было сказано выше:

Код: Выделить всё

<?php
// undecorate: undecorate style
// v.0.0.1 (c) 2015 c61 http://c61.no-ip.org
echo "undecorate: processing...<br />\n";

function remstrs(&$css,$search) {
    if(preg_match_all("/(.*\n)/iu",$css,$strings)) {
        $new_css = '';
        $comment = false;
        foreach ($strings[0] as $string) {
            $skip = $comment;
            $string = str_replace("\n","",$string);
            if ( !$comment ) {
                if ( strpos($string,"/*") === 0 ) {
                    $skip = true;
                    if ( strpos($string,"*/") === false ) {
                        $comment = true;
                    }
                }
            } else {
                if ( strpos($string,"*/") !== false ) {
                    $comment = false;
                    $skip = true;
                }
            }
            if ( !$skip ) {
                if ( strpos($string,$search) !== false ) {
                    $string = "/*".$string."*/";
                }
            }
            $new_css .= $string . "\n";
        }
        $css = $new_css;
    }
}

$css_files = glob('*.css');
foreach ($css_files as $css_file) {
    if ( ($css = file_get_contents($css_file)) === false ) {
        echo "Can't get file $css_file <br />\n";
    } else {
        echo "Processing file $css_file <br />\n";
        $css = str_replace("\r","",$css) . "\n";
        remstrs($css,'border-radius');
        remstrs($css,'border-top-left-radius');
        remstrs($css,'border-top-right-radius');
        remstrs($css,'gradient');
        remstrs($css,'bg_button');
        remstrs($css,'bg_header');
        remstrs($css,'bg_list');
        remstrs($css,'box-shadow');
        $css = str_replace("\n\n\n","\n",$css);
        if ( file_put_contents($css_file,$css) === false ) {
            echo "Can't put file $css_file <br />\n";
        }
    }
}
echo "done.<br />\n";
?>
Ну а дальше разбираемся и улучшаем :D

Ещё одно "излишество" или даже не "излишество", а на мой извращенный вкус "некрасивость", это фиксированная ширина prosilver. Для избавления можно модифицировать common.css:
  • ищем body { и padding: 12px 0;, заменяем на padding: 0;
  • ищем #wrap { и комментируем max-width: 1152px;, там же padding: 15px; заменяем на padding: 0 15px;
  • сразу после #wrap { будет @media для max-width: 1220px иmax-device-width: 1220px, комментируем весь этот @media
Результат:
wide.gif
Ну и дополнительно, чтобы "шапка", "подвал", таблицы разделов и форумов, посты, поиск и прочее тоже растягивались на всю ширину и выглядели поприличнее, ищем в common.css .headerbar {, и перед ним добавляем

Код: Выделить всё

#page-header, #page-footer, .forabg, .forumbg, .post, .panel {
	margin-right: -15px;
	margin-left: -15px;
}
@media only screen and (max-width: 700px), only screen and (max-device-width: 700px) {
	#page-header, #page-footer, .forabg, .forumbg, .post, .panel {
		margin-right: 0;
		margin-left: 0;
	}
}
В результате получаем:
widehead.gif
P.S. Насчет перекрашивания - постил на phpbbguru и у себя о замене цветовой модели.

P.P.S. Некоторые "дизайнеры" на гуру воспринимают скрипты, изменяющие стили, как нечно враждебное, видимо, из-за плохого знания php, и мнения, что у них отбирают их хлеб :D Ну и пусть дальше с этим живут, а мы постараемся сберечь своё здоровье, подрываемое ручным ковырянием в css ;)
ZeldoR
Сообщения: 3
Зарегистрирован: 18.03.15 09:07
Благодарил (а): 3 раза

Упрощение prosilver

Сообщение ZeldoR »

Скажите пожалуйста, а как это установить/активировать у себя?
Аватара пользователя
c61
Разработчик модов
Сообщения: 249
Зарегистрирован: 24.08.13 16:46
Благодарил (а): 20 раз
Поблагодарили: 62 раза

Упрощение prosilver

Сообщение c61 »

Если про скрипты-упрощалки, то можно создать свой стиль, наследующий шаблоны от prosilver, и тренироваться с темой... Скрипт правит файлы css напрямую - в текущем каталоге - и в браузере набираете

Код: Выделить всё

http://ваше_доменное_имя.домен/путь_к_форуму/styles/ваш_стиль/theme/имя_скрипта.php
или что-то в этом роде... Более подробно ответить сейчас не могу, далеко от дома ;) Если очень-очень интересно и сами не разберётесь, к понедельнику могу попытаться выпустить более подробную инструкцию, но Вы лучше поищите на phpbbguru.net, там можно найти необходимую инфу, предупреждаю: вопросы лучше не задавать, они нервные и скорее всего пошлют... в поиск :lol:
Ответить