| 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>
Dieser Beitrag wurde von vpktz (am 4. Januar 2019, 15:41, vor 6 Jahre) bearbeitet |