mirror of
https://github.com/friendica/friendica
synced 2025-05-11 01:04:19 +02:00
commit
b61a7158da
42 changed files with 1474 additions and 158 deletions
|
@ -29,10 +29,33 @@
|
|||
var langSelect = false;
|
||||
var commentBusy = false;
|
||||
|
||||
$(document).ready(function() {
|
||||
$(function() {
|
||||
$.ajaxSetup({cache: false});
|
||||
|
||||
msie = $.browser.msie ;
|
||||
|
||||
|
||||
/* nav update event */
|
||||
$('nav').bind('nav-update', function(e,data){;
|
||||
var net = $(data).find('net').text();
|
||||
if(net == 0) { net = ''; $('#net-update').hide() } else { $('#net-update').show() }
|
||||
$('#net-update').html(net);
|
||||
var home = $(data).find('home').text();
|
||||
if(home == 0) { home = ''; $('#home-update').hide() } else { $('#home-update').show() }
|
||||
$('#home-update').html(home);
|
||||
var mail = $(data).find('mail').text();
|
||||
if(mail == 0) { mail = ''; $('#mail-update').hide() } else { $('#mail-update').show() }
|
||||
$('#mail-update').html(mail);
|
||||
var intro = $(data).find('intro').text();
|
||||
var register = $(data).find('register').text();
|
||||
if(intro == 0) { intro = ''; }
|
||||
if(register != 0 && intro != '') { intro = intro+'/'+register; }
|
||||
if(register != 0 && intro == '') { intro = '0/'+register; }
|
||||
if (intro == '') { $('#notify-update').hide() } else { $('#notify-update').show() }
|
||||
$('#notify-update').html(intro);
|
||||
});
|
||||
|
||||
|
||||
NavUpdate();
|
||||
// Allow folks to stop the ajax page updates with the pause/break key
|
||||
$(document).keypress(function(event) {
|
||||
|
@ -70,23 +93,8 @@
|
|||
if(! stopped) {
|
||||
$.get("ping",function(data) {
|
||||
$(data).find('result').each(function() {
|
||||
var net = $(this).find('net').text();
|
||||
if(net == 0) { net = ''; $('#net-update').hide() } else { $('#net-update').show() }
|
||||
$('#net-update').html(net);
|
||||
var home = $(this).find('home').text();
|
||||
if(home == 0) { home = ''; $('#home-update').hide() } else { $('#home-update').show() }
|
||||
$('#home-update').html(home);
|
||||
var mail = $(this).find('mail').text();
|
||||
if(mail == 0) { mail = ''; $('#mail-update').hide() } else { $('#mail-update').show() }
|
||||
$('#mail-update').html(mail);
|
||||
var intro = $(this).find('intro').text();
|
||||
var register = $(this).find('register').text();
|
||||
if(intro == 0) { intro = ''; }
|
||||
if(register != 0 && intro != '') { intro = intro+'/'+register; }
|
||||
if(register != 0 && intro == '') { intro = '0/'+register; }
|
||||
if (intro == '') { $('#notify-update').hide() } else { $('#notify-update').show() }
|
||||
$('#notify-update').html(intro);
|
||||
|
||||
// send nav-update event
|
||||
$('nav').trigger('nav-update', this);
|
||||
});
|
||||
}) ;
|
||||
}
|
||||
|
@ -279,3 +287,15 @@
|
|||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* sprintf in javascript
|
||||
* "{0} and {1}".format('zero','uno');
|
||||
**/
|
||||
String.prototype.format = function() {
|
||||
var formatted = this;
|
||||
for (var i = 0; i < arguments.length; i++) {
|
||||
var regexp = new RegExp('\\{'+i+'\\}', 'gi');
|
||||
formatted = formatted.replace(regexp, arguments[i]);
|
||||
}
|
||||
return formatted;
|
||||
};
|
||||
|
|
|
@ -107,10 +107,15 @@ function nav(&$a) {
|
|||
$nav['settings'] = array('settings', t('Settings'),"");
|
||||
$nav['profiles'] = array('profiles', t('Profiles'),"");
|
||||
$nav['contacts'] = array('contacts', t('Contacts'),"");
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Admin page
|
||||
*/
|
||||
if (is_site_admin()){
|
||||
$nav['admin'] = array('admin/', t('Admin'), "");
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
|
@ -8,6 +8,18 @@
|
|||
var $nodes = array();
|
||||
var $done = false;
|
||||
|
||||
private function _preg_error(){
|
||||
switch(preg_last_error()){
|
||||
case PREG_INTERNAL_ERROR: die('PREG_INTERNAL_ERROR'); break;
|
||||
case PREG_BACKTRACK_LIMIT_ERROR: die('PREG_BACKTRACK_LIMIT_ERROR'); break;
|
||||
case PREG_RECURSION_LIMIT_ERROR: die('PREG_RECURSION_LIMIT_ERROR'); break;
|
||||
case PREG_BAD_UTF8_ERROR: die('PREG_BAD_UTF8_ERROR'); break;
|
||||
case PREG_BAD_UTF8_OFFSET_ERROR: die('PREG_BAD_UTF8_OFFSET_ERROR'); break;
|
||||
default:
|
||||
die("Unknown preg error.");
|
||||
}
|
||||
}
|
||||
|
||||
private function _build_replace($r, $prefix){
|
||||
|
||||
if(is_array($r) && count($r)) {
|
||||
|
@ -40,11 +52,28 @@
|
|||
/**
|
||||
* IF node
|
||||
*
|
||||
* {{ if <$var> }}...{{ endif }}
|
||||
* {{ if <$var> }}...[{{ else }} ...] {{ endif }}
|
||||
* {{ if <$var>==<val|$var> }}...[{{ else }} ...]{{ endif }}
|
||||
* {{ if <$var>!=<val|$var> }}...[{{ else }} ...]{{ endif }}
|
||||
*/
|
||||
private function _replcb_if($args){
|
||||
$val = $this->_get_var($args[2]);
|
||||
return ($val?$args[3]:"");
|
||||
|
||||
if (strpos($args[2],"==")>0){
|
||||
list($a,$b) = array_map("trim",explode("==",$args[2]));
|
||||
$a = $this->_get_var($a);
|
||||
if ($b[0]=="$") $b = $this->_get_var($b);
|
||||
$val = ($a == $b);
|
||||
} else if (strpos($args[2],"!=")>0){
|
||||
list($a,$b) = explode("!=",$args[2]);
|
||||
$a = $this->_get_var($a);
|
||||
if ($b[0]=="$") $b = $this->_get_var($b);
|
||||
$val = ($a != $b);
|
||||
} else {
|
||||
$val = $this->_get_var($args[2]);
|
||||
}
|
||||
list($strue, $sfalse)= preg_split("|{{ *else *}}|", $args[3]);
|
||||
|
||||
return ($val?$strue:$sfalse);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -58,7 +87,8 @@
|
|||
list($keyname, $varname) = explode("=>",$m[1]);
|
||||
if (is_null($varname)) { $varname=$keyname; $keyname=""; }
|
||||
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]);
|
||||
$ret="";
|
||||
if (!is_array($vals)) return $ret;
|
||||
foreach ($vals as $k=>$v){
|
||||
|
@ -96,13 +126,16 @@
|
|||
private function _replcb_node($m) {
|
||||
$node = $this->nodes[$m[1]];
|
||||
if (method_exists($this, "_replcb_".$node[1])){
|
||||
return call_user_func(array($this, "_replcb_".$node[1]), $node);
|
||||
$s = call_user_func(array($this, "_replcb_".$node[1]), $node);
|
||||
} else {
|
||||
return "";
|
||||
$s = "";
|
||||
}
|
||||
$s = preg_replace_callback('/\|\|([0-9]+)\|\|/', array($this, "_replcb_node"), $s);
|
||||
return $s;
|
||||
}
|
||||
|
||||
private function _replcb($m){
|
||||
//var_dump(array_map('htmlspecialchars', $m));
|
||||
$this->done = false;
|
||||
$this->nodes[] = (array) $m;
|
||||
return "||". (count($this->nodes)-1) ."||";
|
||||
|
@ -112,8 +145,10 @@
|
|||
$this->done = false;
|
||||
while (!$this->done){
|
||||
$this->done=true;
|
||||
$s = preg_replace_callback('|{{ *([a-z]*) *([^}]*)}}([^{]*){{ *end\1 *}}|', array($this, "_replcb"), $s);
|
||||
$s = preg_replace_callback('|{{ *([a-z]*) *([^}]*)}}([^{]*({{ *else *}}[^{]*)?){{ *end\1 *}}|', array($this, "_replcb"), $s);
|
||||
if ($s==Null) $this->_preg_error();
|
||||
}
|
||||
//({{ *else *}}[^{]*)?
|
||||
krsort($this->nodes);
|
||||
return $s;
|
||||
}
|
||||
|
@ -128,6 +163,7 @@
|
|||
#$s = str_replace(array("\n","\r"),array("§n§","§r§"),$s);
|
||||
$s = $this->_build_nodes($s);
|
||||
$s = preg_replace_callback('/\|\|([0-9]+)\|\|/', array($this, "_replcb_node"), $s);
|
||||
if ($s==Null) $this->_preg_error();
|
||||
$s = str_replace($this->search,$this->replace, $s);
|
||||
|
||||
return $s;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue