| 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)
|