public static function newInstance()
 {
     if (!self::$instance instanceof self) {
         self::$instance = new self();
     }
     return self::$instance;
 }
function seo_subcategory_list($categories, $category, $level = 0)
{
    $level++;
    $elem = '<i class="fa fa-angle-right level"></i>';
    $arrows = '';
    if ($level == 2) {
        $arrows = $elem;
    } else {
        if ($level == 3) {
            $arrows = $elem . $elem;
        } else {
            if ($level == 4) {
                $arrows = $elem . $elem . $elem;
            } else {
                $arrows = $elem . $elem . $elem . $elem;
            }
        }
    }
    foreach ($categories as $c) {
        $detail = ModelSeoCategory::newInstance()->getAttrByCategoryId($c['pk_i_id']);
        //Update if anything
        if (Params::getParam('plugin_action') == 'done' and (Params::getParam('seo_title' . $c['pk_i_id']) or Params::getParam('seo_desc' . $c['pk_i_id']) or Params::getParam('seo_keywords' . $c['pk_i_id']))) {
            if (Params::getParam('seo_title' . $c['pk_i_id']) != '' or Params::getParam('seo_desc' . $c['pk_i_id']) != '' or Params::getParam('seo_keywords' . $c['pk_i_id']) != '') {
                if (isset($detail['seo_category_id'])) {
                    ModelSeoCategory::newInstance()->updateAttr($c['pk_i_id'], Params::getParam('seo_title' . $c['pk_i_id']), Params::getParam('seo_desc' . $c['pk_i_id']), Params::getParam('seo_keywords' . $c['pk_i_id']));
                } else {
                    ModelSeoCategory::newInstance()->insertAttr($c['pk_i_id'], Params::getParam('seo_title' . $c['pk_i_id']), Params::getParam('seo_desc' . $c['pk_i_id']), Params::getParam('seo_keywords' . $c['pk_i_id']));
                }
            }
        }
        if (Params::getParam('plugin_action') == 'done' and Params::existParam('seo_title' . $c['pk_i_id']) and Params::existParam('seo_desc' . $c['pk_i_id']) and Params::existParam('seo_keywords' . $c['pk_i_id']) and Params::getParam('seo_title' . $c['pk_i_id']) == '' and Params::getParam('seo_desc' . $c['pk_i_id']) == '' and Params::getParam('seo_keywords' . $c['pk_i_id']) == '') {
            if (isset($detail['seo_category_id'])) {
                ModelSeoCategory::newInstance()->deleteCategory($detail['seo_category_id']);
            }
        }
        $detail = ModelSeoCategory::newInstance()->getAttrByCategoryId($c['pk_i_id']);
        echo '<div class="cat-row level' . $level . '">';
        echo '<div class="cat-elem id">' . $c['pk_i_id'] . '</div>';
        echo '<div class="cat-elem name">' . $arrows . '&nbsp;' . $c['s_name'] . '</div>';
        echo '<div class="cat-elem titl"><input type="text" name="seo_title' . $c['pk_i_id'] . '" id="seo_title" disabled value="' . $detail['seo_title'] . '" size="20" /></div>';
        echo '<div class="cat-elem desc"><input type="text" name="seo_desc' . $c['pk_i_id'] . '" id="seo_desc" disabled value="' . $detail['seo_desc'] . '" size="20" /></div>';
        echo '<div class="cat-elem keywords"><input type="text" name="seo_keywords' . $c['pk_i_id'] . '" id="seo_keywords" disabled value="' . $detail['seo_keywords'] . '" size="20" /></div>';
        echo '<div class="cat-elem lock"><a id="' . $c['pk_i_id'] . '" class="unlock-link" href="#"><i class="fa fa-lock"></i>' . __('Unlock', 'all_in_one') . '</a></div>';
        echo '</div>';
        if (isset($c['categories']) && is_array($c['categories'])) {
            seo_subcategory_list($c['categories'], $category, $level);
        }
    }
}
function GetCatKeywords($cat_id)
{
    $detail = ModelSeoCategory::newInstance()->getAttrByCategoryId($cat_id);
    return isset($detail['seo_keywords']) ? $detail['seo_keywords'] : false;
}