Вывод ноды как-бы без ноды

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

Аватар пользователя Legat Legat 10 июня 2011 в 11:52

Здравствуйте.

Есть вопрос, реализум ли на D7 такой вывод типа материала, как тут? То есть надо полностью как-бы убрать ноду, а затем вывести во вьюхе. Если это сделать можно, то каким образом?

Комментарии

Аватар пользователя dylan dylan 10 июня 2011 в 12:02

я бы простой модуль накидал
что-то типа

function aphorism_menu() {
        $items['aphorism'] = array(
                'title' => 'Афоризмы',
                'description' => 'Афоризмы',
                'access arguments' => array('access content'),
                'page callback' => 'aphorism_page_all',
                'type' => MENU_LOCAL_TASK
        );
        return $items;
}

function aphorism_page_all() {
        $select = db_select('node', 'n')
                ->fields('n', array('nid', 'sticky', 'created'))
                ->condition('status', 1)
                ->condition('type', 'aphorism')
                ->orderBy('sticky', 'DESC')
                ->orderBy('created', 'DESC')
                ->extend('PagerDefault')
                ->limit(20)
                ->addTag('node_access');
        $nids = $select->execute()->fetchCol();

        if (!empty($nids)) {
                $nodes = node_load_multiple($nids);
                $build = node_view_multiple($nodes);
                $build['pager'] = array('#theme' => 'pager', '#weight' => 5, );
                drupal_set_title('Афоризмы');
        } else {
                drupal_set_title('Афоризмов ещё нет');
        }
       
        return $build;
}

где тип материала называется aphorism
а для node-aphorism.tpl.php переделать как надо...

но это мой извращённый пятиминутный подход)))

Аватар пользователя Legat Legat 10 июня 2011 в 12:16

Когда я писал убрать ноду, то я имел ввиду также скрытие ее адреса аля domain.ru/node/123. По сути в этом и заключается весь трабл.

ну и можно добавить то что не мешало бы полностью убрать титл у ноды, даже при ее редактировании

Аватар пользователя Sun-fire Sun-fire 10 июня 2011 в 12:24

Чтобы адрес изменить на то pathauto и global redirect есть. А тайтл ноды - поле обязательное. При редактировании его можно например забивать автоматически, а при выводе скрывать. Только вот зачем???

Аватар пользователя cobanja cobanja 10 июня 2011 в 12:29

Можете попробовать с помощью CSS h2 {display:none} )) Если другого выхода не найдете) Останется все, кроме заголовка h2. аналогично со ссылкой.

Аватар пользователя cobanja cobanja 10 июня 2011 в 12:30

Еще один вариант, сделать заголовок как раз афоризмом. А через вьюху выводить нелинкабельные заголовки. Так можно. То есть сам афоризм будет содержаться сразу в заголовке

Аватар пользователя Sentrashy@drupal.org Sentrashy@drupal.org 10 июня 2011 в 12:45

"cobanja" wrote:

Еще один вариант, сделать заголовок как раз афоризмом. А через вьюху выводить нелинкабельные заголовки. Так можно. То есть сам афоризм будет содержаться сразу в заголовке

жесть Wink А еще эти афоризмы все будут h2 Wink

ТС, я хз как по науке там делается, но вообще - все что нужно это прочитать вот тут - http://drupal.org/node/394994 и понять как вывести всего одно поле, содержащее афоризм (без заголовков, ссылок и прочего)

Аватар пользователя Legat Legat 10 июня 2011 в 13:30

дело еще затрудняется тем, что все это идеть в rss и twitter и естественно хотелось бы что бы ссылки оттуда вели не на node/%, а на /aphorism ... без этих ваших ридеректов ... в общем задача ппц

Аватар пользователя Alex Bacart Alex Bacart 10 июня 2011 в 14:46

"Legat" wrote:
The Pattern for all Афоризм paths cannot contain fewer than one token.

bash.org.ru

Людмила:что значит надпись "изображение должно быть в файле формата JPEG ?"

Макс:это значит блять что изображение должно быть в формате jpeg

Добрый як:Не тупи. Что значит надпись: мимо унитаза не ссать? Никак не пойму, чего от меня хотят.

Аватар пользователя Legat Legat 10 июня 2011 в 16:15

мне надо чтобы все ссылки на ноды с афоризмами были по адресу /aphorism ты говоришь что это можно сделать через pathauto.. вот что на это отвечает сам pathauto - The Pattern for all Афоризм paths cannot contain fewer than one token. ествесственно можно добавить к путю /aphorism/node-nid но эт не то что надо, как я ранее и говорил

Аватар пользователя Legat Legat 10 июня 2011 в 16:22

кароч, нужно чтоб все ссылки с нод вели на /aforizm, а созданная страница вьюхи по тому же адресу их перекрывала, либо чтобы этих ссылок у данного типа нод вообще не было... если ссылки генерируются от заголовков ноды, то их надо попросту отключить, так как они здесь вообще не к месту. вопрос - как?

Аватар пользователя Alex Bacart Alex Bacart 10 июня 2011 в 16:39

"Legat" wrote:
кароч, нужно чтоб все ссылки с нод вели на /aforizm

Что это за ссылки? Где располагаться будут?
"Legat" wrote:
чтобы этих ссылок у данного типа нод вообще не было

Невозможно.

Как я вижу ситуацию:

  1. Создаем ноды афоризмов, на урлы плюём, оставляем как есть.
  2. Создаем вьюху, в которой выводим только текст этих афоризмов.
  3. Где-то выводим ссылку на site.ru/aforizm.
  4. Имеем счастье.
Аватар пользователя dylan dylan 10 июня 2011 в 22:36

гы... значит с простеньким модулем и вправду было бы проще)))

и по поводу

"Vydrin_AP" wrote:
"Legat" написал(а):

чтобы этих ссылок у данного типа нод вообще не было

Невозможно.


можно сделать редирект для всех нод типа aphorism через drupal_goto на /aphorism

Аватар пользователя Legat Legat 14 июня 2011 в 15:42

Почитал на api про drupal_goto, понял както мало. Можно пример кода на редирект? И его ведь в template.php выводить надо, да?))

Аватар пользователя Sun-fire Sun-fire 14 июня 2011 в 18:12

drupal_goto место в файле модуля, а не в теме.

drupal_goto('node/123'); - самый простой пример редиректа, в даном случае на страницу ноды с номером 123. По умолчанию используется 302 редирект.