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

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

Вы не зашли.

#2 Re: "А как сделать..." » Как написать плагин? » 2013-03-12 22:30:31

JancoNG, опять же, без примера того, что не работает подсказать невозможно smile

#3 Re: "А как сделать..." » Как написать плагин? » 2013-03-10 22:56:15

Дело в парсере переменных вида plugin_

см. templates.class.php

// Special variable {plugin_<NAME>...} ({plugin_ads}, {plugin_ads_var1} for plugin ads) - will be showed only if plugin <NAME> is active

Когда ты вставляешь переменную plugin_tags_keywords, то проверяется включен ли плагин tags, а не как ты ожидаешь tags_keywords. Если не включен, то переменную не отображаем.

Варианты решения - называть плагин без подчеркивания или именовать переменные без специального слова plugin.

#4 Re: "А как сделать..." » Как написать плагин? » 2013-03-10 18:51:36

Приложи архив, так сложно разобрать проблему.

#6 Re: "А как сделать..." » Как написать плагин? » 2013-03-05 00:34:49

см. http://ngcms.ru/forum/viewtopic.php?id=1412

Интересующий тебя блок и использованием news_showlist

# personal plugin pages for display all user's bookmarks
function bookmarksPage(){
....
}

#7 Re: "А как сделать..." » Как написать плагин? » 2013-03-03 19:35:03

register_plugin_page используется для регистрации страницы плагина на сайте.

Последний параметр не нужен - исторически сложилось.

#9 Re: "А как сделать..." » Как написать плагин? » 2013-02-26 22:20:34

checkLinkAvailable() - проверяет определен ли такой обработчик для плагина

Пока единственно где видел его использование, это в плагине uprofile для совместимости со старой версией. Эта функция ничего не генерирует.

$alink = checkLinkAvailable('uprofile', 'show')?
						generateLink('uprofile', 'show', array('name' => $row['uname'], 'id' => $row['uid'])):
						generateLink('core', 'plugin', array('plugin' => 'uprofile', 'handler' => 'show'), array('name' => $row['uname'], 'id' => $row['uid']));

generateLink() - генерирует ссылку для любой строки из Управления форматом ссылок

Например для

d1fa5ee2b10622ffba9f22d0336d47bd.jpg

вызов будет

generateLink('news', 'by.year', array('year' => $params['year']))

#10 Re: "А как сделать..." » Как написать плагин? » 2013-02-25 23:17:11

Что делает функция locatePluginTemplates? Что за аргументы, и что возвращает?

принимает три главных параметра:

function locatePluginTemplates($tname, $plugin, $localsource = 0, $skin = '', $block = '')

$tname        - template names (in string array or single name) - имя шаблона, например lastcomments.tpl - шаблон последних комментариев
$plugin        - plugin name - имя плагина
$localSource        - определяет где искать этот шаблон, если 0, то в папке с шаблоном сайта, если 1, то в папке с плагином.

Пример вызова

$tpath = locatePluginTemplates(array('lasttweets', 'entries'), 'lasttweets', intval(pluginGetVariable('lasttweets', 'localsource')));

Этим мы говорим - верни-ка нам путь к шаблонам lasttweets.tpl и entries.tpl для плагина lasttweets.


Методы:
Код:
$tpl -> template()
$tpl -> vars()
$output = $tpl -> show()

Что каждый из них делает? Вижу это в каждом плагине, но как ими пользоваться - не знаю.

$tpl - экземпляр класса старого шаблонизатора

$tpl -> template('lasttweets', $tpath['lasttweets']);

загрузит файлик шаблона с диска в переменную

$tpl -> vars('lasttweets', array ('vars' => array (
			 'entries' => $tweets,
			 'title' => $channel_title, 
			 'link' =>  $channel_link
			)));

Служит для реализации подстановочных переменных. В шаблоне у тебя {link}, ты его в коде динамически сгенерировал, передал в шаблонизатор, он выполнил подстановку.

$tpl -> show('lasttweets')  - вернет текст, в котором выполнены все подстановки переменных и который уже можно в браузере показать пользователю

#11 Re: "У меня не работает..." » Internal Server Error » 2012-12-20 21:25:02

Проверить httpd.conf на наличие

LoadModule rewrite_module modules/mod_rewrite.so

#12 Re: Запросы на доработку ядра » SMTP авторизованная отправка » 2012-10-25 16:05:59

Быстрое наколеночное решение. По хорошему это надо причесывать и добавлять в движок.

/engine/includes/inc/functions.inc.php

function sendEmailMessage($to, $subject, $message, $filename = false, $mail_from = false, $ctype = 'text/html', $smtp = true) {
	global $lang, $config;

	// Include new PHP mailer class
	@include_once root.'includes/classes/phpmailer/class.phpmailer.php';
	$mail	= new phpmailer;

	if($smtp){
		$__smtp = array(
			"host" => "mail.ayola.net", 			//smtp сервер
			"debug" => 0,              			//отображение информации дебаггера (0 - нет вообще)
			"auth" => true,           			//сервер требует авторизации
			"port" => 25,             			//порт (по-умолчанию - 25)
			"username" => "info@example.ru", //имя пользователя на сервере
			"password" => "*****",	   //пароль
			"addreply" => "info@example.ru",		//ваш е-mail
			"replyto" => "info@example.ru"    //e-mail ответа
		);
		
		$mail->IsSMTP();  # Sets Mailer to send message using SMTP.
		$mail->IsHTML(true);
		try {
		
			$mail->CharSet	= 'Windows-1251';
			$mail->FromName	= '[ INFO ]';
		  $mail->Host       = $__smtp['host'];
		  $mail->SMTPDebug  = $__smtp['debug'];
		  $mail->SMTPAuth   = $__smtp['auth'];
		  $mail->Port       = $__smtp['port'];
		  $mail->Username   = $__smtp['username'];
		  $mail->Password   = $__smtp['password'];
		  $mail->AddReplyTo($__smtp['addreply'], $__smtp['username']);
		  $mail->AddAddress($to);                //кому письмо
		  $mail->SetFrom($__smtp['addreply'], $__smtp['username']); //от кого (желательно указывать свой реальный e-mail на используемом SMTP сервере
		  $mail->AddReplyTo($__smtp['addreply'], $__smtp['username']);
		  $mail->Subject = htmlspecialchars($subject);
		  $mail->MsgHTML($message);
		  if (($filename !== false) && (is_file($filename))) {
				$mail->AddAttachment($filename);
			}
		  $mail->Send();
		  # echo "Message sent Ok!</p>\n";
		} catch (phpmailerException $e) {
		  echo $e->errorMessage();
		} catch (Exception $e) {
		  echo $e->getMessage();
		}
		
		return 0;
	}

	$mail->CharSet	= 'Windows-1251';
	$mail->FromName	= 'NGCMS sender';
	$mail->From		= (!$mail_from) ? "mailbot@".str_replace("www.", "", $_SERVER['SERVER_NAME']) : $mail_from;
	$mail->Subject	= $subject;
	$mail->Body		= $message;
	$mail->AddAddress($to, $to);
	if (($filename !== false) && (is_file($filename))) {
		$mail->AddAttachment($filename);
	}

	return $mail->Send();


	$mail_from	=	(!$mail_from) ? "mailbot@".str_replace("www.", "", $_SERVER['SERVER_NAME']) : $mail_from;
	$uniqid		=	md5(uniqid(time()));

	$headers	=	'From: '.$mail_from."\n";
	$headers	.=	'Reply-to: '.$mail_from."\n";
	$headers	.=	'Return-Path: '.$mail_from."\n";
	$headers	.=	'Message-ID: <'.$uniqid.'@'.$_SERVER['SERVER_NAME'].">\n";
	$headers	.=	'MIME-Version: 1.0'."\n";
	$headers	.=	'Date: '.gmdate('D, d M Y H:i:s', time())."\n";
	$headers	.=	'X-Priority: 3'."\n";
	$headers	.=	'X-MSMail-Priority: Normal'."\n";
	$headers	.=	'X-Mailer: '.engineName.' : '.engineVersion."\n";
	$headers	.=	'X-MimeOLE: '.engineName.' : '.engineVersion."\n";
	$headers	.=	'content-type: multipart/mixed;boundary="----------'.$uniqid.'"'."\n\n";
	$headers	.=	'------------'.$uniqid."\n";
	$headers	.=	'content-type: '.$ctype.';charset='.$lang['encoding'].''."\n";
	$headers	.=	'content-transfer-Encoding: 8bit';

	if (is_file($filename)){
		$file		=	fopen($filename, 'rb');
		$message	.=	"\n".'------------'.$uniqid."\n";
		$message	.=	'Content-Type: application/octet-stream;name="'.basename($filename).'"'."\n";
		$message	.=	'Content-Transfer-Encoding: base64'."\n";
		$message	.=	'Content-Disposition: attachment;';
		$message	.=	'filename="'.basename($filename).'"'."\n\n";
		$message	.=	chunk_split(base64_encode(fread($file, filesize($filename))))."\n";
	}

	@mail($to, $subject, $message, $headers);
}

#13 Re: Релизы версий » Версия 0.9.3 Release » 2012-10-25 13:58:00

А вот перевели отправку почты через class.phpmailer.php

А ведь он умеет и по SMTP работать. Было бы круто реализовать этот запрос http://ngcms.ru/forum/viewtopic.php?id=1136

У меня как раз авторизованная SMTP отправка это единственный способ выслать письмо.

// Готово! как сделать хаком отправку через SMTP http://ngcms.ru/forum/viewtopic.php?pid=32151#p32151 - нужно причесать и в движок, плюс в настройках движка глобально для сайта выбирать метод отправки почты smtp или mail()

#14 Re: Страницы плагинов » feedback :: Менеджер форм обратной связи » 2012-10-24 22:05:20

А site.notify.tpl получается один на все формы что ли?  Это шаблон, который после отправки сообщения отображается.

#15 Re: Страницы плагинов » feedback :: Менеджер форм обратной связи » 2012-10-24 21:42:20

Knopik, он там подключает {% extends localPath(0) ~ "site.body.tpl" %} тоже нужен ?

И какой выбирать тогда в настройках, который form или body ? Странно что в readme ничего нет.

8107d8cdaa2af3987344eb74d61d5043.png

// да, выбирать типа form

#16 Re: Страницы плагинов » feedback :: Менеджер форм обратной связи » 2012-10-24 17:52:41

Вообще не могу разобраться как свои шаблоны работают. Какой шаблон из /engine/plugins/feedback/tpl нужно склонировать в /engine/plugins/feedback/tpl/templates ?

#17 Re: Страницы плагинов » feedback :: Менеджер форм обратной связи » 2012-10-24 17:30:49

vitaly пишет:

Евгений, проблема исправлена в SVN 1046.
Knopik, именно так и исправлена, спасибо smile

То есть шаблоны в папке с шаблоном сайта хранить нельзя  ? Только в plugins ? Не очень удобно.

#18 Флейм » Статут проекта за последние пол года » 2012-10-06 18:32:38

Wolverine
Ответов: 3

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

#19 Re: Флейм » Обзывают ngcms кодопомойкой :( » 2012-05-09 13:53:57

Бывает, система на самом деле отличная с учетом количества людей, которые её писали. Архитектура грамотная smile

Конкретные предложения или указания на недоработки всегда приветствуются.

#20 Re: Страницы плагинов » top_news :: Популярные новости » 2012-05-06 12:57:37

vl, ошибки есть какие-то? Пути нигде жестко не прописаны, возможно стандартные функции движка не корректно работают.

#21 Re: "У меня не работает..." » Помогите с установкой!! Что я делаю не так? » 2012-04-25 13:50:21

Возможно папка Twig называется twig, то есть FTP клиент преобразовал все в нижний регистр.

#22 Re: "А как сделать..." » uprofile и сторонний плагин, как сделать? » 2012-04-12 15:18:19

В acts плагина не указал действие action.ppages.uprofile, потом включить/выключить плагин.

#24 Re: Флейм » Переделал NGCMS в кодировке UTF-8 но есть небольшие проблемы. » 2012-04-11 13:04:32

\engine\install.php

$charset = $charsetEngine?' default charset=utf8':'';


if ($SUPRESS_CHARSET) { $dbCreateString = str_replace('default charset=utf8','',$dbCreateString); }

#25 Re: FAQ » [Хак] Highslide JS - модные превьюшки » 2012-03-29 21:30:02

Сделай поиск этого текста в Highslide.JS Думаю он там.

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

Работает на FluxBB