Merge remote branch 'friendika-master/master'
This commit is contained in:
commit
042aa2e169
25 changed files with 340 additions and 125 deletions
|
@ -10,13 +10,11 @@
|
|||
function oembed_install() {
|
||||
register_hook('jot_tool', 'addon/oembed/oembed.php', 'oembed_hook_jot_tool');
|
||||
register_hook('page_header', 'addon/oembed/oembed.php', 'oembed_hook_page_header');
|
||||
register_hook('bbcode', 'addon/oembed/oembed.php', 'oembed_hook_bbcode');
|
||||
}
|
||||
|
||||
function oembed_uninstall() {
|
||||
unregister_hook('jot_tool', 'addon/oembed/oembed.php', 'oembed_hook_jot_tool');
|
||||
unregister_hook('page_header', 'addon/oembed/oembed.php', 'oembed_hook_page_header');
|
||||
unregister_hook('bbcode', 'addon/oembed/oembed.php', 'oembed_hook_bbcode');
|
||||
}
|
||||
|
||||
function oembed_hook_page_header($a, &$b){
|
||||
|
@ -53,49 +51,7 @@ function oembed_hook_jot_tool($a, &$b) {
|
|||
';
|
||||
}
|
||||
|
||||
function oembed_replacecb($matches){
|
||||
$embedurl=$matches[1];
|
||||
$ourl = "http://oohembed.com/oohembed/?url=".urlencode($embedurl);
|
||||
$txt = fetch_url($ourl);
|
||||
$j = json_decode($txt);
|
||||
$ret="<!-- oembed $embedurl -->";
|
||||
switch ($j->type) {
|
||||
case "video": {
|
||||
if (isset($j->thumbnail_url)) {
|
||||
$tw = (isset($j->thumbnail_width)) ? $j->thumbnail_width:200;
|
||||
$th = (isset($j->thumbnail_height)) ? $j->thumbnail_height:180;
|
||||
$ret = "<a href='#' onclick='this.innerHTML=unescape(\"".urlencode($j->html)."\").replace(/\+/g,\" \"); return false;' >";
|
||||
$ret.= "<img width='$tw' height='$th' src='".$j->thumbnail_url."'>";
|
||||
$ret.= "</a>";
|
||||
} else {
|
||||
$ret=$j->html;
|
||||
}
|
||||
$ret.="<br>";
|
||||
}; break;
|
||||
case "photo": {
|
||||
$ret = "<img width='".$j->width."' height='".$j->height."' src='".$j->url."'>";
|
||||
$ret.="<br>";
|
||||
}; break;
|
||||
case "link": {
|
||||
//$ret = "<a href='".$embedurl."'>".$j->title."</a>";
|
||||
}; break;
|
||||
case "rich": {
|
||||
// not so safe..
|
||||
$ret = "<blockquote>".$j->html."</blockquote>";
|
||||
}; break;
|
||||
}
|
||||
|
||||
$embedlink = (isset($j->title))?$j->title:$embedurl;
|
||||
$ret .= "<a href='$embedurl'>$embedlink</a>";
|
||||
if (isset($j->author_name)) $ret.=" by ".$j->author_name;
|
||||
if (isset($j->provider_name)) $ret.=" on ".$j->provider_name;
|
||||
$ret.="<!-- /oembed $embedurl -->";
|
||||
return $ret;
|
||||
}
|
||||
|
||||
function oembed_hook_bbcode($a, &$text){
|
||||
$text = preg_replace_callback("/\[embed\](.+?)\[\/embed\]/is", oembed_replacecb ,$text);
|
||||
}
|
||||
|
||||
|
||||
?>
|
2
boot.php
2
boot.php
|
@ -2,7 +2,7 @@
|
|||
|
||||
set_time_limit(0);
|
||||
|
||||
define ( 'BUILD_ID', 1033 );
|
||||
define ( 'BUILD_ID', 1034 );
|
||||
define ( 'FRIENDIKA_VERSION', '2.10.0902' );
|
||||
define ( 'DFRN_PROTOCOL_VERSION', '2.0' );
|
||||
|
||||
|
|
|
@ -471,4 +471,8 @@ CREATE TABLE IF NOT EXISTS `event` (
|
|||
`deny_gid` MEDIUMTEXT NOT NULL
|
||||
) ENGINE = MYISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
|
||||
CREATE TABLE IF NOT EXISTS 'cache' (
|
||||
`k` CHAR( 255 ) NOT NULL PRIMARY KEY ,
|
||||
`v` TEXT NOT NULL,
|
||||
`updated` DATETIME NOT NULL
|
||||
) ENGINE = MYISAM DEFAULT CHARSET=utf8;
|
||||
|
|
|
@ -72,4 +72,7 @@ $a->config['system']['rino_encrypt'] = true;
|
|||
$a->config['system']['addon'] = 'js_upload';
|
||||
|
||||
|
||||
|
||||
// Disable oembed embedding
|
||||
// This disable the conversion of [embed]$url[/embed] tag in html
|
||||
// $a->config['system']['no_oembed'] = true;
|
||||
|
||||
|
|
|
@ -17,8 +17,9 @@ function group_select($selname,$selclass,$preselected = false,$size = 4) {
|
|||
$selected = " selected=\"selected\" ";
|
||||
else
|
||||
$selected = '';
|
||||
$trimmed = substr($rr['name'],0,12);
|
||||
|
||||
$o .= "<option value=\"{$rr['id']}\" $selected >{$rr['name']}</option>\r\n";
|
||||
$o .= "<option value=\"{$rr['id']}\" $selected title=\"{$rr['name']}\" >$trimmed</option>\r\n";
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -66,7 +67,9 @@ function contact_select($selname, $selclass, $preselected = false, $size = 4, $p
|
|||
else
|
||||
$selected = '';
|
||||
|
||||
$o .= "<option value=\"{$rr['id']}\" $selected title=\"{$rr['url']}\" >{$rr['name']}</option>\r\n";
|
||||
$trimmed = substr($rr['name'],0,22);
|
||||
|
||||
$o .= "<option value=\"{$rr['id']}\" $selected title=\"{$rr['name']}|{$rr['url']}\" >$trimmed</option>\r\n";
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<?php
|
||||
|
||||
require_once("include/oembed.php");
|
||||
// BBcode 2 HTML was written by WAY2WEB.net
|
||||
// extended to work with Mistpark/Friendika - Mike Macgirvin
|
||||
|
||||
|
@ -93,6 +93,9 @@ function bbcode($Text) {
|
|||
$Text = preg_replace("/\[youtube\]http:\/\/www.youtube.com\/watch\?v\=(.+?)\[\/youtube\]/",'[youtube]$1[/youtube]',$Text);
|
||||
$Text = preg_replace("/\[youtube\](.+?)\[\/youtube\]/", '<object width="425" height="350" type="application/x-shockwave-flash" data="http://www.youtube.com/v/$1" ><param name="movie" value="http://www.youtube.com/v/$1"></param><!--[if IE]><embed src="http://www.youtube.com/v/$1" type="application/x-shockwave-flash" width="425" height="350" /><![endif]--></object>', $Text);
|
||||
|
||||
// oembed tag
|
||||
$Text = oembed_bbcode2html($Text);
|
||||
|
||||
call_hooks('bbcode',$Text);
|
||||
|
||||
return $Text;
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
<?php
|
||||
|
||||
require_once('bbcode.php');
|
||||
require_once('oembed.php');
|
||||
|
||||
function get_feed_for(&$a, $dfrn_id, $owner_nick, $last_update, $direction = 0) {
|
||||
|
||||
|
@ -395,6 +396,8 @@ function get_atom_elements($feed,$item) {
|
|||
$res['body'] = preg_replace('#<object[^>]+>.+?' . 'http://www.youtube.com/((?:v|cp)/[A-Za-z0-9\-_=]+).+?</object>#s',
|
||||
'[youtube]$1[/youtube]', $res['body']);
|
||||
|
||||
$res['body'] = oembed_html2bbcode($res['body']);
|
||||
|
||||
$config = HTMLPurifier_Config::createDefault();
|
||||
$config->set('Cache.DefinitionImpl', null);
|
||||
|
||||
|
|
|
@ -159,11 +159,12 @@ function notifier_run($argv, $argc){
|
|||
|
||||
$r = q("SELECT * FROM `contact` WHERE `id` IN ( $conversant_str ) AND `blocked` = 0 AND `pending` = 0");
|
||||
|
||||
if( ! count($r)){
|
||||
return;
|
||||
}
|
||||
// if( ! count($r)){
|
||||
// return;
|
||||
// }
|
||||
|
||||
$contacts = $r;
|
||||
if(count($r))
|
||||
$contacts = $r;
|
||||
}
|
||||
|
||||
$feed_template = load_view_file('view/atom_feed.tpl');
|
||||
|
@ -255,90 +256,90 @@ function notifier_run($argv, $argc){
|
|||
$recip_str = implode(', ', $recipients);
|
||||
|
||||
|
||||
$r = q("SELECT * FROM `contact` WHERE `id` IN ( %s ) AND `blocked` = 0 ",
|
||||
$r = q("SELECT * FROM `contact` WHERE `id` IN ( %s ) AND `blocked` = 0 AND `pending` = 0 ",
|
||||
dbesc($recip_str)
|
||||
);
|
||||
if(! count($r)){
|
||||
return;
|
||||
}
|
||||
|
||||
// delivery loop
|
||||
|
||||
require_once('include/salmon.php');
|
||||
|
||||
foreach($r as $contact) {
|
||||
if($contact['self'])
|
||||
continue;
|
||||
if(count($r)) {
|
||||
foreach($r as $contact) {
|
||||
if($contact['self'])
|
||||
continue;
|
||||
|
||||
$deliver_status = 0;
|
||||
$deliver_status = 0;
|
||||
|
||||
switch($contact['network']) {
|
||||
case 'dfrn':
|
||||
logger('notifier: dfrndelivery: ' . $contact['name']);
|
||||
$deliver_status = dfrn_deliver($owner,$contact,$atom);
|
||||
|
||||
logger('notifier: dfrn_delivery returns ' . $deliver_status);
|
||||
|
||||
if($deliver_status == (-1)) {
|
||||
logger('notifier: delivery failed: queuing message');
|
||||
// queue message for redelivery
|
||||
q("INSERT INTO `queue` ( `cid`, `created`, `last`, `content`)
|
||||
VALUES ( %d, '%s', '%s', '%s') ",
|
||||
intval($contact['id']),
|
||||
dbesc(datetime_convert()),
|
||||
dbesc(datetime_convert()),
|
||||
dbesc($atom)
|
||||
);
|
||||
}
|
||||
break;
|
||||
case 'stat':
|
||||
if($followup && $contact['notify']) {
|
||||
logger('notifier: slapdelivery: ' . $contact['name']);
|
||||
$deliver_status = slapper($owner,$contact['notify'],$slap);
|
||||
switch($contact['network']) {
|
||||
case 'dfrn':
|
||||
logger('notifier: dfrndelivery: ' . $contact['name']);
|
||||
$deliver_status = dfrn_deliver($owner,$contact,$atom);
|
||||
|
||||
logger('notifier: dfrn_delivery returns ' . $deliver_status);
|
||||
|
||||
if($deliver_status == (-1)) {
|
||||
logger('notifier: delivery failed: queuing message');
|
||||
// queue message for redelivery
|
||||
q("INSERT INTO `queue` ( `cid`, `created`, `last`, `content`)
|
||||
VALUES ( %d, '%s', '%s', '%s') ",
|
||||
intval($contact['id']),
|
||||
dbesc(datetime_convert()),
|
||||
dbesc(datetime_convert()),
|
||||
dbesc($slap)
|
||||
dbesc($atom)
|
||||
);
|
||||
}
|
||||
break;
|
||||
case 'stat':
|
||||
if($followup && $contact['notify']) {
|
||||
logger('notifier: slapdelivery: ' . $contact['name']);
|
||||
$deliver_status = slapper($owner,$contact['notify'],$slap);
|
||||
|
||||
if($deliver_status == (-1)) {
|
||||
// queue message for redelivery
|
||||
q("INSERT INTO `queue` ( `cid`, `created`, `last`, `content`)
|
||||
VALUES ( %d, '%s', '%s', '%s') ",
|
||||
intval($contact['id']),
|
||||
dbesc(datetime_convert()),
|
||||
dbesc(datetime_convert()),
|
||||
dbesc($slap)
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
// only send salmon if public - e.g. if it's ok to notify
|
||||
// a public hub, it's ok to send a salmon
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
// only send salmon if public - e.g. if it's ok to notify
|
||||
// a public hub, it's ok to send a salmon
|
||||
|
||||
if(count($slaps) && $notify_hub) {
|
||||
logger('notifier: slapdelivery: ' . $contact['name']);
|
||||
foreach($slaps as $slappy) {
|
||||
if($contact['notify']) {
|
||||
$deliver_status = slapper($owner,$contact['notify'],$slappy);
|
||||
if($deliver_status == (-1)) {
|
||||
// queue message for redelivery
|
||||
q("INSERT INTO `queue` ( `cid`, `created`, `last`, `content`)
|
||||
VALUES ( %d, '%s', '%s', '%s') ",
|
||||
intval($contact['id']),
|
||||
dbesc(datetime_convert()),
|
||||
dbesc(datetime_convert()),
|
||||
dbesc($slappy)
|
||||
);
|
||||
if(count($slaps) && $notify_hub) {
|
||||
logger('notifier: slapdelivery: ' . $contact['name']);
|
||||
foreach($slaps as $slappy) {
|
||||
if($contact['notify']) {
|
||||
$deliver_status = slapper($owner,$contact['notify'],$slappy);
|
||||
if($deliver_status == (-1)) {
|
||||
// queue message for redelivery
|
||||
q("INSERT INTO `queue` ( `cid`, `created`, `last`, `content`)
|
||||
VALUES ( %d, '%s', '%s', '%s') ",
|
||||
intval($contact['id']),
|
||||
dbesc(datetime_convert()),
|
||||
dbesc(datetime_convert()),
|
||||
dbesc($slappy)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'mail':
|
||||
case 'dspr':
|
||||
case 'feed':
|
||||
default:
|
||||
break;
|
||||
break;
|
||||
case 'mail':
|
||||
case 'dspr':
|
||||
case 'feed':
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -370,6 +371,55 @@ function notifier_run($argv, $argc){
|
|||
}
|
||||
}
|
||||
|
||||
if($notify_hub) {
|
||||
|
||||
/**
|
||||
*
|
||||
* If you have less than 150 dfrn friends and it's a public message,
|
||||
* we'll just go ahead and push them out securely with dfrn/rino.
|
||||
* If you've got more than that, you'll have to rely on PuSH delivery.
|
||||
*
|
||||
*/
|
||||
|
||||
$max_allowed = ((get_config('system','maxpubdeliver') === false) ? 150 : intval(get_config('system','maxdeliver')));
|
||||
|
||||
/**
|
||||
*
|
||||
* Only get the bare essentials and go back for the full record.
|
||||
* If you've got a lot of friends and we grab all the details at once it could exhaust memory.
|
||||
*
|
||||
*/
|
||||
|
||||
$r = q("SELECT `id`, `name` FROM `contact`
|
||||
WHERE `network` = 'dfrn' AND `uid` = %d AND `blocked` = 0 AND `pending` = 0
|
||||
AND `rel` != %d ",
|
||||
intval($owner['uid']),
|
||||
intval(REL_FAN)
|
||||
);
|
||||
|
||||
if((count($r)) && (($max_allowed == 0) || (count($r) < $max_allowed))) {
|
||||
|
||||
foreach($r as $rr) {
|
||||
|
||||
/* Don't deliver to folks who have already been delivered to */
|
||||
|
||||
if(! in_array($rr['id'], $conversants)) {
|
||||
$n = q("SELECT * FROM `contact` WHERE `id` = %d LIMIT 1",
|
||||
intval($rr['id'])
|
||||
);
|
||||
|
||||
if(count($n)) {
|
||||
|
||||
logger('notifier: dfrnpubdelivery: ' . $n[0]['name']);
|
||||
$deliver_status = dfrn_deliver($owner,$n[0],$atom);
|
||||
}
|
||||
}
|
||||
else
|
||||
logger('notifier: dfrnpubdelivery: ignoring ' . $rr['name']);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
97
include/oembed.php
Normal file
97
include/oembed.php
Normal file
|
@ -0,0 +1,97 @@
|
|||
<?php
|
||||
function oembed_replacecb($matches){
|
||||
$embedurl=$matches[1];
|
||||
|
||||
$r = q("SELECT v FROM `cache` WHERE k='%s'",
|
||||
dbesc($embedurl));
|
||||
if(count($r)){
|
||||
$txt = $r[0]['v'];
|
||||
} else {
|
||||
$ourl = "http://oohembed.com/oohembed/?url=".urlencode($embedurl);
|
||||
$txt = fetch_url($ourl);
|
||||
//save in cache
|
||||
q("INSERT INTO `cache` VALUES ('%s','%s','%s')",
|
||||
dbesc($embedurl),
|
||||
dbesc($txt),
|
||||
dbesc(datetime_convert()));
|
||||
}
|
||||
$j = json_decode($txt);
|
||||
$ret="<span class='oembed'>";
|
||||
switch ($j->type) {
|
||||
case "video": {
|
||||
if (isset($j->thumbnail_url)) {
|
||||
$tw = (isset($j->thumbnail_width)) ? $j->thumbnail_width:200;
|
||||
$th = (isset($j->thumbnail_height)) ? $j->thumbnail_height:180;
|
||||
$ret = "<a href='".$embedurl."' onclick='this.innerHTML=unescape(\"".urlencode($j->html)."\").replace(/\+/g,\" \"); return false;' >";
|
||||
$ret.= "<img width='$tw' height='$th' src='".$j->thumbnail_url."'>";
|
||||
$ret.= "</a>";
|
||||
} else {
|
||||
$ret=$j->html;
|
||||
}
|
||||
$ret.="<br>";
|
||||
}; break;
|
||||
case "photo": {
|
||||
$ret = "<img width='".$j->width."' height='".$j->height."' src='".$j->url."'>";
|
||||
$ret.="<br>";
|
||||
}; break;
|
||||
case "link": {
|
||||
//$ret = "<a href='".$embedurl."'>".$j->title."</a>";
|
||||
}; break;
|
||||
case "rich": {
|
||||
// not so safe..
|
||||
$ret = "<blockquote>".$j->html."</blockquote>";
|
||||
}; break;
|
||||
}
|
||||
|
||||
$embedlink = (isset($j->title))?$j->title:$embedurl;
|
||||
$ret .= "<a href='$embedurl' rel='oembed'>$embedlink</a>";
|
||||
if (isset($j->author_name)) $ret.=" by ".$j->author_name;
|
||||
if (isset($j->provider_name)) $ret.=" on ".$j->provider_name;
|
||||
$ret.="</span>";
|
||||
return $ret;
|
||||
}
|
||||
|
||||
function oembed_bbcode2html($text){
|
||||
$stopoembed = get_config("system","no_oembed");
|
||||
if ($stopoembed == true){
|
||||
return preg_replace("/\[embed\](.+?)\[\/embed\]/is", "<!-- oembed $1 --><i>". t('Embedding disabled') ." : $1</i><!-- /oembed $1 -->" ,$text);
|
||||
}
|
||||
return preg_replace_callback("/\[embed\](.+?)\[\/embed\]/is", 'oembed_replacecb' ,$text);
|
||||
}
|
||||
|
||||
|
||||
function oe_build_xpath($attr, $value){
|
||||
// http://westhoffswelt.de/blog/0036_xpath_to_select_html_by_class.html
|
||||
return "contains( normalize-space( @$attr ), ' $value ' ) or substring( normalize-space( @$attr ), 1, string-length( '$value' ) + 1 ) = '$value ' or substring( normalize-space( @$attr ), string-length( @$attr ) - string-length( '$value' ) ) = ' $value' or @$attr = '$value'";
|
||||
}
|
||||
|
||||
function oe_get_inner_html( $node ) {
|
||||
$innerHTML= '';
|
||||
$children = $node->childNodes;
|
||||
foreach ($children as $child) {
|
||||
$innerHTML .= $child->ownerDocument->saveXML( $child );
|
||||
}
|
||||
return $innerHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Find <span class='oembed'>..<a href='url' rel='oembed'>..</a></span>
|
||||
* and replace it with [embed]url[/embed]
|
||||
*/
|
||||
function oembed_html2bbcode($text) {
|
||||
$dom = DOMDocument::loadHTML($text);
|
||||
$xpath = new DOMXPath($dom);
|
||||
$attr = "oembed";
|
||||
|
||||
$xattr = oe_build_xpath("class","oembed");
|
||||
$entries = $xpath->query("//span[$xattr]");
|
||||
|
||||
$xattr = oe_build_xpath("rel","oembed");
|
||||
foreach($entries as $e) {
|
||||
$href = $xpath->evaluate("a[$xattr]/@href", $e)->item(0)->nodeValue;
|
||||
if(!is_null($href)) $e->parentNode->replaceChild(new DOMText("[embed]".$href."[embed]"), $e);
|
||||
}
|
||||
return oe_get_inner_html( $dom->getElementsByTagName("body")->item(0) );
|
||||
}
|
||||
|
||||
?>
|
|
@ -30,6 +30,10 @@ function poller_run($argv, $argc){
|
|||
$php_path = ((x($a->config,'php_path') && strlen($a->config['php_path'])) ? $a->config['php_path'] : 'php');
|
||||
//proc_close(proc_open("\"$php_path\" \"include/queue.php\" &", array(), $foo));
|
||||
proc_run($php_path,"include/queue.php");
|
||||
|
||||
// clear old cache
|
||||
q("DELETE FROM `cache` WHERE `updated`<'%s'",
|
||||
dbesc(datetime_convert('UTC','UTC',"now - 30 days")));
|
||||
|
||||
|
||||
$hub_update = false;
|
||||
|
|
31
mod/item.php
31
mod/item.php
|
@ -422,12 +422,39 @@ function item_post(&$a) {
|
|||
|
||||
logger('mod_item: notifier invoked: ' . "\"$php_path\" \"include/notifier.php\" \"$notify_type\" \"$post_id\" &");
|
||||
|
||||
proc_run($php_path, "include/notifier.php", $notify_type, "$post_id");
|
||||
proc_run($php_path, "include/notifier.php", $notify_type, "$post_id");
|
||||
|
||||
$datarray['id'] = $post_id;
|
||||
|
||||
call_hooks('post_local_end', $datarray);
|
||||
|
||||
|
||||
if(strlen($emailcc) && $profile_uid == local_user()) {
|
||||
$erecips = explode(',', $emailcc);
|
||||
if(count($erecips)) {
|
||||
foreach($erecips as $recip) {
|
||||
$addr = trim($recip);
|
||||
if(! strlen($addr))
|
||||
continue;
|
||||
$disclaimer = '<hr />' . t('This message was sent to you by ') . $a->user['username']
|
||||
. t(', a member of the Friendika social network.') . '<br />';
|
||||
$disclaimer .= t('You may visit them online at') . ' '
|
||||
. $a->get_baseurl() . '/profile/' . $a->user['nickname'] . '<br />';
|
||||
$disclaimer .= t('Please contact the sender by replying to this post if you do not wish to receive these messages.') . '<br />';
|
||||
|
||||
$subject = '[Friendika]' . ' ' . $a->user['username'] . ' ' . t('posted an update.');
|
||||
$headers = 'From: ' . $a->user['username'] . ' <' . $a->user['email'] . '>' . "\n";
|
||||
$headers .= 'MIME-Version: 1.0' . "\n";
|
||||
$headers .= 'Content-Type: text/html; charset=UTF-8' . "\n";
|
||||
$headers .= 'Content-Transfer-Encoding: 8bit' . "\n\n";
|
||||
$link = '<a href="' . $a->get_baseurl() . '/profile/' . $a->user['nickname'] . '"><img src="' . $author['thumb'] . '" alt="' . $a->user['username'] . '" /></a><br /><br />';
|
||||
$html = prepare_body($datarray);
|
||||
$message = '<html><body>' . $link . $html . $disclaimer . '</body></html>';
|
||||
@mail($addr, $subject, $message, $headers);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
goaway($a->get_baseurl() . "/" . $_POST['return'] );
|
||||
return; // NOTREACHED
|
||||
|
|
|
@ -87,6 +87,8 @@ function network_content(&$a, $update = 0) {
|
|||
'$baseurl' => $a->get_baseurl(),
|
||||
'$defloc' => $a->user['default-location'],
|
||||
'$visitor' => 'block',
|
||||
'$emailcc' => t('CC: email addresses'),
|
||||
'$emtitle' => t('Example: bob@example.com, mary@example.com'),
|
||||
'$lockstate' => $lockstate,
|
||||
'$acl' => populate_acl((($group) ? $group_acl : $a->user), $celeb),
|
||||
'$bang' => (($group) ? '!' : ''),
|
||||
|
|
|
@ -144,6 +144,8 @@ function profile_content(&$a, $update = 0) {
|
|||
'$return_path' => $a->cmd,
|
||||
'$visitor' => (($is_owner || $commvisitor) ? 'block' : 'none'),
|
||||
'$lockstate' => $lockstate,
|
||||
'$emailcc' => t('CC: email addresses'),
|
||||
'$emtitle' => t('Example: bob@example.com, mary@example.com'),
|
||||
'$bang' => '',
|
||||
'$acl' => (($is_owner) ? populate_acl($a->user, $celeb) : ''),
|
||||
'$profile_uid' => $a->profile['profile_uid'],
|
||||
|
|
|
@ -36,7 +36,7 @@ link_desc:"Insert/edit link",
|
|||
unlink_desc:"Unlink",
|
||||
image_desc:"Insert/edit image",
|
||||
cleanup_desc:"Cleanup messy code",
|
||||
code_desc:"Edit HTML Source",
|
||||
code_desc:"Edit BBcode Source",
|
||||
sub_desc:"Subscript",
|
||||
sup_desc:"Superscript",
|
||||
hr_desc:"Insert horizontal ruler",
|
||||
|
|
|
@ -10,7 +10,7 @@ about_version:"Version",
|
|||
about_loaded:"Loaded plugins",
|
||||
anchor_title:"Insert/edit anchor",
|
||||
anchor_name:"Anchor name",
|
||||
code_title:"HTML Source Editor",
|
||||
code_title:"BBcode Source Editor",
|
||||
code_wordwrap:"Word wrap",
|
||||
colorpicker_title:"Select a color",
|
||||
colorpicker_picker_tab:"Picker",
|
||||
|
|
|
@ -320,3 +320,11 @@ function update_1031() {
|
|||
function update_1032() {
|
||||
q("ALTER TABLE `profile` ADD `pdesc` CHAR( 255 ) NOT NULL AFTER `name` ");
|
||||
}
|
||||
|
||||
function update_1033() {
|
||||
q("CREATE TABLE IF NOT EXISTS `cache` (
|
||||
`k` CHAR( 255 ) NOT NULL PRIMARY KEY ,
|
||||
`v` TEXT NOT NULL,
|
||||
`updated` DATETIME NOT NULL
|
||||
) ENGINE = MYISAM DEFAULT CHARSET=utf8;");
|
||||
}
|
||||
|
|
|
@ -40,8 +40,12 @@
|
|||
<div id="profile-rotator-wrapper" style="display: $visitor;" >
|
||||
<img id="profile-rotator" src="images/rotator.gif" alt="Bitte warten" title="Bitte warten" style="display: none;" />
|
||||
</div>
|
||||
<div id="profile-jot-perms" class="profile-jot-perms" style="display: $visitor;" ><img id="jot-perms-icon" src="images/$lockstate_icon.gif" alt="Berechtigungseinstellungen" title="Berechtigungseinstellungen" onClick="openClose('profile-jot-acl-wrapper');" />$bang</div>
|
||||
<div id="profile-jot-perms" class="profile-jot-perms" style="display: $visitor;" ><img id="jot-perms-icon" src="images/$lockstate_icon.gif" alt="Berechtigungseinstellungen" title="Berechtigungseinstellungen" onClick="openClose('profile-jot-acl-wrapper'); openClose('profile-jot-email-wrapper');" />$bang</div>
|
||||
<div id="profile-jot-perms-end"></div>
|
||||
<div id="profile-jot-email-wrapper" style="display: none;" >
|
||||
<div id="profile-jot-email-label">$emailcc</div><input type="text" name="emailcc" id="profile-jot-email" title="$emtitle">
|
||||
<div id="profile-jot-email-end"></div>
|
||||
</div>
|
||||
<div id="profile-jot-acl-wrapper" style="display: none;" >$acl</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -2,17 +2,20 @@
|
|||
<script language="javascript" type="text/javascript" src="$baseurl/tinymce/jscripts/tiny_mce/tiny_mce_src.js"></script>
|
||||
<script language="javascript" type="text/javascript">
|
||||
|
||||
var editor;
|
||||
|
||||
tinyMCE.init({
|
||||
theme : "advanced",
|
||||
mode : "specific_textareas",
|
||||
editor_selector: /(profile-jot-text|prvmail-text)/,
|
||||
plugins : "bbcode",
|
||||
theme_advanced_buttons1 : "bold,italic,underline,undo,redo,link,unlink,image,forecolor,formatselect",
|
||||
plugins : "bbcode,paste",
|
||||
theme_advanced_buttons1 : "bold,italic,underline,undo,redo,link,unlink,image,forecolor,formatselect,code",
|
||||
theme_advanced_buttons2 : "",
|
||||
theme_advanced_buttons3 : "",
|
||||
theme_advanced_toolbar_location : "top",
|
||||
theme_advanced_toolbar_align : "center",
|
||||
theme_advanced_blockformats : "blockquote,code",
|
||||
paste_text_sticky : true,
|
||||
entity_encoding : "raw",
|
||||
add_unload_trigger : false,
|
||||
remove_linebreaks : false,
|
||||
|
@ -43,8 +46,13 @@ tinyMCE.init({
|
|||
$('#character-counter').addClass('red');
|
||||
}
|
||||
$('#character-counter').text(text);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
ed.onInit.add(function(ed) {
|
||||
ed.pasteAsPlainText = true;
|
||||
});
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
</script>
|
||||
|
|
|
@ -40,8 +40,12 @@
|
|||
<div id="profile-rotator-wrapper" style="display: $visitor;" >
|
||||
<img id="profile-rotator" src="images/rotator.gif" alt="Please wait" title="Please wait" style="display: none;" />
|
||||
</div>
|
||||
<div id="profile-jot-perms" class="profile-jot-perms" style="display: $visitor;" ><img id="jot-perms-icon" src="images/$lockstate_icon.gif" alt="Permission Settings" title="Permission Settings" onClick="openClose('profile-jot-acl-wrapper');" />$bang</div>
|
||||
<div id="profile-jot-perms" class="profile-jot-perms" style="display: $visitor;" ><img id="jot-perms-icon" src="images/$lockstate_icon.gif" alt="Permission Settings" title="Permission Settings" onClick="openClose('profile-jot-acl-wrapper'); openClose('profile-jot-email-wrapper');" />$bang</div>
|
||||
<div id="profile-jot-perms-end"></div>
|
||||
<div id="profile-jot-email-wrapper" style="display: none;" >
|
||||
<div id="profile-jot-email-label">$emailcc</div><input type="text" name="emailcc" id="profile-jot-email" title="$emtitle">
|
||||
<div id="profile-jot-email-end"></div>
|
||||
</div>
|
||||
<div id="profile-jot-acl-wrapper" style="display: none;" >$acl</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -41,8 +41,13 @@
|
|||
<div id="profile-rotator-wrapper" style="display: $visitor;" >
|
||||
<img id="profile-rotator" src="images/rotator.gif" alt="Please wait" title="Please wait" style="display: none;" />
|
||||
</div>
|
||||
<div id="profile-jot-perms" class="profile-jot-perms" style="display: $visitor;" ><img id="jot-perms-icon" src="images/$lockstate_icon.gif" alt="Permission Settings" title="Permission Settings" onClick="openClose('profile-jot-acl-wrapper');" />$bang</div>
|
||||
<div id="profile-jot-perms" class="profile-jot-perms" style="display: $visitor;" ><img id="jot-perms-icon" src="images/$lockstate_icon.gif" alt="Permission Settings" title="Permission Settings" onClick="openClose('profile-jot-acl-wrapper'); openClose('profile-jot-email-wrapper');" />$bang</div>
|
||||
<div id="profile-jot-perms-end"></div>
|
||||
<div id="profile-jot-email-wrapper" style="display: none;" >
|
||||
<div id="profile-jot-email-label">$emailcc</div><input type="text" name="emailcc" id="profile-jot-email" title="$emtitle">
|
||||
<div id="profile-jot-email-end"></div>
|
||||
</div>
|
||||
|
||||
<div id="profile-jot-acl-wrapper" style="display: none;" >$acl</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -40,8 +40,13 @@
|
|||
<div id="profile-rotator-wrapper" style="display: $visitor;" >
|
||||
<img id="profile-rotator" src="images/rotator.gif" alt="Attendi" title="Attendi" style="display: none;" />
|
||||
</div>
|
||||
<div id="profile-jot-perms" class="profile-jot-perms" style="display: $visitor;" ><img id="jot-perms-icon" src="images/$lockstate_icon.gif" alt="Impostazione permessi" title="Impostazione permessi" onClick="openClose('profile-jot-acl-wrapper');" />$bang</div>
|
||||
<div id="profile-jot-perms" class="profile-jot-perms" style="display: $visitor;" ><img id="jot-perms-icon" src="images/$lockstate_icon.gif" alt="Impostazione permessi" title="Impostazione permessi" onClick="openClose('profile-jot-acl-wrapper'); openClose('profile-jot-email-wrapper');" />$bang</div>
|
||||
<div id="profile-jot-perms-end"></div>
|
||||
<div id="profile-jot-email-wrapper" style="display: none;" >
|
||||
<div id="profile-jot-email-label">$emailcc</div><input type="text" name="emailcc" id="profile-jot-email" title="$emtitle">
|
||||
<div id="profile-jot-email-end"></div>
|
||||
</div>
|
||||
|
||||
<div id="profile-jot-acl-wrapper" style="display: none;" >$acl</div>
|
||||
</div>
|
||||
|
||||
|
|
BIN
view/theme/purplezero/border.jpg
Normal file
BIN
view/theme/purplezero/border.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 364 B |
BIN
view/theme/purplezero/head.jpg
Normal file
BIN
view/theme/purplezero/head.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
BIN
view/theme/purplezero/shiny.png
Normal file
BIN
view/theme/purplezero/shiny.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 320 B |
27
view/theme/purplezero/style.css
Normal file
27
view/theme/purplezero/style.css
Normal file
|
@ -0,0 +1,27 @@
|
|||
@import url('../duepuntozero/style.css');
|
||||
|
||||
a, a:visited { color: #7433af; text-decoration: none; }
|
||||
a:hover {text-decoration: underline; }
|
||||
|
||||
|
||||
body { background-image: url(head.jpg); }
|
||||
aside( background-image: url(border.jpg); }
|
||||
section { background-image: url(border.jpg); }
|
||||
#profile-tabs-wrapper { background-image: url(head.jpg); }
|
||||
div.wall-item-content-wrapper.shiny { background-image: url('shiny.png'); }
|
||||
|
||||
|
||||
.nav-commlink, .nav-login-link {
|
||||
background-color: #aed3b2;
|
||||
|
||||
}
|
||||
|
||||
.fakelink, .fakelink:visited {
|
||||
color: #7433af;
|
||||
}
|
||||
|
||||
.wall-item-name-link {
|
||||
color: #7433af;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in a new issue