Seditio Source
Root |
./othercms/croogo-4.0.7/vendor/croogo/croogo/Taxonomy/src/Controller/Admin/TaxonomiesController.php
<?php

namespace Croogo\Taxonomy\Controller\Admin;

class
TaxonomiesController extends AppController
{

    public function
index()
    {
       
$vocabularyId = $this->getRequest()->getQuery('vocabulary_id');
       
$vocabulary = $this->Taxonomies->Vocabularies
           
->get($vocabularyId, [
               
'contain' => 'Types',
            ]);

       
$defaultType = $this->Taxonomy->getDefaultType($vocabulary);

       
$taxonomies = $this->Taxonomies->find()
            ->
matching('Terms', function ($q) {
                return
$q->select([
                   
'id', 'title', 'slug',
                ]);
            })
            ->
where([
               
'vocabulary_id' => $vocabularyId,
            ])
            ->
order(['lft' => 'ASC']);

        foreach (
$taxonomies as $taxonomy) {
           
$taxonomy->indent = $this->Taxonomies->getLevel($taxonomy);
           
$taxonomy->setDirty('indent', false);
        }

       
$this->set(compact('vocabulary', 'taxonomies', 'defaultType'));

        if (
$this->getRequest()->getQuery('links') || $this->getRequest()->getQuery('chooser')) {
           
$this->render('chooser');
        }
    }

   
/**
     * Admin moveup
     *
     * @param int $id
     * @param int $vocabularyId
     * @param int $step
     * @return void
     */
   
public function moveUp($id = null, $vocabularyId = null, $step = 1)
    {
       
$this->move('up', $id, $vocabularyId, $step);
    }

   
/**
     * Admin movedown
     *
     * @param int $id
     * @param int $vocabularyId
     * @param int $step
     * @return void
     */
   
public function moveDown($id = null, $vocabularyId = null, $step = 1)
    {
       
$this->move('down', $id, $vocabularyId, $step);
    }

   
/**
     * Move term up/down
     *
     * @param string $direction either 'up' or 'down'
     * @param int $id
     * @param int $vocabularyId
     * @param int $step
     */
   
protected function move($direction, $id, $vocabularyId, $step)
    {
       
$redirectUrl = ['action' => 'index', 'vocabulary_id' => $vocabularyId];
       
$this->Taxonomy->ensureVocabularyIdExists($vocabularyId);
       
$this->Taxonomies->Terms->setScopeForTaxonomy($vocabularyId);
       
$taxonomy = $this->Taxonomies->get($id);
       
$method = 'move' . ucfirst($direction);

        if (
$this->Taxonomies->$method($taxonomy, $step)) {
           
$messageFlash = __d('croogo', 'Moved %s successfully', $direction);
           
$cssClass = ['class' => 'success'];
        } else {
           
$messageFlash = __d('croogo', 'Could not move %s', $direction);
           
$cssClass = ['class' => 'error'];
        }
       
$this->Flash->{$cssClass['class']}($messageFlash);

        return
$this->redirect($redirectUrl);
    }

    public function
delete($id)
    {
       
$taxonomy = $this->Taxonomies->get($id);
       
$vocabularyId = $this->getRequest()->getQuery('vocabulary_id');
       
$this->Taxonomy->ensureVocabularyIdExists($vocabularyId);
        if (
$this->getRequest()->is('post') && isset($taxonomy)) {
           
$success = $this->Taxonomies->Terms->remove($taxonomy->term_id, $vocabularyId);
            if (
$success) {
               
$this->Flash->success(__d('croogo', 'Taxonomy deleted successfully'));

                return
$this->redirect(['action' => 'index', 'vocabulary_id' => $vocabularyId]);
            }
        }
    }
}