Не хочу хранить статьи в одной папке
dvd73 Offline
#1 Оставлено : 30 декабря 2015 г. 3:32:26(UTC)

Ранг: Member

Группы: Registered
Зарегистрирован: 26.12.2015(UTC)
Сообщений: 22
Откуда: Санкт-Петербург

Сказал(а) «Спасибо»: 4 раз
Добрый день

Статей очень много, хочу раскидать их по разным папкам контента (хотя тип контента у папки везде будет = Article), например:

Новости спорта
Новости политики

и т.д.

Категории соответственно будут выглядеть так:

Новости
---- Спорт
---- Политика

По умолчанию, каждая ссылка в категорях ведет на страницу Articles. На странице Articles лежит представление Article.List, которое имеет источник данных выбирающий ТОЛЬКО из папки Article, как мне сделать так, чтобы в представлении Article.List можно было получать статьи из разных папок контента?

Запросы типа:

Articles/Sport
Articles/Politic

должны выводить статьи из папок [Новости спорта] и [Новости политики] соответственно.
dvd73 Offline
#2 Оставлено : 31 декабря 2015 г. 0:33:16(UTC)

Ранг: Member

Группы: Registered
Зарегистрирован: 26.12.2015(UTC)
Сообщений: 22
Откуда: Санкт-Петербург

Сказал(а) «Спасибо»: 4 раз
Решил изменить представление Article.List, чтобы оно было чувствительно к папке контента

Цитата:

<div class="block list">
 
@using Kooboo.CMS.Content.Query;
@{
    var userKey = Page_Context.Current.PageRequestContext.AllQueryString["UserKey"];
    var folderCode = !String.IsNullOrEmpty(userKey) ? userKey : "Article";   
    var textFolder = ContentHelper.TextFolder(folderCode);
    var contentQuery = textFolder.CreateQuery(); 
   
    if (contentQuery.Count() > 0)
    {
      foreach (var item in contentQuery){
        <div class="item" @ViewHelper.Edit(item)>
          <h6 class="title"><a href='@Url.FrontUrl().PageUrl("Articles/Detail", new { UserKey = item.UserKey})'@ViewHelper.Edit(item,"Title") >@item["Title"]</a></h6>     
          <p @ViewHelper.Edit(item,"Summary")>@Html.Raw(item["Summary"])</p>
          <a class="comment" href="@Url.FrontUrl().PageUrl("Articles/Detail", new { UserKey = item.UserKey})#comments">@(item.Children("Comment").Count()) Comments</a>
       </div>       
      }
    }
  }
</div>


Для того чтобы все это работало надо чтобы папки контента имели Name (FolderCode) такой же как UserKey у категории. Хотя у категории есть только Title, при первом создании этот Title запоминается как Category.UserKey и при переименовании категории - не меняется.
Ella Offline
#3 Оставлено : 31 декабря 2015 г. 11:43:57(UTC)

Ранг: Advanced Member

Группы: Registered, Тестеры
Зарегистрирован: 07.05.2012(UTC)
Сообщений: 241
Откуда: Россия

Сказал(а) «Спасибо»: 25 раз
Поблагодарили: 66 раз в 61 постах
У меня все статьи в одной папке контента, я их просто делю по категориям. Собрать данные из разных папок - только в коде, стандартный механизм правил (DataRule) позволяет забирать данные только из одной папки.
dvd73 Offline
#4 Оставлено : 31 декабря 2015 г. 12:03:22(UTC)

Ранг: Member

Группы: Registered
Зарегистрирован: 26.12.2015(UTC)
Сообщений: 22
Откуда: Санкт-Петербург

Сказал(а) «Спасибо»: 4 раз
Все статьи в одной папке - не удобно управлять. Я бы еще согласился, если бы было тегирование. Но такого типа данных нет, а реализовывать саму - накладно.
Ella Offline
#5 Оставлено : 31 декабря 2015 г. 12:08:45(UTC)

Ранг: Advanced Member

Группы: Registered, Тестеры
Зарегистрирован: 07.05.2012(UTC)
Сообщений: 241
Откуда: Россия

Сказал(а) «Спасибо»: 25 раз
Поблагодарили: 66 раз в 61 постах
По мне, так категории как раз можно использовать как теги (для меня эти понятия идентичны).
А на счет хранения одного типа контента в одной папке: ведь когда мы делаем БД (например, на базе MS SQL), то по какому-либо однотипному объекту (например, статьи) ведь обычно используем одну таблицу, а не несколько. Здесь примерно такая же концепция.
dvd73 Offline
#6 Оставлено : 31 декабря 2015 г. 12:15:38(UTC)

Ранг: Member

Группы: Registered
Зарегистрирован: 26.12.2015(UTC)
Сообщений: 22
Откуда: Санкт-Петербург

Сказал(а) «Спасибо»: 4 раз
1 тип контента - 1 папка = да, но речь не об этом.
Речь о том, что в папке много статей относящихся к разным категориям. Вот посмотрите на рисунок, как в нем отфильтровать статьи по категориям?
https://drive.google.com/file/d/0B1zKlIpvZn1RMkF1WmxWcU1VS0k/view

Моя идея как раз заключается в связке Категория - Папка контента.
Или так:
Цитата:
Category.UserKey == TextFolder.FolderCode
Ella Offline
#7 Оставлено : 1 января 2016 г. 17:51:36(UTC)

Ранг: Advanced Member

Группы: Registered, Тестеры
Зарегистрирован: 07.05.2012(UTC)
Сообщений: 241
Откуда: Россия

Сказал(а) «Спасибо»: 25 раз
Поблагодарили: 66 раз в 61 постах
Да, согласна, если статей много, то не очень удобно. Функцию фильтрации по категориям пока не вшили в ядро, но ее можно добавить самостоятельно исправив пару файлов.
На офф.форуме про это писали - http://forum.kooboo.com/yaf_postst1270_TextContent-filter-by-category.aspx#post5140
Лента RSS  Лента Atom
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.