Merge branch 'master' of https://github.com/annando/friendica
Conflicts: include/poller.php
This commit is contained in:
commit
cc9ce39e3f
95
boot.php
95
boot.php
|
@ -12,10 +12,9 @@ require_once('library/Mobile_Detect/Mobile_Detect.php');
|
||||||
require_once('include/features.php');
|
require_once('include/features.php');
|
||||||
|
|
||||||
define ( 'FRIENDICA_PLATFORM', 'Friendica');
|
define ( 'FRIENDICA_PLATFORM', 'Friendica');
|
||||||
define ( 'FRIENDICA_VERSION', '3.1.1572' );
|
define ( 'FRIENDICA_VERSION', '3.1.1589' );
|
||||||
define ( 'DFRN_PROTOCOL_VERSION', '2.23' );
|
define ( 'DFRN_PROTOCOL_VERSION', '2.23' );
|
||||||
define ( 'DB_UPDATE_VERSION', 1159 );
|
define ( 'DB_UPDATE_VERSION', 1159 );
|
||||||
|
|
||||||
define ( 'EOL', "<br />\r\n" );
|
define ( 'EOL', "<br />\r\n" );
|
||||||
define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );
|
define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );
|
||||||
|
|
||||||
|
@ -385,8 +384,14 @@ if(! class_exists('App')) {
|
||||||
'template_engine' => 'internal',
|
'template_engine' => 'internal',
|
||||||
);
|
);
|
||||||
|
|
||||||
public $smarty3_ldelim = '{{';
|
private $ldelim = array(
|
||||||
public $smarty3_rdelim = '}}';
|
'internal' => '',
|
||||||
|
'smarty3' => '{{'
|
||||||
|
);
|
||||||
|
private $rdelim = array(
|
||||||
|
'internal' => '',
|
||||||
|
'smarty3' => '}}'
|
||||||
|
);
|
||||||
|
|
||||||
private $scheme;
|
private $scheme;
|
||||||
private $hostname;
|
private $hostname;
|
||||||
|
@ -617,17 +622,17 @@ if(! class_exists('App')) {
|
||||||
*/
|
*/
|
||||||
if(!isset($this->page['htmlhead']))
|
if(!isset($this->page['htmlhead']))
|
||||||
$this->page['htmlhead'] = '';
|
$this->page['htmlhead'] = '';
|
||||||
$tpl = get_markup_template('head.tpl');
|
|
||||||
|
|
||||||
// If we're using Smarty, then doing replace_macros() will replace
|
// If we're using Smarty, then doing replace_macros() will replace
|
||||||
// any unrecognized variables with a blank string. Since we delay
|
// any unrecognized variables with a blank string. Since we delay
|
||||||
// replacing $stylesheet until later, we need to replace it now
|
// replacing $stylesheet until later, we need to replace it now
|
||||||
// with another variable name
|
// with another variable name
|
||||||
if($this->theme['template_engine'] === 'smarty3')
|
if($this->theme['template_engine'] === 'smarty3')
|
||||||
$stylesheet = $this->smarty3_ldelim . '$stylesheet' . $this->smarty3_rdelim;
|
$stylesheet = $this->get_template_ldelim('smarty3') . '$stylesheet' . $this->get_template_rdelim('smarty3');
|
||||||
else
|
else
|
||||||
$stylesheet = '$stylesheet';
|
$stylesheet = '$stylesheet';
|
||||||
|
|
||||||
|
$tpl = get_markup_template('head.tpl');
|
||||||
$this->page['htmlhead'] = replace_macros($tpl,array(
|
$this->page['htmlhead'] = replace_macros($tpl,array(
|
||||||
'$baseurl' => $this->get_baseurl(), // FIXME for z_path!!!!
|
'$baseurl' => $this->get_baseurl(), // FIXME for z_path!!!!
|
||||||
'$local_user' => local_user(),
|
'$local_user' => local_user(),
|
||||||
|
@ -688,6 +693,31 @@ if(! class_exists('App')) {
|
||||||
return $this->cached_profile_image[$avatar_image];
|
return $this->cached_profile_image[$avatar_image];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function get_template_engine() {
|
||||||
|
return $this->theme['template_engine'];
|
||||||
|
}
|
||||||
|
|
||||||
|
function set_template_engine($engine = 'internal') {
|
||||||
|
|
||||||
|
$this->theme['template_engine'] = 'internal';
|
||||||
|
|
||||||
|
switch($engine) {
|
||||||
|
case 'smarty3':
|
||||||
|
if(is_writable('view/smarty3/'))
|
||||||
|
$this->theme['template_engine'] = 'smarty3';
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_template_ldelim($engine = 'internal') {
|
||||||
|
return $this->ldelim[$engine];
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_template_rdelim($engine = 'internal') {
|
||||||
|
return $this->rdelim[$engine];
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -776,16 +806,12 @@ function is_ajax() {
|
||||||
|
|
||||||
// Primarily involved with database upgrade, but also sets the
|
// Primarily involved with database upgrade, but also sets the
|
||||||
// base url for use in cmdline programs which don't have
|
// base url for use in cmdline programs which don't have
|
||||||
// $_SERVER variables, and synchronising the state of installed plugins.
|
// $_SERVER variables
|
||||||
|
|
||||||
|
|
||||||
if(! function_exists('check_config')) {
|
if(! function_exists('check_config')) {
|
||||||
function check_config(&$a) {
|
function check_config(&$a) {
|
||||||
|
|
||||||
$build = get_config('system','build');
|
|
||||||
if(! x($build))
|
|
||||||
$build = set_config('system','build',DB_UPDATE_VERSION);
|
|
||||||
|
|
||||||
$url = get_config('system','url');
|
$url = get_config('system','url');
|
||||||
|
|
||||||
// if the url isn't set or the stored url is radically different
|
// if the url isn't set or the stored url is radically different
|
||||||
|
@ -800,6 +826,10 @@ if(! function_exists('check_config')) {
|
||||||
$url = set_config('system','url',$a->get_baseurl());
|
$url = set_config('system','url',$a->get_baseurl());
|
||||||
|
|
||||||
|
|
||||||
|
$build = get_config('system','build');
|
||||||
|
if(! x($build))
|
||||||
|
$build = set_config('system','build',DB_UPDATE_VERSION);
|
||||||
|
|
||||||
if($build != DB_UPDATE_VERSION) {
|
if($build != DB_UPDATE_VERSION) {
|
||||||
$stored = intval($build);
|
$stored = intval($build);
|
||||||
$current = intval(DB_UPDATE_VERSION);
|
$current = intval(DB_UPDATE_VERSION);
|
||||||
|
@ -848,9 +878,10 @@ if(! function_exists('check_config')) {
|
||||||
'$error' => sprintf( t('Update %s failed. See error logs.'), $x)
|
'$error' => sprintf( t('Update %s failed. See error logs.'), $x)
|
||||||
));
|
));
|
||||||
$subject=sprintf(t('Update Error at %s'), $a->get_baseurl());
|
$subject=sprintf(t('Update Error at %s'), $a->get_baseurl());
|
||||||
|
require_once('include/email.php');
|
||||||
|
$subject = email_header_encode($subject,'UTF-8');
|
||||||
mail($a->config['admin_email'], $subject, $email_msg,
|
mail($a->config['admin_email'], $subject, $email_msg,
|
||||||
'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME'] . "\n"
|
'From: ' . 'Administrator' . '@' . $_SERVER['SERVER_NAME'] . "\n"
|
||||||
. 'Content-type: text/plain; charset=UTF-8' . "\n"
|
. 'Content-type: text/plain; charset=UTF-8' . "\n"
|
||||||
. 'Content-transfer-encoding: 8bit' );
|
. 'Content-transfer-encoding: 8bit' );
|
||||||
//try the logger
|
//try the logger
|
||||||
|
@ -867,6 +898,14 @@ if(! function_exists('check_config')) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if(! function_exists('check_plugins')) {
|
||||||
|
function check_plugins(&$a) {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Synchronise plugins:
|
* Synchronise plugins:
|
||||||
|
@ -1108,6 +1147,10 @@ if(! function_exists('get_max_import_size')) {
|
||||||
* Profile information is placed in the App structure for later retrieval.
|
* Profile information is placed in the App structure for later retrieval.
|
||||||
* Honours the owner's chosen theme for display.
|
* Honours the owner's chosen theme for display.
|
||||||
*
|
*
|
||||||
|
* IMPORTANT: Should only be run in the _init() functions of a module. That ensures that
|
||||||
|
* the theme is chosen before the _init() function of a theme is run, which will usually
|
||||||
|
* load a lot of theme-specific content
|
||||||
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if(! function_exists('profile_load')) {
|
if(! function_exists('profile_load')) {
|
||||||
|
@ -1167,7 +1210,7 @@ if(! function_exists('profile_load')) {
|
||||||
|
|
||||||
if(! $r[0]['is-default']) {
|
if(! $r[0]['is-default']) {
|
||||||
$x = q("select `pub_keywords` from `profile` where uid = %d and `is-default` = 1 limit 1",
|
$x = q("select `pub_keywords` from `profile` where uid = %d and `is-default` = 1 limit 1",
|
||||||
intval($profile_uid)
|
intval($r[0]['profile_uid'])
|
||||||
);
|
);
|
||||||
if($x && count($x))
|
if($x && count($x))
|
||||||
$r[0]['pub_keywords'] = $x[0]['pub_keywords'];
|
$r[0]['pub_keywords'] = $x[0]['pub_keywords'];
|
||||||
|
@ -1175,7 +1218,7 @@ if(! function_exists('profile_load')) {
|
||||||
|
|
||||||
$a->profile = $r[0];
|
$a->profile = $r[0];
|
||||||
|
|
||||||
$a->profile['mobile-theme'] = get_pconfig($profile_uid, 'system', 'mobile_theme');
|
$a->profile['mobile-theme'] = get_pconfig($a->profile['profile_uid'], 'system', 'mobile_theme');
|
||||||
|
|
||||||
|
|
||||||
$a->page['title'] = $a->profile['name'] . " @ " . $a->config['sitename'];
|
$a->page['title'] = $a->profile['name'] . " @ " . $a->config['sitename'];
|
||||||
|
@ -1186,6 +1229,8 @@ if(! function_exists('profile_load')) {
|
||||||
* load/reload current theme info
|
* load/reload current theme info
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
$a->set_template_engine(); // reset the template engine to the default in case the user's theme doesn't specify one
|
||||||
|
|
||||||
$theme_info_file = "view/theme/".current_theme()."/theme.php";
|
$theme_info_file = "view/theme/".current_theme()."/theme.php";
|
||||||
if (file_exists($theme_info_file)){
|
if (file_exists($theme_info_file)){
|
||||||
require_once($theme_info_file);
|
require_once($theme_info_file);
|
||||||
|
@ -1344,8 +1389,6 @@ if(! function_exists('profile_sidebar')) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$tpl = get_markup_template('profile_vcard.tpl');
|
|
||||||
|
|
||||||
$p = array();
|
$p = array();
|
||||||
foreach($profile as $k => $v) {
|
foreach($profile as $k => $v) {
|
||||||
$k = str_replace('-','_',$k);
|
$k = str_replace('-','_',$k);
|
||||||
|
@ -1355,6 +1398,7 @@ if(! function_exists('profile_sidebar')) {
|
||||||
if($a->theme['template_engine'] === 'internal')
|
if($a->theme['template_engine'] === 'internal')
|
||||||
$location = template_escape($location);
|
$location = template_escape($location);
|
||||||
|
|
||||||
|
$tpl = get_markup_template('profile_vcard.tpl');
|
||||||
$o .= replace_macros($tpl, array(
|
$o .= replace_macros($tpl, array(
|
||||||
'$profile' => $p,
|
'$profile' => $p,
|
||||||
'$connect' => $connect,
|
'$connect' => $connect,
|
||||||
|
@ -1612,7 +1656,7 @@ if(! function_exists('current_theme')) {
|
||||||
// $mobile_detect = new Mobile_Detect();
|
// $mobile_detect = new Mobile_Detect();
|
||||||
// $is_mobile = $mobile_detect->isMobile() || $mobile_detect->isTablet();
|
// $is_mobile = $mobile_detect->isMobile() || $mobile_detect->isTablet();
|
||||||
$is_mobile = $a->is_mobile || $a->is_tablet;
|
$is_mobile = $a->is_mobile || $a->is_tablet;
|
||||||
|
|
||||||
if($is_mobile) {
|
if($is_mobile) {
|
||||||
if(isset($_SESSION['show-mobile']) && !$_SESSION['show-mobile']) {
|
if(isset($_SESSION['show-mobile']) && !$_SESSION['show-mobile']) {
|
||||||
$system_theme = '';
|
$system_theme = '';
|
||||||
|
@ -1947,16 +1991,9 @@ function clear_cache($basepath = "", $path = "") {
|
||||||
}
|
}
|
||||||
|
|
||||||
function set_template_engine(&$a, $engine = 'internal') {
|
function set_template_engine(&$a, $engine = 'internal') {
|
||||||
|
// This function is no longer necessary, but keep it as a wrapper to the class method
|
||||||
|
// to avoid breaking themes again unnecessarily
|
||||||
|
|
||||||
$a->theme['template_engine'] = 'internal';
|
$a->set_template_engine($engine);
|
||||||
|
|
||||||
if(is_writable('view/smarty3/')) {
|
|
||||||
switch($engine) {
|
|
||||||
case 'smarty3':
|
|
||||||
$a->theme['template_engine'] = 'smarty3';
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
14
database.sql
14
database.sql
|
@ -241,6 +241,20 @@ CREATE TABLE IF NOT EXISTS `deliverq` (
|
||||||
|
|
||||||
-- --------------------------------------------------------
|
-- --------------------------------------------------------
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `dsprphotoq`
|
||||||
|
--
|
||||||
|
|
||||||
|
CREATE TABLE `dsprphotoq` (
|
||||||
|
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
`uid` int(11) NOT NULL,
|
||||||
|
`msg` mediumtext NOT NULL,
|
||||||
|
`attempt` tinyint(4) NOT NULL,
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
|
-- --------------------------------------------------------
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Table structure for table `event`
|
-- Table structure for table `event`
|
||||||
--
|
--
|
||||||
|
|
|
@ -42,6 +42,10 @@ function z_mime_content_type($filename) {
|
||||||
'qt' => 'video/quicktime',
|
'qt' => 'video/quicktime',
|
||||||
'mov' => 'video/quicktime',
|
'mov' => 'video/quicktime',
|
||||||
'ogg' => 'application/ogg',
|
'ogg' => 'application/ogg',
|
||||||
|
'mp4' => 'video/mp4',
|
||||||
|
'avi' => 'video/x-msvideo',
|
||||||
|
'wmv' => 'video/x-ms-wmv',
|
||||||
|
'wma' => 'audio/x-ms-wma',
|
||||||
|
|
||||||
// adobe
|
// adobe
|
||||||
'pdf' => 'application/pdf',
|
'pdf' => 'application/pdf',
|
||||||
|
|
|
@ -254,12 +254,22 @@ function bb_ShareAttributes($match) {
|
||||||
if ($matches[1] != "")
|
if ($matches[1] != "")
|
||||||
$profile = $matches[1];
|
$profile = $matches[1];
|
||||||
|
|
||||||
|
$posted = "";
|
||||||
|
preg_match("/posted='(.*?)'/ism", $attributes, $matches);
|
||||||
|
if ($matches[1] != "")
|
||||||
|
$posted = $matches[1];
|
||||||
|
|
||||||
|
preg_match('/posted="(.*?)"/ism', $attributes, $matches);
|
||||||
|
if ($matches[1] != "")
|
||||||
|
$posted = $matches[1];
|
||||||
|
$reldate = (($posted) ? " " . relative_date($posted) : '');
|
||||||
|
|
||||||
$headline = '<div class="shared_header">';
|
$headline = '<div class="shared_header">';
|
||||||
|
|
||||||
if ($avatar != "")
|
if ($avatar != "")
|
||||||
$headline .= '<img src="'.$avatar.'" height="32" width="32" >';
|
$headline .= '<img src="'.$avatar.'" height="32" width="32" >';
|
||||||
|
|
||||||
$headline .= sprintf(t('<span><a href="%s" target="external-link">%s</a> wrote the following <a href="%s" target="external-link">post</a>:</span>'), $profile, $author, $link);
|
$headline .= sprintf(t('<span><a href="%s" target="external-link">%s</a> wrote the following <a href="%s" target="external-link">post</a>'.$reldate.':</span>'), $profile, $author, $link);
|
||||||
|
|
||||||
$headline .= "</div>";
|
$headline .= "</div>";
|
||||||
|
|
||||||
|
@ -312,6 +322,9 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
|
||||||
$Text = preg_replace("/\s?\[share(.*?)\]\s?(.*?)\s?\[\/share\]\s?/ism","[share$1]$2[/share]",$Text);
|
$Text = preg_replace("/\s?\[share(.*?)\]\s?(.*?)\s?\[\/share\]\s?/ism","[share$1]$2[/share]",$Text);
|
||||||
$Text = preg_replace("/\s?\[quote(.*?)\]\s?(.*?)\s?\[\/quote\]\s?/ism","[quote$1]$2[/quote]",$Text);
|
$Text = preg_replace("/\s?\[quote(.*?)\]\s?(.*?)\s?\[\/quote\]\s?/ism","[quote$1]$2[/quote]",$Text);
|
||||||
|
|
||||||
|
$Text = preg_replace("/\n\[code\]/ism", "[code]", $Text);
|
||||||
|
$Text = preg_replace("/\[\/code\]\n/ism", "[/code]", $Text);
|
||||||
|
|
||||||
// when the content is meant exporting to other systems then remove the avatar picture since this doesn't really look good on these systems
|
// when the content is meant exporting to other systems then remove the avatar picture since this doesn't really look good on these systems
|
||||||
if (!$tryoembed)
|
if (!$tryoembed)
|
||||||
$Text = preg_replace("/\[share(.*?)avatar\s?=\s?'.*?'\s?(.*?)\]\s?(.*?)\s?\[\/share\]\s?/ism","\n[share$1$2]$3[/share]",$Text);
|
$Text = preg_replace("/\[share(.*?)avatar\s?=\s?'.*?'\s?(.*?)\]\s?(.*?)\s?\[\/share\]\s?/ism","\n[share$1$2]$3[/share]",$Text);
|
||||||
|
@ -327,12 +340,13 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
|
||||||
$Text = str_replace("\r\n","\n", $Text);
|
$Text = str_replace("\r\n","\n", $Text);
|
||||||
|
|
||||||
// removing multiplicated newlines
|
// removing multiplicated newlines
|
||||||
$search = array("\n\n\n", "\n ", " \n", "[/quote]\n\n", "\n[/quote]");
|
// $search = array("\n\n\n", "\n ", " \n", "[/quote]\n\n", "\n[/quote]");
|
||||||
$replace = array("\n\n", "\n", "\n", "[/quote]\n", "[/quote]");
|
// $replace = array("\n\n", "\n", "\n", "[/quote]\n", "[/quote]");
|
||||||
do {
|
// do {
|
||||||
$oldtext = $Text;
|
// $oldtext = $Text;
|
||||||
$Text = str_replace($search, $replace, $Text);
|
// $Text = str_replace($search, $replace, $Text);
|
||||||
} while ($oldtext != $Text);
|
// } while ($oldtext != $Text);
|
||||||
|
|
||||||
|
|
||||||
$Text = str_replace(array("\r","\n"), array('<br />','<br />'), $Text);
|
$Text = str_replace(array("\r","\n"), array('<br />','<br />'), $Text);
|
||||||
|
|
||||||
|
|
|
@ -524,7 +524,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
|
||||||
$hashtags = array();
|
$hashtags = array();
|
||||||
$mentions = array();
|
$mentions = array();
|
||||||
|
|
||||||
$taglist = q("SELECT `type`, `term`, `url` FROM `term` WHERE `otype` = %d AND `oid` = %d AND `type` IN (%d, %d)",
|
$taglist = q("SELECT `type`, `term`, `url` FROM `term` WHERE `otype` = %d AND `oid` = %d AND `type` IN (%d, %d) ORDER BY `tid`",
|
||||||
intval(TERM_OBJ_POST), intval($item['id']), intval(TERM_HASHTAG), intval(TERM_MENTION));
|
intval(TERM_OBJ_POST), intval($item['id']), intval(TERM_HASHTAG), intval(TERM_MENTION));
|
||||||
|
|
||||||
foreach($taglist as $tag) {
|
foreach($taglist as $tag) {
|
||||||
|
@ -896,26 +896,21 @@ function format_like($cnt,$arr,$type,$id) {
|
||||||
if($cnt == 1)
|
if($cnt == 1)
|
||||||
$o .= (($type === 'like') ? sprintf( t('%s likes this.'), $arr[0]) : sprintf( t('%s doesn\'t like this.'), $arr[0])) . EOL ;
|
$o .= (($type === 'like') ? sprintf( t('%s likes this.'), $arr[0]) : sprintf( t('%s doesn\'t like this.'), $arr[0])) . EOL ;
|
||||||
else {
|
else {
|
||||||
//$spanatts = 'class="fakelink" onclick="openClose(\'' . $type . 'list-' . $id . '\');"';
|
$spanatts = "class=\"fakelink\" onclick=\"openClose('{$type}list-$id');\"";
|
||||||
switch($type) {
|
switch($type) {
|
||||||
case 'like':
|
case 'like':
|
||||||
// $phrase = sprintf( t('<span %1$s>%2$d people</span> like this.'), $spanatts, $cnt);
|
$phrase = sprintf( t('<span %1$s>%2$d people</span> like this'), $spanatts, $cnt);
|
||||||
$mood = t('like this');
|
|
||||||
break;
|
break;
|
||||||
case 'dislike':
|
case 'dislike':
|
||||||
// $phrase = sprintf( t('<span %1$s>%2$d people</span> don\'t like this.'), $spanatts, $cnt);
|
$phrase = sprintf( t('<span %1$s>%2$d people</span> don\'t like this'), $spanatts, $cnt);
|
||||||
$mood = t('don\'t like this');
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
$tpl = get_markup_template("voting_fakelink.tpl");
|
$phrase .= EOL ;
|
||||||
$phrase = replace_macros($tpl, array(
|
$o .= replace_macros(get_markup_template('voting_fakelink.tpl'), array(
|
||||||
'$vote_id' => $type . 'list-' . $id,
|
'$phrase' => $phrase,
|
||||||
'$count' => $cnt,
|
'$type' => $type,
|
||||||
'$people' => t('people'),
|
'$id' => $id
|
||||||
'$vote_mood' => $mood
|
|
||||||
));
|
));
|
||||||
$o .= $phrase;
|
|
||||||
// $o .= EOL ;
|
|
||||||
|
|
||||||
$total = count($arr);
|
$total = count($arr);
|
||||||
if($total >= MAX_LIKERS)
|
if($total >= MAX_LIKERS)
|
||||||
|
|
29
include/dbupdate.php
Normal file
29
include/dbupdate.php
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
require_once("boot.php");
|
||||||
|
|
||||||
|
function dbupdate_run(&$argv, &$argc) {
|
||||||
|
global $a, $db;
|
||||||
|
|
||||||
|
if(is_null($a)){
|
||||||
|
$a = new App;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(is_null($db)) {
|
||||||
|
@include(".htconfig.php");
|
||||||
|
require_once("include/dba.php");
|
||||||
|
$db = new dba($db_host, $db_user, $db_pass, $db_data);
|
||||||
|
unset($db_host, $db_user, $db_pass, $db_data);
|
||||||
|
}
|
||||||
|
|
||||||
|
load_config('config');
|
||||||
|
load_config('system');
|
||||||
|
|
||||||
|
check_config($a);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (array_search(__file__,get_included_files())===0){
|
||||||
|
dbupdate_run($argv,$argc);
|
||||||
|
killme();
|
||||||
|
}
|
||||||
|
|
|
@ -16,7 +16,9 @@ function diaspora_dispatch_public($msg) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$r = q("SELECT `user`.* FROM `user` WHERE `user`.`uid` IN ( SELECT `contact`.`uid` FROM `contact` WHERE `contact`.`network` = '%s' AND `contact`.`addr` = '%s' ) AND `account_expired` = 0 AND `account_removed` = 0 ",
|
$r = q("SELECT `user`.* FROM `user` WHERE `user`.`uid` IN
|
||||||
|
( SELECT `contact`.`uid` FROM `contact` WHERE `contact`.`network` = '%s' AND `contact`.`addr` = '%s' )
|
||||||
|
AND `account_expired` = 0 AND `account_removed` = 0 ",
|
||||||
dbesc(NETWORK_DIASPORA),
|
dbesc(NETWORK_DIASPORA),
|
||||||
dbesc($msg['author'])
|
dbesc($msg['author'])
|
||||||
);
|
);
|
||||||
|
@ -32,7 +34,7 @@ function diaspora_dispatch_public($msg) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function diaspora_dispatch($importer,$msg) {
|
function diaspora_dispatch($importer,$msg,$attempt=1) {
|
||||||
|
|
||||||
$ret = 0;
|
$ret = 0;
|
||||||
|
|
||||||
|
@ -88,7 +90,7 @@ function diaspora_dispatch($importer,$msg) {
|
||||||
$ret = diaspora_signed_retraction($importer,$xmlbase->relayable_retraction,$msg);
|
$ret = diaspora_signed_retraction($importer,$xmlbase->relayable_retraction,$msg);
|
||||||
}
|
}
|
||||||
elseif($xmlbase->photo) {
|
elseif($xmlbase->photo) {
|
||||||
$ret = diaspora_photo($importer,$xmlbase->photo,$msg);
|
$ret = diaspora_photo($importer,$xmlbase->photo,$msg,$attempt);
|
||||||
}
|
}
|
||||||
elseif($xmlbase->conversation) {
|
elseif($xmlbase->conversation) {
|
||||||
$ret = diaspora_conversation($importer,$xmlbase->conversation,$msg);
|
$ret = diaspora_conversation($importer,$xmlbase->conversation,$msg);
|
||||||
|
@ -1669,7 +1671,7 @@ function diaspora_message($importer,$xml,$msg) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function diaspora_photo($importer,$xml,$msg) {
|
function diaspora_photo($importer,$xml,$msg,$attempt=1) {
|
||||||
|
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
|
|
||||||
|
@ -1707,7 +1709,14 @@ function diaspora_photo($importer,$xml,$msg) {
|
||||||
dbesc($status_message_guid)
|
dbesc($status_message_guid)
|
||||||
);
|
);
|
||||||
if(! count($r)) {
|
if(! count($r)) {
|
||||||
logger('diaspora_photo: parent item not found: parent: ' . $parent_guid . ' item: ' . $guid);
|
if($attempt <= 3) {
|
||||||
|
q("INSERT INTO dsprphotoq (uid, msg, attempt) VALUES (%d, '%s', %d)",
|
||||||
|
intval($importer['uid']),
|
||||||
|
dbesc(serialize($msg)),
|
||||||
|
intval($attempt + 1)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
logger('diaspora_photo: attempt = ' . $attempt . '; status message not found: ' . $status_message_guid . ' for photo: ' . $guid);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2333,13 +2342,15 @@ function diaspora_send_followup($item,$owner,$contact,$public_batch = false) {
|
||||||
$myaddr = $owner['nickname'] . '@' . substr($a->get_baseurl(), strpos($a->get_baseurl(),'://') + 3);
|
$myaddr = $owner['nickname'] . '@' . substr($a->get_baseurl(), strpos($a->get_baseurl(),'://') + 3);
|
||||||
// $theiraddr = $contact['addr'];
|
// $theiraddr = $contact['addr'];
|
||||||
|
|
||||||
// Diaspora doesn't support threaded comments
|
// Diaspora doesn't support threaded comments, but some
|
||||||
/*if($item['thr-parent']) {
|
// versions of Diaspora (i.e. Diaspora-pistos) support
|
||||||
|
// likes on comments
|
||||||
|
if($item['verb'] === ACTIVITY_LIKE && $item['thr-parent']) {
|
||||||
$p = q("select guid, type, uri, `parent-uri` from item where uri = '%s' limit 1",
|
$p = q("select guid, type, uri, `parent-uri` from item where uri = '%s' limit 1",
|
||||||
dbesc($item['thr-parent'])
|
dbesc($item['thr-parent'])
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
else {*/
|
else {
|
||||||
// The first item in the `item` table with the parent id is the parent. However, MySQL doesn't always
|
// The first item in the `item` table with the parent id is the parent. However, MySQL doesn't always
|
||||||
// return the items ordered by `item`.`id`, in which case the wrong item is chosen as the parent.
|
// return the items ordered by `item`.`id`, in which case the wrong item is chosen as the parent.
|
||||||
// The only item with `parent` and `id` as the parent id is the parent item.
|
// The only item with `parent` and `id` as the parent id is the parent item.
|
||||||
|
@ -2347,7 +2358,7 @@ function diaspora_send_followup($item,$owner,$contact,$public_batch = false) {
|
||||||
intval($item['parent']),
|
intval($item['parent']),
|
||||||
intval($item['parent'])
|
intval($item['parent'])
|
||||||
);
|
);
|
||||||
//}
|
}
|
||||||
if(count($p))
|
if(count($p))
|
||||||
$parent = $p[0];
|
$parent = $p[0];
|
||||||
else
|
else
|
||||||
|
@ -2409,13 +2420,15 @@ function diaspora_send_relay($item,$owner,$contact,$public_batch = false) {
|
||||||
$body = $item['body'];
|
$body = $item['body'];
|
||||||
$text = html_entity_decode(bb2diaspora($body));
|
$text = html_entity_decode(bb2diaspora($body));
|
||||||
|
|
||||||
// Diaspora doesn't support threaded comments
|
// Diaspora doesn't support threaded comments, but some
|
||||||
/*if($item['thr-parent']) {
|
// versions of Diaspora (i.e. Diaspora-pistos) support
|
||||||
|
// likes on comments
|
||||||
|
if($item['verb'] === ACTIVITY_LIKE && $item['thr-parent']) {
|
||||||
$p = q("select guid, type, uri, `parent-uri` from item where uri = '%s' limit 1",
|
$p = q("select guid, type, uri, `parent-uri` from item where uri = '%s' limit 1",
|
||||||
dbesc($item['thr-parent'])
|
dbesc($item['thr-parent'])
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
else {*/
|
else {
|
||||||
// The first item in the `item` table with the parent id is the parent. However, MySQL doesn't always
|
// The first item in the `item` table with the parent id is the parent. However, MySQL doesn't always
|
||||||
// return the items ordered by `item`.`id`, in which case the wrong item is chosen as the parent.
|
// return the items ordered by `item`.`id`, in which case the wrong item is chosen as the parent.
|
||||||
// The only item with `parent` and `id` as the parent id is the parent item.
|
// The only item with `parent` and `id` as the parent id is the parent item.
|
||||||
|
@ -2423,7 +2436,7 @@ function diaspora_send_relay($item,$owner,$contact,$public_batch = false) {
|
||||||
intval($item['parent']),
|
intval($item['parent']),
|
||||||
intval($item['parent'])
|
intval($item['parent'])
|
||||||
);
|
);
|
||||||
//}
|
}
|
||||||
if(count($p))
|
if(count($p))
|
||||||
$parent = $p[0];
|
$parent = $p[0];
|
||||||
else
|
else
|
||||||
|
|
50
include/dsprphotoq.php
Normal file
50
include/dsprphotoq.php
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
<?php
|
||||||
|
require_once("boot.php");
|
||||||
|
require_once('include/diaspora.php');
|
||||||
|
|
||||||
|
function dsprphotoq_run($argv, $argc){
|
||||||
|
global $a, $db;
|
||||||
|
|
||||||
|
if(is_null($a)){
|
||||||
|
$a = new App;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(is_null($db)){
|
||||||
|
@include(".htconfig.php");
|
||||||
|
require_once("include/dba.php");
|
||||||
|
$db = new dba($db_host, $db_user, $db_pass, $db_data);
|
||||||
|
unset($db_host, $db_user, $db_pass, $db_data);
|
||||||
|
};
|
||||||
|
|
||||||
|
logger("diaspora photo queue: running", LOGGER_DEBUG);
|
||||||
|
|
||||||
|
$r = q("SELECT * FROM dsprphotoq");
|
||||||
|
if(!$r)
|
||||||
|
return;
|
||||||
|
|
||||||
|
$dphotos = $r;
|
||||||
|
|
||||||
|
logger("diaspora photo queue: processing " . count($dphotos) . " photos");
|
||||||
|
|
||||||
|
foreach($dphotos as $dphoto) {
|
||||||
|
|
||||||
|
$r = q("SELECT * FROM user WHERE uid = %d",
|
||||||
|
intval($dphoto['uid'])
|
||||||
|
);
|
||||||
|
if(!$r) {
|
||||||
|
logger("diaspora photo queue: user " . $dphoto['uid'] . " not found");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$ret = diaspora_dispatch($r[0],unserialize($dphoto['msg']),$dphoto['attempt']);
|
||||||
|
q("DELETE FROM dsprphotoq WHERE id = %d",
|
||||||
|
intval($dphoto['id'])
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (array_search(__file__,get_included_files())===0){
|
||||||
|
dsprphotoq_run($argv,$argc);
|
||||||
|
killme();
|
||||||
|
}
|
|
@ -471,8 +471,8 @@ class enotify {
|
||||||
// generate a multipart/alternative message header
|
// generate a multipart/alternative message header
|
||||||
$messageHeader =
|
$messageHeader =
|
||||||
$params['additionalMailHeader'] .
|
$params['additionalMailHeader'] .
|
||||||
"From: {$params['fromName']} <{$params['fromEmail']}>\n" .
|
"From: $fromName <{$params['fromEmail']}>\n" .
|
||||||
"Reply-To: {$params['fromName']} <{$params['replyTo']}>\n" .
|
"Reply-To: $fromName <{$params['replyTo']}>\n" .
|
||||||
"MIME-Version: 1.0\n" .
|
"MIME-Version: 1.0\n" .
|
||||||
"Content-Type: multipart/alternative; boundary=\"{$mimeBoundary}\"";
|
"Content-Type: multipart/alternative; boundary=\"{$mimeBoundary}\"";
|
||||||
|
|
||||||
|
@ -493,7 +493,7 @@ class enotify {
|
||||||
// send the message
|
// send the message
|
||||||
$res = mail(
|
$res = mail(
|
||||||
$params['toEmail'], // send to address
|
$params['toEmail'], // send to address
|
||||||
$params['messageSubject'], // subject
|
$messageSubject, // subject
|
||||||
$multipartMessageBody, // message body
|
$multipartMessageBody, // message body
|
||||||
$messageHeader // message headers
|
$messageHeader // message headers
|
||||||
);
|
);
|
||||||
|
|
|
@ -24,8 +24,11 @@ class FriendicaSmarty extends Smarty {
|
||||||
$this->setConfigDir('view/smarty3/config/');
|
$this->setConfigDir('view/smarty3/config/');
|
||||||
$this->setCacheDir('view/smarty3/cache/');
|
$this->setCacheDir('view/smarty3/cache/');
|
||||||
|
|
||||||
$this->left_delimiter = $a->smarty3_ldelim;
|
$this->left_delimiter = $a->get_template_ldelim('smarty3');
|
||||||
$this->right_delimiter = $a->smarty3_rdelim;
|
$this->right_delimiter = $a->get_template_rdelim('smarty3');
|
||||||
|
|
||||||
|
// Don't report errors so verbosely
|
||||||
|
$this->error_reporting = E_ALL & ~E_NOTICE;
|
||||||
}
|
}
|
||||||
|
|
||||||
function parsed($template = '') {
|
function parsed($template = '') {
|
||||||
|
|
|
@ -209,7 +209,7 @@ function html2plain($html, $wraplength = 75, $compact = false)
|
||||||
if (!$compact) {
|
if (!$compact) {
|
||||||
$counter = 1;
|
$counter = 1;
|
||||||
foreach ($urls as $id=>$url)
|
foreach ($urls as $id=>$url)
|
||||||
if (strpos($message, $url) == false)
|
if (strpos($message, $url) === false)
|
||||||
$message .= "\n".$url." ";
|
$message .= "\n".$url." ";
|
||||||
//$message .= "\n[".($counter++)."] ".$url;
|
//$message .= "\n[".($counter++)."] ".$url;
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,8 @@ require_once('include/salmon.php');
|
||||||
require_once('include/crypto.php');
|
require_once('include/crypto.php');
|
||||||
require_once('include/Photo.php');
|
require_once('include/Photo.php');
|
||||||
require_once('include/tags.php');
|
require_once('include/tags.php');
|
||||||
|
require_once('include/text.php');
|
||||||
|
require_once('include/email.php');
|
||||||
|
|
||||||
function get_feed_for(&$a, $dfrn_id, $owner_nick, $last_update, $direction = 0) {
|
function get_feed_for(&$a, $dfrn_id, $owner_nick, $last_update, $direction = 0) {
|
||||||
|
|
||||||
|
@ -238,7 +240,7 @@ function construct_activity_object($item) {
|
||||||
$r->link = str_replace('&','&', $r->link);
|
$r->link = str_replace('&','&', $r->link);
|
||||||
$r->link = preg_replace('/\<link(.*?)\"\>/','<link$1"/>',$r->link);
|
$r->link = preg_replace('/\<link(.*?)\"\>/','<link$1"/>',$r->link);
|
||||||
$o .= $r->link;
|
$o .= $r->link;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
$o .= '<link rel="alternate" type="text/html" href="' . xmlify($r->link) . '" />' . "\r\n";
|
$o .= '<link rel="alternate" type="text/html" href="' . xmlify($r->link) . '" />' . "\r\n";
|
||||||
}
|
}
|
||||||
|
@ -270,7 +272,7 @@ function construct_activity_target($item) {
|
||||||
$r->link = str_replace('&','&', $r->link);
|
$r->link = str_replace('&','&', $r->link);
|
||||||
$r->link = preg_replace('/\<link(.*?)\"\>/','<link$1"/>',$r->link);
|
$r->link = preg_replace('/\<link(.*?)\"\>/','<link$1"/>',$r->link);
|
||||||
$o .= $r->link;
|
$o .= $r->link;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
$o .= '<link rel="alternate" type="text/html" href="' . xmlify($r->link) . '" />' . "\r\n";
|
$o .= '<link rel="alternate" type="text/html" href="' . xmlify($r->link) . '" />' . "\r\n";
|
||||||
}
|
}
|
||||||
|
@ -882,7 +884,7 @@ function item_store($arr,$force_parent = false) {
|
||||||
$arr['gravity'] = 0;
|
$arr['gravity'] = 0;
|
||||||
elseif(activity_match($arr['verb'],ACTIVITY_POST))
|
elseif(activity_match($arr['verb'],ACTIVITY_POST))
|
||||||
$arr['gravity'] = 6;
|
$arr['gravity'] = 6;
|
||||||
else
|
else
|
||||||
$arr['gravity'] = 6; // extensible catchall
|
$arr['gravity'] = 6; // extensible catchall
|
||||||
|
|
||||||
if(! x($arr,'type'))
|
if(! x($arr,'type'))
|
||||||
|
@ -1072,10 +1074,9 @@ function item_store($arr,$force_parent = false) {
|
||||||
|
|
||||||
if(count($r)) {
|
if(count($r)) {
|
||||||
$current_post = $r[0]['id'];
|
$current_post = $r[0]['id'];
|
||||||
create_tags_from_item($r[0]['id']);
|
|
||||||
logger('item_store: created item ' . $current_post);
|
logger('item_store: created item ' . $current_post);
|
||||||
}
|
create_tags_from_item($r[0]['id']);
|
||||||
else {
|
} else {
|
||||||
logger('item_store: could not locate created item');
|
logger('item_store: could not locate created item');
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -1153,6 +1154,15 @@ function item_store($arr,$force_parent = false) {
|
||||||
|
|
||||||
tag_deliver($arr['uid'],$current_post);
|
tag_deliver($arr['uid'],$current_post);
|
||||||
|
|
||||||
|
// Store the fresh generated item into the cache
|
||||||
|
$cachefile = get_cachefile($arr["guid"]."-".hash("md5", $arr['body']));
|
||||||
|
|
||||||
|
if (($cachefile != '') AND !file_exists($cachefile)) {
|
||||||
|
$s = prepare_text($arr['body']);
|
||||||
|
file_put_contents($cachefile, $s);
|
||||||
|
logger('item_store: put item '.$current_post.' into cachefile '.$cachefile);
|
||||||
|
}
|
||||||
|
|
||||||
return $current_post;
|
return $current_post;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3401,9 +3411,9 @@ function new_follower($importer,$contact,$datarray,$item,$sharing = false) {
|
||||||
'$sitename' => $a->config['sitename']
|
'$sitename' => $a->config['sitename']
|
||||||
));
|
));
|
||||||
$res = mail($r[0]['email'],
|
$res = mail($r[0]['email'],
|
||||||
(($sharing) ? t('A new person is sharing with you at ') : t("You have a new follower at ")) . $a->config['sitename'],
|
email_header_encode((($sharing) ? t('A new person is sharing with you at ') : t("You have a new follower at ")) . $a->config['sitename'],'UTF-8'),
|
||||||
$email,
|
$email,
|
||||||
'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME'] . "\n"
|
'From: ' . 'Administrator' . '@' . $_SERVER['SERVER_NAME'] . "\n"
|
||||||
. 'Content-type: text/plain; charset=UTF-8' . "\n"
|
. 'Content-type: text/plain; charset=UTF-8' . "\n"
|
||||||
. 'Content-transfer-encoding: 8bit' );
|
. 'Content-transfer-encoding: 8bit' );
|
||||||
|
|
||||||
|
@ -3763,11 +3773,11 @@ function item_getfeedtags($item) {
|
||||||
|
|
||||||
function item_getfeedattach($item) {
|
function item_getfeedattach($item) {
|
||||||
$ret = '';
|
$ret = '';
|
||||||
$arr = explode(',',$item['attach']);
|
$arr = explode('[/attach],',$item['attach']);
|
||||||
if(count($arr)) {
|
if(count($arr)) {
|
||||||
foreach($arr as $r) {
|
foreach($arr as $r) {
|
||||||
$matches = false;
|
$matches = false;
|
||||||
$cnt = preg_match('|\[attach\]href=\"(.*?)\" length=\"(.*?)\" type=\"(.*?)\" title=\"(.*?)\"\[\/attach\]|',$r,$matches);
|
$cnt = preg_match('|\[attach\]href=\"(.*?)\" length=\"(.*?)\" type=\"(.*?)\" title=\"(.*?)\"|',$r,$matches);
|
||||||
if($cnt) {
|
if($cnt) {
|
||||||
$ret .= '<link rel="enclosure" href="' . xmlify($matches[1]) . '" type="' . xmlify($matches[3]) . '" ';
|
$ret .= '<link rel="enclosure" href="' . xmlify($matches[1]) . '" type="' . xmlify($matches[3]) . '" ';
|
||||||
if(intval($matches[2]))
|
if(intval($matches[2]))
|
||||||
|
|
|
@ -37,6 +37,7 @@ require_once('include/html2plain.php');
|
||||||
* tag (in photos.php, poke.php, tagger.php)
|
* tag (in photos.php, poke.php, tagger.php)
|
||||||
* tgroup (in items.php)
|
* tgroup (in items.php)
|
||||||
* wall-new (in photos.php, item.php)
|
* wall-new (in photos.php, item.php)
|
||||||
|
* removeme (in Contact.php)
|
||||||
*
|
*
|
||||||
* and ITEM_ID is the id of the item in the database that needs to be sent to others.
|
* and ITEM_ID is the id of the item in the database that needs to be sent to others.
|
||||||
*/
|
*/
|
||||||
|
@ -138,14 +139,17 @@ function notifier_run(&$argv, &$argc){
|
||||||
$r = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1", intval($item_id));
|
$r = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1", intval($item_id));
|
||||||
if (! $r)
|
if (! $r)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
$user = $r[0];
|
$user = $r[0];
|
||||||
$r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `self` = 1 LIMIT 1", intval($item_id));
|
$r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `self` = 1 LIMIT 1", intval($item_id));
|
||||||
if (! $r)
|
if (! $r)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
$self = $r[0];
|
$self = $r[0];
|
||||||
$r = q("SELECT * FROM `contact` WHERE `self` = 0 AND `uid` = %d", intval($item_id));
|
$r = q("SELECT * FROM `contact` WHERE `self` = 0 AND `uid` = %d", intval($item_id));
|
||||||
if(! $r)
|
if(! $r)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
require_once('include/Contact.php');
|
require_once('include/Contact.php');
|
||||||
foreach($r as $contact) {
|
foreach($r as $contact) {
|
||||||
terminate_friendship($user, $self, $contact);
|
terminate_friendship($user, $self, $contact);
|
||||||
|
|
|
@ -62,6 +62,10 @@ function poller_run(&$argv, &$argc){
|
||||||
|
|
||||||
proc_run('php',"include/queue.php");
|
proc_run('php',"include/queue.php");
|
||||||
|
|
||||||
|
// run diaspora photo queue process in the background
|
||||||
|
|
||||||
|
proc_run('php',"include/dsprphotoq.php");
|
||||||
|
|
||||||
// expire any expired accounts
|
// expire any expired accounts
|
||||||
|
|
||||||
q("UPDATE user SET `account_expired` = 1 where `account_expired` = 0
|
q("UPDATE user SET `account_expired` = 1 where `account_expired` = 0
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
|
|
||||||
require_once('include/datetime.php');
|
require_once('include/datetime.php');
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* poco_load
|
* poco_load
|
||||||
*
|
*
|
||||||
|
|
|
@ -25,7 +25,7 @@ function create_tags_from_item($itemid) {
|
||||||
|
|
||||||
$searchpath = $a->get_baseurl()."/search?tag=";
|
$searchpath = $a->get_baseurl()."/search?tag=";
|
||||||
|
|
||||||
$messages = q("SELECT `uri`, `uid`, `id`, `created`, `edited`, `commented`, `received`, `changed`, `deleted`, `title`, `body`, `tag` FROM `item` WHERE `id` = %d LIMIT 1", intval($itemid));
|
$messages = q("SELECT `guid`, `uid`, `id`, `edited`, `deleted`, `title`, `body`, `tag` FROM `item` WHERE `id` = %d LIMIT 1", intval($itemid));
|
||||||
|
|
||||||
if (!$messages)
|
if (!$messages)
|
||||||
return;
|
return;
|
||||||
|
@ -42,6 +42,14 @@ function create_tags_from_item($itemid) {
|
||||||
if ($message["deleted"])
|
if ($message["deleted"])
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
$cachefile = get_cachefile($message["guid"]."-".hash("md5", $message['body']));
|
||||||
|
|
||||||
|
if (($cachefile != '') AND !file_exists($cachefile)) {
|
||||||
|
$s = prepare_text($message['body']);
|
||||||
|
file_put_contents($cachefile, $s);
|
||||||
|
logger('create_tags_from_item: put item '.$message["id"].' into cachefile '.$cachefile);
|
||||||
|
}
|
||||||
|
|
||||||
$taglist = explode(",", $message["tag"]);
|
$taglist = explode(",", $message["tag"]);
|
||||||
|
|
||||||
$tags = "";
|
$tags = "";
|
||||||
|
|
|
@ -23,7 +23,6 @@ function replace_macros($s,$r) {
|
||||||
if(gettype($s) === 'string') {
|
if(gettype($s) === 'string') {
|
||||||
$template = $s;
|
$template = $s;
|
||||||
$s = new FriendicaSmarty();
|
$s = new FriendicaSmarty();
|
||||||
$s->error_reporting = E_ALL & ~E_NOTICE;
|
|
||||||
}
|
}
|
||||||
foreach($r as $key=>$value) {
|
foreach($r as $key=>$value) {
|
||||||
if($key[0] === '$') {
|
if($key[0] === '$') {
|
||||||
|
@ -490,12 +489,12 @@ function get_template_file($a, $filename, $root = '') {
|
||||||
if($root !== '' && $root[strlen($root)-1] !== '/')
|
if($root !== '' && $root[strlen($root)-1] !== '/')
|
||||||
$root = $root . '/';
|
$root = $root . '/';
|
||||||
|
|
||||||
if(file_exists($root . "view/theme/$theme/$filename"))
|
if(file_exists("{$root}view/theme/$theme/$filename"))
|
||||||
$template_file = $root . "view/theme/$theme/$filename";
|
$template_file = "{$root}view/theme/$theme/$filename";
|
||||||
elseif (x($a->theme_info,"extends") && file_exists($root . "view/theme/".$a->theme_info["extends"]."/$filename"))
|
elseif (x($a->theme_info,"extends") && file_exists("{$root}view/theme/{$a->theme_info["extends"]}/$filename"))
|
||||||
$template_file = $root . "view/theme/".$a->theme_info["extends"]."/$filename";
|
$template_file = "{$root}view/theme/{$a->theme_info["extends"]}/$filename";
|
||||||
else
|
else
|
||||||
$template_file = $root . "view/$filename";
|
$template_file = "{$root}view/$filename";
|
||||||
|
|
||||||
return $template_file;
|
return $template_file;
|
||||||
}}
|
}}
|
||||||
|
@ -1019,7 +1018,8 @@ function prepare_body($item,$attach = false) {
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
call_hooks('prepare_body_init', $item);
|
call_hooks('prepare_body_init', $item);
|
||||||
|
|
||||||
$cachefile = get_cachefile($item["guid"]."-".strtotime($item["edited"])."-".hash("crc32", $item['body']));
|
//$cachefile = get_cachefile($item["guid"]."-".strtotime($item["edited"])."-".hash("crc32", $item['body']));
|
||||||
|
$cachefile = get_cachefile($item["guid"]."-".hash("md5", $item['body']));
|
||||||
|
|
||||||
if (($cachefile != '')) {
|
if (($cachefile != '')) {
|
||||||
if (file_exists($cachefile))
|
if (file_exists($cachefile))
|
||||||
|
@ -1027,6 +1027,7 @@ function prepare_body($item,$attach = false) {
|
||||||
else {
|
else {
|
||||||
$s = prepare_text($item['body']);
|
$s = prepare_text($item['body']);
|
||||||
file_put_contents($cachefile, $s);
|
file_put_contents($cachefile, $s);
|
||||||
|
logger('prepare_body: put item '.$item["id"].' into cachefile '.$cachefile);
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
$s = prepare_text($item['body']);
|
$s = prepare_text($item['body']);
|
||||||
|
@ -1043,13 +1044,13 @@ function prepare_body($item,$attach = false) {
|
||||||
return $s;
|
return $s;
|
||||||
}
|
}
|
||||||
|
|
||||||
$arr = explode(',',$item['attach']);
|
$arr = explode('[/attach],',$item['attach']);
|
||||||
if(count($arr)) {
|
if(count($arr)) {
|
||||||
$s .= '<div class="body-attach">';
|
$s .= '<div class="body-attach">';
|
||||||
foreach($arr as $r) {
|
foreach($arr as $r) {
|
||||||
$matches = false;
|
$matches = false;
|
||||||
$icon = '';
|
$icon = '';
|
||||||
$cnt = preg_match_all('|\[attach\]href=\"(.*?)\" length=\"(.*?)\" type=\"(.*?)\" title=\"(.*?)\"\[\/attach\]|',$r,$matches, PREG_SET_ORDER);
|
$cnt = preg_match_all('|\[attach\]href=\"(.*?)\" length=\"(.*?)\" type=\"(.*?)\" title=\"(.*?)\"|',$r,$matches, PREG_SET_ORDER);
|
||||||
if($cnt) {
|
if($cnt) {
|
||||||
foreach($matches as $mtch) {
|
foreach($matches as $mtch) {
|
||||||
$icontype = strtolower(substr($mtch[3],0,strpos($mtch[3],'/')));
|
$icontype = strtolower(substr($mtch[3],0,strpos($mtch[3],'/')));
|
||||||
|
|
|
@ -7,6 +7,7 @@ require_once('include/text.php');
|
||||||
require_once('include/pgettext.php');
|
require_once('include/pgettext.php');
|
||||||
require_once('include/datetime.php');
|
require_once('include/datetime.php');
|
||||||
|
|
||||||
|
|
||||||
function create_user($arr) {
|
function create_user($arr) {
|
||||||
|
|
||||||
// Required: { username, nickname, email } or { openid_url }
|
// Required: { username, nickname, email } or { openid_url }
|
||||||
|
|
37
index.php
37
index.php
|
@ -1,5 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Friendica
|
* Friendica
|
||||||
|
@ -43,7 +44,7 @@ load_translation_table($lang);
|
||||||
|
|
||||||
require_once("include/dba.php");
|
require_once("include/dba.php");
|
||||||
|
|
||||||
if(! $install) {
|
if(!$install) {
|
||||||
$db = new dba($db_host, $db_user, $db_pass, $db_data, $install);
|
$db = new dba($db_host, $db_user, $db_pass, $db_data, $install);
|
||||||
unset($db_host, $db_user, $db_pass, $db_data);
|
unset($db_host, $db_user, $db_pass, $db_data);
|
||||||
|
|
||||||
|
@ -59,6 +60,8 @@ if(! $install) {
|
||||||
call_hooks('init_1');
|
call_hooks('init_1');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$maintenance = get_config('system', 'maintenance');
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
@ -89,7 +92,7 @@ if((x($_SESSION,'language')) && ($_SESSION['language'] !== $lang)) {
|
||||||
load_translation_table($lang);
|
load_translation_table($lang);
|
||||||
}
|
}
|
||||||
|
|
||||||
if((x($_GET,'zrl')) && (! $install)) {
|
if((x($_GET,'zrl')) && (!$install && !$maintenance)) {
|
||||||
$_SESSION['my_url'] = $_GET['zrl'];
|
$_SESSION['my_url'] = $_GET['zrl'];
|
||||||
$a->query_string = preg_replace('/[\?&]zrl=(.*?)([\?&]|$)/is','',$a->query_string);
|
$a->query_string = preg_replace('/[\?&]zrl=(.*?)([\?&]|$)/is','',$a->query_string);
|
||||||
zrl_init($a);
|
zrl_init($a);
|
||||||
|
@ -135,8 +138,12 @@ if(! x($_SESSION,'sysmsg_info'))
|
||||||
|
|
||||||
if($install)
|
if($install)
|
||||||
$a->module = 'install';
|
$a->module = 'install';
|
||||||
else
|
elseif($maintenance)
|
||||||
check_config($a);
|
$a->module = 'maintenance';
|
||||||
|
else {
|
||||||
|
proc_run('php', 'include/dbupdate.php');
|
||||||
|
check_plugins($a);
|
||||||
|
}
|
||||||
|
|
||||||
nav_set_selected('nothing');
|
nav_set_selected('nothing');
|
||||||
|
|
||||||
|
@ -237,7 +244,7 @@ if (file_exists($theme_info_file)){
|
||||||
if(! x($a->page,'content'))
|
if(! x($a->page,'content'))
|
||||||
$a->page['content'] = '';
|
$a->page['content'] = '';
|
||||||
|
|
||||||
if(! $install)
|
if(!$install && !$maintenance)
|
||||||
call_hooks('page_content_top',$a->page['content']);
|
call_hooks('page_content_top',$a->page['content']);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -372,20 +379,14 @@ $a->page['content'] .= '<div id="pause"></div>';
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if($a->module != 'install') {
|
if($a->module != 'install' && $a->module != 'maintenance') {
|
||||||
nav($a);
|
nav($a);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Build the page - now that we have all the components
|
* Add a "toggle mobile" link if we're using a mobile device
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if(!$a->theme['stylesheet'])
|
|
||||||
$stylesheet = current_theme_url();
|
|
||||||
else
|
|
||||||
$stylesheet = $a->theme['stylesheet'];
|
|
||||||
$a->page['htmlhead'] = replace_macros($a->page['htmlhead'], array('$stylesheet' => $stylesheet));
|
|
||||||
|
|
||||||
if($a->is_mobile || $a->is_tablet) {
|
if($a->is_mobile || $a->is_tablet) {
|
||||||
if(isset($_SESSION['show-mobile']) && !$_SESSION['show-mobile']) {
|
if(isset($_SESSION['show-mobile']) && !$_SESSION['show-mobile']) {
|
||||||
$link = $a->get_baseurl() . '/toggle_mobile?address=' . curPageURL();
|
$link = $a->get_baseurl() . '/toggle_mobile?address=' . curPageURL();
|
||||||
|
@ -399,6 +400,16 @@ if($a->is_mobile || $a->is_tablet) {
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Build the page - now that we have all the components
|
||||||
|
*/
|
||||||
|
|
||||||
|
if(!$a->theme['stylesheet'])
|
||||||
|
$stylesheet = current_theme_url();
|
||||||
|
else
|
||||||
|
$stylesheet = $a->theme['stylesheet'];
|
||||||
|
$a->page['htmlhead'] = replace_macros($a->page['htmlhead'], array('$stylesheet' => $stylesheet));
|
||||||
|
|
||||||
$page = $a->page;
|
$page = $a->page;
|
||||||
$profile = $a->profile;
|
$profile = $a->profile;
|
||||||
|
|
||||||
|
|
|
@ -253,10 +253,9 @@ ACL.prototype.populate = function(data){
|
||||||
//console.log(html);
|
//console.log(html);
|
||||||
that.list_content.append(html);
|
that.list_content.append(html);
|
||||||
});
|
});
|
||||||
$(".acl-list-item img[data-src]").each(function(i, el){
|
$(".acl-list-item img[data-src]", that.list_content).each(function(i, el){
|
||||||
// Replace data-src attribute with src attribute for every image
|
// Add src attribute for images with a data-src attribute
|
||||||
$(el).attr('src', $(el).data("src"));
|
$(el).attr('src', $(el).data("src"));
|
||||||
$(el).removeAttr("data-src");
|
|
||||||
});
|
});
|
||||||
that.update_view();
|
that.update_view();
|
||||||
}
|
}
|
||||||
|
|
2
js/acl.min.js
vendored
2
js/acl.min.js
vendored
File diff suppressed because one or more lines are too long
|
@ -183,9 +183,8 @@
|
||||||
});
|
});
|
||||||
|
|
||||||
$("img[data-src]", nnm).each(function(i, el){
|
$("img[data-src]", nnm).each(function(i, el){
|
||||||
// Replace data-src attribute with src attribute for every image
|
// Add src attribute for images with a data-src attribute
|
||||||
$(el).attr('src', $(el).data("src"));
|
$(el).attr('src', $(el).data("src"));
|
||||||
$(el).removeAttr("data-src");
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -34,9 +34,11 @@ function attach_init(&$a) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Use quotes around the filename to prevent a "multiple Content-Disposition"
|
||||||
|
// error in Chrome for filenames with commas in them
|
||||||
header('Content-type: ' . $r[0]['filetype']);
|
header('Content-type: ' . $r[0]['filetype']);
|
||||||
header('Content-disposition: attachment; filename=' . $r[0]['filename']);
|
header('Content-disposition: attachment; filename="' . $r[0]['filename'] . '"');
|
||||||
echo $r[0]['data'];
|
echo $r[0]['data'];
|
||||||
killme();
|
killme();
|
||||||
// NOTREACHED
|
// NOTREACHED
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,7 @@ function visible_lf($s) {
|
||||||
|
|
||||||
function babel_content(&$a) {
|
function babel_content(&$a) {
|
||||||
|
|
||||||
$o .= '<h3>Babel Diagnostic</h3>';
|
$o .= '<h1>Babel Diagnostic</h1>';
|
||||||
|
|
||||||
$o .= '<form action="babel" method="post">';
|
$o .= '<form action="babel" method="post">';
|
||||||
$o .= t('Source (bbcode) text:') . EOL . '<textarea name="text" >' . htmlspecialchars($_REQUEST['text']) .'</textarea>' . EOL;
|
$o .= t('Source (bbcode) text:') . EOL . '<textarea name="text" >' . htmlspecialchars($_REQUEST['text']) .'</textarea>' . EOL;
|
||||||
|
@ -28,31 +28,35 @@ function babel_content(&$a) {
|
||||||
if(x($_REQUEST,'text')) {
|
if(x($_REQUEST,'text')) {
|
||||||
|
|
||||||
$text = trim($_REQUEST['text']);
|
$text = trim($_REQUEST['text']);
|
||||||
$o .= t("Source input: ") . EOL. EOL;
|
$o .= "<h2>" . t("Source input: ") . "</h2>" . EOL. EOL;
|
||||||
$o .= visible_lf($text) . EOL. EOL;
|
$o .= visible_lf($text) . EOL. EOL;
|
||||||
|
|
||||||
$html = bbcode($text);
|
$html = bbcode($text);
|
||||||
$o .= t("bb2html: ") . EOL. EOL;
|
$o .= "<h2>" . t("bb2html (raw HTML): ") . "</h2>" . EOL. EOL;
|
||||||
|
$o .= htmlspecialchars($html). EOL. EOL;
|
||||||
|
|
||||||
|
//$html = bbcode($text);
|
||||||
|
$o .= "<h2>" . t("bb2html: ") . "</h2>" . EOL. EOL;
|
||||||
$o .= $html. EOL. EOL;
|
$o .= $html. EOL. EOL;
|
||||||
|
|
||||||
$bbcode = html2bbcode($html);
|
$bbcode = html2bbcode($html);
|
||||||
$o .= t("bb2html2bb: ") . EOL. EOL;
|
$o .= "<h2>" . t("bb2html2bb: ") . "</h2>" . EOL. EOL;
|
||||||
$o .= visible_lf($bbcode) . EOL. EOL;
|
$o .= visible_lf($bbcode) . EOL. EOL;
|
||||||
|
|
||||||
$diaspora = bb2diaspora($text);
|
$diaspora = bb2diaspora($text);
|
||||||
$o .= t("bb2md: ") . EOL. EOL;
|
$o .= "<h2>" . t("bb2md: ") . "</h2>" . EOL. EOL;
|
||||||
$o .= visible_lf($diaspora) . EOL. EOL;
|
$o .= visible_lf($diaspora) . EOL. EOL;
|
||||||
|
|
||||||
$html = Markdown($diaspora);
|
$html = Markdown($diaspora);
|
||||||
$o .= t("bb2md2html: ") . EOL. EOL;
|
$o .= "<h2>" . t("bb2md2html: ") . "</h2>" . EOL. EOL;
|
||||||
$o .= $html. EOL. EOL;
|
$o .= $html. EOL. EOL;
|
||||||
|
|
||||||
$bbcode = diaspora2bb($diaspora);
|
$bbcode = diaspora2bb($diaspora);
|
||||||
$o .= t("bb2dia2bb: ") . EOL. EOL;
|
$o .= "<h2>" . t("bb2dia2bb: ") . "</h2>" . EOL. EOL;
|
||||||
$o .= visible_lf($bbcode) . EOL. EOL;
|
$o .= visible_lf($bbcode) . EOL. EOL;
|
||||||
|
|
||||||
$bbcode = html2bbcode($html);
|
$bbcode = html2bbcode($html);
|
||||||
$o .= t("bb2md2html2bb: ") . EOL. EOL;
|
$o .= "<h2>" . t("bb2md2html2bb: ") . "</h2>" . EOL. EOL;
|
||||||
$o .= visible_lf($bbcode) . EOL. EOL;
|
$o .= visible_lf($bbcode) . EOL. EOL;
|
||||||
|
|
||||||
|
|
||||||
|
@ -62,12 +66,12 @@ function babel_content(&$a) {
|
||||||
if(x($_REQUEST,'d2bbtext')) {
|
if(x($_REQUEST,'d2bbtext')) {
|
||||||
|
|
||||||
$d2bbtext = trim($_REQUEST['d2bbtext']);
|
$d2bbtext = trim($_REQUEST['d2bbtext']);
|
||||||
$o .= t("Source input (Diaspora format): ") . EOL. EOL;
|
$o .= "<h2>" . t("Source input (Diaspora format): ") . "</h2>" . EOL. EOL;
|
||||||
$o .= visible_lf($d2bbtext) . EOL. EOL;
|
$o .= visible_lf($d2bbtext) . EOL. EOL;
|
||||||
|
|
||||||
|
|
||||||
$bb = diaspora2bb($d2bbtext);
|
$bb = diaspora2bb($d2bbtext);
|
||||||
$o .= t("diaspora2bb: ") . EOL. EOL;
|
$o .= "<h2>" . t("diaspora2bb: ") . "</h2>" . EOL. EOL;
|
||||||
$o .= visible_lf($bb) . EOL. EOL;
|
$o .= visible_lf($bb) . EOL. EOL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -746,10 +746,11 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
|
||||||
'$dfrn_url' => $r[0]['url'],
|
'$dfrn_url' => $r[0]['url'],
|
||||||
'$uid' => $newuid )
|
'$uid' => $newuid )
|
||||||
);
|
);
|
||||||
|
require_once('include/email.php');
|
||||||
$res = mail($r[0]['email'], sprintf( t("Connection accepted at %s") , $a->config['sitename']),
|
|
||||||
|
$res = mail($r[0]['email'], email_header_encode( sprintf( t("Connection accepted at %s") , $a->config['sitename']),'UTF-8'),
|
||||||
$email_tpl,
|
$email_tpl,
|
||||||
'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME'] . "\n"
|
'From: ' . 'Administrator' . '@' . $_SERVER['SERVER_NAME'] . "\n"
|
||||||
. 'Content-type: text/plain; charset=UTF-8' . "\n"
|
. 'Content-type: text/plain; charset=UTF-8' . "\n"
|
||||||
. 'Content-transfer-encoding: 8bit' );
|
. 'Content-transfer-encoding: 8bit' );
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,18 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
|
||||||
|
function display_init(&$a) {
|
||||||
|
|
||||||
|
if((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$nick = (($a->argc > 1) ? $a->argv[1] : '');
|
||||||
|
profile_load($a,$nick);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
function display_content(&$a, $update = 0) {
|
function display_content(&$a, $update = 0) {
|
||||||
|
|
||||||
if((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
|
if((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
|
||||||
|
@ -25,10 +37,10 @@ function display_content(&$a, $update = 0) {
|
||||||
else {
|
else {
|
||||||
$nick = (($a->argc > 1) ? $a->argv[1] : '');
|
$nick = (($a->argc > 1) ? $a->argv[1] : '');
|
||||||
}
|
}
|
||||||
profile_load($a,$nick);
|
|
||||||
|
|
||||||
if($update) {
|
if($update) {
|
||||||
$item_id = $_REQUEST['item_id'];
|
$item_id = $_REQUEST['item_id'];
|
||||||
|
$a->profile = array('uid' => intval($update), 'profile_uid' => intval($update));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$item_id = (($a->argc > 2) ? intval($a->argv[2]) : 0);
|
$item_id = (($a->argc > 2) ? intval($a->argv[2]) : 0);
|
||||||
|
@ -108,6 +120,8 @@ function display_content(&$a, $update = 0) {
|
||||||
$sql_extra = item_permissions_sql($a->profile['uid'],$remote_contact,$groups);
|
$sql_extra = item_permissions_sql($a->profile['uid'],$remote_contact,$groups);
|
||||||
|
|
||||||
if($update) {
|
if($update) {
|
||||||
|
|
||||||
|
dbg(1);
|
||||||
$r = q("SELECT id FROM item WHERE item.uid = %d
|
$r = q("SELECT id FROM item WHERE item.uid = %d
|
||||||
AND `item`.`parent` = ( SELECT `parent` FROM `item` WHERE ( `id` = '%s' OR `uri` = '%s' ))
|
AND `item`.`parent` = ( SELECT `parent` FROM `item` WHERE ( `id` = '%s' OR `uri` = '%s' ))
|
||||||
$sql_extra AND unseen = 1",
|
$sql_extra AND unseen = 1",
|
||||||
|
@ -115,6 +129,7 @@ function display_content(&$a, $update = 0) {
|
||||||
dbesc($item_id),
|
dbesc($item_id),
|
||||||
dbesc($item_id)
|
dbesc($item_id)
|
||||||
);
|
);
|
||||||
|
dbg(0);
|
||||||
if(!$r)
|
if(!$r)
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
|
|
@ -250,8 +250,8 @@ function events_content(&$a) {
|
||||||
$r = q("SELECT `event`.*, `item`.`id` AS `itemid`,`item`.`plink`,
|
$r = q("SELECT `event`.*, `item`.`id` AS `itemid`,`item`.`plink`,
|
||||||
`item`.`author-name`, `item`.`author-avatar`, `item`.`author-link` FROM `event` LEFT JOIN `item` ON `item`.`event-id` = `event`.`id`
|
`item`.`author-name`, `item`.`author-avatar`, `item`.`author-link` FROM `event` LEFT JOIN `item` ON `item`.`event-id` = `event`.`id`
|
||||||
WHERE `event`.`uid` = %d and event.ignore = %d
|
WHERE `event`.`uid` = %d and event.ignore = %d
|
||||||
AND (( `adjust` = 0 AND `finish` >= '%s' AND `start` <= '%s' )
|
AND (( `adjust` = 0 AND ( `finish` >= '%s' or nofinish ) AND `start` <= '%s' )
|
||||||
OR ( `adjust` = 1 AND `finish` >= '%s' AND `start` <= '%s' )) ",
|
OR ( `adjust` = 1 AND ( `finish` >= '%s' or nofinish ) AND `start` <= '%s' )) ",
|
||||||
intval(local_user()),
|
intval(local_user()),
|
||||||
intval($ignored),
|
intval($ignored),
|
||||||
dbesc($start),
|
dbesc($start),
|
||||||
|
|
|
@ -220,16 +220,15 @@ function group_content(&$a) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$context['$groupeditor'] = $groupeditor;
|
||||||
$context['$desc'] = t('Click on a contact to add or remove.');
|
$context['$desc'] = t('Click on a contact to add or remove.');
|
||||||
|
|
||||||
if($change) {
|
if($change) {
|
||||||
$context['$groupeditor'] = $groupeditor;
|
|
||||||
$tpl = get_markup_template('groupeditor.tpl');
|
$tpl = get_markup_template('groupeditor.tpl');
|
||||||
echo replace_macros($tpl, $context);
|
echo replace_macros($tpl, $context);
|
||||||
killme();
|
killme();
|
||||||
}
|
}
|
||||||
|
|
||||||
$context['$groupedit_info'] = $groupeditor;
|
|
||||||
return replace_macros($tpl, $context);
|
return replace_macros($tpl, $context);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,8 +25,12 @@ function home_content(&$a) {
|
||||||
if(x($_SESSION,'mobile-theme'))
|
if(x($_SESSION,'mobile-theme'))
|
||||||
unset($_SESSION['mobile-theme']);
|
unset($_SESSION['mobile-theme']);
|
||||||
|
|
||||||
if(file_exists('home.html'))
|
if(file_exists('home.html')){
|
||||||
$o .= file_get_contents('home.html');
|
if(file_exists('home.css')){
|
||||||
|
$a->page['htmlhead'] .= '<link rel="stylesheet" type="text/css" href="' . $a->get_baseurl() . '/home.css' . '" media="all" />';}
|
||||||
|
|
||||||
|
$o .= file_get_contents('home.html');}
|
||||||
|
|
||||||
else $o .= '<h1>' . ((x($a->config,'sitename')) ? sprintf( t("Welcome to %s") ,$a->config['sitename']) : "" ) . '</h1>';
|
else $o .= '<h1>' . ((x($a->config,'sitename')) ? sprintf( t("Welcome to %s") ,$a->config['sitename']) : "" ) . '</h1>';
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,8 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
require_once('include/email.php');
|
||||||
|
|
||||||
function invite_post(&$a) {
|
function invite_post(&$a) {
|
||||||
|
|
||||||
if(! local_user()) {
|
if(! local_user()) {
|
||||||
|
@ -56,7 +58,7 @@ function invite_post(&$a) {
|
||||||
else
|
else
|
||||||
$nmessage = $message;
|
$nmessage = $message;
|
||||||
|
|
||||||
$res = mail($recip, sprintf( t('Please join us on Friendica'), $a->config['sitename']),
|
$res = mail($recip, email_header_encode( t('Please join us on Friendica'),'UTF-8'),
|
||||||
$nmessage,
|
$nmessage,
|
||||||
"From: " . $a->user['email'] . "\n"
|
"From: " . $a->user['email'] . "\n"
|
||||||
. 'Content-type: text/plain; charset=UTF-8' . "\n"
|
. 'Content-type: text/plain; charset=UTF-8' . "\n"
|
||||||
|
|
|
@ -757,6 +757,15 @@ function item_post(&$a) {
|
||||||
// update filetags in pconfig
|
// update filetags in pconfig
|
||||||
file_tag_update_pconfig($uid,$categories_old,$categories_new,'category');
|
file_tag_update_pconfig($uid,$categories_old,$categories_new,'category');
|
||||||
|
|
||||||
|
// Store the fresh generated item into the cache
|
||||||
|
$cachefile = get_cachefile($datarray["guid"]."-".hash("md5", $datarray['body']));
|
||||||
|
|
||||||
|
if (($cachefile != '') AND !file_exists($cachefile)) {
|
||||||
|
$s = prepare_text($datarray['body']);
|
||||||
|
file_put_contents($cachefile, $s);
|
||||||
|
logger('mod_item: put item '.$r[0]['id'].' into cachefile '.$cachefile);
|
||||||
|
}
|
||||||
|
|
||||||
if($parent) {
|
if($parent) {
|
||||||
|
|
||||||
// This item is the last leaf and gets the comment box, clear any ancestors
|
// This item is the last leaf and gets the comment box, clear any ancestors
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
require_once('include/email.php');
|
||||||
|
|
||||||
function lostpass_post(&$a) {
|
function lostpass_post(&$a) {
|
||||||
|
|
||||||
|
@ -40,9 +41,9 @@ function lostpass_post(&$a) {
|
||||||
'$reset_link' => $a->get_baseurl() . '/lostpass?verify=' . $new_password
|
'$reset_link' => $a->get_baseurl() . '/lostpass?verify=' . $new_password
|
||||||
));
|
));
|
||||||
|
|
||||||
$res = mail($email, sprintf( t('Password reset requested at %s'),$a->config['sitename']),
|
$res = mail($email, email_header_encode(sprintf( t('Password reset requested at %s'),$a->config['sitename']),'UTF-8'),
|
||||||
$email_tpl,
|
$email_tpl,
|
||||||
'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME'] . "\n"
|
'From: ' . 'Administrator' . '@' . $_SERVER['SERVER_NAME'] . "\n"
|
||||||
. 'Content-type: text/plain; charset=UTF-8' . "\n"
|
. 'Content-type: text/plain; charset=UTF-8' . "\n"
|
||||||
. 'Content-transfer-encoding: 8bit' );
|
. 'Content-transfer-encoding: 8bit' );
|
||||||
|
|
||||||
|
@ -103,8 +104,10 @@ function lostpass_content(&$a) {
|
||||||
'$new_password' => $new_password,
|
'$new_password' => $new_password,
|
||||||
'$uid' => $newuid ));
|
'$uid' => $newuid ));
|
||||||
|
|
||||||
$res = mail($email,"Your password has changed at {$a->config['sitename']}",$email_tpl,
|
$subject = sprintf( t('Your password has been changed at %s'), $a->config['sitename']);
|
||||||
'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME'] . "\n"
|
|
||||||
|
$res = mail($email, email_header_encode( $subject, 'UTF-8'), $email_tpl,
|
||||||
|
'From: ' . 'Administrator' . '@' . $_SERVER['SERVER_NAME'] . "\n"
|
||||||
. 'Content-type: text/plain; charset=UTF-8' . "\n"
|
. 'Content-type: text/plain; charset=UTF-8' . "\n"
|
||||||
. 'Content-transfer-encoding: 8bit' );
|
. 'Content-transfer-encoding: 8bit' );
|
||||||
|
|
||||||
|
|
7
mod/maintenance.php
Normal file
7
mod/maintenance.php
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
function maintenance_content(&$a) {
|
||||||
|
return replace_macros(get_markup_template('maintenance.tpl'), array(
|
||||||
|
'$sysdown' => t('System down for maintenance')
|
||||||
|
));
|
||||||
|
}
|
|
@ -516,7 +516,7 @@ function message_content(&$a) {
|
||||||
'$to' => t('To:'),
|
'$to' => t('To:'),
|
||||||
'$showinputs' => '',
|
'$showinputs' => '',
|
||||||
'$subject' => t('Subject:'),
|
'$subject' => t('Subject:'),
|
||||||
'$subjtxt' => template_escape($message['title']),
|
'$subjtxt' => $subjtxt_e,
|
||||||
'$readonly' => ' readonly="readonly" style="background: #BBBBBB;" ',
|
'$readonly' => ' readonly="readonly" style="background: #BBBBBB;" ',
|
||||||
'$yourmessage' => t('Your message:'),
|
'$yourmessage' => t('Your message:'),
|
||||||
'$text' => '',
|
'$text' => '',
|
||||||
|
|
|
@ -236,8 +236,6 @@ function parse_url_content(&$a) {
|
||||||
$str_tags = '';
|
$str_tags = '';
|
||||||
|
|
||||||
$textmode = false;
|
$textmode = false;
|
||||||
if(local_user() && intval(get_pconfig(local_user(),'system','plaintext')))
|
|
||||||
$textmode = true;
|
|
||||||
|
|
||||||
if(local_user() && (! feature_enabled(local_user(),'richtext')))
|
if(local_user() && (! feature_enabled(local_user(),'richtext')))
|
||||||
$textmode = true;
|
$textmode = true;
|
||||||
|
|
|
@ -33,7 +33,6 @@ function profile_init(&$a) {
|
||||||
auto_redir($a, $which);
|
auto_redir($a, $which);
|
||||||
}
|
}
|
||||||
|
|
||||||
set_template_engine($a); // reset the template engine to the default in case the user's theme doesn't specify one
|
|
||||||
profile_load($a,$which,$profile);
|
profile_load($a,$which,$profile);
|
||||||
|
|
||||||
$blocked = (((get_config('system','block_public')) && (! local_user()) && (! remote_user())) ? true : false);
|
$blocked = (((get_config('system','block_public')) && (! local_user()) && (! remote_user())) ? true : false);
|
||||||
|
|
258
mod/profiles.php
258
mod/profiles.php
|
@ -1,6 +1,145 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
|
||||||
|
function profiles_init(&$a) {
|
||||||
|
|
||||||
|
nav_set_selected('profiles');
|
||||||
|
|
||||||
|
if(! local_user()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(($a->argc > 2) && ($a->argv[1] === "drop") && intval($a->argv[2])) {
|
||||||
|
$r = q("SELECT * FROM `profile` WHERE `id` = %d AND `uid` = %d AND `is-default` = 0 LIMIT 1",
|
||||||
|
intval($a->argv[2]),
|
||||||
|
intval(local_user())
|
||||||
|
);
|
||||||
|
if(! count($r)) {
|
||||||
|
notice( t('Profile not found.') . EOL);
|
||||||
|
goaway($a->get_baseurl(true) . '/profiles');
|
||||||
|
return; // NOTREACHED
|
||||||
|
}
|
||||||
|
|
||||||
|
check_form_security_token_redirectOnErr('/profiles', 'profile_drop', 't');
|
||||||
|
|
||||||
|
// 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 ",
|
||||||
|
intval(local_user()),
|
||||||
|
intval($a->argv[2]),
|
||||||
|
intval(local_user())
|
||||||
|
);
|
||||||
|
$r = q("DELETE FROM `profile` WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
||||||
|
intval($a->argv[2]),
|
||||||
|
intval(local_user())
|
||||||
|
);
|
||||||
|
if($r)
|
||||||
|
info( t('Profile deleted.') . EOL);
|
||||||
|
|
||||||
|
goaway($a->get_baseurl(true) . '/profiles');
|
||||||
|
return; // NOTREACHED
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
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",
|
||||||
|
intval(local_user()));
|
||||||
|
$num_profiles = count($r0);
|
||||||
|
|
||||||
|
$name = t('Profile-') . ($num_profiles + 1);
|
||||||
|
|
||||||
|
$r1 = q("SELECT `name`, `photo`, `thumb` FROM `profile` WHERE `uid` = %d AND `is-default` = 1 LIMIT 1",
|
||||||
|
intval(local_user()));
|
||||||
|
|
||||||
|
$r2 = q("INSERT INTO `profile` (`uid` , `profile-name` , `name`, `photo`, `thumb`)
|
||||||
|
VALUES ( %d, '%s', '%s', '%s', '%s' )",
|
||||||
|
intval(local_user()),
|
||||||
|
dbesc($name),
|
||||||
|
dbesc($r1[0]['name']),
|
||||||
|
dbesc($r1[0]['photo']),
|
||||||
|
dbesc($r1[0]['thumb'])
|
||||||
|
);
|
||||||
|
|
||||||
|
$r3 = q("SELECT `id` FROM `profile` WHERE `uid` = %d AND `profile-name` = '%s' LIMIT 1",
|
||||||
|
intval(local_user()),
|
||||||
|
dbesc($name)
|
||||||
|
);
|
||||||
|
|
||||||
|
info( t('New profile created.') . EOL);
|
||||||
|
if(count($r3) == 1)
|
||||||
|
goaway($a->get_baseurl(true) . '/profiles/' . $r3[0]['id']);
|
||||||
|
|
||||||
|
goaway($a->get_baseurl(true) . '/profiles');
|
||||||
|
}
|
||||||
|
|
||||||
|
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",
|
||||||
|
intval(local_user()));
|
||||||
|
$num_profiles = count($r0);
|
||||||
|
|
||||||
|
$name = t('Profile-') . ($num_profiles + 1);
|
||||||
|
$r1 = q("SELECT * FROM `profile` WHERE `uid` = %d AND `id` = %d LIMIT 1",
|
||||||
|
intval(local_user()),
|
||||||
|
intval($a->argv[2])
|
||||||
|
);
|
||||||
|
if(! count($r1)) {
|
||||||
|
notice( t('Profile unavailable to clone.') . EOL);
|
||||||
|
killme();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
unset($r1[0]['id']);
|
||||||
|
$r1[0]['is-default'] = 0;
|
||||||
|
$r1[0]['publish'] = 0;
|
||||||
|
$r1[0]['net-publish'] = 0;
|
||||||
|
$r1[0]['profile-name'] = dbesc($name);
|
||||||
|
|
||||||
|
dbesc_array($r1[0]);
|
||||||
|
|
||||||
|
$r2 = dbq("INSERT INTO `profile` (`"
|
||||||
|
. implode("`, `", array_keys($r1[0]))
|
||||||
|
. "`) VALUES ('"
|
||||||
|
. implode("', '", array_values($r1[0]))
|
||||||
|
. "')" );
|
||||||
|
|
||||||
|
$r3 = q("SELECT `id` FROM `profile` WHERE `uid` = %d AND `profile-name` = '%s' LIMIT 1",
|
||||||
|
intval(local_user()),
|
||||||
|
dbesc($name)
|
||||||
|
);
|
||||||
|
info( t('New profile created.') . EOL);
|
||||||
|
if(count($r3) == 1)
|
||||||
|
goaway($a->get_baseurl(true) . '/profiles/' . $r3[0]['id']);
|
||||||
|
|
||||||
|
goaway($a->get_baseurl(true) . '/profiles');
|
||||||
|
|
||||||
|
return; // NOTREACHED
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if(($a->argc > 1) && (intval($a->argv[1]))) {
|
||||||
|
$r = q("SELECT id FROM `profile` WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
||||||
|
intval($a->argv[1]),
|
||||||
|
intval(local_user())
|
||||||
|
);
|
||||||
|
if(! count($r)) {
|
||||||
|
notice( t('Profile not found.') . EOL);
|
||||||
|
killme();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
profile_load($a,$a->user['nickname'],$r[0]['id']);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
function profiles_post(&$a) {
|
function profiles_post(&$a) {
|
||||||
|
|
||||||
if(! local_user()) {
|
if(! local_user()) {
|
||||||
|
@ -424,127 +563,12 @@ function profile_activity($changed, $value) {
|
||||||
|
|
||||||
function profiles_content(&$a) {
|
function profiles_content(&$a) {
|
||||||
|
|
||||||
$o = '';
|
|
||||||
nav_set_selected('profiles');
|
|
||||||
|
|
||||||
if(! local_user()) {
|
if(! local_user()) {
|
||||||
notice( t('Permission denied.') . EOL);
|
notice( t('Permission denied.') . EOL);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(($a->argc > 2) && ($a->argv[1] === "drop") && intval($a->argv[2])) {
|
$o = '';
|
||||||
$r = q("SELECT * FROM `profile` WHERE `id` = %d AND `uid` = %d AND `is-default` = 0 LIMIT 1",
|
|
||||||
intval($a->argv[2]),
|
|
||||||
intval(local_user())
|
|
||||||
);
|
|
||||||
if(! count($r)) {
|
|
||||||
notice( t('Profile not found.') . EOL);
|
|
||||||
goaway($a->get_baseurl(true) . '/profiles');
|
|
||||||
return; // NOTREACHED
|
|
||||||
}
|
|
||||||
|
|
||||||
check_form_security_token_redirectOnErr('/profiles', 'profile_drop', 't');
|
|
||||||
|
|
||||||
// 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 ",
|
|
||||||
intval(local_user()),
|
|
||||||
intval($a->argv[2]),
|
|
||||||
intval(local_user())
|
|
||||||
);
|
|
||||||
$r = q("DELETE FROM `profile` WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
|
||||||
intval($a->argv[2]),
|
|
||||||
intval(local_user())
|
|
||||||
);
|
|
||||||
if($r)
|
|
||||||
info( t('Profile deleted.') . EOL);
|
|
||||||
|
|
||||||
goaway($a->get_baseurl(true) . '/profiles');
|
|
||||||
return; // NOTREACHED
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
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",
|
|
||||||
intval(local_user()));
|
|
||||||
$num_profiles = count($r0);
|
|
||||||
|
|
||||||
$name = t('Profile-') . ($num_profiles + 1);
|
|
||||||
|
|
||||||
$r1 = q("SELECT `name`, `photo`, `thumb` FROM `profile` WHERE `uid` = %d AND `is-default` = 1 LIMIT 1",
|
|
||||||
intval(local_user()));
|
|
||||||
|
|
||||||
$r2 = q("INSERT INTO `profile` (`uid` , `profile-name` , `name`, `photo`, `thumb`)
|
|
||||||
VALUES ( %d, '%s', '%s', '%s', '%s' )",
|
|
||||||
intval(local_user()),
|
|
||||||
dbesc($name),
|
|
||||||
dbesc($r1[0]['name']),
|
|
||||||
dbesc($r1[0]['photo']),
|
|
||||||
dbesc($r1[0]['thumb'])
|
|
||||||
);
|
|
||||||
|
|
||||||
$r3 = q("SELECT `id` FROM `profile` WHERE `uid` = %d AND `profile-name` = '%s' LIMIT 1",
|
|
||||||
intval(local_user()),
|
|
||||||
dbesc($name)
|
|
||||||
);
|
|
||||||
|
|
||||||
info( t('New profile created.') . EOL);
|
|
||||||
if(count($r3) == 1)
|
|
||||||
goaway($a->get_baseurl(true) . '/profiles/' . $r3[0]['id']);
|
|
||||||
|
|
||||||
goaway($a->get_baseurl(true) . '/profiles');
|
|
||||||
}
|
|
||||||
|
|
||||||
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",
|
|
||||||
intval(local_user()));
|
|
||||||
$num_profiles = count($r0);
|
|
||||||
|
|
||||||
$name = t('Profile-') . ($num_profiles + 1);
|
|
||||||
$r1 = q("SELECT * FROM `profile` WHERE `uid` = %d AND `id` = %d LIMIT 1",
|
|
||||||
intval(local_user()),
|
|
||||||
intval($a->argv[2])
|
|
||||||
);
|
|
||||||
if(! count($r1)) {
|
|
||||||
notice( t('Profile unavailable to clone.') . EOL);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
unset($r1[0]['id']);
|
|
||||||
$r1[0]['is-default'] = 0;
|
|
||||||
$r1[0]['publish'] = 0;
|
|
||||||
$r1[0]['net-publish'] = 0;
|
|
||||||
$r1[0]['profile-name'] = dbesc($name);
|
|
||||||
|
|
||||||
dbesc_array($r1[0]);
|
|
||||||
|
|
||||||
$r2 = dbq("INSERT INTO `profile` (`"
|
|
||||||
. implode("`, `", array_keys($r1[0]))
|
|
||||||
. "`) VALUES ('"
|
|
||||||
. implode("', '", array_values($r1[0]))
|
|
||||||
. "')" );
|
|
||||||
|
|
||||||
$r3 = q("SELECT `id` FROM `profile` WHERE `uid` = %d AND `profile-name` = '%s' LIMIT 1",
|
|
||||||
intval(local_user()),
|
|
||||||
dbesc($name)
|
|
||||||
);
|
|
||||||
info( t('New profile created.') . EOL);
|
|
||||||
if(count($r3) == 1)
|
|
||||||
goaway($a->get_baseurl(true) . '/profiles/' . $r3[0]['id']);
|
|
||||||
|
|
||||||
goaway($a->get_baseurl(true) . '/profiles');
|
|
||||||
|
|
||||||
return; // NOTREACHED
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if(($a->argc > 1) && (intval($a->argv[1]))) {
|
if(($a->argc > 1) && (intval($a->argv[1]))) {
|
||||||
$r = q("SELECT * FROM `profile` WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
$r = q("SELECT * FROM `profile` WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
||||||
|
@ -556,8 +580,6 @@ function profiles_content(&$a) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
profile_load($a,$a->user['nickname'],$r[0]['id']);
|
|
||||||
|
|
||||||
require_once('include/profile_selectors.php');
|
require_once('include/profile_selectors.php');
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
require_once('include/email.php');
|
||||||
|
|
||||||
if(! function_exists('register_post')) {
|
if(! function_exists('register_post')) {
|
||||||
function register_post(&$a) {
|
function register_post(&$a) {
|
||||||
|
|
||||||
|
@ -86,9 +88,9 @@ function register_post(&$a) {
|
||||||
'$password' => $result['password'],
|
'$password' => $result['password'],
|
||||||
'$uid' => $user['uid'] ));
|
'$uid' => $user['uid'] ));
|
||||||
|
|
||||||
$res = mail($user['email'], sprintf(t('Registration details for %s'), $a->config['sitename']),
|
$res = mail($user['email'], email_header_encode( sprintf( t('Registration details for %s'), $a->config['sitename']),'UTF-8'),
|
||||||
$email_tpl,
|
$email_tpl,
|
||||||
'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME'] . "\n"
|
'From: ' . 'Administrator' . '@' . $_SERVER['SERVER_NAME'] . "\n"
|
||||||
. 'Content-type: text/plain; charset=UTF-8' . "\n"
|
. 'Content-type: text/plain; charset=UTF-8' . "\n"
|
||||||
. 'Content-transfer-encoding: 8bit' );
|
. 'Content-transfer-encoding: 8bit' );
|
||||||
|
|
||||||
|
@ -140,9 +142,9 @@ function register_post(&$a) {
|
||||||
'$hash' => $hash
|
'$hash' => $hash
|
||||||
));
|
));
|
||||||
|
|
||||||
$res = mail($a->config['admin_email'], sprintf(t('Registration request at %s'), $a->config['sitename']),
|
$res = mail($a->config['admin_email'], email_header_encode( sprintf(t('Registration request at %s'), $a->config['sitename']),'UTF-8'),
|
||||||
$email_tpl,
|
$email_tpl,
|
||||||
'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME'] . "\n"
|
'From: ' . 'Administrator' . '@' . $_SERVER['SERVER_NAME'] . "\n"
|
||||||
. 'Content-type: text/plain; charset=UTF-8' . "\n"
|
. 'Content-type: text/plain; charset=UTF-8' . "\n"
|
||||||
. 'Content-transfer-encoding: 8bit' );
|
. 'Content-transfer-encoding: 8bit' );
|
||||||
|
|
||||||
|
@ -239,7 +241,6 @@ function register_content(&$a) {
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$license = '';
|
$license = '';
|
||||||
|
|
||||||
$o = get_markup_template("register.tpl");
|
$o = get_markup_template("register.tpl");
|
||||||
|
@ -267,7 +268,7 @@ function register_content(&$a) {
|
||||||
'$openid' => $openid_url,
|
'$openid' => $openid_url,
|
||||||
'$namelabel' => t('Your Full Name ' . "\x28" . 'e.g. Joe Smith' . "\x29" . ': '),
|
'$namelabel' => t('Your Full Name ' . "\x28" . 'e.g. Joe Smith' . "\x29" . ': '),
|
||||||
'$addrlabel' => t('Your Email Address: '),
|
'$addrlabel' => t('Your Email Address: '),
|
||||||
'$nickdesc' => t('Choose a profile nickname. This must begin with a text character. Your profile address on this site will then be \'<strong>nickname@$sitename</strong>\'.'),
|
'$nickdesc' => str_replace('$sitename',$a->get_hostname(),t('Choose a profile nickname. This must begin with a text character. Your profile address on this site will then be \'<strong>nickname@$sitename</strong>\'.')),
|
||||||
'$nicklabel' => t('Choose a nickname: '),
|
'$nicklabel' => t('Choose a nickname: '),
|
||||||
'$photo' => $photo,
|
'$photo' => $photo,
|
||||||
'$publish' => $profile_publish,
|
'$publish' => $profile_publish,
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
require_once('include/email.php');
|
||||||
|
|
||||||
function user_allow($hash) {
|
function user_allow($hash) {
|
||||||
|
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
|
@ -49,9 +51,9 @@ function user_allow($hash) {
|
||||||
'$uid' => $user[0]['uid']
|
'$uid' => $user[0]['uid']
|
||||||
));
|
));
|
||||||
|
|
||||||
$res = mail($user[0]['email'], sprintf(t('Registration details for %s'), $a->config['sitename']),
|
$res = mail($user[0]['email'], email_header_encode( sprintf(t('Registration details for %s'), $a->config['sitename']), 'UTF-8'),
|
||||||
$email_tpl,
|
$email_tpl,
|
||||||
'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME'] . "\n"
|
'From: ' . 'Administrator' . '@' . $_SERVER['SERVER_NAME'] . "\n"
|
||||||
. 'Content-type: text/plain; charset=UTF-8' . "\n"
|
. 'Content-type: text/plain; charset=UTF-8' . "\n"
|
||||||
. 'Content-transfer-encoding: 8bit' );
|
. 'Content-transfer-encoding: 8bit' );
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,8 @@ function share_init(&$a) {
|
||||||
$o = "[share author='".str_replace("'", "'",$r[0]['author-name']).
|
$o = "[share author='".str_replace("'", "'",$r[0]['author-name']).
|
||||||
"' profile='".$r[0]['author-link'].
|
"' profile='".$r[0]['author-link'].
|
||||||
"' avatar='".$r[0]['author-avatar'].
|
"' avatar='".$r[0]['author-avatar'].
|
||||||
"' link='".$r[0]['plink']."']\n";
|
"' link='".$r[0]['plink'].
|
||||||
|
"' posted='".$r[0]['created']."']\n";
|
||||||
if($r[0]['title'])
|
if($r[0]['title'])
|
||||||
$o .= '[b]'.$r[0]['title'].'[/b]'."\n";
|
$o .= '[b]'.$r[0]['title'].'[/b]'."\n";
|
||||||
$o .= $r[0]['body'];
|
$o .= $r[0]['body'];
|
||||||
|
|
|
@ -160,7 +160,12 @@ function wall_upload_post(&$a) {
|
||||||
|
|
||||||
//if we get the signal then return the image url info in BBCODE, otherwise this outputs the info and bails (for the ajax image uploader on wall post)
|
//if we get the signal then return the image url info in BBCODE, otherwise this outputs the info and bails (for the ajax image uploader on wall post)
|
||||||
if ($_REQUEST['hush']!='yeah') {
|
if ($_REQUEST['hush']!='yeah') {
|
||||||
echo "\n\n" . '[url=' . $a->get_baseurl() . '/photos/' . $page_owner_nick . '/image/' . $hash . '][img]' . $a->get_baseurl() . "/photo/{$hash}-{$smallest}.".$ph->getExt()."[/img][/url]\n\n";
|
if(local_user() && (! feature_enabled(local_user(),'richtext') || x($_REQUEST['nomce'])) ) {
|
||||||
|
echo "\n\n" . '[url=' . $a->get_baseurl() . '/photos/' . $page_owner_nick . '/image/' . $hash . '][img]' . $a->get_baseurl() . "/photo/{$hash}-{$smallest}.".$ph->getExt()."[/img][/url]\n\n";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
echo '<br /><br /><a href="' . $a->get_baseurl() . '/photos/' . $page_owner_nick . '/image/' . $hash . '" ><img src="' . $a->get_baseurl() . "/photo/{$hash}-{$smallest}.".$ph->getExt()."\" alt=\"$basename\" /></a><br /><br />";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$m = '[url=' . $a->get_baseurl() . '/photos/' . $page_owner_nick . '/image/' . $hash . '][img]' . $a->get_baseurl() . "/photo/{$hash}-{$smallest}.".$ph->getExt()."[/img][/url]";
|
$m = '[url=' . $a->get_baseurl() . '/photos/' . $page_owner_nick . '/image/' . $hash . '][img]' . $a->get_baseurl() . "/photo/{$hash}-{$smallest}.".$ph->getExt()."[/img][/url]";
|
||||||
|
|
|
@ -1,14 +1,17 @@
|
||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# Script to convert Friendica internal template files into Smarty template files
|
# Script to convert Friendica internal template files into Smarty template files
|
||||||
# Copyright 2012 Zach Prezkuta
|
# Copyright 2013 Zach Prezkuta
|
||||||
# Licensed under GPL v3
|
# Licensed under GPL v3
|
||||||
|
|
||||||
import os, re, string
|
import os, re, string
|
||||||
|
import sys, getopt
|
||||||
|
|
||||||
ldelim = '{{'
|
ldelim = '{{'
|
||||||
rdelim = '}}'
|
rdelim = '}}'
|
||||||
|
|
||||||
|
addheader = True
|
||||||
|
|
||||||
def fToSmarty(matches):
|
def fToSmarty(matches):
|
||||||
match = matches.group(0)
|
match = matches.group(0)
|
||||||
if match == '$j':
|
if match == '$j':
|
||||||
|
@ -77,7 +80,7 @@ def fix_element(element):
|
||||||
|
|
||||||
if parts[first+1][0] == '$':
|
if parts[first+1][0] == '$':
|
||||||
# This takes care of elements where the filename is a variable, e.g. {{ inc $file }}
|
# This takes care of elements where the filename is a variable, e.g. {{ inc $file }}
|
||||||
element += 'file:' + ldelim + parts[first+1].rstrip('}') + rdelim
|
element += ldelim + parts[first+1].rstrip('}') + rdelim
|
||||||
else:
|
else:
|
||||||
# This takes care of elements where the filename is a path, e.g. {{ inc file.tpl }}
|
# This takes care of elements where the filename is a path, e.g. {{ inc file.tpl }}
|
||||||
element += parts[first+1].rstrip('}')
|
element += parts[first+1].rstrip('}')
|
||||||
|
@ -93,6 +96,10 @@ def fix_element(element):
|
||||||
|
|
||||||
|
|
||||||
def convert(filename, tofilename, php_tpl):
|
def convert(filename, tofilename, php_tpl):
|
||||||
|
if addheader:
|
||||||
|
header = ldelim + "*\n *\tAUTOMATICALLY GENERATED TEMPLATE\n *\tDO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN\n *\n *" + rdelim + "\n"
|
||||||
|
tofilename.write(header)
|
||||||
|
|
||||||
for line in filename:
|
for line in filename:
|
||||||
newline = ''
|
newline = ''
|
||||||
st_pos = 0
|
st_pos = 0
|
||||||
|
@ -170,7 +177,39 @@ def convert(filename, tofilename, php_tpl):
|
||||||
tofilename.write(newline)
|
tofilename.write(newline)
|
||||||
|
|
||||||
|
|
||||||
path = raw_input('Path to template folder to convert: ')
|
def help(pname):
|
||||||
|
print "\nUsage:"
|
||||||
|
print "\t" + pname + " -h\n\n\t\t\tShow this help screen\n"
|
||||||
|
print "\t" + pname + " -p directory\n\n\t\t\tConvert all .tpl files in directory to\n\t\t\tSmarty templates in directory/smarty3/\n"
|
||||||
|
print "\t" + pname + "\n\n\t\t\tInteractive mode\n"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Main script
|
||||||
|
#
|
||||||
|
|
||||||
|
path = ''
|
||||||
|
|
||||||
|
try:
|
||||||
|
opts, args = getopt.getopt(sys.argv[1:], "hp:", ['no-header'])
|
||||||
|
for opt, arg in opts:
|
||||||
|
if opt == '-h':
|
||||||
|
help(sys.argv[0])
|
||||||
|
sys.exit()
|
||||||
|
elif opt == '-p':
|
||||||
|
path = arg
|
||||||
|
elif opt == '--no-header':
|
||||||
|
addheader = False
|
||||||
|
except getopt.GetoptError:
|
||||||
|
help(sys.argv[0])
|
||||||
|
sys.exit(2)
|
||||||
|
|
||||||
|
|
||||||
|
if path == '':
|
||||||
|
path = raw_input('Path to template folder to convert: ')
|
||||||
|
|
||||||
if path[-1:] != '/':
|
if path[-1:] != '/':
|
||||||
path = path + '/'
|
path = path + '/'
|
||||||
|
|
||||||
|
@ -189,10 +228,14 @@ for a_file in files:
|
||||||
filename = os.path.join(path,a_file)
|
filename = os.path.join(path,a_file)
|
||||||
ext = a_file.split('.')[-1]
|
ext = a_file.split('.')[-1]
|
||||||
if os.path.isfile(filename) and ext == 'tpl':
|
if os.path.isfile(filename) and ext == 'tpl':
|
||||||
with open(filename, 'r') as f:
|
f = open(filename, 'r')
|
||||||
newfilename = os.path.join(outpath,a_file)
|
|
||||||
with open(newfilename, 'w') as outf:
|
|
||||||
print "Converting " + filename + " to " + newfilename
|
|
||||||
convert(f, outf, php_tpl)
|
|
||||||
|
|
||||||
|
newfilename = os.path.join(outpath,a_file)
|
||||||
|
outf = open(newfilename, 'w')
|
||||||
|
|
||||||
|
print "Converting " + filename + " to " + newfilename
|
||||||
|
convert(f, outf, php_tpl)
|
||||||
|
|
||||||
|
outf.close()
|
||||||
|
f.close()
|
||||||
|
|
||||||
|
|
|
@ -79,7 +79,7 @@ server {
|
||||||
# otherwise fall back to front controller
|
# otherwise fall back to front controller
|
||||||
# allow browser to cache them
|
# allow browser to cache them
|
||||||
# added .htm for advanced source code editor library
|
# added .htm for advanced source code editor library
|
||||||
location ~* \.(jpg|jpeg|gif|png|css|js|htm|html)$ {
|
location ~* \.(jpg|jpeg|gif|png|ico|css|js|htm|html|ttf|svg)$ {
|
||||||
expires 30d;
|
expires 30d;
|
||||||
try_files $uri /index.php?q=$uri&$args;
|
try_files $uri /index.php?q=$uri&$args;
|
||||||
}
|
}
|
||||||
|
|
64
mods/updatetpl.py
Executable file
64
mods/updatetpl.py
Executable file
|
@ -0,0 +1,64 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# Script to update Smarty template files from all internal templates
|
||||||
|
# Copyright 2013 Zach Prezkuta
|
||||||
|
# Licensed under GPL v3
|
||||||
|
|
||||||
|
|
||||||
|
import os
|
||||||
|
import sys, getopt
|
||||||
|
import subprocess
|
||||||
|
|
||||||
|
|
||||||
|
def help(pname):
|
||||||
|
print "\nUsage:"
|
||||||
|
print "\t" + pname + " -h\n\n\t\t\tShow this help screen\n"
|
||||||
|
print "\t" + pname + " -p directory\n\n\t\t\tConvert all .tpl files in top-level\n\t\t\tFriendica directory to Smarty templates\n"
|
||||||
|
print "\t" + pname + "\n\n\t\t\tInteractive mode\n"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Main script
|
||||||
|
#
|
||||||
|
|
||||||
|
path = ''
|
||||||
|
|
||||||
|
try:
|
||||||
|
opts, args = getopt.getopt(sys.argv[1:], "hp:")
|
||||||
|
for opt, arg in opts:
|
||||||
|
if opt == '-h':
|
||||||
|
help(sys.argv[0])
|
||||||
|
sys.exit()
|
||||||
|
elif opt == '-p':
|
||||||
|
path = arg
|
||||||
|
except getopt.GetoptError:
|
||||||
|
help(sys.argv[0])
|
||||||
|
sys.exit(2)
|
||||||
|
|
||||||
|
if path == '':
|
||||||
|
path = raw_input('Path to top-level Friendica directory: ')
|
||||||
|
|
||||||
|
if path[-1:] != '/':
|
||||||
|
path = path + '/'
|
||||||
|
|
||||||
|
tplpaths = ['view/']
|
||||||
|
names = os.listdir(path + 'view/')
|
||||||
|
for name in names:
|
||||||
|
if os.path.isdir(path + 'view/' + name):
|
||||||
|
if name != 'smarty3' and name != 'theme':
|
||||||
|
tplpaths.append('view/' + name + '/')
|
||||||
|
|
||||||
|
names = os.listdir(path + 'view/theme/')
|
||||||
|
for name in names:
|
||||||
|
if os.path.isdir(path + 'view/theme/' + name):
|
||||||
|
tplpaths.append('view/theme/' + name + '/')
|
||||||
|
|
||||||
|
fnull = open(os.devnull, "w")
|
||||||
|
|
||||||
|
for tplpath in tplpaths:
|
||||||
|
print "Converting " + path + tplpath
|
||||||
|
subprocess.call(['python', path + 'mods/friendica-to-smarty-tpl.py', '-p', path + tplpath], stdout = fnull)
|
||||||
|
|
||||||
|
fnull.close()
|
||||||
|
|
|
@ -66,6 +66,7 @@ class Item extends BaseObject {
|
||||||
if(! visible_activity($item)) {
|
if(! visible_activity($item)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
$item['pagedrop'] = $data['pagedrop'];
|
||||||
$child = new Item($item);
|
$child = new Item($item);
|
||||||
$this->add_child($child);
|
$this->add_child($child);
|
||||||
}
|
}
|
||||||
|
@ -150,7 +151,7 @@ class Item extends BaseObject {
|
||||||
$hashtags = array();
|
$hashtags = array();
|
||||||
$mentions = array();
|
$mentions = array();
|
||||||
|
|
||||||
$taglist = q("SELECT `type`, `term`, `url` FROM `term` WHERE `otype` = %d AND `oid` = %d AND `type` IN (%d, %d)",
|
$taglist = q("SELECT `type`, `term`, `url` FROM `term` WHERE `otype` = %d AND `oid` = %d AND `type` IN (%d, %d) ORDER BY `tid`",
|
||||||
intval(TERM_OBJ_POST), intval($item['id']), intval(TERM_HASHTAG), intval(TERM_MENTION));
|
intval(TERM_OBJ_POST), intval($item['id']), intval(TERM_HASHTAG), intval(TERM_MENTION));
|
||||||
|
|
||||||
foreach($taglist as $tag) {
|
foreach($taglist as $tag) {
|
||||||
|
@ -536,13 +537,7 @@ class Item extends BaseObject {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if($a->theme['template_engine'] === 'smarty3') {
|
$this->template = $this->available_templates[$name];
|
||||||
$template_file = get_template_file($a, 'smarty3/' . $this->available_templates[$name]);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$template_file = $this->available_templates[$name];
|
|
||||||
}
|
|
||||||
$this->template = $template_file;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
27
update.php
27
update.php
|
@ -1371,6 +1371,7 @@ ADD INDEX ( `datasize` ) ");
|
||||||
}
|
}
|
||||||
|
|
||||||
function update_1157() {
|
function update_1157() {
|
||||||
|
<<<<<<< HEAD
|
||||||
$r = q("ALTER TABLE `term` ADD `aid` int(10) unsigned NOT NULL DEFAULT '0',
|
$r = q("ALTER TABLE `term` ADD `aid` int(10) unsigned NOT NULL DEFAULT '0',
|
||||||
ADD `uid` int(10) unsigned NOT NULL DEFAULT '0',
|
ADD `uid` int(10) unsigned NOT NULL DEFAULT '0',
|
||||||
ADD INDEX (`uid`),
|
ADD INDEX (`uid`),
|
||||||
|
@ -1380,6 +1381,32 @@ function update_1157() {
|
||||||
return UPDATE_SUCCESS;
|
return UPDATE_SUCCESS;
|
||||||
}
|
}
|
||||||
function update_1158() {
|
function update_1158() {
|
||||||
|
$r = q("CREATE TABLE IF NOT EXISTS `dsprphotoq` (
|
||||||
|
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
`uid` int(11) NOT NULL,
|
||||||
|
`msg` mediumtext NOT NULL,
|
||||||
|
`attempt` tinyint(4) NOT NULL,
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=utf8"
|
||||||
|
);
|
||||||
|
|
||||||
|
if($r)
|
||||||
|
return UPDATE_SUCCESS;
|
||||||
|
|
||||||
|
return UPDATE_FAILED;
|
||||||
|
}
|
||||||
|
|
||||||
|
function update_1159() {
|
||||||
|
$r = q("ALTER TABLE `term` ADD `aid` int(10) unsigned NOT NULL DEFAULT '0',
|
||||||
|
ADD `uid` int(10) unsigned NOT NULL DEFAULT '0',
|
||||||
|
ADD INDEX (`uid`),
|
||||||
|
ADD INDEX (`aid`)");
|
||||||
|
|
||||||
|
if(!$r) return UPDATE_FAILED;
|
||||||
|
return UPDATE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
function update_1160() {
|
||||||
$r = q("ALTER TABLE `item` ADD `mention` TINYINT(1) NOT NULL DEFAULT '0', ADD INDEX (`mention`)");
|
$r = q("ALTER TABLE `item` ADD `mention` TINYINT(1) NOT NULL DEFAULT '0', ADD INDEX (`mention`)");
|
||||||
// KEY `mention` (`mention`)
|
// KEY `mention` (`mention`)
|
||||||
if(!$r) return UPDATE_FAILED;
|
if(!$r) return UPDATE_FAILED;
|
||||||
|
|
34
util/config
Normal file
34
util/config
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
#!/usr/bin/env php
|
||||||
|
<?php
|
||||||
|
|
||||||
|
// Red config utility
|
||||||
|
|
||||||
|
require_once('include/cli_startup.php');
|
||||||
|
|
||||||
|
cli_startup();
|
||||||
|
|
||||||
|
if($argc > 3) {
|
||||||
|
set_config($argv[1],$argv[2],$argv[3]);
|
||||||
|
echo "config[{$argv[1]}][{$argv[2]}] = " . get_config($argv[1],$argv[2]) . "\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
if($argc == 3) {
|
||||||
|
echo "config[{$argv[1]}][{$argv[2]}] = " . get_config($argv[1],$argv[2]) . "\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
if($argc == 2) {
|
||||||
|
load_config($argv[1]);
|
||||||
|
foreach($a->config[$argv[1]] as $k => $x) {
|
||||||
|
echo "config[{$argv[1]}][{$k}] = " . $x . "\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if($argc == 1) {
|
||||||
|
$r = q("select * from config where 1");
|
||||||
|
if($r) {
|
||||||
|
foreach($r as $rr) {
|
||||||
|
echo "config[{$rr['cat']}][{$rr['k']}] = " . $rr['v'] . "\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
26
util/config.md
Normal file
26
util/config.md
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
CLI config utility
|
||||||
|
==================
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
|
||||||
|
|
||||||
|
config
|
||||||
|
displays all config entries
|
||||||
|
|
||||||
|
|
||||||
|
config family
|
||||||
|
displays all config entries for family (system, database, etc)
|
||||||
|
|
||||||
|
|
||||||
|
config family key
|
||||||
|
displays single config entry for specified family and key
|
||||||
|
|
||||||
|
config family key value
|
||||||
|
set config entry for specified family and key to value and display result
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Notes:
|
||||||
|
Setting config entries which are manually set in .htconfig.php may result in
|
||||||
|
conflict between database settings and the manual startup settings.
|
||||||
|
|
31
util/maintenance.php
Normal file
31
util/maintenance.php
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
require_once("boot.php");
|
||||||
|
|
||||||
|
$a = new App;
|
||||||
|
@include(".htconfig.php");
|
||||||
|
|
||||||
|
$lang = get_browser_language();
|
||||||
|
load_translation_table($lang);
|
||||||
|
|
||||||
|
require_once("include/dba.php");
|
||||||
|
$db = new dba($db_host, $db_user, $db_pass, $db_data, false);
|
||||||
|
unset($db_host, $db_user, $db_pass, $db_data);
|
||||||
|
load_config('config');
|
||||||
|
load_config('system');
|
||||||
|
|
||||||
|
$maint_mode = 1;
|
||||||
|
if($argc > 1)
|
||||||
|
$maint_mode = intval($argv[1]);
|
||||||
|
set_config('system', 'maintenance', $maint_mode);
|
||||||
|
|
||||||
|
if($maint_mode)
|
||||||
|
$mode_str = "maintenance mode";
|
||||||
|
else
|
||||||
|
$mode_str = "normal mode";
|
||||||
|
|
||||||
|
echo "\n\tSystem set in $mode_str\n\n";
|
||||||
|
echo "Usage:\n\n";
|
||||||
|
echo "\tphp {$argv[0]} [1]\tSet the system in maintenance mode\n";
|
||||||
|
echo "\tphp {$argv[0]} 0 \tSet the system in normal mode\n\n";
|
||||||
|
|
1130
util/messages.po
1130
util/messages.po
File diff suppressed because it is too large
Load diff
|
@ -1,3 +1,8 @@
|
||||||
|
{{*
|
||||||
|
* AUTOMATICALLY GENERATED TEMPLATE
|
||||||
|
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||||
|
*
|
||||||
|
*}}
|
||||||
|
|
||||||
Apreciat/da {{$username}},
|
Apreciat/da {{$username}},
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
{{*
|
||||||
|
* AUTOMATICALLY GENERATED TEMPLATE
|
||||||
|
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||||
|
*
|
||||||
|
*}}
|
||||||
|
|
||||||
Apreciat/da {{$myname}},
|
Apreciat/da {{$myname}},
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
{{*
|
||||||
|
* AUTOMATICALLY GENERATED TEMPLATE
|
||||||
|
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||||
|
*
|
||||||
|
*}}
|
||||||
|
|
||||||
Apreciat/da {{$username}},
|
Apreciat/da {{$username}},
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
{{*
|
||||||
|
* AUTOMATICALLY GENERATED TEMPLATE
|
||||||
|
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||||
|
*
|
||||||
|
*}}
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
// Set the following for your MySQL installation
|
// Set the following for your MySQL installation
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
{{*
|
||||||
|
* AUTOMATICALLY GENERATED TEMPLATE
|
||||||
|
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||||
|
*
|
||||||
|
*}}
|
||||||
|
|
||||||
Apreciat/da {{$username}},
|
Apreciat/da {{$username}},
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
{{*
|
||||||
|
* AUTOMATICALLY GENERATED TEMPLATE
|
||||||
|
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||||
|
*
|
||||||
|
*}}
|
||||||
|
|
||||||
Apreciat/da {{$username}},
|
Apreciat/da {{$username}},
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
{{*
|
||||||
|
* AUTOMATICALLY GENERATED TEMPLATE
|
||||||
|
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||||
|
*
|
||||||
|
*}}
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional //EN">
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional //EN">
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
{{*
|
||||||
|
* AUTOMATICALLY GENERATED TEMPLATE
|
||||||
|
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||||
|
*
|
||||||
|
*}}
|
||||||
Has rebut un nou missatge privat de '{{$from}}' en {{$siteName}}.
|
Has rebut un nou missatge privat de '{{$from}}' en {{$siteName}}.
|
||||||
|
|
||||||
{{$title}}
|
{{$title}}
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
{{*
|
||||||
|
* AUTOMATICALLY GENERATED TEMPLATE
|
||||||
|
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||||
|
*
|
||||||
|
*}}
|
||||||
|
|
||||||
Apreciat/da {{$username}},
|
Apreciat/da {{$username}},
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
{{*
|
||||||
|
* AUTOMATICALLY GENERATED TEMPLATE
|
||||||
|
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||||
|
*
|
||||||
|
*}}
|
||||||
|
|
||||||
Apreciat/da {{$username}},
|
Apreciat/da {{$username}},
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
{{*
|
||||||
|
* AUTOMATICALLY GENERATED TEMPLATE
|
||||||
|
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||||
|
*
|
||||||
|
*}}
|
||||||
|
|
||||||
S'ha rebut la sol·licitud de registre d'un nou usuari en
|
S'ha rebut la sol·licitud de registre d'un nou usuari en
|
||||||
{{$sitename}} que requereix la teva aprovació.
|
{{$sitename}} que requereix la teva aprovació.
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
{{*
|
||||||
|
* AUTOMATICALLY GENERATED TEMPLATE
|
||||||
|
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||||
|
*
|
||||||
|
*}}
|
||||||
|
|
||||||
Apreciat/da {{$myname}},
|
Apreciat/da {{$myname}},
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
{{*
|
||||||
|
* AUTOMATICALLY GENERATED TEMPLATE
|
||||||
|
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||||
|
*
|
||||||
|
*}}
|
||||||
|
|
||||||
Apreciat/da {{$username}},
|
Apreciat/da {{$username}},
|
||||||
|
|
||||||
|
|
|
@ -14,8 +14,8 @@
|
||||||
$tabs
|
$tabs
|
||||||
|
|
||||||
|
|
||||||
{{ for $contacts as $c }}
|
{{ for $contacts as $contact }}
|
||||||
{{ inc contact_template.tpl with $contact=$c }}{{ endinc }}
|
{{ inc contact_template.tpl }}{{ endinc }}
|
||||||
{{ endfor }}
|
{{ endfor }}
|
||||||
<div id="contact-edit-end"></div>
|
<div id="contact-edit-end"></div>
|
||||||
|
|
||||||
|
|
1905
view/cs/messages.po
1905
view/cs/messages.po
File diff suppressed because it is too large
Load diff
|
@ -1,3 +1,8 @@
|
||||||
|
{{*
|
||||||
|
* AUTOMATICALLY GENERATED TEMPLATE
|
||||||
|
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||||
|
*
|
||||||
|
*}}
|
||||||
Milý/Milá {{$username}},
|
Milý/Milá {{$username}},
|
||||||
|
|
||||||
'{{$from}}' okommentoval položku/konverzaci, kterou následujete.
|
'{{$from}}' okommentoval položku/konverzaci, kterou následujete.
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
{{*
|
||||||
|
* AUTOMATICALLY GENERATED TEMPLATE
|
||||||
|
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||||
|
*
|
||||||
|
*}}
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional //EN">
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional //EN">
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
{{*
|
||||||
|
* AUTOMATICALLY GENERATED TEMPLATE
|
||||||
|
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||||
|
*
|
||||||
|
*}}
|
||||||
Milý/Milá {{$username}},
|
Milý/Milá {{$username}},
|
||||||
|
|
||||||
'{{$from}}' okommentoval položku/konverzaci, kterou následujete.
|
'{{$from}}' okommentoval položku/konverzaci, kterou následujete.
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
{{*
|
||||||
|
* AUTOMATICALLY GENERATED TEMPLATE
|
||||||
|
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||||
|
*
|
||||||
|
*}}
|
||||||
|
|
||||||
Milý/Milá {{$username}},
|
Milý/Milá {{$username}},
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
{{*
|
||||||
|
* AUTOMATICALLY GENERATED TEMPLATE
|
||||||
|
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||||
|
*
|
||||||
|
*}}
|
||||||
|
|
||||||
Milý/Milá {{$username}},
|
Milý/Milá {{$username}},
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
{{*
|
||||||
|
* AUTOMATICALLY GENERATED TEMPLATE
|
||||||
|
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||||
|
*
|
||||||
|
*}}
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
// Nastavte následující pro Vaši instalaci MySQL
|
// Nastavte následující pro Vaši instalaci MySQL
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
{{*
|
||||||
|
* AUTOMATICALLY GENERATED TEMPLATE
|
||||||
|
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||||
|
*
|
||||||
|
*}}
|
||||||
|
|
||||||
Milý/Milá {{$username}},
|
Milý/Milá {{$username}},
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
{{*
|
||||||
|
* AUTOMATICALLY GENERATED TEMPLATE
|
||||||
|
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||||
|
*
|
||||||
|
*}}
|
||||||
|
|
||||||
Milý/Milá {{$username}},
|
Milý/Milá {{$username}},
|
||||||
Na webu {{$sitename}} byl zaregistrován požadavek na znovunastavení hesla k Vašemu účtu. Pro potvrzení této žádosti prosím klikněte na potvrzovací odkaz níže, nebo si tento odkaz zkopírujte do adresního řádku prohlížeče.
|
Na webu {{$sitename}} byl zaregistrován požadavek na znovunastavení hesla k Vašemu účtu. Pro potvrzení této žádosti prosím klikněte na potvrzovací odkaz níže, nebo si tento odkaz zkopírujte do adresního řádku prohlížeče.
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
{{*
|
||||||
|
* AUTOMATICALLY GENERATED TEMPLATE
|
||||||
|
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||||
|
*
|
||||||
|
*}}
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional //EN">
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional //EN">
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
{{*
|
||||||
|
* AUTOMATICALLY GENERATED TEMPLATE
|
||||||
|
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||||
|
*
|
||||||
|
*}}
|
||||||
{{$from}} Vám poslal(a) novou soukromou zprávu na {{$siteName}}.
|
{{$from}} Vám poslal(a) novou soukromou zprávu na {{$siteName}}.
|
||||||
|
|
||||||
{{$title}}
|
{{$title}}
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
{{*
|
||||||
|
* AUTOMATICALLY GENERATED TEMPLATE
|
||||||
|
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||||
|
*
|
||||||
|
*}}
|
||||||
|
|
||||||
Milý/Milá {{$username}},
|
Milý/Milá {{$username}},
|
||||||
Vaše heslo bylo na Vaši žádost změněno. Prosím zaznamenejte si tuto informaci (nebo si Vaše heslo změňte na nějaké, které si budete pamatovat).
|
Vaše heslo bylo na Vaši žádost změněno. Prosím zaznamenejte si tuto informaci (nebo si Vaše heslo změňte na nějaké, které si budete pamatovat).
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
{{*
|
||||||
|
* AUTOMATICALLY GENERATED TEMPLATE
|
||||||
|
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||||
|
*
|
||||||
|
*}}
|
||||||
Milý/milá {{$username}},
|
Milý/milá {{$username}},
|
||||||
Díky za registraci na {{$sitename}}. Váš účet byl vytvořen.
|
Díky za registraci na {{$sitename}}. Váš účet byl vytvořen.
|
||||||
Vaše přihlašovací údaje jsou tato:
|
Vaše přihlašovací údaje jsou tato:
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
{{*
|
||||||
|
* AUTOMATICALLY GENERATED TEMPLATE
|
||||||
|
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||||
|
*
|
||||||
|
*}}
|
||||||
|
|
||||||
Na webu {{$sitename}} byla vytvořena nová uživatelská registrace, která vyžaduje Vaše schválení.
|
Na webu {{$sitename}} byla vytvořena nová uživatelská registrace, která vyžaduje Vaše schválení.
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
{{*
|
||||||
|
* AUTOMATICALLY GENERATED TEMPLATE
|
||||||
|
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||||
|
*
|
||||||
|
*}}
|
||||||
|
|
||||||
Milý/Milá {{$username}},
|
Milý/Milá {{$username}},
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
{{*
|
||||||
|
* AUTOMATICALLY GENERATED TEMPLATE
|
||||||
|
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||||
|
*
|
||||||
|
*}}
|
||||||
Milý/Milá {{$username}},
|
Milý/Milá {{$username}},
|
||||||
|
|
||||||
'{{$from}}' obohatil Vaši profilovou zeď.
|
'{{$from}}' obohatil Vaši profilovou zeď.
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
{{*
|
||||||
|
* AUTOMATICALLY GENERATED TEMPLATE
|
||||||
|
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||||
|
*
|
||||||
|
*}}
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional //EN">
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional //EN">
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
{{*
|
||||||
|
* AUTOMATICALLY GENERATED TEMPLATE
|
||||||
|
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||||
|
*
|
||||||
|
*}}
|
||||||
Milý/Milá {{$username}},
|
Milý/Milá {{$username}},
|
||||||
|
|
||||||
'{{$from}}' obohatil Vaši profilovou zeď.
|
'{{$from}}' obohatil Vaši profilovou zeď.
|
||||||
|
|
|
@ -258,6 +258,11 @@ $a->strings["This is most often a permission setting, as the web server may not
|
||||||
$a->strings["At the end of this procedure, we will give you a text to save in a file named .htconfig.php in your Friendica top folder."] = "Na konci této procedury obd nás obdržíte text k uložení v souboru pojmenovaném .htconfig.php ve Vašem Friendica kořenovém adresáři.";
|
$a->strings["At the end of this procedure, we will give you a text to save in a file named .htconfig.php in your Friendica top folder."] = "Na konci této procedury obd nás obdržíte text k uložení v souboru pojmenovaném .htconfig.php ve Vašem Friendica kořenovém adresáři.";
|
||||||
$a->strings["You can alternatively skip this procedure and perform a manual installation. Please see the file \"INSTALL.txt\" for instructions."] = "Alternativně můžete tento krok přeskočit a provést manuální instalaci. Přečtěte si prosím soubor \"INSTALL.txt\" pro další instrukce.";
|
$a->strings["You can alternatively skip this procedure and perform a manual installation. Please see the file \"INSTALL.txt\" for instructions."] = "Alternativně můžete tento krok přeskočit a provést manuální instalaci. Přečtěte si prosím soubor \"INSTALL.txt\" pro další instrukce.";
|
||||||
$a->strings[".htconfig.php is writable"] = ".htconfig.php je editovatelné";
|
$a->strings[".htconfig.php is writable"] = ".htconfig.php je editovatelné";
|
||||||
|
$a->strings["Friendica uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering."] = "Friendica používá šablonovací nástroj Smarty3 pro zobrazení svých weobvých stránek. Smarty3 kompiluje šablony do PHP pro zrychlení vykreslování.";
|
||||||
|
$a->strings["In order to store these compiled templates, the web server needs to have write access to the directory view/smarty3/ under the Friendica top level folder."] = "Pro uložení kompilovaných šablon, webový server potřebuje mít přístup k zápisu do adresáře view/smarty3/ pod hlavním adresářem instalace Friendica";
|
||||||
|
$a->strings["Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder."] = "prosím ujistěte se, že uživatel web serveru (jako například www-data) má právo zápisu do tohoto adresáře";
|
||||||
|
$a->strings["Note: as a security measure, you should give the web server write access to view/smarty3/ only--not the template files (.tpl) that it contains."] = "Poznámka: jako bezpečnostní opatření, přidělte právo zápisu pouze k adresáři /view/smarty3/ a nikoliv už k souborům s šablonami (.tpl), které obsahuje.";
|
||||||
|
$a->strings["view/smarty3 is writable"] = "view/smarty3 je nastaven pro zápis";
|
||||||
$a->strings["Url rewrite in .htaccess is not working. Check your server configuration."] = "Url rewrite v .htconfig nefunguje. Prověřte prosím Vaše nastavení serveru.";
|
$a->strings["Url rewrite in .htaccess is not working. Check your server configuration."] = "Url rewrite v .htconfig nefunguje. Prověřte prosím Vaše nastavení serveru.";
|
||||||
$a->strings["Url rewrite is working"] = "Url rewrite je funkční.";
|
$a->strings["Url rewrite is working"] = "Url rewrite je funkční.";
|
||||||
$a->strings["The database configuration file \".htconfig.php\" could not be written. Please use the enclosed text to create a configuration file in your web server root."] = "Databázový konfigurační soubor \".htconfig.php\" nemohl být uložen. Prosím, použijte přiložený text k vytvoření konfiguračního souboru ve vašem kořenovém adresáři webového serveru.";
|
$a->strings["The database configuration file \".htconfig.php\" could not be written. Please use the enclosed text to create a configuration file in your web server root."] = "Databázový konfigurační soubor \".htconfig.php\" nemohl být uložen. Prosím, použijte přiložený text k vytvoření konfiguračního souboru ve vašem kořenovém adresáři webového serveru.";
|
||||||
|
@ -615,7 +620,9 @@ $a->strings["Save"] = "Uložit";
|
||||||
$a->strings["This site has exceeded the number of allowed daily account registrations. Please try again tomorrow."] = "Došlo k překročení maximálního povoleného počtu registrací za den na tomto serveru. Zkuste to zítra znovu.";
|
$a->strings["This site has exceeded the number of allowed daily account registrations. Please try again tomorrow."] = "Došlo k překročení maximálního povoleného počtu registrací za den na tomto serveru. Zkuste to zítra znovu.";
|
||||||
$a->strings["Import"] = "Import";
|
$a->strings["Import"] = "Import";
|
||||||
$a->strings["Move account"] = "Přesunout účet";
|
$a->strings["Move account"] = "Přesunout účet";
|
||||||
$a->strings["You can import an account from another Friendica server. <br>\r\n You need to export your account from the old server and upload it here. We will recreate your old account here with all your contacts. We will try also to inform your friends that you moved here.<br>\r\n <b>This feature is experimental. We can't import contacts from the OStatus network (statusnet/identi.ca) or from diaspora"] = "Je možné importovat účet z jiného Friendica serveru. <br>\nPotřebujete exportovat Váš účet ze starého serveru a importovat ho zde. My následně znovu vytvoříme Váš účet zde se všemi Vašimi kontakty. Také se pokusíme informovat všechny Vaše přátele o tom, že jste se sem přesunuli.<br>\n<b>Tato funkčnost je experimentální. Nemůžeme importovat kontakty ze sítě OStatus (statusnet/identi.ca) nebo z diaspory.";
|
$a->strings["You can import an account from another Friendica server."] = "Můžete importovat účet z jiného Friendica serveru.";
|
||||||
|
$a->strings["You need to export your account from the old server and upload it here. We will recreate your old account here with all your contacts. We will try also to inform your friends that you moved here."] = "Musíte exportovat svůj účet na sterém serveru a nahrát ho zde. My následně vytvoříme Váš původní účet zde včetně všech kontaktů. Zároveň se pokusíme informovat všechny Vaše přátele, že jste se sem přestěhovali.";
|
||||||
|
$a->strings["This feature is experimental. We can't import contacts from the OStatus network (statusnet/identi.ca) or from Diaspora"] = "Tato funkčnost je experimentální. Nemůžeme importovat kontakty z OSStatus sítí (statusnet/identi.ca) nebo z Diaspory";
|
||||||
$a->strings["Account file"] = "Soubor s účtem";
|
$a->strings["Account file"] = "Soubor s účtem";
|
||||||
$a->strings["To export your accont, go to \"Settings->Export your porsonal data\" and select \"Export account\""] = "K exportu Vašeho účtu, jděte do \"Nastavení->Export vašich osobních dat\" a zvolte \" Export účtu\"";
|
$a->strings["To export your accont, go to \"Settings->Export your porsonal data\" and select \"Export account\""] = "K exportu Vašeho účtu, jděte do \"Nastavení->Export vašich osobních dat\" a zvolte \" Export účtu\"";
|
||||||
$a->strings["Number of daily wall messages for %s exceeded. Message failed."] = "Došlo k překročení maximálního počtu zpráv na zeď během jednoho dne. Zpráva %s nedoručena.";
|
$a->strings["Number of daily wall messages for %s exceeded. Message failed."] = "Došlo k překročení maximálního počtu zpráv na zeď během jednoho dne. Zpráva %s nedoručena.";
|
||||||
|
@ -800,6 +807,7 @@ $a->strings["Self-signed certificate, use SSL for local links only (discouraged)
|
||||||
$a->strings["File upload"] = "Nahrání souborů";
|
$a->strings["File upload"] = "Nahrání souborů";
|
||||||
$a->strings["Policies"] = "Politiky";
|
$a->strings["Policies"] = "Politiky";
|
||||||
$a->strings["Advanced"] = "Pokročilé";
|
$a->strings["Advanced"] = "Pokročilé";
|
||||||
|
$a->strings["Performance"] = "Výkonnost";
|
||||||
$a->strings["Site name"] = "Název webu";
|
$a->strings["Site name"] = "Název webu";
|
||||||
$a->strings["Banner/Logo"] = "Banner/logo";
|
$a->strings["Banner/Logo"] = "Banner/logo";
|
||||||
$a->strings["System language"] = "Systémový jazyk";
|
$a->strings["System language"] = "Systémový jazyk";
|
||||||
|
@ -809,6 +817,8 @@ $a->strings["Mobile system theme"] = "Systémové téma zobrazení pro mobilní
|
||||||
$a->strings["Theme for mobile devices"] = "Téma zobrazení pro mobilní zařízení";
|
$a->strings["Theme for mobile devices"] = "Téma zobrazení pro mobilní zařízení";
|
||||||
$a->strings["SSL link policy"] = "Politika SSL odkazů";
|
$a->strings["SSL link policy"] = "Politika SSL odkazů";
|
||||||
$a->strings["Determines whether generated links should be forced to use SSL"] = "Určuje, zda-li budou generované odkazy používat SSL";
|
$a->strings["Determines whether generated links should be forced to use SSL"] = "Určuje, zda-li budou generované odkazy používat SSL";
|
||||||
|
$a->strings["'Share' element"] = "Element \"Sdílet\"";
|
||||||
|
$a->strings["Activates the bbcode element 'share' for repeating items."] = "Aktivuje bbcode prvek 'share' pro opakované položky.";
|
||||||
$a->strings["Maximum image size"] = "Maximální velikost obrázků";
|
$a->strings["Maximum image size"] = "Maximální velikost obrázků";
|
||||||
$a->strings["Maximum size in bytes of uploaded images. Default is 0, which means no limits."] = "Maximální velikost v bajtech nahraných obrázků. Defaultní je 0, což znamená neomezeno.";
|
$a->strings["Maximum size in bytes of uploaded images. Default is 0, which means no limits."] = "Maximální velikost v bajtech nahraných obrázků. Defaultní je 0, což znamená neomezeno.";
|
||||||
$a->strings["Maximum image length"] = "Maximální velikost obrázků";
|
$a->strings["Maximum image length"] = "Maximální velikost obrázků";
|
||||||
|
@ -864,6 +874,14 @@ $a->strings["Poll interval"] = "Dotazovací interval";
|
||||||
$a->strings["Delay background polling processes by this many seconds to reduce system load. If 0, use delivery interval."] = "Tímto nastavením ovlivníte prodlení mezi aktualizačními procesy běžícími na pozadí, čímž můžete snížit systémovou zátěž. Pokud 0, použijte doručovací interval.";
|
$a->strings["Delay background polling processes by this many seconds to reduce system load. If 0, use delivery interval."] = "Tímto nastavením ovlivníte prodlení mezi aktualizačními procesy běžícími na pozadí, čímž můžete snížit systémovou zátěž. Pokud 0, použijte doručovací interval.";
|
||||||
$a->strings["Maximum Load Average"] = "Maximální průměrné zatížení";
|
$a->strings["Maximum Load Average"] = "Maximální průměrné zatížení";
|
||||||
$a->strings["Maximum system load before delivery and poll processes are deferred - default 50."] = "Maximální zatížení systému před pozastavením procesů zajišťujících doručování aktualizací - defaultně 50";
|
$a->strings["Maximum system load before delivery and poll processes are deferred - default 50."] = "Maximální zatížení systému před pozastavením procesů zajišťujících doručování aktualizací - defaultně 50";
|
||||||
|
$a->strings["Use MySQL full text engine"] = "Použít fulltextový vyhledávací stroj MySQL";
|
||||||
|
$a->strings["Activates the full text engine. Speeds up search - but can only search for four and more characters."] = "Aktivuje fulltextový vyhledávací stroj. Zrychluje vyhledávání ale pouze pro vyhledávání čtyř a více znaků";
|
||||||
|
$a->strings["Path to item cache"] = "Cesta k položkám vyrovnávací paměti";
|
||||||
|
$a->strings["Cache duration in seconds"] = "Doba platnosti vyrovnávací paměti v sekundách";
|
||||||
|
$a->strings["How long should the cache files be hold? Default value is 86400 seconds (One day)."] = "Jak dlouho by měla vyrovnávací paměť držet data? Výchozí hodnota je 86400 sekund (Jeden den).";
|
||||||
|
$a->strings["Path for lock file"] = "Cesta k souboru zámku";
|
||||||
|
$a->strings["Temp path"] = "Cesta k dočasným souborům";
|
||||||
|
$a->strings["Base path to installation"] = "Základní cesta k instalaci";
|
||||||
$a->strings["Update has been marked successful"] = "Aktualizace byla označena jako úspěšná.";
|
$a->strings["Update has been marked successful"] = "Aktualizace byla označena jako úspěšná.";
|
||||||
$a->strings["Executing %s failed. Check system logs."] = "Vykonávání %s selhalo. Zkontrolujte chybový protokol.";
|
$a->strings["Executing %s failed. Check system logs."] = "Vykonávání %s selhalo. Zkontrolujte chybový protokol.";
|
||||||
$a->strings["Update %s was successfully applied."] = "Aktualizace %s byla úspěšně aplikována.";
|
$a->strings["Update %s was successfully applied."] = "Aktualizace %s byla úspěšně aplikována.";
|
||||||
|
@ -1157,6 +1175,7 @@ $a->strings["Remove Facebook Post connector"] = "Odstranit konektor pro přísp
|
||||||
$a->strings["Suppress \"View on friendica\""] = "Potlačit \"Zobrazit na friendica\"";
|
$a->strings["Suppress \"View on friendica\""] = "Potlačit \"Zobrazit na friendica\"";
|
||||||
$a->strings["Post to page/group:"] = "Příspěvek na stránku/skupinu";
|
$a->strings["Post to page/group:"] = "Příspěvek na stránku/skupinu";
|
||||||
$a->strings["Facebook Post Settings"] = "Nastavení konektoru pro příspěvky na Facebook";
|
$a->strings["Facebook Post Settings"] = "Nastavení konektoru pro příspěvky na Facebook";
|
||||||
|
$a->strings["%s:"] = "%s:";
|
||||||
$a->strings["%d person likes this"] = array(
|
$a->strings["%d person likes this"] = array(
|
||||||
0 => "%d člověku se toto líbí",
|
0 => "%d člověku se toto líbí",
|
||||||
1 => "%d lidem se toto líbí",
|
1 => "%d lidem se toto líbí",
|
||||||
|
@ -1876,6 +1895,7 @@ $a->strings["Inbox"] = "Doručená pošta";
|
||||||
$a->strings["Outbox"] = "Odeslaná pošta";
|
$a->strings["Outbox"] = "Odeslaná pošta";
|
||||||
$a->strings["Manage"] = "Spravovat";
|
$a->strings["Manage"] = "Spravovat";
|
||||||
$a->strings["Manage other pages"] = "Spravovat jiné stránky";
|
$a->strings["Manage other pages"] = "Spravovat jiné stránky";
|
||||||
|
$a->strings["Delegations"] = "Delegace";
|
||||||
$a->strings["Profiles"] = "Profily";
|
$a->strings["Profiles"] = "Profily";
|
||||||
$a->strings["Manage/Edit Profiles"] = "Spravovat/Editovat Profily";
|
$a->strings["Manage/Edit Profiles"] = "Spravovat/Editovat Profily";
|
||||||
$a->strings["Manage/edit friends and contacts"] = "Spravovat/upravit přátelé a kontakty";
|
$a->strings["Manage/edit friends and contacts"] = "Spravovat/upravit přátelé a kontakty";
|
||||||
|
@ -1918,8 +1938,8 @@ $a->strings["seconds"] = "sekund";
|
||||||
$a->strings["%1\$d %2\$s ago"] = "před %1\$d %2\$s";
|
$a->strings["%1\$d %2\$s ago"] = "před %1\$d %2\$s";
|
||||||
$a->strings["%s's birthday"] = "%s má narozeniny";
|
$a->strings["%s's birthday"] = "%s má narozeniny";
|
||||||
$a->strings["Happy Birthday %s"] = "Veselé narozeniny %s";
|
$a->strings["Happy Birthday %s"] = "Veselé narozeniny %s";
|
||||||
$a->strings["From: "] = "Od:";
|
|
||||||
$a->strings["Image/photo"] = "Obrázek/fotografie";
|
$a->strings["Image/photo"] = "Obrázek/fotografie";
|
||||||
|
$a->strings["<span><a href=\"%s\" target=\"external-link\">%s</a> wrote the following <a href=\"%s\" target=\"external-link\">post</a>:</span>"] = "<span><a href=\"%s\" target=\"external-link\">%s</a> napsal následující <a href=\"%s\" target=\"external-link\">příspěvek</a>:</span>";
|
||||||
$a->strings["$1 wrote:"] = "$1 napsal:";
|
$a->strings["$1 wrote:"] = "$1 napsal:";
|
||||||
$a->strings["Encrypted content"] = "Šifrovaný obsah";
|
$a->strings["Encrypted content"] = "Šifrovaný obsah";
|
||||||
$a->strings["General Features"] = "Obecné funkčnosti";
|
$a->strings["General Features"] = "Obecné funkčnosti";
|
||||||
|
@ -2053,8 +2073,9 @@ $a->strings["Delete Selected Items"] = "Smazat vybrané položky";
|
||||||
$a->strings["Follow Thread"] = "Následovat vlákno";
|
$a->strings["Follow Thread"] = "Následovat vlákno";
|
||||||
$a->strings["%s likes this."] = "%s se to líbí.";
|
$a->strings["%s likes this."] = "%s se to líbí.";
|
||||||
$a->strings["%s doesn't like this."] = "%s se to nelíbí.";
|
$a->strings["%s doesn't like this."] = "%s se to nelíbí.";
|
||||||
$a->strings["<span %1\$s>%2\$d people</span> like this."] = "<span %1\$s>%2\$d lidem</span> se to líbí.";
|
$a->strings["like this"] = "libí se mu";
|
||||||
$a->strings["<span %1\$s>%2\$d people</span> don't like this."] = "<span %1\$s>%2\$d lidem</span> se to nelíbí.";
|
$a->strings["don't like this"] = "nelíbí se mu";
|
||||||
|
$a->strings["people"] = "lidé";
|
||||||
$a->strings["and"] = "a";
|
$a->strings["and"] = "a";
|
||||||
$a->strings[", and %d other people"] = ", a %d dalších lidí";
|
$a->strings[", and %d other people"] = ", a %d dalších lidí";
|
||||||
$a->strings["%s like this."] = "%s se to líbí.";
|
$a->strings["%s like this."] = "%s se to líbí.";
|
||||||
|
@ -2079,6 +2100,10 @@ $a->strings["Password: "] = "Heslo: ";
|
||||||
$a->strings["Remember me"] = "Pamatuj si mne";
|
$a->strings["Remember me"] = "Pamatuj si mne";
|
||||||
$a->strings["Or login using OpenID: "] = "Nebo přihlášení pomocí OpenID: ";
|
$a->strings["Or login using OpenID: "] = "Nebo přihlášení pomocí OpenID: ";
|
||||||
$a->strings["Forgot your password?"] = "Zapomněli jste své heslo?";
|
$a->strings["Forgot your password?"] = "Zapomněli jste své heslo?";
|
||||||
|
$a->strings["Website Terms of Service"] = "Podmínky použití serveru";
|
||||||
|
$a->strings["terms of service"] = "podmínky použití";
|
||||||
|
$a->strings["Website Privacy Policy"] = "Pravidla ochrany soukromí serveru";
|
||||||
|
$a->strings["privacy policy"] = "Ochrana soukromí";
|
||||||
$a->strings["Requested account is not available."] = "Požadovaný účet není dostupný.";
|
$a->strings["Requested account is not available."] = "Požadovaný účet není dostupný.";
|
||||||
$a->strings["Edit profile"] = "Upravit profil";
|
$a->strings["Edit profile"] = "Upravit profil";
|
||||||
$a->strings["Message"] = "Zpráva";
|
$a->strings["Message"] = "Zpráva";
|
||||||
|
|
2091
view/de/messages.po
2091
view/de/messages.po
File diff suppressed because it is too large
Load diff
|
@ -7,7 +7,7 @@ erhalten.
|
||||||
|
|
||||||
Du kannst sein/ihr Profil unter $[url] finden.
|
Du kannst sein/ihr Profil unter $[url] finden.
|
||||||
|
|
||||||
Bitte melde dich an um die komplette Vorstellung einzusehen
|
Bitte melde dich an um die komplette Anfrage einzusehen
|
||||||
und die Anfrage zu bestätigen oder zu ignorieren oder abzulehnen.
|
und die Anfrage zu bestätigen oder zu ignorieren oder abzulehnen.
|
||||||
|
|
||||||
$[siteurl]
|
$[siteurl]
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
{{*
|
||||||
|
* AUTOMATICALLY GENERATED TEMPLATE
|
||||||
|
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||||
|
*
|
||||||
|
*}}
|
||||||
|
|
||||||
Hallo {{$username}},
|
Hallo {{$username}},
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
{{*
|
||||||
|
* AUTOMATICALLY GENERATED TEMPLATE
|
||||||
|
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||||
|
*
|
||||||
|
*}}
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional //EN">
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional //EN">
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
{{*
|
||||||
|
* AUTOMATICALLY GENERATED TEMPLATE
|
||||||
|
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||||
|
*
|
||||||
|
*}}
|
||||||
Hallo {{$username}},
|
Hallo {{$username}},
|
||||||
|
|
||||||
'{{$from}}' hat einen Pinnwandeintrag kommentiert dem du auch folgst.
|
'{{$from}}' hat einen Pinnwandeintrag kommentiert dem du auch folgst.
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
{{*
|
||||||
|
* AUTOMATICALLY GENERATED TEMPLATE
|
||||||
|
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||||
|
*
|
||||||
|
*}}
|
||||||
|
|
||||||
Hallo {{$myname}},
|
Hallo {{$myname}},
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
{{*
|
||||||
|
* AUTOMATICALLY GENERATED TEMPLATE
|
||||||
|
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||||
|
*
|
||||||
|
*}}
|
||||||
|
|
||||||
Hallo {{$username}},
|
Hallo {{$username}},
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
{{*
|
||||||
|
* AUTOMATICALLY GENERATED TEMPLATE
|
||||||
|
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||||
|
*
|
||||||
|
*}}
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
// Set the following for your MySQL installation
|
// Set the following for your MySQL installation
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
{{*
|
||||||
|
* AUTOMATICALLY GENERATED TEMPLATE
|
||||||
|
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||||
|
*
|
||||||
|
*}}
|
||||||
|
|
||||||
Hallo {{$username}},
|
Hallo {{$username}},
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
{{*
|
||||||
|
* AUTOMATICALLY GENERATED TEMPLATE
|
||||||
|
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||||
|
*
|
||||||
|
*}}
|
||||||
|
|
||||||
Hallo {{$username}},
|
Hallo {{$username}},
|
||||||
Auf {{$sitename}} wurde eine Anfrage zum Zurücksetzen deines
|
Auf {{$sitename}} wurde eine Anfrage zum Zurücksetzen deines
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
{{*
|
||||||
|
* AUTOMATICALLY GENERATED TEMPLATE
|
||||||
|
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||||
|
*
|
||||||
|
*}}
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional //EN">
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional //EN">
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
{{*
|
||||||
|
* AUTOMATICALLY GENERATED TEMPLATE
|
||||||
|
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||||
|
*
|
||||||
|
*}}
|
||||||
Du hast eine neue private Nachricht von '{{$from}}' auf '{{$siteName}}' erhhalten.
|
Du hast eine neue private Nachricht von '{{$from}}' auf '{{$siteName}}' erhhalten.
|
||||||
|
|
||||||
{{$title}}
|
{{$title}}
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
{{*
|
||||||
|
* AUTOMATICALLY GENERATED TEMPLATE
|
||||||
|
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||||
|
*
|
||||||
|
*}}
|
||||||
|
|
||||||
Hallo {{$username}},
|
Hallo {{$username}},
|
||||||
Dein Passwort wurde wie gewünscht geändert. Bitte bewahre diese
|
Dein Passwort wurde wie gewünscht geändert. Bitte bewahre diese
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
{{*
|
||||||
|
* AUTOMATICALLY GENERATED TEMPLATE
|
||||||
|
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||||
|
*
|
||||||
|
*}}
|
||||||
|
|
||||||
Hallo {{$username}},
|
Hallo {{$username}},
|
||||||
Danke für deine Anmeldung auf {{$sitename}}. Dein Account wurde angelegt.
|
Danke für deine Anmeldung auf {{$sitename}}. Dein Account wurde angelegt.
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
{{*
|
||||||
|
* AUTOMATICALLY GENERATED TEMPLATE
|
||||||
|
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||||
|
*
|
||||||
|
*}}
|
||||||
|
|
||||||
Eine Neuanmeldung auf {{$sitename}} benötigt
|
Eine Neuanmeldung auf {{$sitename}} benötigt
|
||||||
deine Aufmerksamkeit.
|
deine Aufmerksamkeit.
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
{{*
|
||||||
|
* AUTOMATICALLY GENERATED TEMPLATE
|
||||||
|
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||||
|
*
|
||||||
|
*}}
|
||||||
|
|
||||||
Hallo {{$myname}},
|
Hallo {{$myname}},
|
||||||
|
|
||||||
|
@ -7,7 +12,7 @@ erhalten.
|
||||||
|
|
||||||
Du kannst sein/ihr Profil unter {{$url}} finden.
|
Du kannst sein/ihr Profil unter {{$url}} finden.
|
||||||
|
|
||||||
Bitte melde dich an um die komplette Vorstellung einzusehen
|
Bitte melde dich an um die komplette Anfrage einzusehen
|
||||||
und die Anfrage zu bestätigen oder zu ignorieren oder abzulehnen.
|
und die Anfrage zu bestätigen oder zu ignorieren oder abzulehnen.
|
||||||
|
|
||||||
{{$siteurl}}
|
{{$siteurl}}
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
{{*
|
||||||
|
* AUTOMATICALLY GENERATED TEMPLATE
|
||||||
|
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||||
|
*
|
||||||
|
*}}
|
||||||
Hi,
|
Hi,
|
||||||
ich bin {{$sitename}}.
|
ich bin {{$sitename}}.
|
||||||
Die friendica Entwickler haben jüngst Update {{$update}} veröffentlicht,
|
Die friendica Entwickler haben jüngst Update {{$update}} veröffentlicht,
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue