Поговорим за музыку?

Вот я скачал наконец-то почти последний транк с почти последними обновлениями, поменял дефолтный логотип и фавикон(!). Выложил все в сеть и понеслась… :))
Кто мы? Мы — Новая Музыка, сообщество клубных тусовщиков, любителей электронной музыки, сайт для диджеев и музыкантов…

Во-первых, огромное спасибо Максу Орту за прекрасный движок, понятный и приятный стиль программинга.

Во-вторых, мы не первый день в эфире, сайту 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 комментариев

avatar
Поздавляю!
Очень юзабельный дизайн! Ссылок много, а ощущение простоты:)

Отличный пример для других:)
avatar
Спасибо :) Раздел «События» а по олдскульному «Афиша» заработает сегодня-завтра, так что сильно не пинайте ;)
avatar
ура ура ура!!! Первый действительно грамотно проработаный проект!!! Успехов!
avatar
+1
avatar
Все классно. Удачи!

У меня в FF3 такое:
  • skif
  • +1
avatar
исправлено, спасибо!
avatar
Мне нравится, молодцы. Единственное теги можно было бы как-то обыграть.
avatar
спасибо, по поводу тегов: классика рулит :)
avatar
Молодец Covax!

У меня тоже есть один проект, который сейчас на стадии разработки. Думаю, переносить ли базу форума на ls или нет. Если не секрет, тут или отдельным типиком, описать как проходит конвертация, какие косяки могут быть.
  • tau
  • 0
avatar
забыл написать — «можешь» :)
avatar
конвертация всегда происходит хорошо, если все учел и предусмотрел. у меня просто огромная база (850 мегов), и через консоль у меня все обновляется пипец как долго, может я конечно неоптимальный алгоритм написал, но зато без ошибок :) файлик-конвертер я могу выложить, но он работает только через ssh консоль, и запускается через nohup php update.php &
avatar
я даже не рассматриваю конвертацию таких объемов не через консоль :)
На файлик можно посмотреть, только форум на другом движке (можно извратиться и конвертировать его в ipb1.3 и потом в ls :) но думаю лучше написать «нативный» конвектор.

Как проставлял рейтинг, силу, теги? на сколько я помню этого функционала нет в оригинальном ibp1.3

ЗЫ
>полностью доработал LS (практически создал дубль блоговой системы) и теперь у нас отличный форум.
Форум сделал в виде модуля для LS?
avatar
скопировал модули, классы, экшены topic -> ftopic, blog -> fblog, comment -> fcomment, создал таблицы ftopic, fblog, fcomment и т.д. все отредактировал, все отлично работает

зачем что-то конвертить через универсальные конвертеры, руками все писат надо ) если сам не сможешь, отдайся программеру.
avatar
Каждый решает сам как ему сделать:)
Кто не может, берет готовые конвекторы, кто может сам пишет.
Я в шутку написал, как можно сделать))
avatar
Как проставлял рейтинг, силу, теги? на сколько я помню этого функционала нет в оригинальном ibp1.3
это ничего не было, все по нулям сейчас
avatar
narod.ru/disk/4275175000/from_ipb_to_ls.zip.html
качайте на здоровье, для хороших людей ничего не жалко ;)
avatar
спасибо, поглядим :)
avatar
Отличный пример! Думаю как полностью разберусь с системой тоже сделаю качественно :)
avatar
спасибо :)
avatar
+1
avatar
В Хроме на странице регистрации верстка сыпится.

Ну а глобально, то мои поздравления! :) — как отметила Лора, это фактически первый «Проект» ну ЖУ, кроме этого сайта. все остальное — примеры удачных установок рабочего движка на хостинг/ВПС
avatar
дизайн, действительно, очень симпатичный, особенно вывод количества баллов и комментариев у топика. оригинально.
avatar
в принципе ни чего нового я не придумал, но все равно спасибо :)
я как то и забыл про Хром, ни как до конца с эксплорером не могу доваевать, потом сразу за Хром возьмусь. а, ну еще поиск нужен срочно ;)
avatar
а поиск давно написан и выложен ;)
avatar
а про хром забывать низя — там где хром — там и маковский сафари и все остальное на вебките.
avatar
где хром скачать?
avatar
avatar
а лучше после установки выполнить следующее:
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.

Это добавит некоторое количество фич, которых в бете еще нет.
avatar
и где
Click Update Now to install the current Dev channel release.
где кликать? у меня пишет что установлена самая новая версия(
avatar
перезапути хром. он иногда не сразу видит новую версию, т.к. служба обновлений работет в фоновом режиме и проверяет апдейты периодически
avatar
а у меня всё на русском, так и не поняла где это (
avatar
короче после смены ветки на Dev в проге, нажми в меню «Шестеренка» (правая из двух кнопок, а там раздел «О браузере Google Chrome» :)

буржуйский то простейший ;)
avatar
я в курсе, осталось только поставить и настроить…
avatar
не могу решить для себя, нужно описывать все изменения, которые я внес в дефолтном движке или нет? или так все понятно или на первый взгляд незаметно какие фичи применены?
avatar
лучше чанжлог всетаки составить :)
avatar
на глаз можно увидеть не все:)
лучше оформить отдельной статьей.
avatar
ок, а то сразу даже я не помню всех мелочей, а их там много на самом деле.

самые заметные изменение это ЧПУ, поддержка русских ников, другая система рейтинга для блогов… так лучше всетаки не буду спешить и отпишусь попунктно :)
avatar
согласен с мнением, что это один из первых достойных проектов на LS.
Молодец!
  • ort
  • +1
avatar
это тебе спасибо! :)
avatar
avatar
а сейчас как?
avatar
Небольшое замечание по конвертору:
set_time_limit(0) — это не панацея от всех бед. В таком случае скрипт не будет закашен самим интерпретатором, однако существует еще масса вещей, которые могут убить процесс до его окончания:
если пхп — модуль апача, то его апач может закасить, точнее разорвать коннект с клиентом по истечению лимита на выдачу респонда на запрос.
если пхп выполняется в FastCGI-окружении, то веб-сервер может, не дождавшись ответа, забить на выполнение и выдать клиенту 500-ую ошибку.
если система распределенная на бекенд-фронтэнд, то все еще хуже — прервать выполнение может как бекенд, так и фронтэнд не дождавшись респонда от бекэнда.

во большинстве конверторов, которые мне попадались, перенос данных происходит по кускам, причем скрипт рекурсивно вызывает себя сам с параметром откуда надо начинать-продолжать перенос.
avatar
а, к слову, прерывание процесса по середине в таких случаях хуже чем в начале — всеравно потом легче начать с нуля, особенно если в архитектуре БД развитые связи между таблицами. ЖУ относится к этому случаю :-)
avatar
насколько я понимаю, для его запуска не требуется веб сервер, напрямую через кли пхп
avatar
если так, то все, описанное выше про веб-сервера, к случаю не относится.
avatar
этот скриптик через консоль ssh запускается, я просто не стал лишнее удалять, есть не просит и ладно :)
avatar
мелочь конечно, но в окошке авторизации в слове «Представтесь» нужен мягкий знак
avatar
заливали бы вы еще все на ябадабу было бы хорошо.
Не много рекламы ябадаба первый обменник без надоедливой рекламы и без ограничений на размер файла и общий объем, а также скорость скачивание часто до 8 мегабайт в секунду доходит! все бесплатно)
avatar
да еще закачака по ftp)
avatar
а дизайн супер!
ну вот от рапиды с депозитом стошнило(
avatar
не понимаю о чем речь вообще? а, вы пришли бы к нас чисто музыки покачать? :))) у нас другая политика, мы не против, но и не так чтобы за, если пользователям захочется ссылки повыкладывать на любимую музыку, это их личное дело.
avatar
Сайт просто замечательный!
Мне очень понравился! Есть один вопрос:
Есть ли возможность, чтоб автор выложил скин этого сайта?
Просто меня объедененная группа медведей и слонов наступила на все органы исскуства и совершенно не умею дизайнить :(
avatar
нет конечно, извините, я не хочу видеть клоны своего сайта :) я думаю толпы профдизайнеров оторвут ваш заказ с руками и ногами, кризис же на дворе.
avatar
Хорошо, все равно спасибо за дизайн, он меня навел на некоторые мысли для своего сайта.
avatar
А где код приглашения взять?
avatar
ой, я случайно инвайты включил :)) регистрация свободная
avatar
Отличный дизайн, только вот форум совсем непревычный. Надо с этим что-то делать :)
avatar
Где редактирование комментариев?:) Непривычный
avatar
чем непривычный форум то? :)) и где у нас на лайвстрите есть редактирование комментариев?
avatar
сайт до позднего вечера перебирается кудато на крутую машину, одному хостеру известно какую, не переживайте :) еще раз всем спасибо за лестные отзывы, я был рад стараться!
avatar
А как Ты организовал что бы юзеру при регистрации падало ЛС по умолчанию?
avatar

Это Бенон и Лора сделали:
добавили в 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/
avatar

Попробовал у себя сделать ЛС при регистрации, что то выдает такое: 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 Что еще нужно сделать? Подскажите плиз.
avatar
Люди, помогите пожалуйста кто смог у себя сделать.
avatar
Юра, выпивать по поводу НОвого года заканчивайте :)) и начинайте немножко изучать PHP. Не найден класс модуля SendWelcomeMessage значит вы както криво добавили функцию SendWelcomeMessag в notify.class.php
avatar
Спасибо Сереж, действительно допился:) в фигурных скобках накосячил, разобрался. С наступающим Рождеством!
avatar
есть вопрос :) сколько (примерно) занимала база перед конвертацией? есть похожий по схеме проект, но с большей нагрузкой (11 тыс уникумов). база весит 3GB, движок 1.3.1 с сильными доработками. схема nginx+php/fcgi на одной машине, и mysql на выделенной другой.

интересно что изменилось в техническом плане с нагрузкой — то есть на данный момент, самое узкое место это локи во время поиска. среднее время поиска 12 секунд, соответственно, если заканчиваются нити, все начинает тормозить. тут правда переход на innodb и его преймущества, но все же…

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

с удовольствием почитаю ваши отчеты, вроде «прошел месяц» :) ну и склоняю голову, я на подобный подвиг никак не могу решиться…
  • ter
  • 0
avatar
база занимала 850 мег, у меня если честно с нагрузкой пока вообще никаких проблем, такой же по посещаемости форум на этой же машине, который работает на тоже чем то старом, в разы больше грузит машину (по топу видно).
у меня не решен вопрос с memcache, потому жду проблем с кеш файлами, но вообще раза 4 в день по крону удалять кеш и нормально будет.
avatar
а LS как работает, если не секрет? apache22+php/apxs или nginx+php/fastcgi?
avatar
можно вот так: nginx -> apache2 + php
livestreet.ru так работает
avatar
а смысл nginx в данном случае? кэшировать то особо нечего
avatar
через него статика отдаётся(картинки, цсс, скрипты)
avatar
и, что мб еще более значительно, он ждет пока выполнится пхп-скрипт в апаче не поедая память, как это делают некоторые :))))
avatar
да, отсекает медленных клиентов
avatar
А конфиг не покажешь, а то тоже делаю такую схему: блоки с комментариями и блогами — отваливаются.
avatar
Разобрался. Не работали Ajax хендлеры из-за php session id. Пустил nginx на 80, а апач на 8080 и работает как нужно.
avatar
Огромное спасибо! Сроду бы никогда не подумал что проблема может быть из за того что порт не 8080.
У меня стоял порт по умолчанию 8080. В итоге, на запрос Ajax — nginx отдавал 502 Bad Gate.
avatar
судя по ответу сервера там HTTP/1.1 200 OK
Server: nginx/0.6.31
avatar
avatar
кстати есть еще один социальный момент — на таком нагруженном проекте у меня модераторы захлебываются от чистки матов, коммерческой рекламы и прочих абьюзов. у вас модераторы не офигели в новом интерфейсе следить за евентами? :)
  • ter
  • 0
avatar
мат на форуме у нас официально разрешен, боремся только с рекламой и черезчур хамством. я доделываю систему банов, ну а как, волков боятся в лес не ходить :)
avatar
ну тут вопрос просто принципиальный — модераторам удобно работать? они не плюются?
avatar
а чего может не хватать модераторам? массового сокращения тем?
avatar
теперь вопрос у меня к вам, кто может толком ответить, отдает сайт у меня контент в архиве, gzip, или нет?
avatar

Вот ещё что хотел спросить… с ну очень длинными ветками были какие-то проблемы? А то вот откопал там у вас вот такое (пруфлинк)у меня все грузится осбенно большие топики с дохуища коментов минут по 10 — 15 и весь комп начинает тормазить, неудобно((((И если есть, то как думаете решать?
  • skif
  • +1
avatar
выход тут один делать постраничность, тогда встает проблема древовидности… замкнутый круг… а как вы хабр читаете? тоже мучаетесь?
avatar
а как digg.com живет?:)
avatar
собственно так (2,466 Comments)
avatar
там древовидности нет, если я отказался от древовидности то сделал бы постраничность через сутки :)
avatar
ну ты прикинь 2500 камментов без древовидности?)))
там как в жж. Выводится 50 камментов первого уровня. Если тебе интересно — нажимаешь на «13 Replies» и динамически открываются камменты второго уровня.
По-моему оч. удобно:)
Плюс все фичи этого топика:)
Скрытие камментов хабр слизал, а остальные фичи нет:)
avatar
систему + и — тоже от туда
avatar
Кирилл, если ты такую фичу на ajax сделаешь, я буду только счастлив и людям, здесь присутствующим очень пригодится. Потому что грузить топик с тысячей комментов одной страницей это жопипец…
avatar
а, вы там чудачка процетировали с фриспича, понятно. я вот и хочу выяснить, включил я gzip на страницах или нет. вроде шустрее стало, а так у меня, например, на EeePC с атомом 1.6 (тормоз еще тот) воооще проблем нет с большими топиками… у чудачка видать офисная машина второй или даже первый пентиум, но проблема есть конечно, чего тут отрицать…
avatar
кстати, вот захожу я в его профиль и вижу, что он написал топиков и комментариев (баг?) и при этом у него сила 75… как так?
avatar
нет, у нас была раньше глосование, я посчитал более логичным начать жизнь заново на проекте и конвертировал карму в силу, а рейтинг пусть хорошими топиками набирают. а публикации в форуме еще не выведены в меню, да.
avatar
эм-м-м… jevix почему-то съел теги b… ноль топиков и ноль коментариев имеется ввиду ) ещё раз попробую
avatar
0 топиков и 0 комментариев в блогах, все правильно
avatar
нет тут просто интересный баг вылез. Если я пишу например (это картинка) т.е. пытаюсь выделить жирным шрифтом цифру 0, то при публикации эта конструкция теряется. вот, например (). Если нолей больше то все работает нормально (00)
avatar
Еще момент. Ссылку «Создать» — абсолютно не видно. Бегал глазами минуту, пытаясь ее найти. В очень нелогичное место вы ее поместили :)
avatar
Нашел так. Сперва открыл код и нашел ссылку на /topic/add/, увидел, что она называется «Создать», и уже создать нашел на странице :)
avatar
Covax
в движке форума IPB довольно богатые возможности для модерирования.
В LiveStreet таких возможностей на порядок меньше. Как выходишь из этого положения дел?
  • xRay
  • 0
avatar
А какие там самые полезные функции???
удаление топиков, камментов, юзеров?)
avatar
Премодерация например как для отдельного пользователя так и для групп.
Нуда и удаление тоже )
avatar
премодерация тем на форуме?))) звучит устрашающе:)
Удаление топиков и камментов есть. Бан ковакс собирался сделать сам.
avatar
Премодерация помогает боротся с теми кто плюет на правила ;)
avatar
у меня для модератора есть все необходимые ему функции: удаление топиков/комментариев, временный бан в конкретном блоге/форуме, никакая премодерация мне даже в голову не приходила
avatar
Отличный дизайн, особенно нравится способ отображения топиков.

По моему стоит убрать или найти замену стрелочкам (особенно справа): ↓ →

Кстати, у меня не совпадаеют цвета фонов логотипа и страницы, это так надо?
avatar
Интересно как все таки сделаны эти «превьющки к топику», раскажешь? :)

Вот ещё, раз вывод на главную обрезается, почему не сделать чтобы последние два-три выводимых слова были ссылкой к посту?
avatar
Видимо простой заливкой имейджа 150*150.
avatar
точно так же как сделана заливка аватара блога, только принудительно
avatar
Отличный сайт и по дизайну и по функционалу, мне есть к чему стремиться, спасибо за отличный пример. Насчет превьюшек к топику можно узнать как сделано? Сомневаюсь что простой заливкой имейджа 150*150. В стандартной версии LS есть загрузка аватара для блога, но его видно, когда нажимаешь непосредственно на ссылку блога, а на главной странице только названия блогов в виде ссылок, немного непонятно зачем аватар для блога, если его не видно на главной. Вопрос такой: как реализовать вывод аватара блога перед названием?
avatar

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

чтобы добавить превьюшку в топик, нужно:
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'];
    }
avatar

ой, прошу прощения

public function setAvatarType($data) {
        $this->_aData['topic_avatar_type']=$data;
    }
БЕЗ RETURN
avatar
После этого все заработало, спасибо Covax. Осталась маленькая проблема, к обычным топикам превью загружается и отображается нормально, но если создавать топик ссылку или опрос — то снова картинки не грузятся, отображается пустое место под картинку, снова обрезается расширение, адрес картинки выглядит так cmslive.ru/uploads/images/topics/18. Что то еще нужно сделать. Помогите плиз кто знает.
avatar
Точно также, как мы отредактировали ActionTopic.class.php, нужно отредактировать ActionQuestion и ActionLink, а также темплейты add.tpl в /skin/habra/actions ActionQuestion и ActionLink
avatar
Спасибо огромное, все работает, это просто песня какая то!
avatar

В 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
avatar

опять в 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;
                                }
                }
avatar

в 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;
        }
avatar

там же функция 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;
        }
avatar
сдвинем вправо →
avatar

в 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">
avatar
Поле topic_avatar_type какого типа должно быть?
avatar
Что то появляется такое: Notice: Undefined index: avatar in /путь/cmslive.ru/classes/actions/ActionTopic.class.php on line 413
И красным выскакивает:
Ошибка: Вы не указали для загрузки картинку превьюшки к топику, без этого мы не можем разместить топик!
Форма для загрузки превьюшек появляется, но не загружает.

Еще насчет пункта 2 — в Topic.entity.php добавить… наверное в Topic.entity.class.php
avatar
Народ, кто нибудь пробовал реализовать? Напишите пожалуйста какого типа должно быть создаваемое поле topic_avatar_type, я вроде почти все перепробовал:(
avatar
а вы в prefix_blog посмотрите какого там типа поле blog_avatar_type
avatar
а как создать поле topic_avatar_type?
что нужно сделать в майадмине?
avatar
В майадмине слева выбираешь таблицу prefix_topic, потом сверху нажми «Структура», в самом низу будет строка «Добавить» 1 поле(я), кнопку ОК и появится меню выбора название поля, тип, значение по умолчанию и т.д.
avatar

Установил также как и blog_avatar_type по аналогии тип VARCHAR (5) по умолчанию NULL. Не помогло, снова та же ошибка Notice: Undefined index: avatar in /путь/cmslive.ru/classes/actions/ActionTopic.class.php on line 413

Ошибка: Вы не указали для загрузки картинку превьюшки к топику, без этого мы не можем разместить топик! Где же я накосячил? Может еще что внести надо?
avatar

Люди, ошибка возникает в этой строке if (is_uploaded_file($_FILES['avatar']['tmp_name']))
Пишет Undefined index: avatar в… строке выше. Covax, поясни пожалуйста суть этой ошибки. Может еще где то прописать что то нужно. Ну пишет не определенный индекс… где определить то?
avatar
если ты считаешь что все сделал как я написал, то найди меня в асе 421527469, будем решать что именно у тебя не так.
avatar
Не работает почему-то, открывается пустая главная а дальше — 404. например, тут newmusic.ru/blog/

Отдельно заинтересовала двенадцатилетняя история сайта, ведь в 1996 году количество доменов в рушной зоне составляло жалкие сотни, не помню сколько точно. Хуиз https://www.nic.ru/whois/?query=newmusic.ru нам говорит, что домену вовсе не 12, а всего четыре года. Странные дела.
avatar
Действительно странные… web.archive.org/web/*/http://newmusic.ru а тут почему-то с 1998 ;)
avatar
Всё-таки ТС прав. Домену действительно 12 лет. Просто он был в 2004-м передан на обслуживании из РосНИИРОРса в Ру-центр, оттуда и путаница в руцентровком хуизе. Просмотр информации на сайте www.ripn.net:8080/nic/whois/whois.cgi всё расставляет по своим местам.

А сайтец до сих пор не работает :-(
avatar
и потом… не все-ли вам равно?
avatar
Один из первых рушных доменов — интересно всё-таки.
avatar
да, мы из этих, пещерных доменов рунета :)) когда то пили водку с артемием и норвежским лесным, и тусовались на glas.friends

как это у вас сайт не работает? все у всех работает
avatar
а как конверт форума в блоги делали?
avatar
толи у вас сайт подвис толи у нас канал к вам не пробивается
avatar
вопрос отпал. ибо ступил. ) недо с начала читать тему не линится. признаю_)
avatar
потыкался все же…
`irby кот… это же классно. так совукупить форум и блог… 5+
avatar
что-то вопросом задался… а реально ли юзать ОДНОВРЕМЕННО блог и форум? (ну чтобы база одна была)
avatar
а у меня база одна, а таблицы разные. это чисто для удобства (моего) сделано. вы поймите, у меня всю жизнь на сайте был форум и убрать его — лишить пользователей сайта того, к чему они привыкли. блоги у меня это возможность разместить статью любому зарегистрированному пользователю. всетаки топик в форуме еще найти надо, а к любой статье блогов можно парой кликов мышью добраться…
avatar
но по сути, у Вас форум сейчас только так как представлен на заглавной странице? или есть скрытый пб 1.3 ?)
avatar
не пришло письмо после регистрации у вас, помогите :)
ник тот же.
avatar
Covax а вы потом легко проект перенесете на новую версия ливстрита, проблем не будет?
avatar
а зачем мне переносить проект на новый ливстирит? я возьму то, что надо и внедрю с свой. руки есть :)
avatar
Covax, помогите с письмом после регистрации…
avatar
А в чем проблема? Если что-то не получается, пишите в инбокс, а то этот топик уже слишком тяжелый.
комментарий был удален
avatar
будете долго смеяться, но я пытал программеров, чтоб рассказали как такой сайт сделать ))))
forum.searchengines.ru/showthread.php?t=329416
я давно знаю про Ваш сайт, где-то с 2000 года, недавно зашел на него, увидел обновления, понравилась функциональность, решил разузнать про этот движок по больше чтоб для себя сайт сделать, подобный )))))))))))

пс: сайт действительно хорошо переделали!!!
avatar
что-то новостей от сайта нету… эх
avatar
Как называется фича, при которой можно слушать музыку в плеере и гулять по страницам сайта? все наверно знаю что это такое, в контакте именно так.
avatar
Плеер же в VK работает через HTML 5 History?
То есть это работает только для браузеров его поддерживающих. Откройте VK через ie 7-8 и трек будет прерываться при переходе.

Единственный кроссбраузерный вариант для музыки, это делать абсолютно всё через AJAX.
avatar
Сайт интересный, хотел зарегистрироваться, newmusic.ru/registration/, но мне почему-то н показывается капча
avatar
Если на вашем сайте выкладывается музыка исключительно по согласию авторов, то отлично. Если очередное пиратство (допустим кто то загружает чужую музыку на ваш сайт) то я это не одобряю, очередное наглое воровство.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.