This commit is contained in:
Tobias Diekershoff 2012-03-14 07:20:13 +01:00
commit 4fcdada432
47 changed files with 750 additions and 336 deletions

View File

@ -9,7 +9,7 @@ require_once('include/nav.php');
require_once('include/cache.php'); require_once('include/cache.php');
define ( 'FRIENDICA_PLATFORM', 'Friendica'); define ( 'FRIENDICA_PLATFORM', 'Friendica');
define ( 'FRIENDICA_VERSION', '2.3.1279' ); define ( 'FRIENDICA_VERSION', '2.3.1280' );
define ( 'DFRN_PROTOCOL_VERSION', '2.22' ); define ( 'DFRN_PROTOCOL_VERSION', '2.22' );
define ( 'DB_UPDATE_VERSION', 1131 ); define ( 'DB_UPDATE_VERSION', 1131 );
@ -1209,7 +1209,7 @@ function current_theme(){
$a = get_app(); $a = get_app();
$system_theme = ((isset($a->config['system']['theme'])) ? $a->config['system']['theme'] : ''); $system_theme = ((isset($a->config['system']['theme'])) ? $a->config['system']['theme'] : '');
$theme_name = ((is_array($_SESSION) && x($_SESSION,'theme')) ? $_SESSION['theme'] : $system_theme); $theme_name = ((isset($_SESSION) && x($_SESSION,'theme')) ? $_SESSION['theme'] : $system_theme);
if($theme_name && file_exists('view/theme/' . $theme_name . '/style.css')) if($theme_name && file_exists('view/theme/' . $theme_name . '/style.css'))
return($theme_name); return($theme_name);
@ -1335,7 +1335,7 @@ function profile_tabs($a, $is_owner=False, $nickname=Null){
array( array(
'label' => t('Profile'), 'label' => t('Profile'),
'url' => $url.'/?tab=profile', 'url' => $url.'/?tab=profile',
'sel' => (($tab=='profile')?'active':''), 'sel' => ((isset($tab) && $tab=='profile')?'active':''),
), ),
array( array(
'label' => t('Photos'), 'label' => t('Photos'),

View File

@ -75,4 +75,33 @@ function networks_widget($baseurl,$selected = '') {
)); ));
} }
function fileas_widget($baseurl,$selected = '') {
$a = get_app();
if(! local_user())
return '';
$saved = get_pconfig(local_user(),'system','filetags');
if(! strlen($saved))
return;
$matches = false;
$terms = array();
$cnt = preg_match_all('/\[(.*?)\]/',$saved,$matches,PREG_SET_ORDER);
if($cnt) {
foreach($matches as $mtch) {
$unescaped = file_tag_decode($mtch[1]);
$terms[] = array('name' => $unescaped,'selected' => (($selected == $unescaped) ? 'selected' : ''));
}
}
return replace_macros(get_markup_template('fileas_widget.tpl'),array(
'$title' => t('File Selections'),
'$desc' => '',
'$sel_all' => (($selected == '') ? 'selected' : ''),
'$all' => t('Everything'),
'$terms' => $terms,
'$base' => $baseurl,
));
}

View File

@ -375,7 +375,8 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
$comments[$item['parent']] = 1; $comments[$item['parent']] = 1;
else else
$comments[$item['parent']] += 1; $comments[$item['parent']] += 1;
} } elseif(! x($comments,$item['parent']))
$comments[$item['parent']] = 0; // avoid notices later on
} }
// map all the like/dislike activities for each parent item // map all the like/dislike activities for each parent item
@ -559,24 +560,28 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
); );
$star = false; $star = false;
$filer = false;
$isstarred = "unstarred"; $isstarred = "unstarred";
if ($profile_owner == local_user() && $toplevelpost) { if ($profile_owner == local_user()) {
$isstarred = (($item['starred']) ? "starred" : "unstarred"); if($toplevelpost) {
$isstarred = (($item['starred']) ? "starred" : "unstarred");
$star = array( $star = array(
'do' => t("add star"), 'do' => t("add star"),
'undo' => t("remove star"), 'undo' => t("remove star"),
'toggle' => t("toggle star status"), 'toggle' => t("toggle star status"),
'classdo' => (($item['starred']) ? "hidden" : ""), 'classdo' => (($item['starred']) ? "hidden" : ""),
'classundo' => (($item['starred']) ? "" : "hidden"), 'classundo' => (($item['starred']) ? "" : "hidden"),
'starred' => t('starred'), 'starred' => t('starred'),
'tagger' => t("add tag"), 'tagger' => t("add tag"),
'classtagger' => "", 'classtagger' => "",
); );
}
$filer = t("file as");
} }
$photo = $item['photo']; $photo = $item['photo'];
$thumb = $item['thumb']; $thumb = $item['thumb'];
@ -670,6 +675,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
'edpost' => $edpost, 'edpost' => $edpost,
'isstarred' => $isstarred, 'isstarred' => $isstarred,
'star' => $star, 'star' => $star,
'filer' => $filer,
'drop' => $drop, 'drop' => $drop,
'vote' => $likebuttons, 'vote' => $likebuttons,
'like' => $like, 'like' => $like,
@ -873,6 +879,7 @@ function status_editor($a,$x, $notes_cid = 0, $popup=false) {
'$vidurl' => t("Please enter a video link/URL:"), '$vidurl' => t("Please enter a video link/URL:"),
'$audurl' => t("Please enter an audio link/URL:"), '$audurl' => t("Please enter an audio link/URL:"),
'$term' => t('Tag term:'), '$term' => t('Tag term:'),
'$fileas' => t('File as:'),
'$whereareu' => t('Where are you right now?'), '$whereareu' => t('Where are you right now?'),
'$title' => t('Enter a title for this item') '$title' => t('Enter a title for this item')
)); ));
@ -915,7 +922,7 @@ function status_editor($a,$x, $notes_cid = 0, $popup=false) {
$o .= replace_macros($tpl,array( $o .= replace_macros($tpl,array(
'$return_path' => $a->cmd, '$return_path' => $a->cmd,
'$action' => $a->get_baseurl().'/item', '$action' => $a->get_baseurl().'/item',
'$share' => (($x['button']) ? $x['button'] : t('Share')), '$share' => (x($x,'button') ? $x['button'] : t('Share')),
'$upload' => t('Upload photo'), '$upload' => t('Upload photo'),
'$shortupload' => t('upload photo'), '$shortupload' => t('upload photo'),
'$attach' => t('Attach file'), '$attach' => t('Attach file'),
@ -980,8 +987,8 @@ function conv_sort($arr,$order) {
usort($parents,'sort_thr_commented'); usort($parents,'sort_thr_commented');
if(count($parents)) if(count($parents))
foreach($parents as $x) foreach($parents as $i=>$_x)
$x['children'] = array(); $parents[$i]['children'] = array();
foreach($arr as $x) { foreach($arr as $x) {
if($x['id'] != $x['parent']) { if($x['id'] != $x['parent']) {

View File

@ -163,7 +163,7 @@ function bbtoevent($s) {
if(preg_match("/\[event\-adjust\](.*?)\[\/event\-adjust\]/is",$s,$match)) if(preg_match("/\[event\-adjust\](.*?)\[\/event\-adjust\]/is",$s,$match))
$ev['adjust'] = $match[1]; $ev['adjust'] = $match[1];
$match = ''; $match = '';
$ev['nofinish'] = (($ev['start'] && (!x($ev, 'finish') || !$ev['finish'])) ? 1 : 0); $ev['nofinish'] = (((x($ev, 'start') && $ev['start']) && (!x($ev, 'finish') || !$ev['finish'])) ? 1 : 0);
return $ev; return $ev;
} }

View File

@ -682,7 +682,7 @@ function item_store($arr,$force_parent = false) {
unset($arr['dsprsig']); unset($arr['dsprsig']);
} }
if($arr['gravity']) if(x($arr, 'gravity'))
$arr['gravity'] = intval($arr['gravity']); $arr['gravity'] = intval($arr['gravity']);
elseif($arr['parent-uri'] === $arr['uri']) elseif($arr['parent-uri'] === $arr['uri'])
$arr['gravity'] = 0; $arr['gravity'] = 0;
@ -742,6 +742,7 @@ function item_store($arr,$force_parent = false) {
if($arr['parent-uri'] === $arr['uri']) { if($arr['parent-uri'] === $arr['uri']) {
$parent_id = 0; $parent_id = 0;
$parent_deleted = 0;
$allow_cid = $arr['allow_cid']; $allow_cid = $arr['allow_cid'];
$allow_gid = $arr['allow_gid']; $allow_gid = $arr['allow_gid'];
$deny_cid = $arr['deny_cid']; $deny_cid = $arr['deny_cid'];
@ -800,6 +801,8 @@ function item_store($arr,$force_parent = false) {
logger('item_store: item parent was not found - ignoring item'); logger('item_store: item parent was not found - ignoring item');
return 0; return 0;
} }
$parent_deleted = 0;
} }
} }

View File

@ -1,6 +1,6 @@
<?php <?php
function oembed_replacecb($matches){ function oembed_replacecb($matches){
logger('oembedcb'); // logger('oembedcb');
$embedurl=$matches[1]; $embedurl=$matches[1];
$j = oembed_fetch_url($embedurl); $j = oembed_fetch_url($embedurl);
$s = oembed_format_object($j); $s = oembed_format_object($j);
@ -14,6 +14,9 @@ function oembed_fetch_url($embedurl){
$txt = Cache::get($embedurl); $txt = Cache::get($embedurl);
// These media files should now be caught in bbcode.php
// left here as a fallback in case this is called from another source
$noexts = array("mp3","mp4","ogg","ogv","oga","ogm","webm"); $noexts = array("mp3","mp4","ogg","ogv","oga","ogm","webm");
$ext = pathinfo(strtolower($embedurl),PATHINFO_EXTENSION); $ext = pathinfo(strtolower($embedurl),PATHINFO_EXTENSION);
@ -62,7 +65,7 @@ function oembed_fetch_url($embedurl){
function oembed_format_object($j){ function oembed_format_object($j){
$embedurl = $j->embedurl; $embedurl = $j->embedurl;
$jhtml = oembed_iframe($j->embedurl,$j->width,$j->height ); $jhtml = oembed_iframe($j->embedurl,(isset($j->width) ? $j->width : null), (isset($j->height) ? $j->height : null) );
$ret="<span class='oembed ".$j->type."'>"; $ret="<span class='oembed ".$j->type."'>";
switch ($j->type) { switch ($j->type) {
case "video": { case "video": {

View File

@ -288,3 +288,49 @@ function item_permissions_sql($owner_id,$remote_verified = false,$groups = null)
} }
/*
* Functions used to protect against Cross-Site Request Forgery
* The security token has to base on at least one value that an attacker can't know - here it's the session ID and the private key.
* In this implementation, a security token is reusable (if the user submits a form, goes back and resubmits the form, maybe with small changes;
* or if the security token is used for ajax-calls that happen several times), but only valid for a certain amout of time (3hours).
* The "typename" seperates the security tokens of different types of forms. This could be relevant in the following case:
* A security token is used to protekt a link from CSRF (e.g. the "delete this profile"-link).
* If the new page contains by any chance external elements, then the used security token is exposed by the referrer.
* Actually, important actions should not be triggered by Links / GET-Requests at all, but somethimes they still are,
* so this mechanism brings in some damage control (the attacker would be able to forge a request to a form of this type, but not to forms of other types).
*/
function get_form_security_token($typename = "") {
$a = get_app();
$timestamp = time();
$sec_hash = hash('whirlpool', $a->user["guid"] . $a->user["prvkey"] . session_id() . $timestamp . $typename);
return $timestamp . "." . $sec_hash;
}
function check_form_security_token($typename = "", $formname = 'form_security_token') {
if (!x($_REQUEST, $formname)) return false;
$hash = $_REQUEST[$formname];
$max_livetime = 10800; // 3 hours
$a = get_app();
$x = explode(".", $hash);
if (time() > (IntVal($x[0]) + $max_livetime)) return false;
$sec_hash = hash('whirlpool', $a->user["guid"] . $a->user["prvkey"] . session_id() . $x[0] . $typename);
return ($sec_hash == $x[1]);
}
function check_form_security_std_err_msg() {
return t('The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before subitting it.') . EOL;
}
function check_form_security_token_redirectOnErr($err_redirect, $typename = "", $formname = 'form_security_token') {
if (!check_form_security_token($typename, $formname)) {
$a = get_app();
notice( check_form_security_std_err_msg() );
goaway($a->get_baseurl() . $err_redirect );
}
}

View File

@ -80,8 +80,13 @@
*/ */
private function _replcb_for($args){ private function _replcb_for($args){
$m = array_map('trim', explode(" as ", $args[2])); $m = array_map('trim', explode(" as ", $args[2]));
list($keyname, $varname) = explode("=>",$m[1]); $x = explode("=>",$m[1]);
if (is_null($varname)) { $varname=$keyname; $keyname=""; } if (count($x) == 1) {
$varname = $x[0];
$keyname = "";
} else {
list($keyname, $varname) = $x;
}
if ($m[0]=="" || $varname=="" || is_null($varname)) die("template error: 'for ".$m[0]." as ".$varname."'") ; if ($m[0]=="" || $varname=="" || is_null($varname)) die("template error: 'for ".$m[0]." as ".$varname."'") ;
//$vals = $this->r[$m[0]]; //$vals = $this->r[$m[0]];
$vals = $this->_get_var($m[0]); $vals = $this->_get_var($m[0]);

View File

@ -874,6 +874,7 @@ function link_compare($a,$b) {
if(! function_exists('prepare_body')) { if(! function_exists('prepare_body')) {
function prepare_body($item,$attach = false) { function prepare_body($item,$attach = false) {
$a = get_app();
call_hooks('prepare_body_init', $item); call_hooks('prepare_body_init', $item);
$s = prepare_text($item['body']); $s = prepare_text($item['body']);
@ -913,6 +914,33 @@ function prepare_body($item,$attach = false) {
} }
$s .= '<div class="clear"></div></div>'; $s .= '<div class="clear"></div></div>';
} }
$matches = false;
$cnt = preg_match_all('/<(.*?)>/',$item['file'],$matches,PREG_SET_ORDER);
if($cnt) {
// logger('prepare_text: categories: ' . print_r($matches,true), LOGGER_DEBUG);
foreach($matches as $mtch) {
if(strlen($x))
$x .= ',';
$x .= file_tag_decode($mtch[1]);
}
if(strlen($x))
$s .= '<div class="categorytags"><span>' . t('Categories:') . ' </span>' . $x . '</div>';
}
$matches = false;
$x = '';
$cnt = preg_match_all('/\[(.*?)\]/',$item['file'],$matches,PREG_SET_ORDER);
if($cnt) {
// logger('prepare_text: filed_under: ' . print_r($matches,true), LOGGER_DEBUG);
foreach($matches as $mtch) {
if(strlen($x))
$x .= '&nbsp;&nbsp;&nbsp;';
$x .= file_tag_decode($mtch[1]). ' <a href="' . $a->get_baseurl() . '/filerm/' . $item['id'] . '?f=&term=' . file_tag_decode($mtch[1]) . '" title="' . t('remove') . '" >' . t('[remove]') . '</a>';
}
if(strlen($x) && (local_user() == $item['uid']))
$s .= '<div class="filesavetags"><span>' . t('Filed under:') . ' </span>' . $x . '</div>';
}
$prep_arr = array('item' => $item, 'html' => $s); $prep_arr = array('item' => $item, 'html' => $s);
@ -1267,7 +1295,7 @@ function file_tag_save_file($uid,$item,$file) {
if(count($r)) { if(count($r)) {
if(! stristr($r[0]['file'],'[' . file_tag_encode($file) . ']')) if(! stristr($r[0]['file'],'[' . file_tag_encode($file) . ']'))
q("update item set file = '%s' where id = %d and uid = %d limit 1", q("update item set file = '%s' where id = %d and uid = %d limit 1",
dbesc($r[0]['file'] . '[' . $file_tag_encode($file) . ']'), dbesc($r[0]['file'] . '[' . file_tag_encode($file) . ']'),
intval($item), intval($item),
intval($uid) intval($uid)
); );

View File

@ -79,6 +79,7 @@
/* oembed */ /* oembed */
function _h2b_cb(match) { function _h2b_cb(match) {
/*
function s_h2b(data) { function s_h2b(data) {
match = data; match = data;
} }
@ -90,6 +91,23 @@
success: s_h2b, success: s_h2b,
dataType: 'html' dataType: 'html'
}); });
*/
var f, g, tof = [], tor = [];
var find_spanc = /<span [^>]*class *= *[\"'](?:[^\"']* )*oembed(?: [^\"']*)*[\"'][^>]*>(.*?(?:<span[^>]*>(.*?)<\/span *>)*.*?)<\/span *>/ig;
while (f = find_spanc.exec(match)) {
var find_a = /<a([^>]* rel=[\"']oembed[\"'][^>]*)>.*?<\/a *>/ig;
if (g = find_a.exec(f[1])) {
var find_href = /href=[\"']([^\"']*)[\"']/ig;
var m2 = find_href.exec(g[1]);
if (m2[1]) {
tof.push(f[0]);
tor.push("[EMBED]" + m2[1] + "[/EMBED]");
}
}
}
for (var i = 0; i < tof.length; i++) match = match.replace(tof[i], tor[i]);
return match; return match;
} }
if (s.indexOf('class="oembed')>=0){ if (s.indexOf('class="oembed')>=0){

View File

@ -445,7 +445,7 @@ function contacts_content(&$a) {
$r = q("SELECT COUNT(*) AS `total` FROM `contact` $r = q("SELECT COUNT(*) AS `total` FROM `contact`
WHERE `uid` = %d AND `pending` = 0 $sql_extra $sql_extra2 ", WHERE `uid` = %d AND `self` = 0 AND `pending` = 0 $sql_extra $sql_extra2 ",
intval($_SESSION['uid'])); intval($_SESSION['uid']));
if(count($r)) { if(count($r)) {
$a->set_pager_total($r[0]['total']); $a->set_pager_total($r[0]['total']);
@ -454,7 +454,7 @@ function contacts_content(&$a) {
$r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `pending` = 0 $sql_extra $sql_extra2 ORDER BY `name` ASC LIMIT %d , %d ", $r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `self` = 0 AND `pending` = 0 $sql_extra $sql_extra2 ORDER BY `name` ASC LIMIT %d , %d ",
intval($_SESSION['uid']), intval($_SESSION['uid']),
intval($a->pager['start']), intval($a->pager['start']),
intval($a->pager['itemspage']) intval($a->pager['itemspage'])
@ -465,8 +465,6 @@ function contacts_content(&$a) {
if(count($r)) { if(count($r)) {
foreach($r as $rr) { foreach($r as $rr) {
if($rr['self'])
continue;
switch($rr['rel']) { switch($rr['rel']) {
case CONTACT_IS_FRIEND: case CONTACT_IS_FRIEND:

View File

@ -43,7 +43,7 @@ function dfrn_request_post(&$a) {
return; return;
if($_POST['cancel']) { if(x($_POST, 'cancel')) {
goaway(z_root()); goaway(z_root());
} }
@ -666,7 +666,11 @@ function dfrn_request_content(&$a) {
$page_desc = sprintf( t('Diaspora members: Please do not use this form. Instead, enter "%s" into your Diaspora search bar.'), $page_desc = sprintf( t('Diaspora members: Please do not use this form. Instead, enter "%s" into your Diaspora search bar.'),
$target_addr) . EOL . EOL; $target_addr) . EOL . EOL;
$page_desc .= t("Please enter your 'Identity Address' from one of the following supported social networks:"); $page_desc .= t("Please enter your 'Identity Address' from one of the following supported communications networks:");
$emailnet = t("<strike>Connect as an email follower</strike> \x28Coming soon\x29");
$invite_desc = t('If you are not yet a member of the free social web, <a href="http://dir.friendica.com/siteinfo">follow this link to find a public Friendica site and join us today</a>.');
$o .= replace_macros($tpl,array( $o .= replace_macros($tpl,array(
'$header' => t('Friend/Connection Request'), '$header' => t('Friend/Connection Request'),
@ -682,6 +686,8 @@ function dfrn_request_content(&$a) {
'$diaspora' => t('Diaspora'), '$diaspora' => t('Diaspora'),
'$diasnote' => t('- please share from your own site as noted above'), '$diasnote' => t('- please share from your own site as noted above'),
'$your_address' => t('Your Identity Address:'), '$your_address' => t('Your Identity Address:'),
'$invite_desc' => $invite_desc,
'$emailnet' => $emailnet,
'$submit' => t('Submit Request'), '$submit' => t('Submit Request'),
'$cancel' => t('Cancel'), '$cancel' => t('Cancel'),
'$nickname' => $a->argv[1], '$nickname' => $a->argv[1],

23
mod/filer.php Executable file
View File

@ -0,0 +1,23 @@
<?php
require_once('include/security.php');
require_once('include/bbcode.php');
require_once('include/items.php');
function filer_content(&$a) {
if(! local_user()) {
killme();
}
$term = notags(trim($_GET['term']));
$item_id = (($a->argc > 1) ? notags(trim($a->argv[1])) : 0);
logger('filer: tag ' . $term . ' item ' . $item_id);
if($item_id && strlen($term))
file_tag_save_file(local_user(),$item_id,$term);
killme();
}

21
mod/filerm.php Normal file
View File

@ -0,0 +1,21 @@
<?php
function filerm_content(&$a) {
if(! local_user()) {
killme();
}
$term = notags(trim($_GET['term']));
$item_id = (($a->argc > 1) ? notags(trim($a->argv[1])) : 0);
logger('filerm: tag ' . $term . ' item ' . $item_id);
if($item_id && strlen($term))
file_tag_unsave_file(local_user(),$item_id,$term);
if(x($_SESSION,'return_url'))
goaway($a->get_baseurl() . '/' . $_SESSION['return_url']);
killme();
}

View File

@ -192,9 +192,9 @@ function message_content(&$a) {
$a->set_pager_total($r[0]['total']); $a->set_pager_total($r[0]['total']);
$r = q("SELECT max(`mail`.`created`) AS `mailcreated`, min(`mail`.`seen`) AS `mailseen`, $r = q("SELECT max(`mail`.`created`) AS `mailcreated`, min(`mail`.`seen`) AS `mailseen`,
`mail`.* , `contact`.`name`, `contact`.`url`, `contact`.`thumb` `mail`.* , `contact`.`name`, `contact`.`url`, `contact`.`thumb` , `contact`.`network`
FROM `mail` LEFT JOIN `contact` ON `mail`.`contact-id` = `contact`.`id` FROM `mail` LEFT JOIN `contact` ON `mail`.`contact-id` = `contact`.`id`
WHERE `mail`.`uid` = %d AND `from-url` $eq '%s' GROUP BY `parent-uri` ORDER BY `created` DESC LIMIT %d , %d ", WHERE `mail`.`uid` = %d AND `from-url` $eq '%s' GROUP BY `parent-uri` ORDER BY `mailcreated` DESC LIMIT %d , %d ",
intval(local_user()), intval(local_user()),
dbesc($myprofile), dbesc($myprofile),
intval($a->pager['start']), intval($a->pager['start']),

View File

@ -44,8 +44,9 @@ function network_init(&$a) {
} }
$a->page['aside'] .= group_side('network','network',true,$group_id); $a->page['aside'] .= group_side('network','network',true,$group_id);
$a->page['aside'] .= networks_widget($a->get_baseurl() . '/network',(($_GET['nets']) ? $_GET['nets'] : '')); $a->page['aside'] .= networks_widget($a->get_baseurl() . '/network',(x($_GET, 'nets') ? $_GET['nets'] : ''));
$a->page['aside'] .= saved_searches($search); $a->page['aside'] .= saved_searches($search);
$a->page['aside'] .= fileas_widget($a->get_baseurl() . '/network',(x($_GET, 'file') ? $_GET['file'] : ''));
} }
@ -132,15 +133,15 @@ function network_content(&$a, $update = 0) {
$starred_active = 'active'; $starred_active = 'active';
} }
if($_GET['bmark']) { if(x($_GET,'bmark')) {
$bookmarked_active = 'active'; $bookmarked_active = 'active';
} }
if($_GET['conv']) { if(x($_GET,'conv')) {
$conv_active = 'active'; $conv_active = 'active';
} }
if($_GET['spam']) { if(x($_GET,'spam')) {
$spam_active = 'active'; $spam_active = 'active';
} }
@ -248,7 +249,7 @@ function network_content(&$a, $update = 0) {
$def_acl = array('allow_cid' => '<' . intval($cid) . '>'); $def_acl = array('allow_cid' => '<' . intval($cid) . '>');
if(! $update) { if(! $update) {
if(group) { if($group) {
if(($t = group_public_members($group)) && (! get_pconfig(local_user(),'system','nowarn_insecure'))) { if(($t = group_public_members($group)) && (! get_pconfig(local_user(),'system','nowarn_insecure'))) {
notice( sprintf( tt('Warning: This group contains %s member from an insecure network.', notice( sprintf( tt('Warning: This group contains %s member from an insecure network.',
'Warning: This group contains %s members from an insecure network.', 'Warning: This group contains %s members from an insecure network.',
@ -498,6 +499,8 @@ function network_content(&$a, $update = 0) {
$items = conv_sort($items,$ordering); $items = conv_sort($items,$ordering);
} else {
$items = array();
} }
} }

View File

@ -188,7 +188,7 @@ function parse_url_content(&$a) {
if(! $text) { if(! $text) {
logger('parsing meta'); logger('parsing meta');
$items = $domhead->getElementsByTagName('meta'); $items = (isset($domhead) && is_object($domhead) ? $domhead->getElementsByTagName('meta') : null);
if($items) { if($items) {
foreach($items as $item) { foreach($items as $item) {
$property = $item->getAttribute('property'); $property = $item->getAttribute('property');

View File

@ -15,10 +15,12 @@ function profile_photo_init(&$a) {
function profile_photo_post(&$a) { function profile_photo_post(&$a) {
if(! local_user()) { if(! local_user()) {
notice ( t('Permission denied.') . EOL ); notice ( t('Permission denied.') . EOL );
return; return;
} }
check_form_security_token_redirectOnErr('/profile_photo', 'profile_photo');
if((x($_POST,'cropfinal')) && ($_POST['cropfinal'] == 1)) { if((x($_POST,'cropfinal')) && ($_POST['cropfinal'] == 1)) {
@ -149,6 +151,8 @@ function profile_photo_content(&$a) {
return; return;
}; };
check_form_security_token_redirectOnErr('/profile_photo', 'profile_photo');
$resource_id = $a->argv[2]; $resource_id = $a->argv[2];
//die(":".local_user()); //die(":".local_user());
$r=q("SELECT * FROM `photo` WHERE `uid` = %d AND `resource-id` = '%s' ORDER BY `scale` ASC", $r=q("SELECT * FROM `photo` WHERE `uid` = %d AND `resource-id` = '%s' ORDER BY `scale` ASC",
@ -203,6 +207,7 @@ function profile_photo_content(&$a) {
'$lbl_upfile' => t('Upload File:'), '$lbl_upfile' => t('Upload File:'),
'$title' => t('Upload Profile Photo'), '$title' => t('Upload Profile Photo'),
'$submit' => t('Upload'), '$submit' => t('Upload'),
'$form_security_token' => get_form_security_token("profile_photo"),
'$select' => sprintf('%s %s', t('or'), ($newuser) ? '<a href="' . $a->get_baseurl() . '">' . t('skip this step') . '</a>' : '<a href="'. $a->get_baseurl() . '/photos/' . $a->user['nickname'] . '">' . t('select a photo from your photo albums') . '</a>') '$select' => sprintf('%s %s', t('or'), ($newuser) ? '<a href="' . $a->get_baseurl() . '">' . t('skip this step') . '</a>' : '<a href="'. $a->get_baseurl() . '/photos/' . $a->user['nickname'] . '">' . t('select a photo from your photo albums') . '</a>')
)); ));
@ -218,6 +223,7 @@ function profile_photo_content(&$a) {
'$image_url' => $a->get_baseurl() . '/photo/' . $filename, '$image_url' => $a->get_baseurl() . '/photo/' . $filename,
'$title' => t('Crop Image'), '$title' => t('Crop Image'),
'$desc' => t('Please adjust the image cropping for optimum viewing.'), '$desc' => t('Please adjust the image cropping for optimum viewing.'),
'$form_security_token' => get_form_security_token("profile_photo"),
'$done' => t('Done Editing') '$done' => t('Done Editing')
)); ));
return $o; return $o;

View File

@ -21,6 +21,9 @@ function profiles_post(&$a) {
notice( t('Profile not found.') . EOL); notice( t('Profile not found.') . EOL);
return; return;
} }
check_form_security_token_redirectOnErr('/profiles', 'profile_edit');
$is_default = (($orig[0]['is-default']) ? 1 : 0); $is_default = (($orig[0]['is-default']) ? 1 : 0);
$profile_name = notags(trim($_POST['profile_name'])); $profile_name = notags(trim($_POST['profile_name']));
@ -241,6 +244,8 @@ function profiles_content(&$a) {
return; // NOTREACHED return; // NOTREACHED
} }
check_form_security_token_redirectOnErr('/profiles', 'profile_drop', 't');
// move every contact using this profile as their default to the user default // move every contact using this profile as their default to the user default
$r = q("UPDATE `contact` SET `profile-id` = (SELECT `profile`.`id` AS `profile-id` FROM `profile` WHERE `profile`.`is-default` = 1 AND `profile`.`uid` = %d LIMIT 1) WHERE `profile-id` = %d AND `uid` = %d ", $r = q("UPDATE `contact` SET `profile-id` = (SELECT `profile`.`id` AS `profile-id` FROM `profile` WHERE `profile`.`is-default` = 1 AND `profile`.`uid` = %d LIMIT 1) WHERE `profile-id` = %d AND `uid` = %d ",
@ -265,6 +270,8 @@ function profiles_content(&$a) {
if(($a->argc > 1) && ($a->argv[1] === 'new')) { if(($a->argc > 1) && ($a->argv[1] === 'new')) {
check_form_security_token_redirectOnErr('/profiles', 'profile_new', 't');
$r0 = q("SELECT `id` FROM `profile` WHERE `uid` = %d", $r0 = q("SELECT `id` FROM `profile` WHERE `uid` = %d",
intval(local_user())); intval(local_user()));
$num_profiles = count($r0); $num_profiles = count($r0);
@ -291,11 +298,14 @@ function profiles_content(&$a) {
info( t('New profile created.') . EOL); info( t('New profile created.') . EOL);
if(count($r3) == 1) if(count($r3) == 1)
goaway($a->get_baseurl() . '/profiles/' . $r3[0]['id']); goaway($a->get_baseurl() . '/profiles/' . $r3[0]['id']);
goaway($a->get_baseurl() . '/profiles'); goaway($a->get_baseurl() . '/profiles');
} }
if(($a->argc > 2) && ($a->argv[1] === 'clone')) { if(($a->argc > 2) && ($a->argv[1] === 'clone')) {
check_form_security_token_redirectOnErr('/profiles', 'profile_clone', 't');
$r0 = q("SELECT `id` FROM `profile` WHERE `uid` = %d", $r0 = q("SELECT `id` FROM `profile` WHERE `uid` = %d",
intval(local_user())); intval(local_user()));
$num_profiles = count($r0); $num_profiles = count($r0);
@ -330,8 +340,10 @@ function profiles_content(&$a) {
info( t('New profile created.') . EOL); info( t('New profile created.') . EOL);
if(count($r3) == 1) if(count($r3) == 1)
goaway($a->get_baseurl() . '/profiles/' . $r3[0]['id']); goaway($a->get_baseurl() . '/profiles/' . $r3[0]['id']);
goaway($a->get_baseurl() . '/profiles');
return; // NOTREACHED goaway($a->get_baseurl() . '/profiles');
return; // NOTREACHED
} }
@ -371,6 +383,9 @@ function profiles_content(&$a) {
$is_default = (($r[0]['is-default']) ? 1 : 0); $is_default = (($r[0]['is-default']) ? 1 : 0);
$tpl = get_markup_template("profile_edit.tpl"); $tpl = get_markup_template("profile_edit.tpl");
$o .= replace_macros($tpl,array( $o .= replace_macros($tpl,array(
'$form_security_token' => get_form_security_token("profile_edit"),
'$profile_clone_link' => 'profiles/clone/' . $r[0]['id'] . '?t=' . get_form_security_token("profile_clone"),
'$profile_drop_link' => 'profiles/drop/' . $r[0]['id'] . '?t=' . get_form_security_token("profile_drop"),
'$banner' => t('Edit Profile Details'), '$banner' => t('Edit Profile Details'),
'$submit' => t('Submit'), '$submit' => t('Submit'),
'$viewprof' => t('View this profile'), '$viewprof' => t('View this profile'),
@ -460,7 +475,8 @@ function profiles_content(&$a) {
$o .= replace_macros($tpl_header,array( $o .= replace_macros($tpl_header,array(
'$header' => t('Edit/Manage Profiles'), '$header' => t('Edit/Manage Profiles'),
'$chg_photo' => t('Change profile photo'), '$chg_photo' => t('Change profile photo'),
'$cr_new' => t('Create New Profile') '$cr_new' => t('Create New Profile'),
'$cr_new_link' => 'profiles/new?t=' . get_form_security_token("profile_new")
)); ));

View File

@ -53,6 +53,8 @@ function settings_post(&$a) {
$old_page_flags = $a->user['page-flags']; $old_page_flags = $a->user['page-flags'];
if(($a->argc > 1) && ($a->argv[1] === 'oauth') && x($_POST,'remove')){ if(($a->argc > 1) && ($a->argv[1] === 'oauth') && x($_POST,'remove')){
check_form_security_token_redirectOnErr('/settings/oauth', 'settings_oauth');
$key = $_POST['remove']; $key = $_POST['remove'];
q("DELETE FROM tokens WHERE id='%s' AND uid=%d", q("DELETE FROM tokens WHERE id='%s' AND uid=%d",
dbesc($key), dbesc($key),
@ -63,6 +65,8 @@ function settings_post(&$a) {
if(($a->argc > 2) && ($a->argv[1] === 'oauth') && ($a->argv[2] === 'edit'||($a->argv[2] === 'add')) && x($_POST,'submit')) { if(($a->argc > 2) && ($a->argv[1] === 'oauth') && ($a->argv[2] === 'edit'||($a->argv[2] === 'add')) && x($_POST,'submit')) {
check_form_security_token_redirectOnErr('/settings/oauth', 'settings_oauth');
$name = ((x($_POST,'name')) ? $_POST['name'] : ''); $name = ((x($_POST,'name')) ? $_POST['name'] : '');
$key = ((x($_POST,'key')) ? $_POST['key'] : ''); $key = ((x($_POST,'key')) ? $_POST['key'] : '');
$secret = ((x($_POST,'secret')) ? $_POST['secret'] : ''); $secret = ((x($_POST,'secret')) ? $_POST['secret'] : '');
@ -105,13 +109,18 @@ function settings_post(&$a) {
} }
if(($a->argc > 1) && ($a->argv[1] == 'addon')) { if(($a->argc > 1) && ($a->argv[1] == 'addon')) {
check_form_security_token_redirectOnErr('/settings/addon', 'settings_addon');
call_hooks('plugin_settings_post', $_POST); call_hooks('plugin_settings_post', $_POST);
return; return;
} }
if(($a->argc > 1) && ($a->argv[1] == 'connectors')) { if(($a->argc > 1) && ($a->argv[1] == 'connectors')) {
if(x($_POST['imap-submit'])) { check_form_security_token_redirectOnErr('/settings/connectors', 'settings_connectors');
if(x($_POST, 'imap-submit')) {
$mail_server = ((x($_POST,'mail_server')) ? $_POST['mail_server'] : ''); $mail_server = ((x($_POST,'mail_server')) ? $_POST['mail_server'] : '');
$mail_port = ((x($_POST,'mail_port')) ? $_POST['mail_port'] : ''); $mail_port = ((x($_POST,'mail_port')) ? $_POST['mail_port'] : '');
$mail_ssl = ((x($_POST,'mail_ssl')) ? strtolower(trim($_POST['mail_ssl'])) : ''); $mail_ssl = ((x($_POST,'mail_ssl')) ? strtolower(trim($_POST['mail_ssl'])) : '');
@ -185,6 +194,7 @@ function settings_post(&$a) {
return; return;
} }
check_form_security_token_redirectOnErr('/settings', 'settings');
call_hooks('settings_post', $_POST); call_hooks('settings_post', $_POST);
@ -460,6 +470,7 @@ function settings_content(&$a) {
if(($a->argc > 2) && ($a->argv[2] === 'add')) { if(($a->argc > 2) && ($a->argv[2] === 'add')) {
$tpl = get_markup_template("settings_oauth_edit.tpl"); $tpl = get_markup_template("settings_oauth_edit.tpl");
$o .= replace_macros($tpl, array( $o .= replace_macros($tpl, array(
'$form_security_token' => get_form_security_token("settings_oauth"),
'$tabs' => $tabs, '$tabs' => $tabs,
'$title' => t('Add application'), '$title' => t('Add application'),
'$submit' => t('Submit'), '$submit' => t('Submit'),
@ -486,6 +497,7 @@ function settings_content(&$a) {
$tpl = get_markup_template("settings_oauth_edit.tpl"); $tpl = get_markup_template("settings_oauth_edit.tpl");
$o .= replace_macros($tpl, array( $o .= replace_macros($tpl, array(
'$form_security_token' => get_form_security_token("settings_oauth"),
'$tabs' => $tabs, '$tabs' => $tabs,
'$title' => t('Add application'), '$title' => t('Add application'),
'$submit' => t('Update'), '$submit' => t('Update'),
@ -500,6 +512,8 @@ function settings_content(&$a) {
} }
if(($a->argc > 3) && ($a->argv[2] === 'delete')) { if(($a->argc > 3) && ($a->argv[2] === 'delete')) {
check_form_security_token_redirectOnErr('/settings/oauth', 'settings_oauth', 't');
$r = q("DELETE FROM clients WHERE client_id='%s' AND uid=%d", $r = q("DELETE FROM clients WHERE client_id='%s' AND uid=%d",
dbesc($a->argv[3]), dbesc($a->argv[3]),
local_user()); local_user());
@ -518,6 +532,7 @@ function settings_content(&$a) {
$tpl = get_markup_template("settings_oauth.tpl"); $tpl = get_markup_template("settings_oauth.tpl");
$o .= replace_macros($tpl, array( $o .= replace_macros($tpl, array(
'$form_security_token' => get_form_security_token("settings_oauth"),
'$baseurl' => $a->get_baseurl(), '$baseurl' => $a->get_baseurl(),
'$title' => t('Connected Apps'), '$title' => t('Connected Apps'),
'$add' => t('Add application'), '$add' => t('Add application'),
@ -544,6 +559,7 @@ function settings_content(&$a) {
$tpl = get_markup_template("settings_addons.tpl"); $tpl = get_markup_template("settings_addons.tpl");
$o .= replace_macros($tpl, array( $o .= replace_macros($tpl, array(
'$form_security_token' => get_form_security_token("settings_addons"),
'$title' => t('Plugin Settings'), '$title' => t('Plugin Settings'),
'$tabs' => $tabs, '$tabs' => $tabs,
'$settings_addons' => $settings_addons '$settings_addons' => $settings_addons
@ -586,28 +602,28 @@ function settings_content(&$a) {
$tpl = get_markup_template("settings_connectors.tpl"); $tpl = get_markup_template("settings_connectors.tpl");
$o .= replace_macros($tpl, array( $o .= replace_macros($tpl, array(
'$form_security_token' => get_form_security_token("settings_connectors"),
'$title' => t('Connector Settings'), '$title' => t('Connector Settings'),
'$tabs' => $tabs, '$tabs' => $tabs,
'$diasp_enabled' => $diasp_enabled, '$diasp_enabled' => $diasp_enabled,
'$ostat_enabled' => $ostat_enabled, '$ostat_enabled' => $ostat_enabled,
'$h_imap' => t('Email/Mailbox Setup'),
'$imap_desc' => t("If you wish to communicate with email contacts using this service \x28optional\x29, please specify how to connect to your mailbox."),
'$imap_lastcheck' => array('imap_lastcheck', t('Last successful email check:'), $mail_chk,''),
'$mail_disabled' => (($mail_disabled) ? t('Email access is disabled on this site.') : ''),
'$mail_server' => array('mail_server', t('IMAP server name:'), $mail_server, ''),
'$mail_port' => array('mail_port', t('IMAP port:'), $mail_port, ''),
'$mail_ssl' => array('mail_ssl', t('Security:'), strtoupper($mail_ssl), '', array( ''=>t('None'), 'TLS'=>'TLS', 'SSL'=>'SSL')),
'$mail_user' => array('mail_user', t('Email login name:'), $mail_user, ''),
'$mail_pass' => array('mail_pass', t('Email password:'), '', ''),
'$mail_replyto' => array('mail_replyto', t('Reply-to address:'), '', 'Optional'),
'$mail_pubmail' => array('mail_pubmail', t('Send public posts to all email contacts:'), $mail_pubmail, ''),
'$mail_action' => array('mail_action', t('Action after import:'), $mail_action, '', array(0=>t('None'), 1=>t('Delete'), 2=>t('Mark as seen'), 3=>t('Move to folder'))),
'$mail_movetofolder' => array('mail_movetofolder', t('Move to folder:'), $mail_movetofolder, ''),
'$submit' => t('Submit'),
'$h_imap' => t('Email/Mailbox Setup'),
'$imap_desc' => t("If you wish to communicate with email contacts using this service \x28optional\x29, please specify how to connect to your mailbox."),
'$imap_lastcheck' => array('imap_lastcheck', t('Last successful email check:'), $mail_chk,''),
'$mail_disabled' => (($mail_disabled) ? t('Email access is disabled on this site.') : ''),
'$mail_server' => array('mail_server', t('IMAP server name:'), $mail_server, ''),
'$mail_port' => array('mail_port', t('IMAP port:'), $mail_port, ''),
'$mail_ssl' => array('mail_ssl', t('Security:'), strtoupper($mail_ssl), '', array( ''=>t('None'), 'TLS'=>'TLS', 'SSL'=>'SSL')),
'$mail_user' => array('mail_user', t('Email login name:'), $mail_user, ''),
'$mail_pass' => array('mail_pass', t('Email password:'), '', ''),
'$mail_replyto' => array('mail_replyto', t('Reply-to address:'), '', 'Optional'),
'$mail_pubmail' => array('mail_pubmail', t('Send public posts to all email contacts:'), $mail_pubmail, ''),
'$mail_action' => array('mail_action', t('Action after import:'), $mail_action, '', array(0=>t('None'), 1=>t('Delete'), 2=>t('Mark as seen'), 3=>t('Move to folder'))),
'$mail_movetofolder' => array('mail_movetofolder', t('Move to folder:'), $mail_movetofolder, ''),
'$submit' => t('Submit'),
'$settings_connectors' => $settings_connectors '$settings_connectors' => $settings_connectors
)); ));
@ -805,6 +821,7 @@ function settings_content(&$a) {
'$submit' => t('Submit'), '$submit' => t('Submit'),
'$baseurl' => $a->get_baseurl(), '$baseurl' => $a->get_baseurl(),
'$uid' => local_user(), '$uid' => local_user(),
'$form_security_token' => get_form_security_token("settings"),
'$nickname_block' => $prof_addr, '$nickname_block' => $prof_addr,

View File

@ -7,8 +7,15 @@ $page_desc<br />
<li><a href="http://friendica.com" title="$friendica">$friendica</a></li> <li><a href="http://friendica.com" title="$friendica">$friendica</a></li>
<li><a href="http://joindiaspora.com" title="$diaspora">$diaspora</a> $diasnote</li> <li><a href="http://joindiaspora.com" title="$diaspora">$diaspora</a> $diasnote</li>
<li><a href="http://ostatus.org" title="$public_net" >$statusnet</a></li> <li><a href="http://ostatus.org" title="$public_net" >$statusnet</a></li>
<li>$emailnet</li>
</ul> </ul>
</p> </p>
<p>
$invite_desc
</p>
<p>
$desc
</p>
<form action="dfrn_request/$nickname" method="post" /> <form action="dfrn_request/$nickname" method="post" />

View File

@ -40,6 +40,7 @@ $desc
</script> </script>
<form action="profile_photo/$resource" id="crop-image-form" method="post" /> <form action="profile_photo/$resource" id="crop-image-form" method="post" />
<input type='hidden' name='form_security_token' value='$form_security_token'>
<input type="hidden" name="cropfinal" value="1" /> <input type="hidden" name="cropfinal" value="1" />
<input type="hidden" name="xstart" id="x1" /> <input type="hidden" name="xstart" id="x1" />

View File

@ -7,7 +7,11 @@ $page_desc<br />
<li><a href="http://friendica.com" title="$friendica">$friendica</a></li> <li><a href="http://friendica.com" title="$friendica">$friendica</a></li>
<li><a href="http://joindiaspora.com" title="$diaspora">$diaspora</a> $diasnote</li> <li><a href="http://joindiaspora.com" title="$diaspora">$diaspora</a> $diasnote</li>
<li><a href="http://ostatus.org" title="$public_net" >$statusnet</a></li> <li><a href="http://ostatus.org" title="$public_net" >$statusnet</a></li>
<li>$emailnet</li>
</ul> </ul>
$invite_desc
</p>
<p>
$desc $desc
</p> </p>

12
view/fileas_widget.tpl Executable file
View File

@ -0,0 +1,12 @@
<div id="fileas-sidebar" class="widget">
<h3>$title</h3>
<div id="nets-desc">$desc</div>
<ul class="fileas-ul">
<li class="tool"><a href="$base" class="fileas-link fileas-all{{ if $sel_all }} fileas-selected{{ endif }}">$all</a></li>
{{ for $terms as $term }}
<li class="tool"><a href="$base?f=&file=$term.name" class="fileas-link{{ if $term.selected }} fileas-selected{{ endif }}">$term.name</a></li>
{{ endfor }}
</ul>
</div>

View File

@ -262,6 +262,18 @@ function enableOnUser(){
} }
} }
function itemFiler(id) {
reply = prompt("$fileas");
if(reply && reply.length) {
commentBusy = true;
$('body').css('cursor', 'wait');
$.get('filer/' + id + '?term=' + reply);
if(timer) clearTimeout(timer);
timer = setTimeout(NavUpdate,3000);
liking = 1;
}
}
function jotClearLocation() { function jotClearLocation() {
$('#jot-coord').val(''); $('#jot-coord').val('');
$('#profile-nolocation-wrapper').hide(); $('#profile-nolocation-wrapper').hide();

View File

@ -5,9 +5,9 @@ $default
<div id="profile-edit-links"> <div id="profile-edit-links">
<ul> <ul>
<li><a href="profile/$profile_id/view?tab=profile" id="profile-edit-view-link" title="$viewprof">$viewprof</a></li> <li><a href="profile/$profile_id/view?tab=profile" id="profile-edit-view-link" title="$viewprof">$viewprof</a></li>
<li><a href="profiles/clone/$profile_id" id="profile-edit-clone-link" title="$cr_prof">$cl_prof</a></li> <li><a href="$profile_clone_link" id="profile-edit-clone-link" title="$cr_prof">$cl_prof</a></li>
<li></li> <li></li>
<li><a href="profiles/drop/$profile_id" id="profile-edit-drop-link" title="$del_prof" $disabled >$del_prof</a></li> <li><a href="$profile_drop_link" id="profile-edit-drop-link" title="$del_prof" $disabled >$del_prof</a></li>
</ul> </ul>
</div> </div>
@ -17,6 +17,7 @@ $default
<div id="profile-edit-wrapper" > <div id="profile-edit-wrapper" >
<form id="profile-edit-form" name="form1" action="profiles/$profile_id" method="post" > <form id="profile-edit-form" name="form1" action="profiles/$profile_id" method="post" >
<input type='hidden' name='form_security_token' value='$form_security_token'>
<div id="profile-edit-profile-name-wrapper" > <div id="profile-edit-profile-name-wrapper" >
<label id="profile-edit-profile-name-label" for="profile-edit-profile-name" >$lbl_profname </label> <label id="profile-edit-profile-name-label" for="profile-edit-profile-name" >$lbl_profname </label>

View File

@ -3,6 +3,6 @@
<a href="profile_photo" >$chg_photo</a> <a href="profile_photo" >$chg_photo</a>
</p> </p>
<div id="profile-listing-new-link-wrapper" class="button" > <div id="profile-listing-new-link-wrapper" class="button" >
<a href="profiles/new" id="profile-listing-new-link" title="$cr_new" >$cr_new</a> <a href="$cr_new_link" id="profile-listing-new-link" title="$cr_new" >$cr_new</a>
</div> </div>

View File

@ -1,6 +1,7 @@
<h1>$title</h1> <h1>$title</h1>
<form enctype="multipart/form-data" action="profile_photo" method="post"> <form enctype="multipart/form-data" action="profile_photo" method="post">
<input type='hidden' name='form_security_token' value='$form_security_token'>
<div id="profile-photo-upload-wrapper"> <div id="profile-photo-upload-wrapper">
<label id="profile-photo-upload-label" for="profile-photo-upload">$lbl_upfile </label> <label id="profile-photo-upload-label" for="profile-photo-upload">$lbl_upfile </label>

View File

@ -5,7 +5,7 @@ $tabs
$nickname_block $nickname_block
<form action="settings" id="settings-form" method="post" autocomplete="off" > <form action="settings" id="settings-form" method="post" autocomplete="off" >
<input type='hidden' name='form_security_token' value='$form_security_token'>
<h3 class="settings-heading">$h_pass</h3> <h3 class="settings-heading">$h_pass</h3>

View File

@ -4,6 +4,7 @@ $tabs
<form action="settings/addon" method="post" autocomplete="off"> <form action="settings/addon" method="post" autocomplete="off">
<input type='hidden' name='form_security_token' value='$form_security_token'>
$settings_addons $settings_addons

View File

@ -6,6 +6,7 @@ $tabs
<div class="connector_statusmsg">$ostat_enabled</div> <div class="connector_statusmsg">$ostat_enabled</div>
<form action="settings/connectors" method="post" autocomplete="off"> <form action="settings/connectors" method="post" autocomplete="off">
<input type='hidden' name='form_security_token' value='$form_security_token'>
$settings_connectors $settings_connectors

View File

@ -4,6 +4,7 @@ $tabs
<form action="settings/oauth" method="post" autocomplete="off"> <form action="settings/oauth" method="post" autocomplete="off">
<input type='hidden' name='form_security_token' value='$form_security_token'>
<div id="profile-edit-links"> <div id="profile-edit-links">
<ul> <ul>
@ -24,7 +25,7 @@ $tabs
{{ endif }} {{ endif }}
{{ if $app.my }} {{ if $app.my }}
<a href="$baseurl/settings/oauth/edit/$app.client_id" class="icon s22 edit" title="$edit">&nbsp;</a> <a href="$baseurl/settings/oauth/edit/$app.client_id" class="icon s22 edit" title="$edit">&nbsp;</a>
<a href="$baseurl/settings/oauth/delete/$app.client_id" class="icon s22 delete" title="$delete">&nbsp;</a> <a href="$baseurl/settings/oauth/delete/$app.client_id?t=$form_security_token" class="icon s22 delete" title="$delete">&nbsp;</a>
{{ endif }} {{ endif }}
</div> </div>
{{ endfor }} {{ endfor }}

View File

@ -3,6 +3,8 @@ $tabs
<h1>$title</h1> <h1>$title</h1>
<form method="POST"> <form method="POST">
<input type='hidden' name='form_security_token' value='$form_security_token'>
{{ inc field_input.tpl with $field=$name }}{{ endinc }} {{ inc field_input.tpl with $field=$name }}{{ endinc }}
{{ inc field_input.tpl with $field=$key }}{{ endinc }} {{ inc field_input.tpl with $field=$key }}{{ endinc }}
{{ inc field_input.tpl with $field=$secret }}{{ endinc }} {{ inc field_input.tpl with $field=$secret }}{{ endinc }}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 28 KiB

View File

@ -51,9 +51,9 @@
borderopacity="1.0" borderopacity="1.0"
inkscape:pageopacity="0" inkscape:pageopacity="0"
inkscape:pageshadow="2" inkscape:pageshadow="2"
inkscape:zoom="1.9403009" inkscape:zoom="1.3859292"
inkscape:cx="100.08061" inkscape:cx="105.02551"
inkscape:cy="113.21269" inkscape:cy="107.90767"
inkscape:document-units="px" inkscape:document-units="px"
inkscape:current-layer="layer1" inkscape:current-layer="layer1"
showgrid="true" showgrid="true"
@ -107,7 +107,7 @@
<dc:format>image/svg+xml</dc:format> <dc:format>image/svg+xml</dc:format>
<dc:type <dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title> <dc:title />
</cc:Work> </cc:Work>
</rdf:RDF> </rdf:RDF>
</metadata> </metadata>
@ -572,7 +572,7 @@
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
id="rect4428-4" id="rect4428-4"
d="m 118.03127,895.15627 0,0.3125 c 0,1.2601 -0.0643,3.4345 -0.35937,5.75 l -1.5625,1e-4 c -0.80183,0.011 -1.64766,4.0737 -1.60938,8.0625 l 8.25,0 c -0.057,-5.5479 1.56902,-11.5211 1.75,-5.6563 0.21453,6.9525 1.74237,-5.1823 1.75,-8.4687 z" d="m 118.03127,895.15627 0,0.3125 c 0,1.2601 -0.0643,3.4345 -0.35937,5.75 l -1.5625,1e-4 c -0.80183,0.011 -1.64766,4.0737 -1.60938,8.0625 l 8.25,0 c -0.057,-5.5479 1.56902,-11.5211 1.75,-5.6563 0.21453,6.9525 1.74237,-5.1823 1.75,-8.4687 z"
style="fill:none;stroke:#1a1a1a;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" /> style="fill:none;stroke:#e6e6e6;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
<path <path
inkscape:export-ydpi="90" inkscape:export-ydpi="90"
inkscape:export-xdpi="90" inkscape:export-xdpi="90"
@ -580,7 +580,7 @@
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
id="path4440-4" id="path4440-4"
d="m 124.78127,905.73727 -1.9375,-0.063" d="m 124.78127,905.73727 -1.9375,-0.063"
style="fill:none;stroke:#1a1a1a;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" /> style="fill:none;stroke:#e6e6e6;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
<path <path
inkscape:export-ydpi="90" inkscape:export-ydpi="90"
inkscape:export-xdpi="90" inkscape:export-xdpi="90"
@ -589,7 +589,7 @@
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
id="path4442-9" id="path4442-9"
d="m 117.59377,901.20597 6.4375,0" d="m 117.59377,901.20597 6.4375,0"
style="fill:none;stroke:#1a1a1a;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" /> style="fill:none;stroke:#e6e6e6;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
<rect <rect
inkscape:export-ydpi="90" inkscape:export-ydpi="90"
inkscape:export-xdpi="90" inkscape:export-xdpi="90"
@ -599,12 +599,12 @@
height="0.375" height="0.375"
width="1.0625" width="1.0625"
id="rect4446-9" id="rect4446-9"
style="fill:none;stroke:#1a1a1a;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" /> style="fill:none;stroke:#e6e6e6;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
<rect <rect
inkscape:export-ydpi="90" inkscape:export-ydpi="90"
inkscape:export-xdpi="90" inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png" inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
style="fill:none;stroke:#1a1a1a;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" style="fill:none;stroke:#e6e6e6;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect4448-3" id="rect4448-3"
width="1.0625" width="1.0625"
height="0.375" height="0.375"
@ -619,12 +619,12 @@
height="0.375" height="0.375"
width="1.0625" width="1.0625"
id="rect4450-6" id="rect4450-6"
style="fill:none;stroke:#1a1a1a;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" /> style="fill:none;stroke:#e6e6e6;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
<rect <rect
inkscape:export-ydpi="90" inkscape:export-ydpi="90"
inkscape:export-xdpi="90" inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png" inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
style="fill:none;stroke:#1a1a1a;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" style="fill:none;stroke:#e6e6e6;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect4452-0" id="rect4452-0"
width="1.0625" width="1.0625"
height="0.375" height="0.375"
@ -639,12 +639,12 @@
height="0.375" height="0.375"
width="1.0625" width="1.0625"
id="rect4454-5" id="rect4454-5"
style="fill:none;stroke:#1a1a1a;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" /> style="fill:none;stroke:#e6e6e6;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
<rect <rect
inkscape:export-ydpi="90" inkscape:export-ydpi="90"
inkscape:export-xdpi="90" inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png" inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
style="fill:none;stroke:#1a1a1a;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" style="fill:none;stroke:#e6e6e6;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect4456-0" id="rect4456-0"
width="1.0625" width="1.0625"
height="0.375" height="0.375"
@ -659,12 +659,12 @@
height="0.375" height="0.375"
width="1.0625" width="1.0625"
id="rect4458-2" id="rect4458-2"
style="fill:none;stroke:#1a1a1a;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" /> style="fill:none;stroke:#e6e6e6;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
<rect <rect
inkscape:export-ydpi="90" inkscape:export-ydpi="90"
inkscape:export-xdpi="90" inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png" inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
style="fill:none;stroke:#1a1a1a;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" style="fill:none;stroke:#e6e6e6;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect4460-9" id="rect4460-9"
width="1.0625" width="1.0625"
height="0.375" height="0.375"
@ -679,12 +679,12 @@
height="0.375" height="0.375"
width="1.0625" width="1.0625"
id="rect4462-4" id="rect4462-4"
style="fill:none;stroke:#1a1a1a;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" /> style="fill:none;stroke:#e6e6e6;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
<rect <rect
inkscape:export-ydpi="90" inkscape:export-ydpi="90"
inkscape:export-xdpi="90" inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png" inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
style="fill:none;stroke:#1a1a1a;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" style="fill:none;stroke:#e6e6e6;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect4464-3" id="rect4464-3"
width="1.0625" width="1.0625"
height="0.375" height="0.375"
@ -699,12 +699,12 @@
height="0.375" height="0.375"
width="1.0625" width="1.0625"
id="rect4466-5" id="rect4466-5"
style="fill:none;stroke:#1a1a1a;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" /> style="fill:none;stroke:#e6e6e6;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
<rect <rect
inkscape:export-ydpi="90" inkscape:export-ydpi="90"
inkscape:export-xdpi="90" inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png" inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
style="fill:none;stroke:#1a1a1a;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" style="fill:none;stroke:#e6e6e6;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect4468-1" id="rect4468-1"
width="1.0625" width="1.0625"
height="0.375" height="0.375"
@ -719,12 +719,12 @@
height="0.375" height="0.375"
width="1.0625" width="1.0625"
id="rect4470-7" id="rect4470-7"
style="fill:none;stroke:#1a1a1a;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" /> style="fill:none;stroke:#e6e6e6;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
<rect <rect
inkscape:export-ydpi="90" inkscape:export-ydpi="90"
inkscape:export-xdpi="90" inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png" inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
style="fill:none;stroke:#1a1a1a;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" style="fill:none;stroke:#e6e6e6;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect4472-4" id="rect4472-4"
width="1.0625" width="1.0625"
height="0.375" height="0.375"
@ -739,12 +739,12 @@
height="0.375" height="0.375"
width="1.0625" width="1.0625"
id="rect4474-3" id="rect4474-3"
style="fill:none;stroke:#1a1a1a;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" /> style="fill:none;stroke:#e6e6e6;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
<rect <rect
inkscape:export-ydpi="90" inkscape:export-ydpi="90"
inkscape:export-xdpi="90" inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png" inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
style="fill:none;stroke:#1a1a1a;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" style="fill:none;stroke:#e6e6e6;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect4476-1" id="rect4476-1"
width="1.0625" width="1.0625"
height="0.375" height="0.375"
@ -759,12 +759,12 @@
height="0.375" height="0.375"
width="1.0625" width="1.0625"
id="rect4478-4" id="rect4478-4"
style="fill:none;stroke:#1a1a1a;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" /> style="fill:none;stroke:#e6e6e6;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
<rect <rect
inkscape:export-ydpi="90" inkscape:export-ydpi="90"
inkscape:export-xdpi="90" inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png" inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
style="fill:none;stroke:#1a1a1a;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" style="fill:none;stroke:#e6e6e6;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect4480-6" id="rect4480-6"
width="1.0625" width="1.0625"
height="0.375" height="0.375"

Before

Width:  |  Height:  |  Size: 117 KiB

After

Width:  |  Height:  |  Size: 117 KiB

View File

@ -57,14 +57,6 @@ works -->
</li> </li>
{{ endif }} {{ endif }}
{{ if $userinfo }}
<ul id="nav-user-menu" class="menu-popup">
{{ for $nav.usermenu as $usermenu }}
<li><a class="$usermenu.2" href="$usermenu.0" title="$usermenu.3">$usermenu.1</a></li>
{{ endfor }}
</ul>
{{ endif }}
{{ if $nav.contacts }} {{ if $nav.contacts }}
<li><a id="nav-contacts-link" class="nav-commlink $nav.contacts.2" href="$nav.contacts.0" title="$nav.contacts.1">$nav.contacts.1</a></li> <li><a id="nav-contacts-link" class="nav-commlink $nav.contacts.2" href="$nav.contacts.0" title="$nav.contacts.1">$nav.contacts.1</a></li>
{{ endif }} {{ endif }}
@ -94,6 +86,14 @@ works -->
</ul> </ul>
</div> </div>
{{ if $userinfo }}
<ul id="nav-user-menu" class="menu-popup">
{{ for $nav.usermenu as $usermenu }}
<li><a class="$usermenu.2" href="$usermenu.0" title="$usermenu.3">$usermenu.1</a></li>
{{ endfor }}
</ul>
{{ endif }}
<div id="notifications"> <div id="notifications">
{{ if $nav.home }} {{ if $nav.home }}
<a id="home-update" class="nav-ajax-left" href="$nav.home.0" title="$nav.home.1"></a> <a id="home-update" class="nav-ajax-left" href="$nav.home.0" title="$nav.home.1"></a>

View File

@ -17,7 +17,7 @@
</div> </div>
<div id="photo-photo-end"></div> <div id="photo-photo-end"></div>
<div id="photo-caption" >$desc</div> <div id="photo-caption">$desc</div>
{{ if $tags }} {{ if $tags }}
<div id="in-this-photo-text">$tags.0</div> <div id="in-this-photo-text">$tags.0</div>
<div id="in-this-photo">$tags.1</div> <div id="in-this-photo">$tags.1</div>

View File

@ -6,13 +6,17 @@
<div class="title">$profile.pdesc</div> <div class="title">$profile.pdesc</div>
{{ endif }} {{ endif }}
<div id="profile-photo-wrapper"> <div id="profile-photo-wrapper">
<img class="photo" width="175" height="175" src="$profile.photo" alt="$profile.name" /> <img class="photo" width="175" height="175" src="$profile.photo" alt="$profile.name" />
<div class="profile-edit-side-div">
<a class="profile-edit-side-link icon edit" title="$profile.$editprofile" href="profiles/$profile.id" ></a>
</div>
<div class="clear"></div>
</div> </div>
{{ if $location }} {{ if $location }}
<div class="location"> <div class="location">
<span class="location-label">$location</span> <span class="location-label">$location</span>
<div class="adr"> <address class="adr">
{{ if $profile.address }} {{ if $profile.address }}
<div class="street-address">$profile.address</div>{{ endif }} <div class="street-address">$profile.address</div>{{ endif }}
<span class="city-state-zip">$profile.zip</span> <span class="city-state-zip">$profile.zip</span>
@ -20,7 +24,7 @@
<span class="region">$profile.region</span> <span class="region">$profile.region</span>
<span class="postal-code">$profile.postal-code</span> <span class="postal-code">$profile.postal-code</span>
{{ if $profile.country-name }}<span class="country-name">$profile.country-name</span>{{ endif }} {{ if $profile.country-name }}<span class="country-name">$profile.country-name</span>{{ endif }}
</div> </address>
</div> </div>
{{ endif }} {{ endif }}

View File

@ -520,11 +520,13 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify, nav #nav-notifications-link
position: fixed; position: fixed;
left: 28px; left: 28px;
bottom: 6px; bottom: 6px;
z-index: 10;
} }
#language-selector { #language-selector {
position: fixed; position: fixed;
bottom: 2px; bottom: 2px;
left: 52px; left: 52px;
z-index: 10;
} }
.menu-popup { .menu-popup {
position: absolute; position: absolute;
@ -810,6 +812,9 @@ aside #viewcontacts {
border-bottom: 0; border-bottom: 0;
padding: 5px; padding: 5px;
} }
#profile-jot-net {
margin: 5px 0;
}
#jot-preview-link { #jot-preview-link {
margin: 0 0 0 10px; margin: 0 0 0 10px;
border: 0; border: 0;
@ -831,12 +836,12 @@ aside #viewcontacts {
background-color: #555753; background-color: #555753;
height: 22px; height: 22px;
width: 20px; width: 20px;
-webkit-border-radius: 5px 0px 0px 5px; -webkit-border-radius: 5px;
-moz-border-radius: 5px 0px 0px 5px; -moz-border-radius: 5px;
border-radius: 5px 0px 0px 5px; border-radius: 5px;
overflow: hidden; overflow: hidden;
border: 0px; border: 0px;
margin: 0 -4px 0 10px; margin: 0 10px 0 10px;
} }
#profile-jot-plugin-wrapper { #profile-jot-plugin-wrapper {
width: 1px; width: 1px;
@ -854,23 +859,21 @@ aside #viewcontacts {
height: 22px; height: 22px;
background-color: #555753; background-color: #555753;
color: #eeeeec; color: #eeeeec;
-webkit-border-radius: 0 5px 5px 0; -webkit-border-radius: 5px;
-moz-border-radius: 0 5px 5px 0; -moz-border-radius: 5px;
border-radius: 0 5px 5px 0; border-radius: 5px;
border: 0; border: 0;
margin: 0; margin: 0;
float: right; float: right;
} }
#jot-perms-icons { #jot-perms-icon {
background-color: #555753;
height: 22px; height: 22px;
width: 20px; width: 20px;
-webkit-border-radius: 0 5px 5px 0; -webkit-border-radius: 5px;
-moz-border-radius: 0 5px 5px 0; -moz-border-radius: 5px;
border-radius: 0 5px 5px 0; border-radius: 5px;
overflow: hidden; overflow: hidden;
border: 0; border: 0;
margin: 0 0 0 94.4%;
} }
#profile-jot-acl-wrapper { #profile-jot-acl-wrapper {
margin: 0 10px; margin: 0 10px;
@ -916,7 +919,8 @@ aside #viewcontacts {
color: #cccccc; color: #cccccc;
} }
#profile-jot-desc { #profile-jot-desc {
color: #a00; color: #ff2000;
margin: 5px 0;
} }
#jot-title-wrapper { #jot-title-wrapper {
margin-bottom: 5px; margin-bottom: 5px;
@ -1503,20 +1507,26 @@ div[id$="wrapper"] br {
} }
.mail-list-sender-name { .mail-list-sender-name {
display: inline; display: inline;
font-size: 1.1em;
} }
.mail-list-date { .mail-list-date {
display: inline; display: inline;
font-size: 0.8em; font-size: 0.9em;
padding-left: 10px; padding-left: 10px;
} }
.mail-list-sender-name, .mail-list-date {
font-style: italic;
}
.mail-list-subject { .mail-list-subject {
font-size: 1.5em; font-size: 1.2em;
font-weight: bold;
} }
.mail-list-delete-wrapper { .mail-list-delete-wrapper {
float: right; float: right;
} }
.mail-list-outside-wrapper-end { .mail-list-outside-wrapper-end {
clear: both; clear: both;
border-bottom: 1px #eec dotted;
} }
.mail-conv-sender { .mail-conv-sender {
float: left; float: left;
@ -1734,11 +1744,21 @@ div[id$="wrapper"] br {
margin: 30px 0px; margin: 30px 0px;
} }
.profile-edit-side-div { .profile-edit-side-div {
margin: 5px 2px 0 0; background: #2e2f2e;
border-radius: 5px 5px 0 0;
width: 175px;
height: 20px;
position: relative;
margin: -25px -30px 0px 0px;
display: none;
}
.profile-edit-side-div:hover {
/*margin: 0px 0px 0px 0px;*/
display: inline;
} }
.profile-edit-side-link { .profile-edit-side-link {
margin: 0 20px -18px 0; margin: 0 0px 0px 155px;
float: right; /*float: right;*/
} }
.profile-listing { .profile-listing {
float: left; float: left;
@ -1749,6 +1769,9 @@ div[id$="wrapper"] br {
padding: 0; padding: 0;
list-style: none; list-style: none;
} }
.marital {
margin-top: 5px;
}
#register-sitename { #register-sitename {
display: inline; display: inline;
font-weight: bold; font-weight: bold;
@ -1970,6 +1993,9 @@ div[id$="wrapper"] br {
background: #88a9d2; background: #88a9d2;
font-weight: bold; font-weight: bold;
} }
.group-selected:hover, .nets-selected:hover {
color: #2e2f2e;
}
.groupsideedit { .groupsideedit {
margin-right: 10px; margin-right: 10px;
} }
@ -2115,11 +2141,16 @@ div[id$="wrapper"] br {
width: 16px; height: 16px; width: 16px; height: 16px;
} }
#adminpage table tr:hover { #adminpage table tr:hover {
background-color:#bbc7d7; color: #2e2f2e;
background-color: #eec;
} }
#adminpage .selectall { #adminpage .selectall {
text-align: right; text-align: right;
} }
#adminpage #users a {
color: #2e2f2e;
text-decoration: underline;
}
/** /**
* Form fields * Form fields
@ -2397,7 +2428,7 @@ div[id$="wrapper"] br {
background-position: -70px -40px; background-position: -70px -40px;
} }
.unlock { .unlock {
background-position: -90px -40px; background-position: -88px -40px;
} }
.video { .video {
background-position: -110px -40px; background-position: -110px -40px;
@ -2481,8 +2512,8 @@ footer {
} }
#profile-jot-text { #profile-jot-text {
height: 20px; height: 20px;
color: #666; color: #eec;
border: 1px solid #ccc; border: 1px solid #eec;
border-radius: 5px; border-radius: 5px;
width: 99.5%; width: 99.5%;
} }
@ -2493,113 +2524,117 @@ footer {
#photos-upload-permissions-wrapper, #photos-upload-permissions-wrapper,
#profile-jot-acl-wrapper { #profile-jot-acl-wrapper {
display: block !important; display: block !important;
background: #2e2f2e;
color: #eec;
} }
#acl-wrapper { #acl-wrapper {
width: 690px; width: 660px;
float: left; margin: 0 auto;
} }
#acl-search { #acl-search {
float: right; float: right;
background: #fff url("../../../images/search_18.png") no-repeat right center; background: #fff url("../../../images/search_18.png") no-repeat right center;
padding-right: 20px; padding-right: 20px;
margin: 6px;
} }
#acl-showall { #acl-showall {
float:left; float: left;
display:block; display: block;
width:auto; width: auto;
height:18px; height: 18px;
background-color:#CCC; background: #eec url("../../../images/show_all_off.png") 8px 8px no-repeat;
background-image:url("../../../images/show_all_off.png"); padding: 7px 10px 7px 30px;
background-position:7px 7px; -webkit-border-radius: 5px;
background-repeat:no-repeat; -moz-border-radius: 5px;
padding:7px 10px 7px 30px; border-radius: 5px;
-webkit-border-radius:5px; color: #999;
-moz-border-radius:5px; margin: 5px 0;
border-radius:5px;
color:#999;
} }
#acl-showall.selected { #acl-showall.selected {
color:#000; color: #000;
background-color:#F90; background: #f90 url(../../../images/show_all_on.png) 8px 8px no-repeat;
background-image:url(../../../images/show_all_on.png);
} }
#acl-list { #acl-list {
height:210px; height: 210px;
border:1px solid #ccc; border: 1px solid #ccc;
clear:both; clear: both;
margin-top:30px; margin-top: 30px;
overflow:auto; overflow: auto;
}
#acl-list-content {
} }
/*#acl-list-content {*/
/*}*/
.acl-list-item { .acl-list-item {
display:block; border: 1px solid #eec;
width:150px; display: block;
height:30px; float: left;
border:1px solid #ccc; height: 110px;
margin:5px; margin: 3px 0 5px 5px;
float:left; width: 120px;
} }
.acl-list-item img { .acl-list-item img {
width:22px; width: 22px;
height:22px; height: 22px;
float:left; float: left;
margin:4px; margin: 5px 5px 20px;
} }
.acl-list-item p { .acl-list-item p {
height: 12px; height: 12px;
font-size: 10px; font-size: 10px;
margin: 0; margin: 0 0 22px;
padding: 2px 0 1px; padding: 2px 0 1px;
} }
.acl-list-item a { .acl-list-item a {
font-size:8px; background: #eec 3px 3px no-repeat;
display:block; -webkit-border-radius: 2px;
width:40px; -moz-border-radius: 2px;
height:10px; border-radius: 2px;
float:left; clear: both;
color:#999; font-size: 10px;
background-color:#CCC; display: block;
background-position:3px 3px; width: 55px;
background-repeat:no-repeat; height: 20px;
margin-right:5px; color: #2e2f2e;
-webkit-border-radius:2px; margin: 5px auto 0;
-moz-border-radius:2px; padding: 0 3px;
border-radius:2px; text-align: center;
padding-left:15px; vertical-align: middle;
} }
#acl-wrapper a:hover { #acl-wrapper a:hover {
text-decoration:none; text-decoration: none;
color:#000; color: #2e2f2e;
border: 0;
} }
.acl-button-show { .acl-button-show {
background-image:url('../../../images/show_off.png'); background-image: url('../../../images/show_off.png');
margin: 0 auto;
} }
.acl-button-hide { .acl-button-hide {
background-image:url('../../../images/hide_off.png'); background-image: url('../../../images/hide_off.png');
margin: 0 auto;
} }
.acl-button-show.selected { .acl-button-show.selected {
color:#000; color: #2e2f2e;
background-color:#9ade00; background-color: #9ade00;
background-image:url(../../../images/show_on.png); background-image: url(../../../images/show_on.png);
} }
.acl-button-hide.selected { .acl-button-hide.selected {
color:#000; color: #2e2f2e;
background-color:#ff4141; background-color: #ff4141;
background-image:url(../../../images/hide_on.png); background-image: url(../../../images/hide_on.png);
} }
.acl-list-item.groupshow { .acl-list-item.groupshow {
border-color:#9ade00; border-color: #9ade00;
} }
.acl-list-item.grouphide { .acl-list-item.grouphide {
border-color:#ff4141; border-color: #ff4141;
} }
/** /acl **/ /** /acl **/
/* autocomplete popup */ /* autocomplete popup */
.acpopup { .acpopup {
max-height: 150px; max-height: 175px;
max-width: 42%;
background-color: #555753; background-color: #555753;
color: #fff; color: #fff;
overflow: auto; overflow: auto;

View File

@ -1,5 +1,17 @@
<?php <?php
$a->theme_info = array();
/*
* Name: Dispy Dark
* Description: Dispy Dark, Friendica theme
* Version: 0.9
* Author: Simon <http://simon.kisikew.org/>
* Maintainer: Simon <http://simon.kisikew.org/>
*/
$a->theme_info = array(
'extends' => 'dispy-dark'
);
$a->page['htmlhead'] .= <<< EOT $a->page['htmlhead'] .= <<< EOT
<script> <script>
@ -52,6 +64,26 @@ $(document).ready(function() {
$('#drop-' + id).addClass('iconspacer'); } $('#drop-' + id).addClass('iconspacer'); }
); );
// notifications
$('html').click(function() {
$('#nav-notifications-linkmenu').removeClass('selected');
document.getElementById("nav-notifications-menu").style.display = "none";
});
$('#nav-notifications-linkmenu').click(function(event) {
event.stopPropagation();
});
// usermenu
//$('html').click(function() {
// $('#user-menu-popup').css('display: none');
//document.getElementById("usermenu-popup").style.display = "none";
//});
//$('#user-menu').click(function(event) {
// event.stopPropagation();
//});
function toggleToolbar() { function toggleToolbar() {
if ( $('#nav-floater').is(':visible') ) { if ( $('#nav-floater').is(':visible') ) {
$('#nav-floater').slideUp('fast'); $('#nav-floater').slideUp('fast');
@ -69,9 +101,17 @@ $(document).ready(function() {
toggleToolbar(); toggleToolbar();
return false; return false;
}); });
$('#profile-jot-text').focusin(function() {
$(this).css({color: '#eec'});
});
$('#profile-photo-wrapper').mouseover(function() {
$('#profile-edit-side-div').css({display: 'block'});
}).mouseout(function() {
$('#profile-edit-side-div').css({display: 'none'});
});
}); });
</script> </script>
EOT; EOT;
$a->page['footer'] .= <<<EOFooter
EOFooter;

View File

@ -2593,7 +2593,8 @@ footer {
/* autocomplete popup */ /* autocomplete popup */
.acpopup { .acpopup {
max-height: 150px; max-height: 175px;
max-width: 42%;
background-color: #555753; background-color: #555753;
color: #fff; color: #fff;
overflow: auto; overflow: auto;

View File

@ -1,5 +1,17 @@
<?php <?php
$a->theme_info = array();
/*
* Name: Dispy
* Description: Dispy, Friendica theme
* Version: 0.9
* Author: unknown
* Maintainer: Simon <http://simon.kisikew.org/>
*/
$a->theme_info = array(
'extends' => 'dispy'
);
$a->page['htmlhead'] .= <<< EOT $a->page['htmlhead'] .= <<< EOT
<script> <script>
@ -52,6 +64,26 @@ $(document).ready(function() {
$('#drop-' + id).addClass('iconspacer'); } $('#drop-' + id).addClass('iconspacer'); }
); );
// notifications
$('html').click(function() {
$('#nav-notifications-linkmenu').removeClass('selected');
document.getElementById("nav-notifications-menu").style.display = "none";
});
$('#nav-notifications-linkmenu').click(function(event) {
event.stopPropagation();
});
// usermenu
$('html').click(function() {
$('#nav-user-linkmenu').removeClass('selected');
document.getElementById("nav-user-menu").style.display = "none";
});
$('#nav-user-linkmenu').click(function(event) {
event.stopPropagation();
});
function toggleToolbar() { function toggleToolbar() {
if ( $('#nav-floater').is(':visible') ) { if ( $('#nav-floater').is(':visible') ) {
$('#nav-floater').slideUp('fast'); $('#nav-floater').slideUp('fast');
@ -71,6 +103,13 @@ $(document).ready(function() {
}); });
}); });
</script> </script>
<script>
$(document).ready(function() {
$('#profile-jot-text').focusin(function() {
$(this).css('color: #eec;');
});
});
</script>
EOT; EOT;
$a->page['footer'] .= <<<EOFooter $a->page['footer'] .= <<<EOFooter

Binary file not shown.

After

Width:  |  Height:  |  Size: 615 B

View File

@ -309,7 +309,7 @@ div.wall-item-content-wrapper.shiny {
margin-bottom: 10px; margin-bottom: 10px;
} }
.group-selected, .nets-selected { .group-selected, .nets-selected, .fileas-selected {
padding: 3px; padding: 3px;
-moz-border-radius: 3px; -moz-border-radius: 3px;
border-radius: 3px; border-radius: 3px;
@ -1024,6 +1024,10 @@ input#dfrn-url {
float: left; float: left;
} }
.filer-item {
margin-left: 10px;
float: left;
}
.wall-item-links-wrapper { .wall-item-links-wrapper {
float: left; float: left;
@ -1864,11 +1868,11 @@ a.mail-list-link {
margin-top: 10px; margin-top: 10px;
} }
.nets-ul { .nets-ul, .fileas-ul {
list-style-type: none; list-style-type: none;
} }
.nets-ul li { .nets-ul li, .fileas-ul li {
margin-top: 10px; margin-top: 10px;
} }
@ -1879,6 +1883,14 @@ a.mail-list-link {
margin-left: 42px; margin-left: 42px;
} }
.fileas-link {
margin-left: 24px;
}
.fileas-all {
margin-left: 0px;
}
#search-save { #search-save {
margin-left: 5px; margin-left: 5px;
} }
@ -2603,12 +2615,12 @@ aside input[type='text'] {
margin-top: 10px; margin-top: 10px;
} }
.body-tag { .body-tag, .filesavetags {
opacity: 0.5; opacity: 0.5;
filter:alpha(opacity=50); filter:alpha(opacity=50);
} }
.body-tag:hover { .body-tag:hover, .filesavetags:hover {
opacity: 1.0 !important; opacity: 1.0 !important;
filter:alpha(opacity=100) !important; filter:alpha(opacity=100) !important;
} }
@ -2902,6 +2914,11 @@ aside input[type='text'] {
.tagged { background-position: -48px -48px; } .tagged { background-position: -48px -48px; }
.filer-icon {
display: block; width: 16px; height: 16px;
background-image: url('file.gif');
}
.icon.dim { opacity: 0.3;filter:alpha(opacity=30); } .icon.dim { opacity: 0.3;filter:alpha(opacity=30); }
.attachtype { .attachtype {

View File

@ -57,6 +57,9 @@
<a href="#" id="starred-$item.id" onclick="dostar($item.id); return false;" class="star-item icon $item.isstarred" title="$item.star.toggle"></a> <a href="#" id="starred-$item.id" onclick="dostar($item.id); return false;" class="star-item icon $item.isstarred" title="$item.star.toggle"></a>
<a href="#" id="tagger-$item.id" onclick="itemTag($item.id); return false;" class="tag-item icon tagged" title="$item.star.tagger"></a> <a href="#" id="tagger-$item.id" onclick="itemTag($item.id); return false;" class="tag-item icon tagged" title="$item.star.tagger"></a>
{{ endif }} {{ endif }}
{{ if $item.filer }}
<a href="#" id="filer-$item.id" onclick="itemFiler($item.id); return false;" class="filer-item filer-icon" title="$item.filer"></a>
{{ endif }}
<div class="wall-item-delete-wrapper" id="wall-item-delete-wrapper-$item.id" > <div class="wall-item-delete-wrapper" id="wall-item-delete-wrapper-$item.id" >
{{ if $item.drop.dropping }}<a href="item/drop/$item.id" onclick="return confirmDelete();" class="icon drophide" title="$item.drop.delete" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></a>{{ endif }} {{ if $item.drop.dropping }}<a href="item/drop/$item.id" onclick="return confirmDelete();" class="icon drophide" title="$item.drop.delete" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></a>{{ endif }}

View File

@ -61,6 +61,9 @@
<a href="#" id="starred-$item.id" onclick="dostar($item.id); return false;" class="star-item icon $item.isstarred" title="$item.star.toggle"></a> <a href="#" id="starred-$item.id" onclick="dostar($item.id); return false;" class="star-item icon $item.isstarred" title="$item.star.toggle"></a>
<a href="#" id="tagger-$item.id" onclick="itemTag($item.id); return false;" class="tag-item icon tagged" title="$item.star.tagger"></a> <a href="#" id="tagger-$item.id" onclick="itemTag($item.id); return false;" class="tag-item icon tagged" title="$item.star.tagger"></a>
{{ endif }} {{ endif }}
{{ if $item.filer }}
<a href="#" id="filer-$item.id" onclick="itemFiler($item.id); return false;" class="filer-item filer-icon" title="$item.filer"></a>
{{ endif }}
<div class="wall-item-delete-wrapper" id="wall-item-delete-wrapper-$item.id" > <div class="wall-item-delete-wrapper" id="wall-item-delete-wrapper-$item.id" >
{{ if $item.drop.dropping }}<a href="item/drop/$item.id" onclick="return confirmDelete();" class="icon drophide" title="$item.drop.delete" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></a>{{ endif }} {{ if $item.drop.dropping }}<a href="item/drop/$item.id" onclick="return confirmDelete();" class="icon drophide" title="$item.drop.delete" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></a>{{ endif }}

Binary file not shown.

After

Width:  |  Height:  |  Size: 614 B