Блог пользователя - AnNik

Уведомления о личных сообщениях

2 июля 2011 в 8:59

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

Главное, что должен уметь делать модуль - уведомлять пользователя о новых личных сообщениях (privatemsg) без перезагрузки страницы.

Связь с админом / модератором

2 июля 2011 в 8:52

Дамы и господа, подскажите плз, существует ли модуль, позволяющий пользователям, в т.ч. незалогиненным, отправлять сообщения админу сайта либо пользователю с определенной ролью (модератору)?
Примерный необходимый функционал:
- ссылка в интерфейсе "связь с администрацией";
- отправлять сообщения через этот модуль должны иметь возможность все пользователи, как залогиненные, так и незалогиненные и незарегистрированные;
- чтобы форму отправки сообщений можно было защитить капчей (модуль Captcha);
- получателем сообщений может быть только админ (uid=1) и пользователи с определенной ролью (должно настраиваться в настройках модуля);
- получатель должен видеть в интерфейсе, что у него есть непрочитанные сообщения (типа как в PrivateMSG: "Новых сообщений: 10");
- должна быть возможность ответа на это сообщение: зарегистрированным пользователям - через сайт, незарегистрированным - на мыло (которое незалогиненный пользователь должен указать при отправке сообщения).

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

SingleSignOn - странности при авторизации

9 февраля 2011 в 14:15

Экспериментирую с единой авторизацией с помощью SingleSignOn на сайтах в мультисайтинге, столкнулся с таким багом.
Если пользователь логинится на сайте-сервере (в терминологии SingleSignOn), то все ок.
Если же он логинится на клиенте (опять же в терминологии SingleSignOn), то после логина вместо страницы, на которой он был в момент нажатия кнопки "Войти", например, site.ru/node/555, его после авторизации перекидывает на странную страницу site.ru/?, которой как бы типа на сайте вообще нету.

Минимальное количество слов в ноде

22 ноября 2010 в 18:42

Установил сабж в 10 и столкнулся с тем, что количество слов подсчитывается корректно только в том случае, если слова разделены пробелами. Если же они идут через перевод строки или абзац, то хоть 100 строк по 1 слову сделай, все равно говорит "слов мало!" и не дает сохранить ноду.
Насколько я понимаю, это баг ядра? Если так, то, кто в ладах с инглишем, закиньте плз инфу на д.орг...
И, может, кто-то знает какой-нибудь модуль, который это дело фиксит?

Ограничить использование PrivateMsg

2 августа 2010 в 13:44

Скажем, разрешить пользоваться личкой только пользователям, имеющим не менее 5 нод и/или 10 комментов, и/или зарегистрировавшимся на сайте не менее недели назад.
Как такое можно сделать?
В стандартных настройках модуля ничего похожего не нашел...
Вроде как у PrivateMsg есть свое API, кто-нибудь с ним разбирался?

Загрузка аватарок через /tmp - баг или фича? [решено]

23 июня 2010 в 7:47

На новом хостинге столкнулся с тем, что упорно не хотят грузиться аватарки. При загрузке выдается сообщение "Указанный файл pict.jpg не может быть загружен. Разрешены только JPEG, PNG и GIF изображения."

В логах при этом наблюдается следующее:
---
is_file() [function.is-file]: open_basedir restriction in effect. File(/tmp/php6JVfAe) is not within the allowed path(s): (/path/to/user/homedir:.) в файле /path/to/user/homedir/public_html/site.ru/includes/image.inc в строке 117.
---

При детальном разборе ситуации оказалось, что у хостера прописан open_basedir (/path/to/user/homedir:.), а Друпал упорно пытается загружать аватарки через папочку /tmp в корне сервера. Никакие ухищрения с настройками временной папки в admin/settings/file-system не помогли, прописывал туда и /tmp, и tmp (без слеша), и /path/to/user/homedir/public_html/site.ru/tmp - все бесполезно, друпал упорно пытается грузить аватарки именно через /tmp в корне сервера...
При этом через upload и через imce файлы загружаются нормально.

Вопрос, собственно, в сабже: что это, баг или фича? И что сейчас делать? Крайне маловероятно, что хостер согласиться открыть /tmp в корне сервера, убрать open_basedir и т.п...
PS. Сменить хостера и хакать ядро Друпала не предлагать;)

Ошибки в CCK [решено]

17 июня 2010 в 8:06

Дамы и господа, натолкните плз на мысть, в чем может быть дело...
Поставил ССК, включил, все ок.
При создании полей выдаются такие ошибки:

user warning: Table 'content_type_mynodetype' already exists query: CREATE TABLE bd.content_type_mynodetype ( `vid` INT unsigned NOT NULL DEFAULT 0, `nid` INT unsigned NOT NULL DEFAULT 0, PRIMARY KEY (vid), INDEX nid (nid) ) /*!40100 DEFAULT CHARACTER SET UTF8 */ in /************/includes/database.inc on line 550.
user warning: Table 'content_type_mynodetype' already exists query: CREATE TABLE bd.content_type_mynodetype ( `vid` INT unsigned NOT NULL DEFAULT 0, `nid` INT unsigned NOT NULL DEFAULT 0, `field_time_value` LONGTEXT DEFAULT NULL, PRIMARY KEY (vid), INDEX nid (nid) ) /*!40100 DEFAULT CHARACTER SET UTF8 */ in /*********/includes/database.inc on line 550.

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

warning: Invalid argument supplied for foreach() in /**********/sites/all/modules/cck/content.module on line 1022.

и введенные значения полей не сохраняются в базе...
Куда копать? :oO:

Поля-картинки в профиле пользователя

10 июня 2010 в 15:09

Дамы и господа, подскажите пожалуйста, существует ли в природе модуль, позволяющий добавлять в профиль пользователя дополнительные поля типа "картинка", причем выбирать эти картинки чтобы можно было из папочки на сервере (путь к которой задавать в настройках поля)?

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

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

Типы файлов для аватарок - где настраиваются?

9 июня 2010 в 7:14

Подскажите плз, никак не могу найти, где настраиваются разрешенные расширения для файлов аватарок.
Почему-то с недавнего времени стало ругаться при загрузке .jpg, .jpeg, говорит, можно, а .jpg - низзя...

Несколько строк дополнительных полей - как сделать? [решено]

30 мая 2010 в 13:36

Хотелось бы к ноде подцепить нечто типа таблички с переменным количеством строк.
Например так: нода - описание продукта; дополнительные поля - разные причиндалы.
К примеру так:

Нода: Агрегат1 (название, описание, фото и т.п.)
Дополнительные причиндалы агрегата1 (Название, Количество, Цена):
Название:Винтик Количество:2 Цена:10
Название:Шпунтик Количество:5 Цена:20

Нода: Агрегат2 (название, описание, фото и т.п.)
Дополнительные причиндалы агрегата2 (Название, Количество, Цена):
Название:Гайка Количество:2 Цена:10
Название:Болтик Количество:5 Цена:20
Название:Шайба Количество:10 Цена:3
Название:Затычка Количество:4 Цена:33

То есть к каждой ноде хотелось бы прицепить дополнительные поля, причем у каждой ноды может быть разное количество строк этих полей (табличка с разным количеством строк).
При этом надо, чтобы при создании/редактировании ноды можно было бы добавлять/удалять эти дополнительные строки в любом количестве, в том же экране. Что-то аналогичное тому, как добавляются/убираются опции опроса в модуле poll.
Возможно ли такое сделать через CCK? Если нет, то подскажите плз модуль, дающий такую возможность.

Можно ли сделать 2 крона на одном сайте?

27 мая 2010 в 7:48

Хотелось бы, чтобы какие-то функции выполнялись по крону, скажем, каждый час, а какие-то - раз в сутки.
Такое возможно реализовать?
Соорудить в рамках Друпала какой-нибудь cron2.php и навесить на него некоторые hook_cron2?

Подскажите антиспам-модуль...

11 мая 2010 в 11:20

...от которого требуется примерно следующее:
- чтобы ссылки в нодах и комментах могли оставлять только пользователи, зарегистрировавшиеся не менее D дней назад и написавшие не менее N нод и/или С комментов;
- чтобы пользоваться личкой (модуль privatemsg) тоже могли бы только пользователи, зарегистрировавшиеся не менее D дней назад и написавшие не менее N нод и/или С комментов.
Или может это как-то можно реализовать через настройки, а я этого в упор не вижу?

Существует ли модуль транслитерации?

29 апреля 2010 в 13:55

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

Модули голосования

28 апреля 2010 в 12:57

Дамы и господа, подскажите плз модуль голосования, который бы:
- позволял выбрать несколько вариантов ответов;
- позволял бы одновременно иметь несколько активных опросов;
- желательно, но не обязательно - позволял бы цеплять каждый из вышеупомянутых опросов к конкретной ноде.

Проблемка с /taxonomy/term/1/all

17 апреля 2010 в 0:20

Меню на сайте имеет такую структуру:
Пункт 1 -- /taxonomy/term/1/all
- Подпункт 1.1 -- /taxonomy/term/11
- Подпункт 1.2 -- /taxonomy/term/12
Пункт 2 -- /taxonomy/term/2/all
- Подпункт 2.1 -- /taxonomy/term/21
- Подпункт 2.2 -- /taxonomy/term/22

где термины 11, 12 - дочерние для 1; 21, 22 - дочерние для 2.

Вывести сообщения пользователя: и так, и сяк, и эдак...

7 марта 2010 в 21:43

Надо выводить сообщения пользователя в разных разрезах. Как минимум:
- вообще все сообщения, независимо от типа материала (и blog, и page, и собственные, нестандартные типы - чтобы все шло подряд);
- сообщения пользователя, относящиеся к определенному термину таксономии (например, чтобы при входе на taxonomy/term/5 были кнопочки: "Все сообщения" и "Мои сообщения").
Подскажите плз модуль, позволяющий сделать такое (или может даже можно как-то исхитриться сделать это в ядре?)

Показывать блок на определенных страницах...[решено, но...]

28 января 2010 в 22:03

Неожиданно столкнулся с такой, казалось бы, детской проблемкой...
Надо, чтобы некоторый блок показывался бы только на одной-единственной странице: taxonomy/term/5, к примеру.

Иду в настройку блока, ставлю крыжик "Показывать только на перечисленных страницах.", в поле "Страницы:" пишу
taxonomy/term/5

... и блок выводится не только на taxonomy/term/5, но и на всех taxonomy/term/5?page=ххх, чего мне ну совсем не надо...

Что я делаю не так?

PS. Понятно, что можно пойти путем "Показать, если данный PHP-код возвращает TRUE", но крайне не хочется...

Тюним Tracker

16 января 2010 в 13:42

Tracker - модулек малюсенький, но тяжеленный...
Даже в исходном коде видим комментик:
// TODO: These queries are very expensive, see http://drupal.org/node/105639

У меня Tracker начал ронять базу на неслабом дедике при таких объемах: около 10 тысяч юзеров, чуть больше 100тыс нод и 500тыс комментов.
Шаманство над my.cnf помогало весьма слабо... Пришлось покопаться в коде и поколдовать над запросами.

Мультисайтинг - как добиться, чтобы пользователи переходили с сайта на сайт без авторизации на каждом?

26 декабря 2009 в 8:16

Собственно сабж...

Структура такая:
site.ru - основной сайт
sub.site.ru - поддомен основного сайта
site2.ru - второй сайт

Общие таблицы:
"access"
"authmap"
"filters"
"filter_formats"
"languages"
"locales_source"
"locales_target"
"permission"
"pm_block_user"
"pm_index"
"pm_message"
"pm_tags"
"pm_tags_index"
"profile_fields"
"profile_values"
"role"
"sessions"
"sequences"
"smileys"
"users"

При переходе с site.ru на sub.site.ru и обратно - никаких проблем, авторизовавшись на одном из сайтов, пользователь автоматически становится авторизован и на втором.
А вот чтобы то же самое работало при переходе с site.ru на site2.ru и обратно, никак не могу добиться...
$cookie_domain на втором сайте ставил и site.ru, и site2.ru, ни так, ни так не работает...
Подозреваю, что упустил в настройках site2.ru какую-то сущую мелочь, но что именно? Никак не соображу... Наведите плз на мыслю...