diff options
Diffstat (limited to 'tpl')
-rw-r--r-- | tpl/default/changetag.html | 2 | ||||
-rw-r--r-- | tpl/default/configure.html | 39 | ||||
-rw-r--r-- | tpl/default/css/shaarli.css | 120 | ||||
-rw-r--r-- | tpl/default/img/apple-touch-icon.png | bin | 0 -> 18276 bytes | |||
-rw-r--r-- | tpl/default/import.html | 8 | ||||
-rw-r--r-- | tpl/default/includes.html | 3 | ||||
-rw-r--r-- | tpl/default/install.html | 21 | ||||
-rw-r--r-- | tpl/default/js/shaarli.js | 13 | ||||
-rw-r--r-- | tpl/default/linklist.html | 93 | ||||
-rw-r--r-- | tpl/default/linklist.paging.html | 4 | ||||
-rw-r--r-- | tpl/default/page.footer.html | 15 | ||||
-rw-r--r-- | tpl/default/pluginsadmin.html | 22 | ||||
-rw-r--r-- | tpl/default/tag.cloud.html | 6 | ||||
-rw-r--r-- | tpl/default/tag.list.html | 4 |
14 files changed, 244 insertions, 106 deletions
diff --git a/tpl/default/changetag.html b/tpl/default/changetag.html index 49dd20d9..6606c4fa 100644 --- a/tpl/default/changetag.html +++ b/tpl/default/changetag.html | |||
@@ -32,7 +32,7 @@ | |||
32 | </div> | 32 | </div> |
33 | </form> | 33 | </form> |
34 | 34 | ||
35 | <p>You can also edit tags in the <a href="?do=taglist&sort=usage">tag list</a>.</p> | 35 | <p>{'You can also edit tags in the'|t} <a href="?do=taglist&sort=usage">{'tag list'|t}</a>.</p> |
36 | </div> | 36 | </div> |
37 | </div> | 37 | </div> |
38 | {include="page.footer"} | 38 | {include="page.footer"} |
diff --git a/tpl/default/configure.html b/tpl/default/configure.html index 76a1b9fd..a63c7ad3 100644 --- a/tpl/default/configure.html +++ b/tpl/default/configure.html | |||
@@ -70,6 +70,30 @@ | |||
70 | </div> | 70 | </div> |
71 | </div> | 71 | </div> |
72 | <div class="pure-g"> | 72 | <div class="pure-g"> |
73 | <div class="pure-u-lg-{$ratioLabel} pure-u-1"> | ||
74 | <div class="form-label"> | ||
75 | <label for="language"> | ||
76 | <span class="label-name">{'Language'|t}</span> | ||
77 | </label> | ||
78 | </div> | ||
79 | </div> | ||
80 | <div class="pure-u-lg-{$ratioInput} pure-u-1"> | ||
81 | <div class="form-input"> | ||
82 | <select name="language" id="language" class="align"> | ||
83 | {loop="$languages"} | ||
84 | <option value="{$key}" | ||
85 | {if="$key===$language"} | ||
86 | selected="selected" | ||
87 | {/if} | ||
88 | > | ||
89 | {$value} | ||
90 | </option> | ||
91 | {/loop} | ||
92 | </select> | ||
93 | </div> | ||
94 | </div> | ||
95 | </div> | ||
96 | <div class="pure-g"> | ||
73 | <div class="pure-u-lg-{$ratioLabel} pure-u-1 "> | 97 | <div class="pure-u-lg-{$ratioLabel} pure-u-1 "> |
74 | <div class="form-label"> | 98 | <div class="form-label"> |
75 | <label> | 99 | <label> |
@@ -105,21 +129,6 @@ | |||
105 | </div> | 129 | </div> |
106 | </div> | 130 | </div> |
107 | </div> | 131 | </div> |
108 | <div class="pure-g"> | ||
109 | <div class="pure-u-lg-{$ratioLabel} pure-u-1 "> | ||
110 | <div class="form-label"> | ||
111 | <label for="redirector"> | ||
112 | <span class="label-name">{'Redirector'|t}</span><br> | ||
113 | <span class="label-desc">{'e. g.'|t} <i>http://anonym.to/?</i> {'will mask the HTTP_REFERER'|t}</span> | ||
114 | </label> | ||
115 | </div> | ||
116 | </div> | ||
117 | <div class="pure-u-lg-{$ratioInput} pure-u-1 "> | ||
118 | <div class="form-input"> | ||
119 | <input type="text" name="redirector" id="redirector" size="50" value="{$redirector}"> | ||
120 | </div> | ||
121 | </div> | ||
122 | </div> | ||
123 | <div class="clear"></div> | 132 | <div class="clear"></div> |
124 | <div class="pure-g"> | 133 | <div class="pure-g"> |
125 | <div class="pure-u-lg-{$ratioLabel} pure-u-{$ratioLabelMobile} "> | 134 | <div class="pure-u-lg-{$ratioLabel} pure-u-{$ratioLabelMobile} "> |
diff --git a/tpl/default/css/shaarli.css b/tpl/default/css/shaarli.css index ba589723..14439402 100644 --- a/tpl/default/css/shaarli.css +++ b/tpl/default/css/shaarli.css | |||
@@ -433,7 +433,7 @@ body, .pure-g [class*="pure-u"] { | |||
433 | * 64em -> lg | 433 | * 64em -> lg |
434 | */ | 434 | */ |
435 | .linklist-filters { | 435 | .linklist-filters { |
436 | margin: 10px 0; | 436 | margin: 5px 0; |
437 | color: #252525; | 437 | color: #252525; |
438 | font-size: 0.9em; | 438 | font-size: 0.9em; |
439 | } | 439 | } |
@@ -454,7 +454,7 @@ body, .pure-g [class*="pure-u"] { | |||
454 | } | 454 | } |
455 | 455 | ||
456 | .linklist-pages { | 456 | .linklist-pages { |
457 | margin: 10px 0; | 457 | margin: 5px 0; |
458 | color: #252525; | 458 | color: #252525; |
459 | text-align: center; | 459 | text-align: center; |
460 | } | 460 | } |
@@ -469,7 +469,7 @@ body, .pure-g [class*="pure-u"] { | |||
469 | } | 469 | } |
470 | 470 | ||
471 | .linksperpage { | 471 | .linksperpage { |
472 | margin: 10px 0; | 472 | margin: 5px 0; |
473 | text-align: right; | 473 | text-align: right; |
474 | color: #252525; | 474 | color: #252525; |
475 | font-size: 0.9em; | 475 | font-size: 0.9em; |
@@ -506,9 +506,29 @@ body, .pure-g [class*="pure-u"] { | |||
506 | * CONTENT - LINKLIST ITEMS | 506 | * CONTENT - LINKLIST ITEMS |
507 | */ | 507 | */ |
508 | .linklist-item { | 508 | .linklist-item { |
509 | margin: 0 0 15px 0; | 509 | margin: 0 0 10px 0; |
510 | background: #f5f5f5; | 510 | background: #f5f5f5; |
511 | box-shadow: 2px 2px 0.5em #797979; | 511 | box-shadow: 1px 1px 3px #797979; |
512 | } | ||
513 | |||
514 | .linklist-item-buttons { | ||
515 | background: transparent; | ||
516 | position: relative; | ||
517 | width: 23px; | ||
518 | z-index: 99; | ||
519 | } | ||
520 | |||
521 | .linklist-item-buttons-right { | ||
522 | float: right; | ||
523 | margin-right: -25px; | ||
524 | } | ||
525 | |||
526 | .linklist-item-buttons * { | ||
527 | display: block; | ||
528 | float: left; | ||
529 | width:100%; | ||
530 | margin: auto; | ||
531 | text-align: center; | ||
512 | } | 532 | } |
513 | 533 | ||
514 | .linklist-item-title, .linklist-item-title h2 { | 534 | .linklist-item-title, .linklist-item-title h2 { |
@@ -526,7 +546,7 @@ body, .pure-g [class*="pure-u"] { | |||
526 | line-height: 30px; | 546 | line-height: 30px; |
527 | } | 547 | } |
528 | 548 | ||
529 | .linklist-item-title a { | 549 | .linklist-item-title h2 a { |
530 | font-size: 0.7em; | 550 | font-size: 0.7em; |
531 | color: #252525; | 551 | color: #252525; |
532 | text-decoration: none; | 552 | text-decoration: none; |
@@ -538,11 +558,11 @@ body, .pure-g [class*="pure-u"] { | |||
538 | color: #1b926c; | 558 | color: #1b926c; |
539 | } | 559 | } |
540 | 560 | ||
541 | .linklist-item-title a:visited .linklist-link { | 561 | .linklist-item-title h2 a:visited .linklist-link { |
542 | color: #2a4c41; | 562 | color: #2a4c41; |
543 | } | 563 | } |
544 | 564 | ||
545 | .linklist-item-title a:hover, .linklist-item-title .linklist-link:hover{ | 565 | .linklist-item-title h2 a:hover, .linklist-item-title .linklist-link:hover{ |
546 | color: #252525; | 566 | color: #252525; |
547 | } | 567 | } |
548 | 568 | ||
@@ -554,8 +574,9 @@ body, .pure-g [class*="pure-u"] { | |||
554 | color: #F89406; | 574 | color: #F89406; |
555 | } | 575 | } |
556 | 576 | ||
557 | .linklist-item-title .fold-button { | 577 | .fold-button { |
558 | display: none; | 578 | display: none; |
579 | color: #252525; | ||
559 | } | 580 | } |
560 | 581 | ||
561 | .linklist-item-editbuttons { | 582 | .linklist-item-editbuttons { |
@@ -585,24 +606,12 @@ body, .pure-g [class*="pure-u"] { | |||
585 | 606 | ||
586 | .linklist-item-description { | 607 | .linklist-item-description { |
587 | position: relative; | 608 | position: relative; |
588 | padding: 10px; | 609 | padding: 0 10px; |
589 | word-wrap: break-word; | 610 | word-wrap: break-word; |
590 | color: #252525; | 611 | color: #252525; |
591 | line-height: 1.3em; | 612 | line-height: 1.3em; |
592 | } | 613 | } |
593 | 614 | ||
594 | { | ||
595 | position: absolute; | ||
596 | left: 3px; | ||
597 | top: 0; | ||
598 | display: block; | ||
599 | content:""; | ||
600 | background: #F89406; | ||
601 | height: 95%; | ||
602 | width: 2px; | ||
603 | z-index: 1; | ||
604 | } | ||
605 | |||
606 | .linklist-item-description a { | 615 | .linklist-item-description a { |
607 | text-decoration: none; | 616 | text-decoration: none; |
608 | color: #1b926c; | 617 | color: #1b926c; |
@@ -618,32 +627,36 @@ body, .pure-g [class*="pure-u"] { | |||
618 | 627 | ||
619 | .linklist-item-thumbnail { | 628 | .linklist-item-thumbnail { |
620 | position: relative; | 629 | position: relative; |
621 | margin-top: 10px; | 630 | padding: 0 0 0 5px; |
622 | padding: 10px; | 631 | margin: 0; |
623 | float: left; | 632 | float: right; |
624 | z-index: 50; | 633 | z-index: 50; |
634 | height: 90px; | ||
625 | } | 635 | } |
626 | 636 | ||
627 | .linklist-item.private .linklist-item-title::before, | 637 | .linklist-item.private .linklist-item-title::before, |
628 | .linklist-item.private .linklist-item-description::before, | 638 | .linklist-item.private .linklist-item-description::before { |
629 | .linklist-item.private .linklist-item-thumbnail::before { | ||
630 | position: absolute; | 639 | position: absolute; |
631 | left: 3px; | 640 | left: 3px; |
632 | top: 0; | 641 | top: 0; |
633 | display: block; | 642 | display: block; |
634 | content:""; | 643 | content:""; |
635 | background: #F89406; | 644 | background: #F89406; |
636 | height: 95%; | 645 | height: 96%; |
637 | width: 2px; | 646 | width: 2px; |
638 | z-index: 1; | 647 | z-index: 1; |
639 | } | 648 | } |
640 | 649 | ||
650 | .linklist-item.private .linklist-item-description::before { | ||
651 | height: 100%; | ||
652 | } | ||
653 | |||
641 | .linklist-item.private .linklist-item-title::before { | 654 | .linklist-item.private .linklist-item-title::before { |
642 | margin-top: 3px; | 655 | margin-top: 3px; |
643 | } | 656 | } |
644 | 657 | ||
645 | .linklist-item-infos { | 658 | .linklist-item-infos { |
646 | padding: 8px 8px 5px 8px; | 659 | padding: 4px 8px 4px 8px; |
647 | background: #ddd; | 660 | background: #ddd; |
648 | color: #252525; | 661 | color: #252525; |
649 | } | 662 | } |
@@ -680,6 +693,8 @@ body, .pure-g [class*="pure-u"] { | |||
680 | overflow: hidden; | 693 | overflow: hidden; |
681 | text-overflow: ellipsis; | 694 | text-overflow: ellipsis; |
682 | font-size: 0.8em; | 695 | font-size: 0.8em; |
696 | height:23px; | ||
697 | line-height:23px; | ||
683 | } | 698 | } |
684 | 699 | ||
685 | .linklist-item-infos .mobile-buttons { | 700 | .linklist-item-infos .mobile-buttons { |
@@ -693,6 +708,16 @@ body, .pure-g [class*="pure-u"] { | |||
693 | height: 16px; | 708 | height: 16px; |
694 | } | 709 | } |
695 | 710 | ||
711 | .linklist-item-infos-controls-group { | ||
712 | display: inline-block; | ||
713 | border-right: 1px solid #5d5d5d; | ||
714 | padding-right: 6px; | ||
715 | } | ||
716 | |||
717 | .ctrl-edit { | ||
718 | margin: 0 7px; | ||
719 | } | ||
720 | |||
696 | /** 64em -> lg **/ | 721 | /** 64em -> lg **/ |
697 | @media screen and (max-width: 64em) { | 722 | @media screen and (max-width: 64em) { |
698 | .linklist-item-infos-url { | 723 | .linklist-item-infos-url { |
@@ -1284,3 +1309,40 @@ form[name="linkform"].page-form { | |||
1284 | text-decoration: none; | 1309 | text-decoration: none; |
1285 | font-weight: bold; | 1310 | font-weight: bold; |
1286 | } | 1311 | } |
1312 | |||
1313 | /** | ||
1314 | * Markdown | ||
1315 | */ | ||
1316 | .markdown p { | ||
1317 | margin: 0 !important; | ||
1318 | } | ||
1319 | |||
1320 | .markdown p + p { | ||
1321 | margin: 0.5em 0 0 0 !important; | ||
1322 | } | ||
1323 | |||
1324 | .markdown *:first-child { | ||
1325 | margin-top: 0 !important; | ||
1326 | } | ||
1327 | |||
1328 | .markdown *:last-child { | ||
1329 | margin-bottom: 5px !important; | ||
1330 | } | ||
1331 | |||
1332 | /** | ||
1333 | * Pure Button | ||
1334 | */ | ||
1335 | .pure-button-success, | ||
1336 | .pure-button-error, | ||
1337 | .pure-button-warning, | ||
1338 | .pure-button-primary, | ||
1339 | .pure-button-shaarli, | ||
1340 | .pure-button-secondary { | ||
1341 | color: white !important; | ||
1342 | border-radius: 4px; | ||
1343 | text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); | ||
1344 | } | ||
1345 | |||
1346 | .pure-button-shaarli { | ||
1347 | background-color: #1B926C; | ||
1348 | } | ||
diff --git a/tpl/default/img/apple-touch-icon.png b/tpl/default/img/apple-touch-icon.png new file mode 100644 index 00000000..f29210ce --- /dev/null +++ b/tpl/default/img/apple-touch-icon.png | |||
Binary files differ | |||
diff --git a/tpl/default/import.html b/tpl/default/import.html index 1f040685..000a50ac 100644 --- a/tpl/default/import.html +++ b/tpl/default/import.html | |||
@@ -18,7 +18,7 @@ | |||
18 | <div class="center" id="import-field"> | 18 | <div class="center" id="import-field"> |
19 | <input type="hidden" name="MAX_FILE_SIZE" value="{$maxfilesize}"> | 19 | <input type="hidden" name="MAX_FILE_SIZE" value="{$maxfilesize}"> |
20 | <input type="file" name="filetoupload"> | 20 | <input type="file" name="filetoupload"> |
21 | <p><br>Maximum size allowed: <strong>{$maxfilesizeHuman}</strong></p> | 21 | <p><br>{'Maximum size allowed:'|t} <strong>{$maxfilesizeHuman}</strong></p> |
22 | </div> | 22 | </div> |
23 | 23 | ||
24 | <div class="pure-g"> | 24 | <div class="pure-g"> |
@@ -31,15 +31,15 @@ | |||
31 | <div class="radio-buttons"> | 31 | <div class="radio-buttons"> |
32 | <div> | 32 | <div> |
33 | <input type="radio" name="privacy" value="default" checked="checked"> | 33 | <input type="radio" name="privacy" value="default" checked="checked"> |
34 | Use values from the imported file, default to public | 34 | {'Use values from the imported file, default to public'|t} |
35 | </div> | 35 | </div> |
36 | <div> | 36 | <div> |
37 | <input type="radio" name="privacy" value="private"> | 37 | <input type="radio" name="privacy" value="private"> |
38 | Import all bookmarks as private | 38 | {'Import all bookmarks as private'|t} |
39 | </div> | 39 | </div> |
40 | <div> | 40 | <div> |
41 | <input type="radio" name="privacy" value="public"> | 41 | <input type="radio" name="privacy" value="public"> |
42 | Import all bookmarks as public | 42 | {'Import all bookmarks as public'|t} |
43 | </div> | 43 | </div> |
44 | </div> | 44 | </div> |
45 | </div> | 45 | </div> |
diff --git a/tpl/default/includes.html b/tpl/default/includes.html index 80c08333..b2bfec30 100644 --- a/tpl/default/includes.html +++ b/tpl/default/includes.html | |||
@@ -5,6 +5,7 @@ | |||
5 | <link rel="alternate" type="application/atom+xml" href="{$feedurl}?do=atom{$searchcrits}#" title="ATOM Feed" /> | 5 | <link rel="alternate" type="application/atom+xml" href="{$feedurl}?do=atom{$searchcrits}#" title="ATOM Feed" /> |
6 | <link rel="alternate" type="application/rss+xml" href="{$feedurl}?do=rss{$searchcrits}#" title="RSS Feed" /> | 6 | <link rel="alternate" type="application/rss+xml" href="{$feedurl}?do=rss{$searchcrits}#" title="RSS Feed" /> |
7 | <link href="img/favicon.png" rel="shortcut icon" type="image/png" /> | 7 | <link href="img/favicon.png" rel="shortcut icon" type="image/png" /> |
8 | <link href="img/apple-touch-icon.png" rel="apple-touch-icon" sizes="180x180" /> | ||
8 | <link type="text/css" rel="stylesheet" href="css/pure.min.css?v={$version_hash}" /> | 9 | <link type="text/css" rel="stylesheet" href="css/pure.min.css?v={$version_hash}" /> |
9 | <link type="text/css" rel="stylesheet" href="css/grids-responsive.min.css?v={$version_hash}"> | 10 | <link type="text/css" rel="stylesheet" href="css/grids-responsive.min.css?v={$version_hash}"> |
10 | <link type="text/css" rel="stylesheet" href="css/pure-extras.css?v={$version_hash}"> | 11 | <link type="text/css" rel="stylesheet" href="css/pure-extras.css?v={$version_hash}"> |
@@ -17,4 +18,4 @@ | |||
17 | {loop="$plugins_includes.css_files"} | 18 | {loop="$plugins_includes.css_files"} |
18 | <link type="text/css" rel="stylesheet" href="{$value}?v={$version_hash}#"/> | 19 | <link type="text/css" rel="stylesheet" href="{$value}?v={$version_hash}#"/> |
19 | {/loop} | 20 | {/loop} |
20 | <link rel="search" type="application/opensearchdescription+xml" href="?do=opensearch#" title="Shaarli search - {$shaarlititle}"/> \ No newline at end of file | 21 | <link rel="search" type="application/opensearchdescription+xml" href="?do=opensearch#" title="Shaarli search - {$shaarlititle}"/> |
diff --git a/tpl/default/install.html b/tpl/default/install.html index 164d453b..6199b33d 100644 --- a/tpl/default/install.html +++ b/tpl/default/install.html | |||
@@ -68,6 +68,27 @@ | |||
68 | <div class="pure-g"> | 68 | <div class="pure-g"> |
69 | <div class="pure-u-lg-{$ratioLabel} pure-u-1"> | 69 | <div class="pure-u-lg-{$ratioLabel} pure-u-1"> |
70 | <div class="form-label"> | 70 | <div class="form-label"> |
71 | <label for="language"> | ||
72 | <span class="label-name">{'Language'|t}</span> | ||
73 | </label> | ||
74 | </div> | ||
75 | </div> | ||
76 | <div class="pure-u-lg-{$ratioInput} pure-u-1"> | ||
77 | <div class="form-input"> | ||
78 | <select name="language" id="language" class="align"> | ||
79 | {loop="$languages"} | ||
80 | <option value="{$key}"> | ||
81 | {$value} | ||
82 | </option> | ||
83 | {/loop} | ||
84 | </select> | ||
85 | </div> | ||
86 | </div> | ||
87 | </div> | ||
88 | |||
89 | <div class="pure-g"> | ||
90 | <div class="pure-u-lg-{$ratioLabel} pure-u-1"> | ||
91 | <div class="form-label"> | ||
71 | <label> | 92 | <label> |
72 | <span class="label-name">{'Timezone'|t}</span><br> | 93 | <span class="label-name">{'Timezone'|t}</span><br> |
73 | <span class="label-desc">{'Continent'|t} · {'City'|t}</span> | 94 | <span class="label-desc">{'Continent'|t} · {'City'|t}</span> |
diff --git a/tpl/default/js/shaarli.js b/tpl/default/js/shaarli.js index 55656f80..cf628e87 100644 --- a/tpl/default/js/shaarli.js +++ b/tpl/default/js/shaarli.js | |||
@@ -138,6 +138,9 @@ window.onload = function () { | |||
138 | }); | 138 | }); |
139 | foldAllButton.firstElementChild.classList.toggle('fa-chevron-down'); | 139 | foldAllButton.firstElementChild.classList.toggle('fa-chevron-down'); |
140 | foldAllButton.firstElementChild.classList.toggle('fa-chevron-up'); | 140 | foldAllButton.firstElementChild.classList.toggle('fa-chevron-up'); |
141 | foldAllButton.title = state === 'down' | ||
142 | ? document.getElementById('translation-fold-all').innerHTML | ||
143 | : document.getElementById('translation-expand-all').innerHTML | ||
141 | }); | 144 | }); |
142 | }); | 145 | }); |
143 | } | 146 | } |
@@ -146,7 +149,7 @@ window.onload = function () { | |||
146 | { | 149 | { |
147 | // Switch fold/expand - up = fold | 150 | // Switch fold/expand - up = fold |
148 | if (button.classList.contains('fa-chevron-up')) { | 151 | if (button.classList.contains('fa-chevron-up')) { |
149 | button.title = 'Expand'; | 152 | button.title = document.getElementById('translation-expand').innerHTML; |
150 | if (description != null) { | 153 | if (description != null) { |
151 | description.style.display = 'none'; | 154 | description.style.display = 'none'; |
152 | } | 155 | } |
@@ -155,7 +158,7 @@ window.onload = function () { | |||
155 | } | 158 | } |
156 | } | 159 | } |
157 | else { | 160 | else { |
158 | button.title = 'Fold'; | 161 | button.title = document.getElementById('translation-fold').innerHTML; |
159 | if (description != null) { | 162 | if (description != null) { |
160 | description.style.display = 'block'; | 163 | description.style.display = 'block'; |
161 | } | 164 | } |
@@ -173,7 +176,7 @@ window.onload = function () { | |||
173 | var deleteLinks = document.querySelectorAll('.confirm-delete'); | 176 | var deleteLinks = document.querySelectorAll('.confirm-delete'); |
174 | [].forEach.call(deleteLinks, function(deleteLink) { | 177 | [].forEach.call(deleteLinks, function(deleteLink) { |
175 | deleteLink.addEventListener('click', function(event) { | 178 | deleteLink.addEventListener('click', function(event) { |
176 | if(! confirm('Are you sure you want to delete this link ?')) { | 179 | if(! confirm(document.getElementById('translation-delete-link').innerHTML)) { |
177 | event.preventDefault(); | 180 | event.preventDefault(); |
178 | } | 181 | } |
179 | }); | 182 | }); |
@@ -375,7 +378,7 @@ window.onload = function () { | |||
375 | var linkCheckboxes = document.querySelectorAll('.delete-checkbox'); | 378 | var linkCheckboxes = document.querySelectorAll('.delete-checkbox'); |
376 | var bar = document.getElementById('actions'); | 379 | var bar = document.getElementById('actions'); |
377 | [].forEach.call(linkCheckboxes, function(checkbox) { | 380 | [].forEach.call(linkCheckboxes, function(checkbox) { |
378 | checkbox.style.display = 'block'; | 381 | checkbox.style.display = 'inline-block'; |
379 | checkbox.addEventListener('click', function(event) { | 382 | checkbox.addEventListener('click', function(event) { |
380 | var count = 0; | 383 | var count = 0; |
381 | var linkCheckedCheckboxes = document.querySelectorAll('.delete-checkbox:checked'); | 384 | var linkCheckedCheckboxes = document.querySelectorAll('.delete-checkbox:checked'); |
@@ -618,7 +621,7 @@ function activateFirefoxSocial(node) { | |||
618 | // Keeping the data separated (ie. not in the DOM) so that it's maintainable and diffable. | 621 | // Keeping the data separated (ie. not in the DOM) so that it's maintainable and diffable. |
619 | var data = { | 622 | var data = { |
620 | name: title, | 623 | name: title, |
621 | description: "The personal, minimalist, super-fast, database free, bookmarking service by the Shaarli community.", | 624 | description: document.getElementById('translation-delete-link').innerHTML, |
622 | author: "Shaarli", | 625 | author: "Shaarli", |
623 | version: "1.0.0", | 626 | version: "1.0.0", |
624 | 627 | ||
diff --git a/tpl/default/linklist.html b/tpl/default/linklist.html index 685821e3..c666e30a 100644 --- a/tpl/default/linklist.html +++ b/tpl/default/linklist.html | |||
@@ -53,9 +53,9 @@ | |||
53 | {/loop} | 53 | {/loop} |
54 | 54 | ||
55 | <div id="linklist"> | 55 | <div id="linklist"> |
56 | <div class="pure-g"> | 56 | <div id="link-count-block" class="pure-g"> |
57 | <div class="pure-u-lg-2-24 pure-u-1-24"></div> | 57 | <div class="pure-u-lg-2-24 pure-u-1-24"></div> |
58 | <div class="pure-u-lg-20-24 pure-u-22-24"> | 58 | <div id="link-count-content" class="pure-u-lg-20-24 pure-u-22-24"> |
59 | <div class="linkcount pure-u-lg-0 center"> | 59 | <div class="linkcount pure-u-lg-0 center"> |
60 | {if="!empty($linkcount)"} | 60 | {if="!empty($linkcount)"} |
61 | <span class="strong">{$linkcount}</span> {function="t('shaare', 'shaares', $linkcount)"} | 61 | <span class="strong">{$linkcount}</span> {function="t('shaare', 'shaares', $linkcount)"} |
@@ -76,17 +76,17 @@ | |||
76 | </div> | 76 | </div> |
77 | 77 | ||
78 | {if="count($links)==0"} | 78 | {if="count($links)==0"} |
79 | <div class="pure-g pure-alert pure-alert-error search-result"> | 79 | <div id="search-result-block" class="pure-g pure-alert pure-alert-error search-result"> |
80 | <div class="pure-u-2-24"></div> | 80 | <div class="pure-u-2-24"></div> |
81 | <div class="pure-u-20-24"> | 81 | <div id="search-result-content" class="pure-u-20-24"> |
82 | <div id="searchcriteria">{'Nothing found.'|t}</div> | 82 | <div id="searchcriteria">{'Nothing found.'|t}</div> |
83 | </div> | 83 | </div> |
84 | </div> | 84 | </div> |
85 | {elseif="!empty($search_term) or $search_tags !== '' or !empty($visibility) or $untaggedonly"} | 85 | {elseif="!empty($search_term) or $search_tags !== '' or !empty($visibility) or $untaggedonly"} |
86 | <div class="pure-g pure-alert pure-alert-success search-result"> | 86 | <div id="search-result-block" class="pure-g pure-alert pure-alert-success search-result"> |
87 | <div class="pure-u-2-24"></div> | 87 | <div class="pure-u-2-24"></div> |
88 | <div class="pure-u-20-24"> | 88 | <div id="search-result-content" class="pure-u-20-24 search-result-main"> |
89 | {function="t('%s result', '%s results', $result_count)"} | 89 | {function="sprintf(t('%s result', '%s results', $result_count), $result_count)"} |
90 | {if="!empty($search_term)"} | 90 | {if="!empty($search_term)"} |
91 | {'for'|t} <em><strong>{$search_term}</strong></em> | 91 | {'for'|t} <em><strong>{$search_term}</strong></em> |
92 | {/if} | 92 | {/if} |
@@ -114,23 +114,34 @@ | |||
114 | </div> | 114 | </div> |
115 | {/if} | 115 | {/if} |
116 | 116 | ||
117 | <div class="pure-g"> | 117 | <div id="linklist-loop-block" class="pure-g"> |
118 | <div class="pure-u-lg-2-24 pure-u-1-24"></div> | 118 | <div class="pure-u-lg-2-24 pure-u-1-24"></div> |
119 | <div class="pure-u-lg-20-24 pure-u-22-24"> | 119 | <div id="linklist-loop-content" class="pure-u-lg-20-24 pure-u-22-24"> |
120 | {ignore}Set translation here, for performances{/ignore} | ||
121 | {$strPrivate=t('Private')} | ||
122 | {$strEdit=t('Edit')} | ||
123 | {$strDelete=t('Delete')} | ||
124 | {$strFold=t('Fold')} | ||
125 | {$strEdited=t('Edited: ')} | ||
126 | {$strPermalink=t('Permalink')} | ||
127 | {$strPermalinkLc=t('permalink')} | ||
128 | {$strAddTag=t('Add tag')} | ||
129 | {ignore}End of translations{/ignore} | ||
120 | {loop="links"} | 130 | {loop="links"} |
121 | <div class="anchor" id="{$value.shorturl}"></div> | 131 | <div class="anchor" id="{$value.shorturl}"></div> |
122 | <div class="linklist-item linklist-item{if="$value.class"} {$value.class}{/if}" data-id="{$value.id}"> | ||
123 | 132 | ||
133 | <div class="linklist-item linklist-item{if="$value.class"} {$value.class}{/if}" data-id="{$value.id}"> | ||
124 | <div class="linklist-item-title"> | 134 | <div class="linklist-item-title"> |
135 | {$thumb=thumbnail($value.url)} | ||
136 | {if="$thumb!=false"} | ||
137 | <div class="linklist-item-thumbnail">{$thumb}</div> | ||
138 | {/if} | ||
139 | |||
125 | {if="isLoggedIn()"} | 140 | {if="isLoggedIn()"} |
126 | <div class="linklist-item-editbuttons"> | 141 | <div class="linklist-item-editbuttons"> |
127 | {if="$value.private"} | 142 | {if="$value.private"} |
128 | <span class="label label-private">{'Private'|t}</span> | 143 | <span class="label label-private">{$strPrivate}</span> |
129 | {/if} | 144 | {/if} |
130 | <input type="checkbox" class="delete-checkbox" value="{$value.id}"> | ||
131 | <!-- FIXME! JS translation --> | ||
132 | <a href="?edit_link={$value.id}" title="{'Edit'|t}"><i class="fa fa-pencil-square-o edit-link"></i></a> | ||
133 | <a href="#" title="{'Fold'|t}" class="fold-button"><i class="fa fa-chevron-up"></i></a> | ||
134 | </div> | 145 | </div> |
135 | {/if} | 146 | {/if} |
136 | 147 | ||
@@ -147,11 +158,6 @@ | |||
147 | </h2> | 158 | </h2> |
148 | </div> | 159 | </div> |
149 | 160 | ||
150 | {$thumb=thumbnail($value.url)} | ||
151 | {if="$thumb!=false"} | ||
152 | <div class="linklist-item-thumbnail">{$thumb}</div> | ||
153 | {/if} | ||
154 | |||
155 | {if="$value.description"} | 161 | {if="$value.description"} |
156 | <div class="linklist-item-description"> | 162 | <div class="linklist-item-description"> |
157 | {$value.description} | 163 | {$value.description} |
@@ -164,7 +170,7 @@ | |||
164 | <i class="fa fa-tags"></i> | 170 | <i class="fa fa-tags"></i> |
165 | {$tag_counter=count($value.taglist)} | 171 | {$tag_counter=count($value.taglist)} |
166 | {loop="value.taglist"} | 172 | {loop="value.taglist"} |
167 | <span class="label label-tag" title="Add tag"> | 173 | <span class="label label-tag" title="{$strAddTag}"> |
168 | <a href="?addtag={$value|urlencode}">{$value}</a> | 174 | <a href="?addtag={$value|urlencode}">{$value}</a> |
169 | </span> | 175 | </span> |
170 | {if="$tag_counter - 1 != $counter"}·{/if} | 176 | {if="$tag_counter - 1 != $counter"}·{/if} |
@@ -172,11 +178,27 @@ | |||
172 | </div> | 178 | </div> |
173 | {/if} | 179 | {/if} |
174 | 180 | ||
175 | <div class="pure-g"> | 181 | <div class="linklist-item-infos-date-url-block pure-g"> |
176 | <div class="linklist-item-infos-dateblock pure-u-lg-3-8 pure-u-1"> | 182 | <div class="linklist-item-infos-dateblock pure-u-lg-7-12 pure-u-1"> |
177 | <a href="?{$value.shorturl}" title="{'Permalink'|t}"> | 183 | {if="isLoggedIn()"} |
184 | <div class="linklist-item-infos-controls-group pure-u-0 pure-u-lg-visible"> | ||
185 | <span class="linklist-item-infos-controls-item ctrl-checkbox"> | ||
186 | <input type="checkbox" class="delete-checkbox" value="{$value.id}"> | ||
187 | </span> | ||
188 | <span class="linklist-item-infos-controls-item ctrl-edit"> | ||
189 | <a href="?edit_link={$value.id}" title="{$strEdit}"><i class="fa fa-pencil-square-o edit-link"></i></a> | ||
190 | </span> | ||
191 | <span class="linklist-item-infos-controls-item ctrl-delete"> | ||
192 | <a href="?delete_link&lf_linkdate={$value.id}&token={$token}" | ||
193 | title="{$strDelete}" class="delete-link pure-u-0 pure-u-lg-visible confirm-delete"> | ||
194 | <i class="fa fa-trash"></i> | ||
195 | </a> | ||
196 | </span> | ||
197 | </div> | ||
198 | {/if} | ||
199 | <a href="?{$value.shorturl}" title="{$strPermalink}"> | ||
178 | {if="!$hide_timestamps || isLoggedIn()"} | 200 | {if="!$hide_timestamps || isLoggedIn()"} |
179 | {$updated=$value.updated_timestamp ? 'Edited: '. format_date($value.updated) : 'Permalink'} | 201 | {$updated=$value.updated_timestamp ? $strEdited. format_date($value.updated) : $strPermalink} |
180 | <span class="linkdate" title="{$updated}"> | 202 | <span class="linkdate" title="{$updated}"> |
181 | <i class="fa fa-clock-o"></i> | 203 | <i class="fa fa-clock-o"></i> |
182 | {$value.created|format_date} | 204 | {$value.created|format_date} |
@@ -184,7 +206,7 @@ | |||
184 | · | 206 | · |
185 | </span> | 207 | </span> |
186 | {/if} | 208 | {/if} |
187 | {'permalink'|t} | 209 | {$strPermalinkLc} |
188 | </a> | 210 | </a> |
189 | 211 | ||
190 | <div class="pure-u-0 pure-u-lg-visible"> | 212 | <div class="pure-u-0 pure-u-lg-visible"> |
@@ -199,16 +221,13 @@ | |||
199 | </div> | 221 | </div> |
200 | </div><div | 222 | </div><div |
201 | {ignore}do not add space or line break between these div - Firefox issue{/ignore} | 223 | {ignore}do not add space or line break between these div - Firefox issue{/ignore} |
202 | class="linklist-item-infos-url pure-u-lg-5-8 pure-u-1"> | 224 | class="linklist-item-infos-url pure-u-lg-5-12 pure-u-1"> |
203 | <a href="{$value.real_url}" title="{$value.title}"> | 225 | <a href="{$value.real_url}" title="{$value.title}"> |
204 | <i class="fa fa-link"></i> {$value.url} | 226 | <i class="fa fa-link"></i> {$value.url} |
205 | </a> | 227 | </a> |
206 | {if="isLoggedIn()"} | 228 | <div class="linklist-item-buttons pure-u-0 pure-u-lg-visible"> |
207 | <a href="?delete_link&lf_linkdate={$value.id}&token={$token}" | 229 | <a href="#" title="{$strFold}" class="fold-button"><i class="fa fa-chevron-up"></i></a> |
208 | title="{'Delete'|t}" class="delete-link pure-u-0 pure-u-lg-visible confirm-delete"> | 230 | </div> |
209 | <i class="fa fa-trash"></i> | ||
210 | </a> | ||
211 | {/if} | ||
212 | </div> | 231 | </div> |
213 | <div class="mobile-buttons pure-u-1 pure-u-lg-0"> | 232 | <div class="mobile-buttons pure-u-1 pure-u-lg-0"> |
214 | {if="isset($value.link_plugin)"} | 233 | {if="isset($value.link_plugin)"} |
@@ -221,9 +240,11 @@ | |||
221 | {if="isLoggedIn()"} | 240 | {if="isLoggedIn()"} |
222 | · | 241 | · |
223 | <a href="?delete_link&lf_linkdate={$value.id}&token={$token}" | 242 | <a href="?delete_link&lf_linkdate={$value.id}&token={$token}" |
224 | title="{'Delete'|t}" class="delete-link confirm-delete"> | 243 | title="{$strDelete}" class="delete-link confirm-delete"> |
225 | <i class="fa fa-trash"></i> | 244 | <i class="fa fa-trash"></i> |
226 | </a> | 245 | </a> |
246 | · | ||
247 | <a href="?edit_link={$value.id}" title="{$strEdit}"><i class="fa fa-pencil-square-o edit-link"></i></a> | ||
227 | {/if} | 248 | {/if} |
228 | </div> | 249 | </div> |
229 | </div> | 250 | </div> |
@@ -240,9 +261,9 @@ | |||
240 | {/loop} | 261 | {/loop} |
241 | </div> | 262 | </div> |
242 | 263 | ||
243 | <div class="pure-g"> | 264 | <div id="linklist-paging-bottom-block" class="pure-g"> |
244 | <div class="pure-u-lg-2-24 pure-u-1-24"></div> | 265 | <div class="pure-u-lg-2-24 pure-u-1-24"></div> |
245 | <div class="pure-u-lg-20-24 pure-u-22-24"> | 266 | <div id="linklist-paging-bottom-content" class="pure-u-lg-20-24 pure-u-22-24"> |
246 | {include="linklist.paging"} | 267 | {include="linklist.paging"} |
247 | </div> | 268 | </div> |
248 | </div> | 269 | </div> |
diff --git a/tpl/default/linklist.paging.html b/tpl/default/linklist.paging.html index 41e9fa34..347b3d13 100644 --- a/tpl/default/linklist.paging.html +++ b/tpl/default/linklist.paging.html | |||
@@ -13,7 +13,7 @@ | |||
13 | <a href="?untaggedonly" title="{'Filter untagged links'|t}" | 13 | <a href="?untaggedonly" title="{'Filter untagged links'|t}" |
14 | class={if="$untaggedonly"}"filter-on"{else}"filter-off"{/if} | 14 | class={if="$untaggedonly"}"filter-on"{else}"filter-off"{/if} |
15 | ><i class="fa fa-tag"></i></a> | 15 | ><i class="fa fa-tag"></i></a> |
16 | <a href="#" class="filter-off fold-all pure-u-lg-0" title="Fold all"> | 16 | <a href="#" class="filter-off fold-all pure-u-lg-0" title="{'Fold all'|t}"> |
17 | <i class="fa fa-chevron-up"></i> | 17 | <i class="fa fa-chevron-up"></i> |
18 | </a> | 18 | </a> |
19 | {loop="$action_plugin"} | 19 | {loop="$action_plugin"} |
@@ -53,7 +53,7 @@ | |||
53 | <form method="GET" class="pure-u-0 pure-u-lg-visible"> | 53 | <form method="GET" class="pure-u-0 pure-u-lg-visible"> |
54 | <input type="text" name="linksperpage" placeholder="133"> | 54 | <input type="text" name="linksperpage" placeholder="133"> |
55 | </form> | 55 | </form> |
56 | <a href="#" class="filter-off fold-all pure-u-0 pure-u-lg-visible" title="Fold all"> | 56 | <a href="#" class="filter-off fold-all pure-u-0 pure-u-lg-visible" title="{'Fold all'|t}"> |
57 | <i class="fa fa-chevron-up"></i> | 57 | <i class="fa fa-chevron-up"></i> |
58 | </a> | 58 | </a> |
59 | </div> | 59 | </div> |
diff --git a/tpl/default/page.footer.html b/tpl/default/page.footer.html index 54b16e8a..659e8c7f 100644 --- a/tpl/default/page.footer.html +++ b/tpl/default/page.footer.html | |||
@@ -8,8 +8,8 @@ | |||
8 | {$version} | 8 | {$version} |
9 | {/if} | 9 | {/if} |
10 | · | 10 | · |
11 | The personal, minimalist, super-fast, database free, bookmarking service by the Shaarli community · | 11 | {'The personal, minimalist, super-fast, database free, bookmarking service'|t} {'by the Shaarli community'|t} · |
12 | <a href="doc/html/index.html" rel="nofollow">Documentation</a> | 12 | <a href="doc/html/index.html" rel="nofollow">{'Documentation'|t}</a> |
13 | {loop="$plugins_footer.text"} | 13 | {loop="$plugins_footer.text"} |
14 | {$value} | 14 | {$value} |
15 | {/loop} | 15 | {/loop} |
@@ -27,6 +27,17 @@ | |||
27 | <script src="{$value}#"></script> | 27 | <script src="{$value}#"></script> |
28 | {/loop} | 28 | {/loop} |
29 | 29 | ||
30 | <div id="js-translations" class="hidden"> | ||
31 | <span id="translation-fold">{'Fold'|t}</span> | ||
32 | <span id="translation-fold-all">{'Fold all'|t}</span> | ||
33 | <span id="translation-expand">{'Expand'|t}</span> | ||
34 | <span id="translation-expand-all">{'Expand all'|t}</span> | ||
35 | <span id="translation-delete-link">{'Are you sure you want to delete this link?'|t}</span> | ||
36 | <span id="translation-shaarli-desc"> | ||
37 | {'The personal, minimalist, super-fast, database free, bookmarking service'|t} {'by the Shaarli community'|t} | ||
38 | </span> | ||
39 | </div> | ||
40 | |||
30 | <script src="js/shaarli.js?v={$version_hash}"></script> | 41 | <script src="js/shaarli.js?v={$version_hash}"></script> |
31 | <script src="inc/awesomplete.js?v={$version_hash}#"></script> | 42 | <script src="inc/awesomplete.js?v={$version_hash}#"></script> |
32 | <script src="inc/awesomplete-multiple-tags.js?v={$version_hash}#"></script> | 43 | <script src="inc/awesomplete-multiple-tags.js?v={$version_hash}#"></script> |
diff --git a/tpl/default/pluginsadmin.html b/tpl/default/pluginsadmin.html index 5cc1802f..ca17b435 100644 --- a/tpl/default/pluginsadmin.html +++ b/tpl/default/pluginsadmin.html | |||
@@ -27,7 +27,7 @@ | |||
27 | 27 | ||
28 | <div> | 28 | <div> |
29 | {if="count($enabledPlugins)==0"} | 29 | {if="count($enabledPlugins)==0"} |
30 | <p>{'No plugin enabled.'|t}</p> | 30 | <p class="center">{'No plugin enabled.'|t}</p> |
31 | {else} | 31 | {else} |
32 | <table id="plugin_table"> | 32 | <table id="plugin_table"> |
33 | <thead> | 33 | <thead> |
@@ -77,7 +77,7 @@ | |||
77 | 77 | ||
78 | <div> | 78 | <div> |
79 | {if="count($disabledPlugins)==0"} | 79 | {if="count($disabledPlugins)==0"} |
80 | <p>{'No plugin disabled.'|t}</p> | 80 | <p class="center">{'No plugin disabled.'|t}</p> |
81 | {else} | 81 | {else} |
82 | <table> | 82 | <table> |
83 | <thead> | 83 | <thead> |
@@ -116,8 +116,8 @@ | |||
116 | </section> | 116 | </section> |
117 | 117 | ||
118 | <div class="center more"> | 118 | <div class="center more"> |
119 | More plugins available | 119 | {"More plugins available"|t} |
120 | <a href="doc/Community-&-Related-software.html#third-party-plugins">in the documentation</a>. | 120 | <a href="doc/Community-&-Related-software.html#third-party-plugins">{"in the documentation"|t}</a>. |
121 | </div> | 121 | </div> |
122 | <div class="center"> | 122 | <div class="center"> |
123 | <input type="submit" value="{'Save'|t}" name="save"> | 123 | <input type="submit" value="{'Save'|t}" name="save"> |
@@ -135,9 +135,11 @@ | |||
135 | <section id="plugin_parameters"> | 135 | <section id="plugin_parameters"> |
136 | <div> | 136 | <div> |
137 | {if="count($enabledPlugins)==0"} | 137 | {if="count($enabledPlugins)==0"} |
138 | <p>{'No plugin enabled.'|t}</p> | 138 | <p class="center">{'No plugin enabled.'|t}</p> |
139 | {else} | 139 | {else} |
140 | {$counter=0} | ||
140 | {loop="$enabledPlugins"} | 141 | {loop="$enabledPlugins"} |
142 | {$counter=$counter+count($value.parameters)} | ||
141 | {if="count($value.parameters) > 0"} | 143 | {if="count($value.parameters) > 0"} |
142 | <div class="plugin_parameters"> | 144 | <div class="plugin_parameters"> |
143 | <h3 class="window-subtitle">{function="str_replace('_', ' ', $key)"}</h3> | 145 | <h3 class="window-subtitle">{function="str_replace('_', ' ', $key)"}</h3> |
@@ -159,10 +161,14 @@ | |||
159 | </div> | 161 | </div> |
160 | {/if} | 162 | {/if} |
161 | {/loop} | 163 | {/loop} |
164 | {if="$counter===0"} | ||
165 | <p class="center">{'No parameter available.'|t}</p> | ||
166 | {else} | ||
167 | <div class="center"> | ||
168 | <input type="submit" name="parameters_form" value="{'Save'|t}"/> | ||
169 | </div> | ||
170 | {/if} | ||
162 | {/if} | 171 | {/if} |
163 | <div class="center"> | ||
164 | <input type="submit" name="parameters_form" value="{'Save'|t}"/> | ||
165 | </div> | ||
166 | </div> | 172 | </div> |
167 | </section> | 173 | </section> |
168 | </div> | 174 | </div> |
diff --git a/tpl/default/tag.cloud.html b/tpl/default/tag.cloud.html index 68335c70..12701465 100644 --- a/tpl/default/tag.cloud.html +++ b/tpl/default/tag.cloud.html | |||
@@ -14,8 +14,10 @@ | |||
14 | {$countTags=count($tags)} | 14 | {$countTags=count($tags)} |
15 | <h2 class="window-title">{'Tag cloud'|t} - {$countTags} {'tags'|t}</h2> | 15 | <h2 class="window-title">{'Tag cloud'|t} - {$countTags} {'tags'|t}</h2> |
16 | {if="!empty($search_tags)"} | 16 | {if="!empty($search_tags)"} |
17 | <p class="enter"> | 17 | <p class="center"> |
18 | <a href="?searchtags={$search_tags|urlencode}">{'List all links with those tags'|t}</a> | 18 | <a href="?searchtags={$search_tags|urlencode}" class="pure-button pure-button-shaarli"> |
19 | {'List all links with those tags'|t} | ||
20 | </a> | ||
19 | </p> | 21 | </p> |
20 | {/if} | 22 | {/if} |
21 | 23 | ||
diff --git a/tpl/default/tag.list.html b/tpl/default/tag.list.html index a3e741d3..7140c67a 100644 --- a/tpl/default/tag.list.html +++ b/tpl/default/tag.list.html | |||
@@ -15,7 +15,9 @@ | |||
15 | <h2 class="window-title">{'Tag list'|t} - {$countTags} {'tags'|t}</h2> | 15 | <h2 class="window-title">{'Tag list'|t} - {$countTags} {'tags'|t}</h2> |
16 | {if="!empty($search_tags)"} | 16 | {if="!empty($search_tags)"} |
17 | <p class="center"> | 17 | <p class="center"> |
18 | <a href="?searchtags={$search_tags|urlencode}">{'List all links with those tags'|t}</a> | 18 | <a href="?searchtags={$search_tags|urlencode}" class="pure-button pure-button-shaarli"> |
19 | {'List all links with those tags'|t} | ||
20 | </a> | ||
19 | </p> | 21 | </p> |
20 | {/if} | 22 | {/if} |
21 | 23 | ||