Большое обновление LiveStreet в SVN

Сегодня с горем пополам смог выгрузить через жэпэрэс обновление в SVN.

Список изменений:
  • добавлен аватар к блогам
  • теперь число новых комментов видно в списке топиков
  • ограничение по времени на постинг комментов
  • защита от дублирования комментов
  • возможность запрещать комментировать топик
  • кеширование статических страниц
  • защита «от дурака» при создании циклической зависимости между статическими страницами
  • уведомление при добавлении в друзья
  • возможность указывать свой текст при скрытии текста тегом [cut], достаточно указать атрибут name
  • фикс ошибки при подключении блоков, могла возникать на некоторых хостингах
  • фикс ошибки при ресайзе прозрачных картинок, раньше прозрачный фон становился черным

Тестируем!

101 комментарий

avatar
QL Error: Table 'b29602_224da.prefix_topic_comment_last' doesn't exist at /home/u29602/ruserialru/www/classes/modules/topic/mapper/Topic.mapper.class.php line 341
Array ( [code] => 1146 [message] => Table 'b29602_224da.prefix_topic_comment_last' doesn't exist [query] => SELECT t_fast.*, tc.*, u.user_login as user_login, IF(tv.topic_id IS NULL,0,1) as user_is_vote, tv.vote_delta as user_vote_delta, IF(tqv.topic_id IS NULL,0,1) as user_question_is_vote, bu.is_moderator as user_is_blog_moderator, bu.is_administrator as user_is_blog_administrator, IF(tcl.comment_count_last IS NULL,t_fast.topic_count_comment,t_fast.topic_count_comment-tcl.comment_count_last) as count_comment_new FROM ( SELECT t.*, b.blog_title as blog_title, b.blog_type as blog_type, b.blog_url as blog_url, b.user_owner_id as blog_owner_id FROM prefix_topic as t, prefix_blog as b WHERE 1=1 AND t.topic_publish = 1 AND ( t.topic_rating >= 8 or topic_publish_index=1 ) AND b.blog_type in ('personal','open') AND t.blog_id=b.blog_id ORDER by t.topic_date_add desc LIMIT 0, 10 ) as t_fast JOIN prefix_user AS u ON t_fast.user_id=u.user_id LEFT JOIN ( SELECT topic_id, vote_delta FROM prefix_topic_vote WHERE user_voter_id = -1 ) AS tv ON t_fast.topic_id=tv.topic_id LEFT JOIN ( SELECT topic_id, comment_count_last FROM prefix_topic_comment_last WHERE user_id = -1 ) AS tcl ON t_fast.topic_id=tcl.topic_id LEFT JOIN ( SELECT topic_id FROM prefix_topic_question_vote WHERE user_voter_id = -1 ) AS tqv ON t_fast.topic_id=tqv.topic_id LEFT JOIN ( SELECT is_moderator, is_administrator, blog_id FROM prefix_blog_user WHERE user_id = -1 ) AS bu ON t_fast.blog_id=bu.blog_id JOIN prefix_topic_content AS tc ON t_fast.topic_id=tc.topic_id; [context] => /home/u29602/ruserialru/www/classes/modules/topic/mapper/Topic.mapper.class.php line 341 )
Что не так?
avatar
Я так понял он ругается что нет такой таблицы в базе данных «prefix_topic_comment_last' doesn't exist» ее действительно нет.
avatar

пока автор не выложил новый patch.sql, предлагаю такое решение:
CREATE TABLE  `tester`.`prefix_topic_comment_last` (
`topic_id` INT( 11 ) NOT NULL ,
`user_id` INT( 11 ) NOT NULL ,
`date_read` DATETIME NOT NULL ,
`comment_count_last` INT( 11 ) NOT NULL
) ENGINE = INNODB COMMENT =  'Заменить!!!'
Типа полей подобраны такие, какие используются в других таблицах движка для таких же данных, нет никаких индексов. после починки бага patch.sql эту таблицу необходимо удалить и выполнить похожую команду от автора.
avatar

а потом
ALTER TABLE  `prefix_topic_comment_last` ADD  `date_last` DATETIME NOT NULL ;
avatar
С измененным Topic.mapper.class.php
не работает пока вернул изменения в этом файле назад.
avatar
Какая ошибка в 341 строке?
avatar
а выложить сборку можно попросить?
  • igc8
  • 0
avatar
пока нет
avatar
trac.assembla.com/livestreet/browser/trunk
все в одном zip архиве.
avatar
После редактирования топика и сохранения выдает такое:
Fatal error: Call to undefined method Mapper_Topic::SetCountCommentLast() in /********/classes/modules/topic/Topic.class.php on line 661
avatar
Хоть и говорит об ошибке, однако все выполняется, т.е. топики публикуются, в черновиках тоже сохраняются…противная ошибка:(
avatar
Такая же ошибка при залогинивании пользователя и при попытке написать комментарий, залогиниться позволяет, комментировать не позволяет, висит ошибка и все Fatal error: Call to undefined method Mapper_Topic::SetCountCommentLast() in /*******/classes/modules/topic/Topic.class.php on line 661, надо ждать когда Макс исправит.
avatar

кстати, при выполнении альтер тэйбла по унификации индекса в таблице prefix_topic_read, может произвойти ошибка не уникальности. т.к. в этой таблице хранится всеголишь время-дата прочтения юзерами топиков, то можно спокойно очистить данную таблицу, а уже потом выполнить
-- делаем индекс уникальным, а не просто индексом  
ALTER TABLE `prefix_topic_read` DROP INDEX `topic_id_user_id` ,
ADD UNIQUE `topic_id_user_id` ( `topic_id` , `user_id` );
 
avatar
Notice: Undefined index: blog_avatar in /home/a/apsmru/blogs/public_html/classes/modules/blog/entity/Blog.entity.class.php on line 57

Notice: Undefined index: blog_avatar_type in /home/a/apsmru/blogs/public_html/classes/modules/blog/entity/Blog.entity.class.php on line 60
SQL Error: Column 'blog_avatar' cannot be null at /home/a/apsmru/blogs/public_html/classes/modules/blog/mapper/Blog.mapper.class.php line 39
Array ( [code] => 1048 [message] => Column 'blog_avatar' cannot be null [query] => INSERT INTO prefix_blog (user_owner_id, blog_title, blog_description, blog_type, blog_date_add, blog_limit_rating_topic, blog_url, blog_avatar, blog_avatar_type ) VALUES(1, 'Блог им. bandit', 'Это ваш персональный блог.', 'personal', '2008-10-26 08:29:01', '-1000', NULL, NULL, NULL) [context] => /home/a/apsmru/blogs/public_html/classes/modules/blog/mapper/Blog.mapper.class.php line 39 )
avatar
вы хоть смотрите какие файлы обновлена…
Из файла patch.sql нужно выполнить кое-какие инструкции…

(ЭТО НЕ ОШИБКА) это человек не думаю поставил, причем не до конца, обновление
avatar
не все файлы обновил, обновлять нужно через клиента SVN, тогда проблем не будет с обновлением
avatar
Такое вылезло при регистрации нового пользователя…
avatar
Вот не надо так утверждать, если не знаешь… все сделано как полагается! Сначала основной дамп, потом патч.
avatar

да уж… забыл выложить создание таблицы prefix_topic_comment_last в path.sql, сорри
пока можно поступить как предложил kruft, но с небольшими изменениями:
CREATE TABLE  `prefix_topic_comment_last` (
`topic_id` INT( 11 ) NOT NULL ,
`user_id` INT( 11 ) NOT NULL ,
`date_last` DATETIME NULL ,
`comment_count_last` INT( 11 ) NOT NULL
) ENGINE = INNODB COMMENT =  'Заменить!!!'
позже выложу его в SVN
  • ort
  • 0
avatar
загружаем блогу аватар, потом заходим в «редактировать блог» помечаем удалить, сохраняем — удалило, потом загружаем новый и вуаля подставляет старый и хоть ты лопни
avatar

Наверное виноват chmodКоторого видимо нет :) Код не смотрел, пока нет необходимости.
avatar
так вот может для начала смотреть?
avatar
при показе старого аватара нажми CTRL+F5
avatar
хмм… уведомления на емаил уходят о добавлении в друзья?
может лучше приватку сделать?
людей раздражают емаил письма!
avatar
на email то зачем, Макс? приватка необходима и достаточна…
вообще я бы не увлекался рассылками email, хотя это все и отключаемо.
avatar
Думаю нужно просто в разделе тюнинга добавить пункт об уведомлениях на почту при добавлении в друзья.
avatar
согласен
avatar
а лучше приватка :) Надо еще продумать тот момент, если ктото начнёт тупо добавлять убирать, добавлять убирать :)
avatar
Надо еще продумать тот момент, если ктото начнёт тупо добавлять убирать, добавлять убирать :)
Ну это относится ко всему ))) К топикам, камментам, блогам…
avatar
Тут спорный момент. Письма раздражают нас — интернет профессионалов.
А что касается обычных пользователей… Приведу пример. Наша команда сейчас работает над большим стартапом. Так вот, после емейл рассылки (например, про обновления на сайте) посещаемость увеличивается процентов на 30, что весьма полезно для проекта.
Думаю, самый нормальный вариант — рассылка включена по умолчанию, но юзер по желанию её может отключить из настроек профайла.
avatar
Макс, а напиши пару строк, что из почерпнутого тобою на HighLoad++ ты собираешься применить в LiveStreet?
avatar
изменение структуры БД по топикам и комментам были сделаны, как раз из-за больших нагрузок. Также нужно переделать теги, но это уже после 0.2. Будет переделано хранение инфы о географии пользователя. Всё это позволит снизить нагрузку на БД.
А основное, что вынес с конфы, так это то, что есть только одна проблема для проектов под нагрузками — горизонтальный шардинг. Без него никак(репликация, кластер БД не спасают) не обойтись, а грамотная его реализация — задача сложная. И пока нет в планах LS точить архитектуру под него, это уже скорее отдельно нужно делать под каждый проект, когда уников в сутки переваливает за 100к.
А так — денормализация, фоновые кроны, сфинкс и т.п. :)
avatar
Ну здесь про шардинг вопрос не стоит — задача уникальная для каждого отдельного проекта с большой посещаемостью. И если про денормализацию всё понятно, то что ты имел ввиду под фоновыми кронами? Сфинкс, я так понимаю — это движек для поиска?
avatar
если что то может подождать, то лучше это отложить на потом и обработать в фоне
avatar
Подтвержадю ошибку при регистрации. Где-то косяк
avatar
Тоже самое ошибка при регистрации!
avatar
в самом деле была ошибка при регистрации, исправленную версию закоммитил в SVN вместе с patch.sql
Тестируем!
  • ort
  • +3
avatar
Теперь нормально.
у меня вопрос где поправить Этот логин уже занять
))
avatar
возможность указывать свой текст при скрытии текста тегом [cut], достаточно указать атрибут name
не выходит не как…
можно пример?
avatar
<сut name=«что хотите написать»>
avatar
не пашет
так и показывает код на странице.
avatar
пашет просто если так вставить cut, а не через кнопку в редакторе не пашет.
avatar

<cut name="текст про дальше">
Все замечательно работает
avatar
у меня не как не хочет с одним словом работает, а с 2 и больше нет код отображает.
avatar
пашет
<cut name=«читай дальше»> не пашет
avatar
блин, а с такими кавычками действительно работает.
avatar
не работает у меня вообще когда пробел есть например так
<cut name=«читай „>
avatar

<cut name=«читай »>
т.е так
avatar

на выходе отображает так <cut name=«дальше „>
кавычка меняется…
avatar

При публикации топика типа ссылка стала после обновления появляться ошибка:
Notice: Undefined index: topic_cut_text in /home/u29602/ruserialru/www/classes/modules/topic/entity/Topic.entity.class.php on line 88

Warning: Cannot modify header information - headers already sent by (output started at /home/u29602/ruserialru/www/classes/modules/topic/entity/Topic.entity.class.php:88) in /home/u29602/ruserialru/www/include/function.php on line 335
avatar
Блина не топика ссылка, топика «Вопрос».
avatar
У кого еще этот баг есть?
avatar
Не попробывал создать топик ссылка таже ошибка но при этом топик создается.
avatar
эээ, почем то при обновлении все встало нормально, а все топики исчезли, ну то есть текст непосредственно
avatar
надо было внимательно читать что написано в patch.sql и выполнять по порядку…
avatar
действительно:)
avatar
вот я делал все как было написано:
1. сначала заменил файлы
2. обновил базу до указанной границы в файлике
3. запустил конверт
4. добавил в базу последние строчки

и все равно текст топиков не появляется, не могли бы вы подсказать в чем проблема
avatar
он уже и не появится, ты его удалил бесследно первой попыткой
avatar
не, резервные копии всегда сохраняю:) просто мне интересно где ошибка в последовательности действий, и не мог бы ты описать необходимую последовательность действий чтобы все вставало нормально… Спасибо заранее
avatar
лучше подождать выхода нормальной сборки в релизе, примерно к концу этой недели
avatar
ок
avatar
rev. 57.
1. обработчик ajax-запроса на восстановление коммента /include/ajax/commentRepair.php в коммите отсутствует
2. картинки-ссылки на восстановление коммента /templates/skin/habra/img/comment_repair.gif также нет в коммите.
avatar
да восстановление не пашет.
avatar
trac.assembla.com/livestreet/changeset/58
уже исправление.
Вот еще бы вот это поправить livestreet.ru/blog/dev_livestreet/271.html#comment2679
avatar

При создание блога (Changeset [58]):

Notice: Undefined index: blog_avatar in /home/a/apsmru/blogs/public_html/classes/modules/blog/entity/Blog.entity.class.php on line 57

Notice: Undefined index: blog_avatar_type in /home/a/apsmru/blogs/public_html/classes/modules/blog/entity/Blog.entity.class.php on line 60
SQL Error: Column 'blog_avatar' cannot be null at /home/a/apsmru/blogs/public_html/classes/modules/blog/mapper/Blog.mapper.class.php line 39
Array ( [code] => 1048 [message] => Column 'blog_avatar' cannot be null [query] => INSERT INTO prefix_blog (user_owner_id, blog_title, blog_description, blog_type, blog_date_add, blog_limit_rating_topic, blog_url, blog_avatar, blog_avatar_type ) VALUES(2, 'Интернет', 'Все самое интересное из жизни интернета…', 'open', '2008-10-26 20:30:28', '0', 'internet', NULL, NULL) [context] => /home/a/apsmru/blogs/public_html/classes/modules/blog/mapper/Blog.mapper.class.php line 39 )
avatar
А вот если присвоить при добавлении, аватар блогу… ошибки такой нет!
avatar
Fatal error: Call to undefined function mb_substr() in /home/docs/classes/lib/external/phpMailer/class.phpmailer.php on line 1367
avatar

чтобы не потерялось:
При публикации топика типа ссылка или вопрос стала после обновления появляться ошибка:
Notice: Undefined index: topic_cut_text in /home/u29602/ruserialru/www/classes/modules/topic/entity/Topic.entity.class.php on line 88

Warning: Cannot modify header information - headers already sent by (output started at /home/u29602/ruserialru/www/classes/modules/topic/entity/Topic.entity.class.php:88) in /home/u29602/ruserialru/www/include/function.php on line 335
avatar
по поводу инвайтов, когда захожу в свой профиль — всегда вижу:

Доступно: 0
Использовано: 0
  • ter
  • -1
avatar
пофиксил
  • ort
  • +3
avatar
Забавный подход к очистке кеша)))))
avatar
ВНИМАНИЕ!
Использовать index_patch.sql patch.sql только если вы обновляетесь с версии LiveStreet 0.1, т.к. в последующих версиях он уже включен в sql.sql и все ровно.
avatar
это касалось только обновлений 0.1.1 и 0.1.2
вообще если есть сомнения в своих действиях, то лучше в SVN не лезть и подождать релиза
avatar
В том то и дело, что я именно попробовал, а не написал на бум.
avatar
когда планируется релиз? И какой новый функционал идёт в разработке? Правда еще последние обновления отладить надо.
avatar
кат со своим текстом работает, но если зайти в редактирование новости и пересохранить он просто пропадает из новости на сайте, хотя в коде новости есть
avatar

у меня все нормально с этим пересохраняю топик и не чего не пропадает.
но вот такой текст не как вставить не получается дальше-->
просто код отображает и все…
avatar

ну разумеется )) там же символ, который тег закрывает
">"
Ты можешь вместо него ascii код поставить…
avatar
ну вот создаю свой кат, сохранила новость — всё замечательно
зашла в редактировать изменила его немного, пересохранила и всё, уже не так не так
в чём может быть проблема?
avatar
извиняюсь, всё в порядке, при синхронизации пропустила код :(
avatar
орт, обнови плиз test.livestreet.ru
вроде бы ошибка дублированных комментариев есть…
avatar
это ошибка и здесь есть :) еще не успел обновить, т.к. нет инета у меня
avatar
ааааа, ок)
avatar
а как собственно обновлять сайт? заходить на trac.assembla.com/livestreet/timeline и каждый файл вручную (ctrl+v, ctrl+c) редактировать?
  • dvb
  • 0
avatar
вот сюда , там есть ссылка на сам репозиторий и клиента для него
avatar
а где можно прочесть как им пользоваться?
avatar
avatar
спасибо! а вот для вашего движка нет на сайт поста, который бы описывал процедуру обновления сайта? Думаю это будет архиполезно для всех пользователей…напишите пожалуйста что, к чему?
avatar
1. вытягиваем программой обновлённые файлы. Программу не закрываем, она покажет список изменённых файлов.
2. правой кнопкой на файле (в списке)(compare with workin copy), т.е. сравнить с тем, что было и что получили. Программа подсветит изменения.
3. в ручную внести изменения в файлы своего проекта из новых файлов

это в кратце, но так оно и есть :)
avatar
возникает какой программой?
avatar
avatar
а как быть если нужно обновить на ftp сервере?
avatar
Смотрите, значит так…скачал эту черепашку, установил.
Скопировал измененные файлы из SVN (http://svn.assembla.com/svn/livestreet) а вот что дальше — не знаю...?
avatar
жду вас в ICQ, не будем засорять сайт :)
avatar
обновилась структура хранения стран и городов + автоподстановка в проыиле
  • ort
  • 0
avatar
почему-то после последнего обновления, появляется post timeout, но вообщение в базе появляется.
avatar
конекретно, в зависимости от сервера:

[Sat Nov 1 16:14:36 2008] [info] [client x.x.x.x] Read POST information timed out
[Sat Nov 1 16:14:36 2008] [info] [client x.x.x.x] client stopped connection before rvputs completed

это под апачем. появилось после последнего обновления. база пополняется, но ответ сервера — ошибка.
avatar
не знаю что там у кого, но у меня всё из списка работает.
вот самая ваша больная тема


avatar
кстати, а можно cut закрыть? и дальше постить наружу?
  • ter
  • 0
avatar
не понял вопроса
avatar
Типо cut текст /cut. Это он как про [heiden] говорит. Ответ в общем НЕТ.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.