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

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

Вы не зашли.

#151 Re: "А как сделать..." » Вопросы по движку. » 2015-03-14 17:50:22

rusiq пишет:

Подскажите, как вывести в профиль пользователя (плагин uprofile 0.12) статус: онлайн или оффлайн пользователь?

по идее для этого надо использовать плагин k_online. Мне, правда, не приходилось smile

Или, если подойдет способ попроще (считаем, что онлайн, если входил меньше 15 мин назад):
1. плагин uprofile.php - ищем строку 56 в uprofile_showProfile ("$tVars = array(" - это формирование переменных для вывода в шаблон).
Перед ней добавляем код:

$last = intval((time() - $urow['last'])/60);
if ($last < 15) {
    $online = 'сейчас на сайте';
} else if ($last < 60) {
    $online = 'заходил ' . $last . ' минут назад';
} else {
    $online = 'оффлайн';
};

2. после строки 56, т. е. внутри массива переменных, добавляем:

        'online' => $online,

3. в шаблоне users.tpl добавляем вывод:

Онлайн:  {{ user.online }}

#152 Re: "А как сделать..." » Вопросы по движку. » 2015-03-14 17:25:40

rusiq пишет:

И как настроить вывод даты как в общих настройках CMS?

открываем /engine/plugins/uprofile/uprofile.php. За вывод шаблона users.tpl отвечает функция uprofile_showProfile.
Находим там строки:

	'last'			=>	($urow['last'] > 0) ? LangDate("l, j Q Y - H:i", $urow['last']) : $lang['no_last'],
	'reg'			=>	langdate("j Q Y", $urow['reg']),

И меняем маску вывода времени в langdate на нужную. Где "l, j Q Y - H:i" - день недели, число, месяц, год, час, минута.

#153 Re: Запросы плагинов » Плагин статистики журналиста » 2015-03-12 22:03:09

rusiq пишет:
legenda пишет:

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

http://photoload.ru/data/04/5c/f3/045cf … a8e_pv.jpg

Т.е. плагин при включении не создает таблицы согласно NG CMS
Версия 20150123-0005-ngcms-core

создавать их не надо, они созданы уже. дело в том, что там захардкодили префикс таблицы в запросе.
Вместо этого:

$row = $mysql->query("select distinct u.id, name, count(distinct n.id) as s, sum(n.com) as s_c,
						sum(distinct n.views) as c_v, (sum(distinct n.views)/count(distinct n.id)) as k
						from 2z_users as u,  2z_news as n
						WHERE u.id=n.author_id and (from_unixtime(postdate) > '$date1') 
						and (from_unixtime(postdate) < '$date2') and n.approve = '1'
						group by u.id, name order by s desc");
$row1 = $mysql->query("select c.id as i,c.name as na,count(distinct n.id) as su,sum(views) as n_v, sum(views)/count(distinct n.id) as koefi from 2z_category as c, 2z_news as n
						Where c.id=n.catid  and (from_unixtime(postdate) > '$date1') 
						and (from_unixtime(postdate) < '$date2')
						group by c.id
						order by n_v desc
						limit 20");
$row2 = $mysql->query("select distinct id,title,alt_name,views as v_n FROM 2z_news
	where from_unixtime(postdate) > '$date1' and FROM_UNIXTIME(postdate) < '$date2' 
	order by views desc 
	limit 20");

надо писать так:

$row = $mysql->query("select distinct u.id, name, count(distinct n.id) as s, sum(n.com) as s_c,
						sum(distinct n.views) as c_v, (sum(distinct n.views)/count(distinct n.id)) as k
						from ".prefix."_users as u,  ".prefix."_news as n
						WHERE u.id=n.author_id and (from_unixtime(postdate) > '$date1') 
						and (from_unixtime(postdate) < '$date2') and n.approve = '1'
						group by u.id, name order by s desc");
$row1 = $mysql->query("select c.id as i,c.name as na,count(distinct n.id) as su,sum(views) as n_v, sum(views)/count(distinct n.id) as koefi from ".prefix."_category as c, ".prefix."_news as n
						Where c.id=n.catid  and (from_unixtime(postdate) > '$date1') 
						and (from_unixtime(postdate) < '$date2')
						group by c.id
						order by n_v desc
						limit 20");
$row2 = $mysql->query("select distinct id,title,alt_name,views as v_n FROM ".prefix."_news
	where from_unixtime(postdate) > '$date1' and FROM_UNIXTIME(postdate) < '$date2' 
	order by views desc 
	limit 20");

т. к. константа prefix отвечает за префикс таблицы (задается по установке, по умолчанию ng).

#154 Re: "А как сделать..." » Вопросы по движку. » 2015-02-24 11:26:24

newbi пишет:

То есть я редактирую main и user и заменяю их на осмысленные русские строки?

в этих файлах формат "имя переменной = значение". Значение - русская строка. Открой и увидишь.
При желании, конечно, можно вместо переменных в шаблоне прописать просто текст, я у себя так и сделал. Вот пример (шаблон users.tpl):

<h3>Профиль пользователя {{ user.name }}</h3>
<table class="table">  
  <tr>
    <td>Зарегистрирован</td>
    <td>{{ user.reg }}</td>
  </tr>
  <tr>
    <td>Последний вход</td>
    <td>{{ user.last }}</td>
  </tr>
  <tr>
    <td>Записей</td>
    <td>{{ user.news }}</td>
  </tr>
  <tr>
    <td>Комментариев</td>
    <td>{{ user.com }}</td>
  </tr>
  <tr>
    <td>Имя и фамилия</td>
    <td>{{ p.xfields.realname.value }}</td>
  </tr>
  <tr>
    <td>Сайт</td>
    <td>{{ user.site }}</td>
  </tr>
  <tr>
    <td>Откуда</td>
    <td>{{ user.from }}</td>
  </tr>
  <tr>
    <td>Skype</td>
    <td>{{ p.xfields.skype.value }}</td>
  </tr>
  <tr>
    <td>Немного о себе</td>
    <td>{{ user.info }}</td>
  </tr>
</table>

Здесь я еще использую доп. поля пользователей (плагин xfields).

#155 Re: "А как сделать..." » Вопросы по движку. » 2015-02-23 11:06:04

newbi пишет:

Как побороть в профиле пользователей строки типа:
{l_uprofile:status}
{l_uprofile:regdate}
{l_uprofile:last}
{l_uprofile:all_news}
{l_uprofile:all_comments}
{l_uprofile:new_pass}
{l_uprofile:pass_left}
И так далее?

это переменные плагина. Их всегда надо искать в файлах .ini, лежащих в директории lang.
В данном случае: плагин uprofile, путь  /engine/plugins/uprofile/lang/russian/
там есть main.ini и users.ini

И еще на заметку: плагин uprofile поддерживает TWIG-шаблоны.
В них переменные выглядят иначе, вместо {l_uprofile:status} будет {{ lang.uprofile['status'] }}
Для отладки (чтобы понять, что и как хранится) в шаблоне можно добавить временный код:

{{ debugValue(lang.uprofile) }}

это покажет все доступные значения lang для плагина. Или например:

{{ debugValue(user) }}

это вся инфа о юзере.

#156 Re: Страницы плагинов » dr_userlist :: Список зарегистрированных пользователей » 2015-02-20 19:35:53

Обновлена версия плагина на github. Изменения косметические:
- ЧПУ настраивается без необходимости установки плагина,
- слегка упорядочен код (в частности, сделал удобнее табуляцию).

zip-архив прилагается.

#157 Re: Тестирование версий » NGCMG версии 0.9.4 [Release Candidate 1][GIT 20150123] » 2015-02-20 16:34:59

Плагин xfields - не работает (или не предусмотрена?) проверка доп. полей пользователя при регистрации (при редактировании профиля работает). Т. е. удается зарегистрироваться, не заполнив доп. поле, указанное как "обязательное".

#158 Re: "А как сделать..." » база данных » 2015-02-15 21:00:12

по идее примерно так:

1. удалить категорию руками

UPDATE ng_news SET catid ='' WHERE id = '1'

2. уменьшить счетчик новостей в категории

UPDATE ng_category SET posts = '0' WHERE id = '1'

#159 Re: Страницы плагинов » dr_userlist :: Список зарегистрированных пользователей » 2015-02-08 17:27:51

Плагин suser - версия 0.4

+ реализован поиск пользователей по полю "Откуда", также это поле добавлено в таблицу сортировки
+ добавлена проверка состояния плагина xfields. Если плагин не включен - дополнительные поля не используются
% исправлен вывод информации для доп. полей, не заполненных пользователем
% отредактирована и дополнена документация
% отредактированы шаблоны

Также плагин выложен на github.
Замечания и пожелания приветствуются!

#160 Re: Тестирование версий » NGCMG версии 0.9.4 [Release Candidate 1][GIT 20150123] » 2015-02-07 13:30:10

Предлагаю протестировать и в случае отсутствия существенных багов - добавить в релиз (ежели он  таки состоится) плагины:
- xfilter
- suser (версия 0.4 с поддержкой доп. полей).

Оба плагина выложены на github.

#161 Re: Тестирование версий » NGCMG версии 0.9.4 [Release Candidate 1][GIT 20150123] » 2015-02-02 18:40:02

Настройка системы - вкладка "Домены" не помещается в строке вкладок и съезжает на вторую строку, хотя по идее должна помещаться.

Ответ на комментарий (через админку) - не сохраняется ответ, если содержит русские буквы - в поле answer попадает пустое значение (с английскими и цифрами - все ок).

#162 Re: Тестирование версий » NGCMG версии 0.9.4 [Release Candidate 1][GIT 20150123] » 2015-02-02 17:52:15

плагин calendar - по-видимому, некорректно работает кэш: он включен, но hasPrevMonth и hasNextMonth стоят true, условия не работают.
То есть дело не только в проблеме шаблона.

Для проверки переписал плагин немного:
- закомментарил проверку значения $cacheExpire
- изменил условия генерации флагов

Получилось вот что:

/*
	// If cache is activated - calculate MIN and MAX dates for news
	  if ($cacheExpire > 0) {
  //
*/
		$mmx = $mysql->record("select (select postdate from ".prefix."_news use key(news_postdate) where mainpage=1 order by postdate limit 1) as min, (select postdate from ".prefix."_news use key(news_postdate) where approve=1 order by postdate desc limit 1) as max", 1);

		// Prev link
		if ($mmx['min']<$dt) {
			$tVars['prevMonth'] = array('link' => $prev_link);
			$tVars['flags']['havePrevMonth'] = true;
		} else {
			// Lock
		}

		// Next link
		if ($mmx['max']>=$nextdt) {
			$tVars['nextMonth'] = array('link' => $next_link);
			$tVars['flags']['haveNextMonth'] = true;			
		} else {
			// Lock
		}
/*	} else {
		$tVars['prevMonth'] = array('link' => $prev_link);
		$tVars['nextMonth'] = array('link' => $next_link);

		$tVars['flags']['havePrevMonth'] = true;
		$tVars['flags']['haveNextMonth'] = true;
	}
*/

В результате флаги генерируются нормально, в том числе если кэш выключен. Пример - у меня в блоге (см. подпись).

#163 Re: Тестирование версий » NGCMG версии 0.9.4 [Release Candidate 1][GIT 20150123] » 2015-02-01 18:30:27

Редактирование шаблонов - HTTP error during request при попытке сохранить файл .tpl, содержащий JavaScript.

Проверялось мной на шаблонах плагинов switcher, calendar, uprofile (profile.tpl).
При добавлении скриптов из данных шаблонов в любой другой файл появляется та же ошибка и редактирование файла становится невозможным. Если убрать код скрипта - снова все ок.
Проверялось мной на двух разных хостингах, если что.

#164 Re: Тестирование версий » NGCMG версии 0.9.4 [Release Candidate 1][GIT 20150123] » 2015-02-01 13:48:26

Меню категорий - замечание: при снятии галочки "Отображать в меню" для родительской категории дочерние все равно отображаются. Было бы неплохо автоматически прятать их тоже.

#165 Re: Обсуждение шаблонной системы » Подробный мануал по шаблонам » 2015-01-27 10:19:51

Вот еще полезная статья - ТВИГ для верстальщиков: http://twig.kron0s.com/a/02-twig-for-template-designers 
Пара простых примеров от меня, использовал на своем сайте:
Вывод списка тегов в шаблоне news.short.tpl (а также news.full.tpl, news.search.tpl), разделенных запятыми. Тэги перебираются в цикле, внутри проверка условия - если кол-во тегов больше, чем текущий проход цикла, то ставим запятую, иначе - нет (чтобы не было запятой после последнего тега).

  	{% if p.tags.flags.haveTags %} 
  	<p>   
    	<b>теги:</b>
    	{% for tag in p.tags.list %}	 
      		<a href="{{ tag.link }}" title="Все новости с тегом "{{ tag.name }}"">{{ tag.name }}</a>{% if p.tags.count > loop.index  %},{% endif %}
      	{% endfor %}                  
      </p>
      {% endif %}

Еще пример - вывод в шаблоне news.categories.tpl списка категорий с отдельным маркером для активной категории:

    <ul class="list-unstyled">
	{% for entry in entries %}      	
		<!--  особый маркер для активной категории -->
        {% if (entry.flags.active) %}
      		<li class="li-none">
      		<i class="glyphicon glyphicon-hand-right"></i>  
        {% else %}         
		<!--  для остальных категорий -->
        	<li class="li-circle"> 
		{% endif %}              
        {{ entry.mark }}	
		<a href="{{ entry.link }}">
			{{ entry.cat }}
		</a>		
        </li> 
	{% endfor %}
    </ul>

#166 Re: Тестирование версий » NGCMG версии 0.9.4 [Release Candidate 1][GIT 20150123] » 2015-01-26 23:30:45

/engine/skins/default/tpl/templates.tpl - опечатка в 23 стр:  cellaspacing (должно быть cellspacing).

<table width="100%" border="0" cellaspacing="0" cellpadding="0">

Плюс предлагаю две косметические правки:
1. после отключения кнопки Create template левый столбец таблицы выглядит некорректно (пустое место внизу). Решение - добавил цвет фона столбцу, стр. 26.

 <td valign="top" style="background-color: #E0E0E0">

2. столбец с редактором немного выступает по ширине (в правой части таблицы). Решение - добавил внутренний отступ, стр. 32:

 <td valign="top" style="padding-right: 6px">

#167 Re: "А как сделать..." » Адаптация модулей с Dle на NG » 2015-01-26 21:24:34

тут скорее не переписывать, а фактически с нуля надо писать:
1. другая структура файлов и папок - в DLE, насколько я помню, модули более тесно интегрированы, чем в NG плагины.
2. другой шаблонизатор (в этом модуле, например, в файле friends.php куча кода с использованием echo).

#168 Re: Тестирование версий » NGCMG версии 0.9.4 [Release Candidate 1][GIT 20150123] » 2015-01-26 06:31:09

Редактирование новости - два глюка с отображением:

1. если нажать на вкладку Комментарии, а после этого - перейти на вкладку Дополнительно, то правая панель на вкладке Дополнительно сильно съезжает влево (сжимается до размера 50% окна).

2. правая панель ездит вправо-влево при переключении между вкладками Основное содержание (Дополнительно) и Приложенные файлы. Но здесь съезжает не так заметно).

Наблюдается в фаерфоксе. В хроме почему-то все ок на последней сборке.

#169 Re: Запросы плагинов » syntax_highlighter :: Подсветка синтаксиса в шаблонах » 2015-01-26 01:39:06

Довел до ума свое решение, предлагаю протестировать.

+ Подсветка кода в файлах .tpl, .css, .js, .ini
+ Работает полноэкранный режим.

Для включения необходимо:

1. Заменить файлы /lib/codemirror на приложенные

2. Заменить файл /engine/skins/default/tpl/templates.tpl на приложенный

#170 Re: Тестирование версий » NGCMG версии 0.9.4 [Release Candidate 1][GIT 20150123] » 2015-01-25 23:59:06

Плагин xnews - в конфиге нужно поправить описание, явный копипаст из плагина top_news.

Плагин популярных новостей. Популярность определяется либо по количеству просмотров новости либо по количеству оставленных к ней коментариев.    
Количество блоков с популярными новостями

Также плагины lastnews, top_news и favorites можно убрать из релиза, а в документации xnews вместо этой строки:

Функционально он заменяет плагины: lastnews, top_news

добавить текст:

Возможности плагина:
- вывод блока "последние новости"
- вывод блока "популярные новости"
- вывод блока новостей, добавленных в закладки
- и т. д.

Плагин simple_title - уже писали раньше, что в SVN-версии не работает, выдает ошибку Call to undefined function GetNewsTitle()
Можно его убрать из релиза, т. к. есть simple_title_pro.

#171 Re: Тестирование версий » NGCMG версии 0.9.4 [Release Candidate 1][GIT 20150123] » 2015-01-25 02:15:15

1. шаблон news.table.tpl - не работают переменные {{ day }} {{ month }} {{ year }} и {{ dateStamp }} для режимов by.day, by.month и by.year
Функция debugValue возвращает NULL по всем переменным.

{% if (handler == 'by.year') %}
	<p>Новости за  месяц {{ year }} год</p>
{% endif %}

{% if (handler == 'by.month') %}
	<p>Новости за  месяц {{ month }} {{ year }}</p>
{% endif %}


{% if (handler == 'by.day') %}
	<p>Новости за {{ day }} {{ month }} {{ year }}</p>
{% endif %}

2. Управление шаблонами - если с сайта удалить шаблон default, то при входе в Управление шаблонами все равно сверху будет строка: "Редактирование шаблона [default]" и путсой список файлов под ней. То есть, надо дополнительно переключаться на свой шаблон (нажать Выбрать).
Если же шаблон default в папке templates есть - по умолчанию выводит его список файлов слева, даже если шаблон на сайте задан другой. Опять же приходится нажимать "Выбрать".

Логичнее было бы, чтобы в левой панели сразу отображался действующий шаблон сайта вместо default.

#172 Re: Тестирование версий » NGCMG версии 0.9.4 [Release Candidate 1][GIT 20150123] » 2015-01-25 01:09:24

Опечатка в конфиге двух плагинов: calendar и archive, текст следующий:

автоматически - при включении плагина автоматически генерируется блок {plugin_comments}

Явно копипаст, должно быть plugin_calendar и plugin_archive.

#173 Re: Тестирование версий » NGCMG версии 0.9.4 [Release Candidate 1][GIT 20150123] » 2015-01-24 07:15:14

Еще два замечания:

1. плагин calendar - должен при включенном кэше не выдавать несуществующие даты и месяцы.

На практике: кэш включен, новости только за 24.01 - месяцы прокручиваются и вперед, и назад.

2. настройка даты публикации новости: "Установить указанные дату / время" - если задано смещение часового пояса, то оно автоматически вычисляется.
Пример: хотим указать время публикации 00:30, стоит смещение -120. В итоге новость попадает в предыдущий день с временем 22:30.

Это смещение дезориентирует (пока тестил календарь, запутался и не сразу понял, в чем дело). Тем более что при редактировании даты публикации о нем можно и забыть.

#174 Re: Запросы плагинов » syntax_highlighter :: Подсветка синтаксиса в шаблонах » 2015-01-24 00:33:32

С подсветкой одновременно всех синтаксисов в одном файле не разобрался, сделал чуть проще.

				var tmode;								
				if (ngFileName.indexOf(".tpl") > 0) {tmode = "text/html"};
				if (ngFileName.indexOf(".css") > 0) {tmode = "text/css"};
				if (ngFileName.indexOf(".js") > 0) {tmode = "javascript"};
				
				var cm = CodeMirror.fromTextArea(
					document.getElementById('fileEditorSelector'), {
				                lineNumbers: true,
				                mode: tmode,							
				       //         lineWrapping: true,
				                styleActiveLine: true,
				                tabMode: "indent",
				                extraKeys: {
				                	"F11": function(cm) {cm.setOption("fullScreen", !cm.getOption("fullScreen"));},
				                	"Esc": function(cm) {if (cm.getOption("fullScreen")) cm.setOption("fullScreen", false);}
				                }

В таком виде - посвечивает нормально css в файлах стилей, html в файлах шаблонов (включая проверку незакрытых тегов) и javascript в файлах .js.

Сжатый файл codemirror.js с нужными модулями прилагаю в архиве, сгенерил его в генераторе: http://codemirror.net/doc/compress.html
(добавил режимы htmlmixed, css, javacsript, xml - по идее htmlmixed зависит от этих трех)
Файл стилей там же (в нем изменил только размер шрифта).

upd. правда, с этим моим фиксом полноэкранный режим сломался sad  но, думаю, смысл понятен.

#175 Re: Тестирование версий » NGCMG версии 0.9.4 [Release Candidate 1][GIT 20150123] » 2015-01-23 23:10:02

в Управлении шаблонами кнопка "Create template" не работает (ничего не прроисходит при нажатии). Предлагаю ее заменить на "Create file", чтобы можно было прямо в редакторе создать файл .tpl

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

Работает на FluxBB