среда, декабря 19, 2007

WEB 2.0: админки современных проектов

Веб 2.0 шагает по стране своими веб 2.0 ногами. Основные принципы современного нового дизайна понятны: строгая семантика вёрстки, минимум цветов, минимум элементов на странице, простые формы, крупные шрифты.

Это одна из сторон медали, та, что видна посетителю. Но как обстоит дело со второй стороной, админской панелью? Применяются ли эти принципы в дизайны в крупных вебдванольных проектах?

По своему опыту замечаю, что если пишу для себя, то никакой надобности в этом нет. Использую старые добрые таблички везде и повсюду. И шрифты делаю поменьше и графику почти не использую.
А вот если сайт потом отдавать другому дяде, чтобы он смог управлять и не мучил меня постоянные вопросами "а как вот это сделать?", приходится админку "осовременивать".

Интересно было бы глянуть как оформляют админки другие люди, ну или хотя бы услышать их мнение.

четверг, декабря 13, 2007

Wordpress :: количество постов в категории

Вчера в одном из проектов возникла необходимость сделать одну штуку для wordpress.
На главной странице (index.php) идёт циклический вывод постов с указанием категорий к которой они относяться. Так вот стало нужно помимо имени категории выводить ещё и общее количество постов в ней.

Т.е. должно было получиться примерно так:
  • Заголовок материала - категория 1 (5)
    • Текст материала
  • Заголовок материала - категория 2 (2)
    • Текст материала
  • Заголовок материала - категория 3 (10)
    • Текст материала
Ну и поскольку, стандартных методов я не нашёл (хотя вроде усиленно искал) пришлось делать всё самому (спасибо товарищам за консультацию).

Написал я такую функцию

function post_in_cat($mat_id) {
global $wpdb;

$taxonomys = $wpdb->get_results("SELECT * FROM $wpdb->term_relationships WHERE `object_id` = '$mat_id'");
foreach ($taxonomys as $v) { $tmp[] = $v->term_taxonomy_id; }
$taxonomys_str = implode(',', $tmp);

$numposts = $wpdb->get_var("SELECT `count` FROM $wpdb->term_taxonomy WHERE `taxonomy` = 'category' AND `term_taxonomy_id` IN ($taxonomys_str)");
if (0 < $numposts) $numposts = number_format($numposts);

return $numposts;
}

Функцию сохраняете в файл functions.php вашей темы. Сообщаете функции ID материала, в ответ получаете количество материалов в категории в которой он находитя. Да, функция лишена всякого изящества, но главное - РАБОТАЕТ :)

Как использовать
Находим место куда вы хотите вставить количество постов. В моё случае это было после вывода заголовка категории ( the_category(', ') ; ).
И вызываем нашу функцию ( echo post_in_cat($post->ID); )
И будет вам счастье.

З.Ы. Работает в wordpress версии 2.3.1

вторник, декабря 11, 2007

Разработка :: браузеры

Как практически любой вменяемый web-разработчик в своей практике пользуюсь браузером Firefox.
Да у него куча косяков. И памяти он жрёт невероятное количество и висит порою и запускается долго, но ни у одного бругого браузера нет такого ОГРОМНОГО количества аддонов.
Сразу скажу, что я не отношусь к той группе людей, которые навешивают на свой браузер все возможные примочки и потом удивляются, почему у них FF 500 мегабайт откушал.
У меня их всего 18 :).

Вот список, отсортированный по мере необходимости и моей к ним привязанности:

  1. Web Developer - среди разработчиков не нуждается в рекомендациях, а остальным он и не нужен
  2. Firebug - тоже самое, только его я использую больше когда имею дело с вёрсткой
  3. ScrapBook - хранилище всего всего. Умеет сохранять страницы полностью или частично не повреждая саму страницу. Позволяет также хранить закладки, имеет настраиваемую структуру каталогов и ещё очень много всего. За два года использования FF без переустановок в аддоне накопилось примерно 200 мегабайт всяческой информации.
  4. Gmail Manager - маленький плагинчик, показывающий состояние вашего почтового ящика (понятно, что ящик должен быть на Gmail). Помогает оперативно реагировать на входящую корреспонденцию.
  5. ColorZilla - пипетка, определяет цвет любого элемента на странице. Умеет ещё много чего.
  6. MeasureIt - линейка, измеряет линейные размеры элементов на странице.
  7. Html Validator - ну с этим понятно. Валидирует страницы, причём достаточно точно.
  8. Download statusbar - заменяет и расшираяет стандартный менеджер закачем. Аккурато прячется на нижней панели и не мозолит глаза.
  9. Flashblock - блокирует flash :) Добавить больше нечего.
  10. Adblock Plus - блокирует всё что захочеться.
  11. LoremIpsum Content Generator - генератор "рыбы". На этапе разработки бывает крайне полезен.
  12. All-in-One-Sidebar - объединяет все всплывающие окошки браузера в один сайдбар, который всегда можно скрыть.
  13. Undo Closed Tabs Button - кнопочка, позволяющая востановить случайно закрытый таб. Поддерживается история ваших путешествий.
  14. FireShot - продвинутая фоткалка экрана. Можно тутже наставить коментариев и пометок. Всё очень красиво и удобно.
  15. Speed Dial - быстрй запуск страниц. Иммитирует speed dial opera. Аддон от которого возможно вскоре откажусь. Что-то медленно странички открываются и особой надобности в нём нет.
  16. Stylish - управление пользовательскими таблицами стилей. Использую исключительно для развлечения.
  17. TorrentBar - поисковик по торрентам.
  18. Torrent Finder Toolbar - другой поисковик по торрентам. Использую два, потомучто ищут в разным местам.
Основной прнцип при расстановке панелей в браузере и рассовываний аддонов - это оставить как можно больше места под страницу.
Посмотреть мой рабочий браузер можно тут.

воскресенье, декабря 09, 2007

JavaScript: JQuery

На повестке дня два вопроса. Точнее вопрос из них только один, второе приятная вещь, которой научился недавно.

1. Вопрос про AJAX. Допустим, запрашиваем у скрипта определённое количество информации, которую потом нужно отобразить в виде таблицы. По началу я делал так: получаем данные в скрипте, там же формируем необходимый html код, возвращаем его в javascript и вставляем в нужную таблицу (метод appendTo). Вроде всё работает и всё хорошо.
Чуть погодя возник собственно вопрос - а правильно ли это?
Есть второй способ - получит данные и вернуть его ввиде JSON. После этого силами javascript на лету собирать нужную таблицу и вуаля.
Второй способ мне кажется правильнее и логичнее, но...
Плюс первого - формирование таблицы сервером пройдёт быстрее.
Минусы первого - возрастёт количество передаваемого трафика, что не может не повлиять на общую работу системы.
Плюсы второго - минимум трафика, так как передаются только необходимые данные.
Минусы второго - скорость формирования таблицы с помощью javascript оставляет желать лучшего.
Интересно, как всё же делать правильно? В общем, вопрос остаётся открытым.

2. Как я уже говорил, это не вопрос, а просто приятность, обнаруженная мною у JQuery.
Создавая объект на лету, часто приходиться задавать ему большое количество дополнительных параметров (класс, идентификатор, имя, оформление, ...).
Так вот, в JQuery можно создавать цепочки команд, применяя их к одному объекту. На примере будет всё понятно.
Можно делать так:
var object = document.createElement('div');
$(object).addClass('block');
$(object).attr('id', 'block_id');
$(object).text('#')
$(object).appendTo($(tr));
А можно так:
var object = document.createElement('div');
$(object).addClass('block').attr('id', 'block_id').text('#').appendTo($(tr));
Согласитесь, что получилось значительно короче и удобнее.

Ссылка по теме: обсуждение на хабре

воскресенье, декабря 02, 2007

Кодинг :: Zend Eclipse Beta 2

Вышла вторая бета отлчной среды разработки Zend. Говорят, что пофиксена огромная туча багов - хорошо, что поленился скачать первую бету.
Ну что ж потестируем.
З.Ы. Ссылки для скачивания: для виндов, для линукса

ActionScript :: удивительная штука

Итак, ActionScript - это ещё один из скриптовых языков, с которыми волею судеб мне пришлось столкнуться.
И вы знаете - не разочаровался.
Как в принципе и с любым другим языком, моё знакомство с ним началось с нарывания горы мануала и собирания списка полезных ресурсов.

Вот что мне удалось найти:
0. www.flash-mx.ru/help/ - Flash MX 2004 ActionScript Language Reference на русском - обязательно иметь под рукой всем начинающим или раздобыть где-нибудь скачиваемый вариант.
1. www.flasher.ru - огромнейшая куча всего на свете о флеше и actionscript, как неотъемлемой его составляющей. Правда лучше там начинающему ничего не спрашивать, поскольку скорее всего на ваш вопрос уже отвечали и вы будете посланы к великому старчу Гуглу, а топик закроют.
2. www.intuit.ru - материала много, но он неизбежно устаревает и не обновляется, но для начала сойдёт.
3. www.actionscript.com.ua - комментировать не буду, по имени сразу видно о чём и кто.
4. www.etcs.ru - в основном о флеше, но регулярно и про AS упоминают.
5. www.flash-ripper.com - Флэш Потрошитель - хороший ресурс с кучей всяких полезностей.
5.5. Введение в ActionScript 2.0 для пользователей ActionScript 1.0:
Естественно, это не всё, множество материала я надёргал с огромного количества ресурсов, сейчас уже и не вспомню с каких.
Думаю списочек будет полезен начинающим и естественно будет расти.
На сём откланиваюсь.