+4.25
Рейтинг
11.40
Сила

Антон

  • avatar NPC
  • 0
Надо, чтобы поднимался рейтинг автора, читателя, или материала?

Место, где отмечается, прочитан ли материал пользователем, находится в classes/modules/topic/Topic.class.php, функция SetTopicRead — в той ветке if-а, где убедились, что записи о прочтения материала ещё нет, т.е. прочтение первое. Естественно, это для залогиненных пользователей.
  • avatar NPC
  • 0
Нет, совсем не то. Люди могут продолжать пользоваться ссылкой (т.е. функционально ничего не ломается), но поисковый движок не будет передавать часть твоего рейтинга тому сайту, на который указывает ссылка. Например, тут описано: ru.wikipedia.org/wiki/Nofollow
  • avatar NPC
  • 0
Речь о внешних ссылках, например, в комментариях и т.п. Чтобы не раздавать «поисковый сок» всем, кому попало.
  • avatar NPC
  • 0
Добрый день,

Эта фильтрация производится в classes\modules\topic\Topic.class.php:

/**
	 * Получает список хороших топиков для вывода на главную страницу(из всех блогов, как коллективных так и персональных)
	 *
	 * @param  int    $iPage
	 * @param  int    $iPerPage
	 * @param  bool   $bAddAccessible Указывает на необходимость добавить в выдачу топики, 
	 *                                из блогов доступных пользователю. При указании false,
	 *                                в выдачу будут переданы только топики из общедоступных блогов.	 
	 * @return array
	 */
	public function GetTopicsGood($iPage,$iPerPage,$bAddAccessible=true) {
		$aFilter=array(
			'blog_type' => array(
				'personal',
				'open'
			),
			'topic_publish' => 1,
			'topic_rating'  => array(
				'value' => Config::Get('module.blog.index_good'),
				'type'  => 'top',
				'publish_index'  => 1,
			)
		);	
		/**
		 * Если пользователь авторизирован, то добавляем в выдачу
		 * закрытые блоги в которых он состоит
		 */
		if($this->oUserCurrent && $bAddAccessible) {
			$aOpenBlogs = $this->Blog_GetAccessibleBlogsByUser($this->oUserCurrent);
			if(count($aOpenBlogs)) $aFilter['blog_type']['close'] = $aOpenBlogs;			
		}
		
		return $this->GetTopicsByFilter($aFilter,$iPage,$iPerPage);
	}
  • avatar NPC
  • 0
Да, звучит очень хорошо.
  • avatar NPC
  • 0
Хм, в конфиге ж уже есть:
$config['acl']['create']['topic']['limit_rating'] = -20;// порог рейтинга при котором юзер может создавать топики (учитываются любые блоги, включая персональные), как дополнительная защита от спама/троллинга


Ну и если твою переменную добавляешь, то надо в config.local.php, всё таки.
  • avatar NPC
  • 0
Да надо поразбираться, сейчас к сожалению не могу уделить этому время, для себя я такие вопросы экспериментальным путём (через FirePHP) решал, поиски места, с которого реально перехватить ту или иную переменную :) Ремесленничество, конечно, но надо ж с чего-то начинать.
  • avatar NPC
  • 0
Можно в плагине полностью этот файл шаблона перегрузить, в файле YourPluginName.class.php:
protected $aDelegates=array(
   'template' => array(
      'header.tpl'
   ),
);

…и подставить свой файл вместо этого. Ну или попробовать очистить sHtmlCanonical, да. Проставляется он в ядре, так что надо перехватывать позже.
  • avatar NPC
  • 0
Ага, по тегам, понял, спасибо большое.
  • avatar NPC
  • 1
Полезный плагин, спасибо большое! А какой критерий отбора «похожих»?
  • avatar NPC
  • 0
В постах его как раз нет. Или ты где-то его заметил?
  • avatar NPC
  • 0
Хм, мда, причём каноник есть только на первой странице списка, на следующих страницах он уже пропадает. По идее, надо бы наоборот.

Но к самим страницам топиков это не относится — поэтому удивляет количество ошибок, которые ты показываешь. 7.4к страниц блогов? Хотя и такое бывает, но стоит перепроверить, может не в них проблема. Ну и само-каноник ошибку не должен вызывать вообще — разве что эта предполагаемая рекурсия, но теория сомнительна (и легко исправима яндексом).
  • avatar NPC
  • 0
Я уже задавал подобный вопрос, но наоборот, хотел это не отключить, а добиться показа канонического урла :) При чтении кода выяснили, что сейчас каноник проставляется только при пагинации многостраничного вывода.
  • avatar NPC
  • 0
Да, я так и написал :) Спасибо за подтверждение.
  • avatar NPC
  • 0
«если модуль создан на базе GPL кода или содержит в себе GPL код, тогда он должен распостраняться по GPL лицензии.»

Я ж так и сказал.

«вполне получится»

Продать-то получится, но, как объясняли, «движок GPL, поэтому ты его отдай за так, а портал — не GPL, ты его продай» — не получится, потому что и портал тоже — GPL, разницы нет, как их продавать — отдельно или скопом (разве что есть желание убрать часть опциональных свобод GPL-я).

PS Как тут вписывать квоты? :)
  • avatar NPC
  • 1
GPL не запрещает коммерческое использование продукта — но определяет, что если ты продаёшь кому-то продукт, то обязан предоставить и исходники. И купивший может делать с ними, что хочет — изменять, распространять дальше, и т.п. В случае в php-шным сайтом это условие выполнится автоматически.

Ну и те доделки, которые делаются к GPL-ному проекту, автоматически и сами становятся GPL — так что продать отдельно движок и свой портал, как придумали выше, не получится. За это GPL не очень любят, он сжирает всё, что к нему прикасается :) Но тебе это не должно помешать в рамках твоего вопроса.

PS Действительно, поменял бы заголовок на «Является ли GPL проблемой для инвесторов?» или как-то так. Кто-нибудь потом по поиску его сможет найти.
  • avatar NPC
  • 0
Ну вот у вас в профиле стоит сегодняшняя дата последнего захода, и время похожее на правду.

(не переписываюсь, forever alone ;))
  • avatar NPC
  • 0
Хм, вообще последний визит — это дата из базы, которая обновляется в функциях User->UpdateSession (обновляются данные сессии, при заходе залогиненного пользователя) и User->CreateSession (логин пользователя и создание сессии). Я эти поля использовал в плагине, который вознаграждает пользователей за ежедневные заходы: livestreet.ru/blog/12441.html

В моих тестах оно работало надёжно. Правда, может где-то слишком агрессивно кешируется — но я такого не замечал (пока что).
  • avatar NPC
  • 0
Бывает :))
  • avatar NPC
  • 0
Да, согласен, установлен и использую, только там ещё и от плагина броузера зависит, а тут уже есть интерфейс вывода консоле-подобной информации, для запросов и т.п., можно было бы броузеро-независимо реализовать.

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