merge madness

This commit is contained in:
friendica 2014-10-19 16:12:05 -07:00
parent 6d3619c8b1
commit bae3029c63
64 changed files with 1261 additions and 1337 deletions

View File

@ -51,7 +51,4 @@ Example:
name="charlie brown" and country=canada and not gender=female
#include doc/macros/main_footer.bb;

View File

@ -133,3 +133,5 @@ Hooks - Complete List
* $a->module . '_pre_' . $selname
* $a->module . '_pre_' . $selname
#include doc/macros/main_footer.bb;

View File

@ -20,5 +20,5 @@ Along the way, Red offers a number of unique goodies:
[b]Privacy:[/b] Red identities (Zot IDs) can be deleted, backed up/downloaded, and cloned. The user is in full control of their data. Should you decide to delete all your content and erase your Zot ID, all you have to do is click on a link and it's immediately deleted from the hub. No questions, no fuss.
Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl]
#include doc/macros/main_footer.bb;

View File

@ -31,3 +31,5 @@ See Also
[zrl=[baseurl]/help/permissions]Permissions[/zrl]
[zrl=[baseurl]/help/profiles]Profiles[/zrl]
[zrl=[baseurl]/help/remove_account]Remove Account[/zrl]
#include doc/macros/main_footer.bb;

View File

@ -1,4 +1,4 @@
This one still needs to be written.
Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl]
#include doc/macros/main_footer.bb;

View File

@ -15,5 +15,5 @@ Unlike other services Red Matrix offers you the advantage of creating [i]many mo
During the registration you created your first [i]channel[/i]. Yes, besides several profiles you are able to have several channels. This might be a bit confusing in the beginning, but let's clear things up. You already have created one channel. You can use this one for the public, to communicate with people about every day life. But perhaps you are an avid book reader and many people are bored by that. So you open a [i]second channel[/i] just for the book lovers, where you all can talk about books as much as you like. Obviously this is a new stream of posts, with a new profile (... or new profile[i]s[/i] ...) and completely different contacts. Some connections might exist in both channels, but there will be some that are exclusive to only one of both. You yourself just switch between both of them just like you would in real life switch when talking to people you meet on the street or people you meet specially to talk about books. You can even connect to yourself, or better: to your other channel. :)
[i]Think of a channel as different spaces dedicated to different topics where you meet with different people.[/i]
Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl]
#include doc/macros/main_footer.bb;

View File

@ -1,5 +1,5 @@
* [zrl=[baseurl]/help/addons_gnusocial]Posting To Gnu Social[/zrl]
Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl]
#include doc/macros/main_footer.bb;

View File

@ -60,5 +60,5 @@ If you don't choose this option, you will have an option to send a post to your
If all goes well, you have just cross-posted your RedMatrix post to your account on a GNUsocial instance.
Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl]
#include doc/macros/addons_footer.bb;

View File

@ -129,5 +129,5 @@ Red proposed API extensions to the Twitter API
api/albums/destroy (R),J
api/friends/permissions (R),J
Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl]
#include doc/macros/main_footer.bb;

View File

@ -66,8 +66,8 @@
<li>[rpost=title]Text to post[/rpost] The observer will be returned to their home hub to enter a post with the specified title and body. Both are optional <br />
<li>[qr]text to post[/qr] - create a QR code.<br />
<br />
Return to the <a href="/help/main">Main documentation page[/a]
#include doc/macros/main_footer.bb;
</div>

View File

@ -233,5 +233,5 @@ Raising more than our initial goal of funds, will speed up our development effor
Awesome. We'd be more than happy to chat. You can find us {HERE}
Return to the [url=[baseurl]/help/main]Main documentation page[/url]
#include doc/macros/main_footer.bb;

View File

@ -26,5 +26,5 @@ The &quot;Matrix&quot; page contains all recent posts from across the matrix, ag
As mentioned at the start, many other kinds of channel are possible, however, the creation procedure is the same. The difference between channels lies primarily in the permissions assigned. For example, a channel for sharing documents with colleagues at work would probably want more permissive settings for &quot;Can write to my &quot;public&quot; file storage&quot; than a personal account. For more information, see the permissions section.
Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl]
#include doc/macros/main_footer.bb;

View File

@ -14,4 +14,4 @@ Visit the following URL in your browser:
Example:
[observer.baseurl]/filestorage/[observer.webname]
Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl]
#include doc/macros/main_footer.bb;

View File

@ -24,4 +24,4 @@ See: [zrl=[baseurl]/help/cloud_desktop_clients]Cloud Desktop Clients[/zrl]
When using WebDAV, the file is created with your channel's default file permissions and this cannot be changed from within the operating system. It also may not be as restrictive as you would like. What we've found is that the preferred method of making files private is to first create folders or directories; then visit &quot;filestorage/{{username}}&quot;; select the directory and change the permissions. Do this before you put anything into the directory. The directory permissions take precedence so you can then put files or other folders into that container and they will be protected from unwanted viewers by the directory permissions. It is common for folks to create a &quot;personal&quot; or &quot;private&quot; folder which is restricted to themselves. You can use this as a personal cloud to store anything from anywhere on the web or any computer and it is protected from others. You might also create folders for &quot;family&quot; and &quot;friends&quot; with permission granted to appropriate collections of channels.
Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl]
#include doc/macros/main_footer.bb;

View File

@ -18,4 +18,4 @@
Note: There have been reported issues with clients that use "chunked transfer encoding", which includes Apple iOS services, and also the "AnyClient" and "CyberDuck" tools. These work fine for downloads, but uploads often end up with files of zero size. This is caused by an incorrect implemention of chunked encoding in some current FCGI (fast-cgi) implementations. Apache running with PHP as a module does not have these issues, but when running under FCGI you may need to use alternative clients or use the web uploader. At the time of this writing the issue has been open and no updates provided for at least a year. If you encounter zero size files with other clients, please check the client notes; as there are occasional configuration issues which can also produce these symptoms.
Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl]
#include doc/macros/cloud_footer.bb;

View File

@ -188,4 +188,4 @@ The 'comment' tag is used to delimit comments. These comments will not appear on
[/region]
[/code]
Return to the [url=[baseurl]/help/main]Main documentation page[/url]
#include doc/macros/main_footer.bb;

View File

@ -16,4 +16,4 @@ You may also connect with any channel by visiting the &quot;Connections&quot; pa
Some channels are designated &quot;Premium Channels&quot; and may require some action on your part before a connection can be established. The Connect button will for these channels will take you to a page which lists in detail what terms the channel owner has set. If the terms are accepted, the connection will then proceed normally. In some cases, such as with celebrities and world-reknowned publishers, this may involve payment. If you do not agree to the terms, the connection will not proceed, or it may proceed but with reduced permissions allowed on your interactions with that channel.
Return to the [url=[baseurl]/help/main]Main documentation page[/url]
#include doc/macros/main_footer.bb;

76
doc/credits.bb Normal file
View File

@ -0,0 +1,76 @@
[b]Credits[/b]
Mike Macgirvin
Thomas Willingham
Fabio Comuni
Simon L'nu
marijus
Tobias Diekershoff
fabrixxm
tommy tomson
Simon
zottel
Christian Vogeley
jeroenpraat
Michael Vogel
erik
Zach Prezkuta
Paolo T
Michael Meer
Michael
Abinoam P. Marques Jr
Tobias Hößl
Alexander Kampmann
Olaf Conradi
Paolo Tacconi
tobiasd
Devlon Duthie
Zvi ben Yaakov (a.k.a rdc)
Alexandre Hannud Abdo
Olivier Migeot
Chris Case
Klaus Weidenbach
Michael Johnston
olivierm
Vasudev Kamath
pixelroot
Max Weller
duthied
Martin Schmitt
Sebastian Egbers
Erkan Yilmaz
sasiflo
Stefan Parviainen
Haakon Meland Eriksen
Oliver Hartmann (23n)
Erik Lundin
habeascodice
sirius
Charles
Tony Baldwin
Hauke Zuehl
Keith Fernie
toclimb
Daniel Frank
Matthew Exon
Michal Supler
Tobias Luther
U-SOUND\mike
mrjive
nostupidzone
tonnerkiller
Antoine G
Christian Drechsler
Ludovic Grossard
RedMatrixCanada
Stanislav Lechev [0xAF]
aweiher
bufalo1973
dsp1986
felixgilles
ike
maase2
mycocham
ndurchx
pafcu
Simó Albert i Beltran

View File

@ -6,4 +6,4 @@ When prompted for a username and password, enter your username (the first part o
Note, if you are already logged in to the web interface via Konqueror, you will not be prompted for further authentication.
Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl]
#include doc/macros/cloud_footer.bb;

View File

@ -8,4 +8,5 @@ Additionally, if one has authenticated at a different hub during their normal br
This functionality is normally restricted to the web interface, and is not available to any desktop software other than KDE.
Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl]
#include doc/macros/cloud_footer.bb;

View File

@ -82,5 +82,5 @@ If that still doesn't work, disable the cache. Note that this has a performance
If it [i]still[/i] doesn't work, there is one more thing you can try. (This one is caused by a bug in older versions of dav2fs itself, so updating to a new version may also help). Enable weak etag dropping by setting [code]drop_weak_etags 1[/code]. Unmount and remount your filesystem to apply the changes.
#include doc/macros/cloud_footer.bb;
Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl]

View File

@ -6,4 +6,4 @@
4. You will be prompted for your username (same as above) and password
5. Your personal DAV directory will be shown in the window
Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl]
#include doc/macros/cloud_footer.bb;

View File

@ -16,4 +16,4 @@ Fill the dialog
Once open you can set a bookmark.
Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl]
#include doc/macros/cloud_footer.bb;

View File

@ -8,4 +8,4 @@ RedDav using Windows 7 graphical user interface wizard:
5. Type your Red account's user name. IMPORTANT - NO at-sign or domain name.
6. Type your Red password
Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl]
#include doc/macros/cloud_footer.bb;

View File

@ -29,4 +29,4 @@ To install Red for domain example.com, after the initial server setup run
[code]bash setup-debian.sh red example.com[/code]
Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl]
#include doc/macros/main_footer.bb;

View File

@ -48,5 +48,5 @@ Returns the translated variant of $string for the current language or $string (d
Shorthand test to see if variable $var is set and is not empty. Tests vary by type. Returns false if $var or $key is not set.
If variable is set, returns 1 if has 'non-zero' value, otherwise returns 0. -- e.g. x('') or x(0) returns 0;
Return to the [url=[baseurl]/help/main]Main documentation page[/url]
#include doc/macros/main_footer.bb;

View File

@ -44,4 +44,4 @@ Returns the translated variant of $string for the current language or $string (d
Shorthand test to see if variable $var is set and is not empty. Tests vary by type. Returns false if $var or $key is not set. If variable is set, returns 1 if has 'non-zero' value, otherwise returns 0. -- e.g. x('') or x(0) returns 0;
Return to the [url=[baseurl]/help/main]Main documentation page[/url]
#include doc/macros/main_footer.bb;

View File

@ -64,4 +64,4 @@ In the interests of consistency we adopt the following code styling. We may acce
[li] Generally speaking, opening braces go on the same line as the thing which opens the brace. They are the last character on the line. Closing braces are on a line by themselves. [/li]
Return to the [url=[baseurl]/help/main]Main documentation page[/url]
#include doc/macros/main_footer.bb;

View File

@ -19,6 +19,6 @@
[*][url=https://github.com/zzottel/feed2red]feed2red.pl (posts Atom/RSS feeds to channel)[/url]
[b]Utilities[/b]
[*][url=http://beardyunixer.com:1234/?p=debian-install-script;a=tree]Debian Install Script[/url]
[*][url=http://gitweb.whogotzot.com/debian-install-script]Debian Install Script[/url]
Return to the [url=[baseurl]/help/main]Main documentation page[/url]
#include doc/macros/main_footer.bb;

View File

@ -94,4 +94,4 @@ Ability to mark special posts with a star indicator
Provide a personal tag cloud on your channel page
Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl]
#include doc/macros/main_footer.bb;

View File

@ -45,4 +45,4 @@ valid SSL certificate rather than disabling port 443.
[/ul]
Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl]
#include doc/macros/main_footer.bb;

View File

@ -1,6 +1,5 @@
[size=large][b]Frequently Asked Questions For Developers[/b][/size]
(...) still needs to be written (...)
[ul]
[*][b]What does $a mean?[/b]
@ -26,3 +25,7 @@ function foo() {
}
[/code]
[/ul]
#include doc/macros/main_footer.bb;

View File

@ -12,6 +12,4 @@ You have probably disabled third party cookies. You need to enable them for rem
There are also a lot of [b]private[/b] foreign language posts and auto-translation services would require us to transmit these private messages to the translation service; and we don't know what they will do with them on their servers. Actually we do know thanks to Edward Snowden. Our best bet is a project called [b][i]Apertium[/i][/b] which is an open source translator we can install locally. It is currently missing German translations - which are the most requested translation in the matrix. Once again, this will be implemented when we find somebody who really wants to make it happen.
[/ul]
Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl]
#include doc/macros/main_footer.bb;

View File

@ -108,4 +108,4 @@ Similar to any other modern blogging system, social network, or a micro-blogging
[b][color=white]Previewing[/color][/b]
Post can be previewed prior to sending.
Return to the [url=[baseurl]/help/main]Main documentation page[/url]
#include doc/macros/main_footer.bb;

View File

@ -68,4 +68,4 @@ git request-pull master https://example.com/project
And simply send the output to the project maintainer.
Return to the [url=[baseurl]/help/main]Main documentation page[/url]
#include doc/macros/main_footer.bb;

View File

@ -101,3 +101,5 @@ This document assumes you're an administrator.
[b]system > hide_in_statistics[/b]
Tell the red statistics servers to completely hide this hub in hub lists.
#include doc/macros/main_footer.bb;

View File

@ -1 +1,4 @@
#include install/INSTALL.txt;
#include doc/macros/main_footer.bb;

View File

@ -109,4 +109,4 @@ At that point, if you need to add javascript or css files, add them to /js or /c
Now you'll probably want to alter a template. These can be found in in /view/tpl OR view//tpl. All you should have to do is copy whatever you want to tweak from the first place to your theme's own tpl directory.
Return to the [url=[baseurl]/help/main]Main documentation page[/url]
#include doc/macros/main_footer.bb;

View File

@ -0,0 +1,2 @@
Return to the [zrl=[baseurl]/help/addons]Addons documentation[/zrl]
Return to the [zrl=[baseurl]/help/addons]Main documentation[/zrl]

View File

@ -0,0 +1,2 @@
Return to the [zrl=[baseurl]/help/cloud]Cloud documentation[/zrl]
Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl]

View File

@ -0,0 +1 @@
Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl]

View File

@ -0,0 +1,2 @@
[zrl=[baseurl]/help/troubleshooting]Troubleshooting documentation[/zrl]
[zrl=[baseurl]/help/troubleshooting]Documentation Main Page[/zrl]

View File

@ -36,7 +36,7 @@ Zot is the great new communicaton protocol invented especially for the Red Matri
[zrl=[baseurl]/help/diaspora_compat]Diaspora Communications Compatibility (Diaspora and Friendica)[/zrl]
[size=large][b]Frequently Asked Questions For Members[/b][/size]
[zrl=[baseurl]/help/faq_users]FAQ For Members[/zrl]
[zrl=[baseurl]/help/faq_members]FAQ For Members[/zrl]
[size=large][b]For Hub Administrators[/b][/size]
[zrl=[baseurl]/help/install]Install[/zrl]

View File

@ -107,4 +107,4 @@ The connection edit screen offers a slider to select a degree of friendship with
The slider on the matrix page has both a minimum and maximum value. Posts will only be shown from people who fall between this range. Affinity has no relation to permissions, and is only useful in conjunction with the affinity tool feature.
Return to the [url=[baseurl]/help/main]Main documentation page[/url]
#include doc/macros/main_footer.bb;

View File

@ -261,4 +261,4 @@ The Red Matrix has _install and _uninstall functions but these are used differen
Changing these will often allow your plugin to function, but please double check all your permission and identity code because the concepts behind it are completely different in the Red Matrix. Many structured data names (especially DB schema columns) are also quite different.
Return to the [url=[baseurl]/help/main]Main documentation page[/url]
#include doc/macros/main_footer.bb;

View File

@ -34,4 +34,5 @@ Redbasic uses a few javascript libraries that are done differently, or entirely
Should you report an issue with the theme developers then? No. Theme developers use their themes. Chances are, they know. Give them two or three days to catch up and [i]then[/i] report the issue if it's still not fixed. There are two workarounds for this situation. Firstly, you can temporarily use Redbasic. Secondly, most themes are open source too - open a pull request and make yourself a friend.
Return to the [url=[baseurl]/help/troubleshooting]Troubleshooting documentation page[/url]
#include doc/macros/troubleshooting_footer.bb;

View File

@ -32,4 +32,4 @@ On the directory page, you may search for people with published profiles. Curren
On your Connnections page and in the directory there is a link to &quot;Suggestions&quot; or &quot;Channel Suggestions&quot;, respectively. This will find channels who have matching and/or similar keywords. The more keywords you provide, the more relevant the search results that are returned. These are sorted by relevance.
Return to the [url=[baseurl]/help/main]Main documentation page[/url]
#include doc/macros/main_footer.bb;

View File

@ -342,4 +342,4 @@ Save and exit.
Follow the instructions here:
[url=https://github.com/friendica/friendica/wiki/Running-Friendica-with-SSL]https://github.com/friendica/friendica/wiki/Running-Friendica-with-SSL[/url]
Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl]
#include doc/macros/main_footer.bb;

View File

@ -31,4 +31,5 @@ See Also
[zrl=[baseurl]/help/permissions]Permissions[/zrl]
[zrl=[baseurl]/help/remove_account]Remove Account[/zrl]
Return to the [url=[baseurl]/help/main]Main documentation page[/url]
#include doc/macros/main_footer.bb;

View File

@ -24,6 +24,4 @@ This is irreversible.
All your channels will be deleted. If you have identity clones on other sites this only removes by default the channels instances which exists on this site.
Return to the [url=[baseurl]/help/main]Main documentation page[/url]
#include doc/macros/main_footer.bb;

View File

@ -73,4 +73,4 @@ theme are as follows:
[li] sloppy_photos
Determins whether photos are &quot;sloppy&quot; or aligned. Set or unset (1 or '')[/li]
Return to the [url=[baseurl]/help/main]Main documentation page[/url]
#include doc/macros/main_footer.bb;

View File

@ -66,5 +66,4 @@ will tag Robert Johnson, but we can only match one space. If the name was "Blind
[/code]
are both equivalent.
Return to the [url=[baseurl]/help/main]Main documentation page[/url]
#include doc/macros/main_footer.bb;

View File

@ -3,4 +3,4 @@
[li][zrl=[baseurl]/help/technical_faq]Technical FAQ[/zrl][/li]
[li][zrl=[baseurl]/help/problems-following-an-update]Problems following an update[/zrl][/li]
Return to the [url=[baseurl]/help/main]Main documentation page[/url]
#include doc/macros/main_footer.bb;

View File

@ -10,6 +10,5 @@ The &quot;page link title&quot; box allows a user to specify the &quot;pagelinkt
Beneath the page creation box, a list of existing pages will appear with an &quot;edit&quot; link. Clicking this will take you to an editor, similar to that of the post editor, where you can make changes to your webpages.
If you are the admin of a site, you can specify a channel whose webpages we will use at key points around the site. Presently, the only place this is implemented is the home page. If you specify the channel &quot;admin&quot; and then the channel called &quot;admin&quot; creates a webpage called &quot;home&quot;, we will display it's content on your websites home page. We expect this functionality to be extended to other areas in future.
#include doc/macros/main_footer.bb;
Return to the [url=[baseurl]/help/main]Main documentation page[/url]

View File

@ -58,4 +58,4 @@ For more detailed, technical information about Zot, check out the following link
- [url=https://github.com/friendica/red/blob/master/include/zot.php]Zot reference implementation in PHP[/url]
Return to the [url=[baseurl]/help/main]Main documentation page[/url]
#include doc/macros/main_footer.bb;

View File

@ -130,135 +130,98 @@ function datetime_convert($from = 'UTC', $to = 'UTC', $s = 'now', $fmt = "Y-m-d
function dob($dob) {
list($year,$month,$day) = sscanf($dob,'%4d-%2d-%2d');
$y = datetime_convert('UTC',date_default_timezone_get(),'now','Y');
$f = get_config('system','birthday_input_format');
if(! $f)
$f = 'ymd';
$o = datesel($f,'',1920,$y,true,$year,$month,$day);
$o = datesel($f,mktime(0,0,0,0,0,1900),mktime(),mktime(0,0,0,$month,$day,$year),'dob');
return $o;
}
function datesel_format($f) {
/**
* returns a date selector
* @param $format
* format string, e.g. 'ymd' or 'mdy'. Not currently supported
* @param $min
* unix timestamp of minimum date
* @param $max
* unix timestap of maximum date
* @param $default
* unix timestamp of default date
* @param $id
* id and name of datetimepicker (defaults to "datetimepicker")
*/
function datesel($format, $min, $max, $default,$id = 'datepicker') {
return datetimesel($format,$min,$max,$default,$id,true,false);
}
/**
* returns a date selector
* @param $format
* format string, e.g. 'ymd' or 'mdy'. Not currently supported
* @param $h
* already selected hour
* @param $m
* already selected minute
* @param $id
* id and name of datetimepicker (defaults to "timepicker")
*/
function timesel($format,$h,$m,$id='timepicker') {
return datetimesel($format,mktime(),mktime(),mktime($h,$m),$id,false,true);
}
/**
* returns a datetime selector
* @param $format
* format string, e.g. 'ymd' or 'mdy'. Not currently supported
* @param $min
* unix timestamp of minimum date
* @param $max
* unix timestap of maximum date
* @param $default
* unix timestamp of default date
* @param $id
* id and name of datetimepicker (defaults to "datetimepicker")
* @param $pickdate
* true to show date picker (default)
* @param $picktime
* true to show time picker (default)
* @param $minfrom
* set minimum date from picker with id $minfrom (none by default)
* @param $maxfrom
* set maximum date from picker with id $maxfrom (none by default)
*/
function datetimesel($format, $min, $max, $default, $id = 'datetimepicker', $pickdate = true, $picktime = true, $minfrom = '', $maxfrom = '') {
$o = '';
if(strlen($f)) {
for($x = 0; $x < strlen($f); $x ++) {
switch($f[$x]) {
case 'y':
if(strlen($o))
$o .= '-';
$o .= t('year');
break;
case 'm':
if(strlen($o))
$o .= '-';
$o .= t('month');
break;
case 'd':
if(strlen($o))
$o .= '-';
$o .= t('day');
break;
default:
break;
}
}
}
$dateformat = '';
if($pickdate) $dateformat .= 'YYYY-MM-DD';
if($pickdate && $picktime) $dateformat .= ' ';
if($picktime) $dateformat .= 'HH:mm';
$mindate = $min ? "new Date($min*1000)" : '';
$maxdate = $max ? "new Date($max*1000)" : '';
$defaultDate = $default ? ", defaultDate: new Date($default*1000)" : '';
$pickers = '';
if(!$pickdate) $pickers .= 'pickDate: false,';
if(!$picktime) $pickers .= 'pickTime: false,';
$extra_js = '';
if($minfrom != '')
$extra_js .= "\$('#$minfrom').on('dp.change',function (e) { \$('#$id').data('DateTimePicker').setMinDate(e.date); });";
if($maxfrom != '')
$extra_js .= "\$('#$maxfrom').on('dp.change',function (e) { \$('#$id').data('DateTimePicker').setMaxDate(e.date); });";
$o .= "<div class='date' id='$id'><input type='text' placeholder='$dateformat' name='$id'/></div>";
$o .= "<script type='text/javascript'>\$(function () {\$('#$id').datetimepicker({sideBySide: true, $pickers minDate: $mindate, maxDate: $maxdate, format: '$dateformat', useCurrent: false $defaultDate}); $extra_js});</script>";
return $o;
}
// returns a date selector.
// $f = format string, e.g. 'ymd' or 'mdy'
// $pre = prefix (if needed) for HTML name and class fields
// $ymin = first year shown in selector dropdown
// $ymax = last year shown in selector dropdown
// $allow_blank = allow an empty response on any field
// $y = already selected year
// $m = already selected month
// $d = already selected day
function datesel($f,$pre,$ymin,$ymax,$allow_blank,$y,$m,$d) {
$o = '';
if(strlen($f)) {
for($z = 0; $z < strlen($f); $z ++) {
if($f[$z] === 'y') {
$o .= "<select name=\"{$pre}year\" class=\"{$pre}year\" size=\"1\">";
if($allow_blank) {
$sel = (($y == '0000') ? " selected=\"selected\" " : "");
$o .= "<option value=\"0000\" $sel ></option>";
}
if($ymax > $ymin) {
for($x = $ymax; $x >= $ymin; $x --) {
$sel = (($x == $y) ? " selected=\"selected\" " : "");
$o .= "<option value=\"$x\" $sel>$x</option>";
}
}
else {
for($x = $ymax; $x <= $ymin; $x ++) {
$sel = (($x == $y) ? " selected=\"selected\" " : "");
$o .= "<option value=\"$x\" $sel>$x</option>";
}
}
}
elseif($f[$z] == 'm') {
$o .= "</select> <select name=\"{$pre}month\" class=\"{$pre}month\" size=\"1\">";
for($x = (($allow_blank) ? 0 : 1); $x <= 12; $x ++) {
$sel = (($x == $m) ? " selected=\"selected\" " : "");
$y = (($x) ? $x : '');
$o .= "<option value=\"$x\" $sel>$y</option>";
}
}
elseif($f[$z] == 'd') {
$o .= "</select> <select name=\"{$pre}day\" class=\"{$pre}day\" size=\"1\">";
for($x = (($allow_blank) ? 0 : 1); $x <= 31; $x ++) {
$sel = (($x == $d) ? " selected=\"selected\" " : "");
$y = (($x) ? $x : '');
$o .= "<option value=\"$x\" $sel>$y</option>";
}
}
}
}
$o .= "</select>";
return $o;
}
function timesel($pre,$h,$m) {
$o = '';
$o .= "<select name=\"{$pre}hour\" class=\"{$pre}hour\" size=\"1\">";
for($x = 0; $x < 24; $x ++) {
$sel = (($x == $h) ? " selected=\"selected\" " : "");
$o .= "<option value=\"$x\" $sel>$x</option>";
}
$o .= "</select> : <select name=\"{$pre}minute\" class=\"{$pre}minute\" size=\"1\">";
for($x = 0; $x < 60; $x ++) {
$sel = (($x == $m) ? " selected=\"selected\" " : "");
$o .= "<option value=\"$x\" $sel>$x</option>";
}
$o .= "</select>";
return $o;
}
// implements "3 seconds ago" etc.
// based on $posted_date, (UTC).
// Results relative to current timezone

View File

@ -142,7 +142,7 @@ EOT;
sprintf( t('%s - click to logout'), $observer['xchan_addr']));
}
else {
$nav['loginmenu'][] = Array('rmagic',t('Remote login'),'',t('Click to authenticate to your home hub'));
$nav['loginmenu'][] = Array('rmagic',t('Remote authentication'),'',t('Click to authenticate to your home hub'));
}
/**

View File

@ -18,18 +18,6 @@ function events_post(&$a) {
$start_text = escape_tags($_REQUEST['start_text']);
$finish_text = escape_tags($_REQUEST['finish_text']);
$startyear = intval($_POST['startyear']);
$startmonth = intval($_POST['startmonth']);
$startday = intval($_POST['startday']);
$starthour = intval($_POST['starthour']);
$startminute = intval($_POST['startminute']);
$finishyear = intval($_POST['finishyear']);
$finishmonth = intval($_POST['finishmonth']);
$finishday = intval($_POST['finishday']);
$finishhour = intval($_POST['finishhour']);
$finishminute = intval($_POST['finishminute']);
$adjust = intval($_POST['adjust']);
$nofinish = intval($_POST['nofinish']);
@ -79,8 +67,10 @@ function events_post(&$a) {
// and we'll waste a bunch of time responding to it. Time that
// could've been spent doing something else.
if(strcmp($finish,$start) < 0)
$finish = $start;
if(strcmp($finish,$start) < 0) {
notice( t('Event can not end before it has started.') . EOL);
goaway($a->get_baseurl() . '/events/new');
}
$summary = escape_tags(trim($_POST['summary']));
$desc = escape_tags(trim($_POST['desc']));
@ -530,11 +520,6 @@ function events_content(&$a) {
}
}
$dateformat = datesel_format($f);
$timeformat = t('hour:minute');
require_once('include/acl_selectors.php');
$perm_defaults = array(
@ -554,24 +539,20 @@ function events_content(&$a) {
'$mid' => $mid,
'$title' => t('Event details'),
'$format_desc' => sprintf( t('Format is %s %s.'),$dateformat,$timeformat),
'$desc' => t('Starting date and Title are required.'),
'$catsenabled' => $catsenabled,
'$placeholdercategory' => t('Categories (comma-separated list)'),
'$category' => $category,
'$s_text' => t('Event Starts:') . ' <span class="required" title="' . t('Required') . '">*</span>',
'$bootstrap' => 1,
'$stext' => $stext,
'$ftext' => $ftext,
'$ModalCANCEL' => t('Cancel'),
'$ModalOK' => t('OK'),
'$s_dsel' => datesel($f,'start',$syear+5,$syear,false,$syear,$smonth,$sday),
'$s_tsel' => timesel('start',$shour,$sminute),
'$s_dsel' => datetimesel($f,mktime(),mktime(0,0,0,0,0,$syear+5),mktime(),'start_text'),
'$n_text' => t('Finish date/time is not known or not relevant'),
'$n_checked' => $n_checked,
'$f_text' => t('Event Finishes:'),
'$f_dsel' => datesel($f,'finish',$fyear+5,$fyear,false,$fyear,$fmonth,$fday),
'$f_tsel' => timesel('finish',$fhour,$fminute),
'$f_dsel' => datetimesel($f,mktime(),mktime(0,0,0,0,0,$fyear+5),mktime(),'finish_text',true,true,'start_text'),
'$a_text' => t('Adjust for viewer timezone'),
'$a_checked' => $a_checked,
'$d_text' => t('Description:'),

View File

@ -956,7 +956,7 @@ function photos_content(&$a) {
$edit = array(
'edit' => t('Edit photo'),
'id' => $ph[0]['id'],
'id' => $link_item['id'], //$ph[0]['id'],
'rotatecw' => t('Rotate CW (right)'),
'rotateccw' => t('Rotate CCW (left)'),
'albums' => $albums['albums'],
@ -1114,7 +1114,7 @@ function photos_content(&$a) {
$photo_tpl = get_markup_template('photo_view.tpl');
$o .= replace_macros($photo_tpl, array(
'$id' => $ph[0]['id'],
'$id' => $link_item['id'], //$ph[0]['id'],
'$album' => $album_e,
'$tools' => $tools,
'$lock' => $lock,

View File

@ -233,41 +233,13 @@ function profiles_post(&$a) {
return;
}
if($_POST['dob']) {
$year = substr($_POST['dob'],0,4);
$month = substr($_POST['dob'],5,2);
$day = substr($_POST['dob'],8,2);
}
$year = intval($_POST['year']);
if($year < 1900 || $year > 2100 || $year < 0)
$year = 0;
$month = intval($_POST['month']);
if(($month > 12) || ($month < 0))
$month = 0;
$mtab = array(0,31,29,31,30,31,30,31,31,30,31,30,31);
$day = intval($_POST['day']);
if(($day > $mtab[$month]) || ($day < 0))
$day = 0;
// if($year && (! ($month && $day))) {
// $month = 1; $day = 1;
// }
$dob = '0000-00-00';
$dob = sprintf('%04d-%02d-%02d',$year,$month,$day);
$dob = $_POST['dob'] ? escape_tags(trim($_POST['dob'])) : '0000-00-00'; // FIXME: Needs to be validated?
$name = escape_tags(trim($_POST['name']));
if($orig[0]['name'] != $name)
$namechanged = true;
$pdesc = escape_tags(trim($_POST['pdesc']));
$gender = escape_tags(trim($_POST['gender']));
$address = escape_tags(trim($_POST['address']));
@ -654,7 +626,7 @@ logger('extra_fields: ' . print_r($extra_fields,true));
'$lbl_fullname' => t('Your Full Name:'),
'$lbl_title' => t('Title/Description:'),
'$lbl_gender' => t('Your Gender:'),
'$lbl_bd' => sprintf( t("Birthday \x28%s\x29:"),datesel_format($f)),
'$lbl_bd' => t("Birthday :"),
'$lbl_address' => t('Street Address:'),
'$lbl_city' => t('Locality/City:'),
'$lbl_zip' => t('Postal/Zip Code:'),

File diff suppressed because it is too large Load Diff

View File

@ -3,8 +3,7 @@
<h3>{{$title}}</h3>
<p>
{{if ! $bootstrap}}
{{$format_desc}} {{/if}}{{$desc}}
{{$desc}}
</p>
<form action="{{$post}}" method="post" >
@ -17,11 +16,7 @@
<input type="text" id="event-summary" name="summary" value="{{$t_orig}}" />
<div id="event-start-text">{{$s_text}}</div>
{{if $bootstrap}}
<i class="icon-calendar btn btn-default" onclick="eventGetStart(); return false;" /></i> <input type="text" name="start_text" id="start-text" value="{{$stext}}" />
{{else}}
{{$s_dsel}} {{$s_tsel}}
{{/if}}
{{$s_dsel}}
<div class="clear"></div><br />
@ -31,11 +26,7 @@
<div id="event-finish-wrapper">
<div id="event-finish-text">{{$f_text}}</div>
{{if $bootstrap}}
<i class="icon-calendar btn btn-default" onclick="eventGetFinish(); return false;" /></i> <input type="text" name="finish_text" id="finish-text" value="{{$ftext}}" />
{{else}}
{{$f_dsel}} {{$f_tsel}}
{{/if}}
{{$f_dsel}}
</div>
<div id="event-datetime-break"></div>
@ -73,81 +64,4 @@
<input id="event-submit" type="submit" name="submit" value="{{$submit}}" />
</form>
<!-- Modal for item expiry-->
<div class="modal" id="startModal" tabindex="-1" role="dialog" aria-labelledby="expiryModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h4 class="modal-title" id="startModalLabel">{{$s_text}}</h4>
</div>
<!-- <div class="modal-body"> -->
<div class="modal-body form-group" style="width:90%">
<div class="input-group input-group-sm date" id="datetimepickerstart">
<span class="input-group-addon"><!-- <span class="glyphicon glyphicon-calendar"></span> -->
<span class="icon-calendar"></span>
</span>
<input id="start-date" value='{{$stext}}' type='text' class="form-control" data-date-format="YYYY-MM-DD HH:mm" size="20"/>
</div>
</div>
<!-- </div> -->
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">{{$ModalCANCEL}}</button>
<button id="start-modal-OKButton" type="button" class="btn btn-primary">{{$ModalOK}}</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
<script type="text/javascript">
$(function() {
$('#datetimepickerstart').datetimepicker({
language: 'us',
icons: {
time: "icon-time",
date: "icon-calendar",
up: "icon-arrow-up",
down: "icon-arrow-down"
}
});
});
</script>
<!-- Modal for item expiry-->
<div class="modal" id="finishModal" tabindex="-1" role="dialog" aria-labelledby="expiryModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h4 class="modal-title" id="finishModalLabel">{{$s_text}}</h4>
</div>
<!-- <div class="modal-body"> -->
<div class="modal-body form-group" style="width:90%">
<div class="input-group input-group-sm date" id="datetimepickerfinish">
<span class="input-group-addon"><!-- <span class="glyphicon glyphicon-calendar"></span> -->
<span class="icon-calendar"></span>
</span>
<input id="finish-date" value='{{$ftext}}' type='text' class="form-control" data-date-format="YYYY-MM-DD HH:mm" size="20"/>
</div>
</div>
<!-- </div> -->
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">{{$ModalCANCEL}}</button>
<button id="finish-modal-OKButton" type="button" class="btn btn-primary">{{$ModalOK}}</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
<script type="text/javascript">
$(function() {
$('#datetimepickerfinish').datetimepicker({
language: 'us',
icons: {
time: "icon-time",
date: "icon-calendar",
up: "icon-arrow-up",
down: "icon-arrow-down"
}
});
});
</script>
</div>

View File

@ -47,6 +47,7 @@
</div>
<div class="collapse navbar-collapse" id="navbar-collapse-1">
<ul class="nav navbar-nav navbar-left">
{{if $nav.register}}<li class="{{$nav.register.2}}"><a href="{{$nav.register.0}}" title="{{$nav.register.3}}" >{{$nav.register.1}}</a><li>{{/if}}
{{if !$userinfo}}
{{if $nav.loginmenu}}
<li class="{{$nav.loginmenu.0.2}}"><a data-toggle="dropdown" data-target="#" href="{{$nav.loginmenu.0.0}}" title="{{$nav.loginmenu.0.3}}" >{{$nav.loginmenu.0.1}} <span class="caret" id="usermenu-caret"></span></a>
@ -92,7 +93,6 @@
</li>
{{/if}}
{{if $nav.register}}<li class="{{$nav.register.2}}"><a href="{{$nav.register.0}}" title="{{$nav.register.3}}" >{{$nav.register.1}}</a><li>{{/if}}
{{if $nav.messages}}
<li class="{{$sel.messages}} hidden-xs">

View File

@ -3,11 +3,21 @@
<h3><a href="{{$album.0}}">{{$album.1}}</a></h3>
<div id="photo-edit-link-wrap">
{{if $tools}}
<a id="photo-toprofile-link" href="{{$tools.profile.0}}">{{$tools.profile.1}}</a>
{{/if}}
{{if $lock}} | <i class="lockview icon-lock" title="{{$lock}}" onclick="lockview(event,'photo/{{$id}}');"></i> {{/if}}
{{if $lock}}
<div class="wall-item-lock dropdown">
<i class="icon-lock lockview dropdown-toggle" data-toggle="dropdown" title="{{$lock}}" onclick="lockview(event,{{$id}});" ></i><ul id="panel-{{$id}}" class="lockview-panel dropdown-menu"></ul>&nbsp;
</div>
{{/if}}
{{if $tools}}
<div>
<a id="photo-toprofile-link" href="{{$tools.profile.0}}">{{$tools.profile.1}}</a>
</div>
{{/if}}
<div class="clear"></div>
{{if $prevlink}}<div id="photo-prev-link"><a href="{{$prevlink.0}}"><i class="icon-backward photo-icons"></i></div>{{/if}}
<div id="photo-view-wrapper">