Столкнулся еще с одной проблемой. Странно работает навигатор. Если, скажем в каждой контрольной по 4 вопроса, а в настройках навигатора указать "выводить по 10 полей на страницу", то третья контрольная будет разорвана (2 вопроса останутся на первой странице, а 2 перейдут на следующую). Это в лучшем случае, бывает что на первой странице выводятся три контрольные, но в некоторых съедены по одному вопросу в конце (т.е. 1 контрольная - 3 вопроса, 2-ая - 3, 3-я 4 вопроса).
Как сделать, чтобы все поля из группы, были внутри группы и не переходили на следующую страницу?
Если посмотреть именно, как вы говорите, что уходит в drupal_render(), то тут еще интереснее, вот что туда уходит (я оставил только то, что касается вопроса):
Я бы глянул в каком виде оно всё уходит в drupal_render(), а то может там уже [ ] > < заменены на HTML-сущности
Это первая мысль которая у меня возникла. Но там все нормально. Если в предыдущем коде закомментировать строчку $output = check_markup($output, 'otvet'); , то выдается < b >текст, т.е. содержимое поля.
А, вон как. Т.е. хуком_меню вывести представление на страницу. Я сейчас свою проблему по-другому решил (писал свой handler), но так надо будет тоже попробовать. Спасибо.
Можете. Просто создайте представление-страницу и не морочтесь с хук_меню.
В настройках контекстного фильтра можно указать позицию аргумента в пути (считать с ноля, ремемберхараммам бро!).
Речь не о том, можно ли создать вьюху с аргументом в пути, а в том, что для такой вьюхи нельзя создать ССЫЛКУ в меню. Если создать представление-страницу и в самой вьюхе попробовать задать ссылку в меню, то вылезет сообщение :
Нет, это не то. По ссылке предлагают установить фильтр по автору ноды. Автор всех нод я - администратор. Проблема в том, что ноды, которые надо вывести явно не связаны с пользователем. Эта связь установлена в таблице, которую я сам создал.
Нет, что-то я рано возрадовался. Вроде почти получилось, но на какой-то ерунде сижу весь день. В общем вот моя таблица, которую надо подключить к вьюхе:
Здесь нас интересуют три столбца: uid - айдишник пользователя, nid_kontrolnoy - айдишник контрольной, которую надо вывести и флаг - решил контрольную или нет.
в материал "Контрольная" добавить поле со списком пользователей, решивших ее
Это интересная мысль. Я только не совсем понимаю, как туда занести информацию о нескольких пользователях? Я понимаю, как в ячейку занести число, ну например одного пользователя с uid 17, а если их много, то нужно массив что ли заносить?
Была мысль сделать дополнительное поле в типе материала "контрольная" и заносить флаг туда. Тогда вьюха увидит это значение. Но мне кажется должно быть более изящное решение. У меня и так уже куча полей в этом типе материала. Кроме того, удобнее создавать одну таблицу и заносить туда всю информацию, нежели искать ее по полям из разных таблиц БД.
Olegars, интересная штука, но мне нужно чтобы каждое конкретное задание было на отдельной странице, а там, как я понял, используется технология AJAX.
Я думал есть какое-то простое решение, без использования сторонних модулей. Вот такая идея у меня появилась. В функцию, вызывающую форму пишем все как обычно, без всяких переменных и условий:
Ясно. Ну, я так и пытался, пока безуспешно. Просто думал чтобы в чужих модулях не копаться, обхитрить их. Но, видимо так нельзя. Ладно, спасибо, будем пытаться.
Конкретно модуль quiz, он нужен для проведения тестов. Когда пользователь заканчивает выполнение теста, в БД в таблицу quiz_node_results в поле time_end заносится время, когда тест закончен. Нужно отловить этот момент, т.е. перед тем, как эта запись будет сделана мой модуль должен на это отреагировать.
Чтобы было ясно, что я хочу реализовать.
Предположим есть модуль module_1 который записывает в таблицу tabl (созданную вручную или во время установки модуля) в поле znachenie какую-то информацию. Что-то вроде:
Группировка вывода views по полю
Так, что-то я запутался. В представлении можно выводить или поля, или содержимое целиком. Как можно вывести контрольную, а вопросы полями?
Группировка вывода views по полю
Столкнулся еще с одной проблемой. Странно работает навигатор. Если, скажем в каждой контрольной по 4 вопроса, а в настройках навигатора указать "выводить по 10 полей на страницу", то третья контрольная будет разорвана (2 вопроса останутся на первой странице, а 2 перейдут на следующую). Это в лучшем случае, бывает что на первой странице выводятся три контрольные, но в некоторых съедены по одному вопросу в конце (т.е. 1 контрольная - 3 вопроса, 2-ая - 3, 3-я 4 вопроса).
Как сделать, чтобы все поля из группы, были внутри группы и не переходили на следующую страницу?
Группировка вывода views по полю
Ух ты, нашел. Всегда смотрел на эту настройку и не понимал зачем она нужна. Спасибо камрад.
Группировка вывода views по полю
А где именно, не подскажете? (понятно что во views)
Как перед выводом пропустить поле через фильтр?
Если посмотреть именно, как вы говорите, что уходит в drupal_render(), то тут еще интереснее, вот что туда уходит (я оставил только то, что касается вопроса):
Как перед выводом пропустить поле через фильтр?
Это первая мысль которая у меня возникла. Но там все нормально. Если в предыдущем коде закомментировать строчку $output = check_markup($output, 'otvet'); , то выдается < b >текст, т.е. содержимое поля.
Как перед выводом пропустить поле через фильтр?
Дело не только в токенах. Я пробовал экспериментировать с обычными тегами.
Если в фильтр 'otvet' добавить тег < b > и написать такой код:
Как перед выводом пропустить поле через фильтр?
Большое спасибо за ответ, это то что нужно, только у меня почему-то это не работает. Уже как только не пробовал.
Пишу такой код:
Как создать динамическую ссылку, которая ведет на представление views?
А, вон как. Т.е. хуком_меню вывести представление на страницу. Я сейчас свою проблему по-другому решил (писал свой handler), но так надо будет тоже попробовать. Спасибо.
Как создать динамическую ссылку, которая ведет на представление views?
Не совсем понял, представление вывести в блок?
Как создать динамическую ссылку, которая ведет на представление views?
Речь не о том, можно ли создать вьюху с аргументом в пути, а в том, что для такой вьюхи нельзя создать ССЫЛКУ в меню. Если создать представление-страницу и в самой вьюхе попробовать задать ссылку в меню, то вылезет сообщение :
Как создать динамическую ссылку, которая ведет на представление views?
Нет, у меня только связь с таблицей 'node'. Вот что у меня в коде:
<?php
function moy_modul_views_data() {
Как создать динамическую ссылку, которая ведет на представление views?
Нет, это не то. По ссылке предлагают установить фильтр по автору ноды. Автор всех нод я - администратор. Проблема в том, что ноды, которые надо вывести явно не связаны с пользователем. Эта связь установлена в таблице, которую я сам создал.
Как связать views и БД?
Так модуль me нельзя установить без модуля token.
Нет, обманывать не пытаюсь, просто ни пса не выходит, уже голову сломал.
Как связать views и БД?
А чем это отличается от токена [user: uid]? При попытке создать ссылку не работает ни токен, ни me.
Как связать views и БД?
Нет, что-то я рано возрадовался. Вроде почти получилось, но на какой-то ерунде сижу весь день. В общем вот моя таблица, которую надо подключить к вьюхе:
Здесь нас интересуют три столбца: uid - айдишник пользователя, nid_kontrolnoy - айдишник контрольной, которую надо вывести и флаг - решил контрольную или нет.
Вот хук вьюхи:
Как связать views и БД?
Всем отозвавшимся спасибо, оба варианта интересные, но вариант с хуком hook_views_data мне показался более гибким. Все работает.
Как связать views и БД?
Это интересная мысль. Я только не совсем понимаю, как туда занести информацию о нескольких пользователях? Я понимаю, как в ячейку занести число, ну например одного пользователя с uid 17, а если их много, то нужно массив что ли заносить?
Как связать views и БД?
Была мысль сделать дополнительное поле в типе материала "контрольная" и заносить флаг туда. Тогда вьюха увидит это значение. Но мне кажется должно быть более изящное решение. У меня и так уже куча полей в этом типе материала. Кроме того, удобнее создавать одну таблицу и заносить туда всю информацию, нежели искать ее по полям из разных таблиц БД.
Как связать views и БД?
"По-человечески" - это как?
Как вывести определенное поле из формы?
Olegars, интересная штука, но мне нужно чтобы каждое конкретное задание было на отдельной странице, а там, как я понял, используется технология AJAX.
Я думал есть какое-то простое решение, без использования сторонних модулей. Вот такая идея у меня появилась. В функцию, вызывающую форму пишем все как обычно, без всяких переменных и условий:
Как перехватить данные перед записью в БД?
Ясно. Ну, я так и пытался, пока безуспешно. Просто думал чтобы в чужих модулях не копаться, обхитрить их. Но, видимо так нельзя. Ладно, спасибо, будем пытаться.
Как перехватить данные перед записью в БД?
Конкретно модуль quiz, он нужен для проведения тестов. Когда пользователь заканчивает выполнение теста, в БД в таблицу quiz_node_results в поле time_end заносится время, когда тест закончен. Нужно отловить этот момент, т.е. перед тем, как эта запись будет сделана мой модуль должен на это отреагировать.
Как перехватить данные перед записью в БД?
Чтобы было ясно, что я хочу реализовать.
Предположим есть модуль module_1 который записывает в таблицу tabl (созданную вручную или во время установки модуля) в поле znachenie какую-то информацию. Что-то вроде:
Как перехватить данные перед записью в БД?
А что делает этот хук hook_query_alter() ?