Блог пользователя - v1adimir@drupal.org

Сломались Views3 при апдейте с rc3 на release 3.0

27 декабря 2011 в 7:23

При апдейте при помощи drush сломались Contextual Filters. Чуть позже будет пара скриншотов. Ни решения, ни issue такого пока не обнаружил. Еще изучаю проблему.

В общем, имейте в виду!

Как сделать Views Block с выборкой nid'ов > чем nid текущей страницы?

25 октября 2011 в 20:23

Drupal 7, views 3. Есть задача сделать views block, в котором бы показывались материалы с nid бОльшим, чем у nid данной страницы.

То есть нужно текущий nid использвать как value в filter criterion. Но как?

МТС блокирует Skype

8 октября 2011 в 22:12

Только что прочитал на /. и малость офигел – http://yro.slashdot.org/story/11/10/08/0326235/russian-telco-mts-bans-sk... Там есть ссылка на pdf с Договором, вот выдержка:

Quote:
ДОГОВОР
об оказании услуг связи физическим лицам

Закрытое акционерное общество «КОМСТАР-Директ» (ЗАО
«КОМСТАР-Директ», 119121, Москва, Смоленская-Сенная пл., д. 27, стр.
2), именуемое в дальнейшем «Оператор», с одной стороны и физическое
лицо, указанное в п. 2 Заявления о заключении настоящего Договора
(далее — «Заявление Абонента»), именуемое в дальнейшем
«Абонент», с другой стороны, совместно именуемые «Стороны»,
заключили настоящий Договор об оказании услуг связи физическим лицам,
именуемый в дальнейшем «Договор», о нижеследующем:

I.
ПРЕДМЕТ ДОГОВОРА
1.1. Оператор оказывает Абоненту Услуги, а Абонент обязуется оплачивать
Услуги в соответствии с условиями настоящего Договора, Приложений к
нему, Правил оказания услуг «Домашний Интернет» и «Домашнее ТВ»
(далее — «Правила»), являющихся неотъемлемой частью настоящего
Договора.
...

3.4. Абоненту запрещается:
...

3.4.4. Использовать Услуги для целей передачи голосовой информации по
сети передачи данных, в том числе по сети Интернет, то есть Абоненту
запрещается использовать такие программы, как Skype и ей подобные, для
передачи голосовой информации по сети Интернет.

Особая радость в том, что нашего локального провайдера, как раз недавно купил МТС.

Посоветуйте Live Support Chat

1 октября 2011 в 13:53

Есть сайт, на джумле пока еще. Заказчик хочет на него повесить live chat/messenger, чтобы девушки с ресепшена могли отвечать на вопросы в режиме реального времени.

Посоветуйте решение? Может имеет смысл повесить фоном друпал с каким-нибудь shoutbox'ом?

Индийский код 2. Второй аргумент против самописов

17 сентября 2011 в 18:34

В продолжение темы http://www.drupal.ru/node/68559

Краткое содержание предыдущего поста – занялся поддержкой сайта на самописной CMS. Не могу сдержаться, чтобы не выложить наиболее очаровательные решения. Осубую пикантность задаче придает тот факт, что изначально CMS была разработана под cp1251, а в последнем проекте, уже после сдачи и запуска ее стали переводит на UTF-8.

Вот реализация функции toLower (toUpper() такая же точно)

<?php
function toLower($content) { 
    
$content strtr($content"АБВГДЕЁЖЗИЙКЛМНОРПСТУФХЦЧШЩЪЬЫЭЮЯ""абвгдеёжзийклмнорпстуфхцчшщъьыэюя"); 
    return 
strtolower($content); 
}
?>

Казалось бы малость смешно, но все правильно? Болт там! strtr() работает побайтово и пока этот файл был в cp1251, оно работало. Но после конвертации в UTF-8, естественно, начались чудеса. Фамилия "Агарков" превращается в "ѰѳѰрѺѾѲ".

Отсюда простой вывод – в Друпале, Юмле, Джанге... подобный баг наши бы и поправили мнгновенно, в самописной CMS работать тестором приходится исключительно разработчику данной CMS или тем лохах ответственным разработчикам, которым доверили поддержку проекта. ))

p.s. только не надо гнать в комментариях, что в django такой баг невозможен. )

Индийский код...

14 сентября 2011 в 20:00

Недавно я продемонстрировал, по меткому замечанию kyky, "жгучий баттхерт" к кодировке cp1251.

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

И обнаружил там вот такую функцию...

<?php
function cp1251_to_utf8 ($txt)  {
    
$in_arr = array (
        
chr(208), chr(192), chr(193), chr(194),
        
chr(195), chr(196), chr(197), chr(168),
        
# ... и так до chr(255)
    
);  
     
    
$out_arr = array (
        
chr(208).chr(160), chr(208).chr(144), chr(208).chr(145),
        
chr(208).chr(146), chr(208).chr(147), chr(208).chr(148),
        
# ...
    
);  
     
    
$txt str_replace($in_arr,$out_arr,$txt);
    return 
$txt;
}
?>

Я считаю, что мило... Еще раз повторюсь, это код написан в 2011 году.

Параметры из одного views во views block на этой же странице

15 августа 2011 в 16:53

Есть страница со вьюзом и exposed filters. На этой же странице есть, блок где происходит обработка другого вьюза вручную, через views_get_view('хххх').

Вопрос, как можно ли сделать чтобы обновления одного из этиз вьюзоз по ajax вызывало бы обновление и другого? Даже так, как из блока можно перехватить параметры из ajax вызова?

Сейчас вызовы выполняются через get и параметры выбираются из $_GET.

Перехват/предобработка данных от exposed filters?

9 августа 2011 в 13:43

Есть views с exposed filters Date. Проблема – пользователи могут ввести некорректные данные – несуществующий день месяца или вообще не ввести день и т.п…

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

Требуется ли санитизация данным введеным в CCK?

9 августа 2011 в 11:54

Есть imagefield, из него собираю в модуле img и в title планирую поставить
$node->field_big_photo_start[0]['data']['title']

Нужно ли значение этого поля прогонять через chec_plain ли оно зачищается в процессе спасения нода и его безопасно и так использовать?

Вот как оно Михалыч Ж(

4 августа 2011 в 22:57

Пытаюсь зайти на drupal.org и вижу очаровательное сообщение

Вот оно как пользоваться провайдером у которого несколько тысяч пользователей через один gateway интернетом кормятся.

Порядок вызова preprocess

3 августа 2011 в 22:22

Есть задача, нужно для модификации модуля cck_pager вызывать preprocess_content_field().

Вот здесь, http://drupal.org/node/223430, указано следующий порядок вызова preprocess функций:

1. template_preprocess
...
3. moduleName_preprocess

Определил маятема_preprocess_content_field() в маятема/template.php, но это препроцессор вызывается после cck_pager_preprocess_content_field().

Сколько стоит написать полное ТЗ?

25 июня 2011 в 12:09

Вопрос, возник у S_F, процитирую:

Quote:
Геморой это да. Я лично по неопытности пару раз влетал с работой когда нет вменяемого ТЗ. Теперь только стандартные вещи без него берусь делать.
Кстати, коллеги, а во сколько стоит оценивать работу по написанию полного ТЗ? И насколько подробно его стоит расписывать?

По-моему, тема достаточно любопытная, чтобы обсудить отдельно.

Лаборатория генодиагностики БиоЛинк

28 февраля 2011 в 9:47

Собственно сабж – Лаборатория генодиагностики БиоЛинк, http://biolinklab.ru/

p.s. косяки с контентом уже не наши. )

Аудиторская служба «Нобл Компани»

2 февраля 2011 в 17:47

Небольшой сайт серьезной компании – http://noblecom.ru/

P.S. Если у кого будут проблемы с показом, то значит еще не отработались исправления в dns-зоне. Сегодня только прописали новый сервер. Если сильно хочется посмотреть, то можно прописать себе в hosts ip-адрес вручную 91.217.129.140 ))

Можно ли реализовать "модульный" хук в template.php?

20 декабря 2010 в 12:27

Иногда при темизации сайта нужно реализовать "модульный" хук, например, hook_menu_alter.

Делать ради одной функции отдельный модуль ломает, хотелось бы его реализовать непосредственно в кастомной теме, но ВОТ КАК? Я что-то не могу придумать и ничего найти по этому поводу в гугле. Это вообще, принципиально возможно?

Вышел Drupal 6.20

16 декабря 2010 в 2:27

Релиз без секьюрити фиксов, только поправлен ряд багов занесенных в трекер, но обновить инсталляцию рекомендуют.

Поменялся robots.txt, не поменялись -- .htaccess и (default.)settings.php