Merge branch 'master' of git://github.com/friendika/friendika

This commit is contained in:
Tobias Diekershoff 2011-01-24 07:33:56 +01:00
commit 4198efe035
61 changed files with 3040 additions and 8 deletions

View file

@ -1687,6 +1687,11 @@ function activity_match($haystack,$needle) {
if(! function_exists('get_tags')) {
function get_tags($s) {
$ret = array();
// ignore anything in a code block
$s = preg_replace('/\[code\](.*?)\[\/code\]/sm','',$s);
if(preg_match_all('/([@#][^ \x0D\x0A,:?]*)([ \x0D\x0A,:?]|$)/',$s,$match)) {
foreach($match[1] as $match) {
if(strstr($match,"]")) {

View file

@ -22,6 +22,8 @@ function scrape_dfrn($url) {
foreach($items as $item) {
$x = $item->getAttribute('rel');
if(($x === 'alternate') && ($item->getAttribute('type') === 'application/atom+xml'))
$ret['feed_atom'] = $item->getAttribute('href');
if(substr($x,0,5) == "dfrn-")
$ret[$x] = $item->getAttribute('href');
if($x === 'lrdd') {
@ -135,3 +137,31 @@ function scrape_vcard($url) {
return $ret;
}}
if(! function_exists('scrape_feed')) {
function scrape_feed($url) {
$ret = array();
$s = fetch_url($url);
if(! $s)
return $ret;
$dom = HTML5_Parser::parse($s);
if(! $dom)
return $ret;
$items = $dom->getElementsByTagName('link');
// get Atom link elements
foreach($items as $item) {
$x = $item->getAttribute('rel');
if(($x === 'alternate') && ($item->getAttribute('type') === 'application/atom+xml'))
$ret['feed_atom'] = $item->getAttribute('href');
}
return $ret;
}}

View file

@ -32,10 +32,18 @@
if(($argc > 1) && ($argv[1] == 'force'))
$force = true;
if(($argc > 1) && intval($argv[1])) {
$manual_id = intval($argv[1]);
$force = true;
}
$sql_extra = (($manual_id) ? " AND `id` = $manual_id " : "");
// 'stat' clause is a temporary measure until we have federation subscriptions working both directions
$contacts = q("SELECT * FROM `contact`
WHERE ( ( `network` = 'dfrn' AND ( `dfrn-id` != '' OR (`issued-id` != '' AND `duplex` = 1)))
OR ( `network` IN ( 'stat', 'feed' ) AND `poll` != '' ))
OR ( `network` IN ( 'stat', 'feed' ) AND `poll` != '' ))
$sql_extra
AND `self` = 0 AND `blocked` = 0 AND `readonly` = 0 ORDER BY RAND()");
if(! count($contacts))

View file

@ -173,6 +173,9 @@ function display_content(&$a) {
$redirect_url = $a->get_baseurl() . '/redir/' . $item['cid'] ;
// I think this is redundant now but too chicken to remove it unless
// I've had six cups of coffee and tested it completely
if(($item['network'] === 'dfrn') && (! $item['self'] )) {
$profile_url = $redirect_url;
$sparkle = ' sparkle';
@ -216,7 +219,18 @@ function display_content(&$a) {
$profile_name = (((strlen($item['author-name'])) && $diff_author) ? $item['author-name'] : $item['name']);
$profile_avatar = (((strlen($item['author-avatar'])) && $diff_author) ? $item['author-avatar'] : $item['thumb']);
$profile_link = $profile_url;
// Can we use our special contact URL for this author?
if(strlen($item['author-link'])) {
if((link_compare($item['author-link'],$item['url'])) && ($item['network'] === 'dfrn') && (! $item['self'])) {
$profile_link = $redirect_url;
$sparkle = ' sparkle';
}
else {
$profile_link = $item['author-link'];
$sparkle = '';
}
}
if(($item['contact-id'] == remote_user()) || ($item['uid'] == local_user()))
$drop = replace_macros(load_view_file('view/wall_item_drop.tpl'), array('$id' => $item['id']));
@ -291,6 +305,9 @@ function display_content(&$a) {
}
}
$o .= '<div class="cc-license">' . t('Shared content is covered by the <a href="http://creativecommons.org/licenses/by/3.0/">Creative Commons Attribution 3.0</a> license.') . '</div>';
return $o;
}

View file

@ -48,6 +48,8 @@ function follow_post(&$a) {
}
}
$network = 'stat';
if($hcard) {
$vcard = scrape_vcard($hcard);
@ -63,13 +65,58 @@ function follow_post(&$a) {
if(! $profile)
$profile = $url;
// do we have enough information?
if(! x($vcard,'fn'))
if(x($vcard,'nick'))
$vcard['fn'] = $vcard['nick'];
if((! isset($vcard)) && (! $poll)) {
$ret = scrape_feed($url);
if(count($ret) && $ret['feed_atom']) {
$poll = $ret['feed_atom'];
$vcard = array();
require_once('simplepie/simplepie.inc');
$feed = new SimplePie();
$xml = fetch_url($poll);
$feed->set_raw_data($xml);
$feed->init();
$vcard['photo'] = $feed->get_image_url();
$author = $feed->get_author();
if($author) {
$vcard['fn'] = trim($author->get_name());
$vcard['nick'] = strtolower($vcard['fn']);
if(strpos($vcard['nick'],' '))
$vcard['nick'] = trim(substr($vcard['nick'],0,strpos($vcard['nick'],' ')));
$email = $author->get_email();
}
else {
$item = $feed->get_item(0);
if($item) {
$author = $item->get_author();
if($author) {
$vcard['fn'] = trim($author->get_name());
$vcard['nick'] = strtolower($vcard['fn']);
if(strpos($vcard['nick'],' '))
$vcard['nick'] = trim(substr($vcard['nick'],0,strpos($vcard['nick'],' ')));
$email = $author->get_email();
}
}
}
if((! $vcard['photo']) && strlen($email))
$vcard['photo'] = gravatar_img($email);
$network = 'feed';
}
}
logger('follow: poll=' . $poll . ' notify=' . $notify . ' profile=' . $profile . ' vcard=' . print_r($vcard,true));
// do we have enough information?
if(! ((x($vcard['fn'])) && ($poll) && ($profile))) {
notice( t('The profile address specified does not provide adequate information.') . EOL);
@ -115,7 +162,7 @@ function follow_post(&$a) {
dbesc($vcard['fn']),
dbesc($vcard['nick']),
dbesc($vcard['photo']),
dbesc('stat'),
dbesc($network),
intval(REL_FAN)
);
}
@ -158,6 +205,9 @@ function follow_post(&$a) {
// pull feed and consume it, which should subscribe to the hub.
$php_path = ((x($a->config,'php_path') && strlen($a->config['php_path'])) ? $a->config['php_path'] : 'php');
proc_close(proc_open("\"$php_path\" \"include/poller.php\" \"$contact_id\" &", array(), $foo));
// create a follow slap

View file

@ -165,7 +165,11 @@ function item_post(&$a) {
}
}
/**
* Fold multi-line [code] sequences
*/
$body = preg_replace('/\[\/code\]\s*\[code\]/m',"\n",$body);
/**
* Look for any tags and linkify them
@ -228,7 +232,7 @@ function item_post(&$a) {
}
}
if($profile) {
$body = str_replace($name,'[url=' . $profile . ']' . $newname . '[/url]', $body);
$body = str_replace('@' . $name, '@' . '[url=' . $profile . ']' . $newname . '[/url]', $body);
$profile = str_replace(',','%2c',$profile);
if(strlen($str_tags))
$str_tags .= ',';

View file

@ -430,8 +430,10 @@ function network_content(&$a, $update = 0) {
}
}
if(! $update)
if(! $update) {
$o .= paginate($a);
$o .= '<div class="cc-license">' . t('Shared content is covered by the <a href="http://creativecommons.org/licenses/by/3.0/">Creative Commons Attribution 3.0</a> license.') . '</div>';
}
return $o;
}

View file

@ -379,6 +379,8 @@ function profile_content(&$a, $update = 0) {
}
$o .= paginate($a);
$o .= '<div class="cc-license">' . t('Shared content is covered by the <a href="http://creativecommons.org/licenses/by/3.0/">Creative Commons Attribution 3.0</a> license.') . '</div>';
return $o;
}

View file

@ -64,8 +64,8 @@
rep(/<u>/gi,"[u]");
rep(/<blockquote[^>]*>/gi,"[quote]");
rep(/<\/blockquote>/gi,"[/quote]");
rep(/<br \/>/gi,"\n");
rep(/<br\/>/gi,"\n");
rep(/<br \/>/gi,"\n\n");
rep(/<br\/>/gi,"\n\n");
rep(/<br>/gi,"\n");
rep(/<p>/gi,"");
rep(/<\/p>/gi,"\n");
@ -98,6 +98,7 @@
rep(/\[url\](.*?)\[\/url\]/gi,"<a href=\"$1\">$1</a>");
rep(/\[img\](.*?)\[\/img\]/gi,"<img src=\"$1\" />");
rep(/\[color=(.*?)\](.*?)\[\/color\]/gi,"<span style=\"color: $1;\">$2</span>");
// rep(/\[\/code\]\s*\[code\]/gi,"<br />"); // fold multiline code
rep(/\[code\](.*?)\[\/code\]/gi,"<code>$1</code>");
rep(/\[quote.*?\](.*?)\[\/quote\]/gi,"<blockquote>$1</blockquote>");

View file

@ -18,6 +18,18 @@ del {color:red; text-decoration:line-through}
cite {border-bottom:1px dashed blue}
acronym {border-bottom:1px dotted #CCC; cursor:help}
abbr {border-bottom:1px dashed #CCC; cursor:help}
code {
font-family: Courier, monospace;
white-space: pre;
display: block;
overflow: auto;
border: 1px solid #444;
background: #EEE;
color: #444;
padding: 10px;
margin-top: 20px;
}
/* IE */
* html body {

View file

@ -0,0 +1,18 @@
Dear $username,
'$from' commented on an item/conversation which you have been following.
-----
$body
-----
Please login at $siteurl to view the complete conversation:
$display
Thank you,
$sitename administrator

79
view/fr/contact_edit.tpl Normal file
View file

@ -0,0 +1,79 @@
<h2>$header</h2>
<div id="contact-edit-banner-name">$name</div>
<div id="contact-edit-wrapper" >
<div id="contact-edit-photo-wrapper" >
<img id="contact-edit-direction-icon" src="$dir_icon" alt="$alt_text" title="$alt_text" />
<div id="contact-edit-photo" >
<a href="$url" title="$visit" /><img src="$photo" $sparkle alt="$name" /></a>
</div>
<div id="contact-edit-photo-end" ></div>
</div>
<div id="contact-edit-nav-wrapper" >
<div id="contact-edit-links" >
<a href="contacts/$contact_id/block" id="contact-edit-block-link" ><img src="images/b_block.gif" alt="$blockunblock" title="$block_text"/></a>
<a href="contacts/$contact_id/ignore" id="contact-edit-ignore-link" ><img src="images/no.gif" alt="$ignorecont" title="$ignore_text"/></a>
</div>
<div id="contact-drop-links" >
<a href="contacts/$contact_id/drop" id="contact-edit-drop-link" onclick="return confirmDelete();" ><img src="images/b_drophide.gif" alt="$delete" title="$delete" onmouseover="imgbright(this);" onmouseout="imgdull(this);" /></a>
</div>
<div id="contact-edit-nav-end"></div>
<div id="contact-edit-poll-wrapper">
<div id="contact-edit-last-update-text">$lastupdtext<span id="contact-edit-last-updated">$last_update</span</div>
<div id="contact-edit-poll-text">$updpub</div>
$poll_interval
</div>
</div>
<div id="contact-edit-end" ></div>
$insecure
$blocked
$ignored
<form action="contacts/$contact_id" method="post" >
<input type="hidden" name="contact_id" value="$contact_id">
<div id="contact-edit-info-wrapper">
<h4>Contact Information / Notes</h4>
<textarea id="contact-edit-info" rows="10" cols="72" name="info" >$info</textarea>
</div>
<div id="contact-edit-info-end"></div>
<input class="contact-edit-submit" type="submit" name="submit" value="Submit" />
<div id="contact-edit-profile-select-text">
<h4>Profile Visibility</h4>
<p>Please choose the profile you would like to display to $name when viewing your profile securely.
</p>
</div>
$profile_select
<div id="contact-edit-profile-select-end"></div>
<input class="contact-edit-submit" type="submit" name="submit" value="Submit" />
<div id="contact-edit-rating-wrapper">
<h4>Online Reputation</h4>
<p>
Occasionally your friends may wish to inquire about this person's online legitimacy. You may help them choose whether or not to interact with this person by providing a 'reputation' to guide them.
</p>
<div id="contact-edit-rating-select-wrapper">
$rating
</div>
<div id="contact-edit-rating-explain">
<p>
Please take a moment to elaborate on this selection if you feel it could be helpful to others.
</p>
<textarea id="contact-edit-rating-text" name="reason" rows="3" cols="64" >$reason</textarea>
</div>
</div>
$groups
<input class="contact-edit-submit" type="submit" name="submit" value="Submit" />
</form>
</div>

57
view/fr/cropbody.tpl Normal file
View file

@ -0,0 +1,57 @@
<h1>Crop Image</h1>
<p id="cropimage-desc">
Please adjust the image cropping for optimum viewing.
</p>
<div id="cropimage-wrapper">
<img src="$image_url" id="croppa" class="imgCrop" alt="" />
</div>
<div id="cropimage-preview-wrapper" >
<div id="previewWrap" ></div>
</div>
<script type="text/javascript" language="javascript">
function onEndCrop( coords, dimensions ) {
$( 'x1' ).value = coords.x1;
$( 'y1' ).value = coords.y1;
$( 'x2' ).value = coords.x2;
$( 'y2' ).value = coords.y2;
$( 'width' ).value = dimensions.width;
$( 'height' ).value = dimensions.height;
}
Event.observe( window, 'load', function() {
new Cropper.ImgWithPreview(
'croppa',
{
previewWrap: 'previewWrap',
minWidth: 175,
minHeight: 175,
maxWidth: 640,
maxHeight: 640,
ratioDim: { x: 100, y:100 },
displayOnInit: true,
onEndCrop: onEndCrop
}
);
}
);
</script>
<form action="profile_photo/$resource" id="crop-image-form" method="post" />
<input type="hidden" name="imagename" value="$hash" />
<input type="hidden" name="cropfinal" value="1" />
<input type="hidden" name="xstart" id="x1" />
<input type="hidden" name="ystart" id="y1" />
<input type="hidden" name="xfinal" id="x2" />
<input type="hidden" name="yfinal" id="y2" />
<input type="hidden" name="height" id="height" />
<input type="hidden" name="width" id="width" />
<div id="crop-image-submit-wrapper" >
<input type="submit" name="submit" value="Done Editing" />
</div>
</form>

View file

@ -0,0 +1,17 @@
<p id="dfrn-request-homecoming" >
Welcome home $username.
<br />
Please confirm your introduction to $dfrn_url.
</p>
<form id="dfrn-request-homecoming-form" action="dfrn_request/$nickname" method="post">
<input type="hidden" name="dfrn_url" value="$dfrn_url" />
<input type="hidden" name="confirm_key" value="$confirm_key" />
<input type="hidden" name="localconfirm" value="1" />
$aes_allow
<div id="dfrn-request-homecoming-submit-wrapper" >
<input id="dfrn-request-homecoming-submit" type="submit" name="submit" value="Confirm" />
</div>
</form>

View file

@ -0,0 +1,14 @@
<h1>Site Directory</h1>
$globaldir
$finding
<div id="directory-search-wrapper">
<form id="directory-search-form" action="directory" method="get" >
<input type="text" name="search" id="directory-search" class="search-input" onfocus="this.select();" value="$search" />
<input type="submit" name="submit" id="directory-search-submit" value="Find" />
</form>
</div>
<div id="directory-search-end"></div>

View file

@ -0,0 +1,14 @@
Dear $myname,
You have a new follower at $sitename - '$requestor'.
You may visit their profile at $url.
Please login to your site to approve or ignore/cancel the request.
$siteurl
Regards,
$sitename administrator

View file

@ -0,0 +1,22 @@
Dear $username,
Great news... '$fn' at '$dfrn_url' has accepted
your connection request at '$sitename'.
You are now mutual friends and may exchange status updates, photos, and email
without restriction.
Please visit your 'Contacts' page at $sitename if you wish to make
any changes to this relationship.
$siteurl
[For instance, you may create a separate profile with information that is not
available to the general public - and assign viewing rights to '$fn'].
Sincerely,
$sitename Administrator

24
view/fr/group_edit.tpl Normal file
View file

@ -0,0 +1,24 @@
<h2>Group Editor</h2>
<div id="group-edit-wrapper" >
<form action="group/$gid" id="group-edit-form" method="post" >
<div id="group-edit-name-wrapper" >
<label id="group-edit-name-label" for="group-edit-name" >Group Name: </label>
<input type="text" id="group-edit-name" name="groupname" value="$name" />
</div>
<div id="group-edit-name-end"></div>
<div id="group-edit-select-wrapper" >
<label id="group_members_select_label" for="group_members_select" >Members:</label>
$selector
</div>
$drop
<div id="group_members_select_end"></div>
<div id="group-edit-submit-wrapper" >
<input type="submit" name="submit" value="Submit" >
</div>
<div id="group-edit-select-end" ></div>
</form>
</div>

23
view/fr/group_new.tpl Normal file
View file

@ -0,0 +1,23 @@
<div id="group-new-wrapper" >
<form action="group/new" method="post">
<div id="group-new-text">
<p>
Create a group of contacts/friends.
<div id="group-new-input-wrapper">
<label id="group-new-label" for="group-new-name" >Group Name: </label>
<input name="groupname" id="group-new-name" />
</div>
<div id="group-new-input-end" ></div>
<div id="group-new-submit-wrapper" >
<input type="submit" name="submit" value="Submit" />
</form>
</div>
<div id="group-new-end"></div>

32
view/fr/head.tpl Normal file
View file

@ -0,0 +1,32 @@
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<base href="$baseurl" />
<meta name="generator" content="$generator" />
<link rel="stylesheet" type="text/css" href="$stylesheet" media="all" />
<link rel="shortcut icon" href="$baseurl/images/ff-32.jpg">
<!--[if IE]>
<script type="text/javascript" src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<script type="text/javascript" src="$baseurl/include/jquery.js" ></script>
<script type="text/javascript" src="$baseurl/include/main.js" ></script>
<script>
function confirmDelete() { return confirm("Delete this item?"); }
function commentOpen(obj,id) {
if(obj.value == 'Comment') {
obj.value = '';
obj.className = "comment-edit-text-full";
openMenu("comment-edit-submit-wrapper-" + id);
}
}
function commentClose(obj,id) {
if(obj.value == '') {
obj.value = 'Comment';
obj.className="comment-edit-text-empty";
closeMenu("comment-edit-submit-wrapper-" + id);
}
}
</script>

64
view/fr/htconfig.tpl Normal file
View file

@ -0,0 +1,64 @@
<?php
// Set the following for your MySQL installation
// Copy or rename this file to .htconfig.php
$db_host = '$dbhost';
$db_user = '$dbuser';
$db_pass = '$dbpass';
$db_data = '$dbdata';
// If you are using a subdirectory of your domain you will need to put the
// relative path (from the root of your domain) here.
// For instance if your URL is 'http://example.com/directory/subdirectory',
// set $a->path to 'directory/subdirectory'.
$a->path = '$urlpath';
// Choose a legal default timezone. If you are unsure, use "America/Los_Angeles".
// It can be changed later and only applies to timestamps for anonymous viewers.
$default_timezone = '$timezone';
// What is your site name?
$a->config['sitename'] = "My Friend Network";
// Your choices are REGISTER_OPEN, REGISTER_APPROVE, or REGISTER_CLOSED.
// Be certain to create your own personal account before setting
// REGISTER_CLOSED. 'register_text' (if set) will be displayed prominently on
// the registration page. REGISTER_APPROVE requires you set 'admin_email'
// to the email address of an already registered person who can authorise
// and/or approve/deny the request.
$a->config['register_policy'] = REGISTER_OPEN;
$a->config['register_text'] = '';
$a->config['admin_email'] = '';
// Maximum size of an imported message, 0 is unlimited
$a->config['max_import_size'] = 10000;
// maximum size of uploaded photos
$a->config['system']['maximagesize'] = 800000;
// Location of PHP command line processor
$a->config['php_path'] = '$phpath';
// Location of global directory submission page.
$a->config['system']['directory_submit_url'] = 'http://dir.friendika.com/submit';
$a->config['system']['directory_search_url'] = 'http://dir.friendika.com/directory?search=';
// PuSH - aka pubsubhubbub URL. This makes delivery of public posts as fast as private posts
$a->config['system']['huburl'] = 'http://pubsubhubbub.appspot.com';
// Server-to-server private message encryption (RINO) is allowed by default.
// Encryption will only be provided if this setting is true and the
// PHP mcrypt extension is installed on both systems
$a->config['system']['rino_encrypt'] = true;

6
view/fr/insecure_net.tpl Normal file
View file

@ -0,0 +1,6 @@
<div id="profile-edit-insecure">
<p>
The social network that $name belongs to is an open network with limited or non-existent privacy controls.
Please use appropriate discretion.
</p>
</div>

40
view/fr/install_db.tpl Normal file
View file

@ -0,0 +1,40 @@
<h3>Friendika Social Network</h3>
<h3>Installation</h3>
<p>
In order to install Friendika we need to know how to contact your database. Please contact your hosting provider or site administrator if you have questions about these settings. The database you specify below must already exist. If it does not, please create it before continuing.
</p>
<form id="install-form" action="$baseurl/install" method="post">
<input type="hidden" name="phpath" value="$phpath" />
<label for="install-dbhost" id="install-dbhost-label">Database Server Name</label>
<input type="text" name="dbhost" id="install-dbhost" value="$dbhost" />
<div id="install-dbhost-end"></div>
<label for="install-dbuser" id="install-dbuser-label">Database Login Name</label>
<input type="text" name="dbuser" id="install-dbuser" value="$dbuser" />
<div id="install-dbuser-end"></div>
<label for="install-dbpass" id="install-dbpass-label">Database Login Password</label>
<input type="password" name="dbpass" id="install-dbpass" value="$dbpass" />
<div id="install-dbpass-end"></div>
<label for="install-dbdata" id="install-dbdata-label">Database Name</label>
<input type="text" name="dbdata" id="install-dbdata" value="$dbdata" />
<div id="install-dbdata-end"></div>
<div id="install-tz-desc">
Please select a default timezone for your website
</div>
$tzselect
<div id="install-tz-end" ></div>
<input id="install-submit" type="submit" name="submit" value="$submit" />
</form>
<div id="install-end" ></div>

View file

@ -0,0 +1,22 @@
Dear $username,
'$fn' at '$dfrn_url' has accepted
your connection request at '$sitename'.
'$fn' has chosen to accept you a "fan", which restricts
some forms of communication - such as private messaging and some profile
interactions. If this is a celebrity or community page, these settings were
applied automatically.
'$fn' may choose to extend this into a two-way or more permissive
relationship in the future.
You will start receiving public status updates from '$fn',
which will appear on your 'Network' page at
$siteurl
Sincerely,
$sitename Administrator

7
view/fr/intros-top.tpl Normal file
View file

@ -0,0 +1,7 @@
<h1>Pending Friend/Connect Notifications</h1>
<div id="notification-show-hide-wrapper" >
<a href="$hide_url" id="notification-show-hide-link">$hide_text</a>
</div>

132
view/fr/jot-header.tpl Normal file
View file

@ -0,0 +1,132 @@
<script language="javascript" type="text/javascript" src="$baseurl/tinymce/jscripts/tiny_mce/tiny_mce_src.js"></script>
<script language="javascript" type="text/javascript">
tinyMCE.init({
theme : "advanced",
mode : "specific_textareas",
editor_selector: /(profile-jot-text|prvmail-text)/,
plugins : "bbcode",
theme_advanced_buttons1 : "bold,italic,underline,undo,redo,link,unlink,image,forecolor,formatselect",
theme_advanced_buttons2 : "",
theme_advanced_buttons3 : "",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "center",
theme_advanced_blockformats : "blockquote,code",
entity_encoding : "raw",
add_unload_trigger : false,
remove_linebreaks : false,
force_p_newlines : false,
force_br_newlines : true,
forced_root_block : '',
convert_urls: false,
content_css: "$baseurl/view/custom_tinymce.css",
//Character count
theme_advanced_path : false,
setup : function(ed) {
ed.onKeyUp.add(function(ed, e) {
var txt = tinyMCE.activeEditor.getContent();
var text = txt.length;
if(txt.length <= 140) {
$('#character-counter').removeClass('red');
$('#character-counter').removeClass('orange');
$('#character-counter').addClass('grey');
}
if((txt.length > 140) && (txt .length <= 420)) {
$('#character-counter').removeClass('grey');
$('#character-counter').removeClass('red');
$('#character-counter').addClass('orange');
}
if(txt.length > 420) {
$('#character-counter').removeClass('grey');
$('#character-counter').removeClass('orange');
$('#character-counter').addClass('red');
}
$('#character-counter').text(text);
});
}
});
</script>
<script type="text/javascript" src="include/ajaxupload.js" ></script>
<script>
$(document).ready(function() {
var uploader = new window.AjaxUpload(
'wall-image-upload',
{ action: 'wall_upload/$nickname',
name: 'userfile',
onSubmit: function(file,ext) { $('#profile-rotator').show(); },
onComplete: function(file,response) {
tinyMCE.execCommand('mceInsertRawHTML',false,response);
$('#profile-rotator').hide();
}
}
);
$('#contact_allow, #contact_deny, #group_allow, #group_deny').change(function() {
var selstr;
$('#contact_allow option:selected, #contact_deny option:selected, #group_allow option:selected, #group_deny option:selected').each( function() {
selstr = $(this).text();
$('#profile-jot-perms img').attr('src', 'images/lock_icon.gif');
});
if(selstr == null)
$('#profile-jot-perms img').attr('src', 'images/unlock_icon.gif');
}).trigger('change');
});
function jotGetLink() {
reply = prompt("Please enter a link URL:");
if(reply && reply.length) {
$('#profile-rotator').show();
$.get('parse_url?url=' + reply, function(data) {
tinyMCE.execCommand('mceInsertRawHTML',false,data);
$('#profile-rotator').hide();
});
}
}
function jotGetVideo() {
reply = prompt("Please enter a YouTube link:");
if(reply && reply.length) {
tinyMCE.execCommand('mceInsertRawHTML',false,'[youtube]' + reply + '[/youtube]');
}
}
function jotGetLocation() {
reply = prompt("Where are you right now?", $('#jot-location').val());
if(reply && reply.length) {
$('#jot-location').val(reply);
}
}
function linkdropper(event) {
var linkFound = event.dataTransfer.types.contains("text/uri-list");
if(linkFound)
event.preventDefault();
}
function linkdrop(event) {
var reply = event.dataTransfer.getData("text/uri-list");
event.target.textContent = reply;
event.preventDefault();
if(reply && reply.length) {
$('#profile-rotator').show();
$.get('parse_url?url=' + reply, function(data) {
tinyMCE.execCommand('mceInsertRawHTML',false,data);
$('#profile-rotator').hide();
});
}
}
function jotClearLocation() {
$('#jot-coord').val('');
$('#profile-nolocation-wrapper').hide();
}
$geotag
</script>

45
view/fr/jot.tpl Normal file
View file

@ -0,0 +1,45 @@
<div id="profile-jot-wrapper" >
<div id="profile-jot-banner-wrapper">
<div id="profile-jot-desc" >&nbsp;</div>
<div id="character-counter" class="grey"></div>
</div>
<div id="profile-jot-banner-end"></div>
<form id="profile-jot-form" action="item" method="post" >
<input type="hidden" name="type" value="wall" />
<input type="hidden" name="profile_uid" value="$profile_uid" />
<input type="hidden" name="return" value="$return_path" />
<input type="hidden" name="location" id="jot-location" value="$defloc" />
<input type="hidden" name="coord" id="jot-coord" value="" />
<textarea rows="5" cols="64" class="profile-jot-text" id="profile-jot-text" name="body" ></textarea>
<div id="profile-jot-submit-wrapper" >
<input type="submit" id="profile-jot-submit" name="submit" value="Share" />
<div id="profile-upload-wrapper" style="display: $visitor;" >
<div id="wall-image-upload-div" ><img id="wall-image-upload" src="images/camera-icon.gif" alt="Upload Photo" title="Upload Photo" /></div>
</div>
<div id="profile-link-wrapper" style="display: $visitor;" ondragenter="linkdropper(event);" ondragover="linkdropper(event);" ondrop="linkdrop(event);" >
<img id="profile-link" src="images/link-icon.gif" alt="Insert web link" title="Insert web link" ondragenter="return linkdropper(event);" ondragover="return linkdropper(event);" ondrop="linkdrop(event);" onclick="jotGetLink();" />
</div>
<div id="profile-youtube-wrapper" style="display: $visitor;" >
<img id="profile-video" src="images/youtube_icon.gif" alt="Insert YouTube video" title="Insert YouTube video" onclick="jotGetVideo();" />
</div>
<div id="profile-location-wrapper" style="display: $visitor;" >
<img id="profile-location" src="images/globe.gif" alt="Set your location" title="Set your location" onclick="jotGetLocation();" />
</div>
<div id="profile-nolocation-wrapper" style="display: none;" >
<img id="profile-nolocation" src="images/noglobe.gif" alt="Clear Browser Location" title="Clear Browser Location" onclick="jotClearLocation();" />
</div>
<div id="profile-rotator-wrapper" style="display: $visitor;" >
<img id="profile-rotator" src="images/rotator.gif" alt="Please wait" title="Please wait" style="display: none;" />
</div>
<div id="profile-jot-perms" class="profile-jot-perms" style="display: $visitor;" ><img id="jot-perms-icon" src="images/$lockstate_icon.gif" alt="Permission Settings" title="Permission Settings" onClick="openClose('profile-jot-acl-wrapper');" />$bang</div>
<div id="profile-jot-perms-end"></div>
<div id="profile-jot-acl-wrapper" style="display: none;" >$acl</div>
</div>
<div id="profile-jot-end"></div>
</form>
</div>

5
view/fr/like.tpl Normal file
View file

@ -0,0 +1,5 @@
<div class="wall-item-like-buttons" id="wall-item-like-buttons-$id">
<img src="images/like.gif" alt="I like this" title="I like this [toggle]" onclick="dolike($id,'like');" />
<img src="images/dislike.gif" alt="I don't like this" title="I don't like this [toggle]" onclick="dolike($id,'dislike');" />
<img id="like-rotator-$id" class="like-rotator" src="images/rotator.gif" alt="Please wait" title="Please wait" style="display: none;" />
</div>

6
view/fr/logout.tpl Normal file
View file

@ -0,0 +1,6 @@
<form action="" method="post" >
<div class="logout-wrapper">
<input type="hidden" name="auth-params" value="logout" />
<input type="submit" name="submit" id="logout-button" value="Logout" />
</div>
</form>

18
view/fr/lostpass.tpl Normal file
View file

@ -0,0 +1,18 @@
<h3>Forgot your Password?</h3>
<p id="lostpass-desc">
Enter your email address and submit to have your password reset. Then check your email for further instructions.
</p>
<form action="lostpass" method="post" >
<div id="login-name-wrapper">
<label for="login-name" id="label-login-name">Nickname or Email: </label>
<input type="text" maxlength="60" name="login-name" id="login-name" value="" />
</div>
<div id="login-extra-end"></div>
<div id="login-submit-wrapper" >
<input type="submit" name="submit" id="lostpass-submit-button" value="Reset" />
</div>
<div id="login-submit-end"></div>
</form>

32
view/fr/lostpass_eml.tpl Normal file
View file

@ -0,0 +1,32 @@
Dear $username,
A request was recently received at $sitename to reset your account
password. In order to confirm this request, please select the verification link
below or paste it into your web browser address bar.
If you did NOT request this change, please DO NOT follow the link
provided and ignore and/or delete this email.
Your password will not be changed unless we can verify that you
issued this request.
Follow this link to verify your identity:
$reset_link
You will then receive a follow-up message containing the new password.
You may change that password from your account settings page after logging in.
The login details are as follows:
Site Location: $siteurl
Login Name: $email
Sincerely,
$sitename Administrator

View file

@ -0,0 +1,16 @@
Dear $username,
You've received a new private message at $sitename from '$from'.
-----
$title
-----
$body
-----
Please login at $siteurl to read and reply to your private messages.
Thank you,
$sitename administrator

100
view/fr/msg-header.tpl Normal file
View file

@ -0,0 +1,100 @@
<script language="javascript" type="text/javascript" src="$baseurl/tinymce/jscripts/tiny_mce/tiny_mce_src.js"></script>
<script language="javascript" type="text/javascript">
tinyMCE.init({
theme : "advanced",
mode : "specific_textareas",
editor_selector: /(profile-jot-text|prvmail-text)/,
plugins : "bbcode",
theme_advanced_buttons1 : "bold,italic,underline,undo,redo,link,unlink,image,forecolor",
theme_advanced_buttons2 : "",
theme_advanced_buttons3 : "",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "center",
theme_advanced_styles : "Code=codeStyle;Quote=quoteStyle",
content_css : "bbcode.css",
entity_encoding : "raw",
add_unload_trigger : false,
remove_linebreaks : false,
force_p_newlines : false,
force_br_newlines : true,
forced_root_block : '',
convert_urls: false,
content_css: "$baseurl/view/custom_tinymce.css",
//Character count
theme_advanced_path : false,
setup : function(ed) {
ed.onKeyUp.add(function(ed, e) {
var txt = tinyMCE.activeEditor.getContent();
var text = txt.length;
if(txt.length <= 140) {
$('#character-counter').removeClass('red');
$('#character-counter').removeClass('orange');
$('#character-counter').addClass('grey');
}
if((txt.length > 140) && (txt .length <= 420)) {
$('#character-counter').removeClass('grey');
$('#character-counter').removeClass('red');
$('#character-counter').addClass('orange');
}
if(txt.length > 420) {
$('#character-counter').removeClass('grey');
$('#character-counter').removeClass('orange');
$('#character-counter').addClass('red');
}
$('#character-counter').text(text);
});
}
});
</script>
<script type="text/javascript" src="include/ajaxupload.js" ></script>
<script>
$(document).ready(function() {
var uploader = new window.AjaxUpload(
'prvmail-upload',
{ action: 'wall_upload/$nickname',
name: 'userfile',
onSubmit: function(file,ext) { $('#profile-rotator').show(); },
onComplete: function(file,response) {
tinyMCE.execCommand('mceInsertRawHTML',false,response);
$('#profile-rotator').hide();
}
}
);
});
function jotGetLink() {
reply = prompt("Please enter a link URL:");
if(reply && reply.length) {
$('#profile-rotator').show();
$.get('parse_url?url=' + reply, function(data) {
tinyMCE.execCommand('mceInsertRawHTML',false,data);
$('#profile-rotator').hide();
});
}
}
function linkdropper(event) {
var linkFound = event.dataTransfer.types.contains("text/uri-list");
if(linkFound)
event.preventDefault();
}
function linkdrop(event) {
var reply = event.dataTransfer.getData("text/uri-list");
event.target.textContent = reply;
event.preventDefault();
if(reply && reply.length) {
$('#profile-rotator').show();
$.get('parse_url?url=' + reply, function(data) {
tinyMCE.execCommand('mceInsertRawHTML',false,data);
$('#profile-rotator').hide();
});
}
}
</script>

14
view/fr/netfriend.tpl Normal file
View file

@ -0,0 +1,14 @@
<div class="intro-approve-as-friend-desc">Approve as: </div>
<div class="intro-approve-as-friend-wrapper">
<label class="intro-approve-as-friend-label" for="intro-approve-as-friend-$intro_id">Friend</label>
<input type="radio" name="duplex" id="intro-approve-as-friend-$intro_id" class="intro-approve-as-friend" $friend_selected value="1" />
<div class="intro-approve-friend-break" ></div>
</div>
<div class="intro-approve-as-friend-end"></div>
<div class="intro-approve-as-fan-wrapper">
<label class="intro-approve-as-fan-label" for="intro-approve-as-fan-$intro_id">Fan/Admirer</label>
<input type="radio" name="duplex" id="intro-approve-as-fan-$intro_id" class="intro-approve-as-fan" $fan_selected value="0" />
<div class="intro-approve-fan-break"></div>
</div>
<div class="intro-approve-as-end"></div>

25
view/fr/pagetypes.tpl Normal file
View file

@ -0,0 +1,25 @@
<div id="settings-normal-wrapper">
<label id="settings-normal-label" for="settings-normal">Normal Profile</label>
<input type="radio" name="page-flags" id="settings-normal" $normal_selected value="$page_normal" />
<span id="settings-normal-desc">This account is a normal personal profile</span>
</div>
<div id="settings-normal-break" ></div>
<div id="settings-soapbox-wrapper">
<label id="settings-soapbox-label" for="settings-soapbox">Soapbox Profile</label>
<input type="radio" name="page-flags" id="settings-soapbox" $soapbox_selected value="$page_soapbox" />
<span id="settings-soapbox-desc">Automatically approve all connection/friend requests as read-only fans</span>
</div>
<div id="settings-soapbox-break" ></div>
<div id="settings-community-wrapper">
<label id="settings-community-label" for="settings-community">Community/Celebrity Profile</label>
<input type="radio" name="page-flags" id="settings-community" $community_selected value="$page_community" />
<span id="settings-community-desc">Automatically approve all connection/friend requests as read-write fans</span>
</div>
<div id="settings-community-break" ></div>
<div id="settings-freelove-wrapper">
<label id="settings-freelove-label" for="settings-freelove">Automatic Friend Profile</label>
<input type="radio" name="page-flags" id="settings-freelove" $freelove_selected value="$page_freelove" />
<span id="settings-freelove-desc">Automatically approve all connection/friend requests as friends</span>
</div>
<div id="settings-freelove-break" ></div>

View file

@ -0,0 +1,20 @@
Dear $username,
Your password has been changed as requested. Please retain this
information for your records (or change your password immediately to
something that you will remember).
Your login details are as follows:
Site Location: $siteurl
Login Name: $email
Password: $new_password
You may change that password from your account settings page after logging in.
Sincerely,
$sitename Administrator

View file

@ -0,0 +1,16 @@
<p id="hide-friends-text">
Hide my contact/friend list from viewers of this profile?
</p>
<div id="hide-friends-yes-wrapper">
<label id="hide-friends-yes-label" for="hide-friends-yes">Yes</label>
<input type="radio" name="hide-friends" id="hide-friends-yes" $yes_selected value="1" />
<div id="hide-friends-break" ></div>
</div>
<div id="hide-friends-no-wrapper">
<label id="hide-friends-no-label" for="hide-friends-no">No</label>
<input type="radio" name="hide-friends" id="hide-friends-no" $no_selected value="0" />
<div id="hide-friends-end"></div>
</div>

View file

@ -0,0 +1,16 @@
<p id="profile-in-directory">
Publish your default profile in site directory?
</p>
<div id="profile-in-dir-yes-wrapper">
<label id="profile-in-dir-yes-label" for="profile-in-dir-yes">Yes</label>
<input type="radio" name="profile_in_directory" id="profile-in-dir-yes" $yes_selected value="1" />
<div id="profile-in-dir-break" ></div>
</div>
<div id="profile-in-dir-no-wrapper">
<label id="profile-in-dir-no-label" for="profile-in-dir-no">No</label>
<input type="radio" name="profile_in_directory" id="profile-in-dir-no" $no_selected value="0" />
<div id="profile-in-dir-end"></div>
</div>

View file

@ -0,0 +1,16 @@
<p id="profile-in-directory">
Publish your default profile in global social directory?
</p>
<div id="profile-in-netdir-yes-wrapper">
<label id="profile-in-netdir-yes-label" for="profile-in-netdir-yes">Yes</label>
<input type="radio" name="profile_in_netdirectory" id="profile-in-netdir-yes" $yes_selected value="1" />
<div id="profile-in-netdir-break" ></div>
</div>
<div id="profile-in-netdir-no-wrapper">
<label id="profile-in-netdir-no-label" for="profile-in-netdir-no">No</label>
<input type="radio" name="profile_in_netdirectory" id="profile-in-netdir-no" $no_selected value="0" />
<div id="profile-in-netdir-end"></div>
</div>

72
view/fr/profile.php Normal file
View file

@ -0,0 +1,72 @@
<!DOCTYPE html ><?php // This is a perfect example of why I prefer to use template files rather than mixed PHP/HTML ?>
<html>
<head>
<title><?php if(x($page,'title')) echo $page['title']; ?></title>
<?php if(x($page,'htmlhead')) echo $page['htmlhead']; ?>
</head>
<body>
<header><?php if(x($page,'header')) echo $page['header']; ?></header>
<nav><div id="top-margin"></div><?php if(x($page,'nav')) echo $page['nav']; ?></nav>
<aside>
<?php if((is_array($profile)) && count($profile)) { ?>
<div class="vcard">
<?php if(strlen($profile['name'])) { ?>
<div class="fn"><?php echo $profile['name']; ?></div>
<?php } ?>
<?php if(strlen($profile['photo'])) { ?>
<div id="profile-photo-wrapper"><img class="photo" src="<?php echo $profile['photo']; ?>" alt="<?php echo $profile['name']; ?>" /></div>
<?php } ?>
<div id="profile-extra-links">
<ul>
<?php if($profile['uid'] != $_SESSION['uid']) { ?>
<li><a id="dfrn-request-link" href="dfrn_request/<?php echo $profile['nickname']; ?>">Connect</a></li>
<?php } ?>
</ul>
</div>
<?php if ( (strlen($profile['address']))
|| (strlen($profile['locality']))
|| (strlen($profile['region']))
|| (strlen($profile['postal-code']))
|| (strlen($profile['country-name']))) { ?>
<div class="location">Location:
<div class="adr">
<div class="street-address"><?php if(strlen($profile['address'])) echo $profile['address']; ?></div>
<span class="city-state-zip"><span class="locality"><?php echo $profile['locality']; ?></span><?php if(strlen($profile['locality'])) echo ', '; ?><span class="region"><?php echo $profile['region'] ?></span><?php if(strlen($profile['postal-code'])) { ?> <span class="postal-code"><?php echo $profile['postal-code']; ?></span><?php } ?></span>
<span class="country-name"><?php echo $profile['country-name']; ?></span>
</div>
</div>
<?php } ?>
<?php if(strlen($profile['gender'])) { ?>
<div class="mf">Gender: <span class="x-gender"><?php echo $profile['gender']; ?></span></div>
<?php } ?>
<?php if(strlen($profile['pubkey'])) { ?>
<div class="key" style="display: none;"><?php echo $profile['pubkey']; ?></div>
<?php } ?>
</div>
<?php } ?>
<?php if(strlen($profile['marital'])) { ?>
<div class="marital"><span class="marital-label"><span class="heart">&hearts;</span> Status: </span><span class="marital-text"><?php echo $profile['marital']; ?></span></div>
<?php } ?>
<?php if(strlen($profile['homepage'])) { ?>
<div class="homepage"><span class="homepage-label">Homepage: </span><span class="homepage-url"><?php echo linkify($profile['homepage']); ?></span></div>
<?php } ?>
<?php if(x($page,'aside')) echo $page['aside'] ?>
</aside>
<section>
<?php if(x($page,'content')) echo $page['content']; ?>
<div id="page-footer"></div>
</section>
<footer>
<?php if(x($page,'footer')) echo $page['footer']; ?>
</footer>
</body>
</html>

View file

@ -0,0 +1,226 @@
<?php
$o .= '';
$o .= <<< EOT
<h2>Profile</h2>
EOT;
if($a->profile['name']) {
$o .= <<< EOT
<div id="advanced-profile-name-wrapper" >
<div id="advanced-profile-name-text">Full Name:</div>
<div id="advanced-profile-name">{$a->profile['name']}</div>
</div>
<div id="advanced-profile-name-end"></div>
EOT;
}
if($a->profile['gender']) {
$o .= <<< EOT
<div id="advanced-profile-gender-wrapper" >
<div id="advanced-profile-gender-text">Gender:</div>
<div id="advanced-profile-gender">{$a->profile['gender']}</div>
</div>
<div id="advanced-profile-gender-end"></div>
EOT;
}
if(($a->profile['dob']) && ($a->profile['dob'] != '0000-00-00')) {
$o .= <<< EOT
<div id="advanced-profile-dob-wrapper" >
<div id="advanced-profile-dob-text">Birthday:</div>
EOT;
// If no year, add an arbitrary one so just we can parse the month and day.
$o .= '<div id="advanced-profile-dob">'
. ((intval($a->profile['dob']))
? day_translate(datetime_convert('UTC','UTC',$a->profile['dob'],'j F, Y'))
: day_translate(datetime_convert('UTC','UTC','2001-' . substr($a->profile['dob'],6),'j F')))
. "</div>\r\n</div>";
$o .= '<div id="advanced-profile-dob-end"></div>';
}
if($age = age($a->profile['dob'],$a->profile['timezone'],'')) {
$o .= <<< EOT
<div id="advanced-profile-age-wrapper" >
<div id="advanced-profile-age-text">Age:</div>
<div id="advanced-profile-age">$age</div>
</div>
<div id="advanced-profile-age-end"></div>
EOT;
}
if($a->profile['marital']) {
$o .= <<< EOT
<div id="advanced-profile-marital-wrapper" >
<div id="advanced-profile-marital-text"><span class="heart">&hearts;</span> Status:</div>
<div id="advanced-profile-marital">{$a->profile['marital']}</div>
EOT;
if($a->profile['with'])
$o .= "<div id=\"advanced-profile-with\">({$a->profile['with']})</div>";
$o .= <<< EOT
</div>
<div id="advanced-profile-marital-end"></div>
EOT;
}
if($a->profile['sexual']) {
$o .= <<< EOT
<div id="advanced-profile-sexual-wrapper" >
<div id="advanced-profile-sexual-text">Sexual Preference:</div>
<div id="advanced-profile-sexual">{$a->profile['sexual']}</div>
</div>
<div id="advanced-profile-sexual-end"></div>
EOT;
}
if($a->profile['homepage']) {
$homepage = linkify($a->profile['homepage']);
$o .= <<< EOT
<div id="advanced-profile-homepage-wrapper" >
<div id="advanced-profile-homepage-text">Homepage:</div>
<div id="advanced-profile-homepage">$homepage</div>
</div>
<div id="advanced-profile-homepage-end"></div>
EOT;
}
if($a->profile['politic']) {
$o .= <<< EOT
<div id="advanced-profile-politic-wrapper" >
<div id="advanced-profile-politic-text">Political Views:</div>
<div id="advanced-profile-politic">{$a->profile['politic']}</div>
</div>
<div id="advanced-profile-politic-end"></div>
EOT;
}
if($a->profile['religion']) {
$o .= <<< EOT
<div id="advanced-profile-religion-wrapper" >
<div id="advanced-profile-religion-text">Religion:</div>
<div id="advanced-profile-religion">{$a->profile['religion']}</div>
</div>
<div id="advanced-profile-religion-end"></div>
EOT;
}
if($txt = bbcode($a->profile['about'])) {
$o .= <<< EOT
<div id="advanced-profile-about-wrapper" >
<div id="advanced-profile-about-text">About:</div>
<br />
<div id="advanced-profile-about">$txt</div>
</div>
<div id="advanced-profile-about-end"></div>
EOT;
}
if($txt = bbcode($a->profile['interest'])) {
$o .= <<< EOT
<div id="advanced-profile-interest-wrapper" >
<div id="advanced-profile-interest-text">Hobbies/Interests:</div>
<br />
<div id="advanced-profile-interest">$txt</div>
</div>
<div id="advanced-profile-interest-end"></div>
EOT;
}
if($txt = bbcode($a->profile['contact'])) {
$o .= <<< EOT
<div id="advanced-profile-contact-wrapper" >
<div id="advanced-profile-contact-text">Contact information and Social Networks:</div>
<br />
<div id="advanced-profile-contact">$txt</div>
</div>
<div id="advanced-profile-contact-end"></div>
EOT;
}
if($txt = bbcode($a->profile['music'])) {
$o .= <<< EOT
<div id="advanced-profile-music-wrapper" >
<div id="advanced-profile-music-text">Musical interests:</div>
<br />
<div id="advanced-profile-music">$txt</div>
</div>
<div id="advanced-profile-music-end"></div>
EOT;
}
if($txt = bbcode($a->profile['book'])) {
$o .= <<< EOT
<div id="advanced-profile-book-wrapper" >
<div id="advanced-profile-book-text">Books, literature:</div>
<br />
<div id="advanced-profile-book">$txt</div>
</div>
<div id="advanced-profile-book-end"></div>
EOT;
}
if($txt = bbcode($a->profile['tv'])) {
$o .= <<< EOT
<div id="advanced-profile-tv-wrapper" >
<div id="advanced-profile-tv-text">Television:</div>
<br />
<div id="advanced-profile-tv">$txt</div>
</div>
<div id="advanced-profile-tv-end"></div>
EOT;
}
if($txt = bbcode($a->profile['film'])) {
$o .= <<< EOT
<div id="advanced-profile-film-wrapper" >
<div id="advanced-profile-film-text">Film/dance/culture/entertainment:</div>
<br />
<div id="advanced-profile-film">$txt</div>
</div>
<div id="advanced-profile-film-end"></div>
EOT;
}
if($txt = bbcode($a->profile['romance'])) {
$o .= <<< EOT
<div id="advanced-profile-romance-wrapper" >
<div id="advanced-profile-romance-text">Love/romance:</div>
<br />
<div id="advanced-profile-romance">$txt</div>
</div>
<div id="advanced-profile-romance-end"></div>
EOT;
}
if($txt = bbcode($a->profile['work'])) {
$o .= <<< EOT
<div id="advanced-profile-work-wrapper" >
<div id="advanced-profile-work-text">Work/employment:</div>
<br />
<div id="advanced-profile-work">$txt</div>
</div>
<div id="advanced-profile-work-end"></div>
EOT;
}
if($txt = bbcode($a->profile['education'])) {
$o .= <<< EOT
<div id="advanced-profile-education-wrapper" >
<div id="advanced-profile-education-text">School/education:</div>
<br />
<div id="advanced-profile-education">$txt</div>
</div>
<div id="advanced-profile-education-end"></div>
EOT;
}

293
view/fr/profile_edit.tpl Normal file
View file

@ -0,0 +1,293 @@
<h1>Edit Profile Details</h1>
<div id="profile-edit-links">
<ul>
<li><a href="profile/$profile_id/view?tab=profile" id="profile-edit-view-link" title="View this profile">View this profile</a></li>
<li><a href="profiles/clone/$profile_id" id="profile-edit-clone-link" title="Create a new profile using these settings">Clone this profile</a></li>
<li></li>
<li><a href="profiles/drop/$profile_id" id="profile-edit-drop-link" title="Delete this profile" $disabled >Delete this profile</a></li>
</ul>
</div>
<div id="profile-edit-links-end"></div>
$default
<div id="profile-edit-wrapper" >
<form id="profile-edit-form" name="form1" action="profiles/$profile_id" method="post" >
<div id="profile-edit-profile-name-wrapper" >
<label id="profile-edit-profile-name-label" for="profile-edit-profile-name" >Profile Name: </label>
<input type="text" size="32" name="profile_name" id="profile-edit-profile-name" value="$profile_name" /><div class="required">*</div>
</div>
<div id="profile-edit-profile-name-end"></div>
<div id="profile-edit-name-wrapper" >
<label id="profile-edit-name-label" for="profile-edit-name" >Your Full Name: </label>
<input type="text" size="32" name="name" id="profile-edit-name" value="$name" />
</div>
<div id="profile-edit-name-end"></div>
<div id="profile-edit-pdesc-wrapper" >
<label id="profile-edit-pdesc-label" for="profile-edit-pdesc" >Title/Description: </label>
<input type="text" size="32" name="pdesc" id="profile-edit-pdesc" value="$pdesc" />
</div>
<div id="profile-edit-pdesc-end"></div>
<div id="profile-edit-gender-wrapper" >
<label id="profile-edit-gender-label" for="gender-select" >Your Gender: </label>
$gender
</div>
<div id="profile-edit-gender-end"></div>
<div id="profile-edit-dob-wrapper" >
<label id="profile-edit-dob-label" for="dob-select" >Birthday (y/m/d): </label>
<div id="profile-edit-dob" >
$dob $age
</div>
</div>
<div id="profile-edit-dob-end"></div>
$hide_friends
<div class="profile-edit-submit-wrapper" >
<input type="submit" name="submit" class="profile-edit-submit-button" value="Submit" />
</div>
<div class="profile-edit-submit-end"></div>
<div id="profile-edit-address-wrapper" >
<label id="profile-edit-address-label" for="profile-edit-address" >Street Address: </label>
<input type="text" size="32" name="address" id="profile-edit-address" value="$address" />
</div>
<div id="profile-edit-address-end"></div>
<div id="profile-edit-locality-wrapper" >
<label id="profile-edit-locality-label" for="profile-edit-locality" >Locality/City: </label>
<input type="text" size="32" name="locality" id="profile-edit-locality" value="$locality" />
</div>
<div id="profile-edit-locality-end"></div>
<div id="profile-edit-postal-code-wrapper" >
<label id="profile-edit-postal-code-label" for="profile-edit-postal-code" >Postal/Zip Code: </label>
<input type="text" size="32" name="postal_code" id="profile-edit-postal-code" value="$postal_code" />
</div>
<div id="profile-edit-postal-code-end"></div>
<div id="profile-edit-country-name-wrapper" >
<label id="profile-edit-country-name-label" for="profile-edit-country-name" >Country: </label>
<select name="country_name" id="profile-edit-country-name" onChange="Fill_States('$region');">
<option selected="selected" >$country_name</option>
<option>temp</option>
</select>
</div>
<div id="profile-edit-country-name-end"></div>
<div id="profile-edit-region-wrapper" >
<label id="profile-edit-region-label" for="profile-edit-region" >Region/State: </label>
<select name="region" id="profile-edit-region" onChange="Update_Globals();" >
<option selected="selected" >$region</option>
<option>temp</option>
</select>
</div>
<div id="profile-edit-region-end"></div>
<div class="profile-edit-submit-wrapper" >
<input type="submit" name="submit" class="profile-edit-submit-button" value="Submit" />
</div>
<div class="profile-edit-submit-end"></div>
<div id="profile-edit-marital-wrapper" >
<label id="profile-edit-marital-label" for="profile-edit-marital" ><span class="heart">&hearts;</span> (Marital) Status: </label>
$marital
</div>
<label id="profile-edit-with-label" for="profile-edit-with" > Who: (if applicable) </label>
<input type="text" size="32" name="with" id="profile-edit-with" value="$with" />
<div id="profile-edit-marital-end"></div>
<div id="profile-edit-sexual-wrapper" >
<label id="profile-edit-sexual-label" for="sexual-select" >Sexual Preference: </label>
$sexual
</div>
<div id="profile-edit-sexual-end"></div>
<div id="profile-edit-homepage-wrapper" >
<label id="profile-edit-homepage-label" for="profile-edit-homepage" >Homepage URL: </label>
<input type="text" size="32" name="homepage" id="profile-edit-homepage" value="$homepage" />
</div>
<div id="profile-edit-homepage-end"></div>
<div id="profile-edit-politic-wrapper" >
<label id="profile-edit-politic-label" for="profile-edit-politic" >Political Views: </label>
<input type="text" size="32" name="politic" id="profile-edit-politic" value="$politic" />
</div>
<div id="profile-edit-politic-end"></div>
<div id="profile-edit-religion-wrapper" >
<label id="profile-edit-religion-label" for="profile-edit-religion" >Religion: </label>
<input type="text" size="32" name="religion" id="profile-edit-religion" value="$religion" />
</div>
<div id="profile-edit-religion-end"></div>
<div id="profile-edit-keywords-wrapper" >
<label id="profile-edit-keywords-label" for="profile-edit-keywords" >Keywords: </label>
<input type="text" size="32" name="keywords" id="profile-edit-keywords" title="Example: fishing photography software" value="$keywords" />
</div><div id="profile-edit-keywords-desc">(Used for searching public profiles, never shown to others)</div>
<div id="profile-edit-keywords-end"></div>
<div class="profile-edit-submit-wrapper" >
<input type="submit" name="submit" class="profile-edit-submit-button" value="Submit" />
</div>
<div class="profile-edit-submit-end"></div>
<div id="about-jot-wrapper" >
<p id="about-jot-desc" >
Tell us about yourself...
</p>
<textarea rows="10" cols="72" id="profile-jot-text" name="about" >$about</textarea>
</div>
<div id="about-jot-end"></div>
</div>
<div id="interest-jot-wrapper" >
<p id="interest-jot-desc" >
Hobbies/Interests
</p>
<textarea rows="10" cols="72" id="interest-jot-text" name="interest" >$interest</textarea>
</div>
<div id="interest-jot-end"></div>
</div>
<div id="contact-jot-wrapper" >
<p id="contact-jot-desc" >
Contact information and Social Networks
</p>
<textarea rows="10" cols="72" id="contact-jot-text" name="contact" >$contact</textarea>
</div>
<div id="contact-jot-end"></div>
</div>
<div class="profile-edit-submit-wrapper" >
<input type="submit" name="submit" class="profile-edit-submit-button" value="Submit" />
</div>
<div class="profile-edit-submit-end"></div>
<div id="music-jot-wrapper" >
<p id="music-jot-desc" >
Musical interests
</p>
<textarea rows="10" cols="72" id="music-jot-text" name="music" >$music</textarea>
</div>
<div id="music-jot-end"></div>
</div>
<div id="book-jot-wrapper" >
<p id="book-jot-desc" >
Books, literature
</p>
<textarea rows="10" cols="72" id="book-jot-text" name="book" >$book</textarea>
</div>
<div id="book-jot-end"></div>
</div>
<div id="tv-jot-wrapper" >
<p id="tv-jot-desc" >
Television
</p>
<textarea rows="10" cols="72" id="tv-jot-text" name="tv" >$tv</textarea>
</div>
<div id="tv-jot-end"></div>
</div>
<div id="film-jot-wrapper" >
<p id="film-jot-desc" >
Film/dance/culture/entertainment
</p>
<textarea rows="10" cols="72" id="film-jot-text" name="film" >$film</textarea>
</div>
<div id="film-jot-end"></div>
</div>
<div class="profile-edit-submit-wrapper" >
<input type="submit" name="submit" class="profile-edit-submit-button" value="Submit" />
</div>
<div class="profile-edit-submit-end"></div>
<div id="romance-jot-wrapper" >
<p id="romance-jot-desc" >
Love/romance
</p>
<textarea rows="10" cols="72" id="romance-jot-text" name="romance" >$romance</textarea>
</div>
<div id="romance-jot-end"></div>
</div>
<div id="work-jot-wrapper" >
<p id="work-jot-desc" >
Work/employment
</p>
<textarea rows="10" cols="72" id="work-jot-text" name="work" >$work</textarea>
</div>
<div id="work-jot-end"></div>
</div>
<div id="education-jot-wrapper" >
<p id="education-jot-desc" >
School/education
</p>
<textarea rows="10" cols="72" id="education-jot-text" name="education" >$education</textarea>
</div>
<div id="education-jot-end"></div>
</div>
<div class="profile-edit-submit-wrapper" >
<input type="submit" name="submit" class="profile-edit-submit-button" value="Submit" />
</div>
<div class="profile-edit-submit-end"></div>
</form>
</div>
<script type="text/javascript">Fill_Country('$country_name');Fill_States('$region');</script>

View file

@ -0,0 +1,9 @@
<div class="profile-listing" >
<div class="profile-listing-photo-wrapper" >
<a href="profiles/$id" class="profile-listing-edit-link" ><img class="profile-listing-photo" id="profile-listing-photo-$id" src="$photo" alt="Profile Image" /></a>
</div>
<div class="profile-listing-photo-end" ></div>
<div class="profile-listing-name" id="profile-listing-name-$id"><a href="profiles/$id" class="profile-listing-edit-link" >$profile_name</a></div>
</div>
<div class="profile-listing-end"></div>

View file

@ -0,0 +1,8 @@
<h1>Profiles</h1>
<p id="profile-listing-desc" >
<a href="profile_photo" >Change profile photo</a>
</p>
<div id="profile-listing-new-link-wrapper" >
<a href="profiles/new" id="profile-listing-new-link" name="Create New Profile" >Create New Profile</a>
</div>

14
view/fr/profile_photo.tpl Normal file
View file

@ -0,0 +1,14 @@
<h1>Upload Profile Photo</h1>
<form enctype="multipart/form-data" action="profile_photo" method="post">
<div id="profile-photo-upload-wrapper">
<label id="profile-photo-upload-label" for="profile-photo-upload">Upload File: </label>
<input name="userfile" type="file" id="profile-photo-upload" size="48" />
</div>
<div id="profile-photo-submit-wrapper">
<input type="submit" name="submit" id="profile-photo-submit" value="Upload">
</div>
</form>

7
view/fr/profile_tabs.tpl Normal file
View file

@ -0,0 +1,7 @@
<div id="profile-tabs-wrapper" >
<a href="$url" id="profile-tab-status-link" class="profile-tabs" >Status</a>
<a href="$url?tab=profile" id="profile-tab-profile-link" class="profile-tabs" >Profile</a>
<a href="$phototab" id="profile-tab-photos-link" class="profile-tabs" >Photos</a>
<div id="profile-tabs-end"></div>
</div>

16
view/fr/pwdreset.tpl Normal file
View file

@ -0,0 +1,16 @@
<h3>Password Reset</h3>
<p>
Your password has been reset as requested.
</p>
<p>
Your new password is
</p>
<p>
$newpass
</p>
<p>
Save or copy your new password - and then <a href="$baseurl" >click here to login</a>.
</p>
<p>
Your password may be changed from the 'Settings' page after successful login.

View file

@ -0,0 +1 @@
<a href="register" name="Create a New Account" id="register-link" >Register</a>

View file

@ -0,0 +1,25 @@
Dear $username,
Thank you for registering at $sitename. Your account has been created.
The login details are as follows:
Site Location: $siteurl
Login Name: $email
Password: $password
You may change your password from your account "Settings" page after logging
in.
Please take a few moments to review the other account settings on that page.
By default your account is private and hidden (invisible to other people).
You might wish to change this by publishing your profile - so that it appears
in a directory and other people can find you.
Thank you and welcome to $sitename.
Sincerely,
$sitename Administrator

View file

@ -0,0 +1,26 @@
A new user registration request was received at $sitename which requires
your approval.
The login details are as follows:
Full Name: $username
Site Location: $siteurl
Login Name: $email
To approve this request please visit the following link:
$siteurl/regmod/allow/$hash
To deny the request and remove the account, please visit:
$siteurl/regmod/deny/$hash
Thank you.

View file

@ -0,0 +1,3 @@
<h1>User registrations waiting for confirm</h1>

View file

@ -0,0 +1 @@
<li>$fullname ($email) : <a href="$approvelink">Approve</a> - <a href="$denylink">Deny</a></li>

View file

@ -0,0 +1,17 @@
Dear $myname,
You have just received a connection request at $sitename
from '$requestor'.
You may visit their profile at $url.
Please login to your site to view the complete introduction
and approve or ignore/cancel the request.
$siteurl
Regards,
$sitename administrator

163
view/fr/settings.tpl Normal file
View file

@ -0,0 +1,163 @@
<h1>Account Settings</h1>
<div id="plugin-settings-link"><a href="settings/addon">Plugin Settings</a></div>
$nickname_block
<form action="settings" id="settings-form" method="post" autocomplete="false" >
<h3 class="settings-heading">Basic Settings</h3>
<div id="settings-username-wrapper" >
<label id="settings-username-label" for="settings-username" >Full Name: </label>
<input type="text" name="username" id="settings-username" value="$username" />
</div>
<div id="settings-username-end" ></div>
<div id="settings-email-wrapper" >
<label id="settings-email-label" for="settings-email" >Email Address: </label>
<input type="text" name="email" id="settings-email" value="$email" />
</div>
<div id="settings-email-end" ></div>
<div id="settings-timezone-wrapper" >
<label id="settings-timezone-label" for="timezone_select" >Your Timezone: </label>
$zoneselect
</div>
<div id="settings-timezone-end" ></div>
<div id="settings-defloc-wrapper" >
<label id="settings-defloc-label" for="settings-defloc" >Default Post Location: </label>
<input type="text" name="defloc" id="settings-defloc" value="$defloc" />
</div>
<div id="settings-defloc-end" ></div>
<div id="settings-allowloc-wrapper" >
<label id="settings-allowloc-label" for="settings-allowloc" >Use Browser Location: </label>
<input type="checkbox" name="allow_location" id="settings-allowloc" value="1" $loc_checked />
</div>
<div id="settings-allowloc-end" ></div>
<div id="settings-theme-select">
<label id="settings-theme-label" for="theme-select" >Display Theme: </label>
$theme
</div>
<div id="settings-theme-end"></div>
<div class="settings-submit-wrapper" >
<input type="submit" name="submit" class="settings-submit" value="Submit" />
</div>
<h3 class="settings-heading">Security and Privacy Settings</h3>
<input type="hidden" name="visibility" value="$visibility" />
<div id="settings-maxreq-wrapper">
<label id="settings-maxreq-label" for="settings-maxreq" >Maximum Friend Requests/Day</label>
<input id="settings-maxreq" name="maxreq" value="$maxreq" />
<div id="settings-maxreq-desc">(to prevent spam abuse)</div>
</div>
<div id="settings-maxreq-end"></div>
$profile_in_dir
$profile_in_net_dir
<div id="settings-default-perms" class="settings-default-perms" >
<div id="settings-default-perms-menu" class="fakelink" onClick="openClose('settings-default-perms-select');" >&#x21e9; $permissions</div>
<div id="settings-default-perms-menu-end"></div>
<div id="settings-default-perms-select" style="display: none;" >
$aclselect
</div>
</div>
<div id="settings-default-perms-end"></div>
<div class="settings-submit-wrapper" >
<input type="submit" name="submit" class="settings-submit" value="Submit" />
</div>
<h3 class="settings-heading">Notification Settings</h3>
<div id="settings-notify-wrapper">
<div id="settings-notify-desc">Send a notification email when: </div>
<label for="notify1" id="settings-label-notify1">You receive an introduction</label>
<input id="notify1" type="checkbox" $sel_notify1 name="notify1" value="1" />
<div id="notify1-end"></div>
<label for="notify2" id="settings-label-notify2">Your introductions are confirmed</label>
<input id="notify2" type="checkbox" $sel_notify2 name="notify2" value="2" />
<div id="notify2-end"></div>
<label for="notify3" id="settings-label-notify3">Someone writes on your profile wall</label>
<input id="notify3" type="checkbox" $sel_notify3 name="notify3" value="4" />
<div id="notify3-end"></div>
<label for="notify4" id="settings-label-notify4">Someone writes a followup comment</label>
<input id="notify4" type="checkbox" $sel_notify4 name="notify4" value="8" />
<div id="notify4-end"></div>
<label for="notify5" id="settings-label-notify5">You receive a private message</label>
<input id="notify5" type="checkbox" $sel_notify5 name="notify5" value="16" />
<div id="notify5-end"></div>
</div>
<div id="settings=notify-end"></div>
<div class="settings-submit-wrapper" >
<input type="submit" name="submit" class="settings-submit" value="Submit" />
</div>
<h3 class="settings-heading">Password Settings</h3>
<div id="settings-password-wrapper" >
<p id="settings-password-desc" >
Leave password fields blank unless changing
</p>
<label id="settings-password-label" for="settings-password" >New Password: </label>
<input type="password" id="settings-password" name="npassword" />
</div>
<div id="settings-password-end" ></div>
<div id="settings-confirm-wrapper" >
<label id="settings-confirm-label" for="settings-confirm" >Confirm: </label>
<input type="password" id="settings-confirm" name="confirm" />
</div>
<div id="settings-confirm-end" ></div>
<div id="settings-openid-wrapper" >
$oidhtml
</div>
<div id="settings-openid-end" ></div>
<div class="settings-submit-wrapper" >
<input type="submit" name="submit" class="settings-submit" value="Submit" />
</div>
<h3 class="settings-heading">Advanced Page Settings</h3>
$pagetype
<div class="settings-submit-wrapper" >
<input type="submit" name="submit" class="settings-submit" value="Submit" />
</div>

View file

@ -0,0 +1,9 @@
<div id="settings-nick-wrapper" >
<p id="settings-nickname-desc">
<span class="error-message">Your profile address is <strong>'$nickname@$basepath'</strong></span>
</p>
$subdir
</div>
<div id="settings-nick-end" ></div>

View file

@ -0,0 +1,6 @@
<p>
It appears that your website is located in a subdirectory of the<br />
$hostname website, so this setting may not work reliably.<br />
</p>
<p>If you have any issues, you may have better results using the profile<br /> address '<strong>$baseurl/profile/$nickname</strong>'.
</p>

View file

@ -0,0 +1,14 @@
<div id="settings-nick-wrapper" >
<p id="settings-nickname-desc">
Your profile URL is currently <strong>'$baseurl/profile/$uid'</strong>.
Setting a nickname will allow a friendly profile URL such as
<strong>'nickname@$basepath'</strong>.
<br />
Once set, it can never be changed. The nickname <strong>must</strong> start with a letter; and only letters, numbers, dashes, and underscores are allowed.
</p>
<label id="settings-nick-label" for="settings-nick" >URL Nickname: </label>
<input type="text" name="nick" id="settings-nick" value="$nickname" />
</div>
<div id="settings-nick-end" ></div>

1035
view/fr/strings.php Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,2 @@
<div class="wall-item-delete-wrapper" id="wall-item-delete-wrapper-$id" ><a href="item/drop/$id" onclick="return confirmDelete();" ><img src="images/b_drophide.gif" alt="Delete" title="Delete" id="wall-item-delete-icon-$id" class="wall-item-delete-icon" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></a></div>
<div class="wall-item-delete-end"></div>

View file

@ -0,0 +1,18 @@
Dear $username,
'$from' posted something to your profile wall.
-----
$body
-----
Please login at $siteurl to view or delete the item:
$display
Thank you,
$sitename administrator

36
view/fr/wallwall_item.tpl Normal file
View file

@ -0,0 +1,36 @@
<div class="wall-item-outside-wrapper$indent" id="wall-item-outside-wrapper-$id" >
<div class="wall-item-content-wrapper$indent" id="wall-item-content-wrapper-$id" >
<div class="wall-item-photo-wrapper" id="wall-item-ownerphoto-wrapper-$id" >
<a href="$owner_url" title="View $owner_name's profile" class="wall-item-photo-link" id="wall-item-ownerphoto-link-$id">
<img src="$owner_photo" class="wall-item-photo$osparkle" id="wall-item-ownerphoto-$id" height="80" width="80" alt="$owner_name" /></a>
</div>
<div class="wall-item-arrowphoto-wrapper" ><img src="images/larrow.gif" alt="Wall-To-Wall" /></div>
<div class="wall-item-photo-wrapper" id="wall-item-photo-wrapper-$id" >
<a href="$profile_url" title="View $name's profile" class="wall-item-photo-link" id="wall-item-photo-link-$id">
<img src="$thumb" class="wall-item-photo$sparkle" id="wall-item-photo-$id" height="80" width="80" alt="$name" /></a>
</div>
<div class="wall-item-wrapper" id="wall-item-wrapper-$id" >
$lock
<a href="$profile_url" title="View $name's profile" class="wall-item-name-link"><span class="wall-item-name$sparkle" id="wall-item-name-$id" >$name</span></a> to <a href="$owner_url" title="View $owner_name's profile" class="wall-item-name-link"><span class="wall-item-name$osparkle" id="wall-item-ownername-$id">$owner_name</span></a> via Wall-To-Wall:<br />
<div class="wall-item-ago" id="wall-item-ago-$id">$ago</div>
<div class="wall-item-location" id="wall-item-location-$id">$location</div>
$vote
</div>
<div class="wall-item-content" id="wall-item-content-$id" >
<div class="wall-item-title" id="wall-item-title-$id">$title</div>
<div class="wall-item-body" id="wall-item-body-$id" >$body</div>
</div>
$drop
</div>
<div class="wall-item-wrapper-end"></div>
<div class="wall-item-like" id="wall-item-like-$id">$like</div>
<div class="wall-item-dislike" id="wall-item-dislike-$id">$dislike</div>
<div class="wall-item-comment-separator"></div>
<div class="wall-item-comment-wrapper" >
$comment
</div>
</div>
<div class="wall-item-outside-wrapper-end$indent" ></div>