Доброго дня!
Друпал только осваиваю, и вот столкнулся с проблемой, есть сайт, на нем сделано представление "Вакансии" со списком вакансий, при нажатии на название вакансии, выпадает описание данной вакансии. Сделано это штатными возможностями друпал (Я так думаю). Так вот сделал я категорию, сделал представление... а весь материал в категории отображается полным текстом а не выпадающим как в вакансии. Делал точь в точь. и не пашет...
Помогите именно разобраться как сделано в данном случае а не предлагать использовать сторонние скрипты и т.д. хотелось бы именно понять как тут.
Комментарии
Это сделано с помощью вот этого кода
$parent=$(this).closest('.views-row');
$('.content',$parent).slideToggle();
return false;
});
Скажите, а куда именно добавлять этот код? Я полностью продублировал все что сделано для "Вакансии" а именно: создал в "структура" новый "типы материала", сделал в "представления" новое "представление" указал там все идентичные настройки отображения и т.д. указал тип отображения "содержимое" которое добавил в "типы материала". В представления, материалы отображаются но не так как в "Вакансии" перепробовал все варианты в "Формат" и нифига где эта загвостка.... Пробовал клонировать, не работает. т.е. представление клонируется но как только там меняю на другой путь, уже не работает (при клонировании создается точная копия "представления" "вакансии" но с другим именем представления, например "вакансии2" но оба представления ссылаются на один и тот же путь: /vacancy, как только ставлю например путь: /vacancy2, материалы перестают отображаться как в предыдущем представлении...
P.S. вот клон: http://www.i-home.ru/vacancy2
поиском найдите, где-то папке sites/all. Где точно, не знаю, у вас кеширование включено.
Потом нужно будет аналогичный код написать для вашей новой вьюхи и вставить в тот же файл. Выведите свою вьюху где нить, я подскажу, какой код писать
Скрытие сделано не через модуль views, а отдельно. просто клонированием ничего не добьетесь
т.е. нужно выключить кеширование в админке? так вроде выключено.... или я чего то не понял...Врубился, сейчас поищу и отпишусь.
нашел написанный вами код, в файле: init.js
(function ($) {
Drupal.behaviors.numerateMenu = {
attach:function (context, settings) {
$('ul.menu', context).not(".numerate").addClass("numerate").each(function () {
var level = $(this).parents("ul.menu").length;
$(this).addClass("level-" + level)
.children("li").each(function (i) {
$(this).addClass("element-" + i + " level-" + level);
})
});
}
};
Drupal.behaviors.uiButton = {
attach: function(context, settings) {
$("input[type=submit], .button, button", context).not(".not-ui").button()
.filter("[value='"+Drupal.t("Delete") +"'], [value='"+Drupal.t("Remove") +"']").button({icons: {primary: "ui-icon-trash"}}).end()
.filter("[value='"+Drupal.t("Upload") +"']").button({icons: {primary: "ui-icon-circle-arrow-n"}}).end()
.filter("[value='"+Drupal.t("Save") +"']").button({icons: {primary: "ui-icon-disk"}}).end()
.filter("[value='"+Drupal.t("Preview") +"']").button({icons: {primary: "ui-icon-arrowrefresh-1-s"}}).end()
.filter("[value='"+Drupal.t("Log in") +"']").button({icons: {primary: "ui-icon-person"}}).end();
$("input[type=file]", context).not(".customfile-input").customFileInput();
}
};
$(function(){
$('#block-menu-menu-more-left-link .expanded >a').click(function()
{
$(this).next().slideToggle().parent().toggleClass('active-trail');
return false;
});
$('#block-views-news-block-2 .view-grouping-header').click(function(){
$(this).next().slideToggle();
});
$('.view-vacancy .views-row h2 a').click(function(){
$parent=$(this).closest('.views-row');
$('.content',$parent).slideToggle();
return false;
});
});
})(jQuery);
Выведите свою вьюху где вам нужно и дайте ссылку
Вот: http://www.i-home.ru/-knx
Код, что я писал выше, замените на
$parent=$(this).closest('.views-row');
$('.content',$parent).slideToggle();
return false;
});
Также где-то в папке sites/all найдите css файл с кодом
display: none;
}
и замените на
.view--knx .views-row .content {
display: none;
}
все нашел, сейчас попробую и отпишусь!
не получилось...
в css
добавил строчку, получилось так:
.view-vacancy .views-row .content
.view-_knx .views-row .content
{
display: none;
}
в js так:
$('.view-vacancy, .view-_knx').find('.views-row h2 a').click(function(){
$parent=$(this).closest('.views-row');
$('.content',$parent).slideToggle();
return false;
});
само представление тут: http://www.i-home.ru/_knx
и не пашет=((((
не пашет=((((
теперь еще и http://www.i-home.ru/vacancyстал сплошняком отображаться=(((
Все разобрался, почему то машинное имя _KNX не принимало... сделал новое представление и все заработала! ОГРОМНОЕ СПАСИБО!!!
Внимательно прочтите мой код. Разве я где-то ставил знак подчеркивания? везде дефисы, и вам надо было писать дефис, потому что views при формировании классов html в машинном имени заменяет '_' на '-'.
уже понял это, но у меня машинное имя было именно _knx, поэтому в кодах я поставил _knx, в общем пробовал и так и так, пока не создал заново представление с машинным именем knx и все норм. Еще раз огромное спасибо!!!