Passed
Pull Request — master (#9)
by Michael
03:24
created

bookmark.php (5 issues)

1
<?php
2
3
use XoopsModules\Mylinks;
4
5
require_once __DIR__ . '/header.php';
6
//xoops_load('utility', $xoopsModule->getVar('dirname'));
7
$lid = Mylinks\Utility::cleanVars($_GET, 'lid', 0, 'int', ['min' => 0]);
0 ignored issues
show
'lid' of type string is incompatible with the type XoopsModules\Mylinks\unknown_type expected by parameter $key of XoopsModules\Mylinks\Utility::cleanVars(). ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

7
$lid = Mylinks\Utility::cleanVars($_GET, /** @scrutinizer ignore-type */ 'lid', 0, 'int', ['min' => 0]);
Loading history...
8
$cid = Mylinks\Utility::cleanVars($_GET, 'cid', 0, 'int', ['min' => 0]);
9
if (empty($lid) || empty($cid)) {
10
    redirect_header('index.php', 3, _MD_MYLINKS_IDERROR);
11
}
12
/*
13
$lid = isset($_GET['lid']) ? (int)($_GET['lid']): 0;
14
$cid = isset($_GET['cid']) ? (int)($_GET['cid']): 0;
15
if ( empty($lid) ) {
16
  die("No lid!");
17
} elseif ( empty($cid) ) {
18
  die("No cid!");
19
}
20
*/
21
$result = $xoopsDB->query('SELECT l.lid, l.cid, l.title, l.url FROM ' . $xoopsDB->prefix('mylinks_links') . ' l, ' . $xoopsDB->prefix('mylinks_text') . " t where l.lid={$lid} AND l.lid=t.lid AND status>0");
22
if (!$result) {
23
    redirect_header('index.php', 3, _MD_MYLINKS_NORECORDFOUND);
24
}
25
list($lid, $cid, $ltitle, $url) = $xoopsDB->fetchRow($result);
26
27
//bookmark func
28
switch ($mylinks_can_bookmark) {
29
    case _MD_MYLINKS_MEMBERONLY:
30
        $can_bookmark = $xoopsUser ? _MD_MYLINKS_ALLOW : _MD_MYLINKS_DISALLOW;
31
        break;
32
    case _MD_MYLINKS_ALLOW:
33
        $can_bookmark = _MD_MYLINKS_ALLOW;
34
        break;
35
    case _MD_MYLINKS_DISALLOW:
36
    default:
37
        $can_bookmark = _MD_MYLINKS_DISALLOW;
38
        break;
39
}
40
if (_MD_MYLINKS_DISALLOW == $can_bookmark) {
41
    redirect_header('index.php', 3, _MD_MYLINKS_BOOKMARKDISALLOWED);
42
}
43
44
/*
45
$can_bookmark = 0;
46
if ($mylinks_can_bookmark == 0) {
47
  $can_bookmark = 0;
48
} elseif ($mylinks_can_bookmark == 1) {
49
  $can_bookmark = 1;
50
} elseif ($mylinks_can_bookmark == 2) {
51
  if ($xoopsUser) {
52
  $can_bookmark =1;
53
  } else {
54
  $can_bookmark =0;
55
  }
56
} else {
57
  $can_bookmark = 0;
58
}
59
60
if ( empty($can_bookmark) ) {
61
  die("Not allowed now!");
62
}
63
64
$can_qrcode = 0;
65
if ($mylinks_can_qrcode == 0) {
66
  $can_qrcode = 0;
67
} elseif ($mylinks_can_qrcode == 1) {
68
  $can_qrcode = 1;
69
} elseif ($mylinks_can_qrcode == 2) {
70
  if ($xoopsUser) {
71
  $can_qrcode =1;
72
  } else {
73
  $can_qrcode =0;
74
  }
75
} else {
76
  $can_qrcode = 0;
77
}
78
79
if ( empty($can_qrcode) ) {
80
  die("Not allowed now!");
81
}
82
*/
83
84
xoops_header(false);
85
86
$myts = \MyTextSanitizer::getInstance();
87
88
$sitetitle = $myts->htmlSpecialChars($myts->stripSlashesGPC($ltitle));
89
$siteurl   = $myts->htmlSpecialChars($url);
90
91
$siteurl_en   = urlencode(mb_convert_encoding($siteurl, 'UTF-8', _CHARSET));
92
$sitetitle_en = urlencode(mb_convert_encoding($sitetitle, 'UTF-8', _CHARSET));
93
94
/**
95
 * @param                     $str
96
 * @param string              $to
97
 * @param string              $from
98
 * @return array|mixed|string
99
 */
100
function bookmark_convert_encoding($str, $to = 'SJIS', $from = _CHARSET)
101
{
102
    if (function_exists('mb_convert_encoding')) {
103
        if (is_array($str)) {
104
            foreach ($str as $key => $val) {
105
                $str[$key] = bookmark_convert_encoding($val, $to, $from);
106
            }
107
108
            return $str;
109
        }
110
111
        return mb_convert_encoding($str, $to, $from);
112
    }
113
114
    return $str;
115
}
116
117
/**
118
 * @param string $data
119
 * @return array|mixed|string
120
 */
121
function bookmark_qrcode_encoding($data = '')
122
{
123
    $data = bookmark_convert_encoding($data);
124
    $data = rawurlencode($data);
125
    $data = str_replace('%20', '+', $data);
126
127
    return $data;
128
}
129
130
$qrcodedata_url = bookmark_qrcode_encoding($siteurl);
131
$siteqrcode     = "<img alt='" . $siteurl . "' title='" . $siteurl . "'src='" . XOOPS_URL . "/modules/qrcode/qrcode_image.php?d=$qrcodedata_url&amp;e=M&amp;s=4&amp;v=0&amp;t=P&amp;rgb=000000'>\n";
132
133
/*
134
$qrcodedata_docomo_bookmark = bookmark_qrcode_encoding("MEBKM:TITLE:".$sitetitle.";URL:".$siteurl.";;");
135
$bookmarkqrcode_docomo = "<img alt='docomo' title='docomo'src='".XOOPS_URL."/modules/qrcode/qrcode_image.php?d=$qrcodedata_docomo_bookmark&amp;e=M&amp;s=4&amp;v=0&amp;t=P&amp;rgb=000000'>\n";
136
137
$qrcodedata_softbank_bookmark = bookmark_qrcode_encoding("TITLE:".$sitetitle."\r\nURL:".$siteurl."\r\n");
138
$bookmarkqrcode_softbank = "<img alt='softbank and au' title='softbank and au'src='".XOOPS_URL."/modules/qrcode/qrcode_image.php?d=$qrcodedata_softbank_bookmark&amp;e=M&amp;s=4&amp;v=0&amp;t=P&amp;rgb=000000'>\n";
139
140
$qrcodedata_bookmark = bookmark_qrcode_encoding("TITLE:\r\n".$sitetitle."\r\nURL:\r\n".$siteurl."\r\n");
141
$bookmarkqrcode = "<img alt='title and url' title='title and url'src='".XOOPS_URL."/modules/qrcode/qrcode_image.php?d=$qrcodedata_bookmark&amp;e=M&amp;s=4&amp;v=0&amp;t=P&amp;rgb=000000'>\n";
142
*/
143
144
//google pagerank
145
define('GOOGLE_MAGIC', 0xE6359A60);
146
147
/**
148
 * @param $a
149
 * @param $b
150
 * @return int|number
151
 */
152
function zeroFill($a, $b)
153
{
154
    $z = hexdec(80000000);
155
    if ($z & $a) {
156
        $a = ($a >> 1);
157
        $a &= (~$z);
158
        $a |= 0x40000000;
159
        $a = ($a >> ($b - 1));
160
    } else {
161
        $a = ($a >> $b);
162
    }
163
164
    return $a;
165
}
166
167
/**
168
 * @param $a
169
 * @param $b
170
 * @param $c
171
 * @return array
172
 */
173
function mix($a, $b, $c)
174
{
175
    $a -= $b;
176
    $a -= $c;
177
    $a ^= zeroFill($c, 13);
178
    $b -= $c;
179
    $b -= $a;
180
    $b ^= ($a << 8);
181
    $c -= $a;
182
    $c -= $b;
183
    $c ^= zeroFill($b, 13);
184
    $a -= $b;
185
    $a -= $c;
186
    $a ^= zeroFill($c, 12);
187
    $b -= $c;
188
    $b -= $a;
189
    $b ^= ($a << 16);
190
    $c -= $a;
191
    $c -= $b;
192
    $c ^= zeroFill($b, 5);
193
    $a -= $b;
194
    $a -= $c;
195
    $a ^= zeroFill($c, 3);
196
    $b -= $c;
197
    $b -= $a;
198
    $b ^= ($a << 10);
199
    $c -= $a;
200
    $c -= $b;
201
    $c ^= zeroFill($b, 15);
202
203
    return [$a, $b, $c];
204
}
205
206
/**
207
 * @param        $url
208
 * @param null   $length
0 ignored issues
show
Documentation Bug introduced by
Are you sure the doc-type for parameter $length is correct as it would always require null to be passed?
Loading history...
209
 * @param int    $init
210
 * @return mixed
211
 */
212
function GoogleCH($url, $length = null, $init = GOOGLE_MAGIC)
213
{
214
    if (null === $length) {
0 ignored issues
show
The condition null === $length is always true.
Loading history...
215
        $length = count($url);
216
    }
217
    $a   = $b = 0x9E3779B9;
218
    $c   = $init;
219
    $k   = 0;
220
    $len = $length;
221
    while ($len >= 12) {
222
        $a   += ($url[$k + 0] + ($url[$k + 1] << 8) + ($url[$k + 2] << 16) + ($url[$k + 3] << 24));
223
        $b   += ($url[$k + 4] + ($url[$k + 5] << 8) + ($url[$k + 6] << 16) + ($url[$k + 7] << 24));
224
        $c   += ($url[$k + 8] + ($url[$k + 9] << 8) + ($url[$k + 10] << 16) + ($url[$k + 11] << 24));
225
        $mix = mix($a, $b, $c);
226
        $a   = $mix[0];
227
        $b   = $mix[1];
228
        $c   = $mix[2];
229
        $k   += 12;
230
        $len -= 12;
231
    }
232
233
    $c += $length;
234
    switch ($len) {
235
        case 11:
236
            $c += ($url[$k + 10] << 24);
237
        // no break
238
        case 10:
239
            $c += ($url[$k + 9] << 16);
240
        // no break
241
        case 9:
242
            $c += ($url[$k + 8] << 8);
243
        // no break
244
        case 8:
245
            $b += ($url[$k + 7] << 24);
246
        // no break
247
        case 7:
248
            $b += ($url[$k + 6] << 16);
249
        // no break
250
        case 6:
251
            $b += ($url[$k + 5] << 8);
252
        // no break
253
        case 5:
254
            $b += $url[$k + 4];
255
        // no break
256
        case 4:
257
            $a += ($url[$k + 3] << 24);
258
        // no break
259
        case 3:
260
            $a += ($url[$k + 2] << 16);
261
        // no break
262
        case 2:
263
            $a += ($url[$k + 1] << 8);
264
        // no break
265
        case 1:
266
            $a += $url[$k + 0];
267
    }
268
    $mix = mix($a, $b, $c);
269
270
    return $mix[2];
271
}
272
273
/**
274
 * @param $string
275
 * @return mixed
276
 */
277
function strord($string)
278
{
279
    for ($i = 0, $iMax = mb_strlen($string); $i < $iMax; ++$i) {
280
        $result[$i] = ord($string[$i]);
281
    }
282
283
    return $result;
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable $result does not seem to be defined for all execution paths leading up to this point.
Loading history...
284
}
285
286
/**
287
 * @param $url
288
 * @return string
289
 */
290
function getrank($url)
291
{
292
    $pagerank = '0';
293
    $ch       = '6' . GoogleCH(strord('info:' . $url));
294
295
    $fp = fsockopen('www.google.com', 80, $errno, $errstr, 30);
296
    if (!$fp) {
0 ignored issues
show
$fp is of type false|resource, thus it always evaluated to false.
Loading history...
297
        $pagerank = '-1';
298
        //echo "$errstr ($errno)<br>\n";
299
    } else {
300
        $out = 'GET /search?client=navclient-auto&ch=' . $ch . '&features=Rank&q=info:' . $url . " HTTP/1.1\r\n";
301
        $out .= "Host: www.google.com\r\n";
302
        $out .= "Connection: Close\r\n\r\n";
303
304
        fwrite($fp, $out);
305
306
        while (!feof($fp)) {
307
            $data = fgets($fp, 128);
308
            $pos  = mb_strpos($data, 'Rank_');
309
            if (false === $pos) {
310
            } else {
311
                $pagerank = mb_substr($data, $pos + 9);
312
            }
313
        }
314
        fclose($fp);
315
    }
316
317
    return $pagerank;
318
}
319
320
echo '
321
<script type="text/javascript">
322
<!--//
323
/***********************************************
324
* Bookmark site script-Dynamic Drive DHTML code library (www.dynamicdrive.com)
325
* This notice MUST stay intact for legal use
326
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
327
***********************************************/
328
/* Modified to support Opera */
329
function bookmarksite(title,url)
330
{
331
if (window.sidebar) // firefox
332
  window.sidebar.addPanel(title, url, "");
333
else if (window.opera && window.print) { // opera
334
  var elem = document.createElement("a");
335
  elem.setAttribute("href",url);
336
  elem.setAttribute("title",title);
337
  elem.setAttribute("rel","sidebar");
338
  elem.click();
339
} else if(document.all)// ie
340
  window.external.AddFavorite(url, title);
341
}
342
//-->
343
</script>
344
</head>
345
<body>
346
<script type="text/javascript">
347
<!--//
348
var addtoMethod=0;
349
//-->
350
</script>
351
<script src="'
352
     . XOOPSMYLINKINCURL
353
     . '/addto-multi.js" type="text/javascript"></script>
354
355
  <table style="width: 95%; margin: auto;" class="outer">
356
    <tr><td colspan="2" style="text-align: center;"><h3>'
357
     . _MD_MYLINKS_BOOKMARK_SERVICE
358
     . '</h3></td></tr>
359
    <tr><td class="head" style="text-align: center; font-weight: bold;">'
360
     . _MD_MYLINKS_SITETITLE
361
     . '</td><td class="even" style="text-align: center;">'
362
     . $sitetitle
363
     . '</td></tr>
364
    <tr><td class="head" style="text-align: center; font-weight: bold;">'
365
     . _MD_MYLINKS_SITEURL
366
     . '</td><td class="even" style="text-align: center;"><a href="'
367
     . $siteurl
368
     . '" target="_blank">'
369
     . $siteurl
370
     . '</a><br>(&nbsp;<strong>Google PageRank:</strong>&nbsp;<img src="'
371
     . XOOPSMYLINKIMGURL
372
     . '/addto/pr'
373
     . getrank($siteurl)
374
     . '.gif" alt="pagerank">&nbsp;)</td></tr>';
375
if ($mylinks_can_qrcode) {
376
    echo '<tr><td  class="head" style="text-align: center; font-weight: bold;">' . _MD_MYLINKS_QRCODE . '<br>(' . _MD_MYLINKS_SITEURL . ')</td><td class="even" style="text-align: center;">' . $siteqrcode . '</td></tr>';
377
}
378
echo '
379
    <tr><td class="head" style="text-align: center; font-weight: bold;">' . _MD_MYLINKS_WEBBROWSER . '</td><td  class="even" style="text-align: center;">
380
      <a href="javascript:void(0);" onclick="bookmarksite(\'' . $sitetitle . '\', \'' . $siteurl . '\');">' . _MD_MYLINKS_BROWSERBOOKMARK . '</a>
381
    </td></tr>
382
  </table>
383
  <br><br>
384
<table style="width: 90%; margin: auto;">
385
<tr class="foot"><td colspan="2" style="text-align: center; font-weight: bold;">' . _MD_MYLINKS_BOOKMARK_ADDTO . '...</td></tr>
386
<tr><td class="even">
387
<span title="' . _MD_MYLINKS_BOOKMARK_ADDTO . ' Blink"><a style="cursor:pointer;" onclick="addto(1,\'' . $siteurl_en . '\', \'' . $sitetitle_en . '\')">
388
<img src="' . XOOPSMYLINKIMGURL . '/addto/AddTo_Blink.gif" style="width: 16px; height: 16px; border-width: 0px;" alt="Blink"> Blink</a></span>
389
<br>
390
<span title="' . _MD_MYLINKS_BOOKMARK_ADDTO . ' Delicious"><a style="cursor:pointer;" onclick="addto(2,\'' . $siteurl_en . '\', \'' . $sitetitle_en . '\')">
391
<img src="' . XOOPSMYLINKIMGURL . '/addto/AddTo_Delicious.gif" style="width: 16px; height: 16px; border-width: 0px;" alt="Del.icio.us"> Del.icio.us</a></span>
392
<br>
393
<span title="' . _MD_MYLINKS_BOOKMARK_ADDTO . ' Digg"><a style="cursor:pointer;" onclick="addto(3,\'' . $siteurl_en . '\', \'' . $sitetitle_en . '\')">
394
<img src="' . XOOPSMYLINKIMGURL . '/addto/AddTo_Digg.gif" style="width: 16px; height: 16px; border-width: 0px;" alt="Digg"> Digg</a></span>
395
<br>
396
<span title="' . _MD_MYLINKS_BOOKMARK_ADDTO . ' Furl"><a style="cursor:pointer;" onclick="addto(4,\'' . $siteurl_en . '\', \'' . $sitetitle_en . '\')">
397
<img src="' . XOOPSMYLINKIMGURL . '/addto/AddTo_Furl.gif" style="width: 16px; height: 16px; border-width: 0px;" alt="Furl"> Furl</a></span>
398
<br>
399
<span title="' . _MD_MYLINKS_BOOKMARK_ADDTO . ' Blue Dot"><a style="cursor:pointer;" onclick="addto(9,\'' . $siteurl_en . '\', \'' . $sitetitle_en . '\')">
400
<img src="' . XOOPSMYLINKIMGURL . '/addto/AddTo_Bluedot.png" style="width: 16px; height: 16px; border-width: 0px;" alt="Bluedot"> Blue Dot</a></span>
401
<br>
402
<span title="' . _MD_MYLINKS_BOOKMARK_ADDTO . ' BookmarkTracker"><a style="cursor:pointer;" onclick="addto(11,\'' . $siteurl_en . '\', \'' . $sitetitle_en . '\')">
403
<img src="' . XOOPSMYLINKIMGURL . '/addto/AddTo_Bookmarktracker.gif" style="width: 16px; height: 16px; border-width: 0px;" alt="Bookmarktracker"> BookmarkTracker</a></span>
404
<br>
405
<span title="' . _MD_MYLINKS_BOOKMARK_ADDTO . ' Hatena"><a style="cursor:pointer;" onclick="addto(13,\'' . $siteurl_en . '\', \'' . $sitetitle_en . '\')">
406
<img src="' . XOOPSMYLINKIMGURL . '/addto/AddTo_Hatena.gif" style="width: 16px; height: 16px; border-width: 0px;" alt="Hatena"> Hatena</a></span>
407
<br>
408
<span title="' . _MD_MYLINKS_BOOKMARK_ADDTO . ' Magnolia"><a style="cursor:pointer;" onclick="addto(15,\'' . $siteurl_en . '\', \'' . $sitetitle_en . '\')">
409
<img src="' . XOOPSMYLINKIMGURL . '/addto/AddTo_Magnolia.png" style="width: 16px; height: 16px; border-width: 0px;" alt="Magnolia"> Magnolia</a></span>
410
<br>
411
<span title="' . _MD_MYLINKS_BOOKMARK_ADDTO . ' Nifty Clip"><a style="cursor:pointer;" onclick="addto(17,\'' . $siteurl_en . '\', \'' . $sitetitle_en . '\')">
412
<img src="' . XOOPSMYLINKIMGURL . '/addto/AddTo_Niftyclip.gif" style="width: 16px; height: 16px; border-width: 0px;" alt="Nifty Clip"> Nifty Clip</a></span>
413
<br>
414
<span title="' . _MD_MYLINKS_BOOKMARK_ADDTO . ' Pookmark"><a style="cursor:pointer;" onclick="addto(19,\'' . $siteurl_en . '\', \'' . $sitetitle_en . '\')">
415
<img src="' . XOOPSMYLINKIMGURL . '/addto/AddTo_Pookmark.gif" style="width: 16px; height: 16px; border-width: 0px;" alt="Pookmark"> Pookmark</a></span>
416
<br>
417
<span title="' . _MD_MYLINKS_BOOKMARK_ADDTO . ' Tailrank"><a style="cursor:pointer;" onclick="addto(21,\'' . $siteurl_en . '\', \'' . $sitetitle_en . '\')">
418
<img src="' . XOOPSMYLINKIMGURL . '/addto/AddTo_Tailrank.png" style="width: 16px; height: 16px; border-width: 0px;" alt="Tailrank"> Tailrank</a></span>
419
<br>
420
421
  </td>
422
  <td class="odd">
423
<span title="' . _MD_MYLINKS_BOOKMARK_ADDTO . ' Google"><a style="cursor:pointer;" onclick="addto(5,\'' . $siteurl_en . '\', \'' . $sitetitle_en . '\')">
424
<img src="' . XOOPSMYLINKIMGURL . '/addto/AddTo_Google.gif" style="width: 16px; height: 16px; border-width: 0px;" alt="Google"> Google</a></span>
425
<br>
426
<span title="' . _MD_MYLINKS_BOOKMARK_ADDTO . ' Simpy"><a style="cursor:pointer;" onclick="addto(6,\'' . $siteurl_en . '\', \'' . $sitetitle_en . '\')">
427
<img src="' . XOOPSMYLINKIMGURL . '/addto/AddTo_Simpy.gif" style="width: 16px; height: 16px; border-width: 0px;" alt="Simpy"> Simpy</a></span>
428
<br>
429
<span title="' . _MD_MYLINKS_BOOKMARK_ADDTO . ' Spurl"><a style="cursor:pointer;" onclick="addto(8,\'' . $siteurl_en . '\', \'' . $sitetitle_en . '\')">
430
<img src="' . XOOPSMYLINKIMGURL . '/addto/AddTo_Spurl.gif" style="width: 16px; height: 16px; border-width: 0px;" alt="Spurl"> Spurl</a></span>
431
<br>
432
<span title="' . _MD_MYLINKS_BOOKMARK_ADDTO . ' Yahoo! MyWeb"><a style="cursor:pointer;" onclick="addto(7,\'' . $siteurl_en . '\', \'' . $sitetitle_en . '\')">
433
<img src="' . XOOPSMYLINKIMGURL . '/addto/AddTo_Yahoo.gif" style="width: 16px; height: 16px; border-width: 0px;" alt="Y!MyWeb"> Y! MyWeb</a></span>
434
<br>
435
<span title="' . _MD_MYLINKS_BOOKMARK_ADDTO . ' Blogmarks"><a style="cursor:pointer;" onclick="addto(10,\'' . $siteurl_en . '\', \'' . $sitetitle_en . '\')">
436
<img src="' . XOOPSMYLINKIMGURL . '/addto/AddTo_Blogmarks.png" style="width: 16px; height: 16px; border-width: 0px;" alt="Blogmarks"> Blogmarks</a></span>
437
<br>
438
<span title="' . _MD_MYLINKS_BOOKMARK_ADDTO . ' FC2"><a style="cursor:pointer;" onclick="addto(12,\'' . $siteurl_en . '\', \'' . $sitetitle_en . '\')">
439
<img src="' . XOOPSMYLINKIMGURL . '/addto/AddTo_FC2.gif" style="width: 16px; height: 16px; border-width: 0px;" alt="FC2"> FC2 Bookmark</a></span>
440
<br>
441
<span title="' . _MD_MYLINKS_BOOKMARK_ADDTO . ' Livedoor Clip"><a style="cursor:pointer;" onclick="addto(14,\'' . $siteurl_en . '\', \'' . $sitetitle_en . '\')">
442
<img src="' . XOOPSMYLINKIMGURL . '/addto/AddTo_Livedoorclip.gif" style="width: 16px; height: 16px; border-width: 0px;" alt="Livedoor Clip"> Livedoor Clip</a></span>
443
<br>
444
<span title="' . _MD_MYLINKS_BOOKMARK_ADDTO . ' Netscape"><a style="cursor:pointer;" onclick="addto(16,\'' . $siteurl_en . '\', \'' . $sitetitle_en . '\')">
445
<img src="' . XOOPSMYLINKIMGURL . '/addto/AddTo_Netscape.gif" style="width: 16px; height: 16px; border-width: 0px;" alt="Netscape"> Netscape</a></span>
446
<br>
447
<span title="' . _MD_MYLINKS_BOOKMARK_ADDTO . ' Newsvine"><a style="cursor:pointer;" onclick="addto(18,\'' . $siteurl_en . '\', \'' . $sitetitle_en . '\')">
448
<img src="' . XOOPSMYLINKIMGURL . '/addto/AddTo_Newsvine.gif" style="width: 16px; height: 16px; border-width: 0px;" alt="Newsvine"> Newsvine</a></span>
449
<br>
450
<span title="' . _MD_MYLINKS_BOOKMARK_ADDTO . ' Reddit"><a style="cursor:pointer;" onclick="addto(20,\'' . $siteurl_en . '\', \'' . $sitetitle_en . '\')">
451
<img src="' . XOOPSMYLINKIMGURL . '/addto/AddTo_Reddit.gif" style="width: 16px; height: 16px; border-width: 0px;" alt="Reddit"> Reddit</a></span>
452
<br>
453
<span title="' . _MD_MYLINKS_BOOKMARK_ADDTO . ' Windows Live"><a style="cursor:pointer;" onclick="addto(22,\'' . $siteurl_en . '\', \'' . $sitetitle_en . '\')">
454
<img src="' . XOOPSMYLINKIMGURL . '/addto/AddTo_Windowslive.gif" style="width: 16px; height: 16px; border-width: 0px;" alt="Windows Live"> Windows Live</a></span>
455
  </td>
456
  </tr></table>
457
<br><br>
458
';
459
460
xoops_footer();
461