ShopCategory.php 1.88 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_relation`.termin_id_1,
                `termin_relation`.termin_id_2,
                `termin_lang`.termin_title 
            FROM `termin_relation`  
                INNER JOIN `termin_lang` ON `termin_lang`.termin_id = `termin_relation`.termin_id_1
                    AND `termin_lang`.lang_id = '.yii::$app->lang_id.' 
                INNER JOIN `template` ON `template`.template_id = `termin_lang`.template_id 
            ORDER BY `termin_relation`.termin_id_1 ASC, `termin_relation`.termin_id_2 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_id_2'] == $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_id_2'] != 0)
                {
                    $this->getRecrusive($row['termin_id_1']);
                }
            }
 
            echo '</ul>';
        }

    }
    
    // =====
    
}