dolibarr 21.0.0-beta
commonsocialnetworks.class.php
Go to the documentation of this file.
1<?php
2/* Copyright (C) 2012 Regis Houssin <regis.houssin@inodbox.com>
3 * Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <https://www.gnu.org/licenses/>.
17 */
18
30{
34 public $socialnetworks;
35
36
44 public function showSocialNetwork($socialnetworks, $colspan = 4)
45 {
46 global $object, $form, $langs;
47
48 $nbofnetworks = count($socialnetworks);
49 $nbactive = 0;
50 foreach ($socialnetworks as $key => $value) {
51 if (!empty($object->socialnetworks[$key])) {
52 $nbactive++;
53 }
54 }
55
56 if ($nbofnetworks > 1) {
57 print '<tr><td colspan="'.$colspan.'"><br><a class="paddingtop paddingbottom socialnetworklnk onreposition" id="socialnetworklnk" href="#"></a>';
58 //print '</td>';
59 //print '<td'.($colspan ? ' colspan="'.($colspan-1).'"' : '').'>';
60 //print '<br>';
61 print ' <a class="paddingtop paddingbottom socialnetworklnk onreposition" href="#"><span class="badge badge-secondary socialnetworklnk">'.$nbactive.'</span></a>';
62 print '</td>';
63 print '</tr>';
64 }
65 foreach ($socialnetworks as $key => $value) {
66 if ($value['active'] || $nbofnetworks == 1) {
67 print '<tr class="soc_network">';
68 print '<td><label for="'.$value['label'].'">'.$form->editfieldkey($value['label'], $key, '', $object, 0).'</label></td>';
69 print '<td colspan="3">';
70 if (!empty($value['icon'])) {
71 print '<span class="fab '.$value['icon'].' pictofixedwidth"></span>';
72 }
73 print '<input type="text" name="'.$key.'" id="'.$key.'" class="minwidth100 maxwidth300 widthcentpercentminusx" maxlength="80" value="'.dol_escape_htmltag(GETPOSTISSET($key) ? GETPOST($key, 'alphanohtml') : (empty($object->socialnetworks[$key]) ? '' : $object->socialnetworks[$key])).'">';
74 print '</td>';
75 print '</tr>';
76 } elseif (!empty($object->socialnetworks[$key])) {
77 print '<input type="hidden" name="'.$key.'" value="'.$object->socialnetworks[$key].'">';
78 }
79 }
80
81 if ($nbofnetworks > 1) {
82 print '<script nonce="'.getNonce().'" type="text/javascript">
83 $("document").ready(function() { toogleSocialNetwork(false); });
84
85 jQuery(".socialnetworklnk").click(function() {
86 console.log("Click on link");
87 toogleSocialNetwork(true);
88 return false;
89 });
90
91 function toogleSocialNetwork(chgCookieState) {
92 const lnk = $("#socialnetworklnk");
93 const items = $(".soc_network");
94 var cookieState = document.cookie.split(";").some((item) => item.trim().startsWith("DOLUSER_SOCIALNETWORKS_SHOW=true")) == true;
95
96 if (!chgCookieState) cookieState = !cookieState ;
97
98 if (cookieState) {
99 items.hide();
100 lnk.text("'.dol_escape_js($langs->transnoentitiesnoconv("ShowSocialNetworks")).'...");
101 if (chgCookieState) { document.cookie = "DOLUSER_SOCIALNETWORKS_SHOW=false; SameSite=Strict"};
102 } else {
103 items.show();
104 lnk.text("'.dol_escape_js($langs->transnoentitiesnoconv("HideSocialNetworks")).'...");
105 if (chgCookieState) { document.cookie = "DOLUSER_SOCIALNETWORKS_SHOW=true; SameSite=Strict";}
106 }
107 }
108 </script>';
109 }
110 }
111}
if( $user->socid > 0) if(! $user->hasRight('accounting', 'chartofaccount')) $object
Definition card.php:66
showSocialNetwork($socialnetworks, $colspan=4)
Show social network part if the module is enabled with hiding functionality.
trait CommonSocialNetworks
Superclass for social networks.
dol_escape_js($stringtoescape, $mode=0, $noescapebackslashn=0)
Returns text escaped for inclusion into javascript code.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
dol_escape_htmltag($stringtoescape, $keepb=0, $keepn=0, $noescapetags='', $escapeonlyhtmltags=0, $cleanalsojavascript=0)
Returns text escaped for inclusion in HTML alt or title or value tags, or into values of HTML input f...