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

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

Вы не зашли.

#526 Re: "А как сделать..." » Защита от накруток в плагине rating, запись IP-адреса юзера в БД » 2011-10-16 00:26:19

vitaly пишет:
ROZARD пишет:

И делать проверку для каждый новости:
$news[$newsID] = и тут весь массив тех кто голосовал за эту новость;
и через условия проверять.

А как обеспечишь атомарность операции "добавить проголосовавшего"?
Что будет если двое одновременно проголосуют за новость?

Так это же на вывод для тех кто уже голосовал, при голосовании уже делать проверку. Я привел такой пример чтобы не делать отдельно каждый запрос к каждой новости...

#528 Re: "А как сделать..." » Защита от накруток в плагине rating, запись IP-адреса юзера в БД » 2011-10-16 00:10:41

ikv777vlg, На счет скобок всё правильно.
$userROW['id'] так же как и $ip лучше обернуть, intval($userROW['id'])  и db_squote($ip) они являются глобальными и их можно подменить другими значениями с другого плагина и лучше обезопасится.
[hr /]
И по тому что я предлогаю:

$news = array();
foreach ($mysql->select('select * from '.prefix.'_rating') as $row)
{
		$news[$row['news_id']] = $row;
}

И делать проверку для каждый новости:
$news[$newsID] = и тут весь массив тех кто голосовал за эту новость;
и через условия проверять.

#529 Re: "А как сделать..." » Защита от накруток в плагине rating, запись IP-адреса юзера в БД » 2011-10-15 23:30:24

Тогда делай один запрос пройдясь по всей таблице и запиши всё в одну переменную и по ней уже сравнивай все новости.

P.S. всего кода не вижу и подробнее написать не могу...

#530 Re: "А как сделать..." » Защита от накруток в плагине rating, запись IP-адреса юзера в БД » 2011-10-15 23:19:21

Так проверять нужно при нажатии, а не как только зайдет на сайт smile

Не очень понятна:

(user_id='".intval(is_array($userROW))."'

тут походу intval выручает))
Скорее:

user_id='".intval($userROW['id'])."'

и скобки не обязательны...

#531 Re: Страницы плагинов » ads_pro :: Реклама на сайте » 2011-10-15 21:50:08

Допиливал до кое каких нужд. Если кому нужно, добавлена поддержка для страниц плагинов, но только тех кто имеет собственные страницы. например: tags, feedback, comments и.т.д.

#532 Re: Страницы плагинов » multi_main :: Разные main.tpl для категорий (и не только) » 2011-10-15 15:08:38

Klim, Проверять работает в начале или нет мне проблематично, главное что работает...

#533 Re: Страницы плагинов » multi_main :: Разные main.tpl для категорий (и не только) » 2011-10-15 14:53:36

Klim, Вообще желательно в начале функции, но если так работает оставляй так))

#534 Re: "А как сделать..." » Защита от накруток в плагине rating, запись IP-адреса юзера в БД » 2011-10-15 14:02:41

ikv777vlg пишет:

Но ведь никто лучше создателей CMS не знает что там за функции в том-же, например extras.inc.php smile, я заглянул туда, а там темный лес, черт ногу сломит с моими знаниями PHP, хотя некоторую информацию можно почерпнуть из комментариев на английском, это очень хорошо, но неудобно конечно hmm

Напиши какие именно функции из extras.inc.php ты хочешь знать и на http://wiki.ngcms.ru/ я их распишу...

P.S. Только не надо говорить просто ВСЕ smile

#535 Re: Страницы плагинов » multi_main :: Разные main.tpl для категорий (и не только) » 2011-10-15 13:36:57

Klim, Ты можешь для этого плагина сам указать шаблон.
Если для страницы:
http://сайт.ру/plugin/tags/ то найди функцию:

function plugin_tags_generatecloud($ppage = 0, $catlist = '')

И добавь в неё:

$SYSTEM_FLAGS['template.main.name'] = 'main'; //тогда для этой страницы будет использоваться шаблон main.tpl

А если нужно для: http://сайт.ру/plugin/tags/tag/?tag= тогда найди:

function plugin_tags_tag($params = array())

И в неё добавь:

$SYSTEM_FLAGS['template.main.name'] = 'main';

#536 Re: "А как сделать..." » Защита от накруток в плагине rating, запись IP-адреса юзера в БД » 2011-10-15 13:18:30

ikv777vlg пишет:

А вообще, не хватает документации по всем подобным функциям, которые можно вызывать в плагинах.
Или такая документация есть? Я просто не в курсе, уж извиняйте roll

Есть http://wiki.ngcms.ru но она пока не полная...

#537 Re: Страницы плагинов » multi_main :: Разные main.tpl для категорий (и не только) » 2011-10-14 16:55:58

Klim пишет:

Какая-то несуразность выходит с плагином "Теги". При выводе списка новостей по тегу (http://сайт.ру/plugin/tags/tag/?tag=Yamaha) подставляется шаблон категории, причем "старшей" по id категории, т.е. если у меня, например, в списке тега Yamaha, 10 новостей из разделов: Мотоциклы, Снегоходы, Скутеры, а 1 новость из категории Музыкальные инструменты, но id этой категории выше остальных, то тег выводится в шаблоне категории Музыкальные инструменты. Это так задумано или что-то не так? Может лучше сделать чтобы плагин полностью выходил в шаблоне main.tpl?

Плагин не рассчитан для работы с плагином tags как и с другим другим. Только с главной страницей, категориями и групп пользователей...

#538 Re: Страницы плагинов » simple_title_pro :: Управление заголовками страниц » 2011-10-14 14:41:39

Север пишет:

1. При удалении title категории в плагине, белая страница.
Сам заданный title удалился, просто потом нажал кнопку назад в браузере и обновить.
Хорошо бы, там рядом с кнопкой удалить сделать еще "Редактировать". Для всех трех: разделы, новости, статика.

Так что отредактировать достаточно нажать на созданное правило. Удаление подправил.

Север пишет:

2. Постраничник
Для категорий
Уникальный title должен поддерживать постраничник "стр.2,3..." тот что есть в плагине.

Он и так есть...

Север пишет:

Для новостей
Уникальный title должен поддерживать постраничник "стр.2,3..." тот что есть в плагине. Правда это логично бы на уровне ядра иметь.
(Хорошо бы, если статья большая и разбивается на 2/3 страницы, иметь возможность задать title и для них. Но это уже вообще мечта.)

Добавил.

Север пишет:

Для страниц
Уникальный title должен поддерживать постраничник "стр.2,3..." тот что есть в плагине. Так же хотелось бы иметь это в ядре.
(Хорошо бы, если текста много и он разбивается на 2/3 страницы, иметь возможность задать title и для них.)

Тут не знаю, нужно ли...

#539 Re: Страницы плагинов » simple_title_pro :: Управление заголовками страниц » 2011-10-14 10:34:59

Кэш он должен удалить для редактированной: категории, новости или статики. Я проверил и у меня кэш работает.
То что вылазило убрал и подправил ошибку в шаблоне.
[hr /]
Поменя работу кэша. Теперь если редактируешь категорию то кэш для неё обновится сразу при редактировании...

#541 Re: "А как сделать..." » Защита от накруток в плагине rating, запись IP-адреса юзера в БД » 2011-10-13 21:52:51

ikv777vlg пишет:
ROZARD пишет:

Без него проще...

Сэкономить лишние 2 символа в принципе тоже правильно, хоть и бессмысленно big_smile
Ладно, с этим разобрались.

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

ikv777vlg пишет:
ROZARD пишет:

Для IP подойдет varchar(15), а для News_ID text должно хватить...

text точно хватит? Даже если, допустим при 1000 новостей, у меня просто голова кругом от этих типов данных yikes

Тогда наверняка longtext он поддерживает объем чуть больше 4 миллиардов)

По поводу даты лучше тогда через условие:

if('ДАТА_ПОСЛЕ_КОТОРОЙ НУЖНО ОЧИСТИТЬ ТАБЛИЦУ' <= 'ВРЕМЯ_В ДАННЫЙ МОМЕНТ')
     $mysql->query("delete from ".prefix."_rating");

#542 Re: Страницы плагинов » simple_title_pro :: Управление заголовками страниц » 2011-10-13 21:32:12

legenda, ЧПУ для статистической страницы работать не будет...
Или самим открыть static.php и найти:

if ((!$limit)||(!is_array($row = $mysql->record("select * from ".prefix."_static where approve = 1 and ".$limit)))) {
		if (!$params['FFC']) {
			error404();
		}
		return false;
	}

и после добавить:

$SYSTEM_FLAGS['static']['db.id'] = $row['id'];

#543 Re: "А как сделать..." » Защита от накруток в плагине rating, запись IP-адреса юзера в БД » 2011-10-13 21:00:57

ikv777vlg пишет:

А теперь вопросы...
Во первых, почему в файле <?php в конце не закрыт(?>), это так задумано, или просто забыли? На сколько я знаю, <?php закрывать не обязательно, но надо-же, наверное, для цивильности big_smile

Без него проще...

ikv777vlg пишет:

Во вторых, вопрос про БД... Я конечно извиняюсь, но какие типы данных использовать для полей IP и News_ID, если учитывать что в IP будет храниться IP, а в News_ID может храниться длиннющий список идентификаторов новостей с разделителями? (добавил вложение)

Для IP подойдет varchar(15), а для News_ID text должно хватить...

ikv777vlg пишет:

И третий вопрос, один из самых важных, как организовать удаление старых записей из БД? Если юзер проголосовал, ему ставится печенька на год, я правильно понял? Так я думаю за год в базе скопится слишком много, СЛИШКОМ МНОГО IP-адресов с идентификаторами... Так-что я думаю, месяца 2-3 вполне хватит, потом ID у этого IP можно удалять, а если кончились ID, то и IP мы удаляем. Мысль ясна? big_smile
Как это реализовать - непонятно.. Помогите!

Добавить ещё одно поле date куда при добавлении будет добавляться время и сравнивать разницу и по ней удалять, но при твоей структуре с этим проблематично получится) Я думаю лучше добавить кнопку чтобы можно было нажать и вся таблица очиститься)

#545 Re: Запросы на платную разработку плагинов » Давайте сделаем NGCMS интересной seo-оптимизаторам и студиям. Я оплачу » 2011-10-13 16:53:49

Север пишет:

1. Возможность указать персональный титл для каждой новости, раздела, страницы.
Это очень важная функция для seo-оптимизации и её не хватает. Лучше не плагином, а вшить прямо в движок. Идеально - еще одним полем, там где Альт. имя:,Описание:,Ключевые слова:.
Или доработать simple_title_ng(чтобы плагин включал такую возможность глобально), сейчас плагин, делает только "скелет вывода" титлов.

http://ngcms.ru/forum/viewtopic.php?id=2055

#546 Страницы плагинов » simple_title_pro :: Управление заголовками страниц » 2011-10-13 16:52:43

ROZARD
Ответов: 85

Плагин simple_title_pro, текущая версия 0.1 RC3 [NEW].
Аналогичен simple_title_ng с разницей, что может формировать <title></title> индивидуально для каждой: категории, статистической страницы, новости.

Версия движка: NG v.0.9.3

Из особенностей:
-Использует БД.
-Используется шаблонизатор Twig.
-Предусмотрено кэшировани.
-Есть поддержка остальных страниц.
-Можно указать плагины исключения.
-Поддержка тегов для плагина tags.
-Настройка кэша.
-Добавлена поддержка блока для подстраницы [/ %num%]. [NEW]

Установка:
1. Помешаем папку с плагином в \engine\plugins\
2. В разделе "Плагины" устанавливаем и включаем
3. Можно пользоваться, по умолчанию уже заданы настройки для <title></title> если нужно изменить выбираем нужный раздел и добавляем.
4. Открываем /engine/skins/default/tpl/news/add.tpl, /engine/skins/default/tpl/news/edit.tpl находим в нем:

  <tr>
   <td><img src="{{ skins_url }}/images/nav.png" hspace="8" alt="" /></td>
   <td>{{ lang.editnews['keywords'] }}:</td>
   <td><input type="text" name="keywords" value="{{ keywords }}" size="60" tabindex="5" /></td>
  </tr>

после добавляем:

  {% if (pluginIsActive('simple_title_pro')) %}
  <tr>
   <td><img src="{{ skins_url }}/images/nav.png" hspace="8" alt="" /></td>
   <td>Титле %home% %cat% %title%</td>
   <td><input type="text" name="titles" value="{{ titles }}" size="60" tabindex="5" /></td>
  </tr>
  {% endif %}

Для работу требуется обновиться до SVN 848, в противном случае плагин будет не работоспособен.

#548 Re: "А как сделать..." » Защита от накруток в плагине rating, запись IP-адреса юзера в БД » 2011-10-13 11:11:26

Что то ты намудрил smile

if($upd){
	$mysql->query("update ".prefix."_rating set News_ID=concat(News_ID, '".str_replace("'", "", str_replace("'", "", $post_id))."|') where IP = '".$_SERVER['REMOTE_ADDR']."'");
}

Тут нужно добавлять запись, а не обновлять у первой попавшейся записи News_ID

И проверку голосовал человек с таким то IP за такую то новость можно сделать один запросом и не делать кучу условий...
Зачем locate?
Зачем concat?

Добавь global $ip; И тогда не придется писать $_SERVER['REMOTE_ADDR'], а просто $ip
Индексы добавил на News_ID, IP? И хорошо бы очищать эту таблицу от старых IP чтобы не перегружать.

#549 Re: "А как сделать..." » Защита от накруток в плагине rating, запись IP-адреса юзера в БД » 2011-10-13 00:15:08

Данной проверки в месте где записывает куки я не нашел, данная проверка идет в начале и просто проверяет новость на наличие...

#550 Re: "У меня не работает..." » Проблема с .htaccess » 2011-10-11 19:22:23

Ну так должен работать, наверное не в том место добавляешь...

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

Работает на FluxBB