Просмотр архивов в категории: ‘Кодинг’
Сегодня в время верстки одного симпатичного шаблона для WordPress я столкнулся с одной шокирующей (для меня) фигней. В CSS есть такое замечательное свойство как @font-face, которое позволяет загружать нестандартные шрифты. Свойство замечательное, хотя мало кто его использует.
Вообщем, в шок меня повергло, когда я открыл свой шаблон в Safari 3 в Mac OS X. Посмотрите на скрин ниже, так «оно» не должно было выглядить:

По идее подключается симпатичный прописной шрифт «Monotype Corsiva», который прекрасно отображается в Windows в любом броузере, даже в том же Safari для винды. Поэтому я даже не мог представить, что столкнусь с таким глюком в Mac OS X. При этом гнать на кириллицу не стоит, потому что шрифт ее поддерживает.
Я отложил верстку на некоторое время и полез почитать фиды и буквально сразу же мне попадается интересная ссылка по теме. Последний nightly build WebKit'а (Сафари на нем и работает) поддерживает это самое свойство на 100%. Вот тот же файл верстки с тем же шрифтом, как оно должно было быть:

Вообщем, нет ничего совершенного. Ждем обновления Safari в ближайшее время. А пока линки для ознакомления:
Сегодня прямо день консультаций по WordPress. Буквально сейчас упало в почту сообщение с сайта с просьбой помочь разобраться в простом вопросе. Ответить почтой не получилось, т.к. Яндекс думает, что email отправителя не существует. Цитирую вопрос:
Никак не могу разобраться с Blogroll-ом в WP-2.2.1…
Вопрос 1: как его убрать из рубрикатора (списка категорий)?
Вопрос 2: как создавать разделы ссылок? Например, один раздел «ссылки» в колонке, второй — «реклама» в подвале.
Вопрос 1. Честно говоря, у меня такой проблемы никогда не возникало. Не думаю, что здесь есть какой-то особый секрет. В любом случае: категории для ссылок я создавал всегда в разделе «Links», а обычные категории добавлял через «Manage -> Categories». Может в этом кроется ответ на данный вопрос.
Вопрос 2. Ну это совсем просто. Нужно было только в Codex заглянуть. Функция get_links (); отвечает за вывод ссылок в WP:
get_links( category, 'before', 'after', 'between', show_images, 'order', show_description,show_rating, limit, show_updated , echo);
Пример. Есть 2 категории в линках: Друзья (id=1) и Реклама (id=2). ID можно узнать в общем списке категорий.
Для сайдбара «Друзья»:
get_links(1,'before', 'after', ' ', FALSE, 'name', FALSE, FALSE, -1, TRUE, TRUE);
Для футера «Реклама»:
get_links(1,'before', 'after', ' ', FALSE, 'name', FALSE, FALSE, -1, TRUE, TRUE);
* Примечание. WP съедает html код в примерах, поэтому обратите внимание следующее:
before — это открытие списка (таг LI в скобочках)
after — соотвественно закрытие
Вообщем, все предельно просто. Ответы лежат в изучении английского языка и Codex WordPress.
Из личного опыта. Есть 2 основных способа конвертации midi файлов в формат mp3. В первом случае Вам не повезело — у Вас Microsoft Windows (не важно какой версии) и Вам нужно будет покупать специальный софт и использовать режим live для такой конвертации.
Почему live? Потому что весь софт под винду делает конвертацию midi в mp3 путем проигрывания файла и переписывания в wav, а потом сжимания в mp3. Это крайне не удобно, потому что:
1) Ваша звуковая карта может не иметь midi-маппера (например, встроенный звуковой чип в мат.плату) — это нужно, чтобы избежать сторонних звуков в wav файле
2) Если это batch сотни midi файлов, то это займет до фига времени
НО! Вам повезло, если у Вас есть линукс (или вообще любая *nix ОС). Делюсь опытом и предлагаю вам очень простой способ, который сделает батч из 300-350 файлов примерно за 10-15 минут (зависит от «железа»). BASH-скриптинг — это вообще необходимая вещь в консоли. Итак, создаем файл midi2mp3.sh и пишем в него следующее:
BASE=/home/slaff/converting
for file in $BASE/midi/*.mid
do
out=`basename $file .mid`
echo «$file $out»
MP3OUTPUT="$BASE/$out.mp3"
if [ ! -e "$MP3OUTPUT" ]
then
timidity $file -Ow -o"./$out.wav"
lame --scale 2 --resample 11.025 -b 16 «$out.wav» «$MP3OUTPUT»
rm -f $out.wav
fi
done
Чтобы это работало, Вам понадобиться 2 библиотеки:
- TiMidity++ — это софтверный синтезатор.
- lame — всем известный mp3 кодек.
Скрипт довольно простой и понятный. Сначала мы задаем абсолютный путь к папке, где будем конвертировать. Затем цикл, в котором указываем директорию в midi-файлами. После чего идет конвертация в WAV и далее сжатие в mp3 и сохранение файла в указанной выше директории $BASE.
Положите этот скрипт где-нибудь рядом, в туже папку например. Запустите в консоли и будет вам счастье и куча съэкономленного времени.
Прочитал две статьи на тему «Как создать шаблон для WordPress» и был крайне удивлен подходу создавания шаблона. На мой взгляд, оба описания предлагают более трудоемкий и непрактичный подход. Я не люблю долго возиться с шаблонами и предпочитаю группировать все элементы как можно плотнее, избегая при этом лишнего кода. Отчего мои верстки для WP не страдают насыщенностью запросов.
В связи с этим я тоже решил поделиться своим опытом и предложить свой метод создания шаблона с нуля, который, на мой взгляд, практичнее и удобнее. Хочу отметить, что данный ebook — это мой личный опыт и я постарался наиболее просто показаться свой метод создания шаблона для WordPress.
Особенности моего метода — это компактность, практичность, удобство и универсальность. В ebook'е приведены полные листинги кода, этот же код я использую как базовый в шаблоне Slaff @ Reworked и других свох блогах. Я намерянно опустил ту часть, в которой следовало бы рассказать о CSS, потому что это несколько другая тема.
Скачайте и прочитайте ebook «WordPress Cookbook. Создание шаблона с нуля.» Распространяйте эту книжку в любом виде.
Столкнулся с тем, что в highlight.js текст не переноситься, а скролиться в блоке PRE. Я предпочитаю, чтобы текст переносился автоматом. Для этого существуют специальные css-свойства. Ниже привожу универсальный метод для всех броузеров и версий css, которым собственно и пользуюсь сам:
pre {
white-space: pre; /* CSS2 */
white-space: pre-wrap; /* CSS 2.1 */
white-space: pre-line; /* CSS 2.1/3 */
white-space: -moz-pre-wrap; /* Mozilla */
white-space: -hp-pre-wrap; /* HP printers */
white-space: -o-pre-wrap; /* Opera 7 */
white-space: -pre-wrap; /* Opera 4-6 */
word-wrap: break-word; /* Только для динозавра IE */
}
Для скролинга же блока используется «overflow: auto», чтобы отключить скроллинг и обрезать линию «overflow: hidden», а чтобы без скроллинга и полной линией текста «overflow: off;».
А я уже рассказывал как вывести списком «Любимые записи» aKa Noteworthy? Это плагин, который до сих пор находиться в beta-стадии. Мода, ага. Нам по фиг, скачиваем и устанавливаем его. Нужно будет сделать категорию специальную (noteworthy, evergreens, favorites, фигня — как вам угодно). Записи, котороые будут в этой категории можно помечать, например в цикле, каким-нибудь сердечком или как делаю это я допонительно — вывожу отдельный список на странице с архивами, это мои самые любимые посты в блоге.
Чтобы сделать такой же список, Вам понадобиться этот php код (css на усмотрение, у меня обычный список ul/li):
< ?php if (function_exists(nw_noteworthyLink)) { ?>
<div class="sidebox">
<h2>Любимые записи</h2>
<ul>
< ?php
# numberposts=10 - указываем кол-во ссылок (постов)
# category=28 - id любимой категории
# $luv - переменная для цикла foreach, можете поменять её название на любое другое
$luv = get_posts('numberposts=10&category=28'); ?>
< ?php foreach($luv as $post) : ?>
<li><a href="< ?php the_permalink(); ?>" rel="bookmark">< ?php the_title(); ?></a></li>
< ?php endforeach; ?>
</ul>
<p align="right"><a href="< ?php echo get_settings('siteurl'); ?>/category/noteworthy/feed/" title="RSS для Любимых записей" class="feedlink">Подписаться на RSS</a></p>
</div>
< ?php } ?>
Таким образом, выводиться список моих любимых постов с прямой ссылкой на них. В качестве названия используется название самого поста.
Можно изменить подход. Если убрать проверку на существование функции (т.к. фактически это проверка на существование одной из категорий (буржуи — они такие)) и проверять id категории или точное местонахождение (главная, постраничный просмотр, отдельная страница etc.), то можно вывести подобный списко для любой категории.
Пользуйтесь в своё удовольствие ;).
На многих wp-блогах на странице с архивами пишется количество постов, комментариев, категорий во всём архиве блога. Это легко сделать. Если вы еще не нашли решение (см. шаблон динозавра К2), то вот мини howto.
1) Нам нужен php код с запросом к базе данных, который посчитает количество постов, комментариев и т.д.:
< ?php
/* Количество постов */
$numposts = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts WHERE post_status = 'publish'");
if (0 < $numposts) $numposts = number_format($numposts);
/* Количество комментарие */
$numcomms = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->comments WHERE comment_approved = '1'");
if (0 < $numcomms) $numcomms = number_format($numcomms);
/* Количество категорий */
$numcats = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->categories");
if (0 < $numcats) $numcats = number_format($numcats);
?>
Этот код вставляете до вызова get_header (); и в body простым echo ($numposts, $numcomms, $numcats) выводите это значение.
Кстати, для таких вот симпотичных архивов Вам понадобиться 2 плагина: Extended Live Archives и Ultimate Tag Warrior .
Получил хороший и интересный заказ. Нужно придумать мини-cms для escort сайта. Весь вчерашний вечер обдумывал как это можно и лучше сделать. В голову пришло сразу два варианта: писать самому (cms несложная и должна состоять из нескольких модулей) или взять какой-нибудь движок вроде WordPress или Drupal и заточить его под нужды клиента.
Да, кстати, я был удивлён, когда посмотрел начинку местных escort сайтов — многие работают именно на Drupal! Видел даже на WP и MT. Возвращаясь к моей халтуре, хочу выделить следующие моменты. Эта CMS должна уметь и иметь:
- Одноуровневую систему авторизации
- Создавать/редактировать/удалять посты (т.е. элементы эскорта : )) )
- Включать/отключать эти посты
- Создавать/редактировать/удалять одноуровневые категории
- Мульти-загрузка изображений и маленьких видео-роликов
- Простейнький антилич для картинок
- Хранить данные (описания, урлы картинок, категории etc) в Mysql
Ну и разумеется, выводить это всё посетителям в нормальном виде. Самое сложно, как мне представляется, это будет управление постами и антилич (естественно, я возьму готовый). С одной стороны, мне интересно было бы попридумывать всё это, тем более не так сложно это на деле. С другой, я слишком ленивый, чтобы всё это самому придумывать. Вот сижу и продолжаю думать — поработать ручками или взять готовое? Что скажите, уважаемые?
BTW, кто-нибудь знает нормальную, пусть даже платную, CMS подобного рода ориентированную под нужды escort сайтов?
В Google группе «Вэб-мастер Клуб» проскочила ссылка на новый IDE для разработки вэб приложений на основе AJAX под названием «Aptana». Не поленился, скачал и попробовал.
Глубоко не стал копать, т.к. меня заинтересовало насколько в нём было бы удобно кодить, работать с html и css, ну и главное — посмотреть как работает этот IDE c различными js-библиотеками.
Для себя отметил следующие моменты:
1) Очень легко и понятно организована работа с библиотеками. Я еще не встречал таких редакторов, чтобы автоматически дополняли код функциями прямо из подключенной библиотеки.
2) Автодополнение html, css и js кода. Очень хорошо сделано — вот этого очень не хватает Dreamweaver'у, да и многим другим редакторам.
3) Помимо автодополнения еще хорошо разбивает код на отступы между тагами. Удобная, на мой взгляд, табуляция, оптимальная я бы сказал.
4) Подсветка ошибок. Не знаю, не очень что-то там подсвечивает ошибки.
Aptana кроссплатформенный редактор (Win, Linux, Mac) работает на Java JRE, т.е. жрёт память и нагружает процессор только в путь. Мне вообще не нравятся такие редакторы на Java. Считаю, что есть лучше и намного удобнее. Но, думаю, при наличии хорошего железа (1Gb Ram & P4 и выше) для начинающих в AJAX будет весьма полезным софтом.
Кстати, на оффсайте есть много скринкастов. Посмотрите, это любопытно.
Решился собрать все глюки в оформлении, вёрстке шаблона и пофиксить немного всё это дело. Конечно же, с учетом всех оставленных ранее комментариев и пожеланий (спасибо читателям ;) ). Ну и добавлю кое-какие новшества и мелкие изменения в само оформление. Итого у нас получается:
Внешнее:
- Баг в ширине «подвала» на 100%.
- Баг с отступами параграфов в комментариях.
- Баг с отступами в формуляре комментариев.
- Добавить дату создания поста в цикле.
- Баг в отображении списка блогролла.
- Профиксить цвета в двух css классах.
Внутренее:
- Поставить ссылку «Редактировать комментарий» на своё место.
Улучшения, новое:
- Прикрутить плагин «Цитировать выделенное»
Добавить прозрачный псевдно-стеклянный фон для контента.
- Вернуть del.icio.us.
- Новый формуляр для контактов. (Пока отменяется)
- Новый Colophon.
- Новая страница архивов.
- Иконка для RSS (классная 3D иконка (от 16 до 128 пикселей в комплекте))
Эта запись постоянно обновляется по мере продвижения по списку. Комментарии и пожелания привествуются.
Красным жирным помечены пункты, которые нужно сделать. Остальное уже сделано.