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

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

Вы не зашли.

#152 Re: Страницы плагинов » feedback :: Менеджер форм обратной связи » 2009-05-10 23:25:33

2. Видимо эта возможность планировалась, раз даже поле в БД уже есть

/engine/plugins/feedback/config.php
#1. Найти

	$mysql->select("update ".prefix."_feedback set name=".db_squote($name).", title=".db_squote($_REQUEST['title']).", template=".db_squote($_REQUEST['template']).", emails=".db_squote($_REQUEST['emails']).", description=".db_squote($_REQUEST['description']).", active=".intval($_REQUEST['active']).", flags=".intval($flags)." where id = ".$id);

#1. Заменить на

	$mysql->select("update ".prefix."_feedback set name=".db_squote($name).", title=".db_squote($_REQUEST['title']).", template=".db_squote($_REQUEST['template']).", emails=".db_squote($_REQUEST['emails']).", description=".db_squote($_REQUEST['description']).", active=".intval($_REQUEST['active']).", regonly=".intval($_REQUEST['regonly']).", flags=".intval($flags)." where id = ".$id);

#2. Найти

			'active'	=> $frow['active']?$lang['yesa']:$lang['noa'],

#2. Добавить после

			'regonly'	=> $frow['regonly']?$lang['yesa']:$lang['noa'],

#3. Найти

		$tvars['vars']['active_checked'] = ($edMode?$_REQUEST['active']:$frow['active'])?'checked="checked"':'';

#3. Добавить после

		$tvars['vars']['regonly_checked'] = ($edMode?$_REQUEST['regonly']:$frow['regonly'])?'checked="checked"':'';

/engine/plugins/feedback/feedback.php
#4. Найти

function plugin_feedback_screen() {
 global $template, $tpl, $lang, $mysql, $userROW;

#4. Заменить на

function plugin_feedback_screen() {
 global $template, $tpl, $lang, $mysql, $userROW, $is_logged;

#5. Найти

 // Prepare params
 $tvars = array();
 $tvars['vars']['ptpl_url']		= $ptpl_url;
 $tvars['vars']['id']			= $frow['id'];
 $tvars['vars']['description']	= $frow['description'];
 $tvars['vars']['entries']		= $output;
 $tvars['vars']['form_url']		= GetLink('plugins', array('plugin_name' => 'feedback'));

#5. Добавить после

 if ($frow['regonly'] && !$is_logged)
 {
  $tvars['regx']["'\[is-logged\](.*?)\[/is-logged\]'si"] = '';
  $tvars['regx']["'\[isnt-logged\](.*?)\[/isnt-logged\]'si"] = '$1';
 }
 else
 {
  $tvars['regx']["'\[is-logged\](.*?)\[/is-logged\]'si"] = '$1';
  $tvars['regx']["'\[isnt-logged\](.*?)\[/isnt-logged\]'si"] = '';
 }

#6. Найти

function plugin_feedback_post() {
 global $template, $tpl, $lang, $mysql, $userROW;

#6. Заменить на

function plugin_feedback_post() {
 global $template, $tpl, $lang, $mysql, $userROW, $is_logged;

#7. Найти

 // Unpack form data
 $fData = unserialize($frow['struct']);
 if (!is_array($fData)) $fData = array();

 // Scan all fields and fill data. Prepare outgoing email.
 $output = '';

 foreach ($fData as $fName => $fInfo) {
  switch ($fInfo['type']) {
  	case 'date':	$fieldValue = $_REQUEST[$fName.':day'] . '.' . $_REQUEST[$fName.':month'] . '.' . $_REQUEST[$fName.':year'];
	  				break;
	default:		$fieldValue = $_REQUEST[$fName];


  }
  $output .= '['.$fName.'] '.$fInfo['title'].': '.$fieldValue."<br/>\n";
 }

#7. Добавить перед

 if ($frow['regonly'] && !$is_logged)
 {
 	$tpl->template('site.infoblock', $tpath['site.infoblock']);
 	$tpl->vars('site.infoblock', array( 'vars' => array( 'title' => $frow['title'], 'ptpl_url' => $ptpl_url, 'entries' => "You're not so cool?")));
 	$template['vars']['mainblock']      =  $tpl->show('site.infoblock');
 	return;
 }

/engine/plugins/feedback/tpl/conf.form.hdr.tpl
#8. Найти

<tr align="left"><td class="contentRow" width="170"><b>Активна:</b></td><td><input type="checkbox" name="active" value="1" {active_checked} /></td></tr>

#8. Добавить после

<tr align="left"><td class="contentRow" width="170"><b>Требуется регистрация:</b></td><td><input type="checkbox" name="regonly" value="1" {regonly_checked} /></td></tr>

/engine/plugins/feedback/tpl/conf.forms.hdr.tpl
#9. Найти

<td colspan="7" width=100% class="contentHead"><img src="{skins_url}/images/nav.gif" hspace="8">Редактирование форм обратной связи</td>

#9. Заменить на

<td colspan="6" width=100% class="contentHead"><img src="{skins_url}/images/nav.gif" hspace="8">Редактирование форм обратной связи</td>

#10. Найти

<td class="contentHead"><b>Активна</b></td>

#10. Добавить после

<td class="contentHead" width="87"><b>Требуется регистрация</b></td>

/engine/plugins/feedback/tpl/conf.form.hdr.tpl
#11. Найти

<td>{active}</td>

#11. Добавить после

<td>{regonly}</td>

/engine/plugins/feedback/tpl/site.form.hdr.tpl
#12. Вставить в начало

[isnt-logged]
Для заполнения данной формы требуется регистрация
[/isnt-logged]
[is-logged]

#12. Вставить в конец

[/is-logged]

#153 Re: "А как сделать..." » Выбор категории при добавлении новости (addnews.htm) » 2009-05-09 18:50:35

/engine/includes/inc/functions.inc.php
#1. Найти

// makeCategoryList - make <SELECT> list of categories
// Params: set via named array
// * name     - name field of <SELECT>
// * selected - ID of category to be selected
// * skip     - ID of category to skip or array of IDs to skip
// * doempty  - add empty category to the beginning ("no category"), value = 0
// * doall    - all category named "ALL" to the beginning, value is empty
// * nameval  - use DB field "name" instead of ID in HTML option value
// * resync   - flag, if set - we make additional lookup into database for new category list
function makeCategoryList($params = array() /*selected=0, $my=0, $noempty=0, $name='category'*/){
	global $catz, $lang, $mysql;

	if (!is_array($params['skip'])) { $params['skip'] = $params['skip']?array($params['skip']):array(); }
	$name = array_key_exists('name', $params)?$params['name']:'category';

	$out = "<select name=\"$name\" id=\"catmenu\"".($params['class']?' class="'.$params['class'].'"':'').">\n";
	if ($params['doempty'])	{ $out.= "<option value=\"0\">".$lang['no_cat']."</option>\n"; }
	if ($params['doall'])	{ $out.= "<option value=\"\">".$lang['sh_all']."</option>\n"; }
	if ($params['resync'])  {
		$catz = array();
		foreach ($mysql->select("select * from `".prefix."_category` order by posorder asc", 1) as $row) {
			$catz[$row['alt']] = $row;
			$catmap[$row['id']] = $row['alt'];
		}
	}

	foreach($catz as $k => $v){
		if (in_array($v['id'], $params['skip'])) { continue; }
		$out.="<option value=\"".($params['nameval']?$v['name']:$v['id'])."\"".(($v['id']==$params['selected'])?' selected="selected"':'').">".str_repeat('— ', $v['poslevel']).$v['name']."</option>\n";
	}
	$out.="</select>";
	return $out;
}

#1. Добавить после

// makeCategoryBlock - make block of categories
// Params: set via named array
// * name     - field name
// * selected - ID of category to be selected or array of IDs to be selected
// * skip     - ID of category to skip or array of IDs to skip
// * resync   - flag, if set - we make additional lookup into database for new category list
function makeCategoryBlock($params = array()){
	global $catz, $mysql;

	if (!is_array($params['selected'])) { $params['selected'] = $params['selected']?array($params['selected']):array(); }
	if (!is_array($params['skip'])) { $params['skip'] = $params['skip']?array($params['skip']):array(); }
	$name = array_key_exists('name', $params)?$params['name']:'categories';
	$col = isset($params['col']) ? $params['col'] : 3;
	$selected = implode(',', $params['selected']);

	$out = "<input type=\"hidden\" name=\"$name\" id=\"categories\" value=\"$selected\" />\n";
	if ($params['resync'])  {
		$catz = array();
		foreach ($mysql->select("select * from `".prefix."_category` order by posorder asc", 1) as $row) {
			$catz[$row['alt']] = $row;
			$catmap[$row['id']] = $row['alt'];
		}
	}

	foreach($catz as $k => $v){
		if (in_array($v['id'], $params['skip'])) { continue; }
		$out.="<div id=\"cat_{$v['id']}\" onclick=\"selectcat({$v['id']}); return false;\" class=\"catblock".(in_array($v['id'], $params['selected'])?'_selected':'')."\">".str_repeat('— ', $v['poslevel']).$v['name']."</div>";
	}
	return $out;
}

/engine/includes/js/functions.js
#2. Найти

function addcat(){

	if (document.getElementById('categories').value != '' && document.getElementById('catmenu').value != '') {
		document.getElementById('categories').value = document.getElementById('categories').value + ", " + document.getElementById('catmenu').value;
	}
	else if (document.getElementById('catmenu').value != '') {
		document.getElementById('categories').value = document.getElementById('catmenu').value;
	}
	document.getElementById('catmenu').options[document.getElementById('catmenu').selectedIndex] = null;

	if (document.getElementById('catmenu').options.length == 0) {
		document.getElementById('catmenu').disabled = true;
		document.getElementById('catbutton').disabled = true;
	}
}

#2. Добавить после

var categories = new Array();
var className = '';
function selectcat(id){
	if (id in categories && categories[id] != '') {
		categories[id] = '';
		document.getElementById('cat_' + id).className = className;
	}
	else {
		categories[id] = id;
		className = document.getElementById('cat_' + id).className;
		document.getElementById('cat_' + id).className = className + '_selected';
	}
	document.getElementById('categories').value = categories.join(',');
}

/engine/actions/addnews.php
#3. Найти

		'catlist'			=> makeCategoryList(array('nameval' => 1)),

#3. Добавить после

		'catblock'			=> makeCategoryBlock(),

/шаблон/addnews.tpl (на примере default)
#4. Найти

<tr>
<td width="100%" style="padding: 3px;">{l_category} {catlist} <input type="button" name="catbutton" id="catbutton" value="{l_add}" class="button" onClick="addcat(); return false;" /></td>
</tr>

#4. Заменить на

<tr>
<td width="100%" style="padding: 3px;">{catblock}</td>
</tr>

#5. Добавить стили

.catblock {
	float: left;
	width: 33%; /* 100 / 33 = 3 категории в ряду */
}

.catblock_selected {
	float: left;
	width: 33%;
	background: #ff0000; /* красный фон для выделенных категорий */
}

#6. Перейти в браузере по адресу: http://ваш_сайт/engine/includes/js/functions.js и нажать F5 (чтобы обновить functions.js в кэше браузере)

Enjoy!

#154 Re: Запросы плагинов » Location мли Breadcrumb или попросту "Где я?" » 2009-05-09 18:38:51

Переделки, или хотя бы плагины, можешь приаттачить? Чтобы не лазить по 2з форуму

#155 Re: Страницы плагинов » geoip_flags :: Определение страны пользователя по ip » 2009-05-09 17:40:11

На главной, если только флаг своей страны выводить. Вдруг посетитель забыл совсем случайно, в какой стране он находится smile

#156 Re: Страницы плагинов » geoip_flags :: Определение страны пользователя по ip » 2009-05-09 17:22:46

Если я правильно понимаю, то не должно.
Когда выполняется exec_acts для comments, в параметрах передается еще и $row, в котором есть IP
При вызове же exec_acts для index ничего такого не передается, соотв. флаг всегда будет 0.gif.

#157 Re: "А как сделать..." » каталог » 2009-05-09 13:21:18

Я то вообще в программировании ноль!!!!

Тогда эти знания будут бесполезны
Зачем здесь вообще плагин? Создай статическую страницу и добавь туда все баннеры

#158 Re: "А как сделать..." » каталог » 2009-05-09 12:58:03

Если просто вставлять код баннера в новость то он не показывается!!!

HTML в новости не включен
"Разрешить использовать HTML теги" на вкладке "Дополнительно" при добавлении/редактировании новости

#159 Re: Запросы на доработку ядра » мультиязычность » 2009-05-08 22:56:27

Если пойти по пути наименьшего сопротивления:
Создать категории, к примеру news_ru, news_en, news_de и т.п.
Вставить на главной где-нибудь вверху в углу флажки с ссылками вида: /?lang=ru
В news_showone() и в consts.inc.php прилепить к названию категории: _ru, _en или _de, в зависимости от значения $_REQUEST['lang']
Вот как-то так

#160 Re: "А как сделать..." » Другой цвет фона при создании миниатюры » 2009-05-06 14:26:06

Квадратиков не останется, чуть выше есть строка:

imagefilledrectangle($newimg, 0,0, $newX, $newY, $colors[0]);

Измененный градиент смотрится на фоне только лучше. Создается ощущение псевдо-прозрачности. Все-таки это тень.

edit:
Думаю, разница видна прекрасно:
http://ipicture.ru/uploads/090506/29625/zdQO1Op2u1.png
Слева вариант с "подпорченным" градиентом

#161 Re: "А как сделать..." » Другой цвет фона при создании миниатюры » 2009-05-06 13:38:42

Там уже есть заливка, достаточно отредактировать

			$background		=	array("r" => 255, "g" => 255, "b" => 255);

что и было в 3-ем сообщении этой темы

#162 Re: "А как сделать..." » Другой цвет фона при создании миниатюры » 2009-05-06 12:26:06

Ну так это и есть цвет, в который переходит тень smile
Просто, т.к. в тех уголках тени нету, они заливаются этим цветом целиком

#164 Re: "А как сделать..." » Другой цвет фона при создании миниатюры » 2009-05-05 14:16:38

Я не понял о каком фоне речь идет )
Сделай скрин, пожалуйста, и выдели лично для меня там фон )

#166 Запросы на доработку ядра » Группы пользователей » 2009-05-04 12:42:01

insider
Ответов: 8

Создание/удаление групп пользователей

Возможность настроить отдельно каждой группе:
- Права на добавление/редактирование/удаление своих/всех новостей
- Настройка показа капчи для отдельных групп
- Разрешить/запретить: публиковать новости без модерации, прикреплять новости, добавлять в закладки, разрешать/запрещать комментарии в новости, использовать html, включать/отключать автоформатирование в новости, задавать кол-во просмотров, задавать отображение на главной, дату новости, загрузка файлов/изображений в новости
- Настройка доступа к разделам
- Просмотр отключенного сайта
- Просмотр [hide][/hide]
- Скачивание файлов
- Возможность поиска
- Размеры аватаров

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

Чтобы не создавать новых тем, напишу тут так же:
Возможность делать датированные бэкапы после каждого редактирования новости. Можно настраивать выборочно для новостей/категорий
Автобэкап всей БД конечно есть, но возможность откатить то или иное изменение одним кликом мыши и без лишних телодвижений -- будет весьма полезной

И еще:
Под Денвером не загружались изображения, начал ковырять
$_FILES[_name_]['tmp_name'] содержит в путях \ слэши, которые просто вырезаются при включенном magic_quotes_gpc
После отключения все стало загружаться нормально
Полагаю что так не только в Денвере, а вообще в Windows

#167 Re: "А как сделать..." » Другой цвет фона при создании миниатюры » 2009-05-04 12:21:10

Если я правильно понял что требуется, то это здесь:
/engine/includes/classes/upload.class.php

		// Resize image
		imagefill($newimg,0,0,'0xFFFFFF');

#168 Re: "У меня не работает..." » Не могу разобраться с плагином finance » 2009-05-04 06:50:18

Поставил плагин, повторил вышесказанное. Теги не пропадали только тогда, когда стоимость доступа не была указана (на второй вкладке при создании/редактировании новости)

#169 Re: Страницы плагинов » finance :: Базовый модуль управления финансами » 2009-05-04 06:49:12

Включение тестового режима плагина fin_wm не играет абсолютно никакой роли

#170 Re: Решение проблем форума » Занимаемся форумом » 2009-05-02 22:11:56

А кто сказал, что каждый юзер будет увеличивать шрифт? Делается-то оно проще простого, только вот большинство, я думаю, текущий размер устраивает полностью

#171 Re: "А как сделать..." » 1 сайт на 2 доменах » 2009-05-02 21:50:13

То самое

Основные настройки
Домашняя страница сайта = http://{domain}
Страница админ-панели = http://{domain}/engine

Изображения
Ссылка к папке для загрузки изображений = http://{domain}/uploads/images

Файлы
Ссылка к папке для загрузки файлов = http://{domain}/uploads/files

Домены
Список доменных имён сайта

dentalpractice.ru
lebedevclinic.ru

И самое главное, не забудь в панели управления сервером (cPanel, DirectAdmin и т.п.) настроить lebedevclinic.ru как alias для домена dentalpractice.ru

#172 Re: "А как сделать..." » 0.9.0 #4 - отступ перед названием плагина » 2009-05-02 16:09:32

Насчет названия плагина по центру
/templates/globlog/css/style.css
Найти

.widget_style h2 {font-size:1.18em; line-height:1.01em; color:#EFF2F3; font-weight:bold; padding:10px 0 0 48px;}

Заменить на

.widget_style h2 {font-size:1.18em; line-height:1.01em; color:#EFF2F3; font-weight:bold; padding:10px 0 0 0px; text-align:center;}

Насчет кол-ва бэкапов
/engine/includes/inc/functions.inc.php
Найти

   if (is_link($sd . '/' . $dfile[$level]) || $dfile[$level] == '.' || $dfile[$level] == '..')

Заменить на

   if (is_link($sd . '/' . $dfile[$level]) || $dfile[$level] == '.' || $dfile[$level] == '..' || $dfile[$level] == '.htaccess')

#173 Re: Архив плагинов » DR_Guestbook :: Гостевая книга » 2009-05-01 19:44:20

А в стандартных местах (при реге, при написании комментов) работает нормально?

так работает?

ps. Если просто переименовать папку, то будет

Called method '' is not available for plugin 'guestbook'

#174 Re: Архив плагинов » DR_Guestbook :: Гостевая книга » 2009-05-01 19:06:00

Wolverine, сделай phpinfo();
У GD во "FreeType Support" что написано?

edit: плагин не находил свои шаблоны, пока не заменил /guestbook/tpl на /dr_guestbook/tpl в следующих строках:

      $tpl -> template('form', extras_dir.'/guestbook/tpl');
        $tpl -> template('guestbook', extras_dir.'/guestbook/tpl');
			$tpl -> template('comments', extras_dir.'/guestbook/tpl');

#175 Re: FAQ » FYI: Поддерживаемые BB коды » 2009-05-01 15:21:44

А если отключено автоформатирование и возможность использования HTML? Правда не знаю, зачем его отключать

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

Работает на FluxBB