Пример #1
0
function m_products($argv = array())
{
    $tpl = new strontium_tpl("private/tpl/m_products.html", array(), false);
    if (isset($argv['cat_id'])) {
        $cat_id = $argv['cat_id'];
    }
    $products = products_get_list_by_category($cat_id);
    if ($products < 0) {
        //если запрос не нашел продукты
        $tpl->assign("product_error_message");
    } else {
        foreach ($products as $product) {
            $tpl->assign("products", $product);
            $product_id = $product['id'];
            $properties = product_get_dynamic_properties($product_id);
            if ($properties < 0) {
                continue;
            } else {
                foreach ($properties as $property) {
                    $tpl->assign('dymnamic_property', $property);
                }
            }
        }
    }
    return $tpl->result();
}
Пример #2
0
function m_articles($argv = array())
{
    $tpl = new strontium_tpl("private/tpl/m_articles.html", array(), false);
    if (isset($argv['id'])) {
        $article = article_get_by_id($argv['id']);
    } else {
        if (isset($argv['key'])) {
            $article = article_get_by_key($argv['key']);
        } else {
            $article = article_get_by_key("welcome");
        }
    }
    if ($article < 0) {
        $tpl->assign("article_error_message");
    } else {
        $tpl->assign("article", $article);
    }
    page_set_title($article['page_title']);
    return $tpl->result();
}
Пример #3
0
function m_adm_products($argv = array())
{
    global $global_marks;
    $tpl = new strontium_tpl("private/tpl/m_adm_products.html", $global_marks, false);
    $mode = 'list_products';
    if (isset($argv['mode'])) {
        $mode = $argv['mode'];
    }
    switch ($mode) {
        case "list_products":
            if (!isset($argv['cat_id'])) {
                $cat_id = 1;
            } else {
                $cat_id = $argv["cat_id"];
            }
            /* вывод меню выбора категории */
            $tpl->assign("category_menu");
            $categories = product_categories_get_list();
            /* вывод списка категорий */
            foreach ($categories as $category) {
                $tpl->assign("categories_list", $category);
                /* выбор названия категории */
                if ($category['id'] == $cat_id) {
                    $cat_name = $category['category_name'];
                }
            }
            /* вывод названия выбранной категории */
            $tpl->assign("category_name", array('category_name' => $cat_name));
            /* вывод списка продуктов выбранной категории */
            $tpl->assign("products_list");
            $products = products_get_list_by_category($cat_id);
            foreach ($products as $product) {
                $tpl->assign("products_row_table", $product);
            }
            return $tpl->result();
            break;
        case "edit_product":
            $tpl->assign("product_add_edit");
            return $tpl->result();
            break;
    }
}
Пример #4
0
    case 'adm_login':
        if (auth_get_admin()) {
            break;
        } else {
            $mod_content = m_adm_login($_GET);
        }
        break;
    case 'articles':
        $mod_content = m_articles($_GET);
        break;
    case 'products':
        $mod_content = m_products($_GET);
        break;
}
/* Если введен некорректный mode то вывод статьи по умолчанию */
if (!$mod_content) {
    $mod_content = m_articles();
}
/* Заполнение главного шаблона */
$tpl = new strontium_tpl("private/tpl/skeleton.html", $global_marks, false);
$tpl->assign(NULL, array('title' => page_get_title(), 'mod_content' => $mod_content));
/* Вывод всплывающего сообщения, если нужно */
$win = message_box_check_for_display();
if ($win) {
    $tpl->assign($win['block'], $win['data']);
}
/* Вывод меню администратора если автозирован */
if (auth_get_admin()) {
    $tpl->assign("admin_menu");
}
echo $tpl->result();
Пример #5
0
function m_adm_articles($argv = array())
{
    global $global_marks;
    $tpl = new strontium_tpl("private/tpl/m_adm_articles.html", $global_marks, false);
    $mode = 'list_articles';
    if (isset($argv['mode'])) {
        $mode = $argv['mode'];
    }
    switch ($mode) {
        /* вывод списка статей */
        case "list_articles":
            $tpl->assign("articles_list");
            $articles_list = article_get_list();
            foreach ($articles_list as $article) {
                $tpl->assign("articles_row_table", $article);
            }
            break;
            /* вывод формы редактирования статьи */
        /* вывод формы редактирования статьи */
        case "edit_article":
            $article_id = $argv['id'];
            $article = article_get_by_id($article_id);
            if ($article['public'] == 1) {
                $article['public'] = "checked";
            }
            $tpl->assign("article_add_edit", $article);
            $tpl->assign("article_query_edit");
            $tpl->assign("article_edit", array('id' => $article_id));
            $tpl->assign("article_edit_submit");
            break;
            /* вывод формы добавление статьи */
        /* вывод формы добавление статьи */
        case "add_article":
            $tpl->assign("article_add_edit");
            $tpl->assign("article_add");
            $tpl->assign("article_query_add");
            $tpl->assign("article_add_submit");
            break;
    }
    return $tpl->result();
}
Пример #6
0
function m_adm_login($argv = array())
{
    $tpl = new strontium_tpl("private/tpl/m_login.html", $global_marks, false);
    $tpl->assign("adm_login");
    return $tpl->result();
}
Пример #7
0
 /**
     Рекурсивная функция разворачивает все INSERT блоки и
     возвращает развернутый шаблон
     @param $tpl_content - Текст шаблона
     @param $tpl_path - Путь к шаблону
     @param $parent_file - внутренний параметер используется для рекурсивного обхода INSERT блоков.
                           Путь к родительскому файлу внутри которого разворачивается текущий INSERT
     @return возвращает развернутый шаблон
 */
 private function do_insert_blocks($tpl_content, $tpl_path, $parent_file = '')
 {
     // получение списока INSERT блоков
     $insert_blocks = $this->find_blocks('INSERT', $tpl_content);
     if (!$insert_blocks) {
         return $tpl_content;
     }
     // обработка каждого INSERT блока
     foreach ($insert_blocks as $insert_block) {
         foreach ($insert_block as $tpl_file_name => $preassign_content) {
         }
         if (!file_exists($tpl_path . $tpl_file_name)) {
             echo "Can not find teamplate file '" . $tpl_path . $tpl_file_name . "' in parent teamplate file: '" . $parent_file . "'\n";
             exit;
         }
         // Загрузка шаблона указанного в INSERT блоке
         $insert_content = file_get_contents($tpl_path . $tpl_file_name);
         // удаление коментариев /* */ и //
         $insert_content = $this->strip_comments($insert_content);
         // Получение древовидного массива всех блоков с метками для ассайна их в заргужаемый шаблон
         $preassign_data = $this->get_preassign_data($preassign_content);
         // асайн древовидного массива статический меток
         $preassign_tpl = new strontium_tpl();
         $preassign_tpl->open_buffer($insert_content);
         $preassign_tpl->assign(0, $preassign_data['marks']);
         // ассайн дерева блоков с меткаими в заргужаемый шаблон
         $preassign_tpl->assign_array($preassign_data);
         $preassigned_content = $preassign_tpl->result_content;
         // поиск временных блоковых меток и замена их на заполненное содержимое этих блоков
         preg_match_all("/<<-(.*)->>/Us", $preassigned_content, $extract);
         $list_blocks = $extract[1];
         if ($list_blocks) {
             foreach ($list_blocks as $block_name) {
                 $block_src = $this->find_block('BLOCK', $block_name, $insert_content);
                 $preassigned_content = str_replace("<<-" . $block_name . "->>", '<!-- START BLOCK : ' . $block_name . ' -->' . $block_src . '<!-- END BLOCK : ' . $block_name . ' -->', $preassigned_content);
             }
         }
         // поскольку вместо INSERT блока вставляется содержимое этого блока,
         // то если в содержимом блоке встретится INSERT блок, то к нему надо дописать текущий путь.
         $insert_path_prefix = $this->get_file_path($tpl_file_name);
         // рекурсивный запуск для поиска новых INSERT блоков в загруженном шаблоне
         $preassigned_content = $this->do_insert_blocks($preassigned_content, $tpl_path . $insert_path_prefix, $tpl_file_name);
         // замена текущего INSERT блока сформированными данными
         $tpl_content = $this->replace_block('INSERT', $tpl_content, $tpl_file_name, $preassigned_content);
     }
     return $tpl_content;
 }