drupal

warning: Creating default object from empty value in /usr/data/www/drupal6/modules/taxonomy/taxonomy.pages.inc on line 33.

Программы для построения генеалогического дерева

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

Недавно Мелкой в школе задали это сделать, она рисовала как могла на бумажке, но это напомнило про идею.

В итоге пошуршал и нашел несколько интересных идей.

Модуль для Drupal для построения генеалогического дерева - Family Tree

Модуль очень простенький, но что-то делать позволяет:

  • Создавать людей с указанием: ФИО, пол, дата и место рождения/смерти, от кого родились, биография
  • Создавать группы (семья) с указанием: тип (незарегистрированный, церковный, гражданский, обычный), дата и место образования/разрушения, описание
  • Создавать места с указанием: страна/город/улица, проживающей семьи. Использование не совсем понятно
  • Автоматически строить генеалогическое дерево, но максимум на 4-е поколения и при этом не очень красиво
  • Отображать состав семьи человека: родителей, с кем был в браке, детей
  • Настраивать права доступа
  • Импортировать информацию из файлов GED (GEDCOM)

Не хватает возможностей:

  • добавлять фотографии
  • экспортировать информацию в файлы GED (GEDCOM)
  • более удобного редактора
  • более красивых деревьев

Может подойти для оперативного просмотра и редактирования информации.

0
Your rating: Нет

Наконец придумал, как на друпале размещать материал закрытый от всеобщего доступа.

В далеком-далеком 2008 году, уже чуть меньше 4-х лет тому назад, видимо когда поднимал этот сайт, захотелось мне сделать так, чтобы не все материалы были видны посетителям и даже создал такой пост - "Хочу скрытое".

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

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

После установки модуля идем admin/user/nodeaccess и выставляем галочки как нам требуется, т.е. какими правами, какими ролями и какими типами материалов нам нужно управлять. Одна из удобных ролей - автор. smiley

После этого, на страничке ноды появляется закладка Grant, в которой можно проставить права для ролей, а также для конкретного пользователя. Из удобств и приятностей - при отсутствии прав доступа к материалу у пользователя он исчезает, в том числе, из меню.

Конечно, не очень удобно изменять права сразу для группы документов, теоретически для этого больше подходит модуль Taxonomy Access Control, но с ним у меня быстро разобраться не получилось.

0
Your rating: Нет

Создание материала в друпале из пхп

В продолжение темы Перенос мероприятий из Контакта на сайт под Drupal решил, что правильнее сразу публиковать материал на сайт, минуя посредника в виде файла CSV и модуля друпала Node import.

Нашлась статья "Импорт сайтов из разных CMS на Drupal". Оказалось, что это это достаточно просто, создаем файлик new_node.php в каталоге сайта друпала:

<?php

require_once 'includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
$node = new stdClass();

$node->title = "Title";
$node->body = 'Основной текст';
$node->teaser = "Текст анонса";
$node->type = "blog";
$date=DateTime::createFromFormat('d/m/Y - H:i', "31/12/2012 - 15:00");
$node->created = strtotime($date->format('Y-m-d H:i'));; // дата создания
$node->changed = $node->created; // дата обновления

$node->promote = 0; // публикация на главной странице
$node->sticky = 0; // Прикрепить вверху на главной странице
$node->status = 1; // нода опубликована
$node->format = 1; // используется фильтр Filtered HTML
$node->comment = 2; // комментарии разрешены
$node->uid = 0; // ноду добавил "Гость", можно поставить uid=1, тогда ноду добавит админ сайта
 

0
Your rating: Нет

Перенос мероприятий из Контакта на сайт под Drupal

Возникла задача - переносить мероприятия (они же события) из социальной сети Вконтакт на сайт под друпалом.

После некоторых поисков и размышлений на эту тему, нашлось два модуля под друпал - Node import и Node import via cron.

  • Node import - позволяет импортировать разные данные из CSV, TXT и т.д. в Drupal
  • Node import via cron - позволяет автоматизировать импорт данных по расписанию, т.е. по крону

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

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

Что скрипт делает:

  • Анализирует список всех мероприятий с заданных страниц социальной сети Вконтакт
  • Получает заголовок, время начала, аватарку и маленькие фотографии мероприятия
  • Немного форматировать текст мероприятия в более красивый вид
  • В начала текста вставляет аватарку мероприятия
  • В конце текста вставляет все фотографии мероприятия

Чего скрипт не умеет делать и с чем бывают проблемы:

0
Your rating: Нет

Оповещение о происходящем на сайте в jabber и вконтакт.

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

Для друпала есть модуль Juick для публикации посетителями понравившейся статьи в свой блог на этом ресурсе. Пришла мысль автоматом публиковать там записи с сайта.

До этого нашел друпаловский модуль Action Jabber, который позволяет оповещать о событиях на сайте в jabber.

После прочтения правил Juick от идеи публикаций на нем отказался.

Категорически запрещается:

  • Размещать или рассылать спам (в том числе, поисковый) или автоматически сгенерированные сообщения.

К тому же, регистрация новых пользователей на нем временно приостановленна.

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

0
Your rating: Нет

Создание копии сайта Drupal в живом журнале

Захотелось/потребовалось дублировать информацию с сайта под друпалом в LiveJournal.

Нашел модуль LiveJournal CrossPoster (он же ljxp), который умеет кроспостить материал создаваемый на сайте сразу в жж. Установил, настроил - все заработало. Но у него было два не очень удобных, для меня, момента:

  1. Он требует настройку для каждого пользователя отдельно, что при задаче ведения одного журнала разными пользователями несколько неудобно.
  2. При публикации старого материала живой журнал ругается, что были записи более свежей даты и не дает сохранять материал прошедшим временем (не верит он в создание машин времени). Для установки нужной даты, требуется сначала опубликовать материал текущей датой и временем, а потом уже поправить время публикации на нужное. Что тоже является не очень удобным.

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

Дальше опищу как что делал, в конце прикреплю поправленный мною файл ljxp.module модуля.

Делаем публикацию статей в ЖЖ всех пользователей сайта с настройками определенного пользователя.

Тут возникло два момента:

0
Your rating: Нет

Кроспостинг из друпала во Вконтакт

Нашел модуль для друпала VKontakte CrossPoster, который позволяет размещать на страницах группы или стене пользователя статьи опубликованные на сайте Drupal'а. Решил проверить как он работает. Установка описана более чем доходчиво, все прошло без каких-либо проблем.

Какие моменты проявились:

  • После публикации, спрашивает у пользователя Vkontakt разрешения сделать запись на стене.
  • При использовании модуля LiveJournal crossposter, рекомендуется сначала отключить его, потом настроить VKontakte CrossPoster и только потом включить LiveJournal crossposter обратно. Иначе могут непубликоваться статьи ни в живой журнал, ни во Вконтакт.
  • Иногда статьи не публикуются на вконтакте. Точную закономерность не выяснил. Может быть, из-за открытого окна с контактом.
0
Your rating: Нет

Пытаюсь играться в рекламу от Google

Т.к. вопрос монетизации сайта интересует давно, а сегодня дошли руки, попытался сюда прикрутить рекламу от гугла -  AdSense.

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

Нашлись два модуля:

  • AdSense - модуль под друпал для работы с рекламой от гугла
  • AdSense Injector, он же теперь Content Injector - модуль для вставки всякого контента прямо в текст статей. Т.е. он предназначен не только для работы с гуглом, а для вставки любой информации.

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

Соответственно, смотреть на результаты нужно уже на гугле.

Предыдущая попытка поиграть в баннеры была какая-то не удачная....

3 января 2012 года пришел ответ:

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

0
Your rating: Нет

Информирование серверов об обновлении информации

Что-то задался вопросом, как поднять посещаемость сайта. Пошел искать по слову SEO и друпал, т.к. его использую.

Нашел следующие смешные модули:

  • Ping.fm - позволяет публиковать посты с друпала в другие социальные сети. Некоторый косяк в том, что при этом он ставит ссылку на себя, а потом уже перекидывает на оригинальную статью.
  • Multiping - пинает разные сервисы на предмет появления контента
  • LiveJournal CrossPoster - модуль друпал для кросспостинга в LiveJournal. Т.е. как только публикуешь статью на своем сайте, она сразу появляется в ЖЖ и обновляется, при обновлении здесь. Полезно и для себя/сайта, и для людей, которые не умеют пользоваться RSS, но пользуются жужей. Теперь местные сообщения дублируются по адресу - http://korshunovoleg.livejournal.com/
  • Global Redirect - убирает продублированные адреса страниц, выполняет 301 редирект при нахождении синонима. Теоретически, должно радовать поисковики.

В итоге, для того, чтобы получить больше ссылок на свой сайт, дело зарегистрировался на кучке ресурсов, типа твиттера, ЖЖ и прочее.

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

3
Your rating: Нет Average: 3 (1 vote)

Авторизация в друпале через nginx

Возникла ситуация - Drupal стоит на сервере с Апачем, из вне к нему стучатся через прокси-сервер nginx, при этом пользователи не могут авторизоваться на сайте. Т.е. вводят логин и пароль, жмут "Log in" и остаются не авторизованными.

Решилось все по статье ImageCache не работает (nginx).

В nginx.conf в описании сервера в секцию location нужно было дописать:

proxy_set_header    Host    $host;

Еще были ключи:

proxy_set_header    X-Real-IP       $remote_addr;
proxy_set_header    X-Forwarded-For $remote_addr;

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

0
Your rating: Нет
Ленты новостей