Плагин "Статусы пользователей" плюс хак к компоненту "Пользователи"

+57
3.06K
Доброго времени суток, друзья!

Суть разработки ясна из заглавия. Перечислю всё же, что добавилось
1.Статусы пользователей сохраняются параллельно в отдельную таблицу базы.
2.В профиле юзера появляется вкладка "Статусы".
3.Отдельная страница статуса с возможностью добавления комментариев.
4.Отдельная страница "Все статусы" с возможностью перехода к странице статуса.
5.Админу и юзеру для своих статусов возможность удаления их.
6.Записи в ленту активности и удаление записи при удалении комментариев.

Недоработано:
1.После добавления статуса, нужно обновить страницу, чтобы новый статус отобразился во вкладке.
2.Не очень приятное сочетание "Комментировать" и самого статуса в профиле пользователя (над аватаркой). Дорабатываться не будет, поскольку, чтобы сделать более приятным сочетание статуса и ссылки, нужно лезть в файл com_users_profile.tpl, а этот файл у каждого свой и много раз переделанный. Поэтому, лучше не будем его трогать. Кому надо сами сделают.
3.Отсутствие возможности редактирования записи. Долго думал над этим. Всё же решил не стоит. Статусы это надписи в максимум 140 символов, в крайнем случае можно удалить и создать по новой.
4.Возможный минимализм в дизайне. Простите, с дизайном у меня худовато. Опять же, кому надо, переделают .tpl файлы.
5.Работает только для новых статусов. Старые статусы не отображаются в закладке и в странице просмотра статусов. Не придумал пока как их корректно перенести в новую таблицу базы. Если есть идея, предлагайте.

Демо смотрите на сайте.

Скачать.

Инструкция внутри архива. Установка простая. Скачать архив, залить в корень сайта и в админке установить плагин.

Внимание! Перед установкой и тестированием сделать бэкапы файлов и базы данных сайта.

Приятного пользования!

Жду замечаний и предложений.
-4
russianru russianru 13 лет назад #
нескачевается
0
Марат Марат 13 лет назад #
Вроде бы скачивается. С двух браузеров пробовал. а 10 закачек в счетчике откуда?
-4
russianru russianru 13 лет назад #
скачял ну тока на мазили
-1
russianru russianru 13 лет назад #
можно описать что изменилась в этих фаилах?

При установке заменятся следующие файлы:
/components/users/frontend.php
/components/users/model.php
/components/users/router.php
/components/users/ajax/status.php
+2
Fuze Fuze 13 лет назад #
берете winmerge или подобное и сравнивайте, в чем проблема.
0
russianru russianru 13 лет назад #
у меня много чего уже изменёного
0
Марат Марат 13 лет назад #
Там где вносились изменения, старался сопроводить комментариями. Что-то типа "Для плагина 'Статусы пользователей'". Может где-то пропустил. Те файлы, в которых действительно много изменений вносятся различными расширениями, старался не трогать. Остальное уж сами. Winmerge вам в помощь.
0
GNabi GNabi 13 лет назад #
Отлично! Сам думал над этим..
Спасибо!
0
Микулин Сергей Микулин Сергей 13 лет назад #
+++
0
Настёна Настёна 13 лет назад #
У меня почему-то вот такая проблемка: во вкладке Статус текст отображается вопросиками. Можно как это изменить?
0
Настёна Настёна 13 лет назад #
и текст "комментарии" под статусом не появляется, пока на английском не напишешь статус
+1
Марат Марат 13 лет назад #
тут явно что-то с кодировками. дефолтная кодировка сайта какая у вас? попробуйте в .htaccess прописать

AddDefaultCharset windows-1251

у вас не utf версия инстанта? слышал вроде бы есть такой.
+1
Марат Марат 13 лет назад #
Подождите ошибаюсь. Тут дело в кодировке БД. У вас таблица cms_users_statuses создалась в другой кодировке получается. Поэтому и не проходит.
+1
Марат Марат 13 лет назад #
в phpmyadmin выберите таблицу cms_user_statuses и посмотрите кодировку поля status_text. должно быть cp1251_general_ci. Если это не так, нажмите справа ссылочку с карандашом "изменить" и поправьте
+1
Настёна Настёна 13 лет назад #
Действительно кодировка этого поля была другая. Спасибо большое. Отличный плагин! smile
0
nikitka nikitka 13 лет назад #
Марат спасибо Вам конечно за плагин-хорошая штука!Но мне кажется что Вам нужно более подробнее пояснить в деталях где и что менялось!Так как у многих уже движок давно отличается от оригинала даже с winmerge тяжеловато будет!Хотя в каждом изменни оставте комменты пожалуйста!А так +100!
+1
Марат Марат 13 лет назад #
Nikitka , в изменениях старался писать комменты. но неуверен, что везде.
насчет изменений, постараюсь сделать. только не обижайтесь, если скоро не получится. острая нехватка времени. я не профессиональный программер, а то что делаю это просто хобби. основная профессиональная деятельность близко не связана с интернетом и программированием. помимо хобби, обычный джентельменский набор: семья, работа, ребенок, ипотека и.т.п. поэтому очень сложно выкроить время. поймите меня правильно. но я постараюсь.
+1
nikitka nikitka 13 лет назад #
Марат спасибо,будем ждать!!!
+1
Марат Марат 13 лет назад #
Описал изменения в файле "изменения.txt" внутри архива
При этом был исправлен мелкий недочет в файле /components/users/model.php . Поэтому перезалил архив, и туда же вложил файл с описанием изменений. Кто уже пользуется, просто перезалейте файл model.php
0
Black-Raven90 Black-Raven90 13 лет назад #
4.Отдельная страница "Все статусы" с возможностью перехода к странице статуса.

А страница "Все статусы" с пагинацией? Т.е. статусы разбиваются на страницы по 10 шт. на каждой? Или как?
0
Марат Марат 13 лет назад #
Нет. В данной версии пагинации нет. Возможно будет в следующих версиях.
0
lezginka.ru lezginka.ru 13 лет назад #
+
не понял - "5.Работает только для новых статусов"
означает ли , что не все статусы будут сохраняться в вкладке/профиле ?
и что значит "старые статусы" ?
0
Марат Марат 13 лет назад #
Без хака и плагина старые статусы нигде не сохраняются. Т.е. изменил юзер статус, вместо статуса, который у него был, в базу записывается новый.
"5.Работает только для новых статусов" означает, что если на момент установки у юзера стоял статус, то он не будет отображаться во вкладке, во всех статусах и не будет возможности комментировать. После установки дополнения, как только он установит новый статус, все возможности появятся.
0
Марат Марат 13 лет назад #
Если на момент установки был статус, то он никуда не исчеснет. Будет отображаться в профиле юзера как обычно.
+1
Марат Марат 13 лет назад #
Друзья, дополнение требует ещё многих изменений. Это и ajax обновление профиля пользователя(или просто вкладки "статусы") при добавлении нового статуса. И добавление статусов, которые установлены на момент установки, в новую таблицу БД. И пагинация страницы "Все статусы". Если есть пожелания, что-то хотите увидеть ещё, пишите. При доробатке будет учтено. Как только доберусь, переделаю.
+1
Telema93 Telema93 13 лет назад #
Добавить бы комментирование статуса через ленту событий - был бы жирный плюс :)
0
Patriot Patriot 13 лет назад #
Поставил плагин, вкладка в профиле появилась. Добавил новый статус и обновил страницу. Но статус не появился во вкладке. Читаю: Пользователь не устанавливал статус. Подскажите плиз, в чем проблема может быть? Версия 1.8, шаблон не дефолтный, свой.
0
Марат Марат 13 лет назад #
Проверьте, создалась ли таблица cms_user_statuses в БД и заносятся ли вновь создаваемые статусы в эту таблицу.
0
Patriot Patriot 13 лет назад #
Таблица создалась, но как понял статусы в неё не заносятся она к обзору не доступна. Как быть?
0
Марат Марат 13 лет назад #
Поподробнее пожалуйста. Статусы заносятся в эту таблицу(смотрите поле status_text)? Или они есть и просто не показываются в профиле. Не понял вот этого:
Stels:
она к обзору не доступна
В таблице должны быть все статусы, то есть тот, который актуален на данный момент, и те, которые были установлены раньше. Естественно после установки плагина.
0
Patriot Patriot 13 лет назад #
Имел в виду при нажатие на обзор таблицы, она не доступна. Занесенных статусов в ней нет. После установки плагина я менял статусы и обновлял страницу, но статусов во вкладке нет и в таблице тоже.
0
Марат Марат 13 лет назад #
Попробуйте перезалить файл /components/users/ajax/status.php .
И ещё сам статус меняется в профиле у юзера? Не во вкладке "статусы", а тот, который у пользователя в профиле над аватаром.
0
Patriot Patriot 13 лет назад #
Перезалил файл /components/users/ajax/status.php теперь работает! Спасибо Марат за плагин и помощь! +
0
lezginka.ru lezginka.ru 13 лет назад #
все возможности дать для ВИП, а простых юзеров, частично ограничить,в чем-нибудь :)
+1
Taurus Taurus 12 лет назад #
Уважаемые помогите, не могу разобраться поставил данный хак на 1.9 и у меня вместо статуса вот такая вот фигня.
Код PHP:
Вот такой у меня статус<br><a href="/users/1/status5.html">(0) Комментировать</a> // 1 минуту назад
ну тоесть виден код, и вообщем не работает знает кто как решить.?
+1
Taurus Taurus 12 лет назад #
Отвечаю сам на свой же вопрос, ну мне помогло, у мен была в файле com_user_profile.tpl написано вот так

Код PHP:
<div class="usr_status_bar">
    <div class="usr_status_text" {if !$usr.status_text}style="display:none"{/if}>
        <span>{$usr.status_text|escape:'html'}</span>
        <span class="usr_status_date" >// {$usr.status_date} {$LANG.BACK}</span>
    </div>
</div>
я сделал вот так
Код PHP:
<div class="usr_status_bar">
    <div class="usr_status_text" {if !$usr.status_text}style="display:none"{/if}>
        <span>{$usr.status_text}</span>
        <span class="usr_status_date" >// {$usr.status_date} {$LANG.BACK}</span>
    </div>
</div>
тобишь вот этот кусочек вырезал ......|escape:'html'...... а теперь уважаемые знатоки подскажите что я хоть обрезал то. нечего серьёжного? Ну теперь вроде работает нормально всё!
0
Марат Марат 12 лет назад #
Если сайтом пользуетесь только вы, то ничего страшного ))) Не будете же вы устанавливать себе статусы с плохим кодом ).
Если кто-то пользуется ещё, то может записать, например, так "<script>очень плохой код</script>" и он пройдет и выполнится.
Если вам так важны ссылки в статусе, то у модификатора escape есть и другие режимы. О них можете прочитать вот здесь.. Думаю, нужно хотя бы оставить |escape:'javascript'. Хотя, дело ваше ).
0
Taurus Taurus 12 лет назад #
Не сайт уже приличный. 500-700 хостов если верить liveinternet. Я бы непротив оставить как Вы написали, но почемуто ссылка тогда бьётся. Не знаете почему так может быть?
0
Taurus Taurus 12 лет назад #
Это может быть потому что локальный сервер, потому что я помню делал на сервере, и там всё нормально было, а вот на локалке вот такое выдаёт.
0
Female Female 12 лет назад #
та же проблема . версия 1.9
0
Taurus Taurus 12 лет назад #
А такой вопрос, как можно реализовать чтобы если статус пустой кнопка комеентировать не появлялась
0
Марат Марат 12 лет назад #
Проверьте условие {if $status_text}код кнопки{/if}. Переменную точно не помню, вроде $status_text, посмотрите сами в шаблоне.
0
GarikKR GarikKR 12 лет назад #
То же самое 1.9 ,пришлось вобще удалить эту кнопку
+1
GarikKR GarikKR 12 лет назад #
Ребят подскажите как эту кнопку подправить?
Вот такой у меня статус<br><a href="/users/1/status5.html">(0) Комментировать</a> // 1 мин
0
Марат Марат 12 лет назад #
Выше в комментариях есть такой же вопрос и его решение. Не ленитесь читать ).
+1
Ilekor Ilekor 12 лет назад #
И так, версия движка 1.9, решение некоторых проблем.
1. Не отображается кнопка комментировать ссылкой. на главной профиля. И понятно почему, текст проходит очистку от всякого Г...на, убирать не выход.
2. На странице все статусы не правильно выводится ссылка комментировать, не подставляется ИД юзера.

Решение:
1. Добавляем кнопку Комментировать на главной профиля.
открываем темплатес/ваш_шаблон/компоненты/ком_юзер_профайл.тпл
Находим
{$usr.status_text|escape:'html'} - если кто менял эту строчку, ищите {$usr.status_text}.
Через пробел вставляйте
Код PHP:
{if $usr.status_text}<a href="/users/{$usr.id}/status{$status.id}.html">(0) Комментировать</a>{/if}
2. все статусы не правильно выводится ссылка комментировать
открываем компоненты/юзерс/фронтенд.пхп
Находим
Код PHP:
/users/'.$user_id.'/status'.$status['id']
Заменяем на
Код PHP:
/users/'.$usr['id'].'/status'.$status['id']
+1
Ilekor Ilekor 12 лет назад #
Ошибочка вышла
Вместо
Код PHP:
{if $usr.status_text}<a href="/users/{$usr.id}/status{$status.id}.html">(0) Комментировать</a>{/if}
Использовать
Код PHP:
{if $usr.status_text}<a href="/users/{$usr.id}/status{$status.id}.html">({$status.comments_count}) Комментировать</a>{/if}
0
Black-Raven90 Black-Raven90 12 лет назад #
Так <br><a href="/users/1/status1.html">(0) Комментировать</a> в тексте статуса остается. Как это убрать?
0
Ilekor Ilekor 12 лет назад #
а вы прежде чем писать читали что выше написано?
+1
Ilekor Ilekor 12 лет назад #
Извиняюсь, не сразу понял ваш вопрос.
Что бы убрать из статуса. Открываем компоненты/юзерс/фронтенд.пхп
Находим
Код PHP:
$usr['status_text'] = $inCore->callEvent('USER_STATUS', $usr['status_text']);
И удаляем либо закомментируйте.
+1
Black-Raven90 Black-Raven90 12 лет назад #
Ссылка "(0)Комментировать" в профиле возле статуса ведет почему-то на предыдущий статус. Т.е. статус реально имеет адрес /status3.html, а ссылка ведет на /status2.html Видимо {$status.id} подставляется неправильно. Как исправить?
На вкладке "Статусы" ссылки формируются правильно.
0
Ilekor Ilekor 12 лет назад #
Из моего исправления, ничего никуда не должно вести. У меня все отлично работает.
+1
Black-Raven90 Black-Raven90 12 лет назад #
Просто вижу статус, нажимаю "Комментировать", а для комментирования открывается другой статус (предыдущий).
0
Female Female 12 лет назад #
вести еще как должно))) заходишь в профиль,видишь статус,нажимаешь "комментировать" и попадаешь на совершенно другой статус,совсем не тот что хотел закоментить.может вы что то упустили?
0
Female Female 12 лет назад #
не туда).
Black-Raven90,вы нашли решение?
+1
Black-Raven90 Black-Raven90 12 лет назад #
К сожалению, нет. Вообще отказался от использования этого плагина.
0
Female Female 12 лет назад #
вести еще как должно))) заходишь в профиль,видишь статус,нажимаешь "комментировать" и попадаешь на совершенно другой статус,совсем не тот что хотел закоментить.может вы что то упустили?
+1
F_a_R_i_D F_a_R_i_D 12 лет назад #
Перезалейте пожалуйста.
0
Александр Александр 12 лет назад #
Спасибо Вам большое плагин и хак супер, всё отлично работают!
0
Miledy Miledy 12 лет назад #
Спасибо за отличный плагин.
Может никто не заметил, но у меня возникла проблема:
когда админ редактирует профиль любого пользователя сайта и нажимает кнопку "Сохранить", его перебрасывает на свою страничку. Раньше после нажатия "Сохранить", админ переходил в профиль пользователя, чьи данные редактировались.
Кто знает, в чем проблема?

Еще от автора

Фильтр "Вставка модуля" v 1.0.0
Приветик! Давненько что-то я ничего не писал ) Не знаю было это или не было, вчера увидел темку, решил сделать немного по-другому. Вещь то нужная.
PHP классы для работы с VK API и с API Яндекс Метрики
Доброго времени суток, коллеги! Выкладываю два класса: -для работы с API Вконтакте; -для работы с API Яндекс Метрики.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.