Forums / National / Russian / Модули и плагины / Как создать новые tpl страницы в плагине

vpktz
#43940 2019-01-02 10:59

 

Если хотите в своем плагине создавать вручную страницы tpl, которые будут работать внутри page, и выводить их внутри page.tpl, то это реализуется иначе. После праздников напишу пример создания такого плагина.

Буду презнателен. Потому что именно это поможет в понимании работы как и в php так и системе cotonti. И возможно я когда нибудь начну писать

плагины. 

Потому что очень хочу. 

Добавлено 2 дня спустя:

#43938 Dayver:

Да, если задача просто размещение статичных html и для этого не нужен функционал шаблонизатора то можно использовать модуль а потом просто кинуть в папку datas/html/ ваши .html файлы и открывать сможете по адресу ваш.сайт\index.php?e=view&v=имяфайлабезрасширения

Спасибо, ваш способ работает. 

Только одна проблема. любой 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 = '&nbsp;';
 
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)