mirror of
https://codeberg.org/streams/streams.git
synced 2024-09-21 08:35:23 +00:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
commit
21f2df399d
28 changed files with 576 additions and 63 deletions
|
@ -196,5 +196,4 @@ class Router {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
2
boot.php
2
boot.php
|
@ -50,7 +50,7 @@ define ( 'RED_VERSION', trim(file_get_contents('version.inc')));
|
||||||
define ( 'STD_VERSION', '1.2.4' );
|
define ( 'STD_VERSION', '1.2.4' );
|
||||||
define ( 'ZOT_REVISION', 1 );
|
define ( 'ZOT_REVISION', 1 );
|
||||||
|
|
||||||
define ( 'DB_UPDATE_VERSION', 1163 );
|
define ( 'DB_UPDATE_VERSION', 1164 );
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1595,8 +1595,17 @@ function profile_tabs($a, $is_owner = false, $nickname = null){
|
||||||
if (is_null($nickname))
|
if (is_null($nickname))
|
||||||
$nickname = $channel['channel_address'];
|
$nickname = $channel['channel_address'];
|
||||||
|
|
||||||
|
|
||||||
$uid = (($a->profile['profile_uid']) ? $a->profile['profile_uid'] : local_channel());
|
$uid = (($a->profile['profile_uid']) ? $a->profile['profile_uid'] : local_channel());
|
||||||
|
|
||||||
|
if($uid == local_channel()) {
|
||||||
|
$cal_link = '/events';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$cal_link = '/cal/' . $nickname;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (get_pconfig($uid, 'system', 'noprofiletabs'))
|
if (get_pconfig($uid, 'system', 'noprofiletabs'))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -1644,6 +1653,17 @@ function profile_tabs($a, $is_owner = false, $nickname = null){
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if($p['view_stream']) {
|
||||||
|
$tabs[] = array(
|
||||||
|
'label' => t('Events'),
|
||||||
|
'url' => $a->get_baseurl() . $cal_link,
|
||||||
|
'sel' => ((argv(0) == 'cal' || argv(0) == 'events') ? 'active' : ''),
|
||||||
|
'title' => t('Events'),
|
||||||
|
'id' => 'event-tab',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if ($p['chat']) {
|
if ($p['chat']) {
|
||||||
require_once('include/chat.php');
|
require_once('include/chat.php');
|
||||||
$has_chats = chatroom_list_count($uid);
|
$has_chats = chatroom_list_count($uid);
|
||||||
|
|
|
@ -3724,10 +3724,6 @@ function mail_store($arr) {
|
||||||
/**
|
/**
|
||||||
* @brief Process atom feed and update anything/everything we might need to update.
|
* @brief Process atom feed and update anything/everything we might need to update.
|
||||||
*
|
*
|
||||||
* $hub = should we find a hub declation in the feed, pass it back to our calling process, who might (or
|
|
||||||
* might not) try and subscribe to it.
|
|
||||||
* $datedir sorts in reverse order
|
|
||||||
*
|
|
||||||
* @param array $xml
|
* @param array $xml
|
||||||
* The (atom) feed to consume - RSS isn't as fully supported but may work for simple feeds.
|
* The (atom) feed to consume - RSS isn't as fully supported but may work for simple feeds.
|
||||||
* @param $importer
|
* @param $importer
|
||||||
|
@ -3766,7 +3762,7 @@ function consume_feed($xml, $importer, &$contact, $pass = 0) {
|
||||||
if(($chn_expire != 0) && ($chn_expire < $sys_expire))
|
if(($chn_expire != 0) && ($chn_expire < $sys_expire))
|
||||||
$expire_days = $chn_expire;
|
$expire_days = $chn_expire;
|
||||||
|
|
||||||
logger('expire_days: ' . $expire_days);
|
// logger('expire_days: ' . $expire_days);
|
||||||
|
|
||||||
$feed = new SimplePie();
|
$feed = new SimplePie();
|
||||||
$feed->set_raw_data($xml);
|
$feed->set_raw_data($xml);
|
||||||
|
@ -3987,6 +3983,72 @@ logger('expire_days: ' . $expire_days);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Process atom feed and return the first post and structure
|
||||||
|
*
|
||||||
|
* @param array $xml
|
||||||
|
* The (atom) feed to consume - RSS isn't as fully supported but may work for simple feeds.
|
||||||
|
* @param $importer
|
||||||
|
* The contact_record (joined to user_record) of the local user who owns this
|
||||||
|
* relationship. It is this person's stuff that is going to be updated.
|
||||||
|
*/
|
||||||
|
|
||||||
|
function process_salmon_feed($xml, $importer) {
|
||||||
|
|
||||||
|
$ret = array();
|
||||||
|
|
||||||
|
require_once('library/simplepie/simplepie.inc');
|
||||||
|
|
||||||
|
if(! strlen($xml)) {
|
||||||
|
logger('process_feed: empty input');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$feed = new SimplePie();
|
||||||
|
$feed->set_raw_data($xml);
|
||||||
|
$feed->init();
|
||||||
|
|
||||||
|
if($feed->error())
|
||||||
|
logger('Error parsing XML: ' . $feed->error());
|
||||||
|
|
||||||
|
$permalink = $feed->get_permalink();
|
||||||
|
|
||||||
|
if($feed->get_item_quantity()) {
|
||||||
|
|
||||||
|
// this should be exactly one
|
||||||
|
|
||||||
|
logger('feed item count = ' . $feed->get_item_quantity(), LOGGER_DEBUG);
|
||||||
|
|
||||||
|
$items = $feed->get_items();
|
||||||
|
|
||||||
|
foreach($items as $item) {
|
||||||
|
|
||||||
|
$item_id = base64url_encode($item->get_id());
|
||||||
|
|
||||||
|
logger('processing ' . $item_id, LOGGER_DEBUG);
|
||||||
|
|
||||||
|
$rawthread = $item->get_item_tags( NAMESPACE_THREAD,'in-reply-to');
|
||||||
|
if(isset($rawthread[0]['attribs']['']['ref'])) {
|
||||||
|
$is_reply = true;
|
||||||
|
$parent_mid = base64url_encode($rawthread[0]['attribs']['']['ref']);
|
||||||
|
}
|
||||||
|
|
||||||
|
if($is_reply)
|
||||||
|
$ret['is_reply'] = true;
|
||||||
|
|
||||||
|
$ret['author'] = array();
|
||||||
|
|
||||||
|
$datarray = get_atom_elements($feed,$item,$ret['author']);
|
||||||
|
|
||||||
|
$ret['item'] = $datarray;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
function update_feed_item($uid,$datarray) {
|
function update_feed_item($uid,$datarray) {
|
||||||
logger('update_feed_item: not implemented! ' . $uid . ' ' . print_r($datarray,true), LOGGER_DATA);
|
logger('update_feed_item: not implemented! ' . $uid . ' ' . print_r($datarray,true), LOGGER_DATA);
|
||||||
}
|
}
|
||||||
|
@ -4070,7 +4132,7 @@ function atom_entry($item,$type,$author,$owner,$comment = false,$cid = 0) {
|
||||||
$o .= '<thr:in-reply-to ref="' . xmlify($parent_item) . '" type="text/html" href="' . xmlify($item['plink']) . '" />' . "\r\n";
|
$o .= '<thr:in-reply-to ref="' . xmlify($parent_item) . '" type="text/html" href="' . xmlify($item['plink']) . '" />' . "\r\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
if(activity_compare($item['obj_type'],ACTIVITY_OBJ_EVENT) && activity_compare($item['verb'],ACTIVITY_POST)) {
|
if(activity_match($item['obj_type'],ACTIVITY_OBJ_EVENT) && activity_match($item['verb'],ACTIVITY_POST)) {
|
||||||
$obj = ((is_array($item['obj'])) ? $item['object'] : json_decode($item['object'],true));
|
$obj = ((is_array($item['obj'])) ? $item['object'] : json_decode($item['object'],true));
|
||||||
|
|
||||||
$o .= '<title>' . xmlify($item['title']) . '</title>' . "\r\n";
|
$o .= '<title>' . xmlify($item['title']) . '</title>' . "\r\n";
|
||||||
|
|
|
@ -325,7 +325,8 @@ function get_plugin_info($plugin){
|
||||||
'description' => '',
|
'description' => '',
|
||||||
'author' => array(),
|
'author' => array(),
|
||||||
'maintainer' => array(),
|
'maintainer' => array(),
|
||||||
'version' => ''
|
'version' => '',
|
||||||
|
'requires' => ''
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!is_file("addon/$plugin/$plugin.php"))
|
if (!is_file("addon/$plugin/$plugin.php"))
|
||||||
|
@ -383,6 +384,22 @@ function check_plugin_versions($info) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(array_key_exists('requires',$info)) {
|
||||||
|
$arr = explode(',',$info['requires']);
|
||||||
|
$found = true;
|
||||||
|
if($arr) {
|
||||||
|
foreach($arr as $test) {
|
||||||
|
$test = trim($test);
|
||||||
|
if(! $test)
|
||||||
|
continue;
|
||||||
|
if(! in_array($test,get_app()->plugins))
|
||||||
|
$found = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(! $found)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -148,7 +148,7 @@ function change_channel($change_channel) {
|
||||||
* @return string additional SQL where statement
|
* @return string additional SQL where statement
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function permissions_sql($owner_id, $remote_observer = null) {
|
function permissions_sql($owner_id, $remote_observer = null, $table = '') {
|
||||||
|
|
||||||
$local_channel = local_channel();
|
$local_channel = local_channel();
|
||||||
|
|
||||||
|
@ -158,10 +158,14 @@ function permissions_sql($owner_id, $remote_observer = null) {
|
||||||
* default permissions - anonymous user
|
* default permissions - anonymous user
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$sql = " AND allow_cid = ''
|
if($table)
|
||||||
AND allow_gid = ''
|
$table .= '.';
|
||||||
AND deny_cid = ''
|
|
||||||
AND deny_gid = ''
|
|
||||||
|
$sql = " AND {$table}allow_cid = ''
|
||||||
|
AND {$table}allow_gid = ''
|
||||||
|
AND {$table}deny_cid = ''
|
||||||
|
AND {$table}deny_gid = ''
|
||||||
";
|
";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -193,8 +197,8 @@ function permissions_sql($owner_id, $remote_observer = null) {
|
||||||
}
|
}
|
||||||
$regexop = db_getfunc('REGEXP');
|
$regexop = db_getfunc('REGEXP');
|
||||||
$sql = sprintf(
|
$sql = sprintf(
|
||||||
" AND ( NOT (deny_cid like '%s' OR deny_gid $regexop '%s')
|
" AND ( NOT ({$table}deny_cid like '%s' OR {$table}deny_gid $regexop '%s')
|
||||||
AND ( allow_cid like '%s' OR allow_gid $regexop '%s' OR ( allow_cid = '' AND allow_gid = '') )
|
AND ( {$table}allow_cid like '%s' OR {$table}allow_gid $regexop '%s' OR ( {$table}allow_cid = '' AND {$table}allow_gid = '') )
|
||||||
)
|
)
|
||||||
",
|
",
|
||||||
dbesc(protect_sprintf( '%<' . $observer . '>%')),
|
dbesc(protect_sprintf( '%<' . $observer . '>%')),
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @file include/session.php
|
* @file include/session.php
|
||||||
*
|
*
|
||||||
|
@ -14,8 +15,8 @@ $session_expire = 180000;
|
||||||
function new_cookie($time) {
|
function new_cookie($time) {
|
||||||
$old_sid = session_id();
|
$old_sid = session_id();
|
||||||
|
|
||||||
// ??? This shouldn't have any effect if called after session_start()
|
// ??? This shouldn't have any effect if called after session_start()
|
||||||
// We probably need to set the session expiration and change the PHPSESSID cookie.
|
// We probably need to set the session expiration and change the PHPSESSID cookie.
|
||||||
|
|
||||||
session_set_cookie_params($time);
|
session_set_cookie_params($time);
|
||||||
session_regenerate_id(false);
|
session_regenerate_id(false);
|
||||||
|
@ -108,8 +109,9 @@ ini_set('session.use_only_cookies', 1);
|
||||||
ini_set('session.cookie_httponly', 1);
|
ini_set('session.cookie_httponly', 1);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* PHP function which sets our user-level session storage functions.
|
* Set our session storage functions.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
session_set_save_handler(
|
session_set_save_handler(
|
||||||
'ref_session_open',
|
'ref_session_open',
|
||||||
'ref_session_close',
|
'ref_session_close',
|
||||||
|
@ -118,3 +120,16 @@ session_set_save_handler(
|
||||||
'ref_session_destroy',
|
'ref_session_destroy',
|
||||||
'ref_session_gc'
|
'ref_session_gc'
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
// Force cookies to be secure (https only) if this site is SSL enabled. Must be done before session_start().
|
||||||
|
|
||||||
|
if(intval($a->config['system']['ssl_cookie_protection'])) {
|
||||||
|
$arr = session_get_cookie_params();
|
||||||
|
session_set_cookie_params(
|
||||||
|
((isset($arr['lifetime'])) ? $arr['lifetime'] : 0),
|
||||||
|
((isset($arr['path'])) ? $arr['path'] : '/'),
|
||||||
|
((isset($arr['domain'])) ? $arr['domain'] : $a->get_hostname()),
|
||||||
|
((isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) == 'on') ? true : false),
|
||||||
|
((isset($arr['httponly'])) ? $arr['httponly'] : true));
|
||||||
|
}
|
20
index.php
20
index.php
|
@ -61,25 +61,11 @@ if(! $a->install) {
|
||||||
load_hooks();
|
load_hooks();
|
||||||
call_hooks('init_1');
|
call_hooks('init_1');
|
||||||
|
|
||||||
$a->language = get_best_language();
|
}
|
||||||
load_translation_table($a->language);
|
|
||||||
// Force the cookie to be secure (https only) if this site is SSL enabled. Must be done before session_start().
|
|
||||||
|
|
||||||
if(intval($a->config['system']['ssl_cookie_protection'])) {
|
|
||||||
$arr = session_get_cookie_params();
|
|
||||||
session_set_cookie_params(
|
|
||||||
((isset($arr['lifetime'])) ? $arr['lifetime'] : 0),
|
|
||||||
((isset($arr['path'])) ? $arr['path'] : '/'),
|
|
||||||
((isset($arr['domain'])) ? $arr['domain'] : $a->get_hostname()),
|
|
||||||
((isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) == 'on') ? true : false),
|
|
||||||
((isset($arr['httponly'])) ? $arr['httponly'] : true));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
// load translations but do not check plugins as we have no database
|
|
||||||
$a->language = get_best_language();
|
$a->language = get_best_language();
|
||||||
load_translation_table($a->language,true);
|
load_translation_table($a->language,$a->install);
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -230,6 +230,7 @@ CREATE TABLE IF NOT EXISTS `channel` (
|
||||||
`channel_w_like` int(10) unsigned NOT NULL DEFAULT '0',
|
`channel_w_like` int(10) unsigned NOT NULL DEFAULT '0',
|
||||||
`channel_removed` tinyint(1) NOT NULL DEFAULT '0',
|
`channel_removed` tinyint(1) NOT NULL DEFAULT '0',
|
||||||
`channel_system` tinyint(1) NOT NULL DEFAULT '0',
|
`channel_system` tinyint(1) NOT NULL DEFAULT '0',
|
||||||
|
`channel_moved` char(255) NOT NULL DEFAULT '',
|
||||||
PRIMARY KEY (`channel_id`),
|
PRIMARY KEY (`channel_id`),
|
||||||
UNIQUE KEY `channel_address_unique` (`channel_address`),
|
UNIQUE KEY `channel_address_unique` (`channel_address`),
|
||||||
KEY `channel_account_id` (`channel_account_id`),
|
KEY `channel_account_id` (`channel_account_id`),
|
||||||
|
@ -268,7 +269,8 @@ CREATE TABLE IF NOT EXISTS `channel` (
|
||||||
KEY `channel_w_like` (`channel_w_like`),
|
KEY `channel_w_like` (`channel_w_like`),
|
||||||
KEY `channel_removed` (`channel_removed`),
|
KEY `channel_removed` (`channel_removed`),
|
||||||
KEY `channel_system` (`channel_system`),
|
KEY `channel_system` (`channel_system`),
|
||||||
KEY `channel_lastpost` (`channel_lastpost`)
|
KEY `channel_lastpost` (`channel_lastpost`),
|
||||||
|
KEY `channel_moved` (`channel_moved`)
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `chat` (
|
CREATE TABLE IF NOT EXISTS `chat` (
|
||||||
|
|
|
@ -225,6 +225,7 @@ CREATE TABLE "channel" (
|
||||||
"channel_w_like" bigint NOT NULL DEFAULT '128',
|
"channel_w_like" bigint NOT NULL DEFAULT '128',
|
||||||
"channel_removed" smallint NOT NULL DEFAULT '0',
|
"channel_removed" smallint NOT NULL DEFAULT '0',
|
||||||
"channel_system" smallint NOT NULL DEFAULT '0',
|
"channel_system" smallint NOT NULL DEFAULT '0',
|
||||||
|
"channel_moved" text NOT NULL DEFAULT '',
|
||||||
PRIMARY KEY ("channel_id"),
|
PRIMARY KEY ("channel_id"),
|
||||||
UNIQUE ("channel_address")
|
UNIQUE ("channel_address")
|
||||||
);
|
);
|
||||||
|
@ -265,6 +266,7 @@ create index "channel_dirdate" on channel ("channel_dirdate");
|
||||||
create index "channel_lastpost" on channel ("channel_lastpost");
|
create index "channel_lastpost" on channel ("channel_lastpost");
|
||||||
create index "channel_removed" on channel ("channel_removed");
|
create index "channel_removed" on channel ("channel_removed");
|
||||||
create index "channel_system" on channel ("channel_system");
|
create index "channel_system" on channel ("channel_system");
|
||||||
|
create index "channel_moved" on channel ("channel_moved");
|
||||||
CREATE TABLE "chat" (
|
CREATE TABLE "chat" (
|
||||||
"chat_id" serial NOT NULL,
|
"chat_id" serial NOT NULL,
|
||||||
"chat_room" bigint NOT NULL DEFAULT '0',
|
"chat_room" bigint NOT NULL DEFAULT '0',
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
define( 'UPDATE_VERSION' , 1163 );
|
define( 'UPDATE_VERSION' , 1164 );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
@ -2004,3 +2004,18 @@ function update_r1162() {
|
||||||
return UPDATE_SUCCESS;
|
return UPDATE_SUCCESS;
|
||||||
return UPDATE_FAILED;
|
return UPDATE_FAILED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function update_r1163() {
|
||||||
|
|
||||||
|
if(ACTIVE_DBTYPE == DBTYPE_POSTGRES) {
|
||||||
|
$r1 = q("alter table channel add channel_moved text not null default '' ");
|
||||||
|
$r2 = q("create index \"channel_channel_moved\" on channel (\"channel_moved\") ");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$r1 = q("alter table channel add channel_moved char(255) not null default '' ");
|
||||||
|
$r2 = q("alter table channel add index ( channel_moved ) ");
|
||||||
|
}
|
||||||
|
if($r1 && $r2)
|
||||||
|
return UPDATE_SUCCESS;
|
||||||
|
return UPDATE_FAILED;
|
||||||
|
}
|
|
@ -1275,7 +1275,7 @@ function admin_page_plugins(&$a){
|
||||||
'$str_minversion' => t('Minimum project version: '),
|
'$str_minversion' => t('Minimum project version: '),
|
||||||
'$str_maxversion' => t('Maximum project version: '),
|
'$str_maxversion' => t('Maximum project version: '),
|
||||||
'$str_minphpversion' => t('Minimum PHP version: '),
|
'$str_minphpversion' => t('Minimum PHP version: '),
|
||||||
|
'$str_requires' => t('Requires: '),
|
||||||
'$disabled' => t('Disabled - version incompatibility'),
|
'$disabled' => t('Disabled - version incompatibility'),
|
||||||
|
|
||||||
'$admin_form' => $admin_form,
|
'$admin_form' => $admin_form,
|
||||||
|
|
343
mod/cal.php
Executable file
343
mod/cal.php
Executable file
|
@ -0,0 +1,343 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
require_once('include/conversation.php');
|
||||||
|
require_once('include/bbcode.php');
|
||||||
|
require_once('include/datetime.php');
|
||||||
|
require_once('include/event.php');
|
||||||
|
require_once('include/items.php');
|
||||||
|
require_once('Contact.php');
|
||||||
|
|
||||||
|
|
||||||
|
function cal_init(&$a) {
|
||||||
|
if((get_config('system','block_public')) && (! local_channel()) && (! remote_channel())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$o = '';
|
||||||
|
|
||||||
|
if(argc() > 1) {
|
||||||
|
$nick = argv(1);
|
||||||
|
|
||||||
|
profile_load($a,$nick);
|
||||||
|
|
||||||
|
$channelx = channelx_by_nick($nick);
|
||||||
|
|
||||||
|
if(! $channelx)
|
||||||
|
return;
|
||||||
|
|
||||||
|
$a->data['channel'] = $channelx;
|
||||||
|
|
||||||
|
$observer = $a->get_observer();
|
||||||
|
$a->data['observer'] = $observer;
|
||||||
|
|
||||||
|
$observer_xchan = (($observer) ? $observer['xchan_hash'] : '');
|
||||||
|
|
||||||
|
head_set_icon($a->data['channel']['xchan_photo_s']);
|
||||||
|
|
||||||
|
$a->page['htmlhead'] .= "<script> var ispublic = '" . t('everybody') . "'; var profile_uid = " . (($a->data['channel']) ? $a->data['channel']['channel_id'] : 0) . "; </script>" ;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function cal_content(&$a) {
|
||||||
|
|
||||||
|
$channel = null;
|
||||||
|
|
||||||
|
if(argc() > 1) {
|
||||||
|
$channel = channelx_by_nick(argv(1));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if(! $channel) {
|
||||||
|
notice( t('Channel not found.') . EOL);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// since we don't currently have an event permission - use the stream permission
|
||||||
|
|
||||||
|
if(! perm_is_allowed($channel['channel_id'], get_observer_hash(), 'view_stream')) {
|
||||||
|
notice( t('Permissions denied.') . EOL);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$sql_extra = permissions_sql($channel['channel_id'],get_observer_hash(),'event');
|
||||||
|
|
||||||
|
$first_day = get_pconfig(local_channel(),'system','cal_first_day');
|
||||||
|
$first_day = (($first_day) ? $first_day : 0);
|
||||||
|
|
||||||
|
$htpl = get_markup_template('event_head.tpl');
|
||||||
|
$a->page['htmlhead'] .= replace_macros($htpl,array(
|
||||||
|
'$baseurl' => $a->get_baseurl(),
|
||||||
|
'$module_url' => '/cal/' . $channel['channel_address'],
|
||||||
|
'$modparams' => 2,
|
||||||
|
'$lang' => $a->language,
|
||||||
|
'$first_day' => $first_day
|
||||||
|
));
|
||||||
|
|
||||||
|
$o = '';
|
||||||
|
|
||||||
|
$mode = 'view';
|
||||||
|
$y = 0;
|
||||||
|
$m = 0;
|
||||||
|
$ignored = ((x($_REQUEST,'ignored')) ? " and ignored = " . intval($_REQUEST['ignored']) . " " : '');
|
||||||
|
|
||||||
|
logger('args: ' . print_r($a->argv,true));
|
||||||
|
|
||||||
|
if(argc() > 3 && intval(argv(2)) && intval(argv(3))) {
|
||||||
|
$mode = 'view';
|
||||||
|
$y = intval(argv(2));
|
||||||
|
$m = intval(argv(3));
|
||||||
|
}
|
||||||
|
if(argc() <= 3) {
|
||||||
|
$mode = 'view';
|
||||||
|
$event_id = argv(2);
|
||||||
|
}
|
||||||
|
|
||||||
|
if($mode == 'view') {
|
||||||
|
|
||||||
|
/* edit/create form */
|
||||||
|
if($event_id) {
|
||||||
|
$r = q("SELECT * FROM `event` WHERE event_hash = '%s' AND `uid` = %d LIMIT 1",
|
||||||
|
dbesc($event_id),
|
||||||
|
intval($channel['channel_id'])
|
||||||
|
);
|
||||||
|
if(count($r))
|
||||||
|
$orig_event = $r[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Passed parameters overrides anything found in the DB
|
||||||
|
if(!x($orig_event))
|
||||||
|
$orig_event = array();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$tz = date_default_timezone_get();
|
||||||
|
if(x($orig_event))
|
||||||
|
$tz = (($orig_event['adjust']) ? date_default_timezone_get() : 'UTC');
|
||||||
|
|
||||||
|
$syear = datetime_convert('UTC', $tz, $sdt, 'Y');
|
||||||
|
$smonth = datetime_convert('UTC', $tz, $sdt, 'm');
|
||||||
|
$sday = datetime_convert('UTC', $tz, $sdt, 'd');
|
||||||
|
$shour = datetime_convert('UTC', $tz, $sdt, 'H');
|
||||||
|
$sminute = datetime_convert('UTC', $tz, $sdt, 'i');
|
||||||
|
|
||||||
|
$stext = datetime_convert('UTC',$tz,$sdt);
|
||||||
|
$stext = substr($stext,0,14) . "00:00";
|
||||||
|
|
||||||
|
$fyear = datetime_convert('UTC', $tz, $fdt, 'Y');
|
||||||
|
$fmonth = datetime_convert('UTC', $tz, $fdt, 'm');
|
||||||
|
$fday = datetime_convert('UTC', $tz, $fdt, 'd');
|
||||||
|
$fhour = datetime_convert('UTC', $tz, $fdt, 'H');
|
||||||
|
$fminute = datetime_convert('UTC', $tz, $fdt, 'i');
|
||||||
|
|
||||||
|
$ftext = datetime_convert('UTC',$tz,$fdt);
|
||||||
|
$ftext = substr($ftext,0,14) . "00:00";
|
||||||
|
|
||||||
|
$type = ((x($orig_event)) ? $orig_event['type'] : 'event');
|
||||||
|
|
||||||
|
$f = get_config('system','event_input_format');
|
||||||
|
if(! $f)
|
||||||
|
$f = 'ymd';
|
||||||
|
|
||||||
|
$catsenabled = feature_enabled($channel['channel_id'],'categories');
|
||||||
|
|
||||||
|
|
||||||
|
$show_bd = perm_is_allowed($channel['channel_id'], get_observer_hash(), 'view_contacts');
|
||||||
|
if(! $show_bd) {
|
||||||
|
$sql_extra .= " and event.type != 'birthday' ";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$category = '';
|
||||||
|
|
||||||
|
$thisyear = datetime_convert('UTC',date_default_timezone_get(),'now','Y');
|
||||||
|
$thismonth = datetime_convert('UTC',date_default_timezone_get(),'now','m');
|
||||||
|
if(! $y)
|
||||||
|
$y = intval($thisyear);
|
||||||
|
if(! $m)
|
||||||
|
$m = intval($thismonth);
|
||||||
|
|
||||||
|
// Put some limits on dates. The PHP date functions don't seem to do so well before 1900.
|
||||||
|
// An upper limit was chosen to keep search engines from exploring links millions of years in the future.
|
||||||
|
|
||||||
|
if($y < 1901)
|
||||||
|
$y = 1900;
|
||||||
|
if($y > 2099)
|
||||||
|
$y = 2100;
|
||||||
|
|
||||||
|
$nextyear = $y;
|
||||||
|
$nextmonth = $m + 1;
|
||||||
|
if($nextmonth > 12) {
|
||||||
|
$nextmonth = 1;
|
||||||
|
$nextyear ++;
|
||||||
|
}
|
||||||
|
|
||||||
|
$prevyear = $y;
|
||||||
|
if($m > 1)
|
||||||
|
$prevmonth = $m - 1;
|
||||||
|
else {
|
||||||
|
$prevmonth = 12;
|
||||||
|
$prevyear --;
|
||||||
|
}
|
||||||
|
|
||||||
|
$dim = get_dim($y,$m);
|
||||||
|
$start = sprintf('%d-%d-%d %d:%d:%d',$y,$m,1,0,0,0);
|
||||||
|
$finish = sprintf('%d-%d-%d %d:%d:%d',$y,$m,$dim,23,59,59);
|
||||||
|
|
||||||
|
|
||||||
|
if (argv(2) === 'json'){
|
||||||
|
if (x($_GET,'start')) $start = $_GET['start'];
|
||||||
|
if (x($_GET,'end')) $finish = $_GET['end'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$start = datetime_convert('UTC','UTC',$start);
|
||||||
|
$finish = datetime_convert('UTC','UTC',$finish);
|
||||||
|
|
||||||
|
$adjust_start = datetime_convert('UTC', date_default_timezone_get(), $start);
|
||||||
|
$adjust_finish = datetime_convert('UTC', date_default_timezone_get(), $finish);
|
||||||
|
|
||||||
|
if (x($_GET,'id')){
|
||||||
|
$r = q("SELECT event.*, item.plink, item.item_flags, item.author_xchan, item.owner_xchan
|
||||||
|
from event left join item on resource_id = event_hash where resource_type = 'event' and event.uid = %d and event.id = %d $sql_extra limit 1",
|
||||||
|
intval($channel['channel_id']),
|
||||||
|
intval($_GET['id'])
|
||||||
|
);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// fixed an issue with "nofinish" events not showing up in the calendar.
|
||||||
|
// There's still an issue if the finish date crosses the end of month.
|
||||||
|
// Noting this for now - it will need to be fixed here and in Friendica.
|
||||||
|
// Ultimately the finish date shouldn't be involved in the query.
|
||||||
|
|
||||||
|
$r = q("SELECT event.*, item.plink, item.item_flags, item.author_xchan, item.owner_xchan
|
||||||
|
from event left join item on event_hash = resource_id
|
||||||
|
where resource_type = 'event' and event.uid = %d $ignored
|
||||||
|
AND (( adjust = 0 AND ( finish >= '%s' or nofinish = 1 ) AND start <= '%s' )
|
||||||
|
OR ( adjust = 1 AND ( finish >= '%s' or nofinish = 1 ) AND start <= '%s' )) $sql_extra ",
|
||||||
|
intval($channel['channel_id']),
|
||||||
|
dbesc($start),
|
||||||
|
dbesc($finish),
|
||||||
|
dbesc($adjust_start),
|
||||||
|
dbesc($adjust_finish)
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
$links = array();
|
||||||
|
|
||||||
|
if($r) {
|
||||||
|
xchan_query($r);
|
||||||
|
$r = fetch_post_tags($r,true);
|
||||||
|
|
||||||
|
$r = sort_by_date($r);
|
||||||
|
}
|
||||||
|
|
||||||
|
if($r) {
|
||||||
|
foreach($r as $rr) {
|
||||||
|
$j = (($rr['adjust']) ? datetime_convert('UTC',date_default_timezone_get(),$rr['start'], 'j') : datetime_convert('UTC','UTC',$rr['start'],'j'));
|
||||||
|
if(! x($links,$j))
|
||||||
|
$links[$j] = $a->get_baseurl() . '/' . $a->cmd . '#link-' . $j;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$events=array();
|
||||||
|
|
||||||
|
$last_date = '';
|
||||||
|
$fmt = t('l, F j');
|
||||||
|
|
||||||
|
if($r) {
|
||||||
|
|
||||||
|
foreach($r as $rr) {
|
||||||
|
|
||||||
|
$j = (($rr['adjust']) ? datetime_convert('UTC',date_default_timezone_get(),$rr['start'], 'j') : datetime_convert('UTC','UTC',$rr['start'],'j'));
|
||||||
|
$d = (($rr['adjust']) ? datetime_convert('UTC',date_default_timezone_get(),$rr['start'], $fmt) : datetime_convert('UTC','UTC',$rr['start'],$fmt));
|
||||||
|
$d = day_translate($d);
|
||||||
|
|
||||||
|
$start = (($rr['adjust']) ? datetime_convert('UTC',date_default_timezone_get(),$rr['start'], 'c') : datetime_convert('UTC','UTC',$rr['start'],'c'));
|
||||||
|
if ($rr['nofinish']){
|
||||||
|
$end = null;
|
||||||
|
} else {
|
||||||
|
$end = (($rr['adjust']) ? datetime_convert('UTC',date_default_timezone_get(),$rr['finish'], 'c') : datetime_convert('UTC','UTC',$rr['finish'],'c'));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$is_first = ($d !== $last_date);
|
||||||
|
|
||||||
|
$last_date = $d;
|
||||||
|
|
||||||
|
$edit = false;
|
||||||
|
|
||||||
|
$drop = false;
|
||||||
|
|
||||||
|
$title = strip_tags(html_entity_decode(bbcode($rr['summary']),ENT_QUOTES,'UTF-8'));
|
||||||
|
if(! $title) {
|
||||||
|
list($title, $_trash) = explode("<br",bbcode($rr['desc']),2);
|
||||||
|
$title = strip_tags(html_entity_decode($title,ENT_QUOTES,'UTF-8'));
|
||||||
|
}
|
||||||
|
$html = format_event_html($rr);
|
||||||
|
$rr['desc'] = bbcode($rr['desc']);
|
||||||
|
$rr['location'] = bbcode($rr['location']);
|
||||||
|
$events[] = array(
|
||||||
|
'id'=>$rr['id'],
|
||||||
|
'hash' => $rr['event_hash'],
|
||||||
|
'start'=> $start,
|
||||||
|
'end' => $end,
|
||||||
|
'drop' => $drop,
|
||||||
|
'allDay' => false,
|
||||||
|
'title' => $title,
|
||||||
|
|
||||||
|
'j' => $j,
|
||||||
|
'd' => $d,
|
||||||
|
'edit' => $edit,
|
||||||
|
'is_first'=>$is_first,
|
||||||
|
'item'=>$rr,
|
||||||
|
'html'=>$html,
|
||||||
|
'plink' => array($rr['plink'],t('Link to Source'),'',''),
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (argv(2) === 'json'){
|
||||||
|
echo json_encode($events); killme();
|
||||||
|
}
|
||||||
|
|
||||||
|
// links: array('href', 'text', 'extra css classes', 'title')
|
||||||
|
if (x($_GET,'id')){
|
||||||
|
$tpl = get_markup_template("event_cal.tpl");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$tpl = get_markup_template("events_cal-js.tpl");
|
||||||
|
}
|
||||||
|
|
||||||
|
$nick = $channel['channel_address'];
|
||||||
|
|
||||||
|
$o = replace_macros($tpl, array(
|
||||||
|
'$baseurl' => $a->get_baseurl(),
|
||||||
|
'$new_event' => array($a->get_baseurl().'/cal',(($event_id) ? t('Edit Event') : t('Create Event')),'',''),
|
||||||
|
'$previus' => array($a->get_baseurl()."/cal/$nick/$prevyear/$prevmonth",t('Previous'),'',''),
|
||||||
|
'$next' => array($a->get_baseurl()."/cal/$nick/$nextyear/$nextmonth",t('Next'),'',''),
|
||||||
|
'$export' => array($a->get_baseurl()."/cal/$nick/$y/$m/export",t('Export'),'',''),
|
||||||
|
'$calendar' => cal($y,$m,$links, ' eventcal'),
|
||||||
|
'$events' => $events,
|
||||||
|
'$upload' => t('Import'),
|
||||||
|
'$submit' => t('Submit'),
|
||||||
|
'$prev' => t('Previous'),
|
||||||
|
'$next' => t('Next'),
|
||||||
|
'$today' => t('Today'),
|
||||||
|
'$form' => $form,
|
||||||
|
'$expandform' => ((x($_GET,'expandform')) ? true : false),
|
||||||
|
));
|
||||||
|
|
||||||
|
if (x($_GET,'id')){ echo $o; killme(); }
|
||||||
|
|
||||||
|
return $o;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -283,6 +283,8 @@ function events_content(&$a) {
|
||||||
$htpl = get_markup_template('event_head.tpl');
|
$htpl = get_markup_template('event_head.tpl');
|
||||||
$a->page['htmlhead'] .= replace_macros($htpl,array(
|
$a->page['htmlhead'] .= replace_macros($htpl,array(
|
||||||
'$baseurl' => $a->get_baseurl(),
|
'$baseurl' => $a->get_baseurl(),
|
||||||
|
'$module_url' => '/events',
|
||||||
|
'$modparams' => 1,
|
||||||
'$lang' => $a->language,
|
'$lang' => $a->language,
|
||||||
'$first_day' => $first_day
|
'$first_day' => $first_day
|
||||||
));
|
));
|
||||||
|
@ -296,6 +298,11 @@ function events_content(&$a) {
|
||||||
$m = 0;
|
$m = 0;
|
||||||
$ignored = ((x($_REQUEST,'ignored')) ? " and ignored = " . intval($_REQUEST['ignored']) . " " : '');
|
$ignored = ((x($_REQUEST,'ignored')) ? " and ignored = " . intval($_REQUEST['ignored']) . " " : '');
|
||||||
|
|
||||||
|
|
||||||
|
logger('args: ' . print_r($a->argv,true));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if(argc() > 1) {
|
if(argc() > 1) {
|
||||||
if(argc() > 2 && argv(1) === 'add') {
|
if(argc() > 2 && argv(1) === 'add') {
|
||||||
$mode = 'add';
|
$mode = 'add';
|
||||||
|
|
|
@ -250,6 +250,7 @@ function register_content(&$a) {
|
||||||
'$role' => $role,
|
'$role' => $role,
|
||||||
'$default_role' => $default_role,
|
'$default_role' => $default_role,
|
||||||
'$nickname' => $nickname,
|
'$nickname' => $nickname,
|
||||||
|
'$enable_tos' => $enable_tos,
|
||||||
'$tos' => $tos,
|
'$tos' => $tos,
|
||||||
'$email' => $email,
|
'$email' => $email,
|
||||||
'$pass1' => $password,
|
'$pass1' => $password,
|
||||||
|
|
|
@ -128,6 +128,8 @@ function webpages_content(&$a) {
|
||||||
|
|
||||||
// Get a list of webpages. We can't display all them because endless scroll makes that unusable,
|
// Get a list of webpages. We can't display all them because endless scroll makes that unusable,
|
||||||
// so just list titles and an edit link.
|
// so just list titles and an edit link.
|
||||||
|
|
||||||
|
|
||||||
/** @TODO - this should be replaced with pagelist_widget */
|
/** @TODO - this should be replaced with pagelist_widget */
|
||||||
|
|
||||||
$sql_extra = item_permissions_sql($owner);
|
$sql_extra = item_permissions_sql($owner);
|
||||||
|
|
|
@ -35,8 +35,6 @@ function xrd_init(&$a) {
|
||||||
header("Content-type: application/xrd+xml");
|
header("Content-type: application/xrd+xml");
|
||||||
|
|
||||||
|
|
||||||
$tpl = get_markup_template('view/xrd_person.tpl');
|
|
||||||
|
|
||||||
$o = replace_macros(get_markup_template('xrd_person.tpl'), array(
|
$o = replace_macros(get_markup_template('xrd_person.tpl'), array(
|
||||||
'$nick' => $r[0]['channel_address'],
|
'$nick' => $r[0]['channel_address'],
|
||||||
'$accturi' => $uri,
|
'$accturi' => $uri,
|
||||||
|
@ -51,7 +49,7 @@ function xrd_init(&$a) {
|
||||||
// '$salmen' => $a->get_baseurl() . '/salmon/' . $r[0]['channel_address'] . '/mention',
|
// '$salmen' => $a->get_baseurl() . '/salmon/' . $r[0]['channel_address'] . '/mention',
|
||||||
'$modexp' => 'data:application/magic-public-key,' . $salmon_key,
|
'$modexp' => 'data:application/magic-public-key,' . $salmon_key,
|
||||||
'$subscribe' => $a->get_baseurl() . '/follow?url={uri}',
|
'$subscribe' => $a->get_baseurl() . '/follow?url={uri}',
|
||||||
// '$bigkey' => salmon_key($r[0]['pubkey'])
|
'$bigkey' => salmon_key($r[0]['channel_pubkey'])
|
||||||
));
|
));
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
2016-02-22.1315H
|
2016-02-24.1317H
|
||||||
|
|
2
view/css/bootstrap-red.css
vendored
2
view/css/bootstrap-red.css
vendored
|
@ -37,7 +37,7 @@ nav .navbar-header img {
|
||||||
|
|
||||||
nav .dropdown-menu {
|
nav .dropdown-menu {
|
||||||
max-height: 450px;
|
max-height: 450px;
|
||||||
max-width: 300px;
|
width: 270px;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
margin-top: 0px;
|
margin-top: 0px;
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,7 @@ I'm the web server at {{$sitename}};
|
||||||
The Hubzilla developers released update {{$update}} recently,
|
The Hubzilla developers released update {{$update}} recently,
|
||||||
but when I tried to install it, something went terribly wrong.
|
but when I tried to install it, something went terribly wrong.
|
||||||
This needs to be fixed soon and it requires human intervention.
|
This needs to be fixed soon and it requires human intervention.
|
||||||
Please contact a Red developer if you can not figure out how to
|
Please contact a project developer if you can not figure out how to
|
||||||
fix it on your own. My database might be invalid.
|
fix it on your own. My database might be invalid.
|
||||||
|
|
||||||
The error message is '{{$error}}'.
|
The error message is '{{$error}}'.
|
||||||
|
|
|
@ -1847,8 +1847,8 @@ $a->strings["Public Sites"] = "Openbare hubs";
|
||||||
$a->strings["The listed sites allow public registration for the \$Projectname network. All sites in the network are interlinked so membership on any of them conveys membership in the network as a whole. Some sites may require subscription or provide tiered service plans. The provider links <strong>may</strong> provide additional details."] = "Op de hier weergegeven hubs kan iedereen zich voor het \$Projectname-netwerk aanmelden. Alle hubs in het \$Projectname-netwerk zijn met elkaar verbonden, dus maakt het qua lidmaatschap niet uit waar je je aanmeldt. Op sommige hubs heb je eerst goedkeuring nodig en sommige hubs vereisen betaalde abonnementen voor uitbreidingen. <strong>Mogelijk</strong> wordt hierover op de hub zelf meer informatie gegeven.";
|
$a->strings["The listed sites allow public registration for the \$Projectname network. All sites in the network are interlinked so membership on any of them conveys membership in the network as a whole. Some sites may require subscription or provide tiered service plans. The provider links <strong>may</strong> provide additional details."] = "Op de hier weergegeven hubs kan iedereen zich voor het \$Projectname-netwerk aanmelden. Alle hubs in het \$Projectname-netwerk zijn met elkaar verbonden, dus maakt het qua lidmaatschap niet uit waar je je aanmeldt. Op sommige hubs heb je eerst goedkeuring nodig en sommige hubs vereisen betaalde abonnementen voor uitbreidingen. <strong>Mogelijk</strong> wordt hierover op de hub zelf meer informatie gegeven.";
|
||||||
$a->strings["Rate this hub"] = "Beoordeel deze hub";
|
$a->strings["Rate this hub"] = "Beoordeel deze hub";
|
||||||
$a->strings["Site URL"] = "URL hub";
|
$a->strings["Site URL"] = "URL hub";
|
||||||
$a->strings["Access Type"] = "Toegangstype";
|
$a->strings["Access Type"] = "Toegangs-<br/> type";
|
||||||
$a->strings["Registration Policy"] = "Registratiebeleid";
|
$a->strings["Registration Policy"] = "Registratie-<br/> beleid";
|
||||||
$a->strings["Project"] = "Project";
|
$a->strings["Project"] = "Project";
|
||||||
$a->strings["View hub ratings"] = "Beoordelingen";
|
$a->strings["View hub ratings"] = "Beoordelingen";
|
||||||
$a->strings["Rate"] = "Beoordeel";
|
$a->strings["Rate"] = "Beoordeel";
|
||||||
|
@ -1877,7 +1877,7 @@ $a->strings["<a href=\"pubsites\">Register at another affiliated site/hub</a>"]
|
||||||
$a->strings["This site has exceeded the number of allowed daily account registrations. Please try again tomorrow."] = "Deze \$Projectname-hub heeft het maximum aantal dagelijks toegestane registraties bereikt. Probeer het morgen (UTC) nogmaals.";
|
$a->strings["This site has exceeded the number of allowed daily account registrations. Please try again tomorrow."] = "Deze \$Projectname-hub heeft het maximum aantal dagelijks toegestane registraties bereikt. Probeer het morgen (UTC) nogmaals.";
|
||||||
$a->strings["Terms of Service"] = "Gebruiksvoorwaarden";
|
$a->strings["Terms of Service"] = "Gebruiksvoorwaarden";
|
||||||
$a->strings["I accept the %s for this website"] = "Ik accepteer de %s van deze \$Projectname-hub";
|
$a->strings["I accept the %s for this website"] = "Ik accepteer de %s van deze \$Projectname-hub";
|
||||||
$a->strings["I am over 13 years of age and accept the %s for this website"] = "Ik accepteer de %s van deze \$Projectname-hub";
|
$a->strings["I am over 13 years of age and accept the %s for this website"] = "Ik ben 13 jaar of ouder en accepteer de %s van deze \$Projectname-hub";
|
||||||
$a->strings["Membership on this site is by invitation only."] = "Registreren op deze \$Projectname-hub kan alleen op uitnodiging.";
|
$a->strings["Membership on this site is by invitation only."] = "Registreren op deze \$Projectname-hub kan alleen op uitnodiging.";
|
||||||
$a->strings["Please enter your invitation code"] = "Vul jouw uitnodigingscode in";
|
$a->strings["Please enter your invitation code"] = "Vul jouw uitnodigingscode in";
|
||||||
$a->strings["Enter your name"] = "Vul jouw naam in";
|
$a->strings["Enter your name"] = "Vul jouw naam in";
|
||||||
|
|
|
@ -1,19 +1,19 @@
|
||||||
|
s met dit e-mailadres een account aangemaakt op {{$sitename}}.
|
||||||
Er is met dit e-mailadres een account aangemaakt op {{$sitename}}.
|
|
||||||
De inloggegevens zijn als volgt:
|
De inloggegevens zijn als volgt:
|
||||||
|
|
||||||
Hub: {{$siteurl}}
|
Hub: {{$siteurl}}
|
||||||
Inlognaam: {{$email}}
|
Inlognaam: {{$email}}
|
||||||
Wachtwoord: (het wachtwoord dat je tijdens de registratie hebt opgegeven)
|
Wachtwoord: (het wachtwoord dat je tijdens de registratie hebt opgegeven)
|
||||||
|
|
||||||
Wanneer dit account was aangemaakt zonder jouw medeweten en tevens niet gewenst, dan kan je {{$siteurl}}
|
Wanneer dit account was aangemaakt zonder jouw medeweten en tevens niet gewenst, dan kan je {{$siteurl
|
||||||
bezoeken en een nieuwe wachtwoord aanvragen. Je kan daarna inloggen, een kanaal aanmaken en
|
}}/lostpass bezoeken en het wachtwoord opnieuw instellen. Je kan daarna inloggen, een kanaal aanmaken en meteen via 'instellingen > account' (linksboven) het account verwijderen (rechtsboven).
|
||||||
meteen via 'instellingen > account' (linksboven) het account verwijderen (onderaan).
|
|
||||||
Excuses voor het eventuele ongemak.
|
Excuses voor het eventuele ongemak.
|
||||||
|
|
||||||
Wanneer dit account wel door jou is aangemaakt: Dank je en welkom op {{$sitename}}.
|
Wanneer dit account wel door jou is aangemaakt: Dank je en van harte welkom op {{$sitename}}.
|
||||||
|
|
||||||
Vriendelijke groet,
|
Vriendelijke groet,
|
||||||
|
|
||||||
Beheerder {{$sitename}} ({{$siteurl}})
|
Beheerder {{$sitename}} ({{$siteurl}})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
3
view/pdl/mod_cal.pdl
Normal file
3
view/pdl/mod_cal.pdl
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
[region=aside]
|
||||||
|
[widget=fullprofile][/widget]
|
||||||
|
[/region]
|
|
@ -3,9 +3,5 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.wall-item-content-wrapper.comment {
|
.wall-item-content-wrapper.comment {
|
||||||
border-width: 0px 0px 1px 0px;
|
border-bottom: 1px solid #ccc;
|
||||||
}
|
|
||||||
|
|
||||||
.hide-comments-outer {
|
|
||||||
border-width: 1px 0px 1px 0px;
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,6 +24,9 @@
|
||||||
{{if $info.minphpversion}}
|
{{if $info.minphpversion}}
|
||||||
<p class="versionlimit">{{$str_minphpversion}}{{$info.minphpversion}}</p>
|
<p class="versionlimit">{{$str_minphpversion}}{{$info.minphpversion}}</p>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
{{if $info.requires}}
|
||||||
|
<p class="versionlimit">{{$str_requires}}{{$info.requires}}</p>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
|
||||||
{{foreach $info.maintainer as $a}}
|
{{foreach $info.maintainer as $a}}
|
||||||
|
|
14
view/tpl/event_cal.tpl
Executable file
14
view/tpl/event_cal.tpl
Executable file
|
@ -0,0 +1,14 @@
|
||||||
|
{{foreach $events as $event}}
|
||||||
|
<div class="event-wrapper">
|
||||||
|
<div class="event">
|
||||||
|
<div class="event-owner">
|
||||||
|
{{if $event.item.author.xchan_name}}<a href="{{$event.item.author.xchan_url}}" ><img src="{{$event.item.author.xchan_photo_s}}">{{$event.item.author.xchan_name}}</a>{{/if}}
|
||||||
|
</div>
|
||||||
|
{{$event.html}}
|
||||||
|
<div class="event-buttons">
|
||||||
|
{{if $event.item.plink}}<a href="{{$event.plink.0}}" title="{{$event.plink.1}}" class="plink-event-link"><i class="icon-external-link btn btn-default" ></i></a>{{/if}}
|
||||||
|
</div>
|
||||||
|
<div class="clear"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{/foreach}}
|
|
@ -6,7 +6,7 @@
|
||||||
<script>
|
<script>
|
||||||
function showEvent(eventid) {
|
function showEvent(eventid) {
|
||||||
$.get(
|
$.get(
|
||||||
'{{$baseurl}}/events/?id='+eventid,
|
'{{$baseurl}}{{$module_url}}/?id='+eventid,
|
||||||
function(data){
|
function(data){
|
||||||
$.colorbox({ scrolling: false, html: data, onComplete: function() { $.colorbox.resize(); }});
|
$.colorbox({ scrolling: false, html: data, onComplete: function() { $.colorbox.resize(); }});
|
||||||
}
|
}
|
||||||
|
@ -36,7 +36,7 @@
|
||||||
|
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
$('#events-calendar').fullCalendar({
|
$('#events-calendar').fullCalendar({
|
||||||
events: '{{$baseurl}}/events/json',
|
events: '{{$baseurl}}{{$module_url}}/json',
|
||||||
header: false,
|
header: false,
|
||||||
lang: '{{$lang}}',
|
lang: '{{$lang}}',
|
||||||
firstDay: {{$first_day}},
|
firstDay: {{$first_day}},
|
||||||
|
@ -109,10 +109,17 @@
|
||||||
});
|
});
|
||||||
|
|
||||||
// center on date
|
// center on date
|
||||||
|
// @fixme does not work for cal/$nick module_url
|
||||||
var args=location.href.replace(baseurl,"").split("/");
|
var args=location.href.replace(baseurl,"").split("/");
|
||||||
|
{{if $modparams == 2}}
|
||||||
|
if (args.length>=5) {
|
||||||
|
$("#events-calendar").fullCalendar('gotoDate',args[3] , args[4]-1);
|
||||||
|
}
|
||||||
|
{{else}}
|
||||||
if (args.length>=4) {
|
if (args.length>=4) {
|
||||||
$("#events-calendar").fullCalendar('gotoDate',args[2] , args[3]-1);
|
$("#events-calendar").fullCalendar('gotoDate',args[2] , args[3]-1);
|
||||||
}
|
}
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
// show event popup
|
// show event popup
|
||||||
var hash = location.hash.split("-")
|
var hash = location.hash.split("-")
|
||||||
|
|
17
view/tpl/events_cal-js.tpl
Executable file
17
view/tpl/events_cal-js.tpl
Executable file
|
@ -0,0 +1,17 @@
|
||||||
|
<div class="generic-content-wrapper">
|
||||||
|
<div class="section-title-wrapper">
|
||||||
|
<div class="pull-right">
|
||||||
|
<div class="btn-group">
|
||||||
|
<button class="btn btn-default btn-xs" onclick="changeView('prev', false);" title="{{$prev}}"><i class="icon-backward"></i></button>
|
||||||
|
<button id="events-spinner" class="btn btn-default btn-xs" onclick="changeView('today', false);" title="{{$today}}"><i class="icon-bullseye"></i></button>
|
||||||
|
<button class="btn btn-default btn-xs" onclick="changeView('next', false);" title="{{$next}}"><i class="icon-forward"></i></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<h2 id="title"></h2>
|
||||||
|
<div class="clear"></div>
|
||||||
|
</div>
|
||||||
|
<div class="clear"></div>
|
||||||
|
<div class="section-content-wrapper-np">
|
||||||
|
<div id="events-calendar"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
Loading…
Reference in a new issue