vpktz |
|
---|---|
Хочу создать пару страниц, для контактов и пользовательских соглашений например. В общем отдельные. Пытался через модуль page но там почему что половина html тегов не срабатывает, не сограняется. И не получается сделать красивую страницу. Просто так tpl страницу в котонти не сделаешь, и я решил сделать дефолтный плагин как указано тут https://cotonti.cmsworks.ru/index.php?e=page&c=tutorials&al=hello и на его базе сделать страницы. Типа плагина для создания страниц. Плагин получился но не получается добавить вторую tpl страцу к нему и ссылку к ней соотвественно. |
Виктор |
|
---|---|
#43933 vpktz: Попробуйте в модуе page в категории system создать эти страницы и для каждой свой шаблон https://cotonti.cmsworks.ru/index.php?e=forums&m=posts&p=1075&highlight=%25D0%25A1%25D0%25A2%25D0%2590%25D0%25A2%25D0%2598%25D0%25A7%25D0%2595%25D0%25A1%25D0%259A%25D0%2598%25D0%2595%2B%25D0%25A1%25D0%25A2%25D0%25A0%25D0%2590%25D0%259D%25D0%2598%25D0%25A6%25D0%25AB#1075 пользовательских соглашений - плагин useragreement
|
|
This post was edited by Виктор (2018-12-29 11:46, 6 years ago) |
vpktz |
|
---|---|
шаблон вывода любой страницы page.tpl , созданый в модуле page выводятся через него. Вы имеете ввиду наделать их? Если да то как? Но в обще хотелось бы все таки реализовать через плагин пустой, как я изначально хотел . Было бы удобно, добавил tpl, прописал его в page.php и готово. Вот только как? У меня не получается. |
Виктор |
|
---|---|
#43935 vpktz: Посмотрел внимательнее, для статических страниц (к примеру О сайте, Наши контакты), категория system, шаблон page.system.tpl, но он для всех страниц в категории system |
Roffun |
|
---|---|
#43935 vpktz: Всё зависит от цели, для которой это делается. Например, если хотите просто выводить содержимое tpl файла, и при этом внутри него не будет блоков, то достаточно конструкции FILE. Если нужно сделать просто другое оформление категории, то в админке можно указать другой шаблон вывода, например custom, тогда для этой категории будет применяться другой tpl при наличии (его нужно создать) или тот что по умолчанию в случае отсутствия. Таким образом уже будет минимум 3 шаблона вывода:
Если же цель - именно создание своего плагина, с отдельной страницей, то в примере по ссылке указано как создать standalone, а это одна страница, ничего общего не имеющая с page, поэтому теги там и не работают. Если хотите в своем плагине создавать вручную страницы tpl, которые будут работать внутри page, и выводить их внутри page.tpl, то это реализуется иначе. После праздников напишу пример создания такого плагина. Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
|
Dayver |
|
---|---|
Да, если задача просто размещение статичных html и для этого не нужен функционал шаблонизатора то можно использовать модуль а потом просто кинуть в папку datas/html/ ваши .html файлы и открывать сможете по адресу ваш.сайт\index.php?e=view&v=имяфайлабезрасширения Pavlo Tkachenko aka Dayver
|
vpktz |
|
---|---|
Если хотите в своем плагине создавать вручную страницы tpl, которые будут работать внутри page, и выводить их внутри page.tpl, то это реализуется иначе. После праздников напишу пример создания такого плагина. Буду презнателен. Потому что именно это поможет в понимании работы как и в php так и системе cotonti. И возможно я когда нибудь начну писать плагины. Потому что очень хочу. Добавлено 2 дня спустя: #43938 Dayver: Спасибо, ваш способ работает. Только одна проблема. любой html документ я создаю уже изначально имеет вид <div class="col first"> <div class="block"> <h2 class="plugin">Array</h2> </div> </div> И вся верстка уже изначально получается внутри них. А так как у меня весь контент на всем сайте всегда в теге <div id="content" data-uk-height-viewport="expand: true"> </div> То у меня получается криво . Я так понимаю надо сам модуль поправить и делается это в единственном файле view.php который выглядит вот так: <?php /* ==================== [BEGIN_COT_EXT] Hooks=module [END_COT_EXT] ==================== */ /** * View module main * * @package view * @version 0.9.1 * @author Cotonti Team * @copyright Copyright (c) Cotonti Team 2008-2012 * @license BSD */ defined('COT_CODE') or die('Wrong URL.'); // Environment setup define('COT_VIEW', true); $env['location'] = 'views'; $v = cot_import('v', 'G', 'TXT'); if (mb_strpos($v, '.') !== false || mb_strpos($v, '/') !== false) { die('Wrong URL.'); } $incl_html = "datas/html/" . $v . ".html"; $incl_htm = "datas/html/" . $v . ".htm"; $incl_txt = "datas/html/" . $v . ".txt"; if (file_exists($incl_txt)) { $fd = @fopen($incl_txt, 'r') or die("Couldn't find a file : " . $incl_txt); // TODO: Need translate $vd = fread($fd, filesize($incl_txt)); fclose($fd); } elseif (file_exists($incl_htm)) { $fd = @fopen($incl_htm, 'r') or die("Couldn't find a file : " . $incl_htm); // TODO: Need translate $vd = fread($fd, filesize($incl_htm)); fclose($fd); } elseif (file_exists($incl_html)) { $fd = @fopen($incl_html, 'r') or die("Couldn't find a file : " . $incl_html); // TODO: Need translate $vd = fread($fd, filesize($incl_html)); fclose($fd); } else { cot_die(); } if (preg_match('@<head>(.*?)</head>@si', $vd, $ext_head) == 1) { $ext_head = $ext_head[1]; } else { $ext_head = ''; } if (preg_match('@<body[^>]*?>(.*?)</body>@si', $vd, $ext_body) == 1) { $ext_body = $ext_body[1]; } else { $ext_body = $vd; } $vt = ' '; if (mb_stripos($ext_head, '<meta name="cot_title"') !== false) { $vt = mb_stristr($ext_head, '<meta name="cot_title"'); $vt = mb_stristr($vt, 'content="'); $vt = mb_substr($vt, 9); $tag_title_end = mb_strpos($vt, '">'); $vt = mb_substr($vt, 0, $tag_title_end); } elseif (preg_match('@<title>(.*?)</title>@si', $ext_head, $vt) == 1) { $vt = $vt[1]; } if (preg_match_all('@<script[^>]*?>(.*?)</script>@si', $ext_head, $ext_js) > 0) { foreach ($ext_js[1] as $js) { $js = preg_replace(array('@<!--(.*?)\n@si', '@\/\/(.*?)-->\n@si'), array('', ''), $js); $morejavascript .= $js; } } if (preg_match_all('@<link[^>](.*?)>@si', $ext_head, $ext_links) > 0) { foreach ($ext_links[0] as $link) { $moremetas .= $link; } } require_once $cfg['system_dir'] . '/header.php'; $t = new XTemplate(cot_tplfile('plugin')); $t->assign(array( 'PLUGIN_TITLE' => $vt, 'PLUGIN_BODY' => $ext_body )); $t->parse('MAIN'); $t->out('MAIN'); require_once $cfg['system_dir'] . '/footer.php'; ?> то я сам не осилил найти место где можно править изначальные теги потому как в php знаю процентов на 10. ТОлько самое основное. Подскажите где тут надо исправить что бы не было изначальных html тегов в документе. Ну или был но мой. <div id="content" data-uk-height-viewport="expand: true"> </div>
|
|
This post was edited by vpktz (2019-01-04 15:41, 6 years ago) |
Виктор |
|
---|---|
это наверное файл plugin.tpl в корне шаблона <!-- BEGIN: MAIN --> <div class="col first"> <div class="block"> <h2 class="plugin">{PLUGIN_TITLE}</h2> {PLUGIN_BODY} </div> </div> <!-- END: MAIN --> $t = new XTemplate(cot_tplfile( 'plugin' ));
Додано 2 хвилини потому: Можете прописать в модуле вместо $t = new XTemplate(cot_tplfile(plugin)); -> $t = new XTemplate(cot_tplfile(myplugin)); и соответственно в корне шаблона файл myplugin.tpl c тегами думаю разберетесь |
Kopusha |
|
---|---|
Потом как все будет поделитесь готовым решением - интересно помотреть. Если именно плагином сделаете. |
vpktz |
|
|
---|---|---|
#43948 Виктор: Все верно проблема в "файл plugin.tpl в корне шаблона" . Спасибо. Добавлено 5 минут спустя: #43950 Kopusha: Впринципе это и есть решение на базе модуля.
А для решения проблемы с тегами редактировать свой plugin.tpl в сайт/themes/тема/plugin.tpl файл plugin.tpl в корне шаблона
|
||
This post was edited by vpktz (2019-01-09 14:13, 6 years ago) |