Merge branch 'master' of https://github.com/redmatrix/hubzilla
This commit is contained in:
commit
b8e8517725
@ -224,6 +224,19 @@ function print_warn {
|
||||
echo -e '\e[0m'
|
||||
}
|
||||
|
||||
function stop_hubzilla {
|
||||
if [ -d /etc/apache2 ]
|
||||
then
|
||||
print_info "stopping apache webserver..."
|
||||
service apache2 stop
|
||||
fi
|
||||
if [ -f /etc/init.d/mysql ]
|
||||
then
|
||||
print_info "stopping mysql db..."
|
||||
/etc/init.d/mysql stop
|
||||
fi
|
||||
}
|
||||
|
||||
function install_apache {
|
||||
print_info "installing apache..."
|
||||
nocheck_install "apache2 apache2-utils"
|
||||
@ -236,7 +249,7 @@ function install_curl {
|
||||
|
||||
function install_sendmail {
|
||||
print_info "installing sendmail..."
|
||||
nocheck_install "sendmail"
|
||||
nocheck_install "sendmail sendmail-bin"
|
||||
}
|
||||
|
||||
function install_php {
|
||||
@ -561,7 +574,8 @@ function install_hubzilla {
|
||||
chmod -R 777 store
|
||||
touch .htconfig.php
|
||||
chmod ou+w .htconfig.php
|
||||
cd ..
|
||||
install_hubzilla_plugins
|
||||
cd /var/www/
|
||||
chown -R www-data:www-data html
|
||||
chown root:www-data /var/www/html/
|
||||
chown root:www-data /var/www/html/.htaccess
|
||||
@ -575,6 +589,73 @@ function install_hubzilla {
|
||||
print_info "installed hubzilla"
|
||||
}
|
||||
|
||||
function install_hubzilla_plugins {
|
||||
print_info "installing hubzilla plugins..."
|
||||
cd /var/www/html
|
||||
plugin_install=.homeinstall/plugin_install.txt
|
||||
theme_install=.homeinstall/theme_install.txt
|
||||
# overwrite script to update the plugin and themes
|
||||
rm -f $plugins_update
|
||||
echo "cd /var/www/html" >> $plugins_update
|
||||
###################
|
||||
# write plugin file
|
||||
if [ ! -f "$plugin_install" ]
|
||||
then
|
||||
echo "# To install a plugin" >> $plugin_install
|
||||
echo "# 1. add the plugin in a new line and run" >> $plugin_install
|
||||
echo "# 2. run" >> $plugin_install
|
||||
echo "# cd /var/www/html/.homeinstall" >> $plugin_install
|
||||
echo "# ./hubzilla-setup.sh" >> $plugin_install
|
||||
echo "https://gitlab.com/zot/ownmapp.git ownMap" >> $plugin_install
|
||||
echo "https://gitlab.com/zot/hubzilla-chess.git chess" >> $plugin_install
|
||||
fi
|
||||
# install plugins
|
||||
while read -r line; do
|
||||
[[ "$line" =~ ^#.*$ ]] && continue
|
||||
p_url=$(echo $line | awk -F' ' '{print $1}')
|
||||
p_name=$(echo $line | awk -F' ' '{print $2}')
|
||||
# basic check of format
|
||||
if [ ${#p_url} -ge 1 ] && [ ${#p_name} -ge 1 ]
|
||||
then
|
||||
# install addon
|
||||
util/add_addon_repo $line
|
||||
util/update_addon_repo $p_name # not sure if this line is neccessary
|
||||
echo "util/update_addon_repo $p_name" >> $plugins_update
|
||||
else
|
||||
print_info "skipping installation of a plugin from file $plugin_install - something wrong with format in line: $line"
|
||||
fi
|
||||
done < "$plugin_install"
|
||||
###################
|
||||
# write theme file
|
||||
if [ ! -f "$theme_install" ]
|
||||
then
|
||||
echo "# To install a theme" >> $theme_install
|
||||
echo "# 1. add the theme in a new line and run" >> $theme_install
|
||||
echo "# 2. run" >> $theme_install
|
||||
echo "# cd /var/www/html/.homeinstall" >> $theme_install
|
||||
echo "# ./hubzilla-setup.sh" >> $theme_install
|
||||
echo "https://github.com/DeadSuperHero/hubzilla-themes.git DeadSuperHeroThemes" >> $theme_install
|
||||
|
||||
fi
|
||||
# install plugins
|
||||
while read -r line; do
|
||||
[[ "$line" =~ ^#.*$ ]] && continue
|
||||
p_url=$(echo $line | awk -F' ' '{print $1}')
|
||||
p_name=$(echo $line | awk -F' ' '{print $2}')
|
||||
# basic check of format
|
||||
if [ ${#p_url} -ge 1 ] && [ ${#p_name} -ge 1 ]
|
||||
then
|
||||
# install addon
|
||||
util/add_theme_repo $line
|
||||
util/update_theme_repo $p_name # not sure if this line is neccessary
|
||||
echo "util/update_theme_repo $p_name" >> $plugins_update
|
||||
else
|
||||
print_info "skipping installation of a theme from file $theme_install - something wrong with format in line: $line"
|
||||
fi
|
||||
done < "$theme_install"
|
||||
print_info "installed hubzilla plugins and themes"
|
||||
}
|
||||
|
||||
function rewrite_to_https {
|
||||
print_info "configuring apache to redirect http to httpS ..."
|
||||
htaccessfile=/var/www/html/.htaccess
|
||||
@ -762,6 +843,7 @@ echo "echo \"\$(date) - updating hubhilla core...\"" >> /var/www/$hubzilladaily
|
||||
echo "git -C /var/www/html/ pull" >> /var/www/$hubzilladaily
|
||||
echo "echo \"\$(date) - updating hubhilla addons...\"" >> /var/www/$hubzilladaily
|
||||
echo "git -C /var/www/html/addon/ pull" >> /var/www/$hubzilladaily
|
||||
echo "bash /var/www/html/$plugins_update" >> /var/www/$hubzilladaily
|
||||
echo "chown -R www-data:www-data /var/www/html/ # make all accessable for the webserver" >> /var/www/$hubzilladaily
|
||||
echo "chown root:www-data /var/www/html/.htaccess" >> /var/www/$hubzilladaily
|
||||
echo "chmod 0644 /var/www/html/.htaccess # www-data can read but not write it" >> /var/www/$hubzilladaily
|
||||
@ -827,6 +909,7 @@ source $configfile
|
||||
selfhostdir=/etc/selfhost
|
||||
selfhostscript=selfhost-updater.sh
|
||||
hubzilladaily=hubzilla-daily.sh
|
||||
plugins_update=.homeinstall/plugins_update.sh
|
||||
snapshotconfig=/etc/rsnapshot_hubzilla.conf
|
||||
snapshotconfig_external_device=/etc/rsnapshot_hubzilla_external_device.conf
|
||||
backup_mount_point=/media/hubzilla_backup
|
||||
@ -836,6 +919,7 @@ sslconf=/etc/apache2/sites-available/default-ssl.conf
|
||||
#set -x # activate debugging from here
|
||||
|
||||
check_config
|
||||
stop_hubzilla
|
||||
update_upgrade
|
||||
install_curl
|
||||
install_sendmail
|
||||
|
@ -7,8 +7,8 @@
|
||||
[h3]Externe Ressourcen[/h3]
|
||||
[zrl=[baseurl]/help/external-resource-links]Links zu externen Ressourcen[/zrl]
|
||||
|
||||
[url=https://github.com/redmatrix/redmatrix]Haupt-Website[/url]
|
||||
[url=https://github.com/redmatrix/redmatrix-addons]Addons-Website[/url]
|
||||
[url=https://github.com/redmatrix/hubzilla]Haupt-Website[/url]
|
||||
[url=https://github.com/redmatrix/hubzilla-addons]Addons-Website[/url]
|
||||
|
||||
[url=[baseurl]/help/credits]$Projectname Credits[/url]
|
||||
|
||||
|
68
doc/federate.bb
Normal file
68
doc/federate.bb
Normal file
@ -0,0 +1,68 @@
|
||||
[h2]Creating protocol federation services[/h2]
|
||||
|
||||
There are three main components to writing federation plugins. These are:
|
||||
|
||||
[1] Channel discovery and making connections
|
||||
[2] Sending posts/messages
|
||||
[3] Receiving posts/messages
|
||||
|
||||
In addition, federation drivers must handle
|
||||
|
||||
[4] differences in privacy policies
|
||||
|
||||
|
||||
[h3]Making connections[/h3]
|
||||
|
||||
The core application provides channel discovery in the following sequence:
|
||||
|
||||
[1] Zot channel discovery
|
||||
[2] Webfinger (channel@hub) lookup
|
||||
[2.1] RFC7033 webfinger
|
||||
[2.2] XRD based webfinger (old style)
|
||||
[3] URL discovery (currently only used to discover RSS feeds)
|
||||
[4] If all of these fail, the network is "unknown" and we are unable to communicate with or connect with the channel. An 'xchan' record [i]may[/i] still be created [b]if[/b] there is enough information known to identify a unique channel.
|
||||
|
||||
Any of the lookup services may be bound to a plugin and extended. When a channel is discovered, we create an 'xchan' record which is a platform neutral representation of the channel identity. If we need to send information to the channel, a 'hubloc' (hub location) record is also generally required. A 'follow' plugin hook is provided to bypass webfinger and this discovery sequence completely.
|
||||
|
||||
The final step in gluing this together is to create an 'abook' record, which attaches an xchan in a relationship to a local channel with a given set of permissions.
|
||||
|
||||
For networks which do not support nomadic identity, your plugin must also set "abook_instance" which is a comma-separated list of local URLs that the remote channel is connected with. For instance if your member was connected to my channel clone at https://example.com, the abook_instance for that connection would read 'https://example.com'. If you also connected to my clone at https://abc.example.com, the string would be changed to 'https://example.com,https://abc.example.com'. This allows local channels to differentiate which instance a given remote channel is connected with and avoid delivery failures to those channels from other clone instances.
|
||||
|
||||
A federation plugin for a webfinger based system needs only to examine the webfinger or XRD results and identify a protocol stack which can be used to connect or communicate. Then create an xchan record with the given 'xchan_network' type and a hubloc record with the same 'hubloc_network' with the information given. Currently the plugin will need to create the entire record, but in the future this will be extended so that the plugin only need identify a network name and the record will be populated with all other known values.
|
||||
|
||||
An xchan record is always required in order to connect. To connect, create an abook record with the desired permissions.
|
||||
|
||||
Additional information that your plugin requires for communication can be stored in the xconfig table and/or abconfig table if there is no convenient or appropriate table column in the xchan or hubloc tables.
|
||||
|
||||
When a connection is made, we generally call the notifier (include/notifier.php) to send a message to the remote channel. This is bound to the hook 'permissions_create'. Your plugin will need to handle this in order to send a "follow" or "make friends" message to the other network.
|
||||
|
||||
Note: The first stage zot lookup will be replaced with a webfinger lookup. This work is in progress. A separate lookup was required initially as webfinger does not allow non-SSL connections. We will provide non-SSL zot lookups (usually test and development sites) via the "old" XRD based webfinger to avoid this limitation.
|
||||
|
||||
|
||||
|
||||
[h3]Sending Messages[/h3]
|
||||
|
||||
Whenever any message is sent (with the sole exception of directory communications), we invoke the notifier (include/notifier.php), and pass it the type of message and generally an identifier to lookup the information being sent from the database (items or conversational things, private mail, permissions updates, etc.).
|
||||
|
||||
The notifier has several hooks which may be used by plugins in different ways, depending on how their delivery loop works. For different message types and complex delivery situations you may need to tie into multiple hooks. The 'permissions_create' hook was mentioned in the first section. There is also a 'permissions_update' message if permissions have changed and the other end of the link needs to be advised. Few services will provide or handle this (as their permissions are static), but it is also used for instance to send profile and profile photo update messages and you may wish to handle this.
|
||||
|
||||
The next plugin hook is 'notifier_process'. It is passed an array providing the complete state of the notifier and is called once per notifier invocation. It contains the complete list of recipients (with xchan_network set for each).
|
||||
|
||||
There is also 'notifier_hub' which like 'notifier_process' is passed the complete state of the notifier, but the difference is that it is called for each individual hub or distinct URL delivery and may be matched on the hubloc_network type. Hub delivery is much more efficient than recipient delivery but may not be suitable for all protocol stacks.
|
||||
|
||||
|
||||
Your plugin will be required to understand the message state and recipients and translate the sent item to the desired format. You will also be required to check privacy and block communication to anybody but the intended recipients - *if* it is a private communication. The plugin will often at this point stick the message into the queue and return the queue id to the notifier.
|
||||
|
||||
|
||||
Queue handlers exist already for simple posted data. If you create a queue entry with 'post' type we'll open an HTTP POST request and post the data provided and acknowledge success or failure. You can create other forms of communication by providing a different outq_driver type and handling the processing of queue requests yourself. Delivery reporting is available if you wish to acknowledge different error conditions, or anything beyond success/failure. Advanced delivery reporting will also require a custom queue type. The basic 'post' type only deals with success (communication successful with the remote site) and failure.
|
||||
|
||||
|
||||
|
||||
[h3]Receiving Messages[/h3]
|
||||
|
||||
|
||||
Receiving messages from the remote network will probably require a 'receive' endpoint or module dedicated to your network communication protocol. This is a URL route that your plugin may need to register with the'module_loaded' hook. You module will then take responsibility for importing any data which arrives at that endpoint and translating it to the format required for this project and storing the resulting data. The basic structure we use is an extensible activitystream item but with slightly different field names and several optional fields. It can be easily mapped to an activitystream. Additional data can be stored in the "iconfig" table. item_store() and item_store_update() are generally used to store the data and send appropriate notifications. Similiar facilities are available for private mail and profile information.
|
||||
|
||||
|
||||
|
||||
|
@ -263,7 +263,7 @@ function rrmdir($path)
|
||||
return false;
|
||||
}
|
||||
|
||||
function channel_remove($channel_id, $local = true, $unset_session=true) {
|
||||
function channel_remove($channel_id, $local = true, $unset_session=false) {
|
||||
|
||||
if(! $channel_id)
|
||||
return;
|
||||
@ -389,8 +389,7 @@ function channel_remove($channel_id, $local = true, $unset_session=true) {
|
||||
proc_run('php','include/directory.php',$channel_id);
|
||||
|
||||
if($channel_id == local_channel() && $unset_session) {
|
||||
unset($_SESSION['authenticated']);
|
||||
unset($_SESSION['uid']);
|
||||
nuke_session();
|
||||
goaway($a->get_baseurl());
|
||||
}
|
||||
|
||||
|
@ -846,7 +846,7 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) {
|
||||
|
||||
// Caution: This re-uses $sql_options set further above
|
||||
|
||||
$r = q("select id, aid, uid, hash, creator, filename, filetype, filesize, revision, folder, os_storage, is_photo, flags, created, edited, allow_cid, allow_gid, deny_cid, deny_gid from attach where uid = %d and hash = '%s' $sql_options limit 1",
|
||||
$r = q("select * from attach where uid = %d and hash = '%s' $sql_options limit 1",
|
||||
intval($channel_id),
|
||||
dbesc($hash)
|
||||
);
|
||||
|
@ -12,33 +12,6 @@
|
||||
require_once('include/api_auth.php');
|
||||
require_once('include/security.php');
|
||||
|
||||
/**
|
||||
* @brief Resets the current session.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function nuke_session() {
|
||||
new_cookie(0); // 0 means delete on browser exit
|
||||
|
||||
unset($_SESSION['authenticated']);
|
||||
unset($_SESSION['account_id']);
|
||||
unset($_SESSION['uid']);
|
||||
unset($_SESSION['visitor_id']);
|
||||
unset($_SESSION['administrator']);
|
||||
unset($_SESSION['cid']);
|
||||
unset($_SESSION['theme']);
|
||||
unset($_SESSION['mobile_theme']);
|
||||
unset($_SESSION['show_mobile']);
|
||||
unset($_SESSION['page_flags']);
|
||||
unset($_SESSION['delegate']);
|
||||
unset($_SESSION['delegate_channel']);
|
||||
unset($_SESSION['my_url']);
|
||||
unset($_SESSION['my_address']);
|
||||
unset($_SESSION['addr']);
|
||||
unset($_SESSION['return_url']);
|
||||
unset($_SESSION['remote_service_class']);
|
||||
unset($_SESSION['remote_hub']);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Verify login credentials.
|
||||
|
@ -119,6 +119,8 @@ function datetime_convert($from = 'UTC', $to = 'UTC', $s = 'now', $fmt = "Y-m-d
|
||||
* @return string
|
||||
*/
|
||||
function dob($dob) {
|
||||
$a = get_app();
|
||||
|
||||
list($year, $month, $day) = sscanf($dob, '%4d-%2d-%2d');
|
||||
$f = get_config('system', 'birthday_input_format');
|
||||
if (! $f)
|
||||
@ -129,7 +131,15 @@ function dob($dob) {
|
||||
else
|
||||
$value = (($year) ? datetime_convert('UTC','UTC',$dob,'Y-m-d') : datetime_convert('UTC','UTC',$dob,'m-d'));
|
||||
|
||||
$o = '<input class="form-control" type="text" name="dob" value="' . $value . '" placeholder="' . t('YYYY-MM-DD or MM-DD') . '" />';
|
||||
$o = replace_macros(get_markup_template("field_input.tpl"), array('$field' => array(
|
||||
'dob',
|
||||
t('Birthday'),
|
||||
$value,
|
||||
((intval($value)) ? t('Age: ') . age($value,$a->user['timezone'],$a->user['timezone']) : ''),
|
||||
'',
|
||||
'placeholder="' . t('YYYY-MM-DD or MM-DD') .'"'
|
||||
)));
|
||||
|
||||
|
||||
// if ($dob && $dob != '0000-00-00')
|
||||
// $o = datesel($f,mktime(0,0,0,0,0,1900),mktime(),mktime(0,0,0,$month,$day,$year),'dob');
|
||||
|
@ -415,7 +415,7 @@ function init_groups_visitor($contact_id) {
|
||||
$r = q("SELECT hash FROM `groups` left join group_member on groups.id = group_member.gid WHERE xchan = '%s' ",
|
||||
dbesc($contact_id)
|
||||
);
|
||||
if(count($r)) {
|
||||
if($r) {
|
||||
foreach($r as $rr)
|
||||
$groups[] = $rr['hash'];
|
||||
}
|
||||
|
@ -12,6 +12,38 @@
|
||||
$session_exists = 0;
|
||||
$session_expire = 180000;
|
||||
|
||||
|
||||
/**
|
||||
* @brief Resets the current session.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
function nuke_session() {
|
||||
new_cookie(0); // 0 means delete on browser exit
|
||||
|
||||
unset($_SESSION['authenticated']);
|
||||
unset($_SESSION['account_id']);
|
||||
unset($_SESSION['uid']);
|
||||
unset($_SESSION['visitor_id']);
|
||||
unset($_SESSION['administrator']);
|
||||
unset($_SESSION['cid']);
|
||||
unset($_SESSION['theme']);
|
||||
unset($_SESSION['mobile_theme']);
|
||||
unset($_SESSION['show_mobile']);
|
||||
unset($_SESSION['page_flags']);
|
||||
unset($_SESSION['delegate']);
|
||||
unset($_SESSION['delegate_channel']);
|
||||
unset($_SESSION['my_url']);
|
||||
unset($_SESSION['my_address']);
|
||||
unset($_SESSION['addr']);
|
||||
unset($_SESSION['return_url']);
|
||||
unset($_SESSION['remote_service_class']);
|
||||
unset($_SESSION['remote_hub']);
|
||||
}
|
||||
|
||||
|
||||
|
||||
function new_cookie($time) {
|
||||
$old_sid = session_id();
|
||||
|
||||
|
@ -67,7 +67,8 @@ If you use LetsEncrypt to provide certificates and create a file under
|
||||
please remove or rename the .well-known directory as soon as the certificate is
|
||||
generated. Hubzilla will provide its own handler for ".well-known" services when
|
||||
it is installed, and an existing directory in this location may prevent some of
|
||||
these services from working correctly.
|
||||
these services from working correctly. This should not be a problem with Apache,
|
||||
but may be an issue with nginx or other web server platforms.
|
||||
|
||||
|
||||
1. Requirements
|
||||
|
@ -639,14 +639,13 @@ function profiles_content(&$a) {
|
||||
else
|
||||
$fields = $profile_fields_basic;
|
||||
|
||||
|
||||
$opt_tpl = get_markup_template("profile_hide_friends.tpl");
|
||||
$hide_friends = replace_macros($opt_tpl,array('$field' => array(
|
||||
'hide_friends',
|
||||
t('Hide your contact/friend list from viewers of this profile?'),
|
||||
$r[0]['hide_friends'],
|
||||
'',
|
||||
)));
|
||||
$hide_friends = array(
|
||||
'hide_friends',
|
||||
t('Hide your connections list from viewers of this profile'),
|
||||
$r[0]['hide_friends'],
|
||||
'',
|
||||
array(t('No'),t('Yes'))
|
||||
);
|
||||
|
||||
$q = q("select * from profdef where true");
|
||||
if($q) {
|
||||
@ -672,6 +671,7 @@ function profiles_content(&$a) {
|
||||
$f = 'ymd';
|
||||
|
||||
$is_default = (($r[0]['is_default']) ? 1 : 0);
|
||||
|
||||
$tpl = get_markup_template("profile_edit.tpl");
|
||||
$o .= replace_macros($tpl,array(
|
||||
|
||||
@ -695,23 +695,13 @@ function profiles_content(&$a) {
|
||||
'$exportable' => feature_enabled(local_channel(),'profile_export'),
|
||||
'$lbl_import' => t('Import profile from file'),
|
||||
'$lbl_export' => t('Export profile to file'),
|
||||
'$lbl_profname' => t('Profile Name'),
|
||||
'$lbl_fullname' => t('Your Full Name'),
|
||||
'$lbl_title' => t('Title/Description'),
|
||||
'$lbl_gender' => t('Your Gender'),
|
||||
'$lbl_bd' => t("Birthday"),
|
||||
'$lbl_address' => t('Street Address'),
|
||||
'$lbl_city' => t('Locality/City'),
|
||||
'$lbl_zip' => t('Postal/Zip Code'),
|
||||
'$lbl_country' => t('Country'),
|
||||
'$lbl_region' => t('Region/State'),
|
||||
'$lbl_marital' => t('<span class="heart">♥</span> Marital Status'),
|
||||
'$lbl_with' => t("Who (if applicable)"),
|
||||
'$lbl_ex1' => t('Examples: cathy123, Cathy Williams, cathy@example.com'),
|
||||
'$lbl_howlong' => t('Since [date]'),
|
||||
'$lbl_sexual' => t('Sexual Preference'),
|
||||
'$lbl_homepage' => t('Homepage URL'),
|
||||
'$lbl_hometown' => t('Hometown'),
|
||||
'$lbl_politic' => t('Political Views'),
|
||||
'$lbl_religion' => t('Religious Views'),
|
||||
'$lbl_pubkey' => t('Keywords'),
|
||||
@ -733,31 +723,30 @@ function profiles_content(&$a) {
|
||||
'$disabled' => (($is_default) ? 'onclick="return false;" style="color: #BBBBFF;"' : ''),
|
||||
'$baseurl' => $a->get_baseurl(true),
|
||||
'$profile_id' => $r[0]['id'],
|
||||
'$profile_name' => $r[0]['profile_name'],
|
||||
'$profile_name' => array('profile_name', t('Profile Name'), $r[0]['profile_name'], '', '*'),
|
||||
'$is_default' => $is_default,
|
||||
'$default' => t('This is your default profile.') . EOL . translate_scope(map_scope($channel['channel_r_profile'])),
|
||||
'$advanced' => $advanced,
|
||||
'$name' => $r[0]['name'],
|
||||
'$pdesc' => $r[0]['pdesc'],
|
||||
'$name' => array('name', t('Your Full Name'), $r[0]['name']),
|
||||
'$pdesc' => array('pdesc', t('Title/Description'), $r[0]['pdesc']),
|
||||
'$dob' => dob($r[0]['dob']),
|
||||
'$hide_friends' => $hide_friends,
|
||||
'$address' => $r[0]['address'],
|
||||
'$locality' => $r[0]['locality'],
|
||||
'$region' => $r[0]['region'],
|
||||
'$postal_code' => $r[0]['postal_code'],
|
||||
'$country_name' => $r[0]['country_name'],
|
||||
'$age' => ((intval($r[0]['dob'])) ? '(' . t('Age: ') . age($r[0]['dob'],$a->user['timezone'],$a->user['timezone']) . ')' : ''),
|
||||
'$address' => array('address', t('Street Address'), $r[0]['address']),
|
||||
'$locality' => array('locality', t('Locality/City'), $r[0]['locality']),
|
||||
'$region' => array('region', t('Region/State'), $r[0]['region']),
|
||||
'$postal_code' => array('postal_code', t('Postal/Zip Code'), $r[0]['postal_code']),
|
||||
'$country_name' => array('country', t('Country'), $r[0]['country_name']),
|
||||
'$gender' => gender_selector($r[0]['gender']),
|
||||
'$gender_min' => gender_selector_min($r[0]['gender']),
|
||||
'$gender_min' => gender_selector_min($r[0]['gender']),
|
||||
'$marital' => marital_selector($r[0]['marital']),
|
||||
'$marital_min' => marital_selector_min($r[0]['marital']),
|
||||
'$marital_min' => marital_selector_min($r[0]['marital']),
|
||||
'$with' => $r[0]['with'],
|
||||
'$howlong' => ($r[0]['howlong'] === NULL_DATE ? '' : datetime_convert('UTC',date_default_timezone_get(),$r[0]['howlong'])),
|
||||
'$sexual' => sexpref_selector($r[0]['sexual']),
|
||||
'$sexual_min' => sexpref_selector_min($r[0]['sexual']),
|
||||
'$sexual_min' => sexpref_selector_min($r[0]['sexual']),
|
||||
'$about' => $r[0]['about'],
|
||||
'$homepage' => $r[0]['homepage'],
|
||||
'$hometown' => $r[0]['hometown'],
|
||||
'$hometown' => array('hometown', t('Hometown'), $r[0]['hometown']),
|
||||
'$politic' => $r[0]['politic'],
|
||||
'$religion' => $r[0]['religion'],
|
||||
'$keywords' => $r[0]['keywords'],
|
||||
|
File diff suppressed because it is too large
Load Diff
17
util/udall
Executable file
17
util/udall
Executable file
@ -0,0 +1,17 @@
|
||||
#!/bin/bash
|
||||
if [ ! -d .git ]; then
|
||||
echo Unable to update `pwd`
|
||||
exit
|
||||
fi
|
||||
git pull
|
||||
|
||||
if [ -d extend ] ; then
|
||||
for a in theme addon widget ; do
|
||||
if [ -d $a ]; then
|
||||
for b in `ls extend/$a` ; do
|
||||
echo Updating $b
|
||||
'util/update_'$a'_repo' $b
|
||||
done
|
||||
fi
|
||||
done
|
||||
fi
|
@ -1 +1 @@
|
||||
2016-03-08.1330H
|
||||
2016-03-13.1334H
|
||||
|
@ -1,154 +0,0 @@
|
||||
#profile-edit-default-desc {
|
||||
background: none repeat scroll 0 0 orange;
|
||||
font-weight: bold;
|
||||
margin: 10px;
|
||||
padding: 20px 5px 10px;
|
||||
}
|
||||
|
||||
#profile-edit-clone-link-wrapper {
|
||||
float: left;
|
||||
margin-left: 50px;
|
||||
margin-bottom: 20px;
|
||||
width: 300px;
|
||||
}
|
||||
|
||||
|
||||
#profile-listing-desc, #profile-stuff-link, #profile-listing-new-link-wrapper {
|
||||
margin: 15px 10px 15px 0;
|
||||
}
|
||||
|
||||
#profile-edit-links-end {
|
||||
clear: both;
|
||||
/* margin-bottom: 15px; */
|
||||
}
|
||||
|
||||
.profile-listing-photo {
|
||||
border: none;
|
||||
}
|
||||
|
||||
.profile-edit-submit-wrapper {
|
||||
margin-top: 20px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
#profile-photo-link-select-wrapper {
|
||||
margin-top: 2em;
|
||||
}
|
||||
|
||||
#profile-photo-submit-wrapper {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
#profile-edit-with-label, #profile-edit-howlong-label {
|
||||
|
||||
width: 175px;
|
||||
margin-left: 50px;
|
||||
/* margin-bottom: 20px; */
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
#profile-edit-profile-name-label,
|
||||
#profile-edit-name-label,
|
||||
#profile-edit-pdesc-label,
|
||||
#profile-edit-gender-label,
|
||||
#profile-edit-dob-label,
|
||||
#profile-edit-address-label,
|
||||
#profile-edit-locality-label,
|
||||
#profile-edit-region-label,
|
||||
#profile-edit-postal-code-label,
|
||||
#profile-edit-country-name-label,
|
||||
#profile-edit-marital-label,
|
||||
#profile-edit-sexual-label,
|
||||
#profile-edit-politic-label,
|
||||
#profile-edit-religion-label,
|
||||
#profile-edit-pubkeywords-label,
|
||||
#profile-edit-prvkeywords-label,
|
||||
#profile-edit-homepage-label,
|
||||
#profile-edit-hometown-label {
|
||||
float: left;
|
||||
width: 175px;
|
||||
}
|
||||
|
||||
#profile-edit-profile-name,
|
||||
#profile-edit-name,
|
||||
#profile-edit-pdesc,
|
||||
#gender-select,
|
||||
#profile-edit-dob,
|
||||
#profile-edit-address,
|
||||
#profile-edit-locality,
|
||||
#profile-edit-region,
|
||||
#profile-edit-postal-code,
|
||||
#profile-edit-country-name,
|
||||
#marital-select,
|
||||
#sexual-select,
|
||||
#profile-edit-politic,
|
||||
#profile-edit-religion,
|
||||
#profile-edit-pubkeywords,
|
||||
#profile-edit-prvkeywords,
|
||||
#profile-in-dir-yes,
|
||||
#profile-in-dir-no,
|
||||
#profile-in-netdir-yes,
|
||||
#profile-in-netdir-no,
|
||||
#hide-wall-yes,
|
||||
#hide-wall-no,
|
||||
#hide-friends-yes,
|
||||
#hide-friends-no {
|
||||
float: left;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
|
||||
#profile-edit-pdesc-desc,
|
||||
#profile-edit-pubkeywords-desc,
|
||||
#profile-edit-prvkeywords-desc {
|
||||
float: left;
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
|
||||
#profile-edit-homepage, #profile-edit-hometown {
|
||||
float: left;
|
||||
margin-bottom: 35px;
|
||||
}
|
||||
|
||||
#profile-edit-profile-name-end,
|
||||
#profile-edit-name-end,
|
||||
#profile-edit-pdesc-end,
|
||||
#profile-edit-gender-end,
|
||||
#profile-edit-dob-end,
|
||||
#profile-edit-address-end,
|
||||
#profile-edit-locality-end,
|
||||
#profile-edit-region-end,
|
||||
#profile-edit-postal-code-end,
|
||||
#profile-edit-country-name-end,
|
||||
#profile-edit-marital-end,
|
||||
#profile-edit-sexual-end,
|
||||
#profile-edit-politic-end,
|
||||
#profile-edit-religion-end,
|
||||
#profile-edit-pubkeywords-end,
|
||||
#profile-edit-prvkeywords-end,
|
||||
#profile-edit-homepage-end,
|
||||
#profile-edit-hometown-end,
|
||||
#profile-in-dir-break,
|
||||
#profile-in-dir-end,
|
||||
#profile-in-netdir-break,
|
||||
#profile-in-netdir-end,
|
||||
#hide-wall-break,
|
||||
#hide-wall-end,
|
||||
#hide-friends-break,
|
||||
#hide-friends-end {
|
||||
clear: both;
|
||||
}
|
||||
*/
|
||||
|
||||
/*
|
||||
#gender-select, #marital-select, #sexual-select {
|
||||
width: 220px;
|
||||
}
|
||||
*/
|
||||
|
||||
#profile-edit-profile-name-wrapper .required {
|
||||
color: #FF0000;
|
||||
float: left;
|
||||
}
|
1612
view/de/hmessages.po
1612
view/de/hmessages.po
File diff suppressed because it is too large
Load Diff
@ -36,30 +36,30 @@ $a->strings["Not Found"] = "Nicht gefunden";
|
||||
$a->strings["Page not found."] = "Seite nicht gefunden.";
|
||||
$a->strings["Connect"] = "Verbinden";
|
||||
$a->strings["New window"] = "Neues Fenster";
|
||||
$a->strings["Open the selected location in a different window or browser tab"] = "Öffne die markierte Adresse in einem neuen Browser Fenster oder Tab";
|
||||
$a->strings["Open the selected location in a different window or browser tab"] = "Öffne die markierte Adresse in einem neuen Browserfenster oder Tab";
|
||||
$a->strings["User '%s' deleted"] = "Benutzer '%s' gelöscht";
|
||||
$a->strings["No username found in import file."] = "Kein Benutzername in der Importdatei gefunden.";
|
||||
$a->strings["Unable to create a unique channel address. Import failed."] = "Es war nicht möglich, eine eindeutige Kanal-Adresse zu erzeugen. Der Import ist fehlgeschlagen.";
|
||||
$a->strings["Import completed."] = "Import abgeschlossen.";
|
||||
$a->strings["Not a valid email address"] = "Ungültige E-Mail-Adresse";
|
||||
$a->strings["Your email domain is not among those allowed on this site"] = "Deine E-Mail-Adresse ist dieser Seite nicht erlaubt";
|
||||
$a->strings["Your email domain is not among those allowed on this site"] = "Deine E-Mail-Adresse ist auf dieser Seite nicht erlaubt";
|
||||
$a->strings["Your email address is already registered at this site."] = "Deine E-Mail-Adresse ist auf dieser Seite bereits registriert.";
|
||||
$a->strings["An invitation is required."] = "Eine Einladung wird benötigt";
|
||||
$a->strings["Invitation could not be verified."] = "Die Einladung konnte nicht bestätigt werden";
|
||||
$a->strings["An invitation is required."] = "Eine Einladung wird benötigt.";
|
||||
$a->strings["Invitation could not be verified."] = "Die Einladung konnte nicht bestätigt werden.";
|
||||
$a->strings["Please enter the required information."] = "Bitte gib die benötigten Informationen ein.";
|
||||
$a->strings["Failed to store account information."] = "Speichern der Account-Informationen fehlgeschlagen";
|
||||
$a->strings["Failed to store account information."] = "Speichern der Nutzerkontodaten fehlgeschlagen.";
|
||||
$a->strings["Registration confirmation for %s"] = "Registrierungsbestätigung für %s";
|
||||
$a->strings["Registration request at %s"] = "Registrierungsanfrage auf %s";
|
||||
$a->strings["Administrator"] = "Administrator";
|
||||
$a->strings["your registration password"] = "Dein Registrierungspasswort";
|
||||
$a->strings["Registration details for %s"] = "Registrierungsdetails für %s";
|
||||
$a->strings["Account approved."] = "Account bestätigt.";
|
||||
$a->strings["Registration revoked for %s"] = "Registrierung für %s widerrufen";
|
||||
$a->strings["Account verified. Please login."] = "Konto geprüft. Bitte melde Dich an!";
|
||||
$a->strings["Account approved."] = "Nutzerkonto bestätigt.";
|
||||
$a->strings["Registration revoked for %s"] = "Registrierung für %s wurde widerrufen";
|
||||
$a->strings["Account verified. Please login."] = "Nutzerkonto wurde bestätigt. Bitte melde Dich an!";
|
||||
$a->strings["Click here to upgrade."] = "Klicke hier, um das Upgrade durchzuführen.";
|
||||
$a->strings["This action exceeds the limits set by your subscription plan."] = "Diese Aktion überschreitet die Grenzen Ihres Abonnements.";
|
||||
$a->strings["This action is not available under your subscription plan."] = "Diese Aktion ist in Ihrem Abonnement nicht verfügbar.";
|
||||
$a->strings["Visible to your default audience"] = "Standard-Sichtbarkeit";
|
||||
$a->strings["Visible to your default audience"] = "Standard-Sichtbarkeit gemäß Kanaleinstellungen";
|
||||
$a->strings["Show"] = "Anzeigen";
|
||||
$a->strings["Don't show"] = "Nicht anzeigen";
|
||||
$a->strings["Other networks and post services"] = "Andere Netzwerke und Platformen";
|
||||
@ -96,26 +96,11 @@ $a->strings["Random Channel"] = "Zufälliger Kanal";
|
||||
$a->strings["Invite"] = "Einladen";
|
||||
$a->strings["Features"] = "Funktionen";
|
||||
$a->strings["Language"] = "Sprache";
|
||||
$a->strings["Post"] = "Beitrag";
|
||||
$a->strings["Post"] = "Beitrag schreiben";
|
||||
$a->strings["Profile Photo"] = "Profilfoto";
|
||||
$a->strings["Update"] = "Aktualisieren";
|
||||
$a->strings["Install"] = "Installieren";
|
||||
$a->strings["Purchase"] = "Kaufen";
|
||||
$a->strings["Item was not found."] = "Beitrag wurde nicht gefunden.";
|
||||
$a->strings["No source file."] = "Keine Quelldatei.";
|
||||
$a->strings["Cannot locate file to replace"] = "Kann Datei zum Ersetzen nicht finden";
|
||||
$a->strings["Cannot locate file to revise/update"] = "Kann Datei zum Prüfen/Aktualisieren nicht finden";
|
||||
$a->strings["File exceeds size limit of %d"] = "Datei überschreitet das Größen-Limit von %d";
|
||||
$a->strings["You have reached your limit of %1$.0f Mbytes attachment storage."] = "Die Größe Deiner Datei-Anhänge hat das Maximum von %1$.0f MByte erreicht.";
|
||||
$a->strings["File upload failed. Possible system limit or action terminated."] = "Datei-Upload fehlgeschlagen. Mögliche Systembegrenzung oder abgebrochener Prozess.";
|
||||
$a->strings["Stored file could not be verified. Upload failed."] = "Gespeichert Datei konnte nicht verifiziert werden. Upload abgebrochen.";
|
||||
$a->strings["Path not available."] = "Pfad nicht verfügbar.";
|
||||
$a->strings["Empty pathname"] = "Leere Pfadangabe";
|
||||
$a->strings["duplicate filename or path"] = "doppelter Dateiname oder Pfad";
|
||||
$a->strings["Path not found."] = "Pfad nicht gefunden.";
|
||||
$a->strings["mkdir failed."] = "mkdir fehlgeschlagen.";
|
||||
$a->strings["database storage failed."] = "Speichern in der Datenbank fehlgeschlagen.";
|
||||
$a->strings["Empty path"] = "Leere Pfadangabe";
|
||||
$a->strings["Logged out."] = "Ausgeloggt.";
|
||||
$a->strings["Failed authentication"] = "Authentifizierung fehlgeschlagen";
|
||||
$a->strings["Login failed."] = "Login fehlgeschlagen.";
|
||||
@ -125,25 +110,12 @@ $a->strings["\$Projectname event notification:"] = "\$Projectname-Terminbenachri
|
||||
$a->strings["Starts:"] = "Beginnt:";
|
||||
$a->strings["Finishes:"] = "Endet:";
|
||||
$a->strings["Location:"] = "Ort:";
|
||||
$a->strings["Image/photo"] = "Bild/Foto";
|
||||
$a->strings["Encrypted content"] = "Verschlüsselter Inhalt";
|
||||
$a->strings["Install %s element: "] = "Element %s installieren: ";
|
||||
$a->strings["This post contains an installable %s element, however you lack permissions to install it on this site."] = "Dieser Beitrag beinhaltet ein installierbares %s Element, aber Du hast nicht die nötigen Rechte, um es auf diesem Hub zu installieren.";
|
||||
$a->strings["webpage"] = "Webseite";
|
||||
$a->strings["layout"] = "Layout";
|
||||
$a->strings["block"] = "Block";
|
||||
$a->strings["menu"] = "Menü";
|
||||
$a->strings["%1\$s wrote the following %2\$s %3\$s"] = "%1\$s schrieb den folgenden %2\$s %3\$s";
|
||||
$a->strings["post"] = "Beitrag";
|
||||
$a->strings["Different viewers will see this text differently"] = "Verschiedene Betrachter werden diesen Text unterschiedlich sehen";
|
||||
$a->strings["$1 spoiler"] = "$1 Spoiler";
|
||||
$a->strings["$1 wrote:"] = "$1 schrieb:";
|
||||
$a->strings["%1\$s's bookmarks"] = "%1\$ss Lesezeichen";
|
||||
$a->strings["Missing room name"] = "Der Chatraum hat keinen Namen";
|
||||
$a->strings["Duplicate room name"] = "Name des Chatraums bereits vergeben";
|
||||
$a->strings["Invalid room specifier."] = "Ungültiger Raumbezeichner.";
|
||||
$a->strings["Room not found."] = "Chatraum konnte nicht gefunden werden.";
|
||||
$a->strings["Room is full"] = "Der Raum ist voll";
|
||||
$a->strings["Room is full"] = "Der Chatraum ist voll";
|
||||
$a->strings["Default"] = "Standard";
|
||||
$a->strings["%d invitation available"] = array(
|
||||
0 => "%d Einladung verfügbar",
|
||||
@ -340,6 +312,19 @@ $a->strings["Title"] = "Titel";
|
||||
$a->strings["Created"] = "Erstellt";
|
||||
$a->strings["Edited"] = "Geändert";
|
||||
$a->strings["Profile Photos"] = "Profilfotos";
|
||||
$a->strings["Image/photo"] = "Bild/Foto";
|
||||
$a->strings["Encrypted content"] = "Verschlüsselter Inhalt";
|
||||
$a->strings["Install %s element: "] = "Element %s installieren: ";
|
||||
$a->strings["This post contains an installable %s element, however you lack permissions to install it on this site."] = "Dieser Beitrag beinhaltet ein installierbares %s Element, aber Du hast nicht die nötigen Rechte, um es auf diesem Hub zu installieren.";
|
||||
$a->strings["webpage"] = "Webseite";
|
||||
$a->strings["layout"] = "Layout";
|
||||
$a->strings["block"] = "Block";
|
||||
$a->strings["menu"] = "Menü";
|
||||
$a->strings["%1\$s wrote the following %2\$s %3\$s"] = "%1\$s schrieb den folgenden %2\$s %3\$s";
|
||||
$a->strings["post"] = "Beitrag";
|
||||
$a->strings["Different viewers will see this text differently"] = "Verschiedene Betrachter werden diesen Text unterschiedlich sehen";
|
||||
$a->strings["$1 spoiler"] = "$1 Spoiler";
|
||||
$a->strings["$1 wrote:"] = "$1 schrieb:";
|
||||
$a->strings["Male"] = "Männlich";
|
||||
$a->strings["Female"] = "Weiblich";
|
||||
$a->strings["Currently Male"] = "Momentan männlich";
|
||||
@ -453,6 +438,21 @@ $a->strings["Invalid data packet"] = "Ungültiges Datenpaket";
|
||||
$a->strings["Unable to verify channel signature"] = "Konnte die Signatur des Kanals nicht verifizieren";
|
||||
$a->strings["Unable to verify site signature for %s"] = "Kann die Signatur der Seite von %s nicht verifizieren";
|
||||
$a->strings["invalid target signature"] = "Ungültige Signatur des Ziels";
|
||||
$a->strings["Item was not found."] = "Beitrag wurde nicht gefunden.";
|
||||
$a->strings["No source file."] = "Keine Quelldatei.";
|
||||
$a->strings["Cannot locate file to replace"] = "Kann Datei zum Ersetzen nicht finden";
|
||||
$a->strings["Cannot locate file to revise/update"] = "Kann Datei zum Prüfen/Aktualisieren nicht finden";
|
||||
$a->strings["File exceeds size limit of %d"] = "Datei überschreitet das Größen-Limit von %d";
|
||||
$a->strings["You have reached your limit of %1$.0f Mbytes attachment storage."] = "Die Größe Deiner Datei-Anhänge hat das Maximum von %1$.0f MByte erreicht.";
|
||||
$a->strings["File upload failed. Possible system limit or action terminated."] = "Datei-Upload fehlgeschlagen. Mögliche Systembegrenzung oder abgebrochener Prozess.";
|
||||
$a->strings["Stored file could not be verified. Upload failed."] = "Gespeichert Datei konnte nicht verifiziert werden. Upload abgebrochen.";
|
||||
$a->strings["Path not available."] = "Pfad nicht verfügbar.";
|
||||
$a->strings["Empty pathname"] = "Leere Pfadangabe";
|
||||
$a->strings["duplicate filename or path"] = "doppelter Dateiname oder Pfad";
|
||||
$a->strings["Path not found."] = "Pfad nicht gefunden.";
|
||||
$a->strings["mkdir failed."] = "mkdir fehlgeschlagen.";
|
||||
$a->strings["database storage failed."] = "Speichern in der Datenbank fehlgeschlagen.";
|
||||
$a->strings["Empty path"] = "Leere Pfadangabe";
|
||||
$a->strings["Frequently"] = "Häufig";
|
||||
$a->strings["Hourly"] = "Stündlich";
|
||||
$a->strings["Twice daily"] = "Zwei Mal am Tag";
|
||||
@ -502,13 +502,13 @@ $a->strings["Navigation Channel Select"] = "Kanal-Auswahl in der Navigationsleis
|
||||
$a->strings["Change channels directly from within the navigation dropdown menu"] = "Ermöglicht den direkten Wechsel zu anderen Kanälen über das Navigationsmenü";
|
||||
$a->strings["Photo Location"] = "Aufnahmeort";
|
||||
$a->strings["If location data is available on uploaded photos, link this to a map."] = "Verlinkt den Aufnahmeort von Fotos (falls verfügbar) auf einer Karte";
|
||||
$a->strings["Smart Birthdays"] = "Smarte Geburtstage";
|
||||
$a->strings["Make birthday events timezone aware in case your friends are scattered across the planet."] = "Stellt für Geburtstage einen Zeitzonenbezug her, falls deine Freunde über den ganzen Planeten verstreut sind.";
|
||||
$a->strings["Expert Mode"] = "Expertenmodus";
|
||||
$a->strings["Enable Expert Mode to provide advanced configuration options"] = "Aktiviert den Expertenmodus, der fortgeschrittene Konfigurationsoptionen zur Verfügung stellt";
|
||||
$a->strings["Premium Channel"] = "Premium-Kanal";
|
||||
$a->strings["Allows you to set restrictions and terms on those that connect with your channel"] = "Ermöglicht es, Einschränkungen und Bedingungen für Verbindungen dieses Kanals festzulegen";
|
||||
$a->strings["Post Composition Features"] = "Nachbearbeitungsfunktionen";
|
||||
$a->strings["Use Markdown"] = "Markdown benutzen";
|
||||
$a->strings["Allow use of \"Markdown\" to format posts"] = "Erlaubt die Verwendung von Markdown-Syntax zur Formatierung von Beiträgen";
|
||||
$a->strings["Large Photos"] = "Große Fotos";
|
||||
$a->strings["Include large (1024px) photo thumbnails in posts. If not enabled, use small (640px) photo thumbnails"] = "Große Vorschaubilder (1024px) in Beiträgen anzeigen. Falls nicht aktiviert, werden kleine Vorschaubilder (640px) verwendet.";
|
||||
$a->strings["Channel Sources"] = "Kanal-Quellen";
|
||||
@ -600,6 +600,7 @@ $a->strings["Chat Rooms"] = "Chaträume";
|
||||
$a->strings["Bookmarked Chatrooms"] = "Gespeicherte Chatrooms";
|
||||
$a->strings["Suggested Chatrooms"] = "Chatraum-Vorschläge";
|
||||
$a->strings["photo/image"] = "Foto/Bild";
|
||||
$a->strings["Click to show more"] = "Klick, um mehr anzuzeigen";
|
||||
$a->strings["Rating Tools"] = "Bewertungswerkzeuge";
|
||||
$a->strings["Rate Me"] = "Bewerte mich";
|
||||
$a->strings["View Ratings"] = "Bewertungen ansehen";
|
||||
@ -618,7 +619,7 @@ $a->strings["Security"] = "Sicherheit";
|
||||
$a->strings["Plugins"] = "Plug-Ins";
|
||||
$a->strings["Themes"] = "Themes";
|
||||
$a->strings["Inspect queue"] = "Warteschlange kontrollieren";
|
||||
$a->strings["Profile Config"] = "Profilkonfiguration";
|
||||
$a->strings["Profile Fields"] = "Profil Felder";
|
||||
$a->strings["DB updates"] = "DB-Aktualisierungen";
|
||||
$a->strings["Logs"] = "Protokolle";
|
||||
$a->strings["Plugin Features"] = "Plug-In Funktionen";
|
||||
@ -742,11 +743,9 @@ $a->strings["Default Profile"] = "Standard-Profil";
|
||||
$a->strings["Requested channel is not available."] = "Angeforderte Kanal nicht verfügbar.";
|
||||
$a->strings["Requested profile is not available."] = "Erwünschte Profil ist nicht verfügbar.";
|
||||
$a->strings["Change profile photo"] = "Profilfoto ändern";
|
||||
$a->strings["Profiles"] = "Profile";
|
||||
$a->strings["Manage/edit profiles"] = "Profile verwalten/bearbeiten";
|
||||
$a->strings["Create New Profile"] = "Neues Profil erstellen";
|
||||
$a->strings["Profile Image"] = "Profilfoto:";
|
||||
$a->strings["visible to everybody"] = "sichtbar für jeden";
|
||||
$a->strings["Visible to everybody"] = "Für jeden sichtbar";
|
||||
$a->strings["Edit visibility"] = "Sichtbarkeit bearbeiten";
|
||||
$a->strings["Gender:"] = "Geschlecht:";
|
||||
$a->strings["Status:"] = "Status:";
|
||||
@ -1315,7 +1314,6 @@ $a->strings["Nothing to import."] = "Nichts zu importieren.";
|
||||
$a->strings["Unable to download data from old server"] = "Daten können vom alten Server nicht heruntergeladen werden";
|
||||
$a->strings["Imported file is empty."] = "Die importierte Datei ist leer.";
|
||||
$a->strings["Warning: Database versions differ by %1\$d updates."] = "Achtung: Datenbankversionen unterscheiden sich um %1\$d Aktualisierungen.";
|
||||
$a->strings["Server platform is not compatible. Operation not permitted."] = "Die Serverplattform ist inkompatibel. Dieser Vorgang ist daher nicht erlaubt.";
|
||||
$a->strings["No channel. Import failed."] = "Kein Kanal. Import fehlgeschlagen.";
|
||||
$a->strings["You must be logged in to use this feature."] = "Du musst angemeldet sein um diese Funktion zu nutzen.";
|
||||
$a->strings["Import Channel"] = "Kanal importieren";
|
||||
@ -1638,7 +1636,7 @@ $a->strings["Expiration period in days for imported (grid/network) content"] = "
|
||||
$a->strings["0 for no expiration of imported content"] = "0 = keine Löschung importierter Inhalte";
|
||||
$a->strings["Off"] = "Aus";
|
||||
$a->strings["On"] = "An";
|
||||
$a->strings["Lock feature %s"] = "Feature festlegen %s";
|
||||
$a->strings["Lock feature %s"] = "Blockiere die Funktion %s";
|
||||
$a->strings["Manage Additional Features"] = "Zusätzliche Funktionen verwalten";
|
||||
$a->strings["No server found"] = "Kein Server gefunden";
|
||||
$a->strings["ID"] = "ID";
|
||||
@ -1756,6 +1754,12 @@ $a->strings["Help text"] = "Hilfetext";
|
||||
$a->strings["Additional info (optional)"] = "Zusätzliche Informationen (optional)";
|
||||
$a->strings["Field definition not found"] = "Feld-Definition nicht gefunden";
|
||||
$a->strings["Edit Profile Field"] = "Profilfeld bearbeiten";
|
||||
$a->strings["Basic Profile Fields"] = "Notwendige Profil Felder";
|
||||
$a->strings["Advanced Profile Fields"] = "Erweiterte Profil Felder";
|
||||
$a->strings["(In addition to basic fields)"] = "(zusätzlich zu notwendige Felder)";
|
||||
$a->strings["All available fields"] = "Alle verfügbaren Felder";
|
||||
$a->strings["Custom Fields"] = "Benutzerdefinierte Felder";
|
||||
$a->strings["Create Custom Field"] = "Erstelle benutzerdefiniertes Feld";
|
||||
$a->strings["Poke somebody"] = "Jemanden anstupsen";
|
||||
$a->strings["Poke/Prod"] = "Anstupsen/Knuffen";
|
||||
$a->strings["Poke, prod or do other things to somebody"] = "Jemanden anstupsen, knuffen oder sonstiges";
|
||||
@ -1799,29 +1803,29 @@ $a->strings["Profile updated."] = "Profil aktualisiert.";
|
||||
$a->strings["Hide your contact/friend list from viewers of this profile?"] = "Deine Kontaktliste vor Betrachtern dieses Profils verbergen?";
|
||||
$a->strings["Edit Profile Details"] = "Bearbeite Profil-Details";
|
||||
$a->strings["View this profile"] = "Dieses Profil ansehen";
|
||||
$a->strings["Change Cover Photo"] = "Titelbild ändern";
|
||||
$a->strings["Change Profile Photo"] = "Profilfoto ändern";
|
||||
$a->strings["Create a new profile using these settings"] = "Neues Profil anlegen und diese Einstellungen übernehmen";
|
||||
$a->strings["Clone this profile"] = "Dieses Profil klonen";
|
||||
$a->strings["Delete this profile"] = "Dieses Profil löschen";
|
||||
$a->strings["Import profile from file"] = "Profil aus einer Datei importieren";
|
||||
$a->strings["Export profile to file"] = "Profil in eine Datei exportieren";
|
||||
$a->strings["Profile Name:"] = "Profilname:";
|
||||
$a->strings["Your Full Name:"] = "Dein voller Name:";
|
||||
$a->strings["Title/Description:"] = "Titel/Beschreibung:";
|
||||
$a->strings["Your Gender:"] = "Dein Geschlecht:";
|
||||
$a->strings["Birthday :"] = "Geburtstag:";
|
||||
$a->strings["Street Address:"] = "Straße und Hausnummer:";
|
||||
$a->strings["Locality/City:"] = "Wohnort:";
|
||||
$a->strings["Postal/Zip Code:"] = "Postleitzahl:";
|
||||
$a->strings["Country:"] = "Land:";
|
||||
$a->strings["Region/State:"] = "Region/Bundesstaat:";
|
||||
$a->strings["<span class=\"heart\">♥</span> Marital Status:"] = "<span class=\"heart\">♥</span> Beziehungsstatus:";
|
||||
$a->strings["Who: (if applicable)"] = "Wer: (falls anwendbar)";
|
||||
$a->strings["Profile Name"] = "Profilname";
|
||||
$a->strings["Your Full Name"] = "Dein voller Name";
|
||||
$a->strings["Title/Description"] = "Titel/Beschreibung";
|
||||
$a->strings["Your Gender"] = "Dein Geschlecht";
|
||||
$a->strings["Birthday"] = "Geburtstag";
|
||||
$a->strings["Street Address"] = "Straße und Hausnummer";
|
||||
$a->strings["Locality/City"] = "Wohnort";
|
||||
$a->strings["Postal/Zip Code"] = "Postleitzahl";
|
||||
$a->strings["Country"] = "Land";
|
||||
$a->strings["Region/State"] = "Region/Bundesstaat";
|
||||
$a->strings["<span class=\"heart\">♥</span> Marital Status"] = "<span class=\"heart\">♥</span> Beziehungsstatus";
|
||||
$a->strings["Who (if applicable)"] = "Wer (falls anwendbar)";
|
||||
$a->strings["Examples: cathy123, Cathy Williams, cathy@example.com"] = "Beispiele: cathy123, Cathy Williams, cathy@example.com";
|
||||
$a->strings["Since [date]:"] = "Seit [Datum]:";
|
||||
$a->strings["Homepage URL:"] = "Homepage URL:";
|
||||
$a->strings["Religious Views:"] = "Religiöse Ansichten:";
|
||||
$a->strings["Keywords:"] = "Schlüsselwörter:";
|
||||
$a->strings["Since [date]"] = "Seit [Datum]";
|
||||
$a->strings["Hometown"] = "Heimatort";
|
||||
$a->strings["Religious Views"] = "Religiöse Ansichten";
|
||||
$a->strings["Example: fishing photography software"] = "Beispiel: Angeln Fotografie Software";
|
||||
$a->strings["Used in directory listings"] = "Wird in Verzeichnis-Auflistungen verwendet";
|
||||
$a->strings["Tell us about yourself..."] = "Erzähle uns ein wenig von Dir …";
|
||||
|
@ -21,32 +21,19 @@
|
||||
<div id="profile-edit-links-end"></div>
|
||||
|
||||
{{if $is_default}}
|
||||
<p class="section-content-info-wrapper">{{$default}}</p>
|
||||
<div class="section-content-info-wrapper">{{$default}}</div>
|
||||
{{/if}}
|
||||
|
||||
|
||||
<div id="profile-edit-wrapper" >
|
||||
<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
|
||||
|
||||
<div id="profile-edit-profile-name-wrapper" class="form-group field">
|
||||
<label id="profile-edit-profile-name-label" for="profile-edit-profile-name" ><span class="required">*</span> {{$lbl_profname}} </label>
|
||||
<input type="text" class="form-control" size="32" name="profile_name" id="profile-edit-profile-name" value="{{$profile_name}}" />
|
||||
</div>
|
||||
<div id="profile-edit-profile-name-end"></div>
|
||||
|
||||
<div id="profile-edit-name-wrapper" class="form-group field" >
|
||||
<label id="profile-edit-name-label" for="profile-edit-name" >{{$lbl_fullname}} </label>
|
||||
<input type="text" class="form-control" size="32" name="name" id="profile-edit-name" value="{{$name}}" />
|
||||
</div>
|
||||
<div id="profile-edit-name-end"></div>
|
||||
{{include file="field_input.tpl" field=$profile_name}}
|
||||
|
||||
{{include file="field_input.tpl" field=$name}}
|
||||
|
||||
{{if $fields.pdesc}}
|
||||
<div id="profile-edit-pdesc-wrapper" class="form-group field" >
|
||||
<label id="profile-edit-pdesc-label" for="profile-edit-pdesc" >{{$lbl_title}} </label>
|
||||
<input type="text" class="form-control" size="32" name="pdesc" id="profile-edit-pdesc" value="{{$pdesc}}" />
|
||||
</div>
|
||||
<div id="profile-edit-pdesc-end"></div>
|
||||
{{include file="field_input.tpl" field=$pdesc}}
|
||||
{{/if}}
|
||||
|
||||
{{if $fields.gender}}
|
||||
@ -62,74 +49,44 @@
|
||||
{{/if}}
|
||||
|
||||
{{if $fields.dob}}
|
||||
<div id="profile-edit-dob-wrapper" class="form-group field" >
|
||||
<label id="profile-edit-dob-label" for="dob-select" >{{$lbl_bd}} </label>
|
||||
<div id="profile-edit-dob" >
|
||||
{{$dob}} {{$age}}
|
||||
</div>
|
||||
</div>
|
||||
<div id="profile-edit-dob-end"></div>
|
||||
{{$dob}}
|
||||
{{/if}}
|
||||
|
||||
{{$hide_friends}}
|
||||
{{include file="field_checkbox.tpl" field=$hide_friends}}
|
||||
|
||||
<div class="profile-edit-submit-wrapper" >
|
||||
<input type="submit" name="submit" class="profile-edit-submit-button" value="{{$submit}}" />
|
||||
<div class="form-group" >
|
||||
<button type="submit" name="submit" class="btn btn-primary" value="{{$submit}}">{{$submit}}</button>
|
||||
</div>
|
||||
<div class="profile-edit-submit-end"></div>
|
||||
<div class="clear"></div>
|
||||
|
||||
{{if $fields.address}}
|
||||
<div id="profile-edit-address-wrapper" class="form-group field" >
|
||||
<label id="profile-edit-address-label" for="profile-edit-address" >{{$lbl_address}} </label>
|
||||
<input type="text" class="form-control" size="32" name="address" id="profile-edit-address" value="{{$address}}" />
|
||||
</div>
|
||||
<div id="profile-edit-address-end"></div>
|
||||
{{include file="field_input.tpl" field=$address}}
|
||||
{{/if}}
|
||||
|
||||
{{if $fields.locality}}
|
||||
<div id="profile-edit-locality-wrapper" class="form-group field" >
|
||||
<label id="profile-edit-locality-label" for="profile-edit-locality" >{{$lbl_city}} </label>
|
||||
<input type="text" class="form-control" size="32" name="locality" id="profile-edit-locality" value="{{$locality}}" />
|
||||
</div>
|
||||
<div id="profile-edit-locality-end"></div>
|
||||
{{include file="field_input.tpl" field=$locality}}
|
||||
{{/if}}
|
||||
|
||||
{{if $fields.postal_code}}
|
||||
<div id="profile-edit-postal-code-wrapper" class="form-group field" >
|
||||
<label id="profile-edit-postal-code-label" for="profile-edit-postal-code" >{{$lbl_zip}} </label>
|
||||
<input type="text" class="form-control" size="32" name="postal_code" id="profile-edit-postal-code" value="{{$postal_code}}" />
|
||||
</div>
|
||||
<div id="profile-edit-postal-code-end"></div>
|
||||
{{include file="field_input.tpl" field=$postal_code}}
|
||||
{{/if}}
|
||||
|
||||
{{if $fields.region}}
|
||||
<div id="profile-edit-region-wrapper" class="form-group field" >
|
||||
<label id="profile-edit-region-label" for="profile-edit-region" >{{$lbl_region}} </label>
|
||||
<input type="text" class="form-control" size="32" name="region" id="profile-edit-region" value="{{$region}}" />
|
||||
</div>
|
||||
<div id="profile-edit-region-end"></div>
|
||||
{{include file="field_input.tpl" field=$region}}
|
||||
{{/if}}
|
||||
|
||||
{{if $fields.country_name}}
|
||||
<div id="profile-edit-country-name-wrapper" class="form-group field" >
|
||||
<label id="profile-edit-country-name-label" for="profile-edit-country-name" >{{$lbl_country}} </label>
|
||||
<input type="text" class="form-control" size="32" name="country_name" id="profile-edit-country-name" value="{{$country_name}}" />
|
||||
</div>
|
||||
<div id="profile-edit-country-name-end"></div>
|
||||
{{include file="field_input.tpl" field=$country_name}}
|
||||
{{/if}}
|
||||
|
||||
{{if $fields.hometown}}
|
||||
<div id="profile-edit-hometown-wrapper" class="form-group field" >
|
||||
<label id="profile-edit-hometown-label" for="profile-edit-hometown" >{{$lbl_hometown}} </label>
|
||||
<input type="text" class="form-control" size="32" name="hometown" id="profile-edit-hometown" value="{{$hometown}}" />
|
||||
</div>
|
||||
<div id="profile-edit-hometown-end"></div>
|
||||
{{include file="field_input.tpl" field=$hometown}}
|
||||
{{/if}}
|
||||
|
||||
<div class="profile-edit-submit-wrapper" class="form-group field" >
|
||||
<input type="submit" name="submit" class="profile-edit-submit-button" value="{{$submit}}" />
|
||||
<div class="form-group" >
|
||||
<button type="submit" name="submit" class="btn btn-primary" value="{{$submit}}">{{$submit}}</button>
|
||||
</div>
|
||||
<div class="profile-edit-submit-end"></div>
|
||||
<div class="clear"></div>
|
||||
|
||||
{{if $fields.marital }}
|
||||
<div id="profile-edit-marital-wrapper" class="form-group field" >
|
||||
@ -141,19 +98,25 @@
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
|
||||
{{if $fields.with}}
|
||||
<div class="form-group">
|
||||
<label id="profile-edit-with-label" for="profile-edit-with" > {{$lbl_with}} </label>
|
||||
<input type="text" class="form-control" size="32" name="with" id="profile-edit-with" title="{{$lbl_ex1}}" value="{{$with}}" />
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
{{if $fields.howlong}}
|
||||
<div class="form-group">
|
||||
<label id="profile-edit-howlong-label" for="profile-edit-howlong" > {{$lbl_howlong}} </label>
|
||||
<input type="text" class="form-control" size="32" name="howlong" id="profile-edit-howlong" title="{{$lbl_howlong}}" value="{{$howlong}}" />
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
{{/if}}
|
||||
<div id="profile-edit-marital-end"></div>
|
||||
{{/if}}
|
||||
<br /><br />
|
||||
|
||||
{{if $fields.homepage}}
|
||||
<div id="profile-edit-homepage-wrapper" class="form-group field" >
|
||||
<label id="profile-edit-homepage-label" for="profile-edit-homepage" >{{$lbl_homepage}} </label>
|
||||
|
@ -1,20 +0,0 @@
|
||||
{{include file="field_checkbox.tpl"}}
|
||||
|
||||
{{*
|
||||
<p id="hide-friends-text">
|
||||
{{$desc}}
|
||||
</p>
|
||||
<div id="hide-friends-yes-wrapper">
|
||||
<label id="hide-friends-yes-label" for="hide-friends-yes">{{$yes_str}}</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_str}}</label>
|
||||
<input type="radio" name="hide-friends" id="hide-friends-no" {{$no_selected}} value="0" />
|
||||
|
||||
<div id="hide-friends-end"></div>
|
||||
</div>
|
||||
*}}
|
Reference in New Issue
Block a user