ShopCategory.php 1.78 KB
<?php

namespace common\models;
 
use Yii;
use yii\base\Model;
use yii\db\Query;

/**
 * Signup form
 */
class ShopCategory extends Model
{ 
    /**
     * весь список терминов
     */
    static function get ()
    {
        return yii::$app->db->createCommand('
            SELECT 
                termin_structure.termin_id,
                termin_structure.termin_pid,
                termin_lang.termin_title 
            FROM termin_structure  
                INNER JOIN termin_lang ON termin_lang.termin_id = termin_structure.termin_id
                    AND termin_lang.lang_id = '.Yii::$app->params['lang_id'].' 
            ORDER BY termin_structure.termin_id ASC, termin_structure.termin_pid ASC
        ')->queryAll();
    }
    
    // ===================
    // ==== STRUCTURE ====
    // ===================
    
    var $mass = array (); 
 
    public function build ()
    {
        if ($this->mass = self::get ())
        {
            return $this->getRecrusive (8);
        }
    }

    public function findChild ($id)
    {
        $mass = array ();
    
        foreach ($this->mass as $row)
        {
            if ($row['termin_pid'] == $id)
            {
                $mass[] = $row;
            }
        }
    
        return $mass;
    }
    
    public function getRecrusive ($menu_id)
    { 
        $items = $this->findChild($menu_id);

        if (! empty ($items))
        { 
            echo '<ul>';
        
            foreach ($items as $row) 
            { 
                echo '<li>'.$row['termin_title'].'</li>';
                
                if ($row['termin_pid'] != 0)
                {
                    $this->getRecrusive($row['termin_id']);
                }
            }
 
            echo '</ul>';
        }

    }
    
    // =====
    
}