Next Generation CMS :: Форум поддержки

Заинтересовала наша система? Тогда этот форум для Вас!

Вы не зашли.

#26 Re: FAQ » Установка TinyMCE (визуальный редактор) на NG CMS » 2010-11-25 09:42:42

Wolverine, ты не прав. Гораздо вернее спрашивать, что делать, если у пользователя нет компа? lol

#28 Re: PHP/HTML/JS/CSS » Обрезка текста без потери структуры тегов и bb кодов » 2010-11-25 09:35:48

vitaly, big_smile
Сам попробуй wink
Выведет (при 1000 знаков)

Hello! в браузере

и

<div style="<tr><td><table>">Hello!</div></td></div>

В коде
А при одном:

H в браузере

и

<div style="<tr><td><table>">H</div></td></div>

в коде

#31 Re: PHP/HTML/JS/CSS » Обрезка текста без потери структуры тегов и bb кодов » 2010-11-25 05:00:39

Trashcka, мне уже не надо smile Но вот скажи, приведенный вариант в статье корректно обрезает все теги?

#32 PHP/HTML/JS/CSS » Обрезка текста без потери структуры тегов и bb кодов » 2010-11-25 04:47:15

Necronominicon
Ответов: 8

Предисловие:
Когда я реализовывал поиск по статике, то столкнулся с проблемой, что короткой части в статике нет, поэтому в таблицу результатов поиска скрипт выводил абсолютно весь контент страницы. Может это и не критично, если у Вас на странице по паре предложений, но на моих в среднем по 5-6 страниц А4. Значит статику следовало урезать. Передо мной было два варианта:
- вырезать теги и обрезать чистый текст;
- сохранить теги и попытаться обрезать текст вместе с ними. Кто сталкивался с таким знает, что сделать это сложно. Подводных камней масса. Но я рад, что мне удалось это)
Привожу на Ваш суд функцию, которая позволила мне корректно обрезать текст, сохраняя структуру тегов:

function htmlSubstr($html, $length)
{
    $out = '';
    $arr = preg_split('/(<.+?>|&#?\\w+;)/s', $html, -1, PREG_SPLIT_DELIM_CAPTURE);
    $tagStack = array();

    for($i = 0, $l = 0; $i < count($arr); $i++) {
        if( $i & 1 ) {
            if( substr($arr[$i], 0, 2) == '</' or substr($arr[$i], 0, 2) == '[/') {
                array_pop($tagStack);
            } elseif( $arr[$i][0] == '&' ) {
                $l++;
            } elseif( substr($arr[$i], -2) != '/>' or substr($arr[$i], -2) != '/]') {
                array_push($tagStack, $arr[$i]);
            }

            $out .= $arr[$i];
        } elseif( substr($arr[$i], -2) != '/>' ) {
            if( ($l += strlen($arr[$i])) >= $length ) {
                $out .= substr($arr[$i], 0, $length - $l + strlen($arr[$i]));
                break;
            } else {
                $out .= $arr[$i];
            }
        }
    }

    while( ($tag = array_pop($tagStack)) !== NULL ) {
        $out .= '</' . strtok(substr($tag, 1), " \t>") . '>';
    }

    return $out;
}

$s =<<<HTML
<h6><a href='' name='name1'>Экспозиция в зале полиции</a></h6>
[p]Экспозиция музея начинается с зала истории Луганской полиции. Появление первых представителей правоохранительных органов в нашем крае напрямую связано со строительством Луганского литейно-пушечного завода в 1795 г. С высочайшим утверждением 3 сентября 1882 г. Положения о возведении поселка литейного завода в степень уездного города в Луганске учреждается полицейская команда в составе 20 человек. [/p]<center><table><tr><td>[url=http://localhost/lugmia/museum/uploads/images/default/d24d1801bd.jpg" onclick="return hs.expand (this)"  class="highslide][img="http://localhost/lugmia/museum/uploads/images/default/thumb/d24d1801bd.jpg" class="nimg" border="0" align="left"]d24d1801bd.jpg (82.71 Kb)[/img][/url]</td><td>[url=http://localhost/lugmia/museum/uploads/images/default/c036e00f50.jpg" onclick="return hs.expand (this)"  class="highslide][img="http://localhost/lugmia/museum/uploads/images/default/thumb/c036e00f50.jpg" class="nimg" border="0" align="left"]c036e00f50.jpg (140.64 Kb)[/img][/url]</td><td>[url=http://localhost/lugmia/museum/uploads/images/default/db8d1a3570.jpg" onclick="return hs.expand (this)"  class="highslide][img="http://localhost/lugmia/museum/uploads/images/default/thumb/db8d1a3570.jpg" class="nimg" border="0" align="left"]db8d1a3570.jpg (159.67 Kb)[/img][/url]</td><td>[url=http://localhost/lugmia/museum/uploads/images/default/239cf3b6bb.jpg" onclick="return hs.expand (this)"  class="highslide][img="http://localhost/lugmia/museum/uploads/images/default/thumb/239cf3b6bb.jpg" class="nimg" border="0" align="left"]239cf3b6bb.jpg (96.35 Kb)[/img][/url]</td></tr></table></center>
[p]К началу ХХ века в Луганске уже функционировало 4 городских полицейских участка, а также Славяносербское уездное управление, находящееся на Банковской улице, арестный дом, рассчитанный на 24 человека, тюремный замок. Городскому полицейскому управлению подчинялись участковые приставы, полицейские, околоточные надзиратели, городовые. Расчет количества полицейских чинов в городах велся по норме – не менее одного городового на 500 жителей. Вступая в должность, полицейские давали клятвенное обещание, полный текст которого, как и места размещения учреждений полиции, можно увидеть в зале музея. Музей располагает копиями полицейских рапортов, донесений, сообщений «филеров» (специальных агентов жандармерии, осуществляющих надзор за политически неблагонадежными гражданами), фрагменты уголовного дела на беглых рабочих Луганского литейного завода, датированных 1807 г. и многие другие.[/p]
<center><table><tr></tr></table></center>
[p]В феврале 1905 года в Луганске состоялась первая всеобщая забастовка рабочих, тем самым назрела необходимость создания в Луганске жандармского управления, которое было размещено в Каменном Броде. В зале можно ознакомиться с материалами о знаменитых деятелях революционного движения, отбывавших наказание в  тюремном замке. Г.И. Петровский, К.Е. Ворошилов, Я. Моргенштейн и многие другие были узниками камер Луганской тюрьмы. Здесь же представлены распорядок дня и прогулок, расписание кушаний для политзаключенных, которые они могли заказать за свой счет.[/p]
[p]На К.Е.Ворошилова партией большевиков была возложена обязанность создания и обучения боевых рабочих дружин. Опираясь на них, ставших прообразом Красной Гвардии, большевики устанавливали и охраняли революционный порядок в поселках и городах уезда.[/p]
<div class='next'><a href='http://localhost/lugmia/museum/static/main-page-of-lugansk-police-museum.html' title='Перейти к главной странице'>Перейти к главной странице</a> | <a href='http://localhost/lugmia/museum/static/karta_saita.html' title='Карта сайта'>Карта сайта</a> | <a href='http://localhost/lugmia/museum/static/zal-of-police-history-of-lugansk-police-museum.html' title='Перейти к залу истории милиции'>Перейти к залу истории милиции</a></div>
HTML;
$aa = htmlSubstr($s, 2500);

echo $aa;
echo '<br>----------------<br>'.strlen(strip_tags($aa));

Думаю, что кому-нибудь она сможет пригодиться

P.S. Единственный замеченный мною недостаток это, то что функция обрезает текст без учета читабельности. И вполне способна  разорвать слово или строку... Лечить это мне пока лень) Хотите сделайте сами smile

#33 Re: Страницы плагинов » feedback :: Менеджер форм обратной связи » 2010-11-25 04:37:49

Trashcka, тогда я хз. Спасибо, что попыталась разобраться smile Буду писать свой плагин big_smile

P.S. Хотя в любом бы случае пришлось бы ведь этот, кажется, не поддерживает вложений?

#34 Re: Страницы плагинов » feedback :: Менеджер форм обратной связи » 2010-11-25 04:31:38

Trashcka, я когда акцентировал внимание на s не знал, что это регулируется через ЧПУ. Варианты

http://localhost/lugmia/museum/engine/plugins/feedback/?id=1
http://localhost/lugmia/museum/engine/plugins/feedback/feedback.php?id=1

Что с s после плугина, что без него не пашут. Движок установлен нормально, в папку engine.

У тебя работает, вижу. У меня при тех же самых настройках нет... Может ему нужны какие-то плагины вдогонку? Например xfields?

#35 Re: Страницы плагинов » feedback :: Менеджер форм обратной связи » 2010-11-25 04:24:44

Все равно не пашет ссылка http://localhost/lugmia/museum/plugin/feedback/?id=1
Вот скрин ЧПУ:

#36 Re: Страницы плагинов » feedback :: Менеджер форм обратной связи » 2010-11-25 04:17:02

Нет. У меня всегда так было
Появилось чувство, что схожу с ума) Скачал только что с офф. сайта установщик заново. Доктор подтвердил: Я здоров big_smile  Там тоже plugins cool

#37 Re: Страницы плагинов » feedback :: Менеджер форм обратной связи » 2010-11-25 04:04:30

Trashcka, это понятно. И не только в этом. Взгляни на plugin. В реальности папка называется plugins. Я пробовал в том числе и эти варианты:

http://localhost/lugmia/museum/engine/plugins/feedback/?id=1
http://localhost/lugmia/museum/engine/plugins/feedback/feedback.php?id=1

Страница выдает "You don't have permission to access" в первом случае и HAL во втором) Моя фантазия истощилась и поэтому я попросил помощи)

#38 Re: Страницы плагинов » feedback :: Менеджер форм обратной связи » 2010-11-25 03:32:16

Подскажите как должна выглядеть полная ссылка на форму с id=1 и name=myform.

В настройках форм мне выводится неверная ссылка. Ссылки в админке прописаны верно. Прикрепляю скрин.

#40 Re: FAQ » Установка TinyMCE (визуальный редактор) на NG CMS » 2010-11-25 02:29:09

Как добавить это счастье в статические страницы? Простая вставка:

 <script type="text/javascript" src="plugins/tiny_mce/tiny_mce.js"></script>
<script type="text/javascript" src="plugins/tiny_mce/config.js"></script>
или
<script type="text/javascript" src="http://localhost/lugmia/museum/plugins/tiny_mce/tiny_mce.js"></script>
<script type="text/javascript" src="http://localhost/lugmia/museum/plugins/tiny_mce/config.js"></script>

в static\add.tpl к результату не приводит. В новостях пашет.

#42 Re: "А как сделать..." » Как вставить html в статистическую страницу » 2010-11-24 21:20:40

html абсолютно нормально вставляется. На моем сайте 122 статические страницы в которых присутствуют абсолютно все теги. Полет нормальный.

Единственное, что под себя я в стилях прописал:

br {line-height:1px}

И все отступы регулировал через margin и padding

#43 Re: Флейм » Тестирование и отладка GEO плагина » 2010-11-24 21:17:40

1. Ладно, ты выкладывай, а там посмотрим на месте, что да как)

2. Разве SQL поддерживает произвольные выборки? Все запросы идут через перебор и никуда от этого не деться.

#44 Re: Флейм » Тестирование и отладка GEO плагина » 2010-11-24 19:45:08

vitaliy1978, ты задумал очень нужную везщь!

vitaliy1978 пишет:

Для финального релиза нужна помощь в наполнении баз weather кодами gismeteo и yahoo.

Если расскажешь как делать это вручную, то готов оказать посильную помощь

#45 Re: Страницы плагинов » Плагин popular_services: Добавление закладок в популярные сервисы » 2010-11-24 18:46:03

FeSs, попробуй такой вариант. Должен сработать)

P.S. Чтобы внести необходимые изменения достаточно обновить popular_services.php.

P.P.S. Не выношу в старттопик, потому-что до обновления релиза пока рано. Я все-таки планирую (по твоей просьбе) внести еще сервисов и соц. закладки

#46 Re: FAQ » FYI: Использование механизма кеширования » 2010-11-24 18:35:39

ROZARD, спасибо smile
Кеширование в плагине состоит из двух частей: - Одна из которых заносит из переменной данные которые нужно скешировать:

if (extra_get_param('test','cache')) {
	// Запись
	cacheStoreFile($cacheFileName, $output, 'test');
}
//Кодирум в md5
$cacheFileName = md5('test'.$config['theme'].$config['default_lang'].$year.$month).'.txt';

- Другая вынемает берет из кеша закешированные данные:

// Чтение (в параметрах плагин хранит: cache - флаг сообщающий надо ли использовать кеш, cacheExpire - время жизни кеша в секундах
 	if (extra_get_param('test','cache'))	{
		$cacheData = cacheRetrieveFile($cacheFileName, extra_get_param('test','cacheExpire'), 'test');
		if ($cacheData != false){
			// We got data from cache. Return it and stop
			$template['vars']['test'] = $cacheData;
			return;
		}
	}

Сохранить данные в файл-кеш: $fname - имя файла
$data - содержание
$plugin - ID плагина
function cacheStoreFile($fname, $data, $plugin = ) Возвращает: true - при успехе
false - при неуспехе Получить данные из кеш-файла с учётом времени жизни: $fname - имя файла
$expire - время жизни данных в секундах
$plugin - ID плагина
function cacheRetrieveFile($fname, $expire, $plugin = ) Возвращает: false - если данных нет или устарели данные если они есть и не устарели

#47 Re: FAQ » FYI: Использование механизма кеширования » 2010-11-24 10:30:59

Может туплю после бессонной ночи, но из фака ни черта не понял. Может кто-нибудь расскажет популярно как добавить кеширование? Какой код нужно добавить в плагин? Или где почитать об этом хотя бы?

#49 Re: Флейм » Статус проекта » 2010-11-24 08:27:14

Евгений, не расстраивайся...  у Трашки и Амарелиуса был плохой день\ночь вот они и ругаются smile

#50 Re: Флейм » Статус проекта » 2010-11-24 03:38:41

Евгений, твой вариант нравится. С Trashcka, готов согласиться только в одном. Однотонный цвет утомляет, глазу зацепиться не за что. Если разбавишь цветовую гамму, то вполне могу проголосовать и за твой вариант.

Подвал раздела

Работает на FluxBB