Вот я скачал наконец-то почти последний транк с почти последними обновлениями, поменял дефолтный логотип и фавикон(!). Выложил все в сеть и понеслась… :))
Кто мы? Мы — Новая Музыка, сообщество клубных тусовщиков, любителей электронной музыки, сайт для диджеев и музыкантов…
Во-первых, огромное спасибо Максу Орту за прекрасный движок, понятный и приятный стиль программинга.
Во-вторых, мы не первый день в эфире, сайту Newmusic.ru буквально в прошлый понедельник стукнуло 12 (двенадцать) лет :))) Основная концепция сайта до прошлого понедельника была новостная строка о электронной музыке и клубных событиях + обширный форум на IPB 1.3 (2003 года выпуска, если кто не знает) :))
Кто мы теперь?
1.Мы теперь функциональное сообщенство со всеми фичами LS,
все таки я не убивал систему форума, а полностью доработал LS (практически создал дубль блоговой системы) и теперь у нас отличный форум.
2.В блоги конвертированны сотни топиков из новостной ленты, а в форум более 60000(шестьдесят тысяч) топиков и около 2000000 (двух миллионов) постов к ним. В базу юзеров конвертированны около 3000 пользователей, остальных я удалил нафиг за то, что больше года не появлялись на нюмю.
Конвертация топиков и комментариев в форум не закончена и длится уже 3 дня, а надо еще с конвертировать 70000 топиков и еще 1500000 комментариев.
Т.е. одним словом LS отлично справляется с нагрузкой, а посещают нас от 700 до 1000 уникалов в сутки.
Будут вопросы на тему, как что сделано и как реализовано, с удовольствием отвечу. Да, жду конструктивные замечания и предложения, как без них.
P.S. сайт находится в полностью рабочем режиме, просьба тестироваться в отдельно отведенном форуме http://newmusic.ru/forum/test. Welcome!
P.S.S. Да, самое главное! Я очень хочу поблагодарить за помощь в работе помимо Макса Орта, тут вопросов нет вообще никаких, Кирилла Бенона за душевность и профессионализм, Лору GT за нежность и дружескую поддержку, Darkside за идею выбрать цветовую гамму для дизайна, и скоро поблагодарю Диму Крафта за поиск Сфинкс ;)
P.S.S.S На счет вопросов о хостинге сразу отвечу что «Новая музыка» сидит на http://iqhost.ru, хозяином которого является мой друг, очень ответственный человек и настоящий профессионал своего дела. Как сами видите сервер на нем крутится на ура.
Поговорим за музыку?
158 комментариев
Поздавляю!
Очень юзабельный дизайн! Ссылок много, а ощущение простоты:)
У меня тоже есть один проект, который сейчас на стадии разработки. Думаю, переносить ли базу форума на ls или нет. Если не секрет, тут или отдельным типиком, описать как проходит конвертация, какие косяки могут быть.
конвертация всегда происходит хорошо, если все учел и предусмотрел. у меня просто огромная база (850 мегов), и через консоль у меня все обновляется пипец как долго, может я конечно неоптимальный алгоритм написал, но зато без ошибок :) файлик-конвертер я могу выложить, но он работает только через ssh консоль, и запускается через nohup php update.php &
я даже не рассматриваю конвертацию таких объемов не через консоль :)
На файлик можно посмотреть, только форум на другом движке (можно извратиться и конвертировать его в ipb1.3 и потом в ls :) но думаю лучше написать «нативный» конвектор.
Как проставлял рейтинг, силу, теги? на сколько я помню этого функционала нет в оригинальном ibp1.3
ЗЫ
>полностью доработал LS (практически создал дубль блоговой системы) и теперь у нас отличный форум.
Форум сделал в виде модуля для LS?
скопировал модули, классы, экшены topic -> ftopic, blog -> fblog, comment -> fcomment, создал таблицы ftopic, fblog, fcomment и т.д. все отредактировал, все отлично работает
зачем что-то конвертить через универсальные конвертеры, руками все писат надо ) если сам не сможешь, отдайся программеру.
Ну а глобально, то мои поздравления! :) — как отметила Лора, это фактически первый «Проект» ну ЖУ, кроме этого сайта. все остальное — примеры удачных установок рабочего движка на хостинг/ВПС
в принципе ни чего нового я не придумал, но все равно спасибо :)
я как то и забыл про Хром, ни как до конца с эксплорером не могу доваевать, потом сразу за Хром возьмусь. а, ну еще поиск нужен срочно ;)
а лучше после установки выполнить следующее:
Subscribing to the Dev channel
Download and run the Google Chrome Channel Chooser (http://chromium.googlecode.com/files/chromechannel-1.0.exe).
Click the circle next to Dev.
Click Update to save your choice.
Click Close.
In Google Chrome, click the wrench menu and choose About Google Chrome.
Note: On Windows Vista, updates from the About box require Service Pack 1. With 0.2.149.29 (the current release), on demand updates do not work in Vista SP1 if User Account Control is disabled.
Click Update Now to install the current Dev channel release.
Restart Google Chrome.
Это добавит некоторое количество фич, которых в бете еще нет.
не могу решить для себя, нужно описывать все изменения, которые я внес в дефолтном движке или нет? или так все понятно или на первый взгляд незаметно какие фичи применены?
ок, а то сразу даже я не помню всех мелочей, а их там много на самом деле.
самые заметные изменение это ЧПУ, поддержка русских ников, другая система рейтинга для блогов… так лучше всетаки не буду спешить и отпишусь попунктно :)
Небольшое замечание по конвертору:
set_time_limit(0) — это не панацея от всех бед. В таком случае скрипт не будет закашен самим интерпретатором, однако существует еще масса вещей, которые могут убить процесс до его окончания:
если пхп — модуль апача, то его апач может закасить, точнее разорвать коннект с клиентом по истечению лимита на выдачу респонда на запрос.
если пхп выполняется в FastCGI-окружении, то веб-сервер может, не дождавшись ответа, забить на выполнение и выдать клиенту 500-ую ошибку.
если система распределенная на бекенд-фронтэнд, то все еще хуже — прервать выполнение может как бекенд, так и фронтэнд не дождавшись респонда от бекэнда.
во большинстве конверторов, которые мне попадались, перенос данных происходит по кускам, причем скрипт рекурсивно вызывает себя сам с параметром откуда надо начинать-продолжать перенос.
а, к слову, прерывание процесса по середине в таких случаях хуже чем в начале — всеравно потом легче начать с нуля, особенно если в архитектуре БД развитые связи между таблицами. ЖУ относится к этому случаю :-)
заливали бы вы еще все на ябадабу было бы хорошо.
Не много рекламы ябадаба первый обменник без надоедливой рекламы и без ограничений на размер файла и общий объем, а также скорость скачивание часто до 8 мегабайт в секунду доходит!все бесплатно)
не понимаю о чем речь вообще? а, вы пришли бы к нас чисто музыки покачать? :))) у нас другая политика, мы не против, но и не так чтобы за, если пользователям захочется ссылки повыкладывать на любимую музыку, это их личное дело.
Сайт просто замечательный!
Мне очень понравился! Есть один вопрос:
Есть ли возможность, чтоб автор выложил скин этого сайта?
Просто меня объедененная группа медведей и слонов наступила на все органы исскуства и совершенно не умею дизайнить :(
сайт до позднего вечера перебирается кудато на крутую машину, одному хостеру известно какую, не переживайте :) еще раз всем спасибо за лестные отзывы, я был рад стараться!
Попробовал у себя сделать ЛС при регистрации, что то выдает такое: Fatal error: Uncaught exception 'Exception' with message 'Не найден класс модуля — SendWelcomeMessage' in /...../classes/engine/Engine.class.php:95 Stack trace: #0 /...../classes/engine/Engine.class.php(140): Engine->LoadModule('SendWelcomeMess...', true) #1 /...../classes/engine/Module.class.php(37): Engine->_CallModule('SendWelcomeMess...', Array) #2 [internal function]: Module->__call('SendWelcomeMess...', Array) #3 /...../classes/engine/Engine.class.php(144): eval()'d code(1): Notify->SendWelcomeMessage(Object(UserEntity_User), Object(UserEntity_User)) #4 /...../classes/engine/Engine.class.php(144): eval() #5 /...../classes/engine/Action.class.php(268): Engine->_CallModule('Notify_SendWelc...', Array) #6 [internal function]: Action->__call('Notify_SendWelc...', Array) #7 /… in /...../classes/engine/Engine.class.php on line 95 Что еще нужно сделать? Подскажите плиз.
Юра, выпивать по поводу НОвого года заканчивайте :)) и начинайте немножко изучать PHP. Не найден класс модуля SendWelcomeMessage значит вы както криво добавили функцию SendWelcomeMessag в notify.class.php
есть вопрос :) сколько (примерно) занимала база перед конвертацией? есть похожий по схеме проект, но с большей нагрузкой (11 тыс уникумов). база весит 3GB, движок 1.3.1 с сильными доработками. схема nginx+php/fcgi на одной машине, и mysql на выделенной другой.
интересно что изменилось в техническом плане с нагрузкой — то есть на данный момент, самое узкое место это локи во время поиска. среднее время поиска 12 секунд, соответственно, если заканчиваются нити, все начинает тормозить. тут правда переход на innodb и его преймущества, но все же…
была подобная мысль перейти на LS, однако смущало переучивать дремучих юзеров на новый движок. вы просто гениально решили эту проблему, введя новые теги и оставив привычное дерево форума для подобных людей. это супер изящное решение.
с удовольствием почитаю ваши отчеты, вроде «прошел месяц» :) ну и склоняю голову, я на подобный подвиг никак не могу решиться…
база занимала 850 мег, у меня если честно с нагрузкой пока вообще никаких проблем, такой же по посещаемости форум на этой же машине, который работает на тоже чем то старом, в разы больше грузит машину (по топу видно).
у меня не решен вопрос с memcache, потому жду проблем с кеш файлами, но вообще раза 4 в день по крону удалять кеш и нормально будет.
Огромное спасибо! Сроду бы никогда не подумал что проблема может быть из за того что порт не 8080.
У меня стоял порт по умолчанию 8080. В итоге, на запрос Ajax — nginx отдавал 502 Bad Gate.
кстати есть еще один социальный момент — на таком нагруженном проекте у меня модераторы захлебываются от чистки матов, коммерческой рекламы и прочих абьюзов. у вас модераторы не офигели в новом интерфейсе следить за евентами? :)
мат на форуме у нас официально разрешен, боремся только с рекламой и черезчур хамством. я доделываю систему банов, ну а как, волков боятся в лес не ходить :)
Вот ещё что хотел спросить… с ну очень длинными ветками были какие-то проблемы? А то вот откопал там у вас вот такое (пруфлинк)у меня все грузится осбенно большие топики с дохуища коментов минут по 10 — 15 и весь комп начинает тормазить, неудобно((((И если есть, то как думаете решать?
ну ты прикинь 2500 камментов без древовидности?))) там как в жж. Выводится 50 камментов первого уровня. Если тебе интересно — нажимаешь на «13 Replies» и динамически открываются камменты второго уровня.
По-моему оч. удобно:)
Плюс все фичи этого топика:)
Скрытие камментов хабр слизал, а остальные фичи нет:)
Кирилл, если ты такую фичу на ajax сделаешь, я буду только счастлив и людям, здесь присутствующим очень пригодится. Потому что грузить топик с тысячей комментов одной страницей это жопипец…
а, вы там чудачка процетировали с фриспича, понятно. я вот и хочу выяснить, включил я gzip на страницах или нет. вроде шустрее стало, а так у меня, например, на EeePC с атомом 1.6 (тормоз еще тот) воооще проблем нет с большими топиками… у чудачка видать офисная машина второй или даже первый пентиум, но проблема есть конечно, чего тут отрицать…
нет, у нас была раньше глосование, я посчитал более логичным начать жизнь заново на проекте и конвертировал карму в силу, а рейтинг пусть хорошими топиками набирают. а публикации в форуме еще не выведены в меню, да.
нет тут просто интересный баг вылез. Если я пишу например (это картинка) т.е. пытаюсь выделить жирным шрифтом цифру 0, то при публикации эта конструкция теряется. вот, например (). Если нолей больше то все работает нормально (00)
Covax
в движке форума IPB довольно богатые возможности для модерирования.
В LiveStreet таких возможностей на порядок меньше. Как выходишь из этого положения дел?
у меня для модератора есть все необходимые ему функции: удаление топиков/комментариев, временный бан в конкретном блоге/форуме, никакая премодерация мне даже в голову не приходила
Отличный сайт и по дизайну и по функционалу, мне есть к чему стремиться, спасибо за отличный пример. Насчет превьюшек к топику можно узнать как сделано? Сомневаюсь что простой заливкой имейджа 150*150. В стандартной версии LS есть загрузка аватара для блога, но его видно, когда нажимаешь непосредственно на ссылку блога, а на главной странице только названия блогов в виде ссылок, немного непонятно зачем аватар для блога, если его не видно на главной. Вопрос такой: как реализовать вывод аватара блога перед названием?
как раз аватар для блога нужен только в профиле блога и в списке топиков блога, вообще аватары-превьющки созданы для красоты, яркости, визуализации, никакого иного предназначения у них нет.
чтобы добавить превьюшку в топик, нужно:
1. создать в таблице prefix_topic поле topic_avatar_type
2. в Topic.entity.php добавить
public function getAvatarType() {
return $this->_aData['topic_avatar_type'];
}
public function setAvatarType() {
return $this->_aData['topic_avatar_type'];
}
После этого все заработало, спасибо Covax. Осталась маленькая проблема, к обычным топикам превью загружается и отображается нормально, но если создавать топик ссылку или опрос — то снова картинки не грузятся, отображается пустое место под картинку, снова обрезается расширение, адрес картинки выглядит так cmslive.ru/uploads/images/topics/18. Что то еще нужно сделать. Помогите плиз кто знает.
Точно также, как мы отредактировали ActionTopic.class.php, нужно отредактировать ActionQuestion и ActionLink, а также темплейты add.tpl в /skin/habra/actions ActionQuestion и ActionLink
В ActionTopic.class.php в protected function SubmitAdd() добавляем после
/**
* Запрет на комментарии к топику
*/
$oTopic->setForbidComment(0);
if (getRequest('topic_forbid_comment')) {
$oTopic->setForbidComment(1);
}
вставляем:
// Опредеяем и записываем тип аватара топика
if (is_uploaded_file($_FILES['avatar']['tmp_name'])) {
$sFileTmp=$_FILES['avatar']['tmp_name'];
if ($sFileAvatar=func_img_resize($sFileTmp,DIR_UPLOADS_IMAGES.'/topics',"temp_150x150",3000,3000,150,150)) {
$aFileInfo=pathinfo($sFileAvatar);
$oTopic->setAvatarType($aFileInfo['extension']);
} else {
$this->Message_AddError('Не удалось записать превьюшку к топику','Ошибка');
return false;
}
} else {
$this->Message_AddError('Вы не указали для загрузки картинку превьюшки к топику, без этого мы не можем разместить топик!','Ошибка');
return false;
}
и в этой же функции перед func_header_location вставляем
// Записываем превьюшку к топику
if (!$sFileAvatar=func_img_resize($sFileTmp,DIR_UPLOADS_IMAGES.'/topics',"{$oTopic->getId()}",3000,3000,150,150)) {
$this->Message_AddError('Не удалось записать превьюшку к топику','Ошибка');
return false;
}
в skin/habra/actions/ActionTopic/add.tpl после ввода заголовка, да в принципе где хотите, добавляем:
<p>
<span class="form">Превьюшка к топику 150x150:</span><br /> <input type="file" name="avatar" style="width: 70%" /><br />
<span class="form_note">Превьюшка это та картинка, которая станет лицом топика на главной странице.</span><br />
</p>
ну вроде все, должно работать
а, вывод первьюшек теперь, в списке топиков (topic_list.tpl):
Что то появляется такое: Notice: Undefined index: avatar in /путь/cmslive.ru/classes/actions/ActionTopic.class.php on line 413
И красным выскакивает:
Ошибка: Вы не указали для загрузки картинку превьюшки к топику, без этого мы не можем разместить топик!
Форма для загрузки превьюшек появляется, но не загружает.
Еще насчет пункта 2 — в Topic.entity.php добавить… наверное в Topic.entity.class.php
Народ, кто нибудь пробовал реализовать? Напишите пожалуйста какого типа должно быть создаваемое поле topic_avatar_type, я вроде почти все перепробовал:(
В майадмине слева выбираешь таблицу prefix_topic, потом сверху нажми «Структура», в самом низу будет строка «Добавить» 1 поле(я), кнопку ОК и появится меню выбора название поля, тип, значение по умолчанию и т.д.
Установил также как и blog_avatar_type по аналогии тип VARCHAR (5) по умолчанию NULL. Не помогло, снова та же ошибка Notice: Undefined index: avatar in /путь/cmslive.ru/classes/actions/ActionTopic.class.php on line 413
Ошибка: Вы не указали для загрузки картинку превьюшки к топику, без этого мы не можем разместить топик! Где же я накосячил? Может еще что внести надо?
Люди, ошибка возникает в этой строке if (is_uploaded_file($_FILES['avatar']['tmp_name']))
Пишет Undefined index: avatar в… строке выше. Covax, поясни пожалуйста суть этой ошибки. Может еще где то прописать что то нужно. Ну пишет не определенный индекс… где определить то?
Не работает почему-то, открывается пустая главная а дальше — 404. например, тут newmusic.ru/blog/
Отдельно заинтересовала двенадцатилетняя история сайта, ведь в 1996 году количество доменов в рушной зоне составляло жалкие сотни, не помню сколько точно. Хуиз https://www.nic.ru/whois/?query=newmusic.ru нам говорит, что домену вовсе не 12, а всего четыре года. Странные дела.
Всё-таки ТС прав. Домену действительно 12 лет. Просто он был в 2004-м передан на обслуживании из РосНИИРОРса в Ру-центр, оттуда и путаница в руцентровком хуизе. Просмотр информации на сайте www.ripn.net:8080/nic/whois/whois.cgi всё расставляет по своим местам.
а у меня база одна, а таблицы разные. это чисто для удобства (моего) сделано. вы поймите, у меня всю жизнь на сайте был форум и убрать его — лишить пользователей сайта того, к чему они привыкли. блоги у меня это возможность разместить статью любому зарегистрированному пользователю. всетаки топик в форуме еще найти надо, а к любой статье блогов можно парой кликов мышью добраться…
будете долго смеяться, но я пытал программеров, чтоб рассказали как такой сайт сделать )))) forum.searchengines.ru/showthread.php?t=329416
я давно знаю про Ваш сайт, где-то с 2000 года, недавно зашел на него, увидел обновления, понравилась функциональность, решил разузнать про этот движок по больше чтоб для себя сайт сделать, подобный )))))))))))
Плеер же в VK работает через HTML 5 History?
То есть это работает только для браузеров его поддерживающих. Откройте VK через ie 7-8 и трек будет прерываться при переходе.
Единственный кроссбраузерный вариант для музыки, это делать абсолютно всё через AJAX.
Если на вашем сайте выкладывается музыка исключительно по согласию авторов, то отлично. Если очередное пиратство (допустим кто то загружает чужую музыку на ваш сайт) то я это не одобряю, очередное наглое воровство.
158 комментариев
Очень юзабельный дизайн! Ссылок много, а ощущение простоты:)
Отличный пример для других:)
У меня в FF3 такое:
У меня тоже есть один проект, который сейчас на стадии разработки. Думаю, переносить ли базу форума на ls или нет. Если не секрет, тут или отдельным типиком, описать как проходит конвертация, какие косяки могут быть.
На файлик можно посмотреть, только форум на другом движке (можно извратиться и конвертировать его в ipb1.3 и потом в ls :) но думаю лучше написать «нативный» конвектор.
Как проставлял рейтинг, силу, теги? на сколько я помню этого функционала нет в оригинальном ibp1.3
ЗЫ
>полностью доработал LS (практически создал дубль блоговой системы) и теперь у нас отличный форум.
Форум сделал в виде модуля для LS?
зачем что-то конвертить через универсальные конвертеры, руками все писат надо ) если сам не сможешь, отдайся программеру.
Кто не может, берет готовые конвекторы, кто может сам пишет.
Я в шутку написал, как можно сделать))
это ничего не было, все по нулям сейчас
качайте на здоровье, для хороших людей ничего не жалко ;)
Ну а глобально, то мои поздравления! :) — как отметила Лора, это фактически первый «Проект» ну ЖУ, кроме этого сайта. все остальное — примеры удачных установок рабочего движка на хостинг/ВПС
я как то и забыл про Хром, ни как до конца с эксплорером не могу доваевать, потом сразу за Хром возьмусь. а, ну еще поиск нужен срочно ;)
Subscribing to the Dev channel
Download and run the Google Chrome Channel Chooser (http://chromium.googlecode.com/files/chromechannel-1.0.exe).
Click the circle next to Dev.
Click Update to save your choice.
Click Close.
In Google Chrome, click the wrench menu and choose About Google Chrome.
Note: On Windows Vista, updates from the About box require Service Pack 1. With 0.2.149.29 (the current release), on demand updates do not work in Vista SP1 if User Account Control is disabled.
Click Update Now to install the current Dev channel release.
Restart Google Chrome.
Это добавит некоторое количество фич, которых в бете еще нет.
Click Update Now to install the current Dev channel release.
где кликать? у меня пишет что установлена самая новая версия(
буржуйский то простейший ;)
лучше оформить отдельной статьей.
самые заметные изменение это ЧПУ, поддержка русских ников, другая система рейтинга для блогов… так лучше всетаки не буду спешить и отпишусь попунктно :)
Молодец!
set_time_limit(0) — это не панацея от всех бед. В таком случае скрипт не будет закашен самим интерпретатором, однако существует еще масса вещей, которые могут убить процесс до его окончания:
если пхп — модуль апача, то его апач может закасить, точнее разорвать коннект с клиентом по истечению лимита на выдачу респонда на запрос.
если пхп выполняется в FastCGI-окружении, то веб-сервер может, не дождавшись ответа, забить на выполнение и выдать клиенту 500-ую ошибку.
если система распределенная на бекенд-фронтэнд, то все еще хуже — прервать выполнение может как бекенд, так и фронтэнд не дождавшись респонда от бекэнда.
во большинстве конверторов, которые мне попадались, перенос данных происходит по кускам, причем скрипт рекурсивно вызывает себя сам с параметром откуда надо начинать-продолжать перенос.
Не много рекламы ябадаба первый обменник без надоедливой рекламы и без ограничений на размер файла и общий объем, а также скорость скачивание часто до 8 мегабайт в секунду доходит! все бесплатно)
ну вот от рапиды с депозитом стошнило(
Мне очень понравился! Есть один вопрос:
Есть ли возможность, чтоб автор выложил скин этого сайта?
Просто меня объедененная группа медведей и слонов наступила на все органы исскуства и совершенно не умею дизайнить :(
Это Бенон и Лора сделали:
добавили в Actionregistration.class.php
после действия, где создается персональный блог (строка 172 помоему)
/**
* Оправляем приватку!
*/
$oUserAdmin = $this->User_GetUserById(1);
$this->Notify_SendWelcomeMessage($oUser,$oUserAdmin);
добавили в notify.class.php в самый низ функцию
public function SendWelcomeMessage(UserEntity_User $oUserTo,UserEntity_User $oUserFrom) {
$this->oViewerLocal->Assign('oUserTo',$oUserTo);
$this->oViewerLocal->Assign('oUserFrom',$oUserFrom);
$sBody=$this->oViewerLocal->Fetch("notify.pm_reg.tpl");
$oTalk=new TalkEntity_Talk();
$oTalk->setUserId($oUserFrom->getId());
$oTalk->setTitle("Добро пожаловать!");
$oTalk->setText($sBody);
$oTalk->setDate(date("Y-m-d H:i:s"));
$oTalk->setUserIp(func_getIp());
if ($oTalk=$this->Talk_AddTalk($oTalk)) {
$oTalkUser=new TalkEntity_TalkUser();
$oTalkUser->setTalkId($oTalk->getId());
$oTalkUser->setUserId($oUserTo->getId());
$oTalkUser->setDateLast(null);
$this->Talk_AddTalkUser($oTalkUser);
}
}
ну и создали соответсвующий notify.pm_reg.tpl в /skin/skinname/
Попробовал у себя сделать ЛС при регистрации, что то выдает такое: Fatal error: Uncaught exception 'Exception' with message 'Не найден класс модуля — SendWelcomeMessage' in /...../classes/engine/Engine.class.php:95 Stack trace: #0 /...../classes/engine/Engine.class.php(140): Engine->LoadModule('SendWelcomeMess...', true) #1 /...../classes/engine/Module.class.php(37): Engine->_CallModule('SendWelcomeMess...', Array) #2 [internal function]: Module->__call('SendWelcomeMess...', Array) #3 /...../classes/engine/Engine.class.php(144): eval()'d code(1): Notify->SendWelcomeMessage(Object(UserEntity_User), Object(UserEntity_User)) #4 /...../classes/engine/Engine.class.php(144): eval() #5 /...../classes/engine/Action.class.php(268): Engine->_CallModule('Notify_SendWelc...', Array) #6 [internal function]: Action->__call('Notify_SendWelc...', Array) #7 /… in /...../classes/engine/Engine.class.php on line 95 Что еще нужно сделать? Подскажите плиз.
интересно что изменилось в техническом плане с нагрузкой — то есть на данный момент, самое узкое место это локи во время поиска. среднее время поиска 12 секунд, соответственно, если заканчиваются нити, все начинает тормозить. тут правда переход на innodb и его преймущества, но все же…
была подобная мысль перейти на LS, однако смущало переучивать дремучих юзеров на новый движок. вы просто гениально решили эту проблему, введя новые теги и оставив привычное дерево форума для подобных людей. это супер изящное решение.
с удовольствием почитаю ваши отчеты, вроде «прошел месяц» :) ну и склоняю голову, я на подобный подвиг никак не могу решиться…
у меня не решен вопрос с memcache, потому жду проблем с кеш файлами, но вообще раза 4 в день по крону удалять кеш и нормально будет.
livestreet.ru так работает
У меня стоял порт по умолчанию 8080. В итоге, на запрос Ajax — nginx отдавал 502 Bad Gate.
Server: nginx/0.6.31
Вот ещё что хотел спросить… с ну очень длинными ветками были какие-то проблемы? А то вот откопал там у вас вот такое (
По-моему оч. удобно:)
Плюс все фичи
Скрытие камментов хабр слизал, а остальные фичи нет:)
в движке форума IPB довольно богатые возможности для модерирования.
В LiveStreet таких возможностей на порядок меньше. Как выходишь из этого положения дел?
удаление топиков, камментов, юзеров?)
Нуда и удаление тоже )
Удаление топиков и камментов есть. Бан ковакс собирался сделать сам.
По моему стоит убрать или найти замену стрелочкам (особенно справа): ↓ →
Кстати, у меня не совпадаеют цвета фонов логотипа и страницы, это так надо?
Вот ещё, раз вывод на главную обрезается, почему не сделать чтобы последние два-три выводимых слова были ссылкой к посту?
как раз аватар для блога нужен только в профиле блога и в списке топиков блога, вообще аватары-превьющки созданы для красоты, яркости, визуализации, никакого иного предназначения у них нет.
чтобы добавить превьюшку в топик, нужно:
1. создать в таблице prefix_topic поле topic_avatar_type
2. в Topic.entity.php добавить
public function getAvatarType() {
return $this->_aData['topic_avatar_type'];
}
public function setAvatarType() {
return $this->_aData['topic_avatar_type'];
}
ой, прошу прощения
public function setAvatarType($data) {
$this->_aData['topic_avatar_type']=$data;
}
БЕЗ RETURN
В ActionTopic.class.php в protected function SubmitAdd() добавляем после
/**
* Запрет на комментарии к топику
*/
$oTopic->setForbidComment(0);
if (getRequest('topic_forbid_comment')) {
$oTopic->setForbidComment(1);
}
вставляем:
// Опредеяем и записываем тип аватара топика
if (is_uploaded_file($_FILES['avatar']['tmp_name'])) {
$sFileTmp=$_FILES['avatar']['tmp_name'];
if ($sFileAvatar=func_img_resize($sFileTmp,DIR_UPLOADS_IMAGES.'/topics',"temp_150x150",3000,3000,150,150)) {
$aFileInfo=pathinfo($sFileAvatar);
$oTopic->setAvatarType($aFileInfo['extension']);
} else {
$this->Message_AddError('Не удалось записать превьюшку к топику','Ошибка');
return false;
}
} else {
$this->Message_AddError('Вы не указали для загрузки картинку превьюшки к топику, без этого мы не можем разместить топик!','Ошибка');
return false;
}
и в этой же функции перед func_header_location вставляем
// Записываем превьюшку к топику
if (!$sFileAvatar=func_img_resize($sFileTmp,DIR_UPLOADS_IMAGES.'/topics',"{$oTopic->getId()}",3000,3000,150,150)) {
$this->Message_AddError('Не удалось записать превьюшку к топику','Ошибка');
return false;
}
func_header_location
опять в ActionTopic.class.php в protected function SubmitEdit добавляем после «Теперь можно смело редактировать топик»
/**
* Теперь можно смело редактировать топик
*/
$oTopic->setBlogId($oBlog->getId());
$oTopic->setTitle(getRequest('topic_title'));
//Апдейтм превьюшку к топику
if (is_uploaded_file($_FILES['avatar']['tmp_name'])) {
$sFileTmp=$_FILES['avatar']['tmp_name'];
if ($sFileAvatar=func_img_resize($sFileTmp,DIR_UPLOADS_IMAGES.'/topics',"{$oTopic->getId()}",3000,3000,150,150)) {
$aFileInfo=pathinfo($sFileAvatar);
$oTopic->setAvatarType($aFileInfo['extension']);
} else {
$this->Message_AddError('Не удалось проапдейтить превьюшку к топику','Ошибка');
return false;
}
}
в Topic.mapper.class.php функция AddTopic должна выглядить так:
public function AddTopic(TopicEntity_Topic $oTopic) {
$sql = "INSERT INTO ".DB_TABLE_TOPIC."
(blog_id,
user_id,
topic_type,
topic_title,
topic_tags,
topic_date_add,
topic_user_ip,
topic_publish,
topic_publish_index,
topic_cut_text,
topic_forbid_comment,
topic_avatar_type
)
VALUES(?d, ?d, ?, ?, ?, ?, ?, ?d, ?d, ?, ?, ?)
";
if ($iId=$this->oDb->query($sql,$oTopic->getBlogId(),$oTopic->getUserId(),$oTopic->getType(),$oTopic->getTitle(),
$oTopic->getTags(),$oTopic->getDateAdd(),$oTopic->getUserIp(),$oTopic->getPublish(),$oTopic->getPublishIndex(),$oTopic->getCutText(),$oTopic->getForbidComment(),$oTopic->getAvatarType()))
{
$oTopic->setId($iId);
$this->AddTopicContent($oTopic);
return $iId;
}
return false;
}
там же функция UpdateTopic должна выглядить так
public function UpdateTopic(TopicEntity_Topic $oTopic) {
$sql = "UPDATE ".DB_TABLE_TOPIC."
SET
blog_id= ?d,
topic_title= ?,
topic_tags= ?,
topic_date_edit = ?,
topic_user_ip= ?,
topic_publish=? ,
topic_publish_index= ?,
topic_rating= ?f,
topic_count_vote= ?d,
topic_count_read= ?d,
topic_count_comment= ?d,
topic_cut_text =? ,
topic_forbid_comment = ?,
topic_avatar_type =?
WHERE
topic_id = ?d
";
if ($this->oDb->query($sql,$oTopic->getBlogId(),$oTopic->getTitle(),$oTopic->getTags(),$oTopic->getDateEdit(),$oTopic->getUserIp(),$oTopic->getPublish(),$oTopic->getPublishIndex(),$oTopic->getRating(),$oTopic->getCountVote(),$oTopic->getCountRead(),$oTopic->getCountComment(),$oTopic->getCutText(),$oTopic->getForbidComment(),$oTopic->getAvatarType(),$oTopic->getId())) {
$this->UpdateTopicContent($oTopic);
return true;
}
return false;
}
в skin/habra/actions/ActionTopic/add.tpl после ввода заголовка, да в принципе где хотите, добавляем:
<p>
<span class="form">Превьюшка к топику 150x150:</span><br /> <input type="file" name="avatar" style="width: 70%" /><br />
<span class="form_note">Превьюшка это та картинка, которая станет лицом топика на главной странице.</span><br />
</p>
ну вроде все, должно работать
а, вывод первьюшек теперь, в списке топиков (topic_list.tpl):
<img src="{$DIR_UPLOADS_IMAGES}/topics/{$oTopic->getId()}.{$oTopic->getAvatarType()}" width="150" height="150">
И красным выскакивает:
Ошибка: Вы не указали для загрузки картинку превьюшки к топику, без этого мы не можем разместить топик!
Форма для загрузки превьюшек появляется, но не загружает.
Еще насчет пункта 2 — в Topic.entity.php добавить… наверное в Topic.entity.class.php
что нужно сделать в майадмине?
Установил также как и blog_avatar_type по аналогии тип VARCHAR (5) по умолчанию NULL. Не помогло, снова та же ошибка Notice: Undefined index: avatar in /путь/cmslive.ru/classes/actions/ActionTopic.class.php on line 413
Ошибка: Вы не указали для загрузки картинку превьюшки к топику, без этого мы не можем разместить топик! Где же я накосячил? Может еще что внести надо?
Люди, ошибка возникает в этой строке if (is_uploaded_file($_FILES['avatar']['tmp_name']))
Пишет Undefined index: avatar в… строке выше. Covax, поясни пожалуйста суть этой ошибки. Может еще где то прописать что то нужно. Ну пишет не определенный индекс… где определить то?
Отдельно заинтересовала двенадцатилетняя история сайта, ведь в 1996 году количество доменов в рушной зоне составляло жалкие сотни, не помню сколько точно. Хуиз https://www.nic.ru/whois/?query=newmusic.ru нам говорит, что домену вовсе не 12, а всего четыре года. Странные дела.
А сайтец до сих пор не работает :-(
как это у вас сайт не работает? все у всех работает
`irby кот… это же классно. так совукупить форум и блог… 5+
ник тот же.
я давно знаю про Ваш сайт, где-то с 2000 года, недавно зашел на него, увидел обновления, понравилась функциональность, решил разузнать про этот движок по больше чтоб для себя сайт сделать, подобный )))))))))))
пс: сайт действительно хорошо переделали!!!
То есть это работает только для браузеров его поддерживающих. Откройте VK через ie 7-8 и трек будет прерываться при переходе.
Единственный кроссбраузерный вариант для музыки, это делать абсолютно всё через AJAX.