1
1
Fork 0

Merge remote branch 'upstream/master'

This commit is contained in:
Michael 2012-04-13 00:10:13 +02:00
commit 7384786d44
92 changed files with 2113 additions and 12101 deletions

View file

@ -9,9 +9,9 @@ require_once('include/nav.php');
require_once('include/cache.php');
define ( 'FRIENDICA_PLATFORM', 'Friendica');
define ( 'FRIENDICA_VERSION', '2.3.1308' );
define ( 'FRIENDICA_VERSION', '2.3.1309' );
define ( 'DFRN_PROTOCOL_VERSION', '2.23' );
define ( 'DB_UPDATE_VERSION', 1137 );
define ( 'DB_UPDATE_VERSION', 1138 );
define ( 'EOL', "<br />\r\n" );
define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );
@ -657,32 +657,32 @@ if(! function_exists('check_config')) {
// call the specific update
global $db;
$db->excep(TRUE);
try {
$db->beginTransaction();
// global $db;
// $db->excep(TRUE);
// try {
// $db->beginTransaction();
$func = 'update_' . $x;
$func($a);
$db->commit();
} catch(Exception $ex) {
$db->rollback();
//send the administrator an e-mail
$email_tpl = get_intltext_template("update_fail_eml.tpl");
$email_tpl = replace_macros($email_tpl, array(
'$sitename' => $a->config['sitename'],
'$siteurl' => $a->get_baseurl(),
'$update' => $x,
'$error' => $ex->getMessage()));
$subject=sprintf(t('Update Error at %s'), $a->get_baseurl());
// $db->commit();
// } catch(Exception $ex) {
// $db->rollback();
// //send the administrator an e-mail
// $email_tpl = get_intltext_template("update_fail_eml.tpl");
// $email_tpl = replace_macros($email_tpl, array(
// '$sitename' => $a->config['sitename'],
// '$siteurl' => $a->get_baseurl(),
// '$update' => $x,
// '$error' => $ex->getMessage()));
// $subject=sprintf(t('Update Error at %s'), $a->get_baseurl());
mail($a->config['admin_email'], $subject, $text,
'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME'] . "\n"
. 'Content-type: text/plain; charset=UTF-8' . "\n"
. 'Content-transfer-encoding: 8bit' );
//try the logger
logger('update failed: '.$ex->getMessage().EOL);
}
$db->excep(FALSE);
// mail($a->config['admin_email'], $subject, $text,
// 'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME'] . "\n"
// . 'Content-type: text/plain; charset=UTF-8' . "\n"
// . 'Content-transfer-encoding: 8bit' );
// //try the logger
// logger('update failed: '.$ex->getMessage().EOL);
// }
// $db->excep(FALSE);
}
}
set_config('system','build', DB_UPDATE_VERSION);

File diff suppressed because it is too large Load diff

View file

@ -23,16 +23,24 @@ function user_remove($uid) {
);
q("DELETE FROM `contact` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `gcign` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `group` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `group_member` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `intro` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `event` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `item` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `item_id` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `mail` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `mailacct` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `manage` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `notify` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `photo` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `attach` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `profile` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `profile_check` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `pconfig` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `search` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `spam` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `user` WHERE `uid` = %d", intval($uid));
if($uid == local_user()) {
unset($_SESSION['authenticated']);
@ -165,4 +173,15 @@ function random_profile() {
if(count($r))
return dirname($r[0]['url']);
return '';
}
}
function contacts_not_grouped($uid) {
$r = q("select * from contact where uid = %d and self = 0 and id not in (select distinct(`contact-id`) from group_member where uid = %d) ",
intval($uid),
intval($uid)
);
return $r;
}

496
include/dba.php Normal file → Executable file
View file

@ -8,273 +8,189 @@ require_once('include/datetime.php');
*
* For debugging, insert 'dbg(1);' anywhere in the program flow.
* dbg(0); will turn it off. Logging is performed at LOGGER_DATA level.
* When logging, all binary info is converted to
* text and html entities are escaped so that
* the debugging stream is safe to view
* within both terminals and web pages.
* When logging, all binary info is converted to text and html entities are escaped so that
* the debugging stream is safe to view within both terminals and web pages.
*
*/
if(! class_exists('dba')) {
class dba {
if(! class_exists('dba')) {
private $debug = 0;
private $db;
public $mysqli = true;
public $connected = false;
public $error = false;
class dba {
function __construct($server,$user,$pass,$db,$install = false) {
private $debug = 0;
private $db;
private $exceptions;
public $mysqli = true;
public $connected = false;
public $error = false;
$server = trim($server);
$user = trim($user);
$pass = trim($pass);
$db = trim($db);
function __construct($server,$user,$pass,$db,$install = false) {
$server = trim($server);
$user = trim($user);
$pass = trim($pass);
$db = trim($db);
//we need both, server and username, so fail if one is missing
if (!(strlen($server) && strlen($user))){
$this->connected = false;
$this->db = null;
throw new InvalidArgumentException(t("Server name of user name are missing. "));
}
//when we are installing
if($install) {
if(strlen($server) && ($server !== 'localhost') && ($server !== '127.0.0.1')) {
if(! dns_get_record($server, DNS_A + DNS_CNAME + DNS_PTR)) {
$this->connected = false;
$this->db = null;
throw new InvalidArgumentException( t('Cannot locate DNS info for database server \'%s\''), $server);
}
}
}
if(class_exists('mysqli')) {
$this->db = new mysqli($server,$user,$pass,$db);
if(NULL === $this->db->connect_error) {
$this->connected = true;
} else {
throw new RuntimeException($this->db->connect_error);
}
} else {
$this->mysqli = false;
$this->db = mysql_connect($server,$user,$pass);
if($this->db && mysql_select_db($db,$this->db)) {
$this->connected = true;
} else {
throw new RuntimeException(mysql_error());
}
}
}
public function excep($excep) {
$this->exceptions=$excep;
if (!(strlen($server) && strlen($user))){
$this->connected = false;
$this->db = null;
return;
}
public function getdb() {
return $this->db;
}
public function q($sql) {
if((! $this->db) || (! $this->connected)) {
$this->throwOrLog(new RuntimeException(t("There is no db connection. ")));
return;
}
if($this->mysqli) {
$result = $this->db->query($sql);
} else {
$result = mysql_query($sql,$this->db);
}
//on debug mode or fail, the query is written to the log.
//this won't work if logger can not read it's logging level
//from the db.
if($this->debug || FALSE === $result) {
$mesg = '';
if($result === false) {
$mesg = 'false '.$this->error();
} elseif($result === true) {
$mesg = 'true';
} else {
if($this->mysqli) {
$mesg = $result->num_rows . t(' results') . EOL;
} else {
$mesg = mysql_num_rows($result) . t(' results') . EOL;
}
}
$str = 'SQL = ' . printable($sql) . EOL . t('SQL returned ') . $mesg . EOL;
// If dbfail.out exists, we will write any failed calls directly to it,
// regardless of any logging that may or may nor be in effect.
// These usually indicate SQL syntax errors that need to be resolved.
if(file_exists('dbfail.out')) {
file_put_contents('dbfail.out', datetime_convert() . "\n" . $str . "\n", FILE_APPEND);
}
logger('dba: ' . $str );
if(FALSE===$result) {
$this->throwOrLog(new RuntimeException('dba: ' . $str));
return;
}
}
if($result === true) {
return $result;
}
$r = array();
if($this->mysqli) {
if($result->num_rows) {
while($x = $result->fetch_array(MYSQLI_ASSOC)) {
$r[] = $x;
}
$result->free_result();
}
} else {
if(mysql_num_rows($result)) {
while($x = mysql_fetch_array($result, MYSQL_ASSOC)) {
$r[] = $x;
}
mysql_free_result($result);
}
}
if($this->debug) {
logger('dba: ' . printable(print_r($r, true)));
}
return($r);
}
private function error() {
if($this->mysqli) {
return $this->db->error;
} else {
return mysql_error($this->db);
}
}
private function throwOrLog(Exception $ex) {
if($this->exceptions) {
throw $ex;
} else {
logger('dba: '.$ex->getMessage());
}
}
/**
* starts a transaction. Transactions need to be finished with
* commit() or rollback(). Please mind that the db table engine may
* not support this.
*/
public function beginTransaction() {
if($this->mysqli) {
return $this->db->autocommit(false);
} else {
//no transaction support in mysql module...
mysql_query('SET AUTOCOMMIT = 0;', $db);
}
}
/**
* rollback a transaction. So, rollback anything that was done since the last call
* to beginTransaction().
*/
public function rollback() {
if($this->mysqli) {
return $this->db->rollback();
} else {
//no transaction support in mysql module...
mysql_query('ROLLBACK;', $db);
}
$this->stopTransaction();
}
/**
* commit a transaction. So, write any query to the database.
*/
public function commit() {
if($this->mysqli) {
return $this->db->commit();
} else {
//no transaction support in mysql module...
mysql_query('COMMIT;', $db);
}
$this->stopTransaction();
}
private function stopTransaction() {
if($this->mysqli) {
return $this->db->autocommit(true);
} else {
//no transaction support in mysql module...
mysql_query('SET AUTOCOMMIT = 1;', $db);
}
}
public function dbg($dbg) {
$this->debug = $dbg;
}
public function escape($str) {
if($this->db && $this->connected) {
if($this->mysqli) {
return $this->db->real_escape_string($str);
} else {
return mysql_real_escape_string($str,$this->db);
if($install) {
if(strlen($server) && ($server !== 'localhost') && ($server !== '127.0.0.1')) {
if(! dns_get_record($server, DNS_A + DNS_CNAME + DNS_PTR)) {
$this->error = sprintf( t('Cannot locate DNS info for database server \'%s\''), $server);
$this->connected = false;
$this->db = null;
return;
}
}
}
function __destruct() {
if ($this->db) {
if($this->mysqli) {
$this->db->close();
}
} else {
mysql_close($this->db);
if(class_exists('mysqli')) {
$this->db = @new mysqli($server,$user,$pass,$db);
if(! mysqli_connect_errno()) {
$this->connected = true;
}
}
else {
$this->mysqli = false;
$this->db = mysql_connect($server,$user,$pass);
if($this->db && mysql_select_db($db,$this->db)) {
$this->connected = true;
}
}
if(! $this->connected) {
$this->db = null;
if(! $install)
system_unavailable();
}
}
}
public function getdb() {
return $this->db;
}
public function q($sql) {
if((! $this->db) || (! $this->connected))
return false;
if($this->mysqli)
$result = @$this->db->query($sql);
else
$result = @mysql_query($sql,$this->db);
if($this->debug) {
$mesg = '';
if($this->mysqli) {
if($this->db->errno)
logger('dba: ' . $this->db->error);
}
elseif(mysql_errno($this->db))
logger('dba: ' . mysql_error($this->db));
if($result === false)
$mesg = 'false';
elseif($result === true)
$mesg = 'true';
else {
if($this->mysqli)
$mesg = $result->num_rows . ' results' . EOL;
else
$mesg = mysql_num_rows($result) . ' results' . EOL;
}
$str = 'SQL = ' . printable($sql) . EOL . 'SQL returned ' . $mesg . EOL;
logger('dba: ' . $str );
}
/**
* If dbfail.out exists, we will write any failed calls directly to it,
* regardless of any logging that may or may nor be in effect.
* These usually indicate SQL syntax errors that need to be resolved.
*/
if($result === false) {
logger('dba: ' . printable($sql) . ' returned false.');
if(file_exists('dbfail.out'))
file_put_contents('dbfail.out', datetime_convert() . "\n" . printable($sql) . ' returned false' . "\n", FILE_APPEND);
}
if(($result === true) || ($result === false))
return $result;
$r = array();
if($this->mysqli) {
if($result->num_rows) {
while($x = $result->fetch_array(MYSQLI_ASSOC))
$r[] = $x;
$result->free_result();
}
}
else {
if(mysql_num_rows($result)) {
while($x = mysql_fetch_array($result, MYSQL_ASSOC))
$r[] = $x;
mysql_free_result($result);
}
}
if($this->debug)
logger('dba: ' . printable(print_r($r, true)));
return($r);
}
public function dbg($dbg) {
$this->debug = $dbg;
}
public function escape($str) {
if($this->db && $this->connected) {
if($this->mysqli)
return @$this->db->real_escape_string($str);
else
return @mysql_real_escape_string($str,$this->db);
}
}
function __destruct() {
if ($this->db)
if($this->mysqli)
$this->db->close();
else
mysql_close($this->db);
}
}}
if(! function_exists('printable')) {
function printable($s) {
$s = preg_replace("~([\x01-\x08\x0E-\x0F\x10-\x1F\x7F-\xFF])~",".", $s);
$s = str_replace("\x00",'.',$s);
if(x($_SERVER,'SERVER_NAME'))
$s = escape_tags($s);
return $s;
}
}
function printable($s) {
$s = preg_replace("~([\x01-\x08\x0E-\x0F\x10-\x1F\x7F-\xFF])~",".", $s);
$s = str_replace("\x00",'.',$s);
if(x($_SERVER,'SERVER_NAME'))
$s = escape_tags($s);
return $s;
}}
// Procedural functions
if(! function_exists('dbg')) {
function dbg($state) {
global $db;
if($db)
$db->dbg($state);
}
}
if(! function_exists('dbg')) {
function dbg($state) {
global $db;
if($db)
$db->dbg($state);
}}
if(! function_exists('dbesc')) {
function dbesc($str) {
global $db;
if($db && $db->connected)
return($db->escape($str));
else
return(str_replace("'","\\'",$str));
}
}
if(! function_exists('dbesc')) {
function dbesc($str) {
global $db;
if($db && $db->connected)
return($db->escape($str));
else
return(str_replace("'","\\'",$str));
}}
@ -283,31 +199,30 @@ if(! function_exists('dbesc')) {
// Example: $r = q("SELECT * FROM `%s` WHERE `uid` = %d",
// 'user', 1);
if(! function_exists('q')) {
function q($sql) {
if(! function_exists('q')) {
function q($sql) {
global $db;
$args = func_get_args();
unset($args[0]);
if($db && $db->connected) {
$stmt = vsprintf($sql,$args);
if($stmt === false)
logger('dba: vsprintf error: ' . print_r(debug_backtrace(),true));
return $db->q($stmt);
}
/**
*
* This will happen occasionally trying to store the
* session data after abnormal program termination
*
*/
logger('dba: no database: ' . print_r($args,true));
return false;
global $db;
$args = func_get_args();
unset($args[0]);
if($db && $db->connected) {
$stmt = vsprintf($sql,$args);
if($stmt === false)
logger('dba: vsprintf error: ' . print_r(debug_backtrace(),true));
return $db->q($stmt);
}
}
/**
*
* This will happen occasionally trying to store the
* session data after abnormal program termination
*
*/
logger('dba: no database: ' . print_r($args,true));
return false;
}}
/**
*
@ -315,39 +230,36 @@ if(! function_exists('q')) {
*
*/
if(! function_exists('dbq')) {
function dbq($sql) {
if(! function_exists('dbq')) {
function dbq($sql) {
global $db;
if($db && $db->connected)
$ret = $db->q($sql);
else
$ret = false;
return $ret;
}
}
global $db;
if($db && $db->connected)
$ret = $db->q($sql);
else
$ret = false;
return $ret;
}}
// Caller is responsible for ensuring that any integer arguments to
// Caller is responsible for ensuring that any integer arguments to
// dbesc_array are actually integers and not malformed strings containing
// SQL injection vectors. All integer array elements should be specifically
// cast to int to avoid trouble.
// SQL injection vectors. All integer array elements should be specifically
// cast to int to avoid trouble.
if(! function_exists('dbesc_array_cb')) {
function dbesc_array_cb(&$item, $key) {
if(is_string($item))
$item = dbesc($item);
}
}
function dbesc_array_cb(&$item, $key) {
if(is_string($item))
$item = dbesc($item);
}}
if(! function_exists('dbesc_array')) {
function dbesc_array(&$arr) {
if(is_array($arr) && count($arr)) {
array_walk($arr,'dbesc_array_cb');
}
function dbesc_array(&$arr) {
if(is_array($arr) && count($arr)) {
array_walk($arr,'dbesc_array_cb');
}
}
}}

View file

@ -2974,12 +2974,23 @@ function item_expire($uid,$days) {
if($expire_items==0 && $item['type']!='note')
continue;
$r = q("UPDATE `item` SET `deleted` = 1, `edited` = '%s', `changed` = '%s' WHERE `id` = %d LIMIT 1",
dbesc(datetime_convert()),
dbesc(datetime_convert()),
intval($item['id'])
);
$r = q("DELETE FROM item_id where iid in (select id from item where parent = %d) and uid = %d",
intval($item['id']),
intval($uid)
);
$r = q("DELETE FROM sign where iid in (select id from item where parent = %d) and uid = %d",
intval($item['id']),
intval($uid)
);
// kill the kids
$r = q("UPDATE `item` SET `deleted` = 1, `edited` = '%s', `changed` = '%s' WHERE `parent-uri` = '%s' AND `uid` = %d ",

View file

@ -137,13 +137,12 @@
$('#mail-update-li').html(mail);
var eNotif = $(data).find('notif')
notif = eNotif.attr('count');
if (notif>=0){
$("#nav-notifications-linkmenu").addClass("on");
if (eNotif.children("note").length==0){
$("#nav-notifications-menu").html(notifications_empty);
} else {
nnm = $("#nav-notifications-menu");
nnm.html(notifications_all + notifications_mark);
//nnm.attr('popup','true');
eNotif.children("note").each(function(){
e = $(this);
@ -151,10 +150,12 @@
html = notifications_tpl.format(e.attr('href'),e.attr('photo'), text, e.attr('date'), e.attr('seen'));
nnm.append(html);
});
}
notif = eNotif.attr('count');
if (notif>0){
$("#nav-notifications-linkmenu").addClass("on");
} else {
// $("#nav-notifications-linkmenu").removeClass("on");
// $("#nav-notifications-menu").html(notifications_empty);
$("#nav-notifications-linkmenu").removeClass("on");
}
if(notif == 0) { notif = ''; $('#notify-update').removeClass('show') } else { $('#notify-update').addClass('show') }
$('#notify-update').html(notif);
@ -609,4 +610,4 @@ function previewTheme(elm) {
$('#theme-preview').html('<div id="theme-desc">' + data.desc + '</div><a href="' + data.img + '"><img src="' + data.img + '" width="320" height="240" alt="' + theme + '" /></a>');
});
}
}

View file

@ -451,7 +451,7 @@ function load_database_rem($v, $i){
function load_database($db) {
$str = file_get_contents('database.sql');
$str = array_reduce(explode("\n", $str),"load_database_rem","");
// $str = array_reduce(explode("\n", $str),"load_database_rem","");
$arr = explode(';',$str);
$errors = false;
foreach($arr as $a) {

View file

@ -15,10 +15,6 @@ function get_theme_config_file($theme){
}
function settings_init(&$a) {
if(local_user()) {
profile_load($a,$a->user['nickname']);
}
// These lines provide the javascript needed by the acl selector
$a->page['htmlhead'] .= "<script> var ispublic = '" . t('everybody') . "';" ;
@ -47,6 +43,47 @@ function settings_init(&$a) {
EOT;
$tabs = array(
array(
'label' => t('Account settings'),
'url' => $a->get_baseurl(true).'/settings',
'selected' => (($a->argc == 1)?'active':''),
),
array(
'label' => t('Display settings'),
'url' => $a->get_baseurl(true).'/settings/display',
'selected' => (($a->argc > 1) && ($a->argv[1] === 'display')?'active':''),
),
array(
'label' => t('Connector settings'),
'url' => $a->get_baseurl(true).'/settings/connectors',
'selected' => (($a->argc > 1) && ($a->argv[1] === 'connectors')?'active':''),
),
array(
'label' => t('Plugin settings'),
'url' => $a->get_baseurl(true).'/settings/addon',
'selected' => (($a->argc > 1) && ($a->argv[1] === 'addon')?'active':''),
),
array(
'label' => t('Connected apps'),
'url' => $a->get_baseurl(true) . '/settings/oauth',
'selected' => (($a->argc > 1) && ($a->argv[1] === 'oauth')?'active':''),
),
array(
'label' => t('Export personal data'),
'url' => $a->get_baseurl(true) . '/uexport',
'selected' => ''
)
);
$tabtpl = get_markup_template("generic_links_widget.tpl");
$a->page['aside'] = replace_macros($tabtpl, array(
'$title' => t('Settings'),
'$items' => $tabs,
));
}
@ -479,44 +516,7 @@ function settings_content(&$a) {
return;
}
$tabs = array(
array(
'label' => t('Account settings'),
'url' => $a->get_baseurl(true).'/settings',
'sel' => (($a->argc == 1)?'active':''),
),
array(
'label' => t('Display settings'),
'url' => $a->get_baseurl(true).'/settings/display',
'sel' => (($a->argc > 1) && ($a->argv[1] === 'display')?'active':''),
),
array(
'label' => t('Connector settings'),
'url' => $a->get_baseurl(true).'/settings/connectors',
'sel' => (($a->argc > 1) && ($a->argv[1] === 'connectors')?'active':''),
),
array(
'label' => t('Plugin settings'),
'url' => $a->get_baseurl(true).'/settings/addon',
'sel' => (($a->argc > 1) && ($a->argv[1] === 'addon')?'active':''),
),
array(
'label' => t('Connections'),
'url' => $a->get_baseurl(true) . '/settings/oauth',
'sel' => (($a->argc > 1) && ($a->argv[1] === 'oauth')?'active':''),
),
array(
'label' => t('Export personal data'),
'url' => $a->get_baseurl(true) . '/uexport',
'sel' => ''
)
);
$tabtpl = get_markup_template("common_tabs.tpl");
$tabs = replace_macros($tabtpl, array(
'$tabs' => $tabs,
));
if(($a->argc > 1) && ($a->argv[1] === 'oauth')) {
@ -524,7 +524,6 @@ function settings_content(&$a) {
$tpl = get_markup_template("settings_oauth_edit.tpl");
$o .= replace_macros($tpl, array(
'$form_security_token' => get_form_security_token("settings_oauth"),
'$tabs' => $tabs,
'$title' => t('Add application'),
'$submit' => t('Submit'),
'$cancel' => t('Cancel'),
@ -551,7 +550,6 @@ function settings_content(&$a) {
$tpl = get_markup_template("settings_oauth_edit.tpl");
$o .= replace_macros($tpl, array(
'$form_security_token' => get_form_security_token("settings_oauth"),
'$tabs' => $tabs,
'$title' => t('Add application'),
'$submit' => t('Update'),
'$cancel' => t('Cancel'),
@ -594,7 +592,6 @@ function settings_content(&$a) {
'$consumerkey' => t('Client key starts with'),
'$noname' => t('No name'),
'$remove' => t('Remove authorization'),
'$tabs' => $tabs,
'$apps' => $r,
));
return $o;
@ -614,7 +611,6 @@ function settings_content(&$a) {
$o .= replace_macros($tpl, array(
'$form_security_token' => get_form_security_token("settings_addon"),
'$title' => t('Plugin Settings'),
'$tabs' => $tabs,
'$settings_addons' => $settings_addons
));
return $o;
@ -658,7 +654,6 @@ function settings_content(&$a) {
'$form_security_token' => get_form_security_token("settings_connectors"),
'$title' => t('Connector Settings'),
'$tabs' => $tabs,
'$diasp_enabled' => $diasp_enabled,
'$ostat_enabled' => $ostat_enabled,
@ -735,7 +730,6 @@ function settings_content(&$a) {
$tpl = get_markup_template("settings_display.tpl");
$o = replace_macros($tpl, array(
'$tabs' => $tabs,
'$ptitle' => t('Display Settings'),
'$form_security_token' => get_form_security_token("settings_display"),
'$submit' => t('Submit'),
@ -920,7 +914,6 @@ function settings_content(&$a) {
);
$o .= replace_macros($stpl,array(
'$tabs' => $tabs,
'$ptitle' => t('Account Settings'),
'$submit' => t('Submit'),

View file

@ -1,6 +1,6 @@
<?php
define( 'UPDATE_VERSION' , 1137 );
define( 'UPDATE_VERSION' , 1138 );
/**
*
@ -1205,4 +1205,11 @@ function update_1136() {
q("ALTER TABLE `config` ADD UNIQUE `access` ( `cat` , `k` ) ");
q("ALTER TABLE `pconfig` ADD UNIQUE `access` ( `uid` , `cat` , `k` )");
}
}
function update_1137() {
q("alter table item_id DROP `face` , DROP `dspr` , DROP `twit` , DROP `stat` ");
q("ALTER TABLE `item_id` ADD `sid` CHAR( 255 ) NOT NULL AFTER `uid` , ADD `service` CHAR( 255 ) NOT NULL AFTER `sid` , add index (`sid`), add index ( `service`) ");
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,11 @@
<div class="widget">
{{if $title}}<h3>$title</h3>{{endif}}
{{if $desc}}<div class="desc">$desc</div>{{endif}}
<ul>
{{ for $items as $item }}
<li class="tool"><a href="$item.url" class="{{ if $item.selected }}selected{{ endif }}">$item.label</a></li>
{{ endfor }}
</ul>
</div>

View file

@ -1,5 +1,3 @@
$tabs
<h1>$ptitle</h1>
$nickname_block

View file

@ -1,5 +1,3 @@
$tabs
<h1>$title</h1>

View file

@ -1,5 +1,3 @@
$tabs
<h1>$title</h1>
<div class="connector_statusmsg">$diasp_enabled</div>

View file

@ -1,5 +1,3 @@
$tabs
<h1>$ptitle</h1>
<form action="settings/display" id="settings-form" method="post" autocomplete="off" >

View file

@ -1,5 +1,3 @@
$tabs
<h1>$title</h1>

View file

@ -1,5 +1,3 @@
$tabs
<h1>$title</h1>
<form method="POST">

View file

@ -15,10 +15,10 @@
<a class="icon bb-video" onclick="insertFormatting('video',$id);">video</a>
<a class="icon bb-image" onclick="insertFormatting('img',$id);">img</a>
<a class="icon bb-url" onclick="insertFormatting('url',$id);">url</a>
<a class="icon quote" onclick="insertFormatting('quote',$id);">quote</a>
<a class="icon italic" onclick="insertFormatting('i',$id);">i</a>
<a class="icon underline" onclick="insertFormatting('u',$id);">u</a>
<a class="icon italic" onclick="insertFormatting('i',$id);">i</a>
<a class="icon bold" onclick="insertFormatting('b',$id);">b</a>
<a class="icon quote" onclick="insertFormatting('quote',$id);">quote</a>
{{ if $qcomment }}
<select id="qcomment-select-$id" name="qcomment-$id" class="qcomment" onchange="qCommentInsert(this,$id);" >
<option value=""></option>

View file

@ -0,0 +1,11 @@
<div id="widget_$title">
{{if $title}}<h3 style="border-bottom: 1px solid #D2D2D2;">$title</h3>{{endif}}
{{if $desc}}<div class="desc">$desc</div>{{endif}}
<ul class="rs_tabs">
{{ for $items as $item }}
<li><a href="$item.url" class="rs_tab button {{ if $item.selected }}selected{{ endif }}">$item.label</a></li>
{{ endfor }}
</ul>
</div>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 680 B

After

Width:  |  Height:  |  Size: 774 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 663 B

After

Width:  |  Height:  |  Size: 723 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 722 B

After

Width:  |  Height:  |  Size: 706 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 664 B

After

Width:  |  Height:  |  Size: 637 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 739 B

After

Width:  |  Height:  |  Size: 764 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 710 B

After

Width:  |  Height:  |  Size: 664 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 781 B

After

Width:  |  Height:  |  Size: 688 B

View file

@ -0,0 +1,11 @@
<div id="nets-sidebar" class="widget">
<h3>$title</h3>
<div id="nets-desc">$desc</div>
<ul class="nets-ul">
<li><a style="text-decoration: none;" class="tool" href="$base" class="nets-link{{ if $sel_all }} nets-selected{{ endif }} nets-all">$all</a></li>
{{ for $nets as $net }}
<li class="tool"><a href="$base?nets=$net.ref" class="nets-link{{ if $net.selected }} nets-selected{{ endif }}">$net.name</a></li>
{{ endfor }}
</ul>
</div>

View file

@ -7,13 +7,13 @@
</div>
<ul id="profile-side-menu" class="menu-profile-side">
<li id="profile-side-status" class="menu-profile-list home"><a class="menu-profile-list-item" href="$ps.usermenu.status.0">$ps.usermenu.status.1</a></li>
<li id="profile-side-photos" class="menu-profile-list photos"><a class="menu-profile-list-item" href="$ps.usermenu.photos.0">$ps.usermenu.photos.1</a></li>
<li id="profile-side-photos" class="menu-profile-list pscontacts"><a class="menu-profile-list-item" href="$ps.usermenu.contacts.0">$ps.usermenu.contacts.1</a></li>
<li id="profile-side-events" class="menu-profile-list events"><a class="menu-profile-list-item" href="$ps.usermenu.events.0">$ps.usermenu.events.1</a></li>
<li id="profile-side-notes" class="menu-profile-list notes"><a class="menu-profile-list-item" href="$ps.usermenu.notes.0">$ps.usermenu.notes.1</a></li>
<li id="profile-side-foren" class="menu-profile-list foren"><a class="menu-profile-list-item" href="$ps.usermenu.pgroups.0" target="blanc">$ps.usermenu.pgroups.1</a></li>
<li id="profile-side-foren" class="menu-profile-list com_side"><a class="menu-profile-list-item" href="$ps.usermenu.community.0">$ps.usermenu.community.1</a></li>
<li id="profile-side-status" class="menu-profile-list"><a class="menu-profile-list-item" href="$ps.usermenu.status.0">$ps.usermenu.status.1<span class="menu-profile-icon home"></span></a></li>
<li id="profile-side-photos" class="menu-profile-list photos"><a class="menu-profile-list-item" href="$ps.usermenu.photos.0">$ps.usermenu.photos.1<span class="menu-profile-icon photos"></span></a></li>
<li id="profile-side-photos" class="menu-profile-list pscontacts"><a class="menu-profile-list-item" href="$ps.usermenu.contacts.0">$ps.usermenu.contacts.1<span class="menu-profile-icon pscontacts"></span></a></li>
<li id="profile-side-events" class="menu-profile-list events"><a class="menu-profile-list-item" href="$ps.usermenu.events.0">$ps.usermenu.events.1<span class="menu-profile-icon events"></span></a></li>
<li id="profile-side-notes" class="menu-profile-list notes"><a class="menu-profile-list-item" href="$ps.usermenu.notes.0">$ps.usermenu.notes.1<span class="menu-profile-icon notes"></span></a></li>
<li id="profile-side-foren" class="menu-profile-list foren"><a class="menu-profile-list-item" href="$ps.usermenu.pgroups.0" target="blanc">$ps.usermenu.pgroups.1<span class="menu-profile-icon foren"></span></a></li>
<li id="profile-side-foren" class="menu-profile-list com_side"><a class="menu-profile-list-item" href="$ps.usermenu.community.0">$ps.usermenu.community.1<span class="menu-profile-icon com_side"></span></a></li>
</ul>
</div>

View file

@ -1,6 +0,0 @@
<h3 style="border-bottom: 1px solid #D2D2D2;">Settings Menu</h3>
<ul class="rs_tabs">
{{ for $tabs as $tab }}
<li><a href="$tab.url" class="rs_tab button $tab.sel">$tab.label</a></li>
{{ endfor }}
</ul>

View file

@ -482,8 +482,9 @@ code {
}
#saved-search-ul .tool:hover,
#nets-sidebar .tool:hover,
#sidebar-group-list .tool:hover {
background: #EEE;
#sidebar-group-list .tool:hover ,
#fileas-sidebar .tool:hover {
background: aliceBlue;
}
.tool .label {
float: left;
@ -940,44 +941,58 @@ ul.menu-popup .empty {
}
.menu-profile-list{
height: auto;
overflow: auto;
padding-top: 3px;
padding-bottom: 3px;
padding-left: 16px;
overflow: auto;
min-height: 16px;
list-style: none;
}
.menu-profile-list:hover{
background: #EEE;
background: aliceBlue;
}
.menu-profile-list-item{
padding-left: 5px;
vertical-align: middle;
}
.menu-profile-list-item:hover{
text-decoration: none;
}
/*http://prothemedesign.com/circular-icons/*/
.menu-profile-list.home{
.menu-profile-icon.home{
background: url("../../../view/theme/diabook-aerith/icons/home.png") no-repeat;
float: left;
height: 22px;
width: 22px;
}
.menu-profile-list.photos{
.menu-profile-icon.photos{
background: url("../../../view/theme/diabook-aerith/icons/mess_side.png") no-repeat;
}
.menu-profile-list.events{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.events{
background: url("../../../view/theme/diabook-aerith/icons/events.png") no-repeat;
}
.menu-profile-list.notes{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.notes{
background: url("../../../view/theme/diabook-aerith/icons/notes.png") no-repeat;
}
.menu-profile-list.foren{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.foren{
background: url("../../../view/theme/diabook-aerith/icons/pubgroups.png") no-repeat;
}
.menu-profile-list.com_side{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.com_side{
background: url("../../../view/theme/diabook-aerith/icons/com_side.png") no-repeat;
}
.menu-profile-list.pscontacts{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.pscontacts{
background: url("../../../view/theme/diabook-aerith/icons/pscontacts.png") no-repeat;
}
float: left;
height: 22px;
width: 22px;}
/* aside */
aside {
display: table-cell;

File diff suppressed because it is too large Load diff

View file

@ -527,8 +527,9 @@ code {
}
#saved-search-ul .tool:hover,
#nets-sidebar .tool:hover,
#sidebar-group-list .tool:hover {
background: #EEE;
#sidebar-group-list .tool:hover,
#fileas-sidebar .tool:hover {
background: aliceBlue;
}
.tool .label {
float: left;
@ -1061,44 +1062,57 @@ ul.menu-popup .empty {
}
.menu-profile-list{
height: auto;
overflow: auto;
padding-top: 3px;
padding-bottom: 3px;
padding-left: 16px;
overflow: auto;
min-height: 16px;
list-style: none;
}
.menu-profile-list:hover{
background: #EEE;
background: aliceBlue;
}
.menu-profile-list-item{
padding-left: 5px;
vertical-align: middle;
}
.menu-profile-list-item:hover{
text-decoration: none;
}
/*http://prothemedesign.com/circular-icons/*/
.menu-profile-list.home{
.menu-profile-icon.home{
background: url("../../../view/theme/diabook-aerith/icons/home.png") no-repeat;
float: left;
height: 22px;
width: 22px;
}
.menu-profile-list.photos{
.menu-profile-icon.photos{
background: url("../../../view/theme/diabook-aerith/icons/mess_side.png") no-repeat;
}
.menu-profile-list.events{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.events{
background: url("../../../view/theme/diabook-aerith/icons/events.png") no-repeat;
}
.menu-profile-list.notes{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.notes{
background: url("../../../view/theme/diabook-aerith/icons/notes.png") no-repeat;
}
.menu-profile-list.foren{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.foren{
background: url("../../../view/theme/diabook-aerith/icons/pubgroups.png") no-repeat;
}
.menu-profile-list.com_side{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.com_side{
background: url("../../../view/theme/diabook-aerith/icons/com_side.png") no-repeat;
}
.menu-profile-list.pscontacts{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.pscontacts{
background: url("../../../view/theme/diabook-aerith/icons/pscontacts.png") no-repeat;
}
float: left;
height: 22px;
width: 22px;}
/* aside */
aside {
display: table-cell;
@ -2147,6 +2161,41 @@ ul.tabs li .active {
box-shadow: 2px 2px 2px #CFCFCF;
margin-left: 5px;
}
//settings tabs
ul.rs_tabs {
list-style-type: none;
font-size: 11px;
}
ul.rs_tabs li {
float: left;
margin-bottom: 30px;
clear: both;
}
ul.rs_tabs li .selected {
background-color: #3465A4;
border: 1px solid #777777;
color: white;
border-radius: 3px 3px 3px 3px;
box-shadow: 2px 2px 2px #CFCFCF;
font-size: 13px;
}
.rs_tabs {
list-style-type: none;
font-size: 11px;
background-position: 0 -20px;
background-repeat: repeat-x;
height: 27px;
padding: 0;
}
.rs_tab.button {
/*background: none repeat scroll 0 0 #F8F8F8;*/
border: 1px solid #CCCCCC;
border-radius: 3px 3px 3px 3px;
font-weight: bolder;
padding: 3px;
color: #333333;
text-decoration: none;
}
/**
* Form fields
*/

View file

@ -3,13 +3,13 @@
/*
* Name: Diabook-aerith
* Description: Diabook-aerith : report bugs and request here: http://pad.toktan.org/p/diabook or contact me : thomas_bierey@friendica.eu
* Version: (Version: 1.016)
* Version: (Version: 1.017)
* Author:
*/
//print diabook-version for debugging
$diabook_version = "Diabook-aerith (Version: 1.016)";
$diabook_version = "Diabook-aerith (Version: 1.017)";
$a->page['htmlhead'] .= sprintf('<script "%s" ></script>', $diabook_version);
@ -22,7 +22,6 @@ $cssFile = null;
*/
function diabook_aerith_community_info(){
$a = get_app();
//right_aside at networkpages
// last 12 users
$aside['$lastusers_title'] = t('Last users');
@ -280,55 +279,6 @@ if ($a->argv[0].$a->argv[1] === "profile".$a->user['nickname']){
}
}
//tabs at right_aside on settings page
if ($a->argv[0] === "settings"){
$tabs = array(
array(
'label' => t('Account settings'),
'url' => $a->get_baseurl(true).'/settings',
'sel' => (($a->argc == 1)?'active':''),
),
array(
'label' => t('Display settings'),
'url' => $a->get_baseurl(true).'/settings/display',
'sel' => (($a->argc > 1) && ($a->argv[1] === 'display')?'active':''),
),
array(
'label' => t('Edit/Manage Profiles'),
'url' => $a->get_baseurl(true).'/profiles',
),
array(
'label' => t('Connector settings'),
'url' => $a->get_baseurl(true).'/settings/connectors',
'sel' => (($a->argc > 1) && ($a->argv[1] === 'connectors')?'active':''),
),
array(
'label' => t('Plugin settings'),
'url' => $a->get_baseurl(true).'/settings/addon',
'sel' => (($a->argc > 1) && ($a->argv[1] === 'addon')?'active':''),
),
array(
'label' => t('Connections'),
'url' => $a->get_baseurl(true) . '/settings/oauth',
'sel' => (($a->argc > 1) && ($a->argv[1] === 'oauth')?'active':''),
),
array(
'label' => t('Export personal data'),
'url' => $a->get_baseurl(true) . '/uexport',
'sel' => ''
)
);
$tabtpl = file_get_contents(dirname(__file__).'/rs_common_tabs.tpl') ;
$a->page['aside'] = replace_macros($tabtpl, array(
'$tabs' => $tabs,
));
// CUSTOM CSS
$cssFile = $a->get_baseurl($ssl_state)."/view/theme/diabook-aerith/style-settings.css";
}
// custom css

View file

@ -15,10 +15,10 @@
<a class="icon bb-video" onclick="insertFormatting('video',$id);">video</a>
<a class="icon bb-image" onclick="insertFormatting('img',$id);">img</a>
<a class="icon bb-url" onclick="insertFormatting('url',$id);">url</a>
<a class="icon quote" onclick="insertFormatting('quote',$id);">quote</a>
<a class="icon italic" onclick="insertFormatting('i',$id);">i</a>
<a class="icon underline" onclick="insertFormatting('u',$id);">u</a>
<a class="icon italic" onclick="insertFormatting('i',$id);">i</a>
<a class="icon bold" onclick="insertFormatting('b',$id);">b</a>
<a class="icon quote" onclick="insertFormatting('quote',$id);">quote</a>
{{ if $qcomment }}
<select id="qcomment-select-$id" name="qcomment-$id" class="qcomment" onchange="qCommentInsert(this,$id);" >
<option value=""></option>

View file

@ -0,0 +1,11 @@
<div id="widget_$title">
{{if $title}}<h3 style="border-bottom: 1px solid #D2D2D2;">$title</h3>{{endif}}
{{if $desc}}<div class="desc">$desc</div>{{endif}}
<ul class="rs_tabs">
{{ for $items as $item }}
<li><a href="$item.url" class="rs_tab button {{ if $item.selected }}selected{{ endif }}">$item.label</a></li>
{{ endfor }}
</ul>
</div>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 680 B

After

Width:  |  Height:  |  Size: 774 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 663 B

After

Width:  |  Height:  |  Size: 723 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 722 B

After

Width:  |  Height:  |  Size: 706 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 664 B

After

Width:  |  Height:  |  Size: 637 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 739 B

After

Width:  |  Height:  |  Size: 764 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 710 B

After

Width:  |  Height:  |  Size: 664 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 781 B

After

Width:  |  Height:  |  Size: 688 B

View file

@ -0,0 +1,11 @@
<div id="nets-sidebar" class="widget">
<h3>$title</h3>
<div id="nets-desc">$desc</div>
<ul class="nets-ul">
<li><a style="text-decoration: none;" class="tool" href="$base" class="nets-link{{ if $sel_all }} nets-selected{{ endif }} nets-all">$all</a></li>
{{ for $nets as $net }}
<li class="tool"><a href="$base?nets=$net.ref" class="nets-link{{ if $net.selected }} nets-selected{{ endif }}">$net.name</a></li>
{{ endfor }}
</ul>
</div>

View file

@ -7,13 +7,13 @@
</div>
<ul id="profile-side-menu" class="menu-profile-side">
<li id="profile-side-status" class="menu-profile-list home"><a class="menu-profile-list-item" href="$ps.usermenu.status.0">$ps.usermenu.status.1</a></li>
<li id="profile-side-photos" class="menu-profile-list photos"><a class="menu-profile-list-item" href="$ps.usermenu.photos.0">$ps.usermenu.photos.1</a></li>
<li id="profile-side-photos" class="menu-profile-list pscontacts"><a class="menu-profile-list-item" href="$ps.usermenu.contacts.0">$ps.usermenu.contacts.1</a></li>
<li id="profile-side-events" class="menu-profile-list events"><a class="menu-profile-list-item" href="$ps.usermenu.events.0">$ps.usermenu.events.1</a></li>
<li id="profile-side-notes" class="menu-profile-list notes"><a class="menu-profile-list-item" href="$ps.usermenu.notes.0">$ps.usermenu.notes.1</a></li>
<li id="profile-side-foren" class="menu-profile-list foren"><a class="menu-profile-list-item" href="$ps.usermenu.pgroups.0" target="blanc">$ps.usermenu.pgroups.1</a></li>
<li id="profile-side-foren" class="menu-profile-list com_side"><a class="menu-profile-list-item" href="$ps.usermenu.community.0">$ps.usermenu.community.1</a></li>
<li id="profile-side-status" class="menu-profile-list"><a class="menu-profile-list-item" href="$ps.usermenu.status.0">$ps.usermenu.status.1<span class="menu-profile-icon home"></span></a></li>
<li id="profile-side-photos" class="menu-profile-list photos"><a class="menu-profile-list-item" href="$ps.usermenu.photos.0">$ps.usermenu.photos.1<span class="menu-profile-icon photos"></span></a></li>
<li id="profile-side-photos" class="menu-profile-list pscontacts"><a class="menu-profile-list-item" href="$ps.usermenu.contacts.0">$ps.usermenu.contacts.1<span class="menu-profile-icon pscontacts"></span></a></li>
<li id="profile-side-events" class="menu-profile-list events"><a class="menu-profile-list-item" href="$ps.usermenu.events.0">$ps.usermenu.events.1<span class="menu-profile-icon events"></span></a></li>
<li id="profile-side-notes" class="menu-profile-list notes"><a class="menu-profile-list-item" href="$ps.usermenu.notes.0">$ps.usermenu.notes.1<span class="menu-profile-icon notes"></span></a></li>
<li id="profile-side-foren" class="menu-profile-list foren"><a class="menu-profile-list-item" href="$ps.usermenu.pgroups.0" target="blanc">$ps.usermenu.pgroups.1<span class="menu-profile-icon foren"></span></a></li>
<li id="profile-side-foren" class="menu-profile-list com_side"><a class="menu-profile-list-item" href="$ps.usermenu.community.0">$ps.usermenu.community.1<span class="menu-profile-icon com_side"></span></a></li>
</ul>
</div>

View file

@ -1,6 +0,0 @@
<h3 style="border-bottom: 1px solid #D2D2D2;">Settings Menu</h3>
<ul class="rs_tabs">
{{ for $tabs as $tab }}
<li><a href="$tab.url" class="rs_tab button $tab.sel">$tab.label</a></li>
{{ endfor }}
</ul>

View file

@ -482,8 +482,9 @@ code {
}
#saved-search-ul .tool:hover,
#nets-sidebar .tool:hover,
#sidebar-group-list .tool:hover {
background: #EEE;
#sidebar-group-list .tool:hover,
#fileas-sidebar .tool:hover {
background: #308DBF;
}
.tool .label {
float: left;
@ -907,43 +908,57 @@ ul.menu-popup .empty {
.menu-profile-list{
height: auto;
overflow: auto;
padding-top: 3px;
padding-bottom: 3px;
padding-left: 16px;
min-height: 16px;
list-style: none;
}
.menu-profile-list:hover{
background: #EEE;
background: #308DBF;
}
.menu-profile-list-item{
padding-left: 5px;
vertical-align: middle;
}
.menu-profile-list-item:hover{
text-decoration: none;
}
/*http://prothemedesign.com/circular-icons/*/
.menu-profile-list.home{
.menu-profile-icon.home{
background: url("../../../view/theme/diabook-blue/icons/home.png") no-repeat;
float: left;
height: 22px;
width: 22px;
}
.menu-profile-list.photos{
.menu-profile-icon.photos{
background: url("../../../view/theme/diabook-blue/icons/mess_side.png") no-repeat;
}
.menu-profile-list.events{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.events{
background: url("../../../view/theme/diabook-blue/icons/events.png") no-repeat;
}
.menu-profile-list.notes{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.notes{
background: url("../../../view/theme/diabook-blue/icons/notes.png") no-repeat;
}
.menu-profile-list.foren{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.foren{
background: url("../../../view/theme/diabook-blue/icons/pubgroups.png") no-repeat;
}
.menu-profile-list.com_side{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.com_side{
background: url("../../../view/theme/diabook-blue/icons/com_side.png") no-repeat;
}
.menu-profile-list.pscontacts{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.pscontacts{
background: url("../../../view/theme/diabook-blue/icons/pscontacts.png") no-repeat;
}
float: left;
height: 22px;
width: 22px;}
/* aside */
aside {
display: table-cell;

File diff suppressed because it is too large Load diff

View file

@ -526,8 +526,9 @@ code {
}
#saved-search-ul .tool:hover,
#nets-sidebar .tool:hover,
#sidebar-group-list .tool:hover {
background: #EEE;
#sidebar-group-list .tool:hover,
#fileas-sidebar .tool:hover {
background: #308DBF;
}
.tool .label {
float: left;
@ -1031,43 +1032,57 @@ ul.menu-popup .empty {
.menu-profile-list{
height: auto;
overflow: auto;
padding-top: 3px;
padding-bottom: 3px;
padding-left: 16px;
min-height: 16px;
list-style: none;
}
.menu-profile-list:hover{
background: #EEE;
background: #308DBF;
}
.menu-profile-list-item{
padding-left: 5px;
vertical-align: middle;
}
.menu-profile-list-item:hover{
text-decoration: none;
}
/*http://prothemedesign.com/circular-icons/*/
.menu-profile-list.home{
.menu-profile-icon.home{
background: url("../../../view/theme/diabook-blue/icons/home.png") no-repeat;
float: left;
height: 22px;
width: 22px;
}
.menu-profile-list.photos{
.menu-profile-icon.photos{
background: url("../../../view/theme/diabook-blue/icons/mess_side.png") no-repeat;
}
.menu-profile-list.events{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.events{
background: url("../../../view/theme/diabook-blue/icons/events.png") no-repeat;
}
.menu-profile-list.notes{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.notes{
background: url("../../../view/theme/diabook-blue/icons/notes.png") no-repeat;
}
.menu-profile-list.foren{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.foren{
background: url("../../../view/theme/diabook-blue/icons/pubgroups.png") no-repeat;
}
.menu-profile-list.com_side{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.com_side{
background: url("../../../view/theme/diabook-blue/icons/com_side.png") no-repeat;
}
.menu-profile-list.pscontacts{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.pscontacts{
background: url("../../../view/theme/diabook-blue/icons/pscontacts.png") no-repeat;
}
float: left;
height: 22px;
width: 22px;}
/* aside */
aside {
display: table-cell;
@ -2103,6 +2118,41 @@ ul.tabs li .active {
box-shadow: 0 1px 1px #CFCFCF;
margin-left: 5px;
}
//settings tabs
ul.rs_tabs {
list-style-type: none;
font-size: 11px;
}
ul.rs_tabs li {
float: left;
margin-bottom: 30px;
clear: both;
}
ul.rs_tabs li .selected {
background-color: #055580;
border: 1px solid #777777;
color: white;
border-radius: 3px 3px 3px 3px;
box-shadow: 2px 2px 2px #CFCFCF;
font-size: 13px;
}
.rs_tabs {
list-style-type: none;
font-size: 11px;
background-position: 0 -20px;
background-repeat: repeat-x;
height: 27px;
padding: 0;
}
.rs_tab.button {
/*background: none repeat scroll 0 0 #F8F8F8;*/
border: 1px solid #CCCCCC;
border-radius: 3px 3px 3px 3px;
font-weight: bolder;
padding: 3px;
color: #333333;
text-decoration: none;
}
/**
* Form fields
*/

View file

@ -3,13 +3,13 @@
/*
* Name: Diabook-blue
* Description: Diabook-blue: report bugs and request here: http://pad.toktan.org/p/diabook or contact me : thomas_bierey@friendica.eu
* Version: (Version: 1.016)
* Version: (Version: 1.017)
* Author:
*/
//print diabook-version for debugging
$diabook_version = "Diabook-blue (Version: 1.016)";
$diabook_version = "Diabook-blue (Version: 1.017)";
$a->page['htmlhead'] .= sprintf('<script "%s" ></script>', $diabook_version);
//change css on network and profilepages
@ -21,7 +21,6 @@ $cssFile = null;
*/
function diabook_blue_community_info(){
$a = get_app();
//right_aside at networkpages
// last 12 users
$aside['$lastusers_title'] = t('Last users');
@ -279,56 +278,6 @@ if ($a->argv[0].$a->argv[1] === "profile".$a->user['nickname']){
}
}
//tabs at right_aside on settings page
if ($a->argv[0] === "settings"){
$tabs = array(
array(
'label' => t('Account settings'),
'url' => $a->get_baseurl(true).'/settings',
'sel' => (($a->argc == 1)?'active':''),
),
array(
'label' => t('Display settings'),
'url' => $a->get_baseurl(true).'/settings/display',
'sel' => (($a->argc > 1) && ($a->argv[1] === 'display')?'active':''),
),
array(
'label' => t('Edit/Manage Profiles'),
'url' => $a->get_baseurl(true).'/profiles',
),
array(
'label' => t('Connector settings'),
'url' => $a->get_baseurl(true).'/settings/connectors',
'sel' => (($a->argc > 1) && ($a->argv[1] === 'connectors')?'active':''),
),
array(
'label' => t('Plugin settings'),
'url' => $a->get_baseurl(true).'/settings/addon',
'sel' => (($a->argc > 1) && ($a->argv[1] === 'addon')?'active':''),
),
array(
'label' => t('Connections'),
'url' => $a->get_baseurl(true) . '/settings/oauth',
'sel' => (($a->argc > 1) && ($a->argv[1] === 'oauth')?'active':''),
),
array(
'label' => t('Export personal data'),
'url' => $a->get_baseurl(true) . '/uexport',
'sel' => ''
)
);
$tabtpl = file_get_contents(dirname(__file__).'/rs_common_tabs.tpl') ;
$a->page['aside'] = replace_macros($tabtpl, array(
'$tabs' => $tabs,
));
// CUSTOM CSS
$cssFile = $a->get_baseurl($ssl_state)."/view/theme/diabook-blue/style-settings.css";
}
// custom css
if (!is_null($cssFile)) $a->page['htmlhead'] .= sprintf('<link rel="stylesheet" type="text/css" href="%s" />', $cssFile);

View file

@ -13,12 +13,12 @@
<div class="comment-edit-photo-end"></div>
<textarea id="comment-edit-text-$id" class="comment-edit-text-empty" name="body" onFocus="commentOpen(this,$id);" onBlur="commentClose(this,$id);" >$comment</textarea>
<a class="icon bb-video" onclick="insertFormatting('video',$id);">video</a>
<a class="icon bb-image" onclick="insertFormatting('img',$id);">img</a>
<a class="icon bb-image" onclick="insertFormatting('img',$id);">img</a>
<a class="icon bb-url" onclick="insertFormatting('url',$id);">url</a>
<a class="icon quote" onclick="insertFormatting('quote',$id);">quote</a>
<a class="icon italic" onclick="insertFormatting('i',$id);">i</a>
<a class="icon underline" onclick="insertFormatting('u',$id);">u</a>
<a class="icon italic" onclick="insertFormatting('i',$id);">i</a>
<a class="icon bold" onclick="insertFormatting('b',$id);">b</a>
<a class="icon quote" onclick="insertFormatting('quote',$id);">quote</a>
{{ if $qcomment }}
<select id="qcomment-select-$id" name="qcomment-$id" class="qcomment" onchange="qCommentInsert(this,$id);" >
<option value=""></option>

View file

@ -0,0 +1,11 @@
<div id="widget_$title">
{{if $title}}<h3 style="border-bottom: 1px solid #D2D2D2;">$title</h3>{{endif}}
{{if $desc}}<div class="desc">$desc</div>{{endif}}
<ul class="rs_tabs">
{{ for $items as $item }}
<li><a href="$item.url" class="rs_tab button {{ if $item.selected }}selected{{ endif }}">$item.label</a></li>
{{ endfor }}
</ul>
</div>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 680 B

After

Width:  |  Height:  |  Size: 774 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 663 B

After

Width:  |  Height:  |  Size: 723 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 722 B

After

Width:  |  Height:  |  Size: 706 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 664 B

After

Width:  |  Height:  |  Size: 637 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 739 B

After

Width:  |  Height:  |  Size: 764 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 710 B

After

Width:  |  Height:  |  Size: 664 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 781 B

After

Width:  |  Height:  |  Size: 688 B

View file

@ -0,0 +1,11 @@
<div id="nets-sidebar" class="widget">
<h3>$title</h3>
<div id="nets-desc">$desc</div>
<ul class="nets-ul">
<li><a style="text-decoration: none;" class="tool" href="$base" class="nets-link{{ if $sel_all }} nets-selected{{ endif }} nets-all">$all</a></li>
{{ for $nets as $net }}
<li class="tool"><a href="$base?nets=$net.ref" class="nets-link{{ if $net.selected }} nets-selected{{ endif }}">$net.name</a></li>
{{ endfor }}
</ul>
</div>

View file

@ -7,13 +7,13 @@
</div>
<ul id="profile-side-menu" class="menu-profile-side">
<li id="profile-side-status" class="menu-profile-list home"><a class="menu-profile-list-item" href="$ps.usermenu.status.0">$ps.usermenu.status.1</a></li>
<li id="profile-side-photos" class="menu-profile-list photos"><a class="menu-profile-list-item" href="$ps.usermenu.photos.0">$ps.usermenu.photos.1</a></li>
<li id="profile-side-photos" class="menu-profile-list pscontacts"><a class="menu-profile-list-item" href="$ps.usermenu.contacts.0">$ps.usermenu.contacts.1</a></li>
<li id="profile-side-events" class="menu-profile-list events"><a class="menu-profile-list-item" href="$ps.usermenu.events.0">$ps.usermenu.events.1</a></li>
<li id="profile-side-notes" class="menu-profile-list notes"><a class="menu-profile-list-item" href="$ps.usermenu.notes.0">$ps.usermenu.notes.1</a></li>
<li id="profile-side-foren" class="menu-profile-list foren"><a class="menu-profile-list-item" href="$ps.usermenu.pgroups.0" target="blanc">$ps.usermenu.pgroups.1</a></li>
<li id="profile-side-foren" class="menu-profile-list com_side"><a class="menu-profile-list-item" href="$ps.usermenu.community.0">$ps.usermenu.community.1</a></li>
<li id="profile-side-status" class="menu-profile-list"><a class="menu-profile-list-item" href="$ps.usermenu.status.0">$ps.usermenu.status.1<span class="menu-profile-icon home"></span></a></li>
<li id="profile-side-photos" class="menu-profile-list photos"><a class="menu-profile-list-item" href="$ps.usermenu.photos.0">$ps.usermenu.photos.1<span class="menu-profile-icon photos"></span></a></li>
<li id="profile-side-photos" class="menu-profile-list pscontacts"><a class="menu-profile-list-item" href="$ps.usermenu.contacts.0">$ps.usermenu.contacts.1<span class="menu-profile-icon pscontacts"></span></a></li>
<li id="profile-side-events" class="menu-profile-list events"><a class="menu-profile-list-item" href="$ps.usermenu.events.0">$ps.usermenu.events.1<span class="menu-profile-icon events"></span></a></li>
<li id="profile-side-notes" class="menu-profile-list notes"><a class="menu-profile-list-item" href="$ps.usermenu.notes.0">$ps.usermenu.notes.1<span class="menu-profile-icon notes"></span></a></li>
<li id="profile-side-foren" class="menu-profile-list foren"><a class="menu-profile-list-item" href="$ps.usermenu.pgroups.0" target="blanc">$ps.usermenu.pgroups.1<span class="menu-profile-icon foren"></span></a></li>
<li id="profile-side-foren" class="menu-profile-list com_side"><a class="menu-profile-list-item" href="$ps.usermenu.community.0">$ps.usermenu.community.1<span class="menu-profile-icon com_side"></span></a></li>
</ul>
</div>

View file

@ -1,6 +0,0 @@
<h3 style="border-bottom: 1px solid #D2D2D2;">Settings Menu</h3>
<ul class="rs_tabs">
{{ for $tabs as $tab }}
<li><a href="$tab.url" class="rs_tab button $tab.sel">$tab.label</a></li>
{{ endfor }}
</ul>

View file

@ -482,8 +482,9 @@ code {
}
#saved-search-ul .tool:hover,
#nets-sidebar .tool:hover,
#sidebar-group-list .tool:hover {
background: #EEE;
#sidebar-group-list .tool:hover,
#fileas-sidebar .tool:hover {
background: #FFE499;
}
.tool .label {
float: left;
@ -941,44 +942,57 @@ ul.menu-popup .empty {
}
.menu-profile-list{
height: auto;
overflow: auto;
padding-top: 3px;
padding-bottom: 3px;
padding-left: 16px;
overflow: auto;
min-height: 16px;
list-style: none;
}
.menu-profile-list:hover{
background: #EEE;
background: #FFE499;
}
.menu-profile-list-item{
padding-left: 5px;
vertical-align: middle;
}
.menu-profile-list-item:hover{
text-decoration: none;
}
/*http://prothemedesign.com/circular-icons/*/
.menu-profile-list.home{
.menu-profile-icon.home{
background: url("../../../view/theme/diabook-red/icons/home.png") no-repeat;
float: left;
height: 22px;
width: 22px;
}
.menu-profile-list.photos{
.menu-profile-icon.photos{
background: url("../../../view/theme/diabook-red/icons/mess_side.png") no-repeat;
}
.menu-profile-list.events{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.events{
background: url("../../../view/theme/diabook-red/icons/events.png") no-repeat;
}
.menu-profile-list.notes{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.notes{
background: url("../../../view/theme/diabook-red/icons/notes.png") no-repeat;
}
.menu-profile-list.foren{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.foren{
background: url("../../../view/theme/diabook-red/icons/pubgroups.png") no-repeat;
}
.menu-profile-list.com_side{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.com_side{
background: url("../../../view/theme/diabook-red/icons/com_side.png") no-repeat;
}
.menu-profile-list.pscontacts{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.pscontacts{
background: url("../../../view/theme/diabook-red/icons/pscontacts.png") no-repeat;
}
float: left;
height: 22px;
width: 22px;}
/* aside */
aside {
display: table-cell;

File diff suppressed because it is too large Load diff

View file

@ -526,8 +526,9 @@ code {
}
#saved-search-ul .tool:hover,
#nets-sidebar .tool:hover,
#sidebar-group-list .tool:hover {
background: #EEE;
#sidebar-group-list .tool:hover,
#fileas-sidebar .tool:hover {
background: #FFE499;
}
.tool .label {
float: left;
@ -1060,44 +1061,57 @@ ul.menu-popup .empty {
}
.menu-profile-list{
height: auto;
overflow: auto;
padding-top: 3px;
padding-bottom: 3px;
padding-left: 16px;
overflow: auto;
min-height: 16px;
list-style: none;
}
.menu-profile-list:hover{
background: #EEE;
background: #FFE499;
}
.menu-profile-list-item{
padding-left: 5px;
vertical-align: middle;
}
.menu-profile-list-item:hover{
text-decoration: none;
}
/*http://prothemedesign.com/circular-icons/*/
.menu-profile-list.home{
.menu-profile-icon.home{
background: url("../../../view/theme/diabook-red/icons/home.png") no-repeat;
float: left;
height: 22px;
width: 22px;
}
.menu-profile-list.photos{
.menu-profile-icon.photos{
background: url("../../../view/theme/diabook-red/icons/mess_side.png") no-repeat;
}
.menu-profile-list.events{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.events{
background: url("../../../view/theme/diabook-red/icons/events.png") no-repeat;
}
.menu-profile-list.notes{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.notes{
background: url("../../../view/theme/diabook-red/icons/notes.png") no-repeat;
}
.menu-profile-list.foren{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.foren{
background: url("../../../view/theme/diabook-red/icons/pubgroups.png") no-repeat;
}
.menu-profile-list.com_side{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.com_side{
background: url("../../../view/theme/diabook-red/icons/com_side.png") no-repeat;
}
.menu-profile-list.pscontacts{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.pscontacts{
background: url("../../../view/theme/diabook-red/icons/pscontacts.png") no-repeat;
}
float: left;
height: 22px;
width: 22px;}
/* aside */
aside {
display: table-cell;
@ -2132,6 +2146,41 @@ ul.tabs li .active {
box-shadow: 2px 2px 2px #CFCFCF;
margin-left: 5px;
}
//settings tabs
ul.rs_tabs {
list-style-type: none;
font-size: 11px;
}
ul.rs_tabs li {
float: left;
margin-bottom: 30px;
clear: both;
}
ul.rs_tabs li .selected {
background-color: #535353;
border: 1px solid #777777;
color: white;
border-radius: 3px 3px 3px 3px;
box-shadow: 2px 2px 2px #CFCFCF;
font-size: 13px;
}
.rs_tabs {
list-style-type: none;
font-size: 11px;
background-position: 0 -20px;
background-repeat: repeat-x;
height: 27px;
padding: 0;
}
.rs_tab.button {
/*background: none repeat scroll 0 0 #F8F8F8;*/
border: 1px solid #CCCCCC;
border-radius: 3px 3px 3px 3px;
font-weight: bolder;
padding: 3px;
color: #333333;
text-decoration: none;
}
/**
* Form fields
*/

View file

@ -3,13 +3,13 @@
/*
* Name: Diabook-red
* Description: Diabook-red: report bugs and request here: http://pad.toktan.org/p/diabook or contact me : thomas_bierey@friendica.eu
* Version: (Version: 1.016)
* Version: (Version: 1.017)
* Author:
*/
//print diabook-version for debugging
$diabook_version = "Diabook-red (Version: 1.016)";
$diabook_version = "Diabook-red (Version: 1.017)";
$a->page['htmlhead'] .= sprintf('<script "%s" ></script>', $diabook_version);
//change css on network and profilepages
@ -21,7 +21,6 @@ $cssFile = null;
*/
function diabook_red_community_info(){
$a = get_app();
//right_aside at networkpages
// last 12 users
$aside['$lastusers_title'] = t('Last users');
@ -279,58 +278,6 @@ if ($a->argv[0].$a->argv[1] === "profile".$a->user['nickname']){
}
}
//tabs at right_aside on settings page
if ($a->argv[0] === "settings"){
$tabs = array(
array(
'label' => t('Account settings'),
'url' => $a->get_baseurl(true).'/settings',
'sel' => (($a->argc == 1)?'active':''),
),
array(
'label' => t('Display settings'),
'url' => $a->get_baseurl(true).'/settings/display',
'sel' => (($a->argc > 1) && ($a->argv[1] === 'display')?'active':''),
),
array(
'label' => t('Edit/Manage Profiles'),
'url' => $a->get_baseurl(true).'/profiles',
),
array(
'label' => t('Connector settings'),
'url' => $a->get_baseurl(true).'/settings/connectors',
'sel' => (($a->argc > 1) && ($a->argv[1] === 'connectors')?'active':''),
),
array(
'label' => t('Plugin settings'),
'url' => $a->get_baseurl(true).'/settings/addon',
'sel' => (($a->argc > 1) && ($a->argv[1] === 'addon')?'active':''),
),
array(
'label' => t('Connections'),
'url' => $a->get_baseurl(true) . '/settings/oauth',
'sel' => (($a->argc > 1) && ($a->argv[1] === 'oauth')?'active':''),
),
array(
'label' => t('Export personal data'),
'url' => $a->get_baseurl(true) . '/uexport',
'sel' => ''
)
);
$tabtpl = file_get_contents(dirname(__file__).'/rs_common_tabs.tpl') ;
$a->page['aside'] = replace_macros($tabtpl, array(
'$tabs' => $tabs,
));
// CUSTOM CSS
$cssFile = $a->get_baseurl($ssl_state)."/view/theme/diabook-red/style-settings.css";
}
// custom css
if (!is_null($cssFile)) $a->page['htmlhead'] .= sprintf('<link rel="stylesheet" type="text/css" href="%s" />', $cssFile);

View file

@ -12,13 +12,13 @@
</div>
<div class="comment-edit-photo-end"></div>
<textarea id="comment-edit-text-$id" class="comment-edit-text-empty" name="body" onFocus="commentOpen(this,$id);" onBlur="commentClose(this,$id);" >$comment</textarea>
<a class="icon bb-video" onclick="insertFormatting('video',$id);">video</a>
<a class="icon bb-image" onclick="insertFormatting('img',$id);">img</a>
<a class="icon bb-url" onclick="insertFormatting('url',$id);">url</a>
<a class="icon quote" onclick="insertFormatting('quote',$id);">quote</a>
<a class="icon italic" onclick="insertFormatting('i',$id);">i</a>
<a class="icon bb-url" onclick="insertFormatting('url',$id);">url</a>
<a class="icon bb-video" onclick="insertFormatting('video',$id);">video</a>
<a class="icon underline" onclick="insertFormatting('u',$id);">u</a>
<a class="icon italic" onclick="insertFormatting('i',$id);">i</a>
<a class="icon bold" onclick="insertFormatting('b',$id);">b</a>
<a class="icon quote" onclick="insertFormatting('quote',$id);">quote</a>
{{ if $qcomment }}
<select id="qcomment-select-$id" name="qcomment-$id" class="qcomment" onchange="qCommentInsert(this,$id);" >
<option value=""></option>

View file

@ -0,0 +1,11 @@
<div id="widget_$title">
{{if $title}}<h3 style="border-bottom: 1px solid #D2D2D2;">$title</h3>{{endif}}
{{if $desc}}<div class="desc">$desc</div>{{endif}}
<ul class="rs_tabs">
{{ for $items as $item }}
<li><a href="$item.url" class="rs_tab button {{ if $item.selected }}selected{{ endif }}">$item.label</a></li>
{{ endfor }}
</ul>
</div>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 680 B

After

Width:  |  Height:  |  Size: 774 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 663 B

After

Width:  |  Height:  |  Size: 723 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 722 B

After

Width:  |  Height:  |  Size: 706 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 664 B

After

Width:  |  Height:  |  Size: 637 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 739 B

After

Width:  |  Height:  |  Size: 764 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 710 B

After

Width:  |  Height:  |  Size: 664 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 781 B

After

Width:  |  Height:  |  Size: 688 B

View file

@ -0,0 +1,11 @@
<div id="nets-sidebar" class="widget">
<h3>$title</h3>
<div id="nets-desc">$desc</div>
<ul class="nets-ul">
<li><a style="text-decoration: none;" class="tool" href="$base" class="nets-link{{ if $sel_all }} nets-selected{{ endif }} nets-all">$all</a></li>
{{ for $nets as $net }}
<li class="tool"><a href="$base?nets=$net.ref" class="nets-link{{ if $net.selected }} nets-selected{{ endif }}">$net.name</a></li>
{{ endfor }}
</ul>
</div>

View file

@ -7,13 +7,13 @@
</div>
<ul id="profile-side-menu" class="menu-profile-side">
<li id="profile-side-status" class="menu-profile-list home"><a class="menu-profile-list-item" href="$ps.usermenu.status.0">$ps.usermenu.status.1</a></li>
<li id="profile-side-photos" class="menu-profile-list photos"><a class="menu-profile-list-item" href="$ps.usermenu.photos.0">$ps.usermenu.photos.1</a></li>
<li id="profile-side-photos" class="menu-profile-list pscontacts"><a class="menu-profile-list-item" href="$ps.usermenu.contacts.0">$ps.usermenu.contacts.1</a></li>
<li id="profile-side-events" class="menu-profile-list events"><a class="menu-profile-list-item" href="$ps.usermenu.events.0">$ps.usermenu.events.1</a></li>
<li id="profile-side-notes" class="menu-profile-list notes"><a class="menu-profile-list-item" href="$ps.usermenu.notes.0">$ps.usermenu.notes.1</a></li>
<li id="profile-side-foren" class="menu-profile-list foren"><a class="menu-profile-list-item" href="$ps.usermenu.pgroups.0" target="blanc">$ps.usermenu.pgroups.1</a></li>
<li id="profile-side-foren" class="menu-profile-list com_side"><a class="menu-profile-list-item" href="$ps.usermenu.community.0">$ps.usermenu.community.1</a></li>
<li id="profile-side-status" class="menu-profile-list"><a class="menu-profile-list-item" href="$ps.usermenu.status.0">$ps.usermenu.status.1<span class="menu-profile-icon home"></span></a></li>
<li id="profile-side-photos" class="menu-profile-list photos"><a class="menu-profile-list-item" href="$ps.usermenu.photos.0">$ps.usermenu.photos.1<span class="menu-profile-icon photos"></span></a></li>
<li id="profile-side-photos" class="menu-profile-list pscontacts"><a class="menu-profile-list-item" href="$ps.usermenu.contacts.0">$ps.usermenu.contacts.1<span class="menu-profile-icon pscontacts"></span></a></li>
<li id="profile-side-events" class="menu-profile-list events"><a class="menu-profile-list-item" href="$ps.usermenu.events.0">$ps.usermenu.events.1<span class="menu-profile-icon events"></span></a></li>
<li id="profile-side-notes" class="menu-profile-list notes"><a class="menu-profile-list-item" href="$ps.usermenu.notes.0">$ps.usermenu.notes.1<span class="menu-profile-icon notes"></span></a></li>
<li id="profile-side-foren" class="menu-profile-list foren"><a class="menu-profile-list-item" href="$ps.usermenu.pgroups.0" target="blanc">$ps.usermenu.pgroups.1<span class="menu-profile-icon foren"></span></a></li>
<li id="profile-side-foren" class="menu-profile-list com_side"><a class="menu-profile-list-item" href="$ps.usermenu.community.0">$ps.usermenu.community.1<span class="menu-profile-icon com_side"></span></a></li>
</ul>
</div>

View file

@ -1,6 +0,0 @@
<h3 style="border-bottom: 1px solid #D2D2D2;">Settings Menu</h3>
<ul class="rs_tabs">
{{ for $tabs as $tab }}
<li><a href="$tab.url" class="rs_tab button $tab.sel">$tab.label</a></li>
{{ endfor }}
</ul>

View file

@ -484,8 +484,9 @@ code {
}
#saved-search-ul .tool:hover,
#nets-sidebar .tool:hover,
#sidebar-group-list .tool:hover {
background: #EEE;
#sidebar-group-list .tool:hover,
#fileas-sidebar .tool:hover {
background: #E7F2F7;
}
.tool .label {
float: left;
@ -898,44 +899,57 @@ ul.menu-popup .empty {
}
.menu-profile-list{
height: auto;
overflow: auto;
padding-top: 3px;
padding-bottom: 3px;
padding-left: 16px;
overflow: auto;
min-height: 16px;
list-style: none;
}
.menu-profile-list:hover{
background: #EEE;
background: #E7F2F7;
}
.menu-profile-list-item{
padding-left: 5px;
vertical-align: middle;
}
.menu-profile-list-item:hover{
text-decoration: none;
}
/*http://prothemedesign.com/circular-icons/*/
.menu-profile-list.home{
.menu-profile-icon.home{
background: url("../../../view/theme/diabook/icons/home.png") no-repeat;
float: left;
height: 22px;
width: 22px;
}
.menu-profile-list.photos{
.menu-profile-icon.photos{
background: url("../../../view/theme/diabook/icons/mess_side.png") no-repeat;
}
.menu-profile-list.events{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.events{
background: url("../../../view/theme/diabook/icons/events.png") no-repeat;
}
.menu-profile-list.notes{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.notes{
background: url("../../../view/theme/diabook/icons/notes.png") no-repeat;
}
.menu-profile-list.foren{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.foren{
background: url("../../../view/theme/diabook/icons/pubgroups.png") no-repeat;
}
.menu-profile-list.com_side{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.com_side{
background: url("../../../view/theme/diabook/icons/com_side.png") no-repeat;
}
.menu-profile-list.pscontacts{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.pscontacts{
background: url("../../../view/theme/diabook/icons/pscontacts.png") no-repeat;
}
float: left;
height: 22px;
width: 22px;}
/* aside */
aside {

View file

@ -483,8 +483,9 @@ code {
}
#saved-search-ul .tool:hover,
#nets-sidebar .tool:hover,
#sidebar-group-list .tool:hover {
background: #EEE;
#sidebar-group-list .tool:hover,
#fileas-sidebar .tool:hover{
background: #E7F2F7;
}
.tool .label {
float: left;
@ -897,8 +898,6 @@ ul.menu-popup .empty {
.menu-profile-list{
height: auto;
overflow: auto;
padding-top: 3px;
padding-bottom: 3px;
padding-left: 16px;
min-height: 16px;
list-style: none;
@ -908,28 +907,29 @@ ul.menu-popup .empty {
}
.menu-profile-list-item{
padding-left: 5px;
vertical-align: middle;
}
.menu-profile-list-item:hover{
text-decoration: none;
}
/*http://prothemedesign.com/circular-icons/*/
.menu-profile-list.home{
background: url("../../../view/theme/diabook-blue/icons/home.png") no-repeat;
.menu-profile-icon.home{
background: url("../../../view/theme/diabook/icons/home.png") no-repeat;
}
.menu-profile-list.photos{
background: url("../../../view/theme/diabook-blue/icons/mess_side.png") no-repeat;
.menu-profile-icon.photos{
background: url("../../../view/theme/diabook/icons/mess_side.png") no-repeat;
}
.menu-profile-list.events{
background: url("../../../view/theme/diabook-blue/icons/events.png") no-repeat;
.menu-profile-icon.events{
background: url("../../../view/theme/diabook/icons/events.png") no-repeat;
}
.menu-profile-list.notes{
background: url("../../../view/theme/diabook-blue/icons/notes.png") no-repeat;
.menu-profile-icon.notes{
background: url("../../../view/theme/diabook/icons/notes.png") no-repeat;
}
.menu-profile-list.foren{
background: url("../../../view/theme/diabook-blue/icons/pubgroups.png") no-repeat;
.menu-profile-icon.foren{
background: url("../../../view/theme/diabook/icons/pubgroups.png") no-repeat;
}
.menu-profile-list.com_side{
background: url("../../../view/theme/diabook-blue/icons/com_side.png") no-repeat;
.menu-profile-icon.com_side{
background: url("../../../view/theme/diabook/icons/com_side.png") no-repeat;
}
/* aside */

File diff suppressed because it is too large Load diff

View file

@ -529,8 +529,9 @@ code {
}
#saved-search-ul .tool:hover,
#nets-sidebar .tool:hover,
#sidebar-group-list .tool:hover {
background: #EEE;
#sidebar-group-list .tool:hover,
#fileas-sidebar .tool:hover {
background: #E7F2F7;
}
.tool .label {
float: left;
@ -1023,43 +1024,56 @@ ul.menu-popup .empty {
.menu-profile-list{
height: auto;
overflow: auto;
padding-top: 3px;
padding-bottom: 3px;
padding-left: 16px;
min-height: 16px;
list-style: none;
}
.menu-profile-list:hover{
background: #EEE;
background: #E7F2F7;
}
.menu-profile-list-item{
padding-left: 5px;
vertical-align: middle;
}
.menu-profile-list-item:hover{
text-decoration: none;
}
/*http://prothemedesign.com/circular-icons/*/
.menu-profile-list.home{
background: url("../../../view/theme/diabook-blue/icons/home.png") no-repeat;
.menu-profile-icon.home{
background: url("../../../view/theme/diabook/icons/home.png") no-repeat;
float: left;
height: 22px;
width: 22px;
}
.menu-profile-list.photos{
background: url("../../../view/theme/diabook-blue/icons/mess_side.png") no-repeat;
}
.menu-profile-list.events{
background: url("../../../view/theme/diabook-blue/icons/events.png") no-repeat;
}
.menu-profile-list.notes{
background: url("../../../view/theme/diabook-blue/icons/notes.png") no-repeat;
}
.menu-profile-list.foren{
background: url("../../../view/theme/diabook-blue/icons/pubgroups.png") no-repeat;
}
.menu-profile-list.com_side{
background: url("../../../view/theme/diabook-blue/icons/com_side.png") no-repeat;
}
.menu-profile-list.pscontacts{
.menu-profile-icon.photos{
background: url("../../../view/theme/diabook/icons/mess_side.png") no-repeat;
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.events{
background: url("../../../view/theme/diabook/icons/events.png") no-repeat;
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.notes{
background: url("../../../view/theme/diabook/icons/notes.png") no-repeat;
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.foren{
background: url("../../../view/theme/diabook/icons/pubgroups.png") no-repeat;
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.com_side{
background: url("../../../view/theme/diabook/icons/com_side.png") no-repeat;
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.pscontacts{
background: url("../../../view/theme/diabook/icons/pscontacts.png") no-repeat;
}
float: left;
height: 22px;
width: 22px;}
/* aside */
aside {
@ -1287,6 +1301,7 @@ body .pageheader{
padding: 3px;
color: #333333;
}
#birthday-notice, #event-notice, #birthday-wrapper, #event-wrapper{
margin-bottom: 10px;
@ -2072,6 +2087,41 @@ ul.tabs li .active {
box-shadow: 0 1px 1px #CFCFCF;
margin-left: 5px;
}
//settings tabs
ul.rs_tabs {
list-style-type: none;
font-size: 11px;
}
ul.rs_tabs li {
float: left;
margin-bottom: 30px;
clear: both;
}
ul.rs_tabs li .selected {
background-color: #333;
border: 1px solid #777777;
color: white;
border-radius: 3px 3px 3px 3px;
box-shadow: 2px 2px 2px #CFCFCF;
font-size: 13px;
}
.rs_tabs {
list-style-type: none;
font-size: 11px;
background-position: 0 -20px;
background-repeat: repeat-x;
height: 27px;
padding: 0;
}
.rs_tab.button {
/*background: none repeat scroll 0 0 #F8F8F8;*/
border: 1px solid #CCCCCC;
border-radius: 3px 3px 3px 3px;
font-weight: bolder;
padding: 3px;
color: #333333;
text-decoration: none;
}
/**
* Form fields
*/

View file

@ -3,13 +3,13 @@
/*
* Name: Diabook
* Description: Diabook: report bugs and request here: http://pad.toktan.org/p/diabook or contact me : thomas_bierey@friendica.eu
* Version: (Version: 1.016)
* Version: (Version: 1.017)
* Author:
*/
//print diabook-version for debugging
$diabook_version = "Diabook (Version: 1.016)";
$diabook_version = "Diabook (Version: 1.017)";
$a->page['htmlhead'] .= sprintf('<script "%s" ></script>', $diabook_version);
//change css on network and profilepages
@ -24,7 +24,7 @@ $cssFile = null;
function diabook_community_info(){
$a = get_app();
//right_aside at networkpages
// last 12 users
$aside['$lastusers_title'] = t('Last users');
@ -288,58 +288,6 @@ if ($a->argv[0].$a->argv[1] === "profile".$a->user['nickname']){
}
}
//tabs at aside on settings page
if ($a->argv[0] === "settings"){
$tabs = array(
array(
'label' => t('Account settings'),
'url' => $a->get_baseurl(true).'/settings',
'sel' => (($a->argc == 1)?'active':''),
),
array(
'label' => t('Display settings'),
'url' => $a->get_baseurl(true).'/settings/display',
'sel' => (($a->argc > 1) && ($a->argv[1] === 'display')?'active':''),
),
array(
'label' => t('Edit/Manage Profiles'),
'url' => $a->get_baseurl(true).'/profiles',
),
array(
'label' => t('Connector settings'),
'url' => $a->get_baseurl(true).'/settings/connectors',
'sel' => (($a->argc > 1) && ($a->argv[1] === 'connectors')?'active':''),
),
array(
'label' => t('Plugin settings'),
'url' => $a->get_baseurl(true).'/settings/addon',
'sel' => (($a->argc > 1) && ($a->argv[1] === 'addon')?'active':''),
),
array(
'label' => t('Connections'),
'url' => $a->get_baseurl(true) . '/settings/oauth',
'sel' => (($a->argc > 1) && ($a->argv[1] === 'oauth')?'active':''),
),
array(
'label' => t('Export personal data'),
'url' => $a->get_baseurl(true) . '/uexport',
'sel' => ''
)
);
$tabtpl = file_get_contents(dirname(__file__).'/rs_common_tabs.tpl') ;
$a->page['aside'] = replace_macros($tabtpl, array(
'$tabs' => $tabs,
));
// CUSTOM CSS
$cssFile = $a->get_baseurl($ssl_state)."/view/theme/diabook/style-settings.css";
}
// custom css
if (!is_null($cssFile)) $a->page['htmlhead'] .= sprintf('<link rel="stylesheet" type="text/css" href="%s" />', $cssFile);

View file

@ -1945,8 +1945,8 @@ div[id$="wrapper"] br {
margin: 0 0 -18px;
position: absolute;
text-decoration: none;
top: 18px;
right: 226px;
top: 113px;
right: 250px;
}
#profile-edit-links ul {
margin: 20px 0;
@ -2611,7 +2611,7 @@ div[id$="wrapper"] br {
.icon.drop,
.icon.drophide, .icon.delete {
float: left;
/*margin: 5px;*/
margin: 0 2px;
}
.icon.s22.delete {
display: block;

View file

@ -1946,8 +1946,8 @@ div[id$="wrapper"] br {
margin: 0 0 -18px;
position: absolute;
text-decoration: none;
top: 18px;
right: 226px;
top: 113px;
right: 250px;
}
#profile-edit-links ul {
margin: 20px 0;
@ -2612,7 +2612,7 @@ div[id$="wrapper"] br {
.icon.drop,
.icon.drophide, .icon.delete {
float: left;
/*margin: 5px;*/
margin: 0 2px;
}
.icon.s22.delete {
display: block;

View file

@ -48,6 +48,9 @@
.icon.s10.unlock {
background-image: url("../../../images/icons/10/unlock.png");
}
.icon.s10.plugin {
background-image: url("../../../images/icons/10/plugin.png");
}
.icon.s10.type-unkn {
background-image: url("../../../images/icons/10/zip.png");
}
@ -100,6 +103,9 @@
.icon.s16.unlock {
background-image: url("../../../images/icons/16/unlock.png");
}
.icon.s16.plugin {
background-image: url("../../../images/icons/16/plugin.png");
}
.icon.s16.type-unkn {
background-image: url("../../../images/icons/16/zip.png");
}
@ -152,6 +158,9 @@
.icon.s22.unlock {
background-image: url("../../../images/icons/22/unlock.png");
}
.icon.s22.plugin {
background-image: url("../../../images/icons/22/plugin.png");
}
.icon.s22.type-unkn {
background-image: url("../../../images/icons/22/zip.png");
}
@ -204,6 +213,9 @@
.icon.s48.unlock {
background-image: url("../../../images/icons/48/unlock.png");
}
.icon.s48.plugin {
background-image: url("../../../images/icons/48/plugin.png");
}
.icon.s48.type-unkn {
background-image: url("../../../images/icons/48/zip.png");
}
@ -501,6 +513,17 @@ ul.menu-popup .empty {
text-align: center;
color: #9eabb0;
}
ul.menu-popup .toolbar {
background-color: #9eabb0;
height: auto;
overflow: auto;
}
ul.menu-popup .toolbar a {
float: right;
}
ul.menu-popup .toolbar a:hover {
background-color: #ffffff;
}
/* autocomplete popup */
.acpopup {
max-height: 150px;

View file

@ -0,0 +1,11 @@
<div class="widget">
{{if $title}}<h3>$title</h3>{{endif}}
{{if $desc}}<div class="desc">$desc</div>{{endif}}
<ul>
{{ for $items as $item }}
<li class="tool {{ if $item.selected }}selected{{ endif }}"><a href="$item.url" class="link">$item.label</a></li>
{{ endfor }}
</ul>
</div>

View file

@ -48,6 +48,9 @@
.icon.s10.unlock {
background-image: url("../../../images/icons/10/unlock.png");
}
.icon.s10.plugin {
background-image: url("../../../images/icons/10/plugin.png");
}
.icon.s10.type-unkn {
background-image: url("../../../images/icons/10/zip.png");
}
@ -100,6 +103,9 @@
.icon.s16.unlock {
background-image: url("../../../images/icons/16/unlock.png");
}
.icon.s16.plugin {
background-image: url("../../../images/icons/16/plugin.png");
}
.icon.s16.type-unkn {
background-image: url("../../../images/icons/16/zip.png");
}
@ -152,6 +158,9 @@
.icon.s22.unlock {
background-image: url("../../../images/icons/22/unlock.png");
}
.icon.s22.plugin {
background-image: url("../../../images/icons/22/plugin.png");
}
.icon.s22.type-unkn {
background-image: url("../../../images/icons/22/zip.png");
}
@ -204,6 +213,9 @@
.icon.s48.unlock {
background-image: url("../../../images/icons/48/unlock.png");
}
.icon.s48.plugin {
background-image: url("../../../images/icons/48/plugin.png");
}
.icon.s48.type-unkn {
background-image: url("../../../images/icons/48/zip.png");
}
@ -501,6 +513,17 @@ ul.menu-popup .empty {
text-align: center;
color: #9eabb0;
}
ul.menu-popup .toolbar {
background-color: #9eabb0;
height: auto;
overflow: auto;
}
ul.menu-popup .toolbar a {
float: right;
}
ul.menu-popup .toolbar a:hover {
background-color: #ffffff;
}
/* autocomplete popup */
.acpopup {
max-height: 150px;

View file

@ -13,6 +13,7 @@
&.link { background-image: url("../../../images/icons/@{size}/link.png"); }
&.lock { background-image: url("../../../images/icons/@{size}/lock.png"); }
&.unlock { background-image: url("../../../images/icons/@{size}/unlock.png"); }
&.plugin { background-image: url("../../../images/icons/@{size}/plugin.png"); }
&.type-unkn { background-image: url("../../../images/icons/@{size}/zip.png"); }
&.type-audio{ background-image: url("../../../images/icons/@{size}/audio.png"); }
&.type-video{ background-image: url("../../../images/icons/@{size}/video.png"); }

View file

@ -43,8 +43,7 @@
<li id="nav-notifications-linkmenu" class="nav-menu-icon"><a href="$nav.notifications.0" rel="#nav-notifications-menu" title="$nav.notifications.1"><span class="icon s22 notify">$nav.notifications.1</span></a>
<span id="notify-update" class="nav-notify"></span>
<ul id="nav-notifications-menu" class="menu-popup">
<li id="nav-notifications-mark-all"><a href="#" onclick="notifyMarkAll(); return false;">$nav.notifications.mark.1</a></li>
<li id="nav-notifications-see-all"><a href="$nav.notifications.all.0">$nav.notifications.all.1</a></li>
<li id="nav-notifications-mark-all" class="toolbar"><a href="#" onclick="notifyMarkAll(); return false;" title="$nav.notifications.mark.1"><span class="icon s10 edit"></span></a></a><a href="$nav.notifications.all.0" title="$nav.notifications.all.1"><span class="icon s10 plugin"></span></a></li>
<li class="empty">$emptynotifications</li>
</ul>
</li>
@ -92,40 +91,3 @@
<li><a href="{0}"><img src="{1}">{2} <span class="notif-when">{3}</span></a></li>
</ul>
{#
{{ if $nav.logout }}<a id="nav-logout-link" class="nav-link $nav.logout.2" href="$nav.logout.0" title="$nav.logout.3" >$nav.logout.1</a> {{ endif }}
{{ if $nav.login }}<a id="nav-login-link" class="nav-login-link $nav.login.2" href="$nav.login.0" title="$nav.login.3" >$nav.login.1</a> {{ endif }}
<span id="nav-link-wrapper" >
{{ if $nav.register }}<a id="nav-register-link" class="nav-commlink $nav.register.2" href="$nav.register.0" title="$nav.register.3" >$nav.register.1</a>{{ endif }}
<a id="nav-help-link" class="nav-link $nav.help.2" target="friendika-help" href="$nav.help.0" title="$nav.help.3" >$nav.help.1</a>
{{ if $nav.apps }}<a id="nav-apps-link" class="nav-link $nav.apps.2" href="$nav.apps.0" title="$nav.apps.3" >$nav.apps.1</a>{{ endif }}
<a id="nav-search-link" class="nav-link $nav.search.2" href="$nav.search.0" title="$nav.search.3" >$nav.search.1</a>
<a id="nav-directory-link" class="nav-link $nav.directory.2" href="$nav.directory.0" title="$nav.directory.3" >$nav.directory.1</a>
{{ if $nav.admin }}<a id="nav-admin-link" class="nav-link $nav.admin.2" href="$nav.admin.0" title="$nav.admin.3" >$nav.admin.1</a>{{ endif }}
{{ if $nav.notifications }}
<a id="nav-notify-link" class="nav-commlink $nav.notifications.2" href="$nav.notifications.0" title="$nav.notifications.3" >$nav.notifications.1</a>
<span id="notify-update" class="nav-ajax-left"></span>
{{ endif }}
{{ if $nav.messages }}
<a id="nav-messages-link" class="nav-commlink $nav.messages.2" href="$nav.messages.0" title="$nav.messages.3" >$nav.messages.1</a>
<span id="mail-update" class="nav-ajax-left"></span>
{{ endif }}
{{ if $nav.manage }}<a id="nav-manage-link" class="nav-commlink $nav.manage.2" href="$nav.manage.0" title="$nav.manage.3">$nav.manage.1</a>{{ endif }}
{{ if $nav.settings }}<a id="nav-settings-link" class="nav-link $nav.settings.2" href="$nav.settings.0" title="$nav.settings.3">$nav.settings.1</a>{{ endif }}
{{ if $nav.profiles }}<a id="nav-profiles-link" class="nav-link $nav.profiles.2" href="$nav.profiles.0" title="$nav.profiles.3" >$nav.profiles.1</a>{{ endif }}
</span>
<span id="nav-end"></span>
<span id="banner">$banner</span>
#}

View file

@ -227,6 +227,12 @@ ul.menu-popup {
text-align: center;
color: @MenuEmpty;
}
.toolbar {
background-color: @MenuEmpty;
height: auto; overflow: auto;
a { float: right; }
a:hover { background-color: @MenuBg; }
}
}

View file

@ -1,5 +1,9 @@
<?php
$color = get_pconfig(local_user(), "quattro","color");
$color = false;
if (local_user()) {
$color = get_pconfig(local_user(), "quattro","color");
$quattro_align = get_pconfig(local_user(), 'quattro', 'align' );
}
if ($color===false) $color="dark";
@ -7,3 +11,13 @@
echo file_get_contents("$THEMEPATH/$color/style.css");
}
if($quattro_align=="center"){
echo "
html { width: 100%; margin:0px; padding:0px; }
body {
margin: 50px auto;
width: 900px;
}
";
}

View file

@ -1,20 +0,0 @@
<?php
$quattro_align = get_pconfig(local_user(), 'quattro', 'align' );
if(local_user() && $quattro_align=="center"){
$a->page['htmlhead'].="
<style>
html { width: 100%; margin:0px; padding:0px; }
body {
margin: 50px auto;
width: 900px;
}
</style>
";
}