+60.64
447 читателей, 104 топика

Решение: Как сделать проверку на минимальное количество символов в топике

В конфиге движка есть настройка:
$config['module']['topic']['max_length'] = 25000;       // Максимальное количество символов в одном топике


А вот такой же для минимальной нету. По умолчанию для всех-всех полей оно равно 2 и записывается хардкодом. Вот подсказка, для тех, кому нужна эта настройка.
Читать дальше →

Советы по локализациям (подводный камушек)

Привет сообщество!
Веду беларускамоўны проект для ЛС. Естественно делал локализацию. Столкнулся с проблемой, что на сайте не верно склоняются некоторые лэйблы (если использовать другие локализации, да-да). Мной замечены даты и изображения.

К примеру в фотосетах слово «изображение» на русском языке склоняется следующим образом:
1,21,31… изображение
2,3,4; 22,23,24… 32,33,34… изображения
5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 изображений

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

Чего я хочу для LiveStreet или HighLoad играет значение

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

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

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

Redis(а может и Node.js)
Первое изменение которой я бы сделал в своем проекте — использовал Redis для хранения событий пользователей. Использование MySQL для таких вещей не самоубийсво, но все таки очень тормознутое решение нежели Redis, для которой шустрость второе имя. Ко всему прочему можно добавить возможность publish/subscribe, позволяющая в купе с node.js выводить уведомления такие же как в Вконтакте. Размышляя в этом направлении можно расширить границы использования этой БД. Для осуществления работы можно использовать библиотеку Rediska, разработанную с подачи нашего соотечественника.

Тем кто заинтересовался темой будет уютнее почитать подробности тут, чем читать обрывки вырезанных из текста абзацев — Redis.

MongoDB
Данных у нас много и все они хранятся в реляционной базе данных. Что если нам координально изменить парадигму хранения данных и использовать MongoDB. Выиграем мы и в скорости запросов и в скорости работы с данными продолжая использовать ORM, потому как в MongoDB оно организованно на уровне C++, а не эмулируются как сделанно в данный момент в LiveStreet. Но за это разработчикам стоит сказать отдельное спасибо, т.к это было действительно ценное решение ускоряющее разработку.

Подробности в виде презентации — Mongodb.

PS
Я просто показываю вам что вы можете сделать со своим LiveStreet и какой космос открыт перед вами :)

Если вы в этом шарите думаю все будут только рады перенять ваш опыт :)

Конвертафция путей в MySQL дампе для переноса на новый сервер

convert_paths.php
<?php

// старый путь
$old = '/var/www/looksochi/data/www/somesite.ru/';
// новый путь
$new = '/sites/rebirth/somesite.ru/';

// исходный дамп
$input = fopen('dump.sql','r');
// выходной файл
$output = fopen('dump_new.sql','w');

function rs($r){
    global $old, $new;
    return $r[1].( $r[2] + (strlen($new)-strlen($old)) ).$r[3];
}

while(($s = fgets($input)) !== false){

    $s = preg_replace_callback('#(s\:)(\d+)(\:\x5C"'.preg_quote($old,'#').')#ms', 'rs', $s);

    $s = str_replace($old, $new, $s);

    fwrite($output, $s);
}

fclose($input);
fclose($output);


$
php -f convert_paths.php

Алгоритм начисления силы и рейтинга

Намедни решил сделать кое какие расчеты, для которых нужны данные о начислениях силы и рейтинга в ЛС.
Открыл исходники и для наглядности построил графики зависимости количества начисляемого рейтинга и силы от силы проголосовавшего.

Вот что получилось:
Собственно по оси Y количество чего-то, которое получит юзер за Ваш голос, а по X количество силы голосующего. Значения каждой функции ограничено снизу и сверху. На графике не все точки, а лишь диапазон от 0 до 550, впрочем этого достаточно, чтобы увидеть перепады в приросте веса голоса, полные ограничения указаны ниже.


min = 0,004
max = 0,5

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

Инструмент для динамического обновления CSS

Для того чтобы увидеть результаты изменений в CSS файлах вашего рабочего проекта, необходимо просто перезагрузить страницу. При этом загружается не только таблицы стилей, но JS, разметка полностью и возможно выполняются запросы к БД. На это, как мне кажется, иногда уходит достаточно много времени, которого в наше прогрессивное время постоянно нехватает.
Мне надоело эта ситуация и, не изобретая велосипед, на широких просторах интернета я нашел для себе решение.
Читать дальше →

Использование консоли для создания каркаса плагина под Windows (XP)

Создаем новый файл с расширением .bat, записываем в него:
@echo off
set /p var="Введите имя плагина: "
C:\WebServers\usr\local\bin\php.exe C:\WebServers\home\su\livestreet\engine\console\ls plugin new "%var%"
Pause
меняем пути на свои и сохраняем в кодировке DOS-866. Теперь не нужно прописывать все пути заново — достаточно ввести только название нового плагина.
Читать дальше →

Скрываем закрытые блоги из общего списка

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

Сейчас общий список выглядит так: localhost/blogs/

Задача убрать закрытый блог из списка.

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

Занимательный ЛС: парсер

Был неприятно удивлен ковырянием на дне парсера ЛС некоторыми особенностями обработки текста.

что же произошло?..