Inhaltsverzeichnis
{{ HideElements([ 'files', 'tags', 'upload', 'history', 'comments', 'images', 'options', 'tagedit', 'notification' ], true) }}{{ HideElements([ 'secure' ] ) }}
Ihre Projekte
Benutzer: {{ User.Anonymous ? 'Fremder' : User.Name }}
{{ template.tasklistmaster{showcomplete: 'true', onlymine: 'true'}; }}
Es gibt folgende Seitenelemente welche ein-ausgeblendet werden können.
tags // dunkelgrauer Infobalken mit Tags, Seitenstatistik und kurzer URL
tagedit // "Schlagworte bearbeiten" Funktion
files // Anhänge / Daten
images // Bildergalerie
imagedesc // Bilder Berschreibung und Bilderlink zum Original
upload // Daten anfügen Knopf und Datenübersicht
comments // Kommentare
history // Seitenhistorie (Datum)
menu // Seitenmenü oben links
options // Seitenoptionen (Seite editieren, neue Seite, mehr)
pagetalk // Diskussionsseite
pagealert // Seitenbenachrichtigungen
notification // Diskussionsseite und Seitenbenachrichtigungen
title // Seitentitel
header // Seitenheader (Logo etc.)
secure // Seitenschutzstatus (Schlüssel Icon)
Benutzerdashboard:
<link href="/skins/common/templates/activitydashboard.css" rel="stylesheet" type="text/css" />
try {
// set page-level user details
var ActivityUser = page.namespaceuser;
var userDetails = wiki.api(ActivityUser.api);
} catch {
<span class="error-dekiscript">'There was an error initializing the dashboard:'</span>
web.showerror(__error);
return;
};
<div id="deki-activity-dashboard">
<div id="col-left">
/*
* User Profile Information Box
*/
<div id="deki-profile" class="deki-dashboard-group">
try {
<div class="dashboard-title">
<div class="profile-name">
#ActivityUser.fullname > 0 ? ActivityUser.fullname : ActivityUser.name;
var status = xml.text(userDetails, 'status');
status == 'active' ? '' : ' (' .. wiki.localize('MindTouch.Templates.UserProfile.status.disabled') .. ')';
</div>
</div>
<div class="profile-image">
var NO_AVATAR = "http://mehrwert.kaffeebecher.ch/skins/common/images/default-avatar.png";
var cache_avatars = {};
var un = ( (String.StartsWith(page.path,"User:")) ? String.Trim(String.Remove(Uri.Parts(page.uri).path[0],0,String.Length("User:"))) : user.name );
if (!Map.Contains(cache_avatars,un)) {
let source=wiki.getpage('/User:' .. un).files;
let avatar=NO_AVATAR;
foreach (var f in source) {
let n=f.name;
let a=f.api;
if (String.tolower(n) == 'avatar.jpg') { let avatar=f.api; }
}
if (avatar==NO_AVATAR) { let avatar = "http://mehrwert.kaffeebecher.ch/skins/common/images/default-avatar.png"; }
let cache_avatars ..= {(un): ("<img src='"..avatar.."' width='100%' />") };
}
web.html(cache_avatars[un]);
</div>
<dl class="profile-details">
var loginDate = date.parse(xml.text(userDetails, 'date.lastlogin'));
<dt>wiki.localize('MindTouch.Templates.UserProfile.label.lastlogin');
</dt>
<dd class="dashboard-lastlogin">Template('MindTouch/Controls/DateTime', {date:loginDate, format:'datetime'});</dd>
<dt>
wiki.localize('MindTouch.Templates.UserProfile.label.joined')
</dt>
<dd class="profile-joined">
var joinDate = date.parse(xml.text(userDetails, 'date.created'));
Template('MindTouch/Controls/DateTime', {date:joinDate, format:'date'})
</dd>
<dt>
wiki.localize('MindTouch.Templates.UserProfile.label.timezone');
</dt>
<dd class="profile-timezone">
ActivityUser.timezone;
</dd>
if (#ActivityUser.language > 0 && ActivityUser.language != site.language) {
<dt>
wiki.localize('MindTouch.Templates.UserProfile.label.language')
</dt>
<dd class="profile-language">
ActivityUser.language;
</dd>
}
var groups = userDetails['groups/group'];
if (#groups > 0) {
<dt>
wiki.localize('MindTouch.Templates.UserProfile.label.groups')
</dt>
<dd class="profile-groups">
string.join(list.sort([ xml.text(g["groupname"]) foreach var g in groups ]), ", ");
</dd>
}
</dl>
<div class="clear" />
} catch {
<span class="error-dekiscript">'There was an error loading the user profile:'</span>
web.showerror(__error);
};
</div> // end deki-profile
<div id="deki-recent-comments" class="deki-dashboard-group">
<div class="dashboard-title">"Kommentare"</div>
var par = {
username: $0 ?? __request.args.user ?? args.user ?? string.substr(page.path, 5),
max: $1 ?? $max ?? __request.args.max ?? args.max ?? 30,
skip: $2 ?? $skip ?? __request.args.skip ?? args.skip ?? 0,
collapse: $collapse ?? __request.args.collapse ?? false,
avatars: $avatars ?? __request.args.avatars ?? true,
language: __request.args.language ?? args.language ?? ( page.language != '' ? page.language : ( site.language !=''?site.language:'en-us') ),
ajax_action: String.tolower( __request.args.ajax_action ?? args.ajax_action ?? 'load')
};
if ((par.ajax_action=='preload') || (par.ajax_action=='load') || (par.ajax_action=='reload_UsuarioLineaTemporal')) {
if ((par.ajax_action=='load') || (par.ajax_action=='reload_UsuarioLineaTemporal')) {
// + CONSTANTS
var NO_AVATAR = '';
// + VARS
var cache_avatars = {};
var avatar,source,n,a;
var username = par.username;
<div>
<div >"Sie sehen folgend die neusten Kommentare an Sie:"</div><p> </p>
<div class='entry-content'>
//<a href='/User:carles_coll/Web_Slices/Usuario_Linea_Temporal#MensajesWiki' rel='feedurl' style='display:none'></a>
<div >
<div >
var max = par.max;
var skip = par.skip;
foreach (var entry in wiki.getsearch('type:comment AND ( @'..username..' )', max, '-date') ) {
// var user = entry.user, p= entry.page;
var user = entry.author, p= entry.page;
let un = user.name;
if (par.avatars && !Map.Contains(cache_avatars,un)) {
let source=wiki.getpage('/User:' .. un).files;
let avatar=NO_AVATAR;
foreach (var f in source) {
let n=f.name;
let a=f.api;
if (String.tolower(n) == 'avatar.jpg') { let avatar=f.api; }
}
if (avatar==NO_AVATAR) { let avatar = user.gravatar; }
let cache_avatars ..= {(un): ("<img src='"..avatar.."' width='30px' valing='top' />") };
}
<div >
<div >
<a href=('/user:'..un) rel="internal" target="_blank">
if (par.avatars) {
web.html(cache_avatars[un]);
<br />;
}
un;
</a>
</div>
<div >
var id = @msg .. __index;
var timestamp = <span class='dekitl-timestamp'>(date.changetimezone(entry.date, user.timezone))</span>;
<span class="dekitl-title">
if (par.collapse) collapseitem(id, _,_, "slide");
"hat folgenden Kommentar auf der Seite: ";
<a href=(p.uri) title=(p.title) rel="internal" target="_blank">(p.title)</a>;
if (par.collapse) {
" ";
timestamp;
}
</span>" an Sie adressiert:";
var comhref=entry.text;
var imov=0;
foreach (var ihl in String.IndexesOf(comhref,"http")) { // #mod @carles.coll 2010/02/15
let ihl+=imov;
var href=String.SubStr(comhref,ihl);
var endpos=List.Min(List.Select([String.IndexOf(href," "),String.IndexOf(href,"\n"),String.Length(href)],"$>0"));
var shltxt=String.SubStr(href,0,endpos);
var shlref="<a href='"..shltxt.."'>"..shltxt.."</a>";
let imov+=String.Length(shlref)-String.Length(shltxt);
let comhref=String.SubStr(comhref,0,ihl)..shlref..String.SubStr(comhref,ihl+String.Length(shltxt));
}
<span class='dekitl-content' id=(id) style=(par.collapse ? "display:none" : "")><b>
web.html(String.Replace(comhref,'@'..username,'').." ");</b><p> </p>
</span>
</div>
</div>
}
</div>
</div>
</div>
</div>
} // -- if ((par.ajax_action=='load') || (par.ajax_action=='reload_UsuarioLineaTemporal')) ..
if ( (par.ajax_action=='load') || (par.ajax_action=='preload') ) {
<style type="text/css">"
#deki-timeline {font-size: 12px; margin: 12px 0; }
div.dekitl-item {overflow: auto; padding: 8px; border-top: 1px solid; }
div.dekitl-at { background-color: #ffffce; }
div.dekitl-user { width: 60px; float: left; text-align: center; font-weight: strong; }
div.dekitl-user a img { border: none; }
div.dekitl-message { padding-left: 70px;}
div.dekitl-message span { font-size: 11px; color: #666; }
div.dekitl-message span.dekitl-title,
div.dekitl-message span.dekitl-title a { color: #333; }
div.dekitl-message span.dekitl-timestamp { font-style: italic; float:right; }
div.dekitl-message span.dekitl-content {white-space:pre-line; line-height: auto; overflow: visible; margin: 0px; padding: 4px 0; font-size: 14px; color: black; }
"</style>
}
} // -- if ((par.ajax_action=='preload') || (par.ajax_action=='load') || (par.ajax_action=='reload_UsuarioLineaTemporal')) ..
</div>
</div>
<div id="col-right">
/*
* Recent User Activities
*/
<div id="deki-recent-changes" class="deki-dashboard-group">
try {
<div class="dashboard-title">wiki.localize('MindTouch.Templates.UserProfile.label.changes')</div>
var feedUri = ActivityUser.api & 'feed' & {limit: 10, format: 'raw'};
var changes = wiki.api(feedUri)['change'];
if (#changes > 0) {
<ul>
foreach (var c in changes) {
var pageId = xml.num(c, 'rc_cur_id');
var page = wiki.getPage(pageId);
var changeDate = date.parse(xml.text(c, 'rc_timestamp'), 'yyyyMMddHHmmss');
var pageExists = xml.num(c, 'rc_page_exists');
var pageTitle = xml.text(c, 'rc_title');
<li>
pageExists ? web.link(page.uri, page.title) : pageTitle;
<div class="recentchanges-date">Template('MindTouch/Controls/DateTime', {date:changeDate, format:'date'})</div>
<div class="recentchanges-details">
<span class="dashboard-change">xml.text(c, 'rc_comment');</span>
</div>
</li>
}
</ul>
<div class="deki-dashboard-group-footer">
web.link('/Special:Contributions?target=' .. ActivityUser.name,
wiki.localize('MindTouch.Templates.UserProfile.label.allchanges', [ActivityUser.name]));
</div>
}
else {
<div class="dashboard-message">
wiki.localize('MindTouch.Templates.UserProfile.empty.changes');
</div>
}
} catch {
<span class="error-dekiscript">'There was an error loading recent changes:'</span>
web.showerror(__error);
};
</div> // end deki-recent-changes
</div> // end col-right
</div> // end deki-activity-dashboard



Kommentare