[v1.0] Taggable Behaviour

Выкладываем свои наработки
Аватара пользователя
samdark
Администратор
Сообщения: 9403
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

[v1.0] Taggable Behaviour

Сообщение samdark »

Занялся поведением отсюда: viewtopic.php?f=9&t=336

Текущая версия: http://code.google.com/p/yiiext/source/ ... eBehaviour

Даёт возможность прозрачно назначать теги моделям и искать модели по тегам.

Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: [DRAFT] Taggable Behaviour

Сообщение slavcodev »

Как вариант в wordpress работа с тегами аналогична работе с категориями, там даже таблицы те же юзаются. Здесь нет планов это реализовать. Или лучше не мешать? В принципе кому надо легко перегрузит класс. Это так мысли в слух.
Жду Yii 3!

Аватара пользователя
Ozzy
Сообщения: 269
Зарегистрирован: 2009.04.02, 15:09
Откуда: Украина, Одесса

Re: [DRAFT] Taggable Behaviour

Сообщение Ozzy »

А зачем это надо? Ну то есть где это можна использовать?
Мой маленький блог - http://dbhelp.ru

Аватара пользователя
samdark
Администратор
Сообщения: 9403
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: [DRAFT] Taggable Behaviour

Сообщение samdark »

mc-bear
А чем категории отличаются от тегов?

Ozzy
Нужно чтобы не переписывать по тысяче раз одно и то же для разных моделей. Примеры: организация и поиск заметок, то же для закладок, также я использую это дело в одном из проектов для загруженных картинок (чтобы быстро можно было найти нужную).

Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: [DRAFT] Taggable Behaviour

Сообщение slavcodev »

Sam Dark писал(а):mc-bearА чем категории отличаются от тегов?
Категории имеют родителя например, а теги просто набор слов. ИМХО.
Жду Yii 3!

Аватара пользователя
samdark
Администратор
Сообщения: 9403
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: [DRAFT] Taggable Behaviour

Сообщение samdark »

В принципе, никто не мешает структурировать теги. В том же Drupal эти понятия вообще слиты в одно — taxonomy. Но тут опять же вопрос: насколько часто это используется и для чего.

Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: [DRAFT] Taggable Behaviour

Сообщение slavcodev »

Sam Dark писал(а):В принципе, никто не мешает структурировать теги. В том же Drupal эти понятия вообще слиты в одно — taxonomy. Но тут опять же вопрос: насколько часто это используется и для чего.
Точно. В wordpress тоже они называются taxonomy. На сколько часто? А разве для тех же примеров что ты Ozzy привел не могут использоваться структурированные теги (категории)?
Жду Yii 3!

Аватара пользователя
samdark
Администратор
Сообщения: 9403
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: [DRAFT] Taggable Behaviour

Сообщение samdark »

В принципе могут.

Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: [DRAFT] Taggable Behaviour

Сообщение slavcodev »

Sam Dark писал(а):Основные методы:
а где getTags?
Жду Yii 3!

Аватара пользователя
samdark
Администратор
Сообщения: 9403
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: [DRAFT] Taggable Behaviour

Сообщение samdark »

Спасибо, добавил.

Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: [DRAFT] Taggable Behaviour

Сообщение slavcodev »

Sam Dark писал(а):getTags()
Отдаёт строку тегов, разделённых запятыми.

Также хочется реализовать методы для поиска по тегам и получения самих тегов для вывода их списком.
Возможно будет полезна функция getTagsArray(), которая выдаст теги в виде массива и hasTags('tag') которая найдет в массиве тегов нужный
Жду Yii 3!

Аватара пользователя
samdark
Администратор
Сообщения: 9403
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: [DRAFT] Taggable Behaviour

Сообщение samdark »

getTagsArray добавил. Насчёт hasTags очень сомневаюсь. Можно пример, где оно будет реально нужно?

Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: [DRAFT] Taggable Behaviour

Сообщение slavcodev »

У тебя комментарий по поводу поиска по тегам. Или это другой поиск?
Жду Yii 3!

Аватара пользователя
samdark
Администратор
Сообщения: 9403
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: [DRAFT] Taggable Behaviour

Сообщение samdark »

Поиск — это выборка всех моделей с определённым набором тегов. К самому объекту модели он отношения не имеет. Скорее всего попробую реализовать статическим методом.

Аватара пользователя
samdark
Администратор
Сообщения: 9403
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: [DRAFT] Taggable Behaviour

Сообщение samdark »

Реализовал первую версию:
http://yiiframework.ru/files/extensions/Taggable.zip

Умеет работать с тегами и их же кешировать. В комплекте есть readme на русском.

Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: [DRAFT] Taggable Behaviour

Сообщение slavcodev »

Sam Dark писал(а):
getTagsArray()
Отдаёт массив тегов.

Код: Выделить всё

$tags = $post->getTags();
foreach($tags as $tag){
  echo $tag;
}
 
Опечатка.
Жду Yii 3!

Аватара пользователя
samdark
Администратор
Сообщения: 9403
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: [v0.5] Taggable Behaviour

Сообщение samdark »

Обновил расширение. Добавли следующие методы:

findAllByTags($tags, CDbCriteria $criteria = null)
Отдаёт все модели с такими тегами и (опционально) критерием.

Код: Выделить всё

$posts = Post::model()->findAllByTags("mysql, yii");
 
getCountByTags($tags, CDbCriteria $criteria = null)
Отдаёт количество моделей с такими тегами и (опционально) критерием.

Код: Выделить всё

$postsCount = Post::model()->getCountByTags("mysql, yii");
 
http://yiiframework.ru/files/extensions/Taggable.zip

Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: [v0.6] Taggable Behaviour

Сообщение slavcodev »

предлагаю добавить метод для возврата списка тегов с линками, не видел еще ни одного сайта который бы не выводил теги ссылками, по которым выбираются все посты с данным тегом
Жду Yii 3!

Аватара пользователя
samdark
Администратор
Сообщения: 9403
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: [v0.6] Taggable Behaviour

Сообщение samdark »

Верно.

Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: [v0.6] Taggable Behaviour

Сообщение slavcodev »

ждем 0,7 :)
Жду Yii 3!

Ответить