2012-03-09 17:15:27 +00:00
< ? php
/*
2012-03-22 03:33:21 +00:00
* Name : Diabook
2013-09-08 02:30:55 +00:00
* Description : Diabook : report bugs and request here : http :// pad . toktan . org / p / diabook or http :// bugs . friendica . com / view_all_bug_page . php
2013-09-11 17:14:41 +00:00
* Version : ( Version : 1.028 )
2012-10-16 11:33:53 +00:00
* Author :
2012-03-09 17:15:27 +00:00
*/
2012-10-16 11:33:53 +00:00
function get_diabook_config ( $key , $default = false ) {
if ( local_user ()) {
$result = get_pconfig ( local_user (), " diabook " , $key );
if ( $result !== false )
return $result ;
}
$result = get_config ( " diabook " , $key );
if ( $result !== false )
return $result ;
return $default ;
}
2012-04-01 16:12:20 +00:00
2012-05-02 12:33:04 +00:00
function diabook_init ( & $a ) {
2012-10-16 11:33:53 +00:00
2013-01-03 17:47:45 +00:00
set_template_engine ( $a , 'smarty3' );
2012-04-07 14:39:43 +00:00
//print diabook-version for debugging
2013-09-11 17:14:41 +00:00
$diabook_version = " Diabook (Version: 1.028) " ;
2012-05-13 18:51:39 +00:00
$a -> page [ 'htmlhead' ] .= sprintf ( '<META NAME=generator CONTENT="%s"/>' , $diabook_version );
2012-03-09 17:15:27 +00:00
2012-05-12 14:11:46 +00:00
//init css on network and profilepages
2012-03-23 13:09:06 +00:00
$cssFile = null ;
2012-05-19 22:11:32 +00:00
// Preload config
load_config ( " diabook " );
load_pconfig ( local_user (), " diabook " );
2013-09-11 17:14:41 +00:00
// adjust nav-bar, depending state of user
if ( local_user () ) {
$a -> page [ 'htmlhead' ] .= '
< script >
$ ( document ) . ready ( function () {
$ ( " li#nav-site-linkmenu.nav-menu-icon " ) . attr ( " style " , " display: block; " );
$ ( " li#nav-directory-link.nav-menu " ) . attr ( " style " , " margin-right: 0px; " );
$ ( " li#nav-home-link.nav-menu " ) . attr ( " style " , " display: block;margin-right: 8px; " );
});
</ script > ' ;
}
if ( $a -> argv [ 0 ] == " profile " && $a -> argv [ 1 ] != $a -> user [ 'nickname' ] ) {
$a -> page [ 'htmlhead' ] .= '
< script >
$ ( document ) . ready ( function () {
$ ( " li#nav-site-linkmenu.nav-menu-icon " ) . attr ( " style " , " display: block; " );
$ ( " li#nav-directory-link.nav-menu " ) . attr ( " style " , " margin-right: 0px; " );
$ ( " li#nav-home-link.nav-menu " ) . attr ( " style " , " display: block;margin-right: 8px; " );
});
</ script > ' ;
}
2012-05-12 14:11:46 +00:00
//get statuses of boxes at right-hand-column
2012-11-27 16:28:12 +00:00
$close_pages = get_diabook_config ( " close_pages " , 1 );
2012-10-16 11:33:53 +00:00
$close_profiles = get_diabook_config ( " close_profiles " , 0 );
$close_helpers = get_diabook_config ( " close_helpers " , 0 );
$close_services = get_diabook_config ( " close_services " , 0 );
$close_friends = get_diabook_config ( " close_friends " , 0 );
$close_lastusers = get_diabook_config ( " close_lastusers " , 0 );
$close_lastphotos = get_diabook_config ( " close_lastphotos " , 0 );
$close_lastlikes = get_diabook_config ( " close_lastlikes " , 0 );
$close_mapquery = get_diabook_config ( " close_mapquery " , 1 );
2012-05-08 01:29:25 +00:00
2012-05-12 14:11:46 +00:00
//get resolution (wide/normal)
2012-04-15 00:50:16 +00:00
$resolution = false ;
$resolution = get_pconfig ( local_user (), " diabook " , " resolution " );
if ( $resolution === false ) $resolution = " normal " ;
2012-04-26 19:07:46 +00:00
2012-05-02 14:59:58 +00:00
//Add META viewport tag respecting the resolution to header for tablets
if ( $resolution == " wide " ) {
$a -> page [ 'htmlhead' ] .= '<meta name="viewport" content="width=1200" />' ;
} else {
$a -> page [ 'htmlhead' ] .= '<meta name="viewport" content="width=980" />' ;
}
2012-05-12 14:11:46 +00:00
//get colour-scheme
2012-10-16 11:33:53 +00:00
$color = get_diabook_config ( " color " , " diabook " );
2012-04-26 19:07:46 +00:00
2012-04-19 23:44:20 +00:00
if ( $color == " diabook " ) $color_path = " / " ;
if ( $color == " aerith " ) $color_path = " /diabook-aerith/ " ;
if ( $color == " blue " ) $color_path = " /diabook-blue/ " ;
if ( $color == " red " ) $color_path = " /diabook-red/ " ;
if ( $color == " pink " ) $color_path = " /diabook-pink/ " ;
2012-04-20 15:16:42 +00:00
if ( $color == " green " ) $color_path = " /diabook-green/ " ;
2012-04-20 23:06:17 +00:00
if ( $color == " dark " ) $color_path = " /diabook-dark/ " ;
2012-04-19 23:44:20 +00:00
2013-09-08 02:30:55 +00:00
// remove doubled checkboxes at contacts-edit-page
if ( $a -> argv [ 0 ] === " contacts " && $a -> argv [ 1 ] != NULL && local_user ()){
$a -> page [ 'htmlhead' ] .= '
< script >
$ ( document ) . ready ( function () {
$ ( " span.group_unselected " ) . attr ( " style " , " display: none; " );
$ ( " span.group_selected " ) . attr ( " style " , " display: none; " );
2013-09-11 17:14:41 +00:00
$ ( " input.unticked.action " ) . attr ( " style " , " float: left; margin-top: 5px;-moz-appearance: none; " );
2013-09-08 02:30:55 +00:00
$ ( " li.menu-profile-list " ) . attr ( " style " , " min-height: 22px; " );
});
</ script > ' ;
}
2012-10-16 11:33:53 +00:00
2012-05-12 14:11:46 +00:00
//build personal menue at lefthand-col (id="profile_side") and boxes at right-hand-col at networkpages
2012-05-02 12:33:04 +00:00
if ( $a -> argv [ 0 ] === " network " && local_user ()){
// USER MENU
if ( local_user ()) {
2012-10-16 11:33:53 +00:00
2012-05-02 12:33:04 +00:00
$r = q ( " SELECT micro FROM contact WHERE uid=%d AND self=1 " , intval ( $a -> user [ 'uid' ]));
2012-10-16 11:33:53 +00:00
2012-05-02 12:33:04 +00:00
$userinfo = array (
'icon' => ( count ( $r ) ? $r [ 0 ][ 'micro' ] : $a -> get_baseurl () . " /images/default-profile-mm.jpg " ),
'name' => $a -> user [ 'username' ],
2012-10-16 11:33:53 +00:00
);
2012-05-02 12:33:04 +00:00
$ps = array ( 'usermenu' => array ());
$ps [ 'usermenu' ][ 'status' ] = Array ( 'profile/' . $a -> user [ 'nickname' ], t ( 'Home' ), " " , t ( 'Your posts and conversations' ));
$ps [ 'usermenu' ][ 'profile' ] = Array ( 'profile/' . $a -> user [ 'nickname' ] . '?tab=profile' , t ( 'Profile' ), " " , t ( 'Your profile page' ));
2012-10-16 11:33:53 +00:00
$ps [ 'usermenu' ][ 'contacts' ] = Array ( 'contacts' , t ( 'Contacts' ), " " , t ( 'Your contacts' ));
2012-05-02 12:33:04 +00:00
$ps [ 'usermenu' ][ 'photos' ] = Array ( 'photos/' . $a -> user [ 'nickname' ], t ( 'Photos' ), " " , t ( 'Your photos' ));
$ps [ 'usermenu' ][ 'events' ] = Array ( 'events/' , t ( 'Events' ), " " , t ( 'Your events' ));
$ps [ 'usermenu' ][ 'notes' ] = Array ( 'notes/' , t ( 'Personal notes' ), " " , t ( 'Your personal photos' ));
$ps [ 'usermenu' ][ 'community' ] = Array ( 'community/' , t ( 'Community' ), " " , " " );
$ps [ 'usermenu' ][ 'pgroups' ] = Array ( 'http://dir.friendica.com/directory/forum' , t ( 'Community Pages' ), " " , " " );
$tpl = get_markup_template ( 'profile_side.tpl' );
$a -> page [ 'aside' ] = replace_macros ( $tpl , array (
'$userinfo' => $userinfo ,
'$ps' => $ps ,
)) . $a -> page [ 'aside' ];
}
2012-10-16 11:33:53 +00:00
2013-09-07 01:28:52 +00:00
$ccCookie = $close_pages + $close_mapquery + $close_profiles + $close_helpers + $close_services + $close_friends + $close_lastusers + $close_lastphotos + $close_lastlikes ;
2012-05-12 14:11:46 +00:00
//if all boxes closed, dont build right-hand-col and dont use special css
2013-09-07 01:28:52 +00:00
if ( $ccCookie != " 9 " ) {
2012-05-02 12:33:04 +00:00
// COMMUNITY
diabook_community_info ();
// CUSTOM CSS
if ( $resolution == " normal " ) { $cssFile = $a -> get_baseurl ( $ssl_state ) . " /view/theme/diabook " . $color_path . " style-network.css " ;}
2012-11-27 16:28:12 +00:00
if ( $resolution == " wide " ) { $cssFile = $a -> get_baseurl ( $ssl_state ) . " /view/theme/diabook " . $color_path . " style-network-wide.css " ;}
2012-05-02 12:33:04 +00:00
}
}
2012-03-25 06:47:17 +00:00
2012-05-12 14:11:46 +00:00
//build boxes at right_aside at profile pages
2012-05-02 12:33:04 +00:00
if ( $a -> argv [ 0 ] . $a -> argv [ 1 ] === " profile " . $a -> user [ 'nickname' ]){
2013-09-07 01:28:52 +00:00
if ( $ccCookie != " 9 " ) {
2012-05-02 12:33:04 +00:00
// COMMUNITY
diabook_community_info ();
2012-10-16 11:33:53 +00:00
2012-05-02 12:33:04 +00:00
// CUSTOM CSS
if ( $resolution == " normal " ) { $cssFile = $a -> get_baseurl ( $ssl_state ) . " /view/theme/diabook " . $color_path . " style-profile.css " ;}
2012-11-27 16:28:12 +00:00
if ( $resolution == " wide " ) { $cssFile = $a -> get_baseurl ( $ssl_state ) . " /view/theme/diabook " . $color_path . " style-profile-wide.css " ;}
2012-10-16 11:33:53 +00:00
2012-05-02 12:33:04 +00:00
}
}
2012-10-16 11:33:53 +00:00
2012-05-12 14:11:46 +00:00
//write js-scripts to the head-section:
2012-05-02 12:33:04 +00:00
//load jquery.cookie.js
$cookieJS = $a -> get_baseurl ( $ssl_state ) . " /view/theme/diabook/js/jquery.cookie.js " ;
2012-05-13 18:51:39 +00:00
$a -> page [ 'htmlhead' ] .= sprintf ( '<script type="text/javascript" src="%s"></script>' , $cookieJS );
2012-05-02 12:33:04 +00:00
//load jquery.ae.image.resize.js
2012-05-11 12:56:59 +00:00
$imageresizeJS = $a -> get_baseurl ( $ssl_state ) . " /view/theme/diabook/js/jquery.ae.image.resize.min.js " ;
2012-05-13 18:51:39 +00:00
$a -> page [ 'htmlhead' ] .= sprintf ( '<script type="text/javascript" src="%s" ></script>' , $imageresizeJS );
2012-05-03 04:05:55 +00:00
//load jquery.ui.js
2013-09-07 01:28:52 +00:00
if ( $ccCookie != " 9 " ) {
2014-09-06 14:21:03 +00:00
$jqueryuiJS = $a -> get_baseurl ( $ssl_state ) . " /view/theme/diabook/js/jquery-ui.min.js " ;
2012-05-13 18:51:39 +00:00
$a -> page [ 'htmlhead' ] .= sprintf ( '<script type="text/javascript" src="%s" ></script>' , $jqueryuiJS );
2014-09-06 14:21:03 +00:00
$jqueryuicssJS = $a -> get_baseurl ( $ssl_state ) . " /view/theme/diabook/jquery-ui.min.css " ;
2012-05-12 11:50:22 +00:00
$a -> page [ 'htmlhead' ] .= sprintf ( '<link rel="stylesheet" type="text/css" href="%s" />' , $jqueryuicssJS );
2012-10-16 11:33:53 +00:00
}
2013-09-07 01:28:52 +00:00
2012-05-05 18:01:38 +00:00
//load jquery.mapquery.js
2012-05-08 01:29:25 +00:00
if ( $close_mapquery != " 1 " ) {
2012-05-06 10:08:46 +00:00
$mqtmplJS = $a -> get_baseurl ( $ssl_state ) . " /view/theme/diabook/js/jquery.tmpl.js " ;
2012-05-13 18:51:39 +00:00
$a -> page [ 'htmlhead' ] .= sprintf ( '<script type="text/javascript" src="%s" ></script>' , $mqtmplJS );
2012-05-05 18:01:38 +00:00
$mapqueryJS = $a -> get_baseurl ( $ssl_state ) . " /view/theme/diabook/js/jquery.mapquery.core.js " ;
2012-05-13 18:51:39 +00:00
$a -> page [ 'htmlhead' ] .= sprintf ( '<script type="text/javascript" src="%s" ></script>' , $mapqueryJS );
2012-05-05 18:01:38 +00:00
$openlayersJS = $a -> get_baseurl ( $ssl_state ) . " /view/theme/diabook/js/OpenLayers.js " ;
2012-05-13 18:51:39 +00:00
$a -> page [ 'htmlhead' ] .= sprintf ( '<script type="text/javascript" src="%s" ></script>' , $openlayersJS );
2012-05-06 10:08:46 +00:00
$mqmouseposJS = $a -> get_baseurl ( $ssl_state ) . " /view/theme/diabook/js/jquery.mapquery.mqMousePosition.js " ;
2012-05-13 18:51:39 +00:00
$a -> page [ 'htmlhead' ] .= sprintf ( '<script type="text/javascript" src="%s" ></script>' , $mqmouseposJS );
2012-05-07 00:24:43 +00:00
$mousewheelJS = $a -> get_baseurl ( $ssl_state ) . " /view/theme/diabook/js/jquery.mousewheel.js " ;
2012-05-13 18:51:39 +00:00
$a -> page [ 'htmlhead' ] .= sprintf ( '<script type="text/javascript" src="%s" ></script>' , $mousewheelJS );
2012-05-11 12:56:59 +00:00
$mqlegendJS = $a -> get_baseurl ( $ssl_state ) . " /view/theme/diabook/js/jquery.mapquery.legend.js " ;
2012-05-13 18:51:39 +00:00
$a -> page [ 'htmlhead' ] .= sprintf ( '<script type="text/javascript" src="%s" ></script>' , $mqlegendJS );
2012-05-11 12:56:59 +00:00
$mqlayermanagerJS = $a -> get_baseurl ( $ssl_state ) . " /view/theme/diabook/js/jquery.mapquery.mqLayerManager.js " ;
2012-05-13 18:51:39 +00:00
$a -> page [ 'htmlhead' ] .= sprintf ( '<script type="text/javascript" src="%s" ></script>' , $mqlayermanagerJS );
2012-05-05 18:01:38 +00:00
}
2012-10-16 11:33:53 +00:00
2012-05-02 12:33:04 +00:00
$a -> page [ 'htmlhead' ] .= '
< script >
$ ( function () {
2013-02-05 01:06:43 +00:00
$ ( " a.lightbox " ) . colorbox ({ maxHeight : " 90% " }); // Select all links with lightbox class
2013-01-31 15:40:03 +00:00
$ ( " a#mapcontrol-link " ) . colorbox ({ inline : true , onClosed : function () { $ ( " #mapcontrol " ) . attr ( " style " , " display: none; " );}} );
$ ( " a#closeicon " ) . colorbox ({ inline : true , onClosed : function () { $ ( " #boxsettings " ) . attr ( " style " , " display: none; " );}} );
2012-05-02 14:27:01 +00:00
});
2012-10-16 11:33:53 +00:00
2012-05-02 14:27:01 +00:00
$ ( window ) . load ( function () {
var footer_top = $ ( document ) . height () - 30 ;
$ ( " div#footerbox " ) . attr ( " style " , " border-top: 1px solid #D2D2D2; width: 70%;right: 15%;position: absolute;top: " + footer_top + " px; " );
});
</ script > ' ;
2012-10-16 11:33:53 +00:00
2012-05-05 18:01:38 +00:00
//check if mapquerybox is active and print
2012-05-08 01:29:25 +00:00
if ( $close_mapquery != " 1 " ) {
2012-10-16 11:33:53 +00:00
$ELZoom = get_diabook_config ( " ELZoom " , 0 );
$ELPosX = get_diabook_config ( " ELPosX " , 0 );
$ELPosY = get_diabook_config ( " ELPosY " , 0 );
2012-05-05 18:01:38 +00:00
$a -> page [ 'htmlhead' ] .= '
< script >
2012-10-16 11:33:53 +00:00
2012-05-13 18:51:39 +00:00
$ ( function () {
2012-05-05 18:01:38 +00:00
$ ( " #map " ) . mapQuery ({
layers : [{ //add layers to your map; you need to define at least one to be able to see anything on the map
type : " osm " //add a layer of the type osm (OpenStreetMap)
2012-05-06 10:08:46 +00:00
}],
2012-05-07 00:24:43 +00:00
center : ({ zoom : '.$ELZoom.' , position : [ '.$ELPosX.' , '.$ELPosY.' ]}),
2012-05-06 10:08:46 +00:00
});
2012-10-16 11:33:53 +00:00
2012-05-05 18:01:38 +00:00
});
2012-10-16 11:33:53 +00:00
2012-05-06 10:08:46 +00:00
function open_mapcontrol () {
2012-05-11 12:56:59 +00:00
$ ( " div#mapcontrol " ) . attr ( " style " , " display: block;width:900px;height:900px; " );
$ ( " #map2 " ) . mapQuery ({
2012-05-11 14:41:16 +00:00
layers : [{ type : " osm " , label : " OpenStreetMap " },
2012-10-16 11:33:53 +00:00
{ type : " wms " , label : " Population density 2010 " , legend : { url : " http://mapserver.edugis.nl/cgi-bin/mapserv?map=maps/edugis/cache/population.map&version=1.1.1&service=WMS&request=GetLegendGraphic&layer=Bevolkingsdichtheid_2010&format=image/png " }, url : " http://t1.edugis.nl/tiles/tilecache.py?map=maps/edugis/cache/population.map " ,
2012-05-12 14:11:46 +00:00
layers : " Bevolkingsdichtheid_2010 " },
2012-10-16 11:33:53 +00:00
{ type : " wms " ,
label : " OpenLayers WMS " ,
url : " http://labs.metacarta.com/wms/vmap0 " ,
layers : " basic " }],
center : ({ zoom : '.$ELZoom.' , position : [ '.$ELPosX.' , '.$ELPosY.' ]})});
2012-05-06 10:08:46 +00:00
$ ( " #mouseposition " ) . mqMousePosition ({
map : " #map2 " ,
2012-05-08 01:29:25 +00:00
x : " " ,
y : " " ,
precision : 4
2012-10-16 11:33:53 +00:00
});
$ ( " #layermanager " ) . mqLayerManager ({ map : " #map2 " });
$ ( " div#layermanager " ) . accordion ({ header : " .mq-layermanager-element-header " });
$ ( " .mq-layermanager-element-content " ) . attr ( " style " , " " );
2012-05-06 10:08:46 +00:00
map = $ ( " #map2 " ) . mapQuery () . data ( " mapQuery " );
2012-05-08 01:29:25 +00:00
textarea = document . getElementById ( " id_diabook_ELZoom " );
2012-05-11 14:41:16 +00:00
textarea . value = " '. $ELZoom .' " ;
2012-05-07 00:24:43 +00:00
$ ( " #map2 " ) . bind ( " mousewheel " , function ( event , delta ) {
2012-05-11 14:41:16 +00:00
if ( delta > 0 && textarea . value < 18 ){
textarea . value = textarea . value - delta *- 1 ; }
if ( delta < 0 && textarea . value > " 0 " ){
textarea . value = textarea . value - delta *- 1 ; }
2012-05-07 00:24:43 +00:00
});
2012-05-06 10:08:46 +00:00
};
2012-05-05 18:01:38 +00:00
</ script > ' ;
}
2013-09-07 01:28:52 +00:00
2012-05-12 14:11:46 +00:00
//check if community_home-plugin is activated and change css.. we need this, that the submit-wrapper doesn't overlay the login-panel if communityhome-plugin is active
2012-05-02 12:33:04 +00:00
$nametocheck = " communityhome " ;
$r = q ( " select id from addon where name = '%s' and installed = 1 " , dbesc ( $nametocheck ));
2012-05-13 18:51:39 +00:00
if ( count ( $r ) == " 1 " && $a -> argv [ 0 ] === " home " ) {
2012-10-16 11:33:53 +00:00
2012-05-02 12:33:04 +00:00
$a -> page [ 'htmlhead' ] .= '
< script >
2012-05-13 18:51:39 +00:00
$ ( function () {
2012-05-02 12:33:04 +00:00
$ ( " div#login-submit-wrapper " ) . attr ( " style " , " padding-top: 120px; " );
});
2012-10-16 11:33:53 +00:00
</ script > ' ;
2012-05-02 12:33:04 +00:00
}
2012-05-12 14:11:46 +00:00
//comment-edit-wrapper on photo_view... we need this to workaround a global bug in photoview, where the comment-box is between the last comment the the comment before the last
2012-05-02 12:33:04 +00:00
if ( $a -> argv [ 0 ] . $a -> argv [ 2 ] === " photos " . " image " ){
$a -> page [ 'htmlhead' ] .= '
< script >
$ ( function (){
$ ( " .comment-edit-form " ) . css ( " display " , " table " );
});
</ script > ' ;
}
2012-05-12 14:11:46 +00:00
//restore (only) the order right hand col at settingspage
2012-05-02 12:33:04 +00:00
if ( $a -> argv [ 0 ] === " settings " && local_user ()) {
2012-10-16 11:33:53 +00:00
$a -> page [ 'htmlhead' ] .= '
2012-05-02 12:33:04 +00:00
< script >
function restore_boxes (){
2012-05-03 04:25:23 +00:00
$ . cookie ( " Boxorder " , null , { expires : 365 , path : " / " });
2012-05-08 01:29:25 +00:00
alert ( " Boxorder at right-hand column was restored. Please refresh your browser " );
2012-05-02 12:33:04 +00:00
}
</ script > ' ;}
2012-10-16 11:33:53 +00:00
2012-05-02 12:33:04 +00:00
if ( $a -> argv [ 0 ] . $a -> argv [ 1 ] === " profile " . $a -> user [ 'nickname' ] or $a -> argv [ 0 ] === " network " && local_user ()){
$a -> page [ 'htmlhead' ] .= '
< script >
$ ( function () {
$ ( " .oembed.photo img " ) . aeImageResize ({ height : 400 , width : 400 });
});
</ script > ' ;
2012-10-16 11:33:53 +00:00
2013-09-07 01:28:52 +00:00
if ( $ccCookie != " 9 " ) {
2012-05-02 12:33:04 +00:00
$a -> page [ 'htmlhead' ] .= '
< script >
$ ( " right_aside " ) . ready ( function (){
2012-10-16 11:33:53 +00:00
2012-11-27 16:28:12 +00:00
if ( '.$close_pages.' )
{
document . getElementById ( " close_pages " ) . style . display = " none " ;
};
2012-10-16 11:33:53 +00:00
if ( '.$close_mapquery.' )
2012-05-05 18:01:38 +00:00
{
document . getElementById ( " close_mapquery " ) . style . display = " none " ;
};
2012-10-16 11:33:53 +00:00
if ( '.$close_profiles.' )
2012-05-02 12:33:04 +00:00
{
document . getElementById ( " close_profiles " ) . style . display = " none " ;
};
2012-10-16 11:33:53 +00:00
if ( '.$close_helpers.' )
2012-05-02 12:33:04 +00:00
{
document . getElementById ( " close_helpers " ) . style . display = " none " ;
};
2012-10-16 11:33:53 +00:00
if ( '.$close_services.' )
2012-05-02 12:33:04 +00:00
{
document . getElementById ( " close_services " ) . style . display = " none " ;
};
2012-10-16 11:33:53 +00:00
if ( '.$close_friends.' )
2012-05-02 12:33:04 +00:00
{
document . getElementById ( " close_friends " ) . style . display = " none " ;
};
2012-10-16 11:33:53 +00:00
if ( '.$close_lastusers.' )
2012-05-02 12:33:04 +00:00
{
document . getElementById ( " close_lastusers " ) . style . display = " none " ;
};
2012-10-16 11:33:53 +00:00
if ( '.$close_lastphotos.' )
2012-05-02 12:33:04 +00:00
{
document . getElementById ( " close_lastphotos " ) . style . display = " none " ;
};
2012-10-16 11:33:53 +00:00
if ( '.$close_lastlikes.' )
2012-05-02 12:33:04 +00:00
{
document . getElementById ( " close_lastlikes " ) . style . display = " none " ;
};}
);
2012-10-16 11:33:53 +00:00
2012-05-02 12:33:04 +00:00
</ script > ' ;}
}
//end js scripts
// custom css
if ( ! is_null ( $cssFile )) $a -> page [ 'htmlhead' ] .= sprintf ( '<link rel="stylesheet" type="text/css" href="%s" />' , $cssFile );
2012-10-16 11:33:53 +00:00
2012-05-02 12:33:04 +00:00
//footer
$tpl = get_markup_template ( 'footer.tpl' );
$a -> page [ 'footer' ] .= replace_macros ( $tpl , array ());
2012-10-16 11:33:53 +00:00
2012-05-02 12:33:04 +00:00
//
2012-05-06 10:08:46 +00:00
js_diabook_footer ();
2012-05-02 12:33:04 +00:00
}
2012-03-23 01:36:34 +00:00
2012-05-02 12:33:04 +00:00
function diabook_community_info () {
$a = get_app ();
2012-10-16 11:33:53 +00:00
2012-11-27 16:28:12 +00:00
$close_pages = get_diabook_config ( " close_pages " , 1 );
2012-10-16 11:33:53 +00:00
$close_profiles = get_diabook_config ( " close_profiles " , 0 );
$close_helpers = get_diabook_config ( " close_helpers " , 0 );
$close_services = get_diabook_config ( " close_services " , 0 );
$close_friends = get_diabook_config ( " close_friends " , 0 );
$close_lastusers = get_diabook_config ( " close_lastusers " , 0 );
$close_lastphotos = get_diabook_config ( " close_lastphotos " , 0 );
$close_lastlikes = get_diabook_config ( " close_lastlikes " , 0 );
$close_mapquery = get_diabook_config ( " close_mapquery " , 1 );
2012-05-11 11:04:25 +00:00
2012-05-01 04:21:40 +00:00
// comunity_profiles
2012-05-08 01:29:25 +00:00
if ( $close_profiles != " 1 " ) {
2012-05-06 21:26:44 +00:00
$aside [ '$comunity_profiles_title' ] = t ( 'Community Profiles' );
2012-05-01 04:21:40 +00:00
$aside [ '$comunity_profiles_items' ] = array ();
2012-10-16 11:33:53 +00:00
$r = q ( " select gcontact.* from gcontact left join glink on glink.gcid = gcontact.id
2012-05-01 04:21:40 +00:00
where glink . cid = 0 and glink . uid = 0 order by rand () limit 9 " );
2012-12-22 19:57:29 +00:00
$tpl = get_markup_template ( 'ch_directory_item.tpl' );
2012-05-01 04:21:40 +00:00
if ( count ( $r )) {
$photo = 'photo' ;
foreach ( $r as $rr ) {
$profile_link = $a -> get_baseurl () . '/profile/' . (( strlen ( $rr [ 'nickname' ])) ? $rr [ 'nickname' ] : $rr [ 'profile_uid' ]);
$entry = replace_macros ( $tpl , array (
'$id' => $rr [ 'id' ],
2012-12-31 03:46:03 +00:00
'$profile_link' => zrl ( $rr [ 'url' ]),
2012-05-01 04:21:40 +00:00
'$photo' => $rr [ $photo ],
2012-12-31 03:46:03 +00:00
'$alt_text' => $rr [ 'name' ],
2012-05-01 04:21:40 +00:00
));
$aside [ '$comunity_profiles_items' ][] = $entry ;
}
2012-05-02 14:27:01 +00:00
}}
2012-10-16 11:33:53 +00:00
2012-03-23 13:09:06 +00:00
// last 12 users
2015-02-03 18:59:47 +00:00
if (( $close_lastusers != " 1 " ) AND ! get_config ( 'diabook' , 'disable_features' )) {
2012-03-23 01:36:34 +00:00
$aside [ '$lastusers_title' ] = t ( 'Last users' );
$aside [ '$lastusers_items' ] = array ();
$sql_extra = " " ;
$publish = ( get_config ( 'system' , 'publish_all' ) ? '' : " AND `publish` = 1 " );
$order = " ORDER BY `register_date` DESC " ;
$r = q ( " SELECT `profile`.*, `profile`.`uid` AS `profile_uid`, `user`.`nickname`
2012-10-16 11:33:53 +00:00
FROM `profile` LEFT JOIN `user` ON `user` . `uid` = `profile` . `uid`
2012-03-23 01:36:34 +00:00
WHERE `is-default` = 1 $publish AND `user` . `blocked` = 0 $sql_extra $order LIMIT % d , % d " ,
0 ,
2012-03-25 17:43:42 +00:00
9
2012-03-23 01:36:34 +00:00
);
2012-12-22 19:57:29 +00:00
$tpl = get_markup_template ( 'ch_directory_item.tpl' );
2012-03-23 01:36:34 +00:00
if ( count ( $r )) {
$photo = 'thumb' ;
foreach ( $r as $rr ) {
$profile_link = $a -> get_baseurl () . '/profile/' . (( strlen ( $rr [ 'nickname' ])) ? $rr [ 'nickname' ] : $rr [ 'profile_uid' ]);
$entry = replace_macros ( $tpl , array (
'$id' => $rr [ 'id' ],
2012-12-31 03:46:03 +00:00
'$profile_link' => $profile_link ,
2012-06-25 11:01:16 +00:00
'$photo' => $a -> get_cached_avatar_image ( $rr [ $photo ]),
2012-12-31 03:46:03 +00:00
'$alt_text' => $rr [ 'name' ],
2012-03-23 01:36:34 +00:00
));
$aside [ '$lastusers_items' ][] = $entry ;
}
2012-05-02 14:27:01 +00:00
}}
2012-10-16 11:33:53 +00:00
2012-03-23 13:09:06 +00:00
// last 10 liked items
2015-02-03 18:59:47 +00:00
if (( $close_lastlikes != " 1 " ) AND ! get_config ( 'diabook' , 'disable_features' )) {
2012-03-23 01:36:34 +00:00
$aside [ '$like_title' ] = t ( 'Last likes' );
$aside [ '$like_items' ] = array ();
2012-10-16 11:33:53 +00:00
$r = q ( " SELECT `T1`.`created`, `T1`.`liker`, `T1`.`liker-link`, `item`.* FROM
( SELECT `parent-uri` , `created` , `author-name` AS `liker` , `author-link` AS `liker-link`
2012-03-23 01:36:34 +00:00
FROM `item` WHERE `verb` = 'http://activitystrea.ms/schema/1.0/like' GROUP BY `parent-uri` ORDER BY `created` DESC ) AS T1
2012-10-16 11:33:53 +00:00
INNER JOIN `item` ON `item` . `uri` = `T1` . `parent-uri`
2012-03-23 01:36:34 +00:00
WHERE `T1` . `liker-link` LIKE '%s%%' OR `item` . `author-link` LIKE '%s%%'
GROUP BY `uri`
ORDER BY `T1` . `created` DESC
2012-03-25 17:43:42 +00:00
LIMIT 0 , 5 " ,
2012-03-23 01:36:34 +00:00
$a -> get_baseurl (), $a -> get_baseurl ()
);
foreach ( $r as $rr ) {
$author = '<a href="' . $rr [ 'liker-link' ] . '">' . $rr [ 'liker' ] . '</a>' ;
$objauthor = '<a href="' . $rr [ 'author-link' ] . '">' . $rr [ 'author-name' ] . '</a>' ;
2012-10-16 11:33:53 +00:00
2012-03-23 01:36:34 +00:00
//var_dump($rr['verb'],$rr['object-type']); killme();
switch ( $rr [ 'verb' ]){
case 'http://activitystrea.ms/schema/1.0/post' :
switch ( $rr [ 'object-type' ]){
case 'http://activitystrea.ms/schema/1.0/event' :
$post_type = t ( 'event' );
break ;
default :
$post_type = t ( 'status' );
}
break ;
default :
if ( $rr [ 'resource-id' ]){
$post_type = t ( 'photo' );
$m = array (); preg_match ( " / \ [url=([^]]*) \ ]/ " , $rr [ 'body' ], $m );
$rr [ 'plink' ] = $m [ 1 ];
} else {
$post_type = t ( 'status' );
}
}
$plink = '<a href="' . $rr [ 'plink' ] . '">' . $post_type . '</a>' ;
$aside [ '$like_items' ][] = sprintf ( t ( '%1$s likes %2$s\'s %3$s' ), $author , $objauthor , $plink );
2012-10-16 11:33:53 +00:00
2012-05-02 14:27:01 +00:00
}}
2012-10-16 11:33:53 +00:00
2012-03-23 13:09:06 +00:00
// last 12 photos
2015-02-03 18:59:47 +00:00
if (( $close_lastphotos != " 1 " ) AND ! get_config ( 'diabook' , 'disable_features' )) {
2012-03-23 01:36:34 +00:00
$aside [ '$photos_title' ] = t ( 'Last photos' );
$aside [ '$photos_items' ] = array ();
2012-10-16 11:33:53 +00:00
$r = q ( " SELECT `photo`.`id`, `photo`.`resource-id`, `photo`.`scale`, `photo`.`desc`, `user`.`nickname`, `user`.`username` FROM
( SELECT `resource-id` , MAX ( `scale` ) as maxscale FROM `photo`
2012-03-23 01:36:34 +00:00
WHERE `profile` = 0 AND `contact-id` = 0 AND `album` NOT IN ( 'Contact Photos' , '%s' , 'Profile Photos' , '%s' )
AND `allow_cid` = '' AND `allow_gid` = '' AND `deny_cid` = '' AND `deny_gid` = '' GROUP BY `resource-id` ) AS `t1`
INNER JOIN `photo` ON `photo` . `resource-id` = `t1` . `resource-id` AND `photo` . `scale` = `t1` . `maxscale` ,
2012-10-16 11:33:53 +00:00
`user`
2012-03-23 01:36:34 +00:00
WHERE `user` . `uid` = `photo` . `uid`
AND `user` . `blockwall` = 0
2012-03-23 13:09:06 +00:00
AND `user` . `hidewall` = 0
2012-03-23 01:36:34 +00:00
ORDER BY `photo` . `edited` DESC
2012-03-25 17:43:42 +00:00
LIMIT 0 , 9 " ,
2012-03-23 01:36:34 +00:00
dbesc ( t ( 'Contact Photos' )),
dbesc ( t ( 'Profile Photos' ))
);
if ( count ( $r )) {
2012-12-22 19:57:29 +00:00
$tpl = get_markup_template ( 'ch_directory_item.tpl' );
2012-03-23 01:36:34 +00:00
foreach ( $r as $rr ) {
$photo_page = $a -> get_baseurl () . '/photos/' . $rr [ 'nickname' ] . '/image/' . $rr [ 'resource-id' ];
$photo_url = $a -> get_baseurl () . '/photo/' . $rr [ 'resource-id' ] . '-' . $rr [ 'scale' ] . '.jpg' ;
2012-10-16 11:33:53 +00:00
2012-03-23 01:36:34 +00:00
$entry = replace_macros ( $tpl , array (
'$id' => $rr [ 'id' ],
2012-12-31 03:46:03 +00:00
'$profile_link' => $photo_page ,
2012-03-23 01:36:34 +00:00
'$photo' => $photo_url ,
2012-12-31 03:46:03 +00:00
'$alt_text' => $rr [ 'username' ] . " : " . $rr [ 'desc' ],
2012-03-23 01:36:34 +00:00
));
$aside [ '$photos_items' ][] = $entry ;
}
2012-05-02 14:27:01 +00:00
}}
2012-10-16 11:33:53 +00:00
2012-03-27 06:28:47 +00:00
//right_aside FIND FRIENDS
2012-05-08 01:29:25 +00:00
if ( $close_friends != " 1 " ) {
2012-03-27 06:28:47 +00:00
if ( local_user ()) {
$nv = array ();
2012-04-03 18:59:00 +00:00
$nv [ 'title' ] = Array ( " " , t ( 'Find Friends' ), " " , " " );
$nv [ 'directory' ] = Array ( 'directory' , t ( 'Local Directory' ), " " , " " );
2012-04-01 23:29:20 +00:00
$nv [ 'global_directory' ] = Array ( 'http://dir.friendica.com/' , t ( 'Global Directory' ), " " , " " );
2012-03-27 06:28:47 +00:00
$nv [ 'match' ] = Array ( 'match' , t ( 'Similar Interests' ), " " , " " );
$nv [ 'suggest' ] = Array ( 'suggest' , t ( 'Friend Suggestions' ), " " , " " );
$nv [ 'invite' ] = Array ( 'invite' , t ( 'Invite Friends' ), " " , " " );
2012-10-16 11:33:53 +00:00
2012-10-19 04:51:45 +00:00
$nv [ 'search' ] = ' < form name = " simple_bar " method = " get " action = " http://dir.friendica.com/directory " >
2012-03-28 21:07:34 +00:00
< span class = " sbox_l " ></ span >
< span class = " sbox " >
< input type = " text " name = " search " size = " 13 " maxlength = " 50 " >
</ span >
< span class = " sbox_r " id = " srch_clear " ></ span > ' ;
2012-10-16 11:33:53 +00:00
2012-03-27 06:28:47 +00:00
$aside [ '$nv' ] = $nv ;
2012-05-02 14:27:01 +00:00
}}
2012-10-16 11:33:53 +00:00
2012-11-27 16:28:12 +00:00
//Community_Pages at right_aside
if ( $close_pages != " 1 " ) {
if ( local_user ()) {
$page = '
< h3 style = " margin-top:0px; " > '.t("Community Pages").' < a id = " closeicon " href = " #boxsettings " onClick = " open_boxsettings(); return false; " style = " text-decoration:none; " class = " icon close_box " title = " '.t( " Settings " ).' " ></ a ></ h3 >
< div id = " " >< ul style = " margin-left: 7px;margin-top: 0px;padding-left: 0px;padding-top: 0px; " > ' ;
$pagelist = array ();
$contacts = q ( " SELECT `id`, `url`, `name`, `micro`FROM `contact`
WHERE `network` = 'dfrn' AND `forum` = 1 AND `uid` = % d
ORDER BY `name` ASC " ,
intval ( $a -> user [ 'uid' ])
);
$pageD = array ();
// Look if the profile is a community page
foreach ( $contacts as $contact ) {
$pageD [] = array ( " url " => $contact [ " url " ], " name " => $contact [ " name " ], " id " => $contact [ " id " ], " micro " => $contact [ 'micro' ]);
};
$contacts = $pageD ;
foreach ( $contacts as $contact ) {
$page .= '<li style="list-style-type: none;" class="tool"><img height="20" width="20" style="float: left; margin-right: 3px;" src="' . $contact [ 'micro' ] . '" alt="' . $contact [ 'url' ] . '" /> <a href="' . $a -> get_baseurl () . '/redir/' . $contact [ " id " ] . '" style="margin-top: 2px; word-wrap: break-word; width: 132px;" title="' . $contact [ 'url' ] . '" class="label" target="external-link">' .
$contact [ " name " ] . " </a></li> " ;
}
$page .= '</ul></div>' ;
//if (sizeof($contacts) > 0)
$aside [ '$page' ] = $page ;
}}
//END Community Page
2012-10-16 11:33:53 +00:00
2012-05-05 18:01:38 +00:00
//mapquery
2012-05-07 00:24:43 +00:00
2012-05-08 01:29:25 +00:00
if ( $close_mapquery != " 1 " ) {
2012-05-05 18:01:38 +00:00
$mapquery = array ();
2012-05-07 00:24:43 +00:00
$mapquery [ 'title' ] = Array ( " " , " <a id='mapcontrol-link' href='#mapcontrol' style='text-decoration:none;' onclick='open_mapcontrol(); return false;'> " . t ( 'Earth Layers' ) . " </a> " , " " , " " );
2012-05-05 18:01:38 +00:00
$aside [ '$mapquery' ] = $mapquery ;
2012-05-07 00:24:43 +00:00
$ELZoom = get_pconfig ( local_user (), 'diabook' , 'ELZoom' );
$ELPosX = get_pconfig ( local_user (), 'diabook' , 'ELPosX' );
$ELPosY = get_pconfig ( local_user (), 'diabook' , 'ELPosY' );
2012-05-11 00:39:54 +00:00
$aside [ '$ELZoom' ] = array ( 'diabook_ELZoom' , t ( 'Set zoomfactor for Earth Layers' ), $ELZoom , '' , $ELZoom );
2012-10-16 11:33:53 +00:00
$aside [ '$ELPosX' ] = array ( 'diabook_ELPosX' , t ( 'Set longitude (X) for Earth Layers' ), $ELPosX , '' , $ELPosX );
$aside [ '$ELPosY' ] = array ( 'diabook_ELPosY' , t ( 'Set latitude (Y) for Earth Layers' ), $ELPosY , '' , $ELPosY );
if ( isset ( $_POST [ 'diabook-settings-map-sub' ]) && $_POST [ 'diabook-settings-map-sub' ] != '' ){
2012-05-07 00:24:43 +00:00
set_pconfig ( local_user (), 'diabook' , 'ELZoom' , $_POST [ 'diabook_ELZoom' ]);
2012-10-16 11:33:53 +00:00
set_pconfig ( local_user (), 'diabook' , 'ELPosX' , $_POST [ 'diabook_ELPosX' ]);
set_pconfig ( local_user (), 'diabook' , 'ELPosY' , $_POST [ 'diabook_ELPosY' ]);
2012-05-07 00:24:43 +00:00
header ( " Location: network " );
}
2012-05-05 18:01:38 +00:00
}
//end mapquery
2012-10-16 11:33:53 +00:00
2012-04-03 18:59:00 +00:00
//helpers
2012-05-08 01:29:25 +00:00
if ( $close_helpers != " 1 " ) {
2012-04-03 18:59:00 +00:00
$helpers = array ();
$helpers [ 'title' ] = Array ( " " , t ( 'Help or @NewHere ?' ), " " , " " );
$aside [ '$helpers' ] = $helpers ;
2012-05-02 14:27:01 +00:00
}
2012-04-03 18:59:00 +00:00
//end helpers
//connectable services
2012-05-08 01:29:25 +00:00
if ( $close_services != " 1 " ) {
2012-04-03 18:59:00 +00:00
$con_services = array ();
$con_services [ 'title' ] = Array ( " " , t ( 'Connect Services' ), " " , " " );
$aside [ '$con_services' ] = $con_services ;
2012-05-02 14:27:01 +00:00
}
2012-04-03 18:59:00 +00:00
//end connectable services
2013-09-07 01:28:52 +00:00
if ( $ccCookie != " 9 " ) {
2012-11-27 16:28:12 +00:00
$close_pages = get_diabook_config ( " close_pages " , 1 );
2012-10-16 11:44:27 +00:00
$close_profiles = get_diabook_config ( " close_profiles " , 0 );
$close_helpers = get_diabook_config ( " close_helpers " , 0 );
$close_services = get_diabook_config ( " close_services " , 0 );
$close_friends = get_diabook_config ( " close_friends " , 0 );
$close_lastusers = get_diabook_config ( " close_lastusers " , 0 );
$close_lastphotos = get_diabook_config ( " close_lastphotos " , 0 );
$close_lastlikes = get_diabook_config ( " close_lastlikes " , 0 );
$close_mapquery = get_diabook_config ( " close_mapquery " , 1 );
2012-10-16 11:42:18 +00:00
$close_or_not = array ( '1' => t ( " don't show " ), '0' => t ( " show " ),);
2012-05-11 00:39:54 +00:00
$boxsettings [ 'title' ] = Array ( " " , t ( 'Show/hide boxes at right-hand column:' ), " " , " " );
2012-05-10 10:19:51 +00:00
$aside [ '$boxsettings' ] = $boxsettings ;
2012-11-27 16:28:12 +00:00
$aside [ '$close_pages' ] = array ( 'diabook_close_pages' , t ( 'Community Pages' ), $close_pages , '' , $close_or_not );
2012-10-16 11:42:18 +00:00
$aside [ '$close_mapquery' ] = array ( 'diabook_close_mapquery' , t ( 'Earth Layers' ), $close_mapquery , '' , $close_or_not );
$aside [ '$close_profiles' ] = array ( 'diabook_close_profiles' , t ( 'Community Profiles' ), $close_profiles , '' , $close_or_not );
$aside [ '$close_helpers' ] = array ( 'diabook_close_helpers' , t ( 'Help or @NewHere ?' ), $close_helpers , '' , $close_or_not );
$aside [ '$close_services' ] = array ( 'diabook_close_services' , t ( 'Connect Services' ), $close_services , '' , $close_or_not );
$aside [ '$close_friends' ] = array ( 'diabook_close_friends' , t ( 'Find Friends' ), $close_friends , '' , $close_or_not );
$aside [ '$close_lastusers' ] = array ( 'diabook_close_lastusers' , t ( 'Last users' ), $close_lastusers , '' , $close_or_not );
$aside [ '$close_lastphotos' ] = array ( 'diabook_close_lastphotos' , t ( 'Last photos' ), $close_lastphotos , '' , $close_or_not );
$aside [ '$close_lastlikes' ] = array ( 'diabook_close_lastlikes' , t ( 'Last likes' ), $close_lastlikes , '' , $close_or_not );
2012-05-08 01:29:25 +00:00
$aside [ '$sub' ] = t ( 'Submit' );
2012-10-16 11:33:53 +00:00
$baseurl = $a -> get_baseurl ( $ssl_state );
2012-05-08 01:29:25 +00:00
$aside [ '$baseurl' ] = $baseurl ;
2012-10-16 11:33:53 +00:00
if ( isset ( $_POST [ 'diabook-settings-box-sub' ]) && $_POST [ 'diabook-settings-box-sub' ] != '' ){
2012-11-27 16:28:12 +00:00
set_pconfig ( local_user (), 'diabook' , 'close_pages' , $_POST [ 'diabook_close_pages' ]);
2012-05-08 01:29:25 +00:00
set_pconfig ( local_user (), 'diabook' , 'close_mapquery' , $_POST [ 'diabook_close_mapquery' ]);
set_pconfig ( local_user (), 'diabook' , 'close_profiles' , $_POST [ 'diabook_close_profiles' ]);
set_pconfig ( local_user (), 'diabook' , 'close_helpers' , $_POST [ 'diabook_close_helpers' ]);
set_pconfig ( local_user (), 'diabook' , 'close_services' , $_POST [ 'diabook_close_services' ]);
set_pconfig ( local_user (), 'diabook' , 'close_friends' , $_POST [ 'diabook_close_friends' ]);
set_pconfig ( local_user (), 'diabook' , 'close_lastusers' , $_POST [ 'diabook_close_lastusers' ]);
set_pconfig ( local_user (), 'diabook' , 'close_lastphotos' , $_POST [ 'diabook_close_lastphotos' ]);
2012-10-16 11:33:53 +00:00
set_pconfig ( local_user (), 'diabook' , 'close_lastlikes' , $_POST [ 'diabook_close_lastlikes' ]);
2012-05-08 01:29:25 +00:00
}
}
2012-12-25 18:48:02 +00:00
$close = t ( 'Settings' );
$aside [ '$close' ] = $close ;
2012-12-22 19:57:29 +00:00
2012-12-25 18:48:02 +00:00
//get_baseurl
$url = $a -> get_baseurl ( $ssl_state );
$aside [ '$url' ] = $url ;
2012-12-22 19:57:29 +00:00
2012-12-25 18:48:02 +00:00
//print right_aside
$tpl = get_markup_template ( 'communityhome.tpl' );
$a -> page [ 'right_aside' ] = replace_macros ( $tpl , $aside );
2012-10-16 11:33:53 +00:00
2012-05-02 12:33:04 +00:00
}
2012-03-09 17:15:27 +00:00
2012-05-06 10:08:46 +00:00
function js_diabook_footer () {
2012-05-02 12:33:04 +00:00
/** @ purpose insert stuff in bottom of page
*/
$a = get_app ();
$baseurl = $a -> get_baseurl ( $ssl_state );
$bottom [ '$baseurl' ] = $baseurl ;
2012-12-22 19:57:29 +00:00
$tpl = get_markup_template ( 'bottom.tpl' );
2012-05-02 12:33:04 +00:00
$a -> page [ 'footer' ] = $a -> page [ 'footer' ] . replace_macros ( $tpl , $bottom );
}
2012-05-05 22:10:35 +00:00
2012-10-16 11:33:53 +00:00