Merge branch 'master' of git://github.com/friendica/friendica

This commit is contained in:
Tobias Hößl 2012-03-12 19:06:45 +00:00
commit 9574f7df03
12 changed files with 255 additions and 157 deletions

View file

@ -9,7 +9,7 @@ require_once('include/nav.php');
require_once('include/cache.php');
define ( 'FRIENDICA_PLATFORM', 'Friendica');
define ( 'FRIENDICA_VERSION', '2.3.1277' );
define ( 'FRIENDICA_VERSION', '2.3.1278' );
define ( 'DFRN_PROTOCOL_VERSION', '2.22' );
define ( 'DB_UPDATE_VERSION', 1131 );

View file

@ -1235,4 +1235,77 @@ function item_post_type($item) {
return t('post');
}
// post categories and "save to file" use the same item.file table for storage.
// We will differentiate the different uses by wrapping categories in angle brackets
// and save to file categories in square brackets.
// To do this we need to escape these characters if they appear in our tag.
function file_tag_encode($s) {
return str_replace(array('<','>','[',']'),array('%3c','%3e','%5b','%5d'),$s);
}
function file_tag_decode($s) {
return str_replace(array('%3c','%3e','%5b','%5d'),array('<','>','[',']'),$s);
}
function file_tag_file_query($table,$s,$type = 'file') {
if($type == 'file')
$str = preg_quote( '[' . file_tag_encode($s) . ']' );
else
$str = preg_quote( '<' . file_tag_encode($s) . '>' );
return " AND " . (($table) ? dbesc($table) . '.' : '') . "file regexp '" . dbesc($str) . "' ";
}
function file_tag_save_file($uid,$item,$file) {
$result = false;
if(! intval($uid))
return false;
$r = q("select file from item where id = %d and uid = %d limit 1",
intval($item),
intval($uid)
);
if(count($r)) {
if(! stristr($r[0]['file'],'[' . file_tag_encode($file) . ']'))
q("update item set file = '%s' where id = %d and uid = %d limit 1",
dbesc($r[0]['file'] . '[' . $file_tag_encode($file) . ']'),
intval($item),
intval($uid)
);
$saved = get_pconfig($uid,'system','filetags');
if((! strlen($saved)) || (! stristr($saved,'[' . file_tag_encode($file) . ']')))
set_pconfig($uid,'system','filetags',$saved . '[' . file_tag_encode($file) . ']');
}
return true;
}
function file_tag_unsave_file($uid,$item,$file) {
$result = false;
if(! intval($uid))
return false;
$pattern = '[' . file_tag_encode($file) . ']' ;
$r = q("select file from item where id = %d and uid = %d limit 1",
intval($item),
intval($uid)
);
if(! count($r))
return false;
q("update item set file = '%s' where id = %d and uid = %d limit 1",
dbesc(str_replace($pattern,'',$r[0]['file'])),
intval($item),
intval($uid)
);
$r = q("select file from item where uid = %d " . file_tag_file_query('item',$file),
intval($uid)
);
if(! count($r)) {
$saved = get_pconfig($uid,'system','filetags');
set_pconfig($uid,'system','filetags',str_replace($pattern,'',$saved));
}
return true;
}

View file

@ -21,7 +21,7 @@ function hcard_init(&$a) {
profile_load($a,$which,$profile);
if((x($a->profile,'page-flags')) && ($a->profile['page-flags'] == PAGE_COMMUNITY)) {
$a->page['htmlhead'] .= '<meta name="friendika.community" content="true" />';
$a->page['htmlhead'] .= '<meta name="friendica.community" content="true" />';
}
if(x($a->profile,'openidserver'))
$a->page['htmlhead'] .= '<link rel="openid.server" href="' . $a->profile['openidserver'] . '" />' . "\r\n";

View file

@ -52,13 +52,15 @@ function network_init(&$a) {
function saved_searches($search) {
$srchurl = '/network?f='
. ((x($_GET,'cid')) ? '&cid=' . $_GET['cid'] : '')
. ((x($_GET,'star')) ? '&star=' . $_GET['star'] : '')
. ((x($_GET,'cid')) ? '&cid=' . $_GET['cid'] : '')
. ((x($_GET,'star')) ? '&star=' . $_GET['star'] : '')
. ((x($_GET,'bmark')) ? '&bmark=' . $_GET['bmark'] : '')
. ((x($_GET,'conv')) ? '&conv=' . $_GET['conv'] : '')
. ((x($_GET,'nets')) ? '&nets=' . $_GET['nets'] : '')
. ((x($_GET,'cmin')) ? '&cmin=' . $_GET['cmin'] : '')
. ((x($_GET,'cmax')) ? '&cmax=' . $_GET['cmax'] : '');
. ((x($_GET,'conv')) ? '&conv=' . $_GET['conv'] : '')
. ((x($_GET,'nets')) ? '&nets=' . $_GET['nets'] : '')
. ((x($_GET,'cmin')) ? '&cmin=' . $_GET['cmin'] : '')
. ((x($_GET,'cmax')) ? '&cmax=' . $_GET['cmax'] : '')
. ((x($_GET,'file')) ? '&file=' . $_GET['file'] : '');
;
$o = '';
@ -226,6 +228,7 @@ function network_content(&$a, $update = 0) {
$nets = ((x($_GET,'nets')) ? $_GET['nets'] : '');
$cmin = ((x($_GET,'cmin')) ? intval($_GET['cmin']) : 0);
$cmax = ((x($_GET,'cmax')) ? intval($_GET['cmax']) : 99);
$file = ((x($_GET,'file')) ? $_GET['file'] : '');
if(($a->argc > 2) && $a->argv[2] === 'new')
$nouveau = true;
@ -239,7 +242,7 @@ function network_content(&$a, $update = 0) {
}
}
if(x($_GET,'search'))
if(x($_GET,'search') || x($_GET,'file'))
$nouveau = true;
if($cid)
$def_acl = array('allow_cid' => '<' . intval($cid) . '>');
@ -358,6 +361,7 @@ function network_content(&$a, $update = 0) {
. ((x($_GET,'nets')) ? '&nets=' . $_GET['nets'] : '')
. ((x($_GET,'cmin')) ? '&cmin=' . $_GET['cmin'] : '')
. ((x($_GET,'cmax')) ? '&cmax=' . $_GET['cmax'] : '')
. ((x($_GET,'file')) ? '&file=' . $_GET['file'] : '')
. "'; var profile_page = " . $a->pager['page'] . "; </script>\r\n";
}
@ -371,6 +375,9 @@ function network_content(&$a, $update = 0) {
dbesc('\\]' . preg_quote($search) . '\\[')
);
}
if(strlen($file)) {
$sql_extra .= file_tag_file_query('item',$file);
}
if($conv) {
$myurl = $a->get_baseurl() . '/profile/'. $a->user['nickname'];

View file

@ -27,7 +27,7 @@ function profile_init(&$a) {
profile_load($a,$which,$profile);
if((x($a->profile,'page-flags')) && ($a->profile['page-flags'] == PAGE_COMMUNITY)) {
$a->page['htmlhead'] .= '<meta name="friendika.community" content="true" />';
$a->page['htmlhead'] .= '<meta name="friendica.community" content="true" />';
}
if(x($a->profile,'openidserver'))
$a->page['htmlhead'] .= '<link rel="openid.server" href="' . $a->profile['openidserver'] . '" />' . "\r\n";

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View file

@ -1,5 +1,4 @@
<nav>
$langselector
<span id="banner">$banner</span>
@ -112,11 +111,14 @@ works -->
<a id="intro-update" class="nav-ajax-left" href="$nav.introductions.0"></a>
{{ endif }}
</div>
</div>
<a href="#" class="floaterflip"></a>
</nav>
<div id="lang-sel-wrap">
$langselector
</div>
<ul id="nav-notifications-template" style="display:none;" rel="template">
<li class="{4}"><a href="{0}"><img src="{1}" height="24" width="24" alt="" />{2} <span class="notif-when">{3}</span></a></li>
</ul>

View file

@ -122,7 +122,6 @@ a {
color: #88a9d2;
text-decoration: none;
margin-bottom: 1px;
text-decoration: none;
}
/*a:hover { */
/* text-decoration: none;*/
@ -140,7 +139,6 @@ blockquote {
}
a:hover {
color: #729fcf;
padding-bottom: 0;
border-bottom: 1px dotted #729fcf;
}
.required {
@ -483,12 +481,12 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify, nav #nav-notifications-link
height: 22px;
overflow: hidden;
margin: 0px;
background: transparent url(icons.png) -190px -60px no-repeat;
background: transparent url(icons.png) -190px -60px no-repeat;
}
.nav-ajax-update, .nav-ajax-left {
width: 30px;
height: 19px;
background: transparent url(notifications.svg) 0 0 no-repeat;
background: transparent url(notifications.png) 0 0 no-repeat;
color: #222;
font-weight: bold;
font-size: 0.8em;
@ -519,14 +517,14 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify, nav #nav-notifications-link
}
#lang-select-icon {
cursor: pointer;
position: absolute;
left: 0;
top: 0;
position: fixed;
left: 28px;
bottom: 6px;
}
#language-selector {
position: absolute;
top: 0;
left: 16px;
position: fixed;
bottom: 2px;
left: 52px;
}
.menu-popup {
position: absolute;
@ -539,9 +537,9 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify, nav #nav-notifications-link
list-style: none;
border: 3px solid #364e59;
z-index: 100000;
-webkit-box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
-moz-box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
-webkit-box-shadow: 3px 3px 10px 0 rgba(0, 0, 0, 0.7);
-moz-box-shadow: 3px 3px 10px 0 rgba(0, 0, 0, 0.7);
box-shadow: 3px 3px 10px 0 rgba(0, 0, 0, 0.7);
}
.menu-popup a {
display: block;
@ -589,24 +587,24 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify, nav #nav-notifications-link
/** sysmsg **/
#sysmsg_info {
position:fixed;
bottom:0;
-moz-box-shadow:0 0 5px #888;
-webkit-box-shadow:0 0 5px #888;
box-shadow:0 0 5px #888;
position: fixed;
bottom: 0;
-moz-box-shadow: 3px 3px 3px 10px 0 #000;
-webkit-box-shadow: 3px 3px 10px 0 #000;
box-shadow: 3px 3px 10px 0 #000;
padding: 10px;
background-color:#fcaf3e;
background-color: #fcaf3e;
border:2px solid #f8911b;
border-bottom:0;
border-bottom: 0;
padding-bottom: 50px;
z-index: 1000;
}
#sysmsg {
position: fixed;
bottom: 0;
-moz-box-shadow: 0 0 5px #888;
-webkit-box-shadow: 0 0 5px #888;
box-shadow: 0 0 5px #888;
-moz-box-shadow: 3px 3px 10px 0 #000;
-webkit-box-shadow: 3px 3px 10px 0 #000;
box-shadow: 3px 3px 10px 0 #000;
padding: 10px;
background-color: #fcaf3e;
border: 2px solid #f8911b;
@ -946,7 +944,7 @@ aside #viewcontacts {
* section
*/
section {
margin: 20px 6% 0 4%;
margin: 20px 8% 0 4%;
font-size: 0.8em;
padding-right: 230px;
min-width: 475px;
@ -955,30 +953,31 @@ section {
/** tabs **/
.tabs {
list-style: none;
margin: 10px 0 10px;
margin: 10px 0;
padding: 0;
border-bottom: 1px solid #729fcf;
font-size: 14px;
}
.tabs li {
display: inline;
}
.tab {
padding: 0 5px;
border: 1px solid #729fcf;
padding: 4px;
}
.tab:hover {
background-color: #88a9d2;
color: #111;
border: 0px;
background: #88a9d2;
color: #2e2f2e;
}
.tab:active {
background-color: #88a9d2;
color: #111;
border: 0px;
background: #88a9d2;
color: #2e2f2e;
}
.tab.active {
background-color: #88a9d2;
color: #111;
background: #88a9d2;
color: #2e2f2e;
}
.tab a {
border: 0;
text-decoration: none;
}
/**
@ -1005,6 +1004,9 @@ section {
.shiny {
background: #2e3436;
}
.heart {
color: red;
}
.wall-item-content {
overflow-x: auto;
}
@ -1328,10 +1330,11 @@ div[id$="wrapper"] br {
.photo-album-image-wrapper,
.photo-top-image-wrapper {
float: left;
-moz-box-shadow: 0 0 5px #888;
-webkit-box-shadow: 0 0 5px #888;
box-shadow: 0 0 5px #888;
background-color: #eee;
-moz-box-shadow: 3px 3px 10px 0 #000;
-webkit-box-shadow: 3px 3px 10px 0 #000;
box-shadow: 3px 3px 10px 0 #000;
background-color: #222;
color: #2e2f2e;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
@ -1548,8 +1551,7 @@ div[id$="wrapper"] br {
.view-contact-wrapper,
.contact-entry-wrapper {
float: left;
margin-right: 5px;
margin-bottom: 40px;
margin: 0 5px 40px 0;
width: 120px;
height: 120px;
padding: 3px;
@ -1712,17 +1714,20 @@ div[id$="wrapper"] br {
clear: both;
}
#register-form label,
#profile-edit-form label {
width: 300px;
float: left;
}
/*#register-form label, */
/*#profile-edit-form label {*/
/* width: 300px; */
/* float: left; */
/*} */
#register-form span,
#profile-edit-form span {
color:#555753;
display:block;
margin-bottom:20px;
/*#register-form span, */
/*#profile-edit-form span {*/
/* color: #555753; */
/* display: block; */
/* margin-bottom: 20px; */
/*} */
#profile-edit-marital-label span {
margin: -4px;
}
.settings-submit-wrapper,
.profile-edit-submit-wrapper {
@ -1944,7 +1949,12 @@ div[id$="wrapper"] br {
*/
.directory-item {
float: left;
margin: 50px 50px 0px 0px;
/*margin: 50px 50px 0px 0px;*/
margin: 0 5px 4px 0;
padding: 3px;
width: 180px;
height: 250px;
position: relative;
}
@ -1956,8 +1966,8 @@ div[id$="wrapper"] br {
}
.group-selected, .nets-selected {
padding: 3px;
border: 1px solid #f8f8f8;
background: #2e302e;
color: #2e2f2e;
background: #88a9d2;
font-weight: bold;
}
.groupsideedit {

View file

@ -72,3 +72,6 @@ $(document).ready(function() {
});
</script>
EOT;
$a->page['footer'] .= <<<EOFooter
EOFooter;

View file

@ -1,5 +1,4 @@
<nav>
$langselector
<span id="banner">$banner</span>
@ -112,11 +111,14 @@ works -->
<a id="intro-update" class="nav-ajax-left" href="$nav.introductions.0"></a>
{{ endif }}
</div>
</div>
<a href="#" class="floaterflip"></a>
</nav>
<div id="lang-sel-wrap">
$langselector
</div>
<ul id="nav-notifications-template" style="display:none;" rel="template">
<li class="{4}"><a href="{0}"><img src="{1}" height="24" width="24" alt="" />{2} <span class="notif-when">{3}</span></a></li>
</ul>

View file

@ -79,7 +79,7 @@ mark {
/* Redeclare monospace font family: h5bp.com/j */
pre, code, kbd, samp, .wall-item-body code {
font-family: monospace, monospace;
_font-family: 'courier new', monospace;
_font-family: monospace;
font-size: 1em; }
/* Improve readability of pre-formatted text in all browsers */
@ -127,6 +127,7 @@ a:hover img {
}
blockquote {
background: #eee;
color: #111;
text-indent: 5px;
padding: 5px;
border: 1px #aaa solid;
@ -134,7 +135,6 @@ blockquote {
}
a:hover {
color: #729fcf;
padding-bottom: 0;
border-bottom: 1px dotted #729fcf;
}
.required {
@ -462,6 +462,7 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify, nav #nav-notifications-link
right: 1%;
padding: 5px;
background: #2e3436;
color: transparent;
border-radius: 5px;
z-index: 100;
}
@ -511,14 +512,14 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify, nav #nav-notifications-link
}
#lang-select-icon {
cursor: pointer;
position: absolute;
left: 0;
top: 0;
position: fixed;
left: 28px;
bottom: 6px;
}
#language-selector {
position: absolute;
top: 0;
left: 16px;
position: fixed;
bottom: 2px;
left: 52px;
}
.menu-popup {
position: absolute;
@ -633,8 +634,24 @@ aside {
.vcard #profile-photo-wrapper {
margin: 20px;
}
/* http://css-tricks.com/snippets/css/css-box-shadow/
* box-shadow:
* 1. The horizontal offset of the shadow, positive means
* the shadow will be on the right of the box, a negative
* offset will put the shadow on the left of the box.
* 2. The vertical offset of the shadow, a negative one
* means the box-shadow will be above the box, a
* positive one means the shadow will be below the box.
* 3. The blur radius (optional), if set to 0 the shadow
* will be sharp, the higher the number, the more blurred
* it will be.
* 4. The spread radius (optional), positive values increase
* the size of the shadow, negative values decrease the size.
* Default is 0 (the shadow is same size as blur).
* 5. Colo[u]r
*/
.vcard #profile-photo-wrapper img {
box-shadow: 3px 3px 10px 0;
box-shadow: 3px 3px 10px 0 #000;
}
aside h4 {
font-size: 1.2em;
@ -643,8 +660,10 @@ aside #viewcontacts {
text-align: right;
}
.aprofile dt {
box-shadow: 1px 1px 5px 0;
color: #666666;
background: transparent;
font-weight: bold;
box-shadow: 1px 1px 5px 0 #000;
margin: 15px 0 5px;
padding-left: 5px;
}
@ -707,51 +726,11 @@ aside #viewcontacts {
}
#jot #jot-tools span a {
display: block;
/*color: #cccccc; */
/*width: 100%; */
/*height: 40px; */
/*text-align: center;*/
/*line-height: 40px; */
/*overflow: hidden;*/
}
/*#jot #jot-tools li:hover {*/
/*background-color: #364e59;*/
/*}*/
#jot #jot-tools .perms {
float: right;
width: 40px;
}
/*#jot #jot-tools .perms a.unlock {*/
/* width: 30px; */
/* border-left: 10px solid #cccccc;*/
/* background-color: #cccccc; */
/*}*/
/*#jot #jot-tools .perms a.lock {*/
/* width: 30px; */
/* border-left: 10px solid #666666;*/
/* background-color: #666666; */
/*}*/
/*#jot #jot-tools li.submit { */
/* float: right; */
/* background-color: #cccccc; */
/* border-bottom: 2px solid #cccccc; */
/* border-right: 1px solid #666666; */
/* border-left: 1px solid #666666; */
/*} */
/*#jot #jot-tools li.submit input { */
/* border: 0px; */
/* margin: 0px; */
/* padding: 0px; */
/* background-color: #cccccc; */
/* color: #666666; */
/* width: 80px; */
/* height: 40px; */
/* line-height: 40px; */
/*} */
/*#jot #jot-tools li.submit input:hover {*/
/* background-color: #bdcdd4; */
/* color: #666666; */
/*} */
#jot #jot-tools li.loading {
float: right;
background-color: #ffffff;
@ -945,17 +924,22 @@ aside #viewcontacts {
}
#jot-preview-content {
background-color: #ffffe0;
border: 1px #aaaa00 solid;
color: #111;
border: 1px #aa0 solid;
border-radius: 3px;
padding: 3px 3px 6px 10px;
}
#jot-preview-content .wall-item-outside-wrapper {
border: 0;
border-radius: 0px;
}
/**
* section
*/
section {
margin: 20px 6% 0 4%;
margin: 20px 8% 0 4%;
font-size: 0.8em;
padding-right: 230px;
min-width: 475px;
@ -964,28 +948,32 @@ section {
/** tabs **/
.tabs {
list-style: none;
margin: 10px 0 10px;
margin: 10px 0;
padding: 0;
border-bottom: 1px solid #729fcf;
font-size: 14px;
}
.tabs li {
display: inline;
}
.tab {
padding: 0 5px;
border: 1px solid #729fcf;
padding: 4px;
}
.tab:hover {
background-color: #729fcf;
background: #729fcf;
color: #eeeeec;
border: 0px;
}
.tab:active {
background-color: #729fcf;
background: #729fcf;
color: #eeeeec;
border: 0px;
}
.tab.active {
background: #729fcf;
color: #eeeeec;
}
.tab a {
border: 0;
text-decoration: none;
}
/**
* items
@ -1011,6 +999,9 @@ section {
.shiny {
background: #efefdf;
}
.heart {
color: red;
}
.wall-item-content {
overflow-x: auto;
}
@ -1297,6 +1288,7 @@ section {
border-style: solid;
border-width: 1px 1px 1px 10px;
background: #eee;
color: #444;
width: 95%;
}
@ -1553,8 +1545,7 @@ div[id$="wrapper"] br {
.view-contact-wrapper,
.contact-entry-wrapper {
float: left;
margin-right: 5px;
margin-bottom: 40px;
margin: 0 5px 40px 0;
width: 120px;
height: 120px;
padding: 3px;
@ -1666,8 +1657,9 @@ div[id$="wrapper"] br {
}
.contact-photo-menu {
width: auto;
border: 2px solid #444444;
background: #FFFFFF;
border: 2px solid #444;
background: #eee;
color: #111;
position: absolute;
left: 0px; top: 90px;
display: none;
@ -1706,6 +1698,7 @@ div[id$="wrapper"] br {
-moz-border-radius: 5px;
border-radius: 5px;
padding: 5px;
color: #111;
}
#settings-default-perms {
margin-bottom: 20px;
@ -1715,17 +1708,20 @@ div[id$="wrapper"] br {
clear: both;
}
#register-form label,
#profile-edit-form label {
width: 300px;
float: left;
}
/*#register-form label, */
/*#profile-edit-form label {*/
/* width: 300px; */
/* float: left; */
/*} */
#register-form span,
#profile-edit-form span {
color:#555753;
display:block;
margin-bottom:20px;
/*#register-form span, */
/*#profile-edit-form span {*/
/* color: #555753; */
/* display: block; */
/* margin-bottom: 20px; */
/*} */
#profile-edit-marital-label span {
margin: -4px;
}
.settings-submit-wrapper,
.profile-edit-submit-wrapper {
@ -1742,17 +1738,19 @@ div[id$="wrapper"] br {
float: left;
margin: 20px 20px 0px 0px;
}
#profile-edit-links ul {
margin: 20px 0;
padding: 0;
list-style: none;
}
#register-sitename {
display: inline;
font-weight: bold;
}
#advanced-expire-popup {
/* background: #2e2f2e;
color: #eec;*/
}
/**
* contacts selector
@ -1945,7 +1943,12 @@ div[id$="wrapper"] br {
*/
.directory-item {
float: left;
margin: 50px 50px 0px 0px;
/*margin: 50px 50px 0px 0px;*/
margin: 0 5px 4px 0;
padding: 3px;
width: 180px;
height: 250px;
position: relative;
}
@ -1957,6 +1960,7 @@ div[id$="wrapper"] br {
}
.group-selected, .nets-selected {
padding: 3px;
color: #111;
border: 1px solid #CCCCCC;
background: #F8F8F8;
font-weight: bold;
@ -2132,6 +2136,7 @@ div[id$="wrapper"] br {
padding: 5px;
background: #eee;
vertical-align: middle;
color: #111;
}
.field input, input[type="text"] {
width: 250px;
@ -2172,7 +2177,7 @@ div[id$="wrapper"] br {
display:none !important;
}
.field.radio .field_help {
margin-left: 0;
margin-left: 297px;
}
@ -2182,8 +2187,8 @@ div[id$="wrapper"] br {
.popup {
width: 100%;
height: 100%;
top:0px;
left:0px;
top: 0px;
left: 0px;
position: absolute;
display: none;
}
@ -2298,12 +2303,6 @@ div[id$="wrapper"] br {
.icon.drophide, .icon.delete {
float: left;
}
/*.icon.s22 {
display: block;
background: url(icons.png) no-repeat;
width: 22px;
height: 22px;
}*/
.icon.s22.delete {
display: block;
background-position: -110px 0;
@ -2649,4 +2648,3 @@ footer {
font-size: 15pt;
}
}

View file

@ -72,3 +72,6 @@ $(document).ready(function() {
});
</script>
EOT;
$a->page['footer'] .= <<<EOFooter
EOFooter;