Модуль "Новые персональные фотографии пользователя"

+34
2.09K
По мотивам темы на форуме Вывод фотографий в профиле пользователя
Модуль выводит последние загруженные пользователем фотографии в свой личные альбомы.
Если у пользователя нету фотографий модуль не выводится.
В админке можно назначать количество фотографий.
Над фотографиями есть кнопочка "Слайд шоу", что позволяет посматривать фотографии в colorbox, в режиме слайд шоу.


InstantCms 1.10.3-1.10.4-1.10.5

Иллюстрация

Скачать бесплатно

Благодарности:
Web money Z439721193730
Web money R691262369281
Yandex 410011836350106
0
Stecc Stecc 8 лет назад #
Это для версии 1.10.3?
0
alexbabo alexbabo 8 лет назад #
1.10.3-1.10.4,но должно и на ранние версии пойти
0
Петр Петр 8 лет назад #
Что он только для страницы профиля?
0
alexbabo alexbabo 8 лет назад #
да привязан к профилю пользователя
+1
Олег Васильевич я Олег Васильевич я 8 лет назад #
Годится!
0
ValeraK ValeraK 8 лет назад #
Отлично) Вопросик в архиве в папке шаблона есть файл шаблона объекта мапса это для примера?
0
ValeraK ValeraK 8 лет назад #
Вставил модуль в шаблон профиля пользователя вместо вывод фотоальбомов, пропали друзья и стена(
0
irbis irbis 8 лет назад #
Забыли написать, что при установки обязательно зайти в настройки и нажать Сохранить. Иначе параметр LIMIT не передается и модуль не работает!
А так интересно! +
0
irbis irbis 8 лет назад #
И нужно обязательно исправить проблему с выводом фотографий из закрытых альбомов. Переделайте SQL-запрос, а то вся безопасность рушится. И, как пожелание, внизу модуля вывести ссылку на все личные альбомы.

Если кому интересно, могу исправить данные недочеты и отправить исправленный модуль, а так ждем автора, когда он устранит недочеты и выложит исправленный модуль. На текущий момент сыровато.
0
alexbabo alexbabo 8 лет назад #
модуль вчера буквально за полчаса был нарисан,да есть недочеты,конечно поправьте.
А в архиве файо от мапс лишний:)
0
alexbabo alexbabo 8 лет назад #
чуть чуть поспешил :)
0
alexbabo alexbabo 8 лет назад #
irbis, как переделать запрос в целях безопасности? Пожайлуста, отришитесь тут.
0
alexbabo alexbabo 8 лет назад #
отпишитесь
0
irbis irbis 7 лет назад #
классная опечатка! )))
0
alexbabo alexbabo 7 лет назад #
Вот так ?
Код PHP:
  1. $photo = $inDB->get_fields('cms_user_photos',"user_id = '{$user_id}' AND allow_who='all' ",'id,imageurl ', "id DESC");
  2. if($photo){
  3. $photo['file'] = '/images/users/photos/medium/'.$photo['imageurl'];
  4. $photos[] = $photo;
  5. }
Но не знаю как вывести все фотографии?
0
irbis irbis 7 лет назад #
Код PHP:
  1. $sql_userphotos = "SELECT p.id, p.pubdate, p.imageurl as file, p.hits, p.title
  2. FROM cms_user_photos p INNER JOIN cms_user_albums a ON a.id = p.album_id
  3. WHERE p.user_id = '{$user_id}' AND a.allow_who != 'friends'
  4. ORDER BY id DESC LIMIT {$photos_n}";
0
irbis irbis 7 лет назад #
у меня так получилось.
Но не знаю как вывести все фотографии?
здесь я не понял...
0
irbis irbis 7 лет назад #
вы в запросе закрываете фото, а их редко кто настраивает, обычно альбомы закрывают, хотя и в открытых альбомах некоторые фото закрывают.
0
alexbabo alexbabo 7 лет назад #
В 1.10.4 все запросы написаны как тот что я написал выше,обращаясь к базе через $inDB-> get_fields, без select и From и так далее.
Выше указанный запрос работает, но выводит только одно фото, не знаю как все вывести, не знаю куда вставить LIMIT
0
alexbabo alexbabo 7 лет назад #
irbis:
Переделайте SQL-запрос, а то вся безопасность рушится.
да и я не уловил,чем отличается ваш запрос от моего,в плане безопасности.
Укажите,чтоб в будущем знать. smile
0
irbis irbis 7 лет назад #
Вы в своем запросе не выводите фото, которые открыты только друзьям. Но обычно создаются альбомы, которые открыты только друзьям, а отдельно фото не настраивают. Таким образом получается у пользователя есть альбом, который доступен только друзьям, а в нем фото без определенных настроек (доступны всем). И ваш запрос выводит эти фото из закрытого альбома. Нужно проверять именно альбом, вот в чем разница.
0
alexbabo alexbabo 7 лет назад #
С этим я согласен,и мне это понятно.
Я другое подумал. smile
Когда вы сказали,что безопасность рушится,я подумал,что мой модуль создает брешь в Instantcmsи даёт возможность легко взломать Instantcms.
0
irbis irbis 7 лет назад #
нет, я не это имел в виду. просто на моем проекте ненужные фото открылись, поэтому сразу и увидел. smile
0
qwest qwest 7 лет назад #
Не работает все это чудо в Internet Explorer
0
alexbabo alexbabo 7 лет назад #
У меня работает в Internet Explorer ,какая версия Internet Explorer ?
0
qwest qwest 7 лет назад #
Версия IE9
0
hummer7887 hummer7887 7 лет назад #
Классный модуль, но у меня к сожалению не отображается.... версия 1,3
0
alexbabo alexbabo 7 лет назад #
Я ставил на 1.10.3 у меня работает
0
irbis irbis 7 лет назад #
Вот решение, если пользователь находится в друзьях, то показываем все, если нет, то срабатывает проверка:
Код PHP:
  1. $usr = cmsUser::getShortUserData($user_id);
  2. if (!$usr){ cmsCore::error404(); }
  3. //Мой профиль или нет
  4. $my_profile = ($inUser->id == $id) ? true : false;
  5. //Определяем, друзья мы или нет
  6. $we_friends = ($inUser->id && !$my_profile) ? cmsUser::isFriend($usr['id']) : 0;
  7. if ($we_friends==0) $allow_who = " AND a.allow_who != 'friends' AND p.allow_who != 'friends'";
  8. else $allow_who = '';
  9. if (cmsUser::getfriends($inUser->id))
  10. $sql_userphotos = "SELECT p.id, p.pubdate, p.imageurl as file, p.hits, p.title
  11. FROM cms_user_photos p INNER JOIN cms_user_albums a ON a.id = p.album_id
  12. WHERE p.user_id = '{$user_id}' $allow_who
  13. ORDER BY id DESC LIMIT {$photos_n}";
0
irbis irbis 7 лет назад #
комментарий удалить не могу. пока не используйте это решение, оно работает с ошибками. решение по закрытым альбомам смотрите выше. здесь надо разбираться.
0
alexbabo alexbabo 7 лет назад #
Вот немного лишнего кода может,но работает вроде
Код PHP:
  1. $usr = cmsUser::getShortUserData($user_id);
  2. $my_profile = ($inUser->id == $user_id) ? true : false;
  3. $we_friends = ($inUser->id && !$my_profile) ? cmsUser::isFriend($usr['id']) : 0;
  4. if ($we_friends && !$my_profile){
  5. $allow_a = "AND a.allow_who = 'friends'";
  6. $allow_p = "AND p.allow_who = 'friends'";
  7. }else{
  8. if($my_profile ){
  9. $allow_a = "";
  10. $allow_p = "";
  11. }else{
  12. $allow_a = "AND a.allow_who = 'all'";
  13. $allow_p = "AND p.allow_who = 'all'";}
  14. }
  15. $sql_userphotos = "SELECT p.id, p.pubdate, p.imageurl as file, p.hits, p.title
  16. FROM cms_user_photos p
  17. INNER JOIN cms_user_albums a ON a.id = p.album_id {$allow_a}
  18. WHERE p.user_id = '{$user_id}' {$allow_p}
  19. ORDER BY id DESC LIMIT {$photos_n}";
Архив обновил
0
alexbabo alexbabo 7 лет назад #
Вот этот кусочек правильнее
Код PHP:
  1. if ($we_friends || $my_profile ){
  2. $allow_a = "";
  3. $allow_p = "";
  4. }else{
  5. $allow_a = "AND a.allow_who = 'all'";
  6. $allow_p = "AND p.allow_who = 'all'";
  7. }
0
alexbabo alexbabo 7 лет назад #
и добавил на все личные альбомы,открывается также в
0
alexbabo alexbabo 7 лет назад #
и добавил ссылку на все личные альбомы,открывается также в colorbox
0
seocean seocean 7 лет назад #
alexbabo, у меня почему-то не отображается - вообще - в админке появилось - установила - вывела в сайдбар - установила количество слайдов - сохранила - вывода нету( а очень надо... http://prof.seocean.ru
+1
alexbabo alexbabo 7 лет назад #
Ниже Инстант 1.10.3 не работает.
0
seocean seocean 7 лет назад #
у меня 1.10.4
0
seocean seocean 7 лет назад #
Ах... alexbabo, если бы ты подсказал как настраивать размеры вывода в слайдер изображений (картинки как правило разной высоты, ширины - и выходят они хоть и в уменьшенном виде, но вразнобой и смотрятся не так красиво, как у тебя в демо) - чтобы они ровненькие туда выходили - как у тебя - средствами css -не удалось, в js, наверно где-то... где? smile
+1
irbis irbis 7 лет назад #
Поставил переделанный модуль из архива - ничего не выводит...
+2
irbis irbis 7 лет назад #
Разобрался, в модуле ошибки, возможно автор тестировал и не убрал:
строка 11:
Код PHP:
  1. $sfg2 = 2;
удаляем
строка 46:
Код PHP:
  1. if (!$user_login || !$photos || $sfg2 = 2) {return false;}
меняем на:
Код PHP:
  1. if (!$user_login || !$photos) {return false;}
и предлагаю изменить строку 21:
Код PHP:
  1. $my_profile = ($inUser->id == $user_id) ? true : false;
на:
Код PHP:
  1. $my_profile = ($inUser->id == $user_id || $inUser->is_admin) ? true : false;
данное изменение позволит админам также видеть фотографии

Еще от автора

Адаптивный шаблон Sunny - InstantCMS 2 .Free
Адаптивный шаблон. Адаптивный слайдер,на мобильных устройставх перелистывается пальцем. С анимацией,позиции подгружаются по мере прокрутки страницы.
Модуль "Контент панель".Инстант 1.10.3-1.10.4
Вначале планировался простенький модуль делающий перелинковку статей по методу кольца в разделе. Но модуль разросся и оброс многими функциями.
Модуль который виден только в профиле.Инстант.1.10.4
По просьбе Доротея Всё неимоверно элементарно. Создаем копию шаблона module.tpl,с другим именем,в нашем случае module_user.tpl.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.