Перейти к публикации

Привязка статьи к категории - как сделать?


Рекомендованные сообщения

Мне требуется выполнить следующее:

Есть некая категория в ней содержаться новости, при любом переходе на эту категорию, естественно, производится вывод списка новостей содержащихся в данной категоии. Задача:

1. В админ панели обеспечить привязку некоей статьи по её id (чтобы попроще - новое поле в редакторе категорий, где я произвольным образом смогу вводить числовое значение, известное мне наперёд, без вывода каких-либо списков новостей).

2. При клике на любую ссылку на категорию (будь-то speedbar или, даже, прямой урл в адресной строке), к которой я привязал прямую ссылку на статью (см. п.1) должна будет выводиться эта самая полная новость-статья (!), а не список новостей в категории.

Вопрос: возможно ли это проделать небольшими усилиями (понятно, что возможно всё) и если да, то где нужно копаться. Реализация п.1 не вызывает никаких проблем, с п.2 , даже, не знаю где нужно копаться. Прошу помощи от знающих людей.

Для примера: http://www.craftsman-russia.ru/about/history/ и http://stroyotriad.ru/projects.html

Линковать мне нужно именно новости (используемые в качестве статей), а не статические страницы.

Только сегодня купил лицензию на год, доступа к разделу поддержки пока не получил, сайт - internetsad.ru - пока только html-страничка

Ссылка на сообщение
Поделиться на других сайтах

Судя по вашим примерам это обыкновенные статические страницы. Создаете статическую страницу и ставите на нее ссылку на сайте.

Ссылка на сообщение
Поделиться на других сайтах

Судя по вашим примерам это обыкновенные статические страницы. Создаете статическую страницу и ставите на нее ссылку на сайте.

Спасибо за уделённое внимание, но на этих сайтах не статика.

http://phaeton.ru/infocom/1c/ - вот тут железно не статика - разрабатывал дизайн, знаю точно. Просто в использованном движке (самописный) применена концепция отличная от применяемой в DLE. В нём раздел-категория сам собою являет статью, т.е. при добавлении статьи получается одновременное добавление раздела (статья и раздел одно и тоже). Вроде эту концепцию называют "статья-узел", а концепция DLE "категория-узел" и хотя последняя является, как мне кажется, более современной (судя по набору популярности блогов и порталов).

В указанном примере меню слева динамическое и отражает как раз подход "статья-концепция".

Я уже написал динамическое меню категорий (стырил код из categories.php ;-) ).

У меня в голове два варианта реализации проблемы:

1. Простой-корявый:

- Производить выборку всех новостей в массив во время редактирования категорий (параметры id, alt_name и parentid),

- далее по паренту определять статью в этой категории (нарочно единственную в этой категории),

- а дальше просто в ссылку очередной опции динамического меню ( $link = "<a href=\"".$config['http_home_url'].get_url($id)."/\" target=\"_blank\">" ) дописывать id - alt_name.html (для включённого ЧПУ)

- и чего-то сделать аналогичное со speedbar -ом, пока не знаю где править.

2. Сложный-грамотный:

- Что-то где-то сделать, чтобы не приходилось нагружать БД запросами. Привести к виду, как в поставленном вопросе.

На мысль правильности навёл аналогичный способ в RBC Contents 4.0 - при создании/редактировании категори можно ставить галочку "связть документ".

Изменено пользователем Илья Д.
Ссылка на сообщение
Поделиться на других сайтах

под словом статические страницы, это не совсем то что вы поняли. В DLE есть функция добавления и управления статическими страницами. Также как торой вариант: категориями можно управлять, назначая им собственные шаблоны отличные от основного, и для определенных категорий можно назначить другие шаблоны, и в одних категориях писать новости как новости, а в других в виде статей, т.е. без комментариев и прочего. Я не вижу в ваших примерах необходимости вносить какие либо модификации в код DLE-

Ссылка на сообщение
Поделиться на других сайтах

Я не вижу в ваших примерах необходимости вносить какие либо модификации в код DLE-

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

+ не знаю как реализвать динамическое меню из статических страниц, да и в новостях заметно больше параметров и они мне очень нравятся

а на 50 - 100 подразделов шаболнов не напасёшься

Изменено пользователем Илья Д.
Ссылка на сообщение
Поделиться на других сайтах

эта функция находится в файле engine/modules/function.php но мое мнение что вы напрасно усложняете себе жизнь. Можеть быть вам нужно что то иное, но предоставленные примеры я бы мог точно сделать в виде полной копии на DLE, неизменив при этом ни кусочка кода. Но вам видней.

Ссылка на сообщение
Поделиться на других сайтах

Если же привязка к категории новости является задачей крупномасштабной (не могу определить самостоятельно), то остановлюсь на первом варианте

эта функция находится в файле engine/modules/function.php но мое мнение что вы напрасно усложняете себе жизнь. Можеть быть вам нужно что то иное, но предоставленные примеры я бы мог точно сделать в виде полной копии на DLE, неизменив при этом ни кусочка кода. Но вам видней.

Спасибо за подсказку - покопаюсь.

А в случае реализации подобных проектов вашими методами, можно добавлять информацию при помощи раздела админки "добавить новость"? Уж очень мне нравится эта функция по эргономичности и функциональности.

Т.е. таким образом чтобы не прибегать к редактированию (созданию новых индивидуальных) шаблонов, чтобы вывод производился в {content}

Ссылка на сообщение
Поделиться на других сайтах

Ну конечно. Делаете например категорию "Новости", а в ней соответствующие подкатегории, также делаете категорию например "Статьи" и в ней делаете соответствующие нужные подкатегории, для категории "Статьи" и ее подкатегорий назначаете специальный упрощенный шаблон, без комментариев, голосований и прочего, и пишите нужные статьи, там где нужны новости с комментариями, пишите как новости в раздел новости. Все. Навигация ставится в DLE в ручную в шаблоне как угодно.

В Итоге вы получите на сайте и новости и статьи. Но все это бует управлятся через управление новостями.

Ссылка на сообщение
Поделиться на других сайтах

Для себя я так и делаю: есть категория "Новости", а есть категория "Руководство", с соответствующими подкатегориями, куда собираюсь складывать новости в виде статей.

Вопрос в том, чтобы не производился вывод статьи в виде "краткого содержания", а в виде "статья целиком" (она будет единственной в каждой подкатегории) без лишнего (в данном случае) перехода "Подробнее...". Т.е. в категории "Новости" оставить как есть, а для категории "Руководство" избежать перехода "Подробнее...".

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

Ссылка на сообщение
Поделиться на других сайтах

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

Ссылка на сообщение
Поделиться на других сайтах

Да, именно, я про тоже. Этот вариант я думал реализовать самым первым делом. Но проблема в том, что не будет реализованы теги:

{pages}

[print-link] и [/print-link]

{related-news}

не будет опроса в самой статье

хотя, может проще приписать эти функции к выводу короткой статьи, чем заморачиваться с концептуальными переработками.

Ссылка на сообщение
Поделиться на других сайтах

я еще подумал: если мне понадобится аннотирование статьи (на главной, например), то я не смогу этого сделать с вариантом псевдо-полноая статья.

По привязке статьи:

появилась идея (вроде светлая) подправить саму ф-ию get_url() !

Предполагаю следующие действия:

я прописываю в БД в таблице dle_category новое поле, допустим "child",

подправляю categories.php таким образом, чтобы обеспечивалась возможность ввода id новости (куда-нибудь вставлю <input>, пока точно не определился, но задача несложная),

а затем (!) в functions.php правлю get_url() (спасибо за подсказку celsoft -у), где в случае, если значение определено, дописываю урл [id]-index.html

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

А в целом мне движок очень нравится - не столько за какие-либо функции, сколько за ЭРГОНОМИЧНОСТЬ КОДА. Я - человек абсолютно не соображающий в php-программировании (я работаю аналитиком и немного халтурю дизайном и флеш-программированием), а смог разобраться, меня прямо распирает от гордости за самого себя :) . Я терь буду всем говорить, мол изучил и немного знаю php-программирование - спасибо celsoft!

Ссылка на сообщение
Поделиться на других сайтах

я еще подумал: если мне понадобится аннотирование статьи (на главной, например), то я не смогу этого сделать с вариантом псевдо-полноая статья.

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

появилась идея (вроде светлая) подправить саму ф-ию get_url() !

Предполагаю следующие действия:

я прописываю в БД в таблице dle_category новое поле, допустим "child",

подправляю categories.php таким образом, чтобы обеспечивалась возможность ввода id новости (куда-нибудь вставлю <input>, пока точно не определился, но задача несложная),

а затем (!) в functions.php правлю get_url() (спасибо за подсказку celsoft -у), где в случае, если значение определено, дописываю урл [id]-index.html

как то все сложно и помойму неверно, думаю на практике возникнут проблемы, хотя конечно попробуйте.

Ссылка на сообщение
Поделиться на других сайтах

С динамическим меню всё заработало. Вот только оказалось, что спидбар, не использует функцию get_url. Так что прийдётся еще со спидбаром поковырятся.

А где $линк для спидбара поправить можно?

Ссылка на сообщение
Поделиться на других сайтах

О как, оказывается два раза определяется функция get_url(): в файле functions.php и functions.inc.php

вставил свою строку в оба описания функции (кстати, одинаковые) - везде определяется как мне нужно в тегах {speedbare} и в {link-category}. Теперь думаю, как убрать в ссылках слэш после ...index.html - оно канеша работает, но выглядит коряво

Изменено пользователем Илья Д.
Ссылка на сообщение
Поделиться на других сайтах

Уф, всё сделал, работает как часики :)

В этот раз немного изменил подход: привязку осуществлять не во время редактирования/добавления категорий, а (!) во вермя редактирования/добавления новостей, что позволило избежать излишней выборки из БД, да и такой подход интуитивно-понятен (привязываются только те статьи, которые находятся внутри привязываемой категории) + устранение вероятности ошибок при привязке таких как, возможность привязать одну статью к нескольким категориям или привязка несуществующей статьи, да плюс к тому нет необходимости выяснять id новости.

Дошлифую своё динамическое меню и выложу скрины админки ;)

Ссылка на сообщение
Поделиться на других сайтах

Илья, я так понял что все это затевалось ради "правильного" меню?

Не совсем так. Ради навигации нужного мне вида. Далее всё станет ясно.

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

Для начала: Так выглядит админка - редактирование категорий, где можно наблюдать привязанные статьи и возможность их отвязать

categories.gif

далее: Админка - редактирование новостей, где значками помечены привязанные/непривязанные статьи (-новости), привязку можно снять в этом же окне (см. красную стрелку)

editnews.gif

При добавлении/редактировании новости можно также управлять привязкой:

do_edit_news.gif

Замечу, что я реализовал возможность привязывать к конкретной категории только те новости, которые помещены внутрь этой категории - поэтому всё управление привязкой осуществляется из управления новостями (за исключениме "отвязки" см. 1ю картинку).

А теперь собственно результат:

По 1 картинке видим, что категория "Сеяный газон" не имеет привязки, следовательно все ссылки на эту статью работают как обычно (вываливается перечень новостей (в сокращенном виде - shortstory), содержащихся в категории и её субкатегориях):

browse2.gif

А вот категория "Газон" имеет привязку на соответствующую статью и поэтому вываливается общая статья

browse3.gif

Любые ссылки на категорию изменяются в зависимости от привязки

browse1.gif

Ссылка на сообщение
Поделиться на других сайтах
  • 3 года спустя...

Картинки, к сожалению, не грузятся. Но других похожих топиков не нашёл.

Я хочу добавить описания в разделы. Это можно сделать через шаблоны, но это неудобно и требует "ручной" работы с файлами на хосте.

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

Изменено пользователем error2k
Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...