+22.15
Рейтинг
88.90
Сила
  • avatar Lego1
  • 1
EventVoteBlog() в ActionAjax.class.php
\classes\hooks\HookLogout.class.php
<?php
//===============================================================
class HookLogout extends Hook{
//===============================================================
	public function RegisterHook(){
		$this->AddHook('init_action','InitAction',__CLASS__,1000);
	}
//===============================================================
	public function InitAction(){
		$iRatingBlocked=-200;//рейтинг для бокировки
		if($oUserCurrent=$this->User_GetUserCurrent()){
			if(!$oUserCurrent->isAdministrator() && $oUserCurrent->getRating()<=$iRatingBlocked) $this->User_Logout();
		}
	}
//===============================================================
}
?>

Пользователя не являющимся админом и имеющим рейтинг меньше или равным $iRatingBlocked=-200 будет постоянно разлогинивать
// Правила реврайта для REQUEST_URI
$config['router']['uri'] = array(
	// короткий вызов топиков из личных блогов
	'~^(\d+)\.html~i' => "blog/\\1.html",
	'~^new$~i' => "index/newall",
	'~^top$~i' => "index/top",
	'~^discussed$~i' => "index/discussed",

);


nginx

		location /index/ {
			rewrite ^/index/newall.$ /new permanent;
			rewrite ^/index/discussed.$ /discussed permanent;
			rewrite ^/index/top.$ /top permanent;
		}
Сила — это основной параметр. Рейтинг не значит практически ничего, кроме местоположения в топе и возможности писать в топиках. Из минуса очень легко выползти имея пару твинков.

А теперь прикиньте ситуацию. Я создаю 5 аккаунтов и закрытый блог. в нем примерно за 4-5 часов создавая двухбуквенные топики качаю твинков до 500 силы. При этом рейтинг будет где то 200. Сила качается тяжело только поначалу. Потом же проще. Потому как каждая сотня дает при плюсовании лишний балл. Например если у меня сила 300 то я плюсую на +3. Вот. А потом я своего обидчика, который мне сделал отрицательную силу втаптываю всеми твинками. И мониторю чтобы он больше не поднимался. А параллельно и весь блог со всеми участниками. До тех пор пока никто ничего не будет писать чтобы снова не сминусили. А меня же никто не сможет сминусить потому что топиков и комментов у меня на твинках нет. Вот так.
Все прекрасно работает. Вот к примеру, что я использую:

'~^tv/fashionline(.*)$~' => "blog/fashionline/",
	'~^tv/wonderlife(.*)$~' => "blog/wonderlife/",
	'~^tv/rock(.*)$~' => "blog/rock/",
	'~^tv/truba(.*)$~' => "blog/truba/",
	'~^component/jtags(.*)$~' => "tags/",
	'~^sextv(.*)$~' => "blog/sextv/",
	'~^tv(.*)$~' => "blog/tv/",
	'~^urabumbum(.*)$~' => "blog/urabumbum/",
	'~^movie(.*)$~' => "blog/movie/",
	'~^blog/6-blog(.*)$~' => "blog/news/",
	'~^blog/(\d+)$~' => "blog/news/page\\1",
  • avatar lol
  • 0
Мне вот интересно как сделать ограничения на время после регистрации, например если человек или бот зарегистрировался на сайте, то должно пройти 30 минут. После этого человек может писать комментарий и топик, а бот должен лагануть с этим ограничением.
  • avatar Wasja
  • 1
1) Задать требуемые значения этих 2 строк в конфигурации:
$config['router']['page']['blog']          = 'ActionBlog';
$config['router']['page']['personal_blog'] = 'ActionPersonalBlog';

2) В файлах «ActionBlog.php», «ActionPersonalBlog.php», «ActionIndex.php» (это наиболее важные файлы) и менять формирование путей (как минимум вызовы Router::GetPath). Потенциально может потребоваться замена и в других файлах, в том числе плагинах и шаблонах.
3) Запустить сайт, попробовать работать, обнаружить ошибки, исправить их, отписаться о результатах в эту тему, чтобы люди, которым потребуется аналогичное решение, смогли решить вопрос быстрее.
  • avatar lifecom
  • 0
А зачем интерфейс? Нельзя в движок что-то встроить, чтобы работало примерно так:
getIsAllowView (
    unregistered: false;
    age: 18; // если не указан, то - "Необходимо указать в профиле возраст..."
    min_rating: 1;
    min_skill: 1;
    date_from_reg: 30;
    comments: 3;
    topics: 1;
    subscribed_to_blog: true; // если нет то - "Необходимо вступить в блог..."
    in_friends: false;
)

каждый параметр необязательный, по умолчанию — 0, false
А в плагинах выводить эти значения из их конфигов…
  • avatar AlikMis
  • 1
www\classes\actions\ActionLogin.class.php

строка 152
или после или вместо
$this->Viewer_Assign('bRefreshToHome',true);

вставить
Router::Location(Config::Get('path.root.web').'/');

должно работать
  • avatar Gmugra
  • 4
Как настраивать? — любой приём оптимизации работающий для PHP и/или веб сайта, работает и для LS, и тут нет никаких особых секретов:
1. используйтe nginx
2. используйте кэширование данных в памяти (memcached, а лучше XCache), и не используете file caching
3. используйте как можно более свежую, стабильную версию PHP
4. используйте php-fpm
5. используйте php opt-cacher (в PHP 5.5 оно уже встроено, для более старых версий есть APC или тот же XCache)
6. Тюнинг файловой системы (noatime, tmpfs для всяких «временных» файлов/папок и прочие трюки)
7. Тюнинг MySQL (Тут огромное поле для оптимизаций, начиная с того что можно пробовать собственно не с MySQL, а продвинутыми «форками» (Percona или MariaDB). Грамотной настройкой многие операции с базой можно ускорить в разы )

Подчеркну, что всё вышеперечисленное справедливо для любого PHP приложения, LS не является чем-то уникальным.

Ну и особо отмечу — вообще не связывайтесь с «шаред» хостингом, и по возможности не связывайтесь с VPS. Первое вообще не предсказуемо и не оптимизируемо. Второе — относительно.

Скорость LS зависит главным образом от количества комментариев у топика. Т.е. страница топика с большим количеством комментариев (несколько сотен) — это единственная проблема. Чем больше комментариев тем дольше будет генерироваться страница и сделать с этим ничего нельзя.

Все остальные типы страницы можно вогнать в стабильное время. Т.е. главная или всякие разные списки генерируются, в принципе, с одинаковой примерно константной скоростью.
  • avatar Wasja
  • 0
Есть другой плагин для этих целей.
Раньше он был и в каталоге, но автор почему-то удалил все свои плагины.
хотя если делать из шаблона, то можно так:
<script>
$(document).ready(function(){
var tags = "{cfg name='plugin.pluginname.tags'}"
});
</script>

только без использования {literal}
Думаю что все видео полезно для тебя. По мимо конфигов узнаешь еще много интересного о блоках ;)

в 2х словах:
если config.php из ЛС имеет
$config['tags'] = 5;

Config::Set('tags');

то выводиться оно из пхп:
Config::Get('tags');

в шаблоне:
{cfg name='tags'} или {$oConfig->Get('tags')}


если в плагине:
$config['tags'] = 5;

то
Config::Get('plugin.pluginname.tags');
  • avatar Wasja
  • 3
Единственное правильное решение — увеличить максимальное время выполнения. Но, поскольку, это отпадает, придется искать обходные пути.
1) Судя по ошибке у Вас используется файловый кеш ($config['sys']['cache']['type']='file'). Здесь несколько раз поднимался вопрос о том, что на хостинге выигрыша от его использования нет. Попробуйте отключить кеширование (установить $config['sys']['cache']['use']=false), это должно уменьшить затраты времени на удаление (правда, я не уверен, существенно уменьшить или нет).
2) Если, у Вас завелся бот, то для того, чтобы максимально быстро нейтрализовать его спам — проще всего выполнить такой скрипт прямо в БД (перед использованием задать правильное значение user_id вместо 255):
UPDATE `prefix_user` SET `user_activate`=0 WHERE `user_id`=255;
UPDATE `prefix_topic` SET `topic_publish`=0 WHERE `user_id`=255;
UPDATE `prefix_comment` SET `comment_delete`=1 WHERE `user_id`=255;

Первая строка сбросит активацию пользователя, вторая — спрячет все его топики, третья — пометит все комментарии удаленными.
Как поступать дальше с данным пользователем и его «творчеством» — решать Вам.
  • avatar lsDev
  • 2
1. Плагин тут не при делах.
2. Всё что надо было — просто обернуть $(function(){});
<a id="2gis_mini_biglink" title="Организации Петрозаводска" href="http://maps.2gis.ru/#/?history=project/petrozavodsk/center/34.3233407365,61.781189358285/zoom/13/">Перейти к большой карте</a>
<noscript id="dg-widget-minigis-place-284cc8f3" style="color:#c00;font-size:16px;font-weight:bold;">
    Код для вставки виджета на сайт    
</noscript>
<script src="http://mini.api.2gis.ru/js/ver_537e69a/loader.js"></script>
<script type="text/javascript">
$(function(){
new DG.Widget.Components.Loader({
        wid: '284cc8f3', 
        params: {"projectSelector":{"id":80,"code":"petrozavodsk","name":"Петрозаводск","centroid":"POINT(34.418349982910016 61.780603180142947)"},"search":{"rubrics":{"list":[]},"_searchFirmBasePoint":{"lon":34.3233407364999,"lat":61.7811893582847},"searchBasePointName":"Петрозаводск, Перевалка микрорайон"},"customBalloon":{"content":"Петрозаводск, Перевалка микрорайон"},"Map":{"zoom":13,"lon":34.3233407364999,"lat":61.7811893582847,"customBalloon":true,"customBallonHidden":true},"resize":{"w":938,"h":430}}    });
});
</script>
Кстсти, для TinyMCE есть подобное решение
Из бесплатного: elFinder, пример «прикручивания»
Не на этом сайте. А если у себя, то в config.php:
$config['acl']['create']['talk']['limit_time'] = 0;
  • avatar Gmugra
  • 2
На самом деле я сильно удивлён что этого кто-то до сих пор не знает. Знаменитой картинке с ведром уже лет 5:
  • avatar Gmugra
  • 2
Плагин SEO IMHO лучше не ставить. Он довольно «грязно» и прямолинейно формирует содержимое мета-тегов. Не читабельно и избыточно. Когда-то это прокатывало, но сейчас, подозреваю, приносит скорее вред чем пользу. Плагин-то очень старый.

Ecли уж так хочется этот плагин, то по карйне мере сделайте так: livestreet.ru/blog/seo/13477.html

И кстати, meta keywords последняя версия TrickyTitle умеет формировать, и гораздо умнее, чем SEO.
  • avatar Gmugra
  • 2
есть интересный плагин по «хитрым» тайтлам и его разработчики совершено правильно утверждают, что для ПС по приоритетам важны: Тайтлы, Ключевые слова и заголовки H1...H6
Нет :) приоритеты такие: Тайтлы, H1...H6 и только потом ключевые слова. Причем подчеркиваю — важность ключевых слово гораздо, гораздо, гораздо менее значительна чем важность тегов «H».

но например в вашей вёрстке H1 всего один — это название сайта на всех страницах, по крайней мере я выборочно пробежал посмотрел.
В идеале тег H1 и должен быть один на страницу. Это, безусловно, наилучшее решение. Но идеал трудно достижим. И дело тут не в LS и верстке, а в том, что именно вы caми считаете действительно важным на вашей странице. Т.е. расстановка этих тегов это не только проблема шаблона, это ещё и проблема контекста сайта. Разные сайты на одном и том же шаблоне могут вполне нуждаться в разном «стиле» расстановки тегов «H»

P.S. Дельная статья по теме: livestreetguide.com/dev/optimizaciya-shablonov.html