Брунгильды случайного дизайна|Случайный текст и изображения
Мне всегда противен был консьюмеризм подхода «скачал-поставил». Не, ничего против него не имею — в самом деле, не буду же я сам строить дом, если у меня есть деньги на рабочих, да и продукты я все же в магазинах покупаю. Просто во всякой простоте есть свои неудобные стороны. Особенно если речь идет о создании веб-сайтов.
Ну чего может быть проще, чем взять CMS-ку или блоговый движок, накинуть пару плагинчиков, одеть бесплатную тему и кричать «Главное — контент!». Ну или забацать на коленке «социальную сеть», ненароком смахивающую на еще сотню таких же быдлосетей (черт, я много повторяюсь, да?), а порой — с точно таким же расположением блоков и стрелочек, как на Хабре. В печенках, да. Тошно и противно смотреть на очередное замусоривание Интернетов.
Но не суть. Все же многие не знают, что такое валидность, как тут со мной недавно поделился откровением DimoninG, и я склонен ему верить. Ровно как и склонен верить тому, что большинству людей не посильно программирование во всех его проявлениях, причем не потому, что это действительно так сложно, но потому что они его не понимают. Я когда-то тоже не понимал, как программируют игры и как делают сайты.
Личные блоги и стали такими популярными (стендэлоны, конечно, много меньше, но факт остается фактом), потому как их очень легко поставить и настроить, не копаясь в коде. И это отчасти хорошо. Вот только нужно еще стремление сделать свой блог уникальным, а здесь и форма очень важна.
Но стоит ли бояться показывать, как делать правильно (точнее, так, как считаешь правильным), и не бояться делать что-то самому?
Вот тут Мекал обновил свой бложек и поставил плагинчик под названием wp_quotes, с которым я уже сталкивался, когда помогал с админкой клевого 42 is the Answer (читайте первый в мире тексткаст! — на правах агитки). Случайные надписи и изображения — весьма и весьма интересный инструмент оживления блога, добавления ему забавности, что ли. Он не сильно новый, но и не очень замыленный. Так что, да, забавный — чего стоят гертруды на лепро-дёти.
Чем хорош wp_quotes? Он работает по принципу «поставил, настроил и забыл» (современный veni-vidi-vici, ага). Не, все круто и удобно. Но.
Но — опять куча кода, опять лишнее обращение к базе. Поэтому, пока мне делать нечего, вот вам маленький гайд, как забацать случайный вывод всякой фигни на страницы своего блога.
Все настолько просто, что мне не понадобится ни высшего образования, ни 5-летнего опыта в пыхапэ. А за основу возьмем кусочек из другой «брунгильды» (повелось от гертруд), Hello Dolly, плагина, который добавляет случайную надпись в админку.
Случайная надпись где угодно
WP Quotes еще автоматически подключает вывод случайной надписи прямо в bloginfo('description') и это еще один его плюс, который потакает лени блоггера во всех позах.
Но мы, как всегда, пойдем другим путем — не будем стесняться редактировать тему, за это деньги не берут.
Для начала нам нужен список фраз (Антон Веринов убеждает нас, что их стоит выдумать самому). Их можно хранить в массиве или еще как, но самый логичный способ — брать просто тектовую переменную, где отдельные фразы будут разделены переносом строки:
$lyrics = "Первая надпись
Вторая надпись
Третья надпись";
Ну или с ручным указанием переносов, это без разницы.
$lyrics='Первая надпись'."\n".
'Вторая надпись'."\n".
'Третья надпись'."\n";
После этого осталось только вычленить отдельные строчки и представить массивом (тут сразу становится жалко, что не сделал сразу массивом :)
$lyrics = explode("\n", $lyrics);
И вывести случайный элемент массива, учитывая их количество всего.
_e(wptexturize($lyrics[ mt_rand(0, count($lyrics) - 1) ]));
Не забываем, что, если нам нужен вывод русских афоризмов (а не кракозябр), тот файл темы, в котором мы используем эту штуку, должен быть конвертирован в UTF-8 without BOM.
Элемент псевдослучайности
При включенном кешировании, естественно, на одной страничке афоризмы не будут меняться так просто (только по истечении срока и перезагрузке странички), но я попросту забыл, как в WP Cache отключить кеширование небольшого блока. Но, собственно, это и хорошо — потому как для блога лучше все-таки урезать случайность. Иначе страница с таким контентом никогда не отдаст код 340, даже если два года как не менялась.
В качестве «случайного» числа для статичности результата возьмем, например, ID страницы (для постов — это будет их айди, а для home, category и прочих — айди самого верхнего):
_e(wptexturize($lyrics[ (get_the_id())%(count($lyrics)) ]));
А чтобы, на главной странице, категориях и тегах фраза все-таки обновлялась (ведь они и так часто обновляются), используем старые добрые conditional tags — например, все тот же if(is_single()). Ну или, как вариант, там выводим что-то особенное.
Случайный тизер RSS
Аналогичный код используется в Random text (и, кажется, в RSS Footer) от Макса-Который-Сайт. Поэтому, если так уж нужна случайная надпись, зазывающая подписаться на фид в конце поста, то опять забиваем на плагин и используем код выше. Но со следующими изменениями.
Во-первых, стоит задуматься, а нахрена 10 таких надписей на простыне главной? Поэтому используйте код с if(is_single()) и будет счастье. Я бы еще добавил проверку на количество символов в статье, чтобы не отображать в коротких — там кнопка RSS и так в области видимости.
Ну а во-вторых, чтобы не писать триста раз один и тот же унылый тег ссылки, легко пользуемся вставкой прямо в строчки псевдотегов [RSS]что-то там[/RSS], которые потом заменяем с помощью str_replace() на <a href="...."> и </a> соответственно.
Случайное изображение
Ну наконец, еще одна тривиальная задача — вывод случайного изображения (гертруда, ау).
Тут проще всего использовать уже готовый ротатор от Automatic. Это небольшой скрипт, воспринимающий все изображения форматов .gif, .jpeg и .png в папке, где лежит, выбирающий случайное из них и выдающий в качестве результата. Кроме этого он умеет менять папку и выдавать не только изображения, но и хтмл, но нам и так сойдет.
Берем вот файлик самого скрипта, кидаем, например, в предварительно созданную папку rotator, созданную внутри папки нашей темы. В эту же папку (/wp-content/themes/%theme%/rotator, не запутайтесь) и закидываем сколько душе угодно изображений, ротацию которых будем осуществлять.
После этого можно использовать случайную картинку в качестве фона, прописав в нужном месте в CSS:
background-image:url(rotator/rotator.php) no-repeat;
Ну, или прямо в HTML:
<img src="<?php bloginfo('template_directory'); ?>/rotator/rotator.php">
Естественно, что в последнем случае лучше сократить путь до ротатора, поместив его в корневую сайта и использовав bloginfo('url').
Ну вот у вас и своя личная гертруда на блогосайте.
Несмотря на то, что название файла не будет меняться, даже при включенном кешировании или ETags для разных изображений будут изменяться last-modified и size, так что перегружаться они будут. С другой стороны, одно и то же изображение будет загружаться каждый раз заново, что можно было бы решить переписыванием скрипта так, чтобы отдавать не картинку, а ссылку на нее. Но, в принципе, без разницы — и так будет работать.
Фишки
Можно придумать еще мульон подобных фишек, уйдя от случайности — например, менять оформление сайта в зависимости от времени суток или источника перехода посетителя (при переходе с блога врага — выдавать белую страницу с матерным словом). Просто разогреть фантазию до нужной кондиции и не считать, что контент — это единственная вещь в блоге. Ведь одно то, что многие называют текст, который они пишут и должны любить, таким сухим и чисто механическим определением, говорит о многом.
Единственная сложность в подобных «фишках» — как ублажить поисковики, которые не сильно любят частое изменение контента, и как оптимизировать этот процесс, чтобы не сильно повышать нагрузки на сервера и браузеры пользователей.




На тему уникальности дизайна и прочего вопрос весьма спорен. Когда уже писал про это mak-sim.ru/dizain-v-mire-web-20 но в двух словах идея такова. Девяносто процентов блогов, что я читаю я и в глаза не видел потому как все они у меня в RSS.
Ээээ, а с авторами в комментариях не общаешься? И когда подписываешься на блог, не заходишь на страницу, прежде чем подписаться? :) Сколько людей заходят без всяких RSS — да, последних больше (40 с чем-то по версии фидбернера против 20 обычных). Это какбе не просто первое впечатление, это дополнительное оформление.
К тому же, я не отдаю все в фид — код и примеры предпочитаю оставлять за тегом more. Потому что, на мой взгляд, простыни в ридере тоже на хрен не сдались.
И еще. Вебдваноль не ограничивается блогами, поэтому дизайн нужен — даже если введут оставление комментариев через почту/RSS. Ведь надо все же зайти на сайт посмотреть, что как, подписаться, еще что-то — а для этого и нужен дизайн (который не только красивости, но и интерфейс как таковой). Наконец, не всю функциональность можно и нужно выносить «наружу» — да и необходимость монетизации не позволяет.
Как оформлен кабинет человека, которому ты звонишь — очень важно. Потому что когда-нибудь ты можешь придти к нему и посмотреть, CEO он мегакорпорации или школьник, зарабатывающий на адалте из своей квартиры.
Не спорю. Лишь подчёркиваю, что я лично мягко скажем не помню дизайны всех блогов из моего ридера, а их много. У большинства (там где отвечаю на комменты) просто жму PgDown и глазами на автомате ищу форму комментариев. Ответ приходит на e-mail.
Кстати, мечтаю таки о отетах через почту а-ля Google Groups
А кто говорит о запоминании — есть два фактора необходимости хорошего дизайна. Это приятность для того, чтобы человек не ушел сразу, и удобство использований функций (один раз в жизни или постоянно — без разницы).
Ответ в почте сделать легко (вроде как HTML-письма позволяют это), ровно как и втиснуть в RSS-ленту форму. Однако, в последнем случае запрещены js, насколько знаю (по крайней мере, в ридерах), и спрятать ее не получится. Можно сделать линк на спецстраничку, абсолютно пустую — только комментарий, на которую отвечаешь и форма. Я подумаю, в общем, над этом для ВП, а уж перенести опыт на тот же Друпал будет легко.
Вот у тебя неплохой блог, правда, хотя что-то не особо выбирался комментировать. Но я тут заглянул на сам сайт, и у меня пошла кровь носом :)
1. Метафора «игра в слова» не раскрыта. «Книжка» вписана в общее пространство как-то странно — просто кольца пририсованы, и все.
2. Сочетания цветов. Они, конечно, могут быть приятны, но — зачем самый задний фон в диагональ? Неадекватное применение оранжевого, кнопка фида с белыми уголками вместо прозрачных...
3. В сайдбарах блоки не особо адекватно выделены, блок регистрации называется «облако тегов», кнопка «вход» маленькая и с обрезанным текстом
4. В главном тексте не оформлены абзацы, в итоге — нечитаемая простыня.
5. Настройки просмотра комментариев — зачем? Почему именно выпадающими списками и почему они хотя бы не оформлены? Зачем эти тайтлы вначале комментариев (их даже в ЖЖ мало кто пишет, а там это епернистическое сворачивание этому должно, по идее, способствовать)? Непереведенные куски на английском, «не проверенно». Смысл в элементе «ответить», если он не используется?
И да, офигенейшая штука — поле мыло в контактах картинкой, а прямо под ним то же самое, но для жаббера — ссылкой :)
Ты мне сейчас возразишь, что главное — сам текст. Ну а я тебе сразу возражу на твое возражение, что мне этот текст увидеть сложновато. Да, многие находят все, что надо и радуются тому, что есть на мэйлру, фишках, хуяндексе и одноклассниках (ни в коем случае не сравниваю с твоим блогом :) — но у меня от них нервный тик и стремление нажать кнопочку «крестик».
Так что, 40% вероятности, если бы я тебя не знал (по тви, кажется :), я бы ушел с твоей страницы не читая.
О! спасибо за критику.
Проблемы текущего оформления связаны именно с переездом на принципиально новый для меня друпал и тотальной нехваткой времени. Занимаюсь функционалом и наполнение весьма отрывочно и очень мало.
И если уж отвечать по пунктам то :)
1. Это метафора тянется ещё со времён. brihaspati.livejournal.com а откуда она взялась тогда я вообще ни разу не помню. Скорее всего скоро уберу нафиг останется просто «Мак Сим Blog»
2. Тема... в поиске я. Эта сейчас нравится и не раздражает. Есть шанс, что просто закажу кому нибудь готовую.
3. Название блока — ляп. Поправил.
4. Принято.
5. Ляп.
рано кнопочку нажал.
Просто сужу по себе — если меня заинтересовала статья или сам человек то я обычно судорожно ищу кнопку такую рыженькую :) или слово волшебное RSS, а чаще просто в адресной строке браузера кликаю на иконку и дальше любой блог изучается уже в привычном и родном Google Reader.
Как будет редизайн — стучи мне, раскритикую еще. Я в последнее время только этим и занимаюсь, на свое времени нет... Вот у меня тоже ляп :). Обработка абзацев в комментах неверное, да все равно хотел прикуртить типографику — сделаю.
Вот, кстати, по поводу уведомлений на почту еще забыл (может, и у тебя в блоге так, не помню). Многие делают так, что в письме ссылка на комментарии вида #comment, а надо — #comment-345, чтобы человек сразу на него мог перейти, прочитать дальше и сразу достать до формы, а не листать хрен знает сколько.
Но этому я как-нибудь посвящу целый выпуск, как плагинчик будет готов — а то тут в комментариях такие простынки пишу :)
Про рыжую кнопку — есть обсуждение интересное www.mannodesign.com/nuzhn...pka-rss-na-sajte. Я вот лично подписываюсь я.тулбаром, так что мне кнопка не особо и нужна, и все же я придерживаюсь мнения, что она нужна, и необязательно стандартная и оранжевая — просто помимо вписывания в дизайн, необходимо ориентироваться на функциональность элемента — она нужна для того, чтобы быстро подписаться, а значит требования: видимость и опознавание как RSS-кнопки.
Кстати, как считаешь, может в конце статьи (я ведь не умею коротко писать) тоже стоит ее дублировать, чтобы, если что, не надо было прокручивать вверх (для тех, кто подписывается не браузером)? Я вот в раздумьях.
Думаю, что не надо перегружать сайт. Давай не забывать про тематику наших блогов. Ты думаешь, что тебя или меня читатет кто-то кто не знает про тулбар? Это раз. Чтобы подскочить на самый верх достаточно просто щёлкнуть по Home.
гертруды у тебя походу не работают, так как постоянно вижу того же самого мужика с крестом. или это не «гертруда»?
—
Не, это типа аватара. Ну что-то вроде ). Рандомная только надпись, и то там привязка к страницам по id.
в приведенном коде, где указывается путь к рисунку ротатора, ты забыл знак вопроса: <?php
Угу, еще заметил «утверждает нас». Боже, надо все-таки вычитывать тексты, а то я на это забиваю.
Но ведь многие «начинающие» юзеры могут не разбираться ни в хтмл, ни в пхп, и времени на это может не быть. Так почему бы не воспользоваться всем тем, что относится к категории «просто и быстро»? В этом нет ничего плохого. Лишь путем каких-то изменений, изучений, мучений получается то, что получается.
Если я, например, не могу придумать приличный дизайн, то тупо использую блэк-энд-уайт.
Чё-то я нихера разобраться с гертрудой не могу... Помогите, люди!.. Как её оформить проще всего?.. И чего там пропустили?..
@Олеж: ничего там не пропущено.
1) качаем файл скрипта,
2) помещаем его в тему,
3) прописываем что нужно в CSS,
4) PROFIT!
Спасибо, до 3 пункта всё отлично, а вот с css — проблема, валидатор ругается, что ни делал уже.
Потому что надо: background:url (rotator/rotator.php) no-repeat; (в статье неправильное -image)