Здраствуйте, есть несколько конкректных задач и я бы хотел попросить вас помочь с их решением.
Итак:
- С помощью модуля CCK и модуля для него - imagefield - сделал ноду, называемую "Биография" в которой между title и body есть поле "foto" в это поле добавляется фотография человека. Проблема в том, что изображение находится над текстом и текст её не обтекает. Решается это очень просто и мне можно было бы для всех img добавить float: left; Но так делать не хочется, желательно сделать отдельный стиль. Но стиль то надо где то прописать?! Поставил модуль contemplate и там моему содержимому соотвествует строка
<div class="field-item"><?php print $field_foto[0]['view'] ?></div>
Ну и куда добавить стиль?! - Для cck есть модуль matrix - добавляет таблицу 10x10. И вот вопрос как увеличить максимальный размер этой таблицы?
- Для модуля Adsense необходимым условием является наличие в профиле пользователя текстового поля с определённым именем и содержащим Adsense ID. Каким образом можно сделать так, чтобы при регистрации нового пользователя это поле заполнялось автоматом (не заставлять же пользователя его вводить вручную)
- Имеется список всех Нобелевских премий по какому либо предмету, каким образом можно сделать сортировку по годам и как это осуществить в рамках одной ноды
Вот такой вот небольшой список, надеюсь получить ответ. Спасибо.
Комментарии
1) Создаёте одну ноду вашего материала и смотрите в код страницы: будет неск. вложенных div'ов с классами типа "field field-type-text field-field-recipient-name field-items field-item". В этом примере "field-field-recipient-name" - класс моего поля "recipient-name"
Выбирайте, для какого класса вам удобнее применить ваши стили.
В такой ситуации хорошо помогает плагин firebug к Firefox'у: с ним легко увидеть иерархию классов
2) В худшем, крайнем случае - поковырявшись в коде модуля и создав diff раличий, чтобы можно было их восстановить при дальшейших обновлениях модуля.
3) Я понял инструкцию немного по-другому: надо создать у одного (любого или админа - точно не помню) пользователя скрытое поле в профиле, вписать туда AdsenseID и сказать об этом модулю в его настройках.
4) Это как так: сортировку СПИСКА в рамках ОДНОЙ ноды? Вы имеете в виду список из одной ноды и под ним пейджер для перехода к следующей ноде? Тогда проще всего views с нужными сортировками и одной нодой/страницу
Поставил модуль contemplate и там моему содержимому соотвествует строка
<?php print $field_foto[0]['view'] ?>
Ну так в бой. .field-item img { float: left; }, можно поменять field-item на что-нить другое - вариантов много...
Ну и куда добавить стиль?!
Рекомендую в style.css вашей темы.
(не заставлять же пользователя его вводить вручную)
А откуда будет этот самый ID браться? В конце концов пользователь может скопировать свой ID.
Имеется список всех Нобелевских премий по какому либо предмету, каким образом можно сделать сортировку по годам и как это осуществить в рамках одной ноды
Самый простой на мой взгляд вариант - вручную.
1) to all хотелось бы применять класс css не к диву где лежит изображение, непосредственно к самому изображению. Для этого мне нужно прописать что то типа
<img class="field-float-left" .... />
Поскольку, как я думаю, если применить класс к диву то полетит вёрстка шаблона...firebug пользуюсь
Вопрос отпал, видеоуроки на drupal.org помогли...
Хочу поделиться откровением, поразбирав более подробно модуль contemplate я обнаружил что там есть возможность добавить к шаблону оформления определённые элементы в php выводе, а это в свою очередь в сочетании с оформлением и собственными стилями даёт просто огромные возможностипо редактированию и персонализации. Короче я доволен как слон
2) - а можно поподробней пояснить...
3)Если как пишет VLAD_X это поле нужно только для одного пользователя то вроде бы проблем нет.
Если же иначе, то я думал в пояснении к полю заставлять пользователя ввести нужное значение id. Интересно было бы посмотреть, как будет работать adsense если сделать не текстовое поле, а выбор из списка в котором лишь одно значение стоит - мой id.
4)Поясню что же я хотел получить: имеется список вот такого вида
годА надо выделить форматированием, текст премии будет работать ссылкой. Я думал так:
1) одна нода, в ней туча полей от cck, и ещё есть сортировка по этой ноде (похоже для меня это нереально...)
2) второй более реальный вариант - это на каждую премию/элемент списка по микроноде, а далее сортировка и вывод с помощью views, как предложил vlad.
И ещё, каким образом можно организовать переход на предыдущую или следующую статью, как здесь?
А также, как можно сделать так чтобы в конце ноды определённого типа показывались ссылки на ноды находящиеся, скажем, в одном словаре или имеющие общий термин?
2) Берёте файл matrix.module (ну или как он у вас там называется), делаете копию типа matrix_OLD.module, правите основной matrix.module (скорее всего кол-во строк и столбцов задано переменной или константой в файле).
Затем, если у вас сайт на *nix-сервере, делаете
diff -ubBw matrix_OLD.module matrix.module > matrix.diff
и получаете файл, в котором содержатся все различия. Когда приходит обновление модуля от его разработчика, обновляетесь и делаетеpatch < matrix.diff
. Либо просто смотрите в diff-файл и вручную снова правите модуль.Если же у вас Windows-сервер, то можно сделать
fc /n matrix_OLD.module matrix.module > matrix.diff
, но этот diff-файл будет иметь другой формат и применить автоматически его нельзя будет, только вручную.3) После установки АдСенса в его настройках всё пошагово расписано (но по-английски), следуйте всем просьбам модуля.
Но я сделал проще: взял Гугловский код с нужным видом, цветом и т.д. и просто воткнул его в блок (формат ввода PHP). Так оно гораздо быстрее работает. ведь никаких лишних обращений к серверу и БД. кроме выборки блока и показа его на экране не производится.
4) Список на то он и список, чтобы состоять из НЕСКОЛЬКИХ (МНОГИХ) элементов. Делайте тип данных через CCK, причём новые поля не обязательно придумывать: год получения премии можно представить как дату создания материала (это стандартное поле, оно есть всегда) и сортировать по ней, ну а тект премии = текст самой ноды. Если типов материалов на сайте мало, то можно использовать стандартный page или story.
5) На ДО сделано через books. Вот тут затрагивалась похожая тема.
VLAD_X, прежде всего хочу сказать спасибо за хороший ответ.
2) Пока что тестирую на denwer - там смогу и локально сравнить, а так у меня nix хостинг. Спасибо за идею.
3)Мне нравится ваш метод, но ведь код google это JavaScript - неужели при формате вывода php - всё работает?
4)Будем подумать, как это получше сделать, за идею также спасибо.
5) Прочитал я всё обсуждение, крайне интересная полемика там развилась. Страшно даже стало использовать CCK.
А по теме: скачал два модуля, что там указывались, попробую их помучать.
Ещё один вопросик имеется: необходимо изменить один из стандартных блоков дрюпала ("сейчас на сайте"), конкретно - сделать другое форматирование. Хотелось бы узнать где в дрюпале записаны эти блоки, поскольку в page.tpl.php его кода нет конечно, а только вывод самого блока
3) В формате вывода PHP как раз отключаются все дополнительные фильтры, кроме интепретатора PHP, поэтому получаем на выходе всё AS IS.
5) Не читайте сообщения Макса/Разгонки
6) Просто поменять оформление можно через стили. Каждый блок находится в контейнере (div'е) с определённым id, н-р,
<div id="user-block-1"></div>
. Соотв. все стили можно переделать.Если надо глубокие изменения - ковыряйте
/modules/user/user.module : 515 : function user_block()
Другой вариант - для случая, когда надо поменять расположение элементов, - скопировать файл block.tpl.php в block-<id_нужного_блока>.tpl.php и сделать в нём всё, что требуется.Спасибо за ответы. Ноя хотел вот что уточнить. Мне надо поменять оформление внутри блока. А именно
<div class="content">Сейчас на сайте <em>1 пользователь</em> и <em>0 гостей</em>.<div class="item-list"><h3>Пользователи на сайте</h3><ul><li><a href="/users/wiw" title="Информация о пользователе.">wiw</a></li></ul></div></div>
на вот такое:
<div class="content">Сейчас на сайте: <em>0 гостей</em><br/><em>1 пользователь</em>.<div class="item-list"><h3>Пользователи на сайте</h3><ul><li><a href="/users/wiw" title="Информация о пользователе.">wiw</a></li></ul></div></div>
Надо, как я понял, добавить двоеточие ппосле слова "сайте" и поменять естами гостей и пользоваетелей.
1) Найти в Переводах фразу "Who\'s online" (переведена как "Сейчас на сайте") и добавить двоеточие.
2) Найти в Переводах фразы "There is currently %members and %visitors online" и "There are currently %members and %visitors online."
(обе переведены как "Сейчас на сайте %members и %visitors.") и заменить на "Сейчас на сайте %visitors и %members."
4) не знаю, какая версия у вас модуля matrix - сегодня ради интереса скачал, прочитав эту тему - там прекрасно настраивается размерность таблички - обновляйтесь и пользуйтесь.
VLAD_X
Thanks, очень помогли...