WordPress 2.5 откладывается, а мы готовимся!

Хоть нам и обещали подарить релиз WordPress 2.5 к 10 марта, но судя по прогрессу (на сегодня 59%) что-то у них не успевается к сроку.

Марк Гош на Weblog Tools Collection обещает, что к 17 числу этого марта всё будет «в лучшем виде», но, глядя на эти 59%, я как-то сомневаюсь немного. Поживём — увидим, как говорится.

Миколка перевёл статью, где сравнивают текущую версию (2.3.3) с грядущим релизом. Статья так и называется «WordPress 2.5 vs WordPress 2.3.x», почитайте, там много иллюстраций и неоднозначных выводов.

Но хоть 2.5 ещё и нет, но подготовиться к нему следует. Вот что советует Лоррель на БлогГеральд (т.н. Upgrade Preparation Checklist):

  1. Проверьте совместимость: Посетите WordPress Кодекс и изучите совместимость своей темы и совместимость плагинов. Если какие-то плагины не попали в список, лучше всего посетите страничку их разработчика, в поисках новой версии.
    Вообще, конечно, если тему вы брали не стандартную или делали её сами, то найти её в списке будет проблематично. Может быть, в скором времени выложу список изменений в тегах разметки тем.
  2. Обновите тему и плагины: На странице кодекса «Переход с 2.3 на 2.5» даны некоторые советы, которые помогут при обновлении плагинов и тем.
  3. Проведите дозапусковое тестирование: В этом вам поможет плагин WordPress Upgrade Preflight Check , который определит готовность вашего блога к работе с последней версией WordPress. Особенно хорошо проверится этим плагином тем, кто планирует проводить апгрейд с ранних версий движка.
    Пока что по ссылке доступна только версия, проверяющая совместимость с WordPress 2.3.3, но автор уверяет, что сразу после релиза 2.5 (или почти сразу) будет доступна соответствующая версия. Так что заходим проверяем.
  4. Отключите и/или удалите старые плагины: Пробегите по списку плагинов и деактивируйте и удалите с сервера все плагины, которые вы не используете, но которые висят в списке. Если плагин используется, то не забудьте обновить его.
  5. Распечатайте список своих плагинов: Перейдите на страницу управления плагинами в админ-панели и распечатайте список всех плагинов. Отметьте те из них, без которых работа вашего блога будет не возможно. Если вдруг что-то пойдёт не так, то вы, во всяком случае, сможете восстановить плагины, найдя их по названиям из списка. (Вообще всё должно пройти отлично)
  6. Валидация: Если вы сами настраивали свою тему, то самое время прогнать её через серию валидаторов, дабы удостовериться, что с ней всё в порядке. Изучите страницу «Валидация веб-сайтов» в Кодексе. Раз уж вы взялись за это дело, то почему бы не пройти чеклист «Разработка веб-сайта шаг-за-шагом».
  7. Резервная копия: Сделайте резервную копию базы данных, файлов темы, папки с плагинами. Забэкапьте вообще всё. И на всякий случай сделайте даже xml-экспорт всех записей из блога.
  8. Расслабьтесь и почитайте: Выделите время на чтение WordPress документации по установке и апгрейду, а не бросайтесь за обновление в торопях. Полезно изучить:

    По ссылкам материалы на английском. Некоторые из переводов можно найти тут.

  9. Проверьте форум поддержки WordPress: Если вдруг что-то пошло не так или у вас не получается корректно обновиться, то поищите ответы на офф.форуме или создайте там соответствующий топик.
    Для русскоговорящих могу посоветовать два форума: форум поддержки Максима и форум поддержки от myWordpress.ru. Ну или можете попробовать обратится напрямую ко мне, многим уже помог:)

И небольшой список англоязычных чеклистов, для различных проверок:

Если же у вас несколько блогов, то возможно будет полезным изучить:

От себя хочу добавить, что не надо бояться апгрейда. Для самых робких советую подождать не 2.5, а хотя бы 2.5.1, когда уже обычные пользователи отловят глюки/баги, а так же на всякий случай прочтите «Как безопасно обновиться до WordPress 2.3 по шагам», думаю, разница будет не слишком большая.

И ещё, если какую-то из ссылок в статье, ведущую на англоязычный ресурс, очень хочется увидеть в переводе — пишите, может ваше желание совпадёт с моей возможностью)

Как сделать тему WordPress виджет совместимой за 3 шага

В комментариях к последней статье «Виджеты — это очень просто!» попросили рассказать, как же сделать тему виджет совместимой. Честно говоря, я думал, что на офф.сайте это описано, а как выяснилось написано то оно написано, да не совсем там.

В общем, отрыл я пошаговое описание того, как нужно «грамотно» виджетизировать свою тему, которое ниже предлагаю вам в своём переводе с небольшими корректировками и дополнениями.


Шаг 1. Редактируем functions.php

Сперва необходимо удостоверится в том, что в папке с вашей темой находится файл function.php, а если таковой отсутствует, то создайте его сами.
Следующим шагом нам необходимо определиться — как у нас формируется сайдбар. Откройте свой sidebar.php и попытайтесь вникнуть в код и понять, что используется для формирования сайдбара — списки (<ul>) или дивы (<div>).
Например, у Артема сайдбар стандартный, из списков и заголовков второго уровня, что видно по коду:

А вот у Максима напротив, сайдбар состоит из последовательных блоков div, обрамленных изображениями «скругленных углов», а уже внутри дива находится контент виджета. Кусок кода, чтобы было (возможно) проще понять, о чём я говорю:

Так вот — первый вариант, как я уже и писал, можно обозвать стандартным или скорее классическим, а следовательно и встраивание в сайдбар по «классической схеме» будет проходить максимально безболезненно.

Достаточно в functions.php добавить блок кода, чтобы в итоге получить сайдбар на основе списков с заголовками 2 уровня:

Если файл functions.php вы не создавали с нуля, то советую сперва просмотреть его на наличие указанного выше кода, чтобы не получилось дублирования.

Если же, вы используете, какой-то более извращенный метод (ничего личного, Макс:-)), то код может принять устрашающий вид, аля:

Дам небольшие пояснения, строка, передаваемая в параметр ‘before_widget’ будет выводится как начало любого виджета, а ‘after_widget’ — конец. Т.е. тут мы задаём тэги обрамления виджета. ‘before_title’ и ‘after_title’ соответственно определяют обрамление заголовка виджета (это все те «Рубрики» и «Самое читаемое»). В итоге мы получим дивный сайдбар с заголовками 4 уровня.

Для особо замороченных существует возможность получить при выводе виджета его id (генерится из имени виджета) и класс (получается в процессе обработки виджета). Т.к. ‘before_widget’ пропускается через sprintf, то в любое место строки можно передать %1$s и %2$s, чтобы при выводе получить соответствующие параметры. Надеюсь «замороченные» поняли, о чём я.

Шаг 2. Проверяем сайдбар и добавляем на него виджеты

Чтобы понять работает наш сайдбар или нет, нужно добавить на него несколько виджетов.
Идём в админ панель, далее «Внешний вид > Виджеты» и лицезреем (или нет, если забыли сохранить и/или загрузить functions.php в свою тему) панель сайдбара, куда можно (и даже нужно) натаскать пару-тройку виджетов. И главное нажать «Сохранить», после чего перейти к третьему шагу.

Шаг 3. Добавление сайдбара в шаблон

Ну и наконец-то то, ради чего всё делалось — подключение сайдбара в шаблон.
Тут есть простой и очень простой способ. Оба заключаются в редактировании файла sidebar.php вашей темы.
Простой способ:
Вставить сразу после строки <div id=»sidebar»> следущий код

а перед последним </div> код — <?php endif; ?>
Очень простой способ заключается в том, чтобы понять для себя раз и навсегда, что никто уже не использует шаблоны без виджетов и, стерев предварительно ВЕСЬ код из sidebar.php, скопипастить туда:

Чем меньше кода в подключаемом файле, тем быстрее у нас всё работает (хотя на таком уровне это конечно «мёртвому припарки», но всё же).

Теперь заходим в свой блог и наблюдаем работающие виджеты.


Если что-то не получилось, то пишите в комментарии о проблемах, с которыми пришлось столкнуться, возможно, ответы будут полезны и другим.

И ещё, я думаю — писать пост про создание темы с несколькими виджетами или нет? Пригодится тебе такая статья, читатель, или нет?

Виджеты — это очень просто!

«Не знание технологий не освобождает от…», не, не то. «А я вот сделал, а оно не работает…».

К чему это я? Ах да, в последнее время ко мне несколько разных человек обратились примерно с одним и тем же вопросом:
«Почему, после того как я добавил в sidebar.php код кнопки/баннера/ссылки, ничего не изменилось и я их не вижу?!»
На что я сразу выдаю контр-вопрос (нет-нет, я не еврей):
«А вы используете в своей теме виджеты?!»

Просто не все осознают, что всё что находится ниже строки:
if ( !function_exists(‘dynamic_sidebar’) || !dynamic_sidebar() )
в sidebar.php будет показано ТОЛЬКО в том случае, если вы не включили ни одного виджета. В противном случае будут отображаться ваши настройки из «Внешний вид > Виджеты».

Обычно после того, как я это объясняю, следует вопрос — «Ну и как мне поместить свой код в сайдбар/виджет?!», да очень просто — если это обычный хтмл-код (а это в 90% случаев баннеры и стандартные ссылки/кнопки), то достаточно добавить стандартный текстовый виджет и поместить в него готовый код.

Но что делать, если виджет должен выводить результат выполнения какой-то функции? И ведь действительно, почти все «мощные» плагины, такие как ‘Popularity Contest‘ (русская версия), позволяют получать обработанную информацию из своих функций. Например, akpc_most_popular — самые популярные, akpc_most_popular_in_cat — самые популярные в какой-то категории и т.д.

Да, я знаю КАК можно сделать свой виджет, путём редактирования functions.php, но даже мне порой бывает лень это делать, а что говорить о людях, для которых внести изменения в файл темы (причём не просто копи-паст, а ещё и осмысленное редактирование) — это нечто равносильное тасканию пятидесяти килограммовых мешков?

Для таких страдальцев нашёлся чудо плагин Custom Function Widgets (скачать), авторства Kaspars Dambis из Латвии.

Как это работает.

  1. Скачиваете и устанавливаете как и любой другой плагин.
  2. После активации в меню «Внешний вид > Виджеты» появится новый раздел «Custom Function Widgets», где вы можете указать необходимое количество настраиваемых виджетов.
  3. Custom Function Widgets - admin panel - Screenshot

  4. Теперь перетащите один из «Custom Function» плагинов в свой сайдбар и нажмите кнопку настройки.
  5. Введите в поле Function name имя нужной функции (например, st_related_posts, чтобы вывести связанные посты, при помощи плагина Simple Tags) и жмём «сохранить».
  6. Вуаля, если всё сделали правильно, то можем полюбоваться на результат в сайдбаре блога.

Теперь объясню какие поля в настройках за что отвечают:
Widget title — заголовок виджета. Он будет показан при выводе (если вы специально не отключите, о чём ниже), а так же это название будет видно в панели управления виджетами.
Function name — имя функции. Указывается без кавычек и скобок.
Function variables — переменные, передаваемые в функцию. Если функция для работы требует параметры, то указывайте их тут. Важно сохранять последовательность переменных, а так же перечислять переменные через запятую, если их несколько.
HTML before и HTML after — хтмл код, который будет выводиться перед и после вашей функции. Обычно это обрамление тэгами списков, ну или возможно подключение какого-нибудь java-script.
Галочка Remove Widget title from output отключает вывод заголовка виджета в сайдбар, а Remove the default widget wrapper — отключит разрывы между виджетами.

В общем — пробуйте и пишите отзывы тут или сразу автору плагина, который очень оперативно ответил и исправил найденный мною баг. Ещё раз ссылка на скачку плагина.

10 важных фактов о раскрутке блога

Перевод поста 10 Important Facts of Blog Promotion.


Наверное, каждый блоггер желает, чтобы его блог и количество читателей росло. К сожалению, большинство новых блоггеров мало знают о раскрутке, когда заводят свой первый блог. Хорошая новость состоит в том, что они достаточно быстро во всё вникнут, если будут целеустремленно работать по продвижению блога. Вот список из десяти вещей, которые я заучил для себя за время своей блоггерской практики.

1. На получение существенного трафика с поисковых систем требуется время.

Обычно новому блогу требуется минимум несколько месяцев для того, чтобы стать достаточно «трастовым» для ПС и получать с них более-менее существенный трафик. Если вы планируете в будущем получать основной приток посетителей с поисковых систем, то хорошим советом будет так же сфокусироваться и на других источниках трафика, особенно на начальном этапе.

Создание блога, оптимизированного для ПС, критично, если вы хотите максимизировать поисковый трафик, так что с самого начала позаботьтесь о создании отличного контента, на который другим захотелось бы ссылаться и обсуждать.

2. Не весь трафик одинаково полезен.

Источники трафика редко бывают хоть сколько-то похожи. У меня хороший процент посещений блога из соц.сетей, и я могу с уверенностью заявить, что трафик с соц.сетей в большинстве своём хуже в плане «возврата читателей», чем из других источников. Если обращать внимание только на статистику, не озабочиваясь истинным положением дел, то можно погрузится в иллюзорный мир. Да, несомненно, посетители это классно, но что если они уходят с блога через 30 секунд и никогда уже не возвращаются?

В этом плане люди, попавшие в блог по ссылке из поисковой системы, намного лучше, ведь они перешли по ссылке в поисках чего-то, что вы можете предложить. Но и другие типы трафика имеют свои сильные строны, как, например, шанс, что посетитель, перешедший по ссылке с другого блога, останется и заинтересуется, намного выше, учитывая доверие к давшему ссылку. У всех источников трафика есть свои плюсы и минусы, так что имейте это ввиду, когда анализируете посещения.

3.Ключ к успеху — регулярный постинг.

Большинству блоггеров приходится публиковать новые посты, чтобы поддерживать трафик на определенном уровне. Некоторые, правда, умудряются генерить ощутимый трафик с поисковиков на старые записи, без добавления новых, но это скорее исключение из правил. Новые посты полезны и для уже существующих подписчиков, а так же повышается видимость блога в индексе поисковых систем.

Регулярный постинг не подразумевает — писать каждый день, просто нужно публиковать контент с определенной периодичностью. Почти все успешные блоги притягивают трафик при помощи новых постов, появляющихся регулярно.

4. Стабильный трафик почти невозможен.

Хотя я и писал, что для поддержания трафика на определенном уровне необходимы регулярные обновления в блоге, но это не значит, что у посещаемости не будет перепадов. У каждого блога бывают взлёт и падения и редко, когда два дня идентичны. Таков естественный ход вещей, так что тут остаётся только смириться или постоянно ощущать дискомфорт, при снижении кривых на графиках. Радуйтесь, когда статистика растёт, а в момент упадков просто продолжайте писать, не обращая на статистику излишнего внимания. Блоггинг был бы довольно скучным, если бы не подобные флуктуации трафика.

5. Постоянные посетители — вот ваша цель.

Да, приятно наблюдать большие цифры в графе «уникальные посетители вашего блога», но, сколько из них вернутся повторно? Постоянные посетители — основа любого блога. Шанс того, что, однажды подписавшись по rss или email, человек снова вернётся на блог, довольно велик, поэтому сфокусировать своё внимание на подписчиках — очень здравая мысль.

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

6. Разная польза от ссылок.

Получение входящих ссылок — основная задача большинства блоггеров, и не с проста. Ссылки с чужих блогов создают дополнительный трафик, добавляя известности в блогосфере, а так же продвигая ваш сайт в поисковых системах. Обычно стремление к получению входящих ссылок обуславливается желанием повысить свой ранг в ПС, но не стоит забывать и о других факторах. Если ваш блог находится в конкурентной нише, то узнаваемость и признание может быть критичным, для того, чтобы посетители обращали внимание именно на вас. Получение входящих ссылок с известных блогов вашей ниши не только повысит поисковый трафик, но и прибавит вам «балов» в глазах читателей, что не менее важно, особенно для начинающих блоггеров.

7. Важно соблюдать баланс.

Распределение источников трафика поможет вам избежать потери большого количества посетителей, если случится что-то непредвиденное. Ранжирование в поисковых системах не постоянно, особенно этим грешит Гугл, который всегда готов наложить санкции на блог, если ему кажется, что тот нарушает их правила поведения. Если вы слишком сильно зависите от поискового трафика, то можете потерять большую порцию посетителей в любой момент.

То же самое касается и трафика с социальных сетей, где, даже если вы стали получать большие дозы трафика, никто не гарантирует, что это будет продолжаться сколь-нибудь долго. Лучшем решением будет распределить свои усилия и сфокусироваться на получении трафика из разных источников, вместо одного. Такой метод всегда безопасней и исключает зависимость от специфического источника трафика, как единственного средства к существованию.

8. Не стоит игнорировать даже самые маленькие источники трафика.

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

Аналогично и с комментированием на других блогах — навряд ли один комментарий привлечет много посетителей к вам, но те кто перейдут по ссылке будут намного более заинтересованы в прочтении вашего блога, т.к. вы уже сумели привлечь их внимание своим комментарием.

Не нужно «тупо» суммировать трафик из мелких источников, чтобы оценить его полезность. Поверьте, такие вот «мелкие» источники были основой для множества успешных блогов.

9. Налаживание связей — критично.

Все преуспевающие блоггеры окружены плотной сетью из других преуспевающих блоггеров. Это как раз то, что я не понимал, до того момента, как сам стал блоггером, но довольно быстро осознал всю важность подобного взаимодействия.

Сильная социальная сеть поможет обрести друзей и коллег, которые смогут помочь советом, предоставить ссылку на блог, проголосовать за пост в соц.медиа, подарить вдохновение и оказать поддержку, а так же вполне могут стать вашими компаньонами в будущих проектах. Чтобы наладить подобную связь необходимо желание помогать другим и не боятся самому просить помощи.

10. Трафик на блог можно купить за относительно небольшие деньги.

Если вы заинтересованы в получении дополнительной раскрутки или желаете, чтобы блог рос быстрее, есть множество вариантов рекламного привлечения трафика на блог. PPC реклама может быть очень эффективна и не дорога (всё зависит от слова и фразы, по которой вы собираетесь получать посетителей). Реклама с StumbleUpon — один из вариантов. Вы можете купить их трафик примерно по $0.05 за посетителя. Даже размещение баннеров на других блогах может обойтись вам относительно дёшево. Подержите ракламу месяц или больше и попробуйте посчитать цену за клик, которая, скорее всего, будет довольно маленькой.

Выпадающее меню “имени Suckerfish” в WordPress

За последнее время сразу несколько человек поинтересовались у меня, а не в курсе ли я, как делать выпадающие меню в WordPress? Я честно отвечал «Нет», потому что с содроганием вспоминал, как когда-то, на заре изучения web-кодинга, пытался сделать более-менее нормальное выпадающее меню. Триста раз проклял я тогда и java-script, и html, и, конечно же, все браузеры.

Но раз люди спрашивают, то появляется жгучее желание им помочь, вот и полез раскапывать, как дела обстоят сейчас и что новенького умные дядьки намутили, и даже, знаете ли, нашёл. Причём нашёл и очень сильно удивился тому, как это было сделано — вот что значит мало практиковать вёрстку и работать с CSS, потому что, по сути, для того, чтобы намудрить ОТЛИЧНОЕ выпадающее меню, достаточно знать:
а) как делать ненумерованные списки в html (<ul></ul>)
б) уметь копипастить файл-стилей

Ну что же, если эти два пункта и то вызывают у вас сомнения, то буду предельно доступно излагать по шагам, а нетерпеливые могут сразу перейти сюда и посмотреть/пощупать своими руками, итак

Шаг 1. Готовим список пунктов меню руками

Сейчас объясню суть создания выпадающего меню из списков и после этого мы сделаем простейший список, который и будем мучить.

Как известно, выпадающее меню состоит из элементов/ссылок, при наведении на которые, мы получаем доступ к дополнительному списку с под-элементами. В обычной ситуации главные пункты меню располагаются в строку, а каждая группа под-элементов представляет собой столбец ссылок, появляющийся после наведения на элемент главного меню.
Вот мы и будем делать именно списки — внешний для главного меню и внутренние — для каждого набора под-разделов.

Всё просто и, я думаю, дополнительные разъяснения не требуются, главное не забыть указать у внешнего меню class=»nav» и id=»nav-one».

Шаг 2. Стилизуем списки

Сам файл стилей не слишком большой, но между тем целиком код в блоге я приводить не хочу, поэтому советую для дальнейшей беседы скачать файл стилей, а я буду просто рассказывать про принцип работы, ссылаясь на него.
Берём файл sfstyle.css и открываем блокнотом или любым другим редактором (если кому интересно, то я использую Zend Development Environment или, проще говоря, ZDE).
Ну что же, приступим.

Первым делом уберём у всевозможных списков все отступы и прочие списочные атрибуты, это делается в .nav, .nav ul. После чего выводим их в строчку, а не как обычно, за это у нас отвечает float:left; в .nav li. Сразу обращу внимание на то, что мы везде применяем относительное (relative) позиционирование (position), чтобы элементы появлялись в строго заданных им местах, относительно родительских элементов.

Теперь нам необходимо спрятать внутренние списки с глаз долой и отображать их только при наведении. Тут мне попалось два способа:
1) Найденый на A List Apart — для вложенных ul элементов устанавливаем атрибут display:none;, а при наведении (li :hover ul) возвращаем в нормальное значение block.
2) Попавшийся на одном Ajax-ориентированном сайте — прятать список за экран (top:-999em;), а потом устанавливать позицию при наведении.

Так как я взял CSS из второго варианта (почему станет ясно позже), то с первым предлагаю поэкспериментировать самостоятельно.

В принципе на этом можно было бы и закончить, если бы не всеми любимый Internet Explorer (будь он неладен), который плохо обрабатывает псевдо-класс :hover, поэтому переходим к следующему шагу.

Шаг 3. Немного java-script и jQuery

Как это не прискорбно, но java-script придётся применять в любом случае, но я имею вам предложить целых два варианта (ну на самом деле их, наверное, больше), а вы уж сами решайте каким воспользоваться. Объяснять как именно ЭТО работает, не буду, скажу только, что всё сводится к прицеплению обработчкиков при наведении для всех li внешнего списка.
Способ 1 — Чистый java-script

Способ 2 — C применением jQuery

Кому как, а мне визуально больше нравится второй вариант, к сожалению, тут есть одно «НО» — необходимость подключения библиотеки jQuery. Не скажу, что это огромный минус, потому что: а) она идёт в комплекте с WordPress, так что ничего дополнительно скачивать не придётся; б) возможно какой-то из установленных у вас плагинов уже ею пользуется. Сама библиотека весит 20-30кб, поэтому особо не обременит пользователя, к тому же грузится она только первый раз, а потом подгружается из кэша. И не стоит забывать, что она позволяет делать многие интересные вещи, о чём ниже, в пункте 4.

Сейчас я объясню как её подключить:
1. Проверьте, не подключена ли она уже каким-нибудь плагином, для этого откройте любой пост в своём блоге и в html коде поищите слово «jQuery».
2. Если его нет, то лезем в файл темы header.php и где-нибудь перед </head> вставьте
<script type=»text/javascript» src=»http://ваш_домен/wp-includes/js/jquery/jquery.js»></script>

Кстати, если кто не знает, то приведенные выше java-script листинги нужно тоже вставить в хэдер до </head>, обрамив с обоих сторон <script type=»text/javascript»>…</script>

Шаг 4. jQuery-бонус — плавное меню

Раз уж мы вынудили пользователя скачать лишних целых 25кб, то надо его за это как-то наградить:)
Как вы смотрите на то, чтобы сделать появление меню плавным? Думаете сложно? А как вам вот такой код?

Помоему просто отлично, а главное понятно) Добавлю лишь, что вместо «fast» можно добавить «slow» или любое число в миллисекундах.

Тем, кто всё это прочёл думаю стоит посетить эту страничку с примером, где теперь должно быть всё понятно, а если остались какие-то вопросы или я что-то не точно написал — прошу в комменты.

Теперь думаю при помощи этой методики не составит труда делать различные меню — при помощи всяких там wp_list_categories и иже с ним.

ПыЦ: Только не спрашивайте меня, почему SuckerFish. Как я понимаю — это означает рыбу прилипалу или я ошибаюсь? Есть среди читателей знатоки ангельского языка?