nkostadinov / yii2-taxonomy
Yii2 Taxonomy
Installs: 294
Dependents: 1
Suggesters: 0
Security: 0
Stars: 8
Watchers: 5
Forks: 2
Open Issues: 1
Type:yii2-extension
Requires
- yiisoft/yii2: ~2.0.15.1
Requires (Dev)
- yiisoft/yii2-codeception: ~2.0.0
This package is auto-updated.
Last update: 2025-01-06 16:29:24 UTC
README
Yii2 Taxonomy management. A component which adds generic taxonomy functionalities to your application. The component comes with a couple of term definitions(tags, properties). These additional info is added via addition tables created by the extension. The extension also offers a search behavior which can be attached to AR instances for easier searching.
Installation
The preferred way to install this extension is through composer.
Either run
php composer.phar require --prefer-dist nkostadinov/yii2-taxonomy "*"
or add
"nkostadinov/yii2-taxonomy": "*"
to the require section of your composer.json
file.
Then you need to configure the taxonomy component to your configuration file.
'components' => [
.......
'taxonomy' => [
'class' => 'nkostadinov\taxonomy\Taxonomy',
],
.......
Finally you need to run the initial migration
yii migrate --migrationPath=@nkostadinov/taxonomy/migrations
Usage
If you need to use the management interface for taxonomies you must add the Taxonomy module to you configuration
'modules' => [
......
'taxonomy' => [
'class' => 'nkostadinov\taxonomy\Module'
],
It is recommended to use the taxonomy MODULE only on dev environment to create the taxonomies just like gii. When you add a taxonomy via the interface the component creates a migration so you can execute it on production later.
Sample usage (tags): //return a taxonomy object used to manipulate this taxonomy(taxonomy must be defined before that and the migrations executed)
$taxonomy = Yii::$app->taxonomy->getTerm('post_tags');
//Adding terms (e.g. tags) to an object with id $post_id
$taxonomy->addTerm($post_id, ['read', 'important', 'new']);
//Deleting tags
$taxonomy->removeTerm($post_id, ['important', 'new']);
//Retrieving tags
$taxonomy->getTerms($this->id);
// returns ['read']
Taxonomies
The bundled taxonomies with these package are :
TagTerm
Basically tag represent taxonomies which are added to an object. They do not have a value. You can add multiple tags to an item.
PropertyTerm
They are the same as tag terms but they DO have a value. You can add multiple properties to an item.
CategoryTerm
Ability to create hierarchical terms (e.g. categories)