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

автоматическая рассылка в simplenews

9 марта 2010 в 12:19

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

simplenews: подписка незарегистрированных пользователей.

3 февраля 2010 в 19:33

Добрый вечер.
Нужно иметь на сайте блок в котором любой посетитель (не зарегистрированный) может ввести свой email и подписаться на рассылку. В самом модуле simplenews я ничего такого не нашел. Подскажите, плз, есть для этого функционала какие-то решения или надо самому блок программить? Или я в самом модуле плохо искал?

Спасибо.

Ahah постинг формы ноды и выставление термина по умолчанию

27 января 2010 в 14:42

Есть набор словарей и тип материала, для которого предназначены эти словари.
В своем модуле, я зарегил такой путь: /project/%/add, где % будет идентификатор термина одного из словарей.
Собственно, код вот такой:

function mymodule_menu()
{
  $items['project/%/add'] = array (
    'page callback' => 'mymodule_add_project_site_page',
    'page arguments' => array(1),
    'access callback' => 'user_access',
    'access arguments' => array('add project'),
    'type' => MENU_CALLBACK,
  );
  return $items;
}

function mymodule_add_project_site_page($tid)
{
        return '<div id="add_project_form_content">' . node_add('project') . '</div>';
}

function mymodule_form_alter(&$form, &$form_state, $form_id)
{
    if ($form_id == 'project_node_form'):
        /* Редактирование формы */

        $form['buttons']['submit']['#ahah'] = array (
            'path' => 'mymodule_add_project_form/js',
                'wrapper' => 'add_project_form_content',
                'method' => 'replace',
                'event' => 'click',
                'effect' => 'fade'
        );

    endif;
}

Из такой реализации вытекло два вопроса:
1. Как передать в form_alter приходящий через url $tid?
2. Если в данных формы есть какая-то ошибка, то нода, ессно, не создается, возвращаемая ahah форма не сохраняет в контролах введенные значения уровня ноды (title, description, такономия). Значения CCK контролов сохраняются. При этом если ahah убрать, то сохраняются значения всех заполненных полей.

Заранее спасибо.

Есть ли модуль? Дополнительные параметры к термину таксономии

20 января 2010 в 16:21

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

Получить изображение любого сайта

29 декабря 2009 в 16:38

Добрый вечер. Интересует возможность получения картинки какого-нить сайта в виде jpg.
То есть изображения, которое вручную можно получить загрузив сайт в браузер, нажав PrintScreen и обрезав браузер в каком-нить редакторе. Мне же хочется, чтобы такая картинка получалась автоматом средствами php, желательно чтобы еще в imagefield сама залезала Smile
Есть ли такой модуль? Или подскажите в какую сторону копать. Спасибо.

И снова про тормоза Drupal

21 декабря 2009 в 1:22

Заранее извиняюсь если уже было. Не нашел.
Дело в том, что Drupal просто сказочно тормозит (на локальной машине хостинга пока нет) Page execution time более 40000 млсек. Причем количество нод пока чуть больше десятка.
Devel показывает, что очень много запросов выполняются очень долго: 100 и более млсек. Причем это запросы из штатных функуций Друпала, например: taxonomy_get_node_terms или из функции node_load (связывает ноды, пользователей и ревизии, более 200 млсек). Причем все эти высокозатратные запросы в phpmyadmin выполняются практически мгновенно. Почему так происходит, откуда такая разница в производительности?

Полазил по форуму и немного подправил настройки mysql. Время отдачи снизилось до 15-25 сек, но, ессно, это тоже не приемлемо.
Куда копать, что посоветуете, гуру?

ПС. От железа эта ситуация не сильно зависит. Работаю на Денвере.

Ошибка 500 в http заголовках главной страницы.

17 декабря 2009 в 10:08

Добрый день. Недавно обнаружил, что заголовки главной страницы моего сайта (www.bestgameplace.ru) содержит 500ю ошибку (Internal Server Error).

GET / HTTP/1.1
Host: www.bestgameplace.ru
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Cookie: __utma=247311639.671266380466511200.1245747718.1260785962.1260879829.44; __utmz=247311639.1246975666.13.3.utmcsr=webmaster.yandex.ru|utmccn=(referral)|utmcmd=referral|utmcct=/wmconsole/error_info_urls.xml; comment_info_name=%D0%94%D0%B8%D0%BD%D0%B0; SESS6b873beb56194bb75c3333a30ab9a895=7lc6lavhfr6p2ignkpklbkgqb6; has_js=1; __utmc=247311639

HTTP/1.x 500 Internal Server Error
Server: nginx
Date: Thu, 17 Dec 2009 06:59:30 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Cache-Control: store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Sun, 19 Nov 1978 05:00:00 GMT
X-Powered-By: PHP/5.2.11
Last-Modified: Thu, 17 Dec 2009 06:59:27 GMT

Причем появляется она только на главной странице.
Откуда она может браться, где копать?

Спасибо.

Ad модуль. Баннер по умолчанию

10 декабря 2009 в 14:17

Добрый день. Есть установленный модуль Ad для показа баннерной рекламы.
Нужно сделать так, чтобы в случае отсутствия на данный момент активных баннеров отображался какой-нибудь заданный по умолчанию, типа со словами "Ваша реклама должна быть здесь". Сейчас же в этом случае просто не отображается вообще ничего.
Кто-нить пробовал сделать такое без хака этого модуля?
Спасибо.

Проблема с AHAH постингом формы.

3 декабря 2009 в 20:37

В общем кажется, что все сделано в соответствии с http://drupal.org/node/331941

Есть форма, на сабмит навешен ahah:

$form['submit']['#ahah'] = array(
        'path' => 'my_form_submit/js',
        'wrapper' => 'comments-list-view',
        'event' => 'click',
        'method' => 'before',
  );

Вот обработчик ahah запроса:

function my_form_submit_ahah()
{
  $form_state = array('storage' => NULL, 'submitted' => FALSE);
  $form_build_id = $_POST['form_build_id'];
  $form = form_get_cache($form_build_id, $form_state);

  $args = $form['#parameters'];

  $form_id = array_shift($args);
  $form_state['post'] = $form['#post'] = $_POST;
  $form['#programmed'] = $form['#redirect'] = FALSE;

  drupal_process_form($form_id, $form, $form_state);
  $form = drupal_rebuild_form($form_id, $form_state, $args, $form_build_id);

  $errors = theme('status_messages');
  $output = $errors . drupal_render($form);

  ....

Проблема даже не с самим постингом, он выполняется нормально. Проблема в том, что action возвращаемой формы в drupal_render формы содержит путь my_form_submit/js, а не тот, который был указан по умолчанию. Соответственно повторный сабмит приводит перезагрузке страницы и текстовому отображению массива, который возвращается в $output.

Почему так происходит? Как бороться?

Проблема с ajaxSubmit

23 ноября 2009 в 16:36

Сделал в своем модуле форму и функцию сабмита для нее. По всем правилам Drupal. В page.tpl.php добавил код, чтобы заменить стандартных сабмит на ajaxSubmit без перезагрузки страницы.

  $(document).ready(function(){

    $('#my-form').unbind('submit');
    $('#my-form').submit(function(arg) {
    $(this).ajaxSubmit({
            type: 'POST',
            beforeSubmit: function() { },
                        dataType : 'json',
                        error: function (XMLHttpRequest, textStatus, errorThrown) {
                                window.alert(textStatus);
                                if (window.console) {
                                        console.log('error', arguments);
                                }
                                return true;
                        },
                        success: function(data){
                                alert(data);
                                return true;
                        }
        });
        return false;
    });
 
 
  });

Серверная функция сабмита возвращает некие данные, которые по идее должны вернуться в ветку success.
Сам сабмит работает правильно. Данные формы отправляются на сервер и нормально обрабатываются. Вот только в приведенном выше коде все время приходит error, т.е. с сервера ничего не возвращается.
Если убрать атрибут dataType, то success приходит, но вот в параметре data находится весь код всей страницы, на которой лежит форма.
Что не так я делаю?
Как правильно отправить и данные на сервер и получить оттуда обработанные данные? Главная идея - сделать виззард. Сабмитим одну форму, в зависимости от введенных данных грузим другую форму и так далее.

Inline контролы в форме и их label

11 ноября 2009 в 12:46

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

Подскажите модуль по отображению дат

7 ноября 2009 в 17:50

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

У кого-нить работает модуль Ajax?

28 октября 2009 в 21:00

Имею ввиду вот этот модуль: http://drupal.org/node/349961.
У меня работать не хочет. Установил его, сделал настройки для формы логина и редактирования профиля - как работало с перегрузкой страницы, так и работает.
Есть собственная форма, к ней вроде ajax цепляется, по крайней мере после нажатия на submit, текст кнопки меняется на loading, но страница все равно перегружается, но форма так и не постится.
Куда смотреть, куда копать?
Может посоветуете другие пути интеграции аякса в формы сайта?
Спасибо.

Комментарии ноды на ajax закладке

30 сентября 2009 в 18:48

Помогите найти путь решения такой фичи: нужно чтобы комментарии ноды были на отдельной ajax закладке, т.е. на странице сначала идет некоторое описание ноды, а ниже несколько закладок, типа Отзывы, Расширенные параметры и т.д. Причем надо, чтобы и форма добавления комментария была там же.
Я так понимаю, что надо в шаблон ноды вставить код закладок, но не понимаю, как перенаправить вывод комментариев.
Спасибо.

Тормоза jQuery UI Tabs

21 августа 2009 в 17:22

Поставил я модуль jQuery UI Tabs для создания закладок, но сделанные закладки ужасно тормозят. Причем даже без Аякса. Имеется две табы, обе с простым тестом, при переключении сначала активируется заголовок новой табы, потом пропадает текст предыдущей табы, потом появляется текст активной табы. Весь этот экшн затягивается почти на две секунды. Это у всех так или у меня что-то с настройками? Может какой другой модуль лучше использовать для реализации закладок?

и снова связь многие к одному или multiple values

18 августа 2009 в 12:18

Добрый день.
Есть материал, созданный через CCK, нужно иметь у материала свойство, которое может принимать множественные значения, но проблема в том, что каждое значение этого свойства содержит несколько полей. Т.е. имеем обычную связь многие к одному, например:
- Заказчик (какой-то набор полей)
- Платежи (Дата, Сумма, Валюта + код заказчика)

Каждая запись платежа не может выступать в качестве самостоятельного материала, без информации о заказчике она мало интересна. Поля title и body, которые есть у каждой ноды тут не нужны, поэтому делать платежи через CCK не хочется. К тому же потом добавлять их через Create Content, и искать там в select box'е нужного заказчика совсем не комильфо.
Есть идея решить это следующим образом: Заказчик - материал CCK, платеж - таблица с соответствующими полями сделанная вручную в БД, написать свой модуль, который добавляет нужные табы на страницу редактирования ноды заказчика. По этим табам можно посмотреть весь список платежей или перейти на форму добавления нового.

Есть ли какие-нибудь другие способы решения такой задачи?

Разные темы в админке и на сайте. Вопрос

17 августа 2009 в 14:37

Добрый день. Имеем сабж. Собственно в качестве темы для админки указан банальный Гарланд. Основная тема - своя.
Пишется модуль, в котором добавляются новые табы на форму редактирования ноды через hook_menu:

<?php  

$items

['node/%node/payments'] = array(
    
'title' => 'Payments',
    
'page callback' => 'drupal_get_form',
    
'page arguments' => array('my_module_payments_view'1),
    
'access callback' => 'user_access',
    
'access arguments' => array('access my module information'),
    
'type' => MENU_LOCAL_TASK
  
);

?>

Закладка нормально появляется, но вот при клике по ней, мы вываливаемся из административной темы, т.е. то что показывает функция my_module_payments_view отображается внутри основной темы.
Подскажите, плз, как с этим бороться? Как сказать форме, что она должна отобразиться в административном интерфейсе?

посоветуйте модуль комментов+настроение и модуль меню

12 августа 2009 в 16:35

Добрый день кто-нить встречал модуль, который бы добавлял в форму комментов возможность выставить через радиобаттоны настроение этого самого коммента, типа Very Good, Good, Neitral, Bad?

Еще нужен модуль, который бы делал вот такое меню как здесь. Иерархия задается в Primary Links. Есть такой модуль или самому кодить надо?

Спасибо.

Свой файл шаблона в теме.

7 июля 2009 в 16:10

Добрый день. Хочу сделать свой файл шаблона для ноды. Нужно это для того, чтобы отформатировать данные ноды для использования в другой системе.
Что надо сделать, чтобы вызываемая где-нибудь в модуле функция theme('custom_text', $node) вернула бы текст, используя шаблон custom_text.tpl.php и переданную туда переменную $node?
Заранее спасибо.