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

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

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

Во-вторых, мы не первый день в эфире, сайту 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, хозяином которого является мой друг, очень ответственный человек и настоящий профессионал своего дела. Как сами видите сервер на нем крутится на ура.

Поговорим за музыку?
  • +26
  • 09 декабря 2008, 12:33
  • Covax

Комментарии (154)

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

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

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

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

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

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

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

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

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

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

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

во большинстве конверторов, которые мне попадались, перенос данных происходит по кускам, причем скрипт рекурсивно вызывает себя сам с параметром откуда надо начинать-продолжать перенос.
0
  • avatar
  • kruft
  • 09 декабря 2008, 21:42
а, к слову, прерывание процесса по середине в таких случаях хуже чем в начале — всеравно потом легче начать с нуля, особенно если в архитектуре БД развитые связи между таблицами. ЖУ относится к этому случаю :-)
0
насколько я понимаю, для его запуска не требуется веб сервер, напрямую через кли пхп
0
если так, то все, описанное выше про веб-сервера, к случаю не относится.
0
этот скриптик через консоль ssh запускается, я просто не стал лишнее удалять, есть не просит и ладно :)
0
мелочь конечно, но в окошке авторизации в слове «Представтесь» нужен мягкий знак
0
заливали бы вы еще все на ябадабу было бы хорошо.
Не много рекламы ябадаба первый обменник без надоедливой рекламы и без ограничений на размер файла и общий объем, а также скорость скачивание часто до 8 мегабайт в секунду доходит! все бесплатно)
0
  • avatar
  • skpnm
  • 09 декабря 2008, 23:40
да еще закачака по ftp)
0
  • avatar
  • skpnm
  • 09 декабря 2008, 23:41
а дизайн супер!
ну вот от рапиды с депозитом стошнило(
+1
  • avatar
  • skpnm
  • 09 декабря 2008, 23:43
не понимаю о чем речь вообще? а, вы пришли бы к нас чисто музыки покачать? :))) у нас другая политика, мы не против, но и не так чтобы за, если пользователям захочется ссылки повыкладывать на любимую музыку, это их личное дело.
+1
Сайт просто замечательный!
Мне очень понравился! Есть один вопрос:
Есть ли возможность, чтоб автор выложил скин этого сайта?
Просто меня объедененная группа медведей и слонов наступила на все органы исскуства и совершенно не умею дизайнить :(
-1
нет конечно, извините, я не хочу видеть клоны своего сайта :) я думаю толпы профдизайнеров оторвут ваш заказ с руками и ногами, кризис же на дворе.
+3
Хорошо, все равно спасибо за дизайн, он меня навел на некоторые мысли для своего сайта.
0
А где код приглашения взять?
0
ой, я случайно инвайты включил :)) регистрация свободная
+1
Отличный дизайн, только вот форум совсем непревычный. Надо с этим что-то делать :)
0
Где редактирование комментариев?:) Непривычный
0
чем непривычный форум то? :)) и где у нас на лайвстрите есть редактирование комментариев?
+1
сайт до позднего вечера перебирается кудато на крутую машину, одному хостеру известно какую, не переживайте :) еще раз всем спасибо за лестные отзывы, я был рад стараться!
+1
  • avatar
  • Covax
  • 10 декабря 2008, 18:54
А как Ты организовал что бы юзеру при регистрации падало ЛС по умолчанию?
0
  • avatar
  • Fanta
  • 11 декабря 2008, 13:37

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

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

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

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

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

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

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

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

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

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

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

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

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

В 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
+1

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

в 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;
        }
+1

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

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

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

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

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

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

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

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

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

пс: сайт действительно хорошо переделали!!!
0
что-то новостей от сайта нету… эх
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.