Большое обновление LiveStreet в SVN
Сегодня с горем пополам смог выгрузить через жэпэрэс обновление в SVN.
Список изменений:
Тестируем!
Список изменений:
- добавлен аватар к блогам
- теперь число новых комментов видно в списке топиков
- ограничение по времени на постинг комментов
- защита от дублирования комментов
- возможность запрещать комментировать топик
- кеширование статических страниц
- защита «от дурака» при создании циклической зависимости между статическими страницами
- уведомление при добавлении в друзья
- возможность указывать свой текст при скрытии текста тегом [cut], достаточно указать атрибут name
- фикс ошибки при подключении блоков, могла возникать на некоторых хостингах
- фикс ошибки при ресайзе прозрачных картинок, раньше прозрачный фон становился черным
Тестируем!
101 комментарий
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 )
Что не так?
пока автор не выложил новый 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 эту таблицу необходимо удалить и выполнить похожую команду от автора.
а потом
ALTER TABLE `prefix_topic_comment_last` ADD `date_last` DATETIME NOT NULL ;
не работает пока вернул изменения в этом файле назад.
все в одном zip архиве.
Fatal error: Call to undefined method Mapper_Topic::SetCountCommentLast() in /********/classes/modules/topic/Topic.class.php on line 661
кстати, при выполнении альтер тэйбла по унификации индекса в таблице prefix_topic_read, может произвойти ошибка не уникальности. т.к. в этой таблице хранится всеголишь время-дата прочтения юзерами топиков, то можно спокойно очистить данную таблицу, а уже потом выполнить
-- делаем индекс уникальным, а не просто индексом
ALTER TABLE `prefix_topic_read` DROP INDEX `topic_id_user_id` ,
ADD UNIQUE `topic_id_user_id` ( `topic_id` , `user_id` );
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 )
Из файла patch.sql нужно выполнить кое-какие инструкции…
(ЭТО НЕ ОШИБКА) это человек не думаю поставил, причем не до конца, обновление
да уж… забыл выложить создание таблицы 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
Наверное виноват chmodКоторого видимо нет :) Код не смотрел, пока нет необходимости.
может лучше приватку сделать?
людей раздражают емаил письма!
вообще я бы не увлекался рассылками email, хотя это все и отключаемо.
Ну это относится ко всему ))) К топикам, камментам, блогам…
А что касается обычных пользователей… Приведу пример. Наша команда сейчас работает над большим стартапом. Так вот, после емейл рассылки (например, про обновления на сайте) посещаемость увеличивается процентов на 30, что весьма полезно для проекта.
Думаю, самый нормальный вариант — рассылка включена по умолчанию, но юзер по желанию её может отключить из настроек профайла.
А основное, что вынес с конфы, так это то, что есть только одна проблема для проектов под нагрузками — горизонтальный шардинг. Без него никак(репликация, кластер БД не спасают) не обойтись, а грамотная его реализация — задача сложная. И пока нет в планах LS точить архитектуру под него, это уже скорее отдельно нужно делать под каждый проект, когда уников в сутки переваливает за 100к.
А так — денормализация, фоновые кроны, сфинкс и т.п. :)
Тестируем!
у меня вопрос где поправить Этот логин уже занять
))
не выходит не как…
можно пример?
так и показывает код на странице.
<cut name="текст про дальше">
Все замечательно работает
<cut name=«читай дальше»> не пашет
<cut name=«читай „>
<cut name=«читай »>
т.е так
на выходе отображает так <cut name=«дальше „>
кавычка меняется…
При публикации топика типа ссылка стала после обновления появляться ошибка:
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
1. сначала заменил файлы
2. обновил базу до указанной границы в файлике
3. запустил конверт
4. добавил в базу последние строчки
и все равно текст топиков не появляется, не могли бы вы подсказать в чем проблема
1. обработчик ajax-запроса на восстановление коммента /include/ajax/commentRepair.php в коммите отсутствует
2. картинки-ссылки на восстановление коммента /templates/skin/habra/img/comment_repair.gif также нет в коммите.
уже исправление.
Вот еще бы вот это поправить
При создание блога (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 )
чтобы не потерялось:
При публикации топика типа ссылка или вопрос стала после обновления появляться ошибка:
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
Доступно: 0
Использовано: 0
Использовать
index_patch.sqlpatch.sql только если вы обновляетесь с версии LiveStreet 0.1, т.к. в последующих версиях он уже включен в sql.sql и все ровно.вообще если есть сомнения в своих действиях, то лучше в SVN не лезть и подождать релиза
у меня все нормально с этим пересохраняю топик и не чего не пропадает.
но вот такой текст не как вставить не получается дальше-->
просто код отображает и все…
ну разумеется )) там же символ, который тег закрывает
">"
Ты можешь вместо него ascii код поставить…
зашла в редактировать изменила его немного, пересохранила и всё, уже не так не так
в чём может быть проблема?
вроде бы ошибка дублированных комментариев есть…
2. правой кнопкой на файле (в списке)(compare with workin copy), т.е. сравнить с тем, что было и что получили. Программа подсветит изменения.
3. в ручную внести изменения в файлы своего проекта из новых файлов
это в кратце, но так оно и есть :)
Скопировал измененные файлы из SVN (http://svn.assembla.com/svn/livestreet) а вот что дальше — не знаю...?
[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
это под апачем. появилось после последнего обновления. база пополняется, но ответ сервера — ошибка.
вот самая ваша больная тема