DLE Friends 1.6 : друзья на сайте

DLE Friends 1.6 : друзья на сайте

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



Что сделано:
  • Полностью адаптирован под текущую версию DLE.
  • Полностью переписана административная панель.
  • Добавлена ​​возможность глобального отключения модуля.
  • Добавлены уведомления на письма.
  • Добавлен формат HTML для писем.
  • Добавлен блок "Возможные друзья" с кешированием.
  • Добавлена ​​возможность указать, кто видит всех/только меня друзьями.
  • Добавлена ​​поддержка MySQL 8.0 и PHP 7.x и 8.x.
  • Добавлена ​​поддержка поддержки доп.полей.
  • Добавлен вывод статуса онлайн/офлайн в списке друзей.
  • Добавлена ​​страница отправленных запросов на добавление в друзья.
  • Добавлена ​​поддержка обработки BBCODES при формировании ЛС.
  • Добавлен HIDE для друзей в комментариях/Новости полные/Доп.поля.
  • Добавлены отдельные шаблоны для уведомлений ЛС/Email.
  • Есть возможность очистить логи панели администратора + счетчик логов на страницу.
  • Теперь пользователь может отключить возможность добавления себя в друзья.
  • Возможность получать ЛС только от друзей теперь работает корректно.
  • Полностью переписан вывод новостной ленты.

Установка:
1. Загрузить содержимое архива через ваш FTP, а файлы шаблона *.tpl в нужную тему.

2. Перейти в раздел Управление плагинами и импортировать dle-friends.xml.

3. Открыть language\French\adminpanel.lng и найти:
$lang = array (

Ниже добавить:
/*Friends*/
'opt_friend_config' => "<br /><br /><br /><center><span style=\"color:#FF0000;\"><b>Fichier de config non trouvé!</b></</span><br /><br />Le script n'a pas pu trouver le fichier <b>friends_config.php</b> dans <i>/engine/data</i>. <br />Vérifier l'existence du fichier!</center>",
'opt_friend_updated' => "Mise à jour du modèle terminée",
'opt_friend_updated_mail' => "<span style=\"color:#009900;\"><b>Les modèles d'e-mail ont été mis à jour avec succès!</b></span>",
'opt_friend_delete_log' => "Journaux effacés avec succès",
'opt_friend_delete_log_' => "<span style=\"color:#009900\"><b>Tous les journaux ont été effacés avec succès!</b></span>",
'friends_adm_action' => "Module de demande d'amis",
'friends_adm_settings' => "Configuration du modules Friend",
'friends_logs_settings' => "Configuration",
'friends_templ' => "Modèle d'E-mails",
'friends_logs_action' => "Journaux",
'friends_settings' => "Amis",
'friends_active' => "Activer le module?",
'friends_active_info' => "Cette option vous permet d'activer/désactiver module globalement",
'friends_user_page' => "Nombre d'utilisateurs par page?",
'friends_user_page_info' => "Spécifiez le nombre d'utilisateurs lors de l'affichage de la liste complète d'amis",
'friends_short_list' => "Afficher la courte liste d'amis sur le profil utilisateur?",
'friends_short_list_info' => "Si 'Activé', alors une courte liste d'amis apparaîtra sur la page dumembre,<br />sinon, seul un lien vers la liste d'amis sera visible",
'friends_common' => "Activer le module \"Amis en communs\"?",
'friends_common_info' => "Choisissez d'activer ou non le module \"Amis en commun\"",
'friends_potential' => "Activer le module \"Amis potentiels\"?",
'friends_potential_info' => "Choisissez d'activer ou non le module \"Amis potentiels\"",
'friends_View_of_list' => "Affichage de la liste d'amis dans le profil utilisateur?",
'friends_View_of_list_info' => "Simple - &lt;a ... &gt;Pseudo&lt;/a&gt;, &lt;a ... &gt;Pseudo&lt;/a&gt;<br />Avec avatar - &lt;li&gt;&lt;img ...&gt;&lt;a ... &gt;Pseudo&lt;/a&gt;&lt;/li&gt;",
'friends_View_of_list_avatar' => "Avec l'avatar",
'friends_View_of_list_cheap' => "Simple",
'friends_View_of_list_common' => "Affichage de la liste des amis en <u>communs</u> dans le profil de l'utilisateur?",
'friends_number' => "Nombre d'amis dans le profil utilisateur?",
'friends_number_info' => "Spécifiez le nombre d'amis a afficher dans le profil de l'utilisateur",
'friends_common_user' => "Nombre d'amis en <u>communs</u> dans le profil utilisateur?",
'friends_common_user_info' => "Spécifiez le nombre d'amis en <u>communs</u> dans le profil utilisateur",
'friends_mp_user' => "Envoyer un MP?",
'friends_mp_user_info' => "Spécifiez quand envoyer un MP",
'friends_mp_user_1' => "&nbsp;Lorsque vous recevez une demande d'ami",
'friends_mp_user_2' => "&nbsp;Lorsque vous refusez une demande d'ami",
'friends_mp_user_3' => "&nbsp;Lorsqu'une demande d'ami est approuvée",
'friends_mp_user_4' => "&nbsp;Lorsqu'il n'est pas ami",
'friends_mail_user' => "Envoyer un E-mail?",
'friends_mail_user_info' => "Spécifiez quand envoyer un E-mail",
'friends_mail_user_1' => "&nbsp;Lorsque vous recevez une demande d'ami",
'friends_mail_user_2' => "&nbsp;Lorsque vous refusez une demande d'ami",
'friends_mail_user_3' => "&nbsp;Lorsqu'une demande d'ami est approuvée",
'friends_mail_user_4' => "&nbsp;Lorsqu'il n'est pas ami",
'friends_windows_modal' => "Activer la fenêtre modale en cliquant sur le pseudo de l'utilisateur?",
'friends_windows_modal_info' => "Si 'Activé', alors en cliquant sur le pseudo, une fenêtre modale apparaîtra avec de brèves informations sur l'utilisateur<br />Si 'Désactivé', alors en cliquant sur le surnom, le lien \"vous enverra\" vers le page utilisateur",
'friends_activate_newsfeed' => "Activer \"Fil d'actualités/Actualités des amis\"?",
'friends_activate_newsfeed_info' => "Indiquez si vous souhaitez afficher \"Fil d'actualités/Actualités des amis\"",
'friends_number_news' => "Nombre de news dans les news des amis?",
'friends_number_news_info' => "Spécifiez la quantité de news dans les news des amis",
'friends_number_news_clic' => "Nombre de nouvelles lorsque vous cliquez sur \"Afficher les nouvelles précédentes\"?",
'friends_number_news_clic_info' => "Spécifiez le nombre de nouvelles lorsque vous cliquez sur \"Afficher les nouvelles précédentes\".",
'friends_short_news_type' => "Type de nouvelles brèves dans les news d'amis ?",
'friends_short_news_type_info' => "Spécifiez le type d'affichage des nouvelles brèves dans les actualités des amis",
'friends_short_news_type_1' => "Standard",
'friends_short_news_type_2' => "Coupé",
'friends_reduc_image' => "Montrer la réduction d'image?",
'friends_reduc_image_info' => "Cette option ne fonctionne qu'avec la \"vue recadrée\" de la nouvelle.",
'friends_number_character' => "Nombre de caractères dans une nouvelle courte?",
'friends_number_character_info' => "Cette option ne fonctionne qu'avec les actualités \"recadrées\"<br />Si vous ne souhaitez pas définir cette limite, saisissez 0",
'friends_number_log' => "Nombre de journaux par page?",
'friends_number_log_info' => "Spécifiez le nombre de journaux par page",
'friends-enable_block_user' => "Activer le bloc \"Amis potentiels\"?",
'friends-enable_block_user_info' => "Choisissez d'inclure ou non le bloc \"Amis potentiels\"",
'friends-cache_block' => "Activer la mise en cache dans un bloc?",
'friends-cache_block_info' => "Si activé, la mise à jour du bloc ne se produira pas immédiatement",
'friends_status_user' => "Afficher le statut de l'utilisateur?",
'friends_status_user_info' => "Indiquez si vous souhaitez afficher le status de l'utilisateur \"En ligne/Hors ligne\"",
'friends_number_bloc_user' => "Nombre d'utilisateurs dans le bloc?",
'friends_number_bloc_user_info' => "Spécifiez le nombre d'utilisateurs affichés dans le bloc",
'friends_mail_11' => "Modéle des E-mails",
'friends_mail' => "Configurer l'email a envoyer pour les demande d'amis",
'friends_mail_0' => "Lorsque vous créez un modèle pour ce message, vous pouvez utiliser les balises suivantes:",
'friends_mail_1' => "le nom de l´utilisateur qui souhaite faire une demande d'ami",
'friends_mail_2' => "le nom de l´utilisateur qui a reçu la demande d'ami",
'friends_mail_3' => "Lien vers la demande d'ami",
'friends_mail_4' => "Configurer l'email a envoyer pour le refus de demande d'amis",
'friends_mail_5' => "Configurer l'email a envoyer pour l'acceptation de demande d'amis",
'friends_mail_6' => "Configurer l'email a envoyer lors du retrait d'un ami dans sa liste",
'friends_mail_7' => "Configurer l'email a envoyer pour une demande d'ajout",
'friends_mail_8' => "Configurer l'email a envoyer pour un rejet de demande d'amis",
'friends_mail_9' => "Configurer l'email a envoyer pour l'acceptation de demande d'amis",
'friends_mail_10' => "Configurer l'email a envoyer lors de la suppression d'un ami dans sa liste",
'friends_log' => "Logs des journaux",
'friends_log_0' => "Membres qui ont fait des demandes",
'friends_log_1' => "Membres qui ont reçu des demandes",
'friends_log_2' => "Données des logs",
'friends_log_3' => "Il n'y a aucune données pour les logs",
'friends_log_delete' => "Effacer les journaux",

4. Открыть language/French/website.lng и найти:
'wysiwyg_language'	=>  "fr",

Ниже добавить:
# DLE Friends
'fr_status' => "Le module a été désactivé par l'administrateur",
'fr_friends' => "Amis",
'fr_done' => "Terminé",
'fr_add_succes' => "L'utilisateur {user} a été ajouté aux amis avec succès!",
'fr_del_succes' => "L'utilisateur {user} a été supprimé de ma liste d'amis!",
'fr_del_act' => "Demande de suppression",
'fr_del_req_succes' => "Demande supprimée!",
'fr_del_do' => 'Supprimer des amis',
'fr_del_pm' => "Vous avez été retiré de votre liste d'amis",
'fr_send_pm' => "Écrire un message",
'fr_send_mail' => "Envoyer un e-mail",
'fr_activate' => "Confirmer",
'fr_activate_title' => "Demandes d'amis",
'fr_activate_fail_pm' => "Amitié refusée",
'fr_activate_ok_pm' => "Votre demande d'ami a été acceptée",
'fr_no_friends' => "Vous n'avez pas encore d'amis",
'fr_no_req_friends' => "Aucune nouvelle demande pour le moment",
'fr_user_no_friends' => "{user} n'a pas encore d'amis",
'fr_req' => "Demande d'ami",
'fr_add' => "Ajouter comme ami",
'fr_req_sent' => "Demande envoyée",
'fr_feed_off' => "Le module est temporairement désactivé",
'fr_feed_load' => "Afficher les flux précédents↓",
'fr_feed_error' => "Cette section n'est accessible qu'aux utilisateurs enregistrés",
'fr_nofeed' => "Vos amis n'ont encore rien posté",
'fr_timeago' => "une heure, deux heures, trois heures, quatre heures, cinq heures, six heures, il y a sec, il y a min, il y a, aujourd'hui à, hier à",
'fr_pm_er' => "Cet utilisateur ne peut recevoir que des messages d'amis!",
'fr_no_sugg' => "Aucun amis potentiels trouvé pour le moment!",
'fr_common' => "Amis en communs",
'fr_no_com' => "Aucun",
'fr_suggestions' => "Amis potentiels",
'fr_feed_title' => "Actualités des amis",
'fr_nopage' => "Désolé, cette page n'est pas disponible pour vous!",
'friends_link' => "Voir la demande d'ami",

5. Открыть шаблон userinfo.tpl и внутри тега:
[not-logged]

Найти:
<div class="tab-pane" id="settings">

Выше добавить:
[friends]
<div class="friends ussep">
		<span class="grey">Les amis ({friends-count}) [friends-link]Tous les amis[/friends-link] [requests]{requests-count} En attente de confirmation[/requests]</span>
		{friends}
		<div class="clr"></div>
</div>
[/friends]

Далее найти:
                   <div class="col-sm-6 col-md-6">
						<div class="form-group">
							<label class="form-label">Fuseaux horaires</label>
							<div class="customselectsearch">{timezones}</div>
						</div>
					</div>

Ниже добавить:
					<div class="col-sm-6 col-md-6">
						<div class="form-group">
							<label class="form-label">Ajouter en ami</label>
							<div class="p-checkbox"><input type="checkbox" id="friends_status_f" name="friends_status_f" value="1" {friends_status_f} /> <label for="friends_status_f">Autoriser à m'ajouter en ami</label></div>
						</div>
					</div>
					<div class="col-sm-6 col-md-6">
						<div class="form-group">
							<label class="form-label">Notification E-mail</label>
							<div class="p-checkbox"><input type="checkbox" id="friends_info_mail" name="friends_info_mail" value="1" {friends_info_mail} /> <label for="friends_info_mail">Recevoir des notifications de propositions d'amitié par e-mail</label></div>               
						</div>
					</div>
					<div class="col-sm-6 col-md-6">
						<div class="form-group">
							<label class="form-label">Recevoir des notifications</label>
							<div class="p-checkbox"><input type="checkbox" id="friends_info" name="friends_info_pm" value="1" {friends_info_pm} /> <label for="friends_info_pm">Recevoir les notifications de propositions d'amitié en MP</label></div>
						</div>
					</div>
					
                   <div class="col-sm-6 col-md-6">
						<div class="form-group">
							<label class="form-label">Recevoir des MP</label>
							<div class="p-checkbox"><input type="checkbox" id="friends_pm" name="friends_pm" value="1" {$friends_pm} /> <label for="friends_pm">Recevoir des <strong>messages personnels</strong> uniquement des amis</div>
						</div>
					</div>

6. Открыть шаблон login.tpl и найти:
    				<a class="dropdown-item" href="{profile-link}">

      					<i class="dropdown-icon fa fa-user"></i> Mon profile

    				</a> 

Ниже добавить:
    				<a class="dropdown-item" href="{friends-link}">

      					<i class="dropdown-icon fa fa-user"></i> Mes amis {request-count}

    				</a> 

    				<a class="dropdown-item" href="{feed-link}">

      					<i class="dropdown-icon fa fa-user"></i> Nouvelles des amis

    				</a>  

7. Открыть шаблон profile_popup.tpl и найти:
			<li>Commentaire(s): <b>{comm-num}</b> [ {comments} ]</li>

Ниже добавить:
			<li>Amis: {dofriends}</li>

8. Открыть шаблон main.tpl и найти:
</head>

Выше добавить:
<script src="{THEME}/js/friends.js"></script> 
<script src="{THEME}/js/classie.js"></script>

Далее найти:
{info}

Ниже добавить:
[available=main]{include file="engine/modules/friends_random.php"}[/available]

9. Открыть style.css шаблона и добавить:
/* DLE Friends */
#no-friends { padding: 6px; border: 1px solid #C0D4DE; background-color: #F3F7F9; color: #507D98; margin: 10px 0; }

.friends { margin-bottom: 10px; }
.friends ul, .prof-list { margin-top: 10px; }
.friends li { width: 100px; text-align: center; float: left; margin-right: 10px; }
.friends img { display: block; margin: 0 auto; width: 100px; height: 100px; }

.friends_table h3 { margin-bottom: 6px; font-size: 14px; line-height: 14px; font-weight: bold; }
	.friends_table h3 a span { font-size: 12px; font-weight: normal; color: #6C838E; }
	.friends_table h3 a span:hover { text-decoration: underline; }
.friends_table ul { list-style: none; margin: 0; padding: 0; }
.friends_table td { padding: 10px; border-bottom: 1px solid #b1bec3; font-size:12px; vertical-align: top; }
.friends_table .active { background-color: #c8c6c6; }
.contact_friends { width: 140px; }
.contact_friends a, .contact_friends span { display: block; padding: 6px; margin-bottom: 4px; line-height: 11px; }
.contact_friends a:hover { background-color: #DAE7ED; text-decoration: none; }

#allfriends .rcol { margin-top: 4px; }
#allfriends h2.lcol a { text-decoration: underline; }
#allfriends h2.lcol a:hover { text-decoration: none; }

#friends_feed { margin: 0 15px; }
#friends_feed table { width: 100%; border-collapse: collapse; border-spacing: 0; margin-bottom: 25px; }
#friends_feed td { vertical-align: top; text-align: left; }
#friends_feed td.f_avatar, #friends_feed td.f_author { border: 1px solid; border-color: #7b939d #b1bec3 #b1bec3; vertical-align: middle; background-color: #F4F8FA; }
#friends_feed td.f_avatar { width: 50px; border-spacing: 10px; padding: 2px; border-right-width: 0; }
#friends_feed td.f_avatar img { width: 50px; height: 50px; }
#friends_feed td.f_author { padding: 0 10px; border-left-width: 0; border-style: solid; font-size: 11px; }
#friends_feed td.f_author h3 { fonst-size: 14px; font-weight: bold; margin-bottom: 4px; }
#friends_feed td.f_story { padding: 15px 0; }
#friends_feed .f_cover { width: 104px; max-height: 104px; overflow: hidden; margin-right: 10px; float: left; border: 1px solid #b1bec3; background-color: #F4F8FA; }
	#friends_feed .f_cover img { width: 100px; padding: 2px; }
#friends_feed td.f_det { border-top: 1px solid #b1bec3; padding: 5px 0; }

.feed_loader { padding: 10px; text-align: center; border-top: 1px solid #a9a7a7; color: #06a3f4; margin-bottom: 20px; }
.f_active:hover { border-color: #a9a7a7; background-color: #d5d4d4; cursor: pointer; }

.wrapper-friend
{
	width: 60%;
	height: 304px;
	  margin: 5% auto;
}
.wrapper-dropdown-2 {
  position: relative;
  padding: 19px 20px 19px 20px;
  background: #7bbbf7;
  outline: none;
  color: #fff;
  font-size: 3em;
  border-radius: 5px;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  -o-border-radius: 5px;
  text-transform: capitalize;
  font-weight: 200;
  text-align: center;
}
.wrapper-dropdown-2 .dropdown {
  /* Size & position */
    position: absolute;
    top: 100%;
    left: 0px;
    right: 0px;
	border-radius:5px;
	-webkit-border-radius:5px;
	-moz-border-radius:5px;
	-o-border-radius:5px;
    /* Styles */
    -webkit-transition: all 0.3s ease-out;
    -moz-transition: all 0.3s ease-out;
    -ms-transition: all 0.3s ease-out;
    -o-transition: all 0.3s ease-out;
    transition: all 0.3s ease-out;
    list-style: none;
    z-index:1;
    /* Hiding */
    opacity: 0;
    pointer-events: none;
}
.wrapper-dropdown-2 .dropdown li:last-child{
	border-bottom:none;
}
.dropdown li:hover{
	color:#ED6F70;
} 
.wrapper-dropdown-2 .dropdown  li:last-child{
	border-bottom-left-radius:5px;
	-webkit-border-bottom-left-radius:5px;
	-moz-border-bottom-left-radius:5px;
	-o-border-bottom-left-radius:5px;
	border-bottom-right-radius:5px;
	-webkit-border-bottom-right-radius:5px;
	-moz-border-bottom-right-radius:5px;
	-o-border-bottom-right-radius:5px;
}
.wrapper-dropdown-2 .dropdown  li:nth-child(2),.wrapper-dropdown-2 .dropdown  li:nth-child(3),.wrapper-dropdown-2 .dropdown  li:nth-child(4)
{
	border-radius: none;
}
/* Active state */
.wrapper-dropdown-2.active .dropdown {
    opacity: 1;
    pointer-events: auto;
}
.grids-left {
	float: left;
}
.grids-left img {
  padding-top: 10px;
  border-radius:50px;
}
.friend-grid {
	width: 70px;
	height: 33px;
	float: right;
	display: block;
	font-size: 16px;
	cursor: pointer;
}
.friend-grid:hover {
	width: 70px;
	height: 33px;
	float: right;
	display: block;
}
li.info-grid {
  padding-left: 1em;
}
.friend-grid:hover .info-grid {
  color: #ed6f70;
  padding: 7% 0 0% 42%;
}
.grids-right h2 {
text-align: center;
  color: #999;
  border-bottom: 1px solid#D3D3D3;
  width: 55%;
  margin: 0 auto;
  padding: 0.5em;
  font-size: 18px;
  font-weight: bold;
}
ul.grids-right-info li {
  display: inline-block;
  width: 75%;
  padding: 0px 28px 0 45px;
  text-align:left;
  font-size: 13px;
  color: #999;
}
.grids-right-info li {
  float:left;
}
/* DLE Friends */

dle-friends-1_6-druzja-na-sajte.zip
Создайте аккаунт или авторизуйтесь для скачивания
 
Версия DLE: 13.2-15.x
Кодировка: utf-8
Версия PHP: 7.х-8.х
Интерфейс: Французский
Автор: Elegant Division
Модификация: SX2 + DarkLane
Источник

Примечание от Oxigen: при создании статьи использовался машинный перевод с французского

Информация
Посетители, находящиеся в группе Гость, не могут оставлять комментарии к данной публикации.