monsterofcode: Блог

Главные вкладки

Сохранение двух форм в одном сабмите

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

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

[РЕШЕНО] Помогите вывести форму ноды для редактирования

15 февраля 2011 в 8:32

Здравствуйте. Такая проблема - надо к форме добавить форму редактирования ноды(если существуют данные - вместе с ними, иначе новыую делать)
Такой код работает:

        include_once('modules/node/node.pages.inc');
        $node = node_load($nid);
        $type = 'profile';
        $form = drupal_retrieve_form($type .'_node_form', $form_state, $node);
        unset($form['buttons']['preview']);
        unset($form['buttons']['delete']);
        $form['buttons']['submit']['#submit'][] = 'accaunt_redirect';
        return $form;

То есть нода сохроняется,НО не выводятся при показе формы поля ССК.
Делаю так:

        include_once('modules/node/node.pages.inc');
        $node = node_load($nid);
        $type = 'profile';
        $form = drupal_retrieve_form($type .'_node_form', $form_state, $node);
        drupal_prepare_form($type .'_node_form', $form, $form_state);
        unset($form['buttons']['preview']);
        unset($form['buttons']['delete']);
        $form['buttons']['submit']['#submit'][] = 'accaunt_redirect';
        return $form;

Тут поля выводятся все, НО НЕ СОХРОНЯЕТ, задолбала уже форма эта. ТО есть превью так же не работает. Вардамплю форм_стайт - пусто. Подскажите если кто знает как правильно сделать

Как сделать разные формы регистрации для разных ролей

13 февраля 2011 в 21:20

Дело такое - есть несколько типов юзеров: А, Б и В
Для каждого свои поля в форме регистрации
Как сделать:
1. При начале регистрации указать тип юзера под каким рн хочет регться
2. Вывексти соответствующую форму
Пока придумал некрасивые решения. Модули смотрел http://drupal.org/project/rolesignup - но он погиб наверно. Ещё некоторые - всё не то. Если кто знает модуль, подскажите, либо силами "коробочного" друпала это сделать как. Или модуль написать лучше всего?

Помогите с переводом location

13 февраля 2011 в 17:34

Здравствуйте!
Часа два бьюсь над такой мелочью - установил location. Но сайт русский, а в списке слова типа Russia, Kemerovo. Как сделать чтоб русские слова были - незнаю. На drupaler.ru вроде скачал файл перевода, но не помогает. Киньте ссылку или что нить полезное, токо в гугл не слать, я был там.Вообще с переводами сайта проблема - то ли не такм ищу файлы перевода, то ли на самом деле проблемы(хотя знаю что их нет)

ошибка в hook_menu warning: Invalid argument supplied for foreach() in C:\AppServ\www\my_job\includes\menu.inc on line 258.

15 ноября 2010 в 18:51

Всем привет. Помогите пожалуйста справится с такой проблемой - создаю меню, но возникакет ошибка warning: Invalid argument supplied for foreach() in C:\AppServ\www\my_job\includes\menu.inc on line 258.

В чём причина может быь? Вот кусок меню :

function hotel_menu()
{
    $items = array();

        $items['admin/settings/hotel'] = array
        (
            'title' => 'Отели',
                'page callback' => 'drupal_get_form',
                'page arguments' => array('hotel_settings',''),
        'access arguments' => array('administer site configuration'),
        'file' => 'hotel.admin.inc',
                'type' => MENU_NORMAL_ITEM
    );

    $items[HOTEL_SEASONS] = array
    (
        'title' => 'Просмотр/добавление сезонов',
        'menu_name' => 'operation_with_hotel',
        'description' => 'Просмотр/добавление сезонов',
        'page callback' => 'hotel_seasons_start',
        'access arguments' => TRUE,
        'type' => MENU_NORMAL_ITEM,
        'file' => 'hotel.season.inc',
    );

    return $items;
}

Ошибка появляется после второго итема

помогите создать пермишины

9 ноября 2010 в 22:14

Всем привет. Помогите пожалуйста отчаевшемуся мне. Написал такую штуку в модуле. Но на странице пермишинов ничего нового не появилось. В чём может быть ошибка? Даже мысли нет у меня.

тыкните носом в ошибку!что я делаю не так с access callback?

7 ноября 2010 в 17:58

Я наверно чокнутый. тыкните носом в ошибку
код :

[РЕШЕНО] подскажите как правильно разграничивать права.

7 ноября 2010 в 15:59

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

Помогите ожулуйста с confirm_form

7 ноября 2010 в 13:07

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

[РЕШЕНО] что не правильно в использовании confirm_form?

7 ноября 2010 в 0:50

Сегодня я parent error. Что за ерунда. Есть форма с 2-мя сабмитами.
вот код "больного":

    $form['submit_del'] = array
    (
        '#type' => 'submit',
        '#value' => 'Удалить выбранные',
        '#submit' => array('hotel_del_season'),
    );

Хочу подтверждать удаление -

function hotel_del_season($form_state)
{
    $form['seasons'] = array
    (
        '#type' => 'hidden',
        '#value' =>  $a,
    );
    drupal_set_message('11');
    return confirm_form($form,
                      t('Are you sure you want to delete these season?'),
                      'hotel/seasons/', t(''),$yes='Delete',$no='Cancel');
    drupal_set_message('22');
}

Он доходит до 11 но 22 уже не кажет. В чём проблема, где туплю? Код копировал со своего 100% рабочего модуля. Или как? Понял что надо через drupal_get_form -воткнул ноль. То ли понял не так. Подскажите пожалуста, спать хочу уже, а доделать надо сей кусок для успокоения.

[РЕШЕНО] помогите правильно вывести данные в самописном модуле

6 ноября 2010 в 19:47

здравствуйте люди добрые! Проблема такая - надо вывести таблицу с элементами формы. Как это лучше сделать? только стилями? я думал юзать markup, а в качестве вэлью -

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

После создания материала с полями типа computed field и viewfield - белый экран

6 ноября 2010 в 13:47

После создания материала с полями типа computed field и viewfield - белый экран.
При этом сам материал не создаётся. никто не знает - модуль патч авто не мешает им? Или в чём проблема может быть. Раньше такое делал - тут никак не выходит. Помогите люди добрые!

помогите создать контекстнозависимую панель

3 ноября 2010 в 10:54

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

[РЕШЕНО] настройка Word Filter для view

2 ноября 2010 в 12:46

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

как убрать сообщение о начале работы без публикации на главной контента

1 ноября 2010 в 11:07

После установки друпала есть такая штука(смотреть ниже). Как её убрать не публикуя на главную контента? В теме что ли убить? Или прще можно?

Welcome to your new Drupal website!

Please follow these steps to set up and start using your website:

1. Configure your website Once logged in, visit the administration section, where you can customize and configure all aspects of your website.
2. Enable additional functionality Next, visit the module list and enable features which suit your specific needs. You can find additional modules in the Drupal modules download section.
3. Customize your website design To change the "look and feel" of your website, visit the themes section. You may choose from one of the included themes or download additional themes from the Drupal themes download section.
4. Start posting content Finally, you can create content for your website. This message will disappear once you have promoted a post to the front page.

For more information, please refer to the help section, or the online Drupal handbooks. You may also post at the Drupal forum, or view the wide range of other support options available.

[РЕШЕНО] hook_cron() - от кого выполняется?

26 октября 2010 в 12:00

вопрсо такой - hook_cron выполняется от имени админа либо он работает сам по себе и такой вещи как user->uid он не имеет?

как почистить кэш браузера (конкретной страницы)

26 октября 2010 в 11:33

как почистить кэш браузера (конкретной страницы) - любые споособы нужны.

drupal_add_js - как использовать функцию, чтоб подключаемый файл не кэшировался?

26 октября 2010 в 9:05

Мне надо подключить файл JS чтоб он не добавлялся в кжш браузера. Читал что к адресу можно прицепить чтото вида, например ?update=hkjfwhwebilw. То есть каждый раз уникальное имя. Но не выходит(вообзе JS не цепляется тогда). Кто может подсказать - буду признателе - 4 дня(а в сумме больше бьюсь с ИЕ ), надежда на этот вариант осталась В гугл не отправлять - всё что смог просмотрел. Документацию функции читал , не помогло. либо ошибся где то. Может кто другой способ предложит как кэш для конкретной страницы чистить методами JS.

drupal_add_js - как использовать функцию, чтоб подключаемый файл не кэшировался?

26 октября 2010 в 9:05

Мне надо подключить файл JS чтоб он не добавлялся в кжш браузера. Читал что к адресу можно прицепить чтото вида, например ?update=hkjfwhwebilw. То есть каждый раз уникальное имя. Но не выходит(вообзе JS не цепляется тогда). Кто может подсказать - буду признателе - 4 дня(а в сумме больше бьюсь с ИЕ ), надежда на этот вариант осталась В гугл не отправлять - всё что смог просмотрел. Документацию функции читал , не помогло. либо ошибся где то. Может кто другой способ предложит как кэш для конкретной страницы чистить методами JS.

Помогите победить IE8 !!!!!!!!!!

25 октября 2010 в 15:34

Такая беда описанная в http://drupal.ru/node/51706. Нашёл что дело такое - очистил кэш браузера (ИЕ8) - данные корректны. Можно ли написать какую нить штуку , чтоб чистился кэш этот(либо все переменные чистились, в общем чтоб работало). Самое большое что нашёл - document.execCommand('ClearAuthenticationCache')
, но он выкинит с сайта(меня викидывает с дева и просит пароль, а вот на сайте авторизован всё равно). Если кто нибудь поможет, буду прищзнателен - дня 3 мучаю, ничего не выходит

Drupla & IE8 & YAHOO - странность в IE8

25 октября 2010 в 8:39

Всем привет. Столкнулся с такой ,пока что непосильной для себя, проблемой: на сайте используется такая вещь как YAHOO - не знаю даже как обозвать это, но на сайте юзается как понял для создания перетаскивания, вывода контекстного меню(то есть не то что в браузере , а своего). Потом он работать перестал(не сохранял данные), ничего умнее чем заменить YAHOO.util.Connect.asyncRequest('POST', sUrlPoolManager + "op=d&n=" + oRecord.getData("nid") + "&u=" + iUid + "&y=" + iDraftYear, callback_poolDelete, null); на $.get('/save_and_drop/'+p_nid, null); не придумал. Беда в следующем - во всех браузерах всё нормально работает. В IE8 - при перетаскивании данных они сохраняются, но после обновления страницы - ворачиваются(хотя в базе то они как надо). Самое интересное - даже после удаления в дебильном ишаке записи всё равно есть!!! Может кто подскажет хоть какое нибудь решение, куда смотреть.

[РЕШЕНО] Реализация блока с меняющимся контентом

21 октября 2010 в 8:29

Всем привет. Подскажите как или чем реализовать блок с меняющимся контентом(то есть постоянная смена контента с опредеёлённым типом). Это можно во вью? Или модуль есть? Или писать самому. Не ругайтесь - отгуглить чё то неполучается

Странность с комменгатрием

19 октября 2010 в 8:49

Проблема такая - есть тип контента. Есть ноды. Но почему то у одной ноды показываются комментарии(а так же поле для их добавления), а у других нет. У всех нод в comment settings стоит Read/Write. Что за ерунда - непонятно. Если есть мысли - прошу поделиться

Проблем отображения cимвола "'"

15 октября 2010 в 12:26

Всем привет! Не могу справиться с вью - Необходимо её выводить с "Row style: Node". При этом заголовок выводится например как "New Adidas NBA uniforms designed for players & # 0 3 9 ; comfort" (& # 0 3 9 ; - токо без пробелов )вместо "New Adidas NBA uniforms designed for players' comfort" Сама нода корректно выводится, впрочем как и вью, когда стоит тип "Row style: Field" либо "Row style: Node" в предпросмотре. Если кто может помочь, буду очень признателен. Можно конечно выводить филдами - но работа за зря - и поля втыкать, стили переписывать.

[РЕШЕНО] Спасите. Не пойму почему не работает AJAX

12 октября 2010 в 8:51

Всем привет! Помогите кто чем может. Разбираюсь с ajax, но выходит какая то ересь, а точнее ничего не выходит вообще. Имеется такой код в РНР:

function my_ajax_menu()
{
        $items = array();
        $items['my'] = array(
                        'title' => 'Users who have not yet created coupons',
                        'page callback' => 'my_ajax_page',
                        'access arguments' => array('created nodes report'),
        );
        $items['my_ajax'] = array(
                        'title' => 'Users who have not yet created coupons',
                        'page callback' => 'my_ajax_get_form',
                        'access arguments' => array('created nodes report'),
                        'type' => MENU_CALLBACK,
        );
        return $items;
}

function my_ajax_page()
{
        drupal_add_js(drupal_get_path('module','my_ajax').'/js/for_ajax.js');
        return '<div class=my_ajax>ddd</div>'.drupal_get_form('my_ajax_form', '');
}
/*есть функция заполнение БД но её писать не буду*/

function my_ajax_get_form()
{
        $a = db_result(db_query("select my from {for_ajax} where ajaxid in (select max(ajaxid) from {for_ajax})"));
        drupal_json(array('status' => 0, 'data' => $a);
}

Далее файл js:

Drupal.behaviors.my_ajax = function(context)
{
        $('div.my_ajax:not(.my_ajax-processed)', context).addClass('my_ajax-processed')
        .bind('mousemove', null, function()
        {
                //$.get('/my_ajax/', { name: "John", time: "2pm" }, function(data){alert(data);});
                $.get('/my_ajax', null, ddd());
        });
};

var ddd = function(response)
{
        alert('ddd');//тут алертится
        var result = Drupal.parseJson(response);
        alert('rrr');//тут неалертится