commit
3e9b6a330d
94
.openshift/README.md
Normal file
94
.openshift/README.md
Normal file
@ -0,0 +1,94 @@
|
||||
#Hubzilla on OpenShift
|
||||
You will notice a new .openshift folder when you fetch from upstream, i.e. from https://github.com/redmatrix/hubzilla.git , which contains a deploy script to set up Hubzilla on OpenShift.
|
||||
|
||||
Create an account on OpenShift, then use the registration e-mail and password to create your first Hubzilla instance. Install git and RedHat's command line tools - rhc - if you have not already done so.
|
||||
|
||||
```
|
||||
rhc app-create your_app_name php-5.4 mysql-5.5 cron phpmyadmin --namespace your_domain --from-code https://github.com/redmatrix/hubzilla.git -l your@email.address -p your_account_password
|
||||
```
|
||||
|
||||
Make a note of the database username and password OpenShift creates for your instance, and use these at https://your_app_name-your_domain.rhcloud.com/ to complete the setup.
|
||||
|
||||
NOTE: PostgreSQL is NOT supported by the deploy script yet.
|
||||
|
||||
Update
|
||||
To update, consider your own workflow first. I have forked Hubzilla code into my GitHub account to be able to try things out, this remote repo is called origin. Here is how I fetch new code from upstream, merge into my local repo, then push the updated code both into origin and the remote repo called openshift.
|
||||
|
||||
```
|
||||
git fetch upstream;git checkout master;git merge upstream/master;git push origin;git push openshift HEAD
|
||||
```
|
||||
|
||||
##Administration
|
||||
Symptoms of need for MySQL database administration are:
|
||||
- you can visit your domain and see the Hubzilla frontpage, but trying to login throws you back to login. This can mean your session table is marked as crashed.
|
||||
- you can login, but your channel posts are not visible. This can mean your item table is marked as crashed.
|
||||
- you can login and you can see your channel posts, but apparently nobody is getting your posts, comments, likes and so on. This can mean your outq table is marked as crashed.
|
||||
|
||||
You can check your OpenShift logs by doing
|
||||
|
||||
```
|
||||
rhc tail -a your_app_name -n your_domain -l your@email.address -p your_account_password
|
||||
```
|
||||
|
||||
and you might be able to confirm the above suspicions about crashed tables, or other problems you need to fix.
|
||||
|
||||
###How to fix crashed tables in MySQL
|
||||
Using MySQL and the MyISAM database engine can result in table indexes coming out of sync, and you have at least two options for fixing tables marked as crashed.
|
||||
- Use the database username and password OpenShift creates for your instance at https://your_app_name-your_domain.rhcloud.com/phpmyadmin/ to login via the web into your phpMyAdmin web interface, click your database in the left column, in the right column scroll down to the bottom of the list of tables and click the checkbox for marking all tables, then select Check tables from the drop down menu. This will check the tables for problems, and you can then checkmark only those tables with problems, and select Repair table from the same drop down menu at the bottom.
|
||||
- You can login to your instance with SSH - see OpenShift for details - then
|
||||
|
||||
```
|
||||
cd mysql/data/your_database
|
||||
myisamchk -r *.MYI
|
||||
```
|
||||
|
||||
or if you get
|
||||
|
||||
```
|
||||
Can't create new tempfile
|
||||
```
|
||||
|
||||
check your OpenShift's gear quota with
|
||||
|
||||
```
|
||||
quota -gus
|
||||
```
|
||||
|
||||
and if you are short on space, then locally (not SSH) do
|
||||
|
||||
```
|
||||
rhc app-tidy your_app_name -l your_login -p your_password
|
||||
```
|
||||
|
||||
to have rhc delete temporary files and OpenShift logs to free space first, then check the size of your local repo dir and execute
|
||||
|
||||
```
|
||||
git gc
|
||||
```
|
||||
|
||||
against it and check the size again, and then to minimize your remote repo connect via SSH to your application gear and execute the same command against it by changing to the remote repo directory - your repo should be in
|
||||
|
||||
```
|
||||
~/git/your_app_name.git
|
||||
```
|
||||
|
||||
(if not, do find -size +1M to find it), then do
|
||||
|
||||
```
|
||||
cd ~/mysql/data/yourdatabase
|
||||
myisamchk -r -v -f*.MYI
|
||||
```
|
||||
|
||||
and hopefully your database tables are now okay.
|
||||
|
||||
##NOTES
|
||||
Note 1: definitely DO turn off feeds and discovery by default if you are on the Free or Bronze plan on OpenShift with a single 1Gb gear by visiting https://your-app-name.rhcloud.com/admin/site when logged in as administrator of your Hubzilla site.
|
||||
Note 2: DO add the above defaults into the deploy script.
|
||||
Note 3: DO add git gc to the deploy script to clean up git.
|
||||
Note 4: MAYBE DO add myisamchk - only checking? to the end of the deploy script.
|
||||
|
||||
The OpenShift `php` cartridge documentation can be found at:
|
||||
http://openshift.github.io/documentation/oo_cartridge_guide.html#php
|
||||
|
||||
For information about .openshift directory, consult the documentation:
|
||||
http://openshift.github.io/documentation/oo_user_guide.html#the-openshift-directory
|
3
.openshift/action_hooks/README.md
Normal file
3
.openshift/action_hooks/README.md
Normal file
@ -0,0 +1,3 @@
|
||||
For information about action hooks, consult the documentation:
|
||||
|
||||
http://openshift.github.io/documentation/oo_user_guide.html#action-hooks
|
185
.openshift/action_hooks/deploy
Executable file
185
.openshift/action_hooks/deploy
Executable file
@ -0,0 +1,185 @@
|
||||
#!/bin/bash
|
||||
# This deploy hook gets executed after dependencies are resolved and the
|
||||
# build hook has been run but before the application has been started back
|
||||
# up again. This script gets executed directly, so it could be python, php,
|
||||
# ruby, etc.
|
||||
|
||||
# Bash help: http://www.panix.com/~elflord/unix/bash-tute.html
|
||||
|
||||
# For information about action hooks supported by OpenShift, consult the documentation:
|
||||
# http://openshift.github.io/documentation/oo_user_guide.html#the-openshift-directory
|
||||
|
||||
####
|
||||
|
||||
# Hubzilla specific deploy script
|
||||
|
||||
# Place this file in /.openshift/action_hooks/ (The .openshift folder will be in the root of your repo)
|
||||
# The file name should be "deploy" such that you have:
|
||||
# .openshift/action_hooks/deploy
|
||||
|
||||
# Conventions: Vars in curley braces have the slash after implied so no need to add it.
|
||||
# e.g. ${OPENSHIFT_REPO_DIR}php/foobar = /repo/php/foobar
|
||||
# See all OpenShift vars here:
|
||||
# https://www.openshift.com/developers/openshift-environment-variables
|
||||
|
||||
# HME - NOTE - leftover from original openshift-drupal-deploy
|
||||
# In config.php you can leverage the enviroment variables like this:
|
||||
# // Define env vars.
|
||||
# if (array_key_exists('OPENSHIFT_APP_NAME', $_SERVER)) {
|
||||
# $src = $_SERVER;
|
||||
# } else {
|
||||
# $src = $_ENV;
|
||||
# }
|
||||
#
|
||||
# $conf["file_private_path"] = $src['OPENSHIFT_DATA_DIR'] . "private";
|
||||
# $conf["file_temporary_path"] = $src['OPENSHIFT_DATA_DIR'] . "tmp";
|
||||
|
||||
|
||||
####
|
||||
|
||||
# Start Deploy
|
||||
|
||||
echo "Starting Deploy..."
|
||||
|
||||
# Let's create the Hubzilla files directory in the Openshift data folder ($OPENSHIFT_DATA_DIR).
|
||||
|
||||
echo "Check for the files directory called store, if not created - create it"
|
||||
|
||||
if [ ! -d ${OPENSHIFT_DATA_DIR}store ]; then
|
||||
mkdir -p ${OPENSHIFT_DATA_DIR}"store/[data]/smarty3"
|
||||
echo "Done creating files directory"
|
||||
|
||||
else
|
||||
|
||||
echo "The files directory called store already exists"
|
||||
|
||||
fi
|
||||
|
||||
####
|
||||
|
||||
# Set permissions on the files directory.
|
||||
|
||||
echo "Now chmod 777 -R files"
|
||||
|
||||
chmod -R 777 ${OPENSHIFT_DATA_DIR}store
|
||||
|
||||
echo "chmod done, permissions set to 777"
|
||||
|
||||
####
|
||||
|
||||
# Symlink our files folder to the repo.
|
||||
|
||||
# Note the "php" directory below seems to be the best way to serve OpenShift files.
|
||||
# This is good as that allows us for directories one level above such as tmp and private
|
||||
|
||||
echo "Create sym links for writeable directories"
|
||||
|
||||
ln -sf ${OPENSHIFT_DATA_DIR}store ${OPENSHIFT_REPO_DIR}store
|
||||
|
||||
echo "Files sym links created"
|
||||
|
||||
####
|
||||
|
||||
# Copy .htconfig.php from the repo, rename it and place it in the data directory.
|
||||
# if it's there already, skip it.
|
||||
|
||||
if [ ! -f ${OPENSHIFT_DATA_DIR}.htconfig.php ];
|
||||
|
||||
then
|
||||
|
||||
cp ${OPENSHIFT_REPO_DIR}.htconfig.php ${OPENSHIFT_DATA_DIR}.htconfig.php
|
||||
|
||||
echo ".htconfig.php copied."
|
||||
|
||||
else
|
||||
|
||||
echo "Looks like the .htconfig.php file is already there, we won't overwrite it."
|
||||
|
||||
fi
|
||||
|
||||
####
|
||||
|
||||
# symlink the .htconfig.php file.
|
||||
|
||||
echo "Create sym link for .htconfig.php"
|
||||
|
||||
ln -sf ${OPENSHIFT_DATA_DIR}.htconfig.php ${OPENSHIFT_REPO_DIR}.htconfig.php
|
||||
|
||||
echo ".htconfig.php symlink created"
|
||||
|
||||
####
|
||||
# Copy .htaccess from the repo, rename it and place it in the data directory.
|
||||
# if it's there already, skip it.
|
||||
|
||||
if [ ! -f ${OPENSHIFT_DATA_DIR}.htaccess ];
|
||||
|
||||
then
|
||||
|
||||
cp ${OPENSHIFT_REPO_DIR}.htaccess ${OPENSHIFT_DATA_DIR}.htaccess
|
||||
|
||||
echo ".htaccess copied."
|
||||
|
||||
else
|
||||
|
||||
echo "Looks like the .htaccess file is already there, we won't overwrite it."
|
||||
|
||||
fi
|
||||
|
||||
####
|
||||
|
||||
# symlink the .htaccess file.
|
||||
|
||||
echo "Create sym link for .htaccess"
|
||||
|
||||
ln -sf ${OPENSHIFT_DATA_DIR}.htaccess ${OPENSHIFT_REPO_DIR}.htaccess
|
||||
|
||||
echo ".htaccess symlink created"
|
||||
|
||||
####
|
||||
|
||||
echo "Check for the poller at .openshift/cron/minutely/poller , if not created - create it"
|
||||
|
||||
if [ ! -f ${OPENSHIFT_REPO_DIR}.openshift/cron/minutely/poller ]; then
|
||||
printf '%s\n' '#!/bin/bash' 'if [ ! -f $OPENSHIFT_DATA_DIR/last_run ]; then' ' touch $OPENSHIFT_DATA_DIR/last_run' 'fi' 'if [[ $(find $OPENSHIFT_DATA_DIR/last_run -mmin +9) ]]; then #run every 10 mins' ' rm -f $OPENSHIFT_DATA_DIR/last_run' ' touch $OPENSHIFT_DATA_DIR/last_run' ' # The command(s) that you want to run every 10 minutes' 'cd /var/lib/openshift/${OPENSHIFT_APP_UUID}/app-root/repo; /opt/rh/php54/root/usr/bin/php include/poller.php' 'fi' >${OPENSHIFT_REPO_DIR}.openshift/cron/minutely/poller
|
||||
echo "Done creating file .openshift/cron/minutely/poller"
|
||||
|
||||
else
|
||||
|
||||
echo "The poller already exists"
|
||||
|
||||
fi
|
||||
|
||||
####
|
||||
|
||||
# Set permissions on the poller script to make it executable.
|
||||
|
||||
echo "Now chmod 777 -R poller"
|
||||
|
||||
chmod -R 777 ${OPENSHIFT_REPO_DIR}.openshift/cron/minutely/poller
|
||||
|
||||
echo "chmod done, permissions set to 777 on poller script."
|
||||
|
||||
####
|
||||
|
||||
### echo "Check for the hot deploy marker at .openshift/markers/hot_deploy , if not created - create it"
|
||||
|
||||
### if [ ! -f ${OPENSHIFT_REPO_DIR}.openshift/markers/hot_deploy ]; then
|
||||
|
||||
### touch ${OPENSHIFT_REPO_DIR}.openshift/markers/hot_deploy
|
||||
|
||||
### echo "Done creating file .openshift/markers/hot_deploy"
|
||||
|
||||
### else
|
||||
|
||||
### echo "The hot deploy marker already exists"
|
||||
|
||||
### fi
|
||||
|
||||
####
|
||||
|
||||
# Hubzilla configuration - changes to default settings
|
||||
# to make Hubzilla on OpenShift a more pleasant experience
|
||||
cd ${OPENSHIFT_REPO_DIR}
|
||||
util/config system expire_delivery_reports 3
|
||||
util/config system feed_contacts 0
|
||||
util/config system disable_discover_tab 1
|
27
.openshift/cron/README.cron
Normal file
27
.openshift/cron/README.cron
Normal file
@ -0,0 +1,27 @@
|
||||
Run scripts or jobs on a periodic basis
|
||||
=======================================
|
||||
Any scripts or jobs added to the minutely, hourly, daily, weekly or monthly
|
||||
directories will be run on a scheduled basis (frequency is as indicated by the
|
||||
name of the directory) using run-parts.
|
||||
|
||||
run-parts ignores any files that are hidden or dotfiles (.*) or backup
|
||||
files (*~ or *,) or named *.{rpmsave,rpmorig,rpmnew,swp,cfsaved}
|
||||
|
||||
The presence of two specially named files jobs.deny and jobs.allow controls
|
||||
how run-parts executes your scripts/jobs.
|
||||
jobs.deny ===> Prevents specific scripts or jobs from being executed.
|
||||
jobs.allow ===> Only execute the named scripts or jobs (all other/non-named
|
||||
scripts that exist in this directory are ignored).
|
||||
|
||||
The principles of jobs.deny and jobs.allow are the same as those of cron.deny
|
||||
and cron.allow and are described in detail at:
|
||||
http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/ch-Automating_System_Tasks.html#s2-autotasks-cron-access
|
||||
|
||||
See: man crontab or above link for more details and see the the weekly/
|
||||
directory for an example.
|
||||
|
||||
PLEASE NOTE: The Cron cartridge must be installed in order to run the configured jobs.
|
||||
|
||||
For more information about cron, consult the documentation:
|
||||
http://openshift.github.io/documentation/oo_cartridge_guide.html#cron
|
||||
http://openshift.github.io/documentation/oo_user_guide.html#cron
|
0
.openshift/cron/daily/.gitignore
vendored
Normal file
0
.openshift/cron/daily/.gitignore
vendored
Normal file
0
.openshift/cron/hourly/.gitignore
vendored
Normal file
0
.openshift/cron/hourly/.gitignore
vendored
Normal file
0
.openshift/cron/minutely/.gitignore
vendored
Normal file
0
.openshift/cron/minutely/.gitignore
vendored
Normal file
0
.openshift/cron/monthly/.gitignore
vendored
Normal file
0
.openshift/cron/monthly/.gitignore
vendored
Normal file
16
.openshift/cron/weekly/README
Normal file
16
.openshift/cron/weekly/README
Normal file
@ -0,0 +1,16 @@
|
||||
Run scripts or jobs on a weekly basis
|
||||
=====================================
|
||||
Any scripts or jobs added to this directory will be run on a scheduled basis
|
||||
(weekly) using run-parts.
|
||||
|
||||
run-parts ignores any files that are hidden or dotfiles (.*) or backup
|
||||
files (*~ or *,) or named *.{rpmsave,rpmorig,rpmnew,swp,cfsaved} and handles
|
||||
the files named jobs.deny and jobs.allow specially.
|
||||
|
||||
In this specific example, the chronograph script is the only script or job file
|
||||
executed on a weekly basis (due to white-listing it in jobs.allow). And the
|
||||
README and chrono.dat file are ignored either as a result of being black-listed
|
||||
in jobs.deny or because they are NOT white-listed in the jobs.allow file.
|
||||
|
||||
For more details, please see ../README.cron file.
|
||||
|
1
.openshift/cron/weekly/chrono.dat
Normal file
1
.openshift/cron/weekly/chrono.dat
Normal file
@ -0,0 +1 @@
|
||||
Time And Relative D...n In Execution (Open)Shift!
|
3
.openshift/cron/weekly/chronograph
Executable file
3
.openshift/cron/weekly/chronograph
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "`date`: `cat $(dirname \"$0\")/chrono.dat`"
|
12
.openshift/cron/weekly/jobs.allow
Normal file
12
.openshift/cron/weekly/jobs.allow
Normal file
@ -0,0 +1,12 @@
|
||||
#
|
||||
# Script or job files listed in here (one entry per line) will be
|
||||
# executed on a weekly-basis.
|
||||
#
|
||||
# Example: The chronograph script will be executed weekly but the README
|
||||
# and chrono.dat files in this directory will be ignored.
|
||||
#
|
||||
# The README file is actually ignored due to the entry in the
|
||||
# jobs.deny which is checked before jobs.allow (this file).
|
||||
#
|
||||
chronograph
|
||||
|
7
.openshift/cron/weekly/jobs.deny
Normal file
7
.openshift/cron/weekly/jobs.deny
Normal file
@ -0,0 +1,7 @@
|
||||
#
|
||||
# Any script or job files listed in here (one entry per line) will NOT be
|
||||
# executed (read as ignored by run-parts).
|
||||
#
|
||||
|
||||
README
|
||||
|
4
.openshift/markers/README.md
Normal file
4
.openshift/markers/README.md
Normal file
@ -0,0 +1,4 @@
|
||||
For information about markers, consult the documentation:
|
||||
|
||||
http://openshift.github.io/documentation/oo_user_guide.html#markers
|
||||
http://openshift.github.io/documentation/oo_cartridge_guide.html#php-markers
|
0
.openshift/pear.txt
Normal file
0
.openshift/pear.txt
Normal file
@ -1,3 +1,4 @@
|
||||

|
||||
|
||||
Hubzilla - Community Server
|
||||
===========================
|
||||
@ -5,7 +6,6 @@ Hubzilla - Community Server
|
||||
Help us redefine the web - using integrated and united community websites.
|
||||
--------------------------------------------------------------------------
|
||||
|
||||

|
||||
|
||||
**What are Hubs?**
|
||||
|
||||
|
4
app/grid.apd
Normal file
4
app/grid.apd
Normal file
@ -0,0 +1,4 @@
|
||||
url: $baseurl/network
|
||||
requires: local_channel
|
||||
name: Grid
|
||||
photo: $baseurl/images/hubzilla_logo_6.png
|
@ -1,4 +0,0 @@
|
||||
url: $baseurl/network
|
||||
requires: local_channel
|
||||
name: Matrix
|
||||
photo: $baseurl/app/matrix.png
|
BIN
app/matrix.png
BIN
app/matrix.png
Binary file not shown.
Before Width: | Height: | Size: 3.8 KiB |
2
boot.php
2
boot.php
@ -50,7 +50,7 @@ define ( 'PLATFORM_NAME', 'hubzilla' );
|
||||
define ( 'RED_VERSION', trim(file_get_contents('version.inc')) . 'H');
|
||||
define ( 'ZOT_REVISION', 1 );
|
||||
|
||||
define ( 'DB_UPDATE_VERSION', 1156 );
|
||||
define ( 'DB_UPDATE_VERSION', 1157 );
|
||||
|
||||
/**
|
||||
* @brief Constant with a HTML line break.
|
||||
|
103
doc/Hubzilla_on_OpenShift.bb
Normal file
103
doc/Hubzilla_on_OpenShift.bb
Normal file
@ -0,0 +1,103 @@
|
||||
[b]Hubzilla on OpenShift[/b]
|
||||
You will notice a new .openshift folder when you fetch from upstream, i.e. from [url=https://github.com/redmatrix/hubzilla.git]https://github.com/redmatrix/hubzilla.git[/url] , which contains a deploy script to set up Hubzilla on OpenShift.
|
||||
|
||||
Create an account on OpenShift, then use the registration e-mail and password to create your first Hubzilla instance. Install git and RedHat's command line tools - rhc - if you have not already done so.
|
||||
|
||||
[code]rhc app-create your_app_name php-5.4 mysql-5.5 cron phpmyadmin --namespace your_domain --from-code https://github.com/redmatrix/hubzilla.git -l your@email.address -p your_account_password
|
||||
[/code]
|
||||
|
||||
Make a note of the database username and password OpenShift creates for your instance, and use these at [url=https://your_app_name-your_domain.rhcloud.com/]https://your_app_name-your_domain.rhcloud.com/[/url] to complete the setup.
|
||||
|
||||
NOTE: PostgreSQL is NOT supported by the deploy script yet, see [zrl=https://zot-mor.rhcloud.com/display/3c7035f2a6febf87057d84ea0ae511223e9b38dc27913177bc0df053edecac7c@zot-mor.rhcloud.com?zid=haakon%40zot-mor.rhcloud.com]this thread[/zrl].
|
||||
|
||||
[b]Update[/b]
|
||||
To update, consider your own workflow first. I have forked Hubzilla code into my GitHub account to be able to try things out, this remote repo is called origin. Here is how I fetch new code from upstream, merge into my local repo, then push the updated code both into origin and the remote repo called openshift.
|
||||
|
||||
[code]git fetch upstream;git checkout master;git merge upstream/master;git push origin;git push openshift HEAD
|
||||
[/code]
|
||||
|
||||
[b]Administration[/b]
|
||||
Symptoms of need for MySQL database administration are:
|
||||
[list]
|
||||
[*] you can visit your domain and see the Hubzilla frontpage, but trying to login throws you back to login. This can mean your session table is marked as crashed.
|
||||
[*] you can login, but your channel posts are not visible. This can mean your item table is marked as crashed.
|
||||
[*] you can login and you can see your channel posts, but apparently nobody is getting your posts, comments, likes and so on. This can mean your outq table is marked as crashed.
|
||||
[/list]
|
||||
|
||||
You can check your OpenShift logs by doing
|
||||
|
||||
[code]
|
||||
rhc tail -a your_app_name -n your_domain -l your@email.address -p your_account_password
|
||||
[/code]
|
||||
|
||||
and you might be able to confirm the above suspicions about crashed tables, or other problems you need to fix.
|
||||
|
||||
[b]How to fix crashed tables in MySQL[/b]
|
||||
Using MySQL and the MyISAM database engine can result in table indexes coming out of sync, and you have at least two options for fixing tables marked as crashed.
|
||||
[list]
|
||||
[*] Use the database username and password OpenShift creates for your instance at [url=https://your_app_name-your_domain.rhcloud.com/phpmyadmin/]https://your_app_name-your_domain.rhcloud.com/phpmyadmin/[/url] to login via the web into your phpMyAdmin web interface, click your database in the left column, in the right column scroll down to the bottom of the list of tables and click the checkbox for marking all tables, then select Check tables from the drop down menu. This will check the tables for problems, and you can then checkmark only those tables with problems, and select Repair table from the same drop down menu at the bottom.
|
||||
[*] You can port-forward the MySQL database service to your own machine and use the MySQL client called mysqlcheck to check, repair and optimize your database or individual database tables without stopping the MySQL service on OpenShift. Run the following in two separate console windows.
|
||||
|
||||
To port-forward do
|
||||
|
||||
[code]rhc port-forward -a your_app_name -n your_domain -l your@email.address -p your_password[/code]
|
||||
|
||||
in one console window, then do either -o for optimize, -c for check or -r for repair, like this
|
||||
|
||||
[code]mysqlcheck -h 127.0.0.1 -r your_app_name -u your_app_admin_name -p[/code]
|
||||
|
||||
and give the app's password at the prompt. If all goes well you should see a number of table names with an OK behind them.
|
||||
|
||||
You can now
|
||||
[code]Press CTRL-C to terminate port forwarding[/code]
|
||||
[*] You can do
|
||||
|
||||
[code]rhc cartridge stop mysql-5.5 -a your_app_name[/code]
|
||||
|
||||
to stop the MySQL service running in your app on OpenShift before running myisamchk - which should only be run when MySQL is stopped, and then
|
||||
login to your instance with SSH - see OpenShift for details - and do
|
||||
|
||||
[code]cd mysql/data/your_database
|
||||
myisamchk -r *.MYI[/code]
|
||||
|
||||
or if you get
|
||||
|
||||
[code]Can't create new tempfile[/code]
|
||||
|
||||
check your OpenShift's gear quota with
|
||||
|
||||
[code]quota -gus[/code]
|
||||
|
||||
and if you are short on space, then locally (not SSH) do
|
||||
|
||||
[code]rhc app-tidy your_app_name -l your_login -p your_password[/code]
|
||||
|
||||
to have rhc delete temporary files and OpenShift logs to free space first, then check the size of your local repo dir and execute
|
||||
|
||||
[code]git gc[/code]
|
||||
|
||||
against it and check the size again, and then to minimize your remote repo connect via SSH to your application gear and execute the same command against it by changing to the remote repo directory - your repo should be in
|
||||
|
||||
[code]~/git/your_app_name.git[/code]
|
||||
|
||||
(if not, do find -size +1M to find it), then do
|
||||
|
||||
[code]
|
||||
cd
|
||||
cd mysql/data/yourdatabase
|
||||
myisamchk -r -v -f*.MYI[/code]
|
||||
|
||||
and hopefully your database tables are now okay.
|
||||
You can now start the MySQL service on OpenShift by locally doing
|
||||
|
||||
[code]rhc cartridge start mysql-5.5 -a your_app_name[/code]
|
||||
[/list]
|
||||
|
||||
[b]Notes[/b]
|
||||
[list]
|
||||
[*] definitely DO turn off feeds and discovery by default and limit delivery reports from 30 days to 3 days if you are on the Free or Bronze plan on OpenShift with a single 1Gb gear by visiting [observer.baseurl]/admin/site when logged in as administrator of your Hubzilla site.
|
||||
[*] The above defaults have been added into the deploy script.
|
||||
[*] DO add git gc to the deploy script
|
||||
[*] MAYBE DO add myisamchk - only checking? to the end of the deploy script.
|
||||
[*] mysqlcheck is similar in function to myisamchk, but works differently. The main operational difference is that mysqlcheck must be used when the mysqld server is running, whereas myisamchk should be used when it is not. The benefit of using mysqlcheck is that you do not have to stop the server to perform table maintenance - this means this documenation should be fixed.
|
||||
[/list]
|
@ -88,7 +88,7 @@ Some/many of these widgets have restrictions which may restrict the type of page
|
||||
* photo_rand - display a random photo from one of your photo albums. Photo permissions are honoured
|
||||
* args:
|
||||
* album - album name (very strongly recommended if you have lots of photos)
|
||||
* scale - typically 0 (original size), 1 (640px), or 2 (320px)
|
||||
* scale - typically 0 (original size), 1 (1024px), 2, (640px), or 3 (320px)
|
||||
* style - CSS style string
|
||||
* channel_id - if not your own
|
||||
<br /> <br />
|
||||
|
@ -4,9 +4,11 @@
|
||||
|
||||
[zrl=[baseurl]/help/install]Install[/zrl]
|
||||
[zrl=[baseurl]/help/red2pi]Installing $Projectname on the Raspberry Pi[/zrl]
|
||||
[zrl=[baseurl]/help/Hubzilla_on_OpenShift]$Projectname on OpenShift[/zrl]
|
||||
[zrl=[baseurl]/help/troubleshooting]Troubleshooting Tips[/zrl]
|
||||
[zrl=[baseurl]/help/hidden_configs]Tweaking $Projectname's Hidden Configurations[/zrl]
|
||||
[zrl=[baseurl]/help/faq_admins]FAQ For Admins[/zrl]
|
||||
[zrl=[baseurl]/help/service_classes]Service Classes[/zrl]
|
||||
[zrl=[baseurl]/help/theme_management]Theme Management[/zrl]
|
||||
|
||||
|
||||
|
@ -4,19 +4,20 @@ The API allows you to post to the red# by HTTP POST request. Below you see an ex
|
||||
|
||||
[code]curl -ssl -u [color=blue]$E-Mail[/color]:[color=blue]$Password[/color] -d "[color=blue]$Parameters[/color]" [url][observer=1][observer.baseurl][/observer][observer=0]example.com[/observer]/api/statuses/update
|
||||
[/url][/code]
|
||||
[table][tr][td]$E-Mail:[/td][td]The E-Mail Adress you use to login[/td][/tr]
|
||||
[table][tr][td]$E-Mail:[/td][td]The E-Mail Address you use to login, or the channel nickname (without the hostname)[/td][/tr]
|
||||
[tr][td]$Password:[/td][td]The Password you use to login[/td][/tr]
|
||||
[tr][td]$Parameters:[/td][td]That's the interesting part, here you insert the content you want to send using the following parameters:[/td][/tr][/table]
|
||||
|
||||
[ul]
|
||||
[*]title: the title of the posting
|
||||
[*]channel: the channel you want to post to
|
||||
[*]channel: the channel you want to post to (do not use this parameter with HTTP Basic auth)
|
||||
[*]category: a comma-seperated list of categories for the posting
|
||||
[*]status: the content of the posting, formatted with BBCode
|
||||
OR
|
||||
[*]htmlstatus:the content of the posting, formatted in HTML.
|
||||
[/ul]
|
||||
|
||||
To post to a specific channel, replace the email address with the channel nickname. If you supply the channel parameter, it has to match the "email", but is superfluous anyway.
|
||||
|
||||
Instead of calling [observer=1][observer.baseurl][/observer][observer=0]example.com[/observer]/api/statuses/update which returns a json (you could also add .json on the end to clarify) output, you can use [observer.baseurl]/api/statuses/update.xml to get an xml formatted return.
|
||||
|
||||
|
10
doc/theme_management.bb
Normal file
10
doc/theme_management.bb
Normal file
@ -0,0 +1,10 @@
|
||||
[h1]Theme Management[/h1]
|
||||
$Projectname allows hub admins to easily add and update themes hosted in common git repositories.
|
||||
[h2]Add new theme repo to your hub[/h2]
|
||||
1. Navigate to your hub web root
|
||||
[code]root@hub:~# cd /var/www[/code]
|
||||
2. Add the theme repo and give it a name
|
||||
[code][nobb]root@hub:/var/www# util/add_theme_repo https://github.com/username/theme-repo.git UniqueThemeRepoName[/nobb][/code]
|
||||
[h2]Update existing theme repo[/h2]
|
||||
Update the repo by using
|
||||
[code]root@hub:/var/www# util/update_theme_repo UniqueThemeRepoName[/code]
|
BIN
images/hubzilla-banner.png
Normal file
BIN
images/hubzilla-banner.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 13 KiB |
@ -319,6 +319,8 @@ function channel_remove($channel_id, $local = true, $unset_session=true) {
|
||||
q("DELETE FROM `pconfig` WHERE `uid` = %d", intval($channel_id));
|
||||
q("DELETE FROM `spam` WHERE `uid` = %d", intval($channel_id));
|
||||
|
||||
// @FIXME At this stage we need to remove the file resources located under /store/$nickname
|
||||
|
||||
|
||||
q("delete from abook where abook_xchan = '%s' and abook_self = 1 ",
|
||||
dbesc($channel['channel_hash'])
|
||||
|
@ -278,13 +278,21 @@ class Item extends BaseObject {
|
||||
|
||||
$children = $this->get_children();
|
||||
|
||||
$is_photo = ((($item['resource_type'] == 'photo') && (feature_enabled($conv->get_profile_owner(),'large_photos'))) ? true : false);
|
||||
|
||||
$has_tags = (($body['tags'] || $body['categories'] || $body['mentions'] || $body['attachments'] || $body['folders']) ? true : false);
|
||||
|
||||
$tmp_item = array(
|
||||
'template' => $this->get_template(),
|
||||
'mode' => $mode,
|
||||
'type' => implode("",array_slice(explode("/",$item['verb']),-1)),
|
||||
'tags' => array(),
|
||||
'body' => $body,
|
||||
'text' => strip_tags($body),
|
||||
'body' => $body['html'],
|
||||
'tags' => $body['tags'],
|
||||
'categories' => $body['categories'],
|
||||
'mentions' => $body['mentions'],
|
||||
'attachments' => $body['attachments'],
|
||||
'folders' => $body['folders'],
|
||||
'text' => strip_tags($body['html']),
|
||||
'id' => $this->get_id(),
|
||||
'mid' => $item['mid'],
|
||||
'isevent' => $isevent,
|
||||
@ -325,6 +333,8 @@ class Item extends BaseObject {
|
||||
'owner_url' => $this->get_owner_url(),
|
||||
'owner_photo' => $this->get_owner_photo(),
|
||||
'owner_name' => $this->get_owner_name(),
|
||||
'is_photo' => $is_photo,
|
||||
'has_tags' => $has_tags,
|
||||
|
||||
// Item toolbar buttons
|
||||
'like' => $like,
|
||||
|
@ -217,6 +217,8 @@ function create_account($arr) {
|
||||
$result['email'] = $email;
|
||||
$result['password'] = $password;
|
||||
|
||||
call_hooks('register_account',$result);
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
@ -8,6 +8,7 @@ require_once("html2plain.php");
|
||||
require_once('include/security.php');
|
||||
require_once('include/photos.php');
|
||||
require_once('include/items.php');
|
||||
require_once('include/attach.php');
|
||||
|
||||
/*
|
||||
*
|
||||
@ -619,6 +620,36 @@ require_once('include/items.php');
|
||||
}
|
||||
api_register_func('api/red/channel/stream','api_channel_stream', true);
|
||||
|
||||
function api_attach_list(&$a,$type) {
|
||||
logger('api_user: ' . api_user());
|
||||
json_return_and_die(attach_list_files(api_user(),get_observer_hash(),'','','','created asc'));
|
||||
}
|
||||
api_register_func('api/red/files','api_attach_list', true);
|
||||
|
||||
|
||||
function api_file_detail(&$a,$type) {
|
||||
if (api_user()===false) return false;
|
||||
if(! $_REQUEST['file_id']) return false;
|
||||
$r = q("select * from attach where uid = %d and hash = '%s' limit 1",
|
||||
intval(api_user()),
|
||||
dbesc($_REQUEST['file_id'])
|
||||
);
|
||||
if($r) {
|
||||
if($r[0]['is_dir'])
|
||||
$r[0]['data'] = '';
|
||||
elseif(intval($r[0]['os_storage']))
|
||||
$r[0]['data'] = base64_encode(file_get_contents(dbunescbin($r[0]['data'])));
|
||||
else
|
||||
$r[0]['data'] = base64_encode(dbunescbin($r[0]['data']));
|
||||
|
||||
$ret = array('attach' => $r[0]);
|
||||
json_return_and_die($ret);
|
||||
}
|
||||
killme();
|
||||
}
|
||||
|
||||
api_register_func('api/red/file', 'api_file_detail', true);
|
||||
|
||||
|
||||
function api_albums(&$a,$type) {
|
||||
json_return_and_die(photos_albums_list($a->get_channel(),$a->get_observer()));
|
||||
@ -1456,7 +1487,7 @@ require_once('include/items.php');
|
||||
*
|
||||
*/
|
||||
|
||||
// FIXME
|
||||
|
||||
function api_statuses_mentions(&$a, $type){
|
||||
if (api_user()===false) return false;
|
||||
|
||||
@ -1481,39 +1512,25 @@ require_once('include/items.php');
|
||||
$myurl = str_replace(array('www.','.'),array('','\\.'),$myurl);
|
||||
$diasp_url = str_replace('/channel/','/u/',$myurl);
|
||||
|
||||
if (get_config('system','use_fulltext_engine'))
|
||||
$sql_extra .= sprintf(" AND `item`.`parent` IN (SELECT distinct(`parent`) from item where (MATCH(`author-link`) AGAINST ('".'"%s"'."' in boolean mode) or MATCH(`tag`) AGAINST ('".'"%s"'."' in boolean mode) or MATCH(tag) AGAINST ('".'"%s"'."' in boolean mode))) ",
|
||||
dbesc(protect_sprintf($myurl)),
|
||||
dbesc(protect_sprintf($myurl)),
|
||||
dbesc(protect_sprintf($diasp_url))
|
||||
);
|
||||
else
|
||||
$sql_extra .= sprintf(" AND `item`.`parent` IN (SELECT distinct(`parent`) from item where ( `author-link` like '%s' or `tag` like '%s' or tag like '%s' )) ",
|
||||
dbesc(protect_sprintf('%' . $myurl)),
|
||||
dbesc(protect_sprintf('%' . $myurl . ']%')),
|
||||
dbesc(protect_sprintf('%' . $diasp_url . ']%'))
|
||||
);
|
||||
|
||||
$sql_extra .= " AND item_mentionsme = 1 ";
|
||||
if ($max_id > 0)
|
||||
$sql_extra .= ' AND `item`.`id` <= '.intval($max_id);
|
||||
$sql_extra .= " AND item.id <= " . intval($max_id) . " ";
|
||||
|
||||
$r = q("SELECT `item`.*, `item`.`id` AS `item_id`,
|
||||
`contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`,
|
||||
`contact`.`network`, `contact`.`thumb`, `contact`.`dfrn_id`, `contact`.`self`,
|
||||
`contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`
|
||||
FROM `item`, `contact`
|
||||
WHERE `item`.`uid` = %d
|
||||
AND `item`.`visible` = 1 and `item`.`moderated` = 0 AND `item`.`deleted` = 0
|
||||
AND `contact`.`id` = `item`.`contact-id`
|
||||
AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
|
||||
$sql_extra
|
||||
AND `item`.`id`>%d
|
||||
ORDER BY `item`.`received` DESC LIMIT %d ,%d ",
|
||||
intval($user_info['uid']),
|
||||
require_once('include/security.php');
|
||||
$item_normal = item_normal();
|
||||
|
||||
$r = q("select * from item where uid = " . intval(api_user()) . "
|
||||
$item_normal $sql_extra
|
||||
AND id > %d group by mid
|
||||
order by received desc LIMIT %d OFFSET %d ",
|
||||
intval($since_id),
|
||||
intval($start), intval($count)
|
||||
intval($count),
|
||||
intval($start)
|
||||
);
|
||||
|
||||
xchan_query($r,true);
|
||||
|
||||
|
||||
$ret = api_format_items($r,$user_info);
|
||||
|
||||
|
||||
|
@ -130,7 +130,7 @@ function translate_system_apps(&$arr) {
|
||||
'Address Book' => t('Address Book'),
|
||||
'Login' => t('Login'),
|
||||
'Channel Manager' => t('Channel Manager'),
|
||||
'Matrix' => t('Matrix'),
|
||||
'Grid' => t('Grid'),
|
||||
'Settings' => t('Settings'),
|
||||
'Files' => t('Files'),
|
||||
'Webpages' => t('Webpages'),
|
||||
|
@ -181,7 +181,7 @@ function attach_list_files($channel_id, $observer, $hash = '', $filename = '', $
|
||||
|
||||
$ret = array('success' => false);
|
||||
|
||||
if(! perm_is_allowed($channel_id,$observer, 'read_storage')) {
|
||||
if(! perm_is_allowed($channel_id,$observer, 'view_storage')) {
|
||||
$ret['message'] = t('Permission denied.');
|
||||
return $ret;
|
||||
}
|
||||
@ -203,7 +203,7 @@ function attach_list_files($channel_id, $observer, $hash = '', $filename = '', $
|
||||
|
||||
// Retrieve all columns except 'data'
|
||||
|
||||
$r = q("select id, aid, uid, hash, filename, filetype, filesize, revision, folder, os_storage, is_dir, is_photo, flags, created, edited, allow_cid, allow_gid, deny_cid, deny_gid from attach where uid = %d $sql_extra $orderby $limit",
|
||||
$r = q("select id, aid, uid, hash, filename, filetype, filesize, revision, folder, os_storage, is_dir, is_photo, flags, created, edited, allow_cid, allow_gid, deny_cid, deny_gid from attach where uid = %d $sql_extra ORDER BY $orderby $limit",
|
||||
intval($channel_id)
|
||||
);
|
||||
|
||||
@ -405,7 +405,6 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) {
|
||||
|
||||
require_once('include/photos.php');
|
||||
|
||||
|
||||
call_hooks('photo_upload_begin',$arr);
|
||||
|
||||
$ret = array('success' => false);
|
||||
@ -416,6 +415,7 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) {
|
||||
$newalbum = (($arr) ? $arr['newalbum'] : '');
|
||||
$hash = (($arr && $arr['hash']) ? $arr['hash'] : null);
|
||||
$upload_path = (($arr && $arr['directory']) ? $arr['directory'] : '');
|
||||
$visible = (($arr && $arr['visible']) ? $arr['visible'] : '');
|
||||
|
||||
$observer = array();
|
||||
|
||||
@ -447,11 +447,33 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) {
|
||||
|
||||
// revise or update must provide $arr['hash'] of the thing to revise/update
|
||||
|
||||
// By default remove $src when finished
|
||||
|
||||
$remove_when_processed = true;
|
||||
|
||||
if($options === 'import') {
|
||||
$src = $arr['src'];
|
||||
$filename = $arr['filename'];
|
||||
$filesize = @filesize($src);
|
||||
|
||||
$hash = $arr['resource_id'];
|
||||
|
||||
if(array_key_exists('hash',$arr))
|
||||
$hash = $arr['hash'];
|
||||
if(array_key_exists('type',$arr))
|
||||
$type = $arr['type'];
|
||||
|
||||
if($arr['preserve_original'])
|
||||
$remove_when_processed = false;
|
||||
|
||||
// if importing a directory, just do it now and go home - we're done.
|
||||
|
||||
if(array_key_exists('is_dir',$arr) && intval($arr['is_dir'])) {
|
||||
$x = attach_mkdir($channel,$observer_hash,$arr);
|
||||
if($x['message'])
|
||||
logger('import_directory: ' . $x['message']);
|
||||
return;
|
||||
}
|
||||
}
|
||||
elseif($options !== 'update') {
|
||||
$f = array('src' => '', 'filename' => '', 'filesize' => 0, 'type' => '');
|
||||
@ -530,10 +552,20 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) {
|
||||
$pathname = '';
|
||||
|
||||
if($is_photo) {
|
||||
if($newalbum)
|
||||
if($newalbum) {
|
||||
$pathname = filepath_macro($newalbum);
|
||||
else
|
||||
}
|
||||
elseif(array_key_exists('folder',$arr)) {
|
||||
$x = q("select filename from attach where hash = '%s' and uid = %d limit 1",
|
||||
dbesc($arr['folder']),
|
||||
intval($channel['channel_id'])
|
||||
);
|
||||
if($x)
|
||||
$pathname = $x[0]['filename'];
|
||||
}
|
||||
else {
|
||||
$pathname = filepath_macro($album);
|
||||
}
|
||||
}
|
||||
else {
|
||||
$pathname = filepath_macro($upload_path);
|
||||
@ -563,7 +595,7 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) {
|
||||
}
|
||||
}
|
||||
else {
|
||||
$folder_hash = '';
|
||||
$folder_hash = ((($arr) && array_key_exists('folder',$arr)) ? $arr['folder'] : '');
|
||||
}
|
||||
|
||||
if((! $options) || ($options === 'import')) {
|
||||
@ -630,7 +662,8 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) {
|
||||
|
||||
if(($maxfilesize) && ($filesize > $maxfilesize)) {
|
||||
$ret['message'] = sprintf( t('File exceeds size limit of %d'), $maxfilesize);
|
||||
@unlink($src);
|
||||
if($remove_when_processed)
|
||||
@unlink($src);
|
||||
call_hooks('photo_upload_end',$ret);
|
||||
return $ret;
|
||||
}
|
||||
@ -643,7 +676,9 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) {
|
||||
);
|
||||
if(($r) && (($r[0]['total'] + $filesize) > ($limit - $existing_size))) {
|
||||
$ret['message'] = upgrade_message(true) . sprintf(t("You have reached your limit of %1$.0f Mbytes attachment storage."), $limit / 1024000);
|
||||
@unlink($src);
|
||||
if($remove_when_processed)
|
||||
@unlink($src);
|
||||
|
||||
call_hooks('photo_upload_end',$ret);
|
||||
return $ret;
|
||||
}
|
||||
@ -757,7 +792,7 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) {
|
||||
|
||||
if($is_photo) {
|
||||
|
||||
$args = array( 'source' => $source, 'visible' => 0, 'resource_id' => $hash, 'album' => basename($pathname), 'os_path' => $os_basepath . $os_relpath, 'filename' => $filename, 'getimagesize' => $gis, 'directory' => $direct);
|
||||
$args = array( 'source' => $source, 'visible' => $visible, 'resource_id' => $hash, 'album' => basename($pathname), 'os_path' => $os_basepath . $os_relpath, 'filename' => $filename, 'getimagesize' => $gis, 'directory' => $direct);
|
||||
if($arr['contact_allow'])
|
||||
$args['contact_allow'] = $arr['contact_allow'];
|
||||
if($arr['group_allow'])
|
||||
@ -786,7 +821,7 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) {
|
||||
}
|
||||
}
|
||||
|
||||
if($options !== 'update')
|
||||
if(($options !== 'update') && ($remove_when_processed))
|
||||
@unlink($src);
|
||||
|
||||
if(! $r) {
|
||||
@ -959,7 +994,6 @@ function attach_mkdir($channel, $observer_hash, $arr = null) {
|
||||
intval($channel['channel_id']),
|
||||
dbesc($lfile)
|
||||
);
|
||||
|
||||
if(! $r) {
|
||||
logger('attach_mkdir: hash ' . $lfile . ' not found in ' . $lpath);
|
||||
$ret['message'] = t('Path not found.');
|
||||
@ -1195,7 +1229,7 @@ function attach_delete($channel_id, $resource, $is_photo = 0) {
|
||||
$channel_address = (($c) ? $c[0]['channel_address'] : 'notfound');
|
||||
$photo_sql = (($is_photo) ? " and is_photo = 1 " : '');
|
||||
|
||||
$r = q("SELECT hash, flags, is_dir, folder FROM attach WHERE hash = '%s' AND uid = %d $photo_sql limit 1",
|
||||
$r = q("SELECT hash, flags, is_dir, is_photo, folder FROM attach WHERE hash = '%s' AND uid = %d $photo_sql limit 1",
|
||||
dbesc($resource),
|
||||
intval($channel_id)
|
||||
);
|
||||
@ -1241,6 +1275,21 @@ function attach_delete($channel_id, $resource, $is_photo = 0) {
|
||||
intval($channel_id)
|
||||
);
|
||||
|
||||
if($r[0]['is_photo']) {
|
||||
$x = q("select id, item_hidden from item where resource_id = '%s' and resource_type = 'photo' and uid = %d",
|
||||
dbesc($resource),
|
||||
intval($channel_id)
|
||||
);
|
||||
if($x) {
|
||||
drop_item($x[0]['id'],false,(($x[0]['item_hidden']) ? DROPITEM_NORMAL : DROPITEM_PHASE1),true);
|
||||
|
||||
q("DELETE FROM photo WHERE uid = %d AND resource_id = '%s'",
|
||||
intval($channel_id),
|
||||
dbesc($resource)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// update the parent folder's lastmodified timestamp
|
||||
$e = q("UPDATE attach SET edited = '%s' WHERE hash = '%s' AND uid = %d",
|
||||
dbesc(datetime_convert()),
|
||||
|
@ -629,11 +629,6 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional', $
|
||||
if($item['author-link'] && (! $item['author-name']))
|
||||
$profile_name = $item['author-link'];
|
||||
|
||||
|
||||
$tags=array();
|
||||
$hashtags = array();
|
||||
$mentions = array();
|
||||
|
||||
$sp = false;
|
||||
$profile_link = best_link_url($item,$sp);
|
||||
if($sp)
|
||||
@ -678,14 +673,17 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional', $
|
||||
|
||||
$unverified = '';
|
||||
|
||||
$tags=array();
|
||||
$terms = get_terms_oftype($item['term'],array(TERM_HASHTAG,TERM_MENTION,TERM_UNKNOWN));
|
||||
if(count($terms))
|
||||
foreach($terms as $tag)
|
||||
$tags[] = format_term_for_display($tag);
|
||||
// $tags=array();
|
||||
// $terms = get_terms_oftype($item['term'],array(TERM_HASHTAG,TERM_MENTION,TERM_UNKNOWN));
|
||||
// if(count($terms))
|
||||
// foreach($terms as $tag)
|
||||
// $tags[] = format_term_for_display($tag);
|
||||
|
||||
$body = prepare_body($item,true);
|
||||
|
||||
$is_photo = ((($item['resource_type'] == 'photo') && (feature_enabled($profile_owner,'large_photos'))) ? true : false);
|
||||
$has_tags = (($body['tags'] || $body['categories'] || $body['mentions'] || $body['attachments'] || $body['folders']) ? true : false);
|
||||
|
||||
$tmp_item = array(
|
||||
'template' => $tpl,
|
||||
'toplevel' => 'toplevel_item',
|
||||
@ -699,10 +697,12 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional', $
|
||||
'lock' => $lock,
|
||||
'thumb' => $profile_avatar,
|
||||
'title' => $item['title'],
|
||||
'body' => $body,
|
||||
'tags' => $tags,
|
||||
'hashtags' => $hashtags,
|
||||
'mentions' => $mentions,
|
||||
'body' => $body['html'],
|
||||
'tags' => $body['tags'],
|
||||
'categories' => $body['categories'],
|
||||
'mentions' => $body['mentions'],
|
||||
'attachments' => $body['attachments'],
|
||||
'folders' => $body['folders'],
|
||||
'verified' => $verified,
|
||||
'unverified' => $unverified,
|
||||
'forged' => $forged,
|
||||
@ -712,7 +712,7 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional', $
|
||||
'has_folders' => ((count($folders)) ? 'true' : ''),
|
||||
'categories' => $categories,
|
||||
'folders' => $folders,
|
||||
'text' => strip_tags($body),
|
||||
'text' => strip_tags($body['html']),
|
||||
'ago' => relative_date($item['created']),
|
||||
'app' => $item['app'],
|
||||
'str_app' => sprintf( t('from %s'), $item['app']),
|
||||
@ -738,6 +738,8 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional', $
|
||||
'previewing' => $previewing,
|
||||
'wait' => t('Please wait'),
|
||||
'thread_level' => 1,
|
||||
'is_photo' => $is_photo,
|
||||
'has_tags' => $has_tags,
|
||||
);
|
||||
|
||||
$arr = array('item' => $item, 'output' => $tmp_item);
|
||||
@ -1414,7 +1416,7 @@ function prepare_page($item) {
|
||||
'$auth_url' => (($naked) ? '' : zid($item['author']['xchan_url'])),
|
||||
'$date' => (($naked) ? '' : datetime_convert('UTC', date_default_timezone_get(), $item['created'], 'Y-m-d H:i')),
|
||||
'$title' => smilies(bbcode($item['title'])),
|
||||
'$body' => $body,
|
||||
'$body' => $body['html'],
|
||||
'$preview' => $preview,
|
||||
'$link' => $link,
|
||||
));
|
||||
|
@ -138,14 +138,16 @@ function deliver_run($argv, $argc) {
|
||||
if($dresult && is_array($dresult)) {
|
||||
foreach($dresult as $xx) {
|
||||
if(is_array($xx) && array_key_exists('message_id',$xx)) {
|
||||
q("insert into dreport ( dreport_mid, dreport_site, dreport_recip, dreport_result, dreport_time, dreport_xchan ) values ( '%s', '%s','%s','%s','%s','%s' ) ",
|
||||
dbesc($xx['message_id']),
|
||||
dbesc($xx['location']),
|
||||
dbesc($xx['recipient']),
|
||||
dbesc($xx['status']),
|
||||
dbesc(datetime_convert($xx['date'])),
|
||||
dbesc($xx['sender'])
|
||||
);
|
||||
if(delivery_report_is_storable($xx)) {
|
||||
q("insert into dreport ( dreport_mid, dreport_site, dreport_recip, dreport_result, dreport_time, dreport_xchan ) values ( '%s', '%s','%s','%s','%s','%s' ) ",
|
||||
dbesc($xx['message_id']),
|
||||
dbesc($xx['location']),
|
||||
dbesc($xx['recipient']),
|
||||
dbesc($xx['status']),
|
||||
dbesc(datetime_convert($xx['date'])),
|
||||
dbesc($xx['sender'])
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -97,7 +97,7 @@ function notification($params) {
|
||||
|
||||
if ($params['type'] == NOTIFY_MAIL) {
|
||||
logger('notification: mail');
|
||||
$subject = sprintf( t('[Red:Notify] New mail received at %s'),$sitename);
|
||||
$subject = sprintf( t('[Hubzilla:Notify] New mail received at %s'),$sitename);
|
||||
|
||||
$preamble = sprintf( t('%1$s, %2$s sent you a new private message at %3$s.'),$recip['channel_name'], $sender['xchan_name'],$sitename);
|
||||
$epreamble = sprintf( t('%1$s sent you %2$s.'),'[zrl=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/zrl]', '[zrl=$itemlink]' . t('a private message') . '[/zrl]');
|
||||
@ -183,7 +183,7 @@ function notification($params) {
|
||||
// Before this we have the name of the replier on the subject rendering
|
||||
// differents subjects for messages on the same thread.
|
||||
|
||||
$subject = sprintf( t('[Red:Notify] Comment to conversation #%1$d by %2$s'), $parent_id, $sender['xchan_name']);
|
||||
$subject = sprintf( t('[Hubzilla:Notify] Comment to conversation #%1$d by %2$s'), $parent_id, $sender['xchan_name']);
|
||||
$preamble = sprintf( t('%1$s, %2$s commented on an item/conversation you have been following.'), $recip['channel_name'], $sender['xchan_name']);
|
||||
$epreamble = $dest_str;
|
||||
|
||||
@ -193,7 +193,7 @@ function notification($params) {
|
||||
}
|
||||
|
||||
if($params['type'] == NOTIFY_WALL) {
|
||||
$subject = sprintf( t('[Red:Notify] %s posted to your profile wall') , $sender['xchan_name']);
|
||||
$subject = sprintf( t('[Hubzilla:Notify] %s posted to your profile wall') , $sender['xchan_name']);
|
||||
|
||||
$preamble = sprintf( t('%1$s, %2$s posted to your profile wall at %3$s') , $recip['channel_name'], $sender['xchan_name'], $sitename);
|
||||
|
||||
@ -221,7 +221,7 @@ function notification($params) {
|
||||
return;
|
||||
}
|
||||
|
||||
$subject = sprintf( t('[Red:Notify] %s tagged you') , $sender['xchan_name']);
|
||||
$subject = sprintf( t('[Hubzilla:Notify] %s tagged you') , $sender['xchan_name']);
|
||||
$preamble = sprintf( t('%1$s, %2$s tagged you at %3$s') , $recip['channel_name'], $sender['xchan_name'], $sitename);
|
||||
$epreamble = sprintf( t('%1$s, %2$s [zrl=%3$s]tagged you[/zrl].') ,
|
||||
$recip['channel_name'],
|
||||
@ -235,7 +235,7 @@ function notification($params) {
|
||||
}
|
||||
|
||||
if ($params['type'] == NOTIFY_POKE) {
|
||||
$subject = sprintf( t('[Red:Notify] %1$s poked you') , $sender['xchan_name']);
|
||||
$subject = sprintf( t('[Hubzilla:Notify] %1$s poked you') , $sender['xchan_name']);
|
||||
$preamble = sprintf( t('%1$s, %2$s poked you at %3$s') , $recip['channel_name'], $sender['xchan_name'], $sitename);
|
||||
$epreamble = sprintf( t('%1$s, %2$s [zrl=%2$s]poked you[/zrl].') ,
|
||||
$recip['channel_name'],
|
||||
@ -253,7 +253,7 @@ function notification($params) {
|
||||
}
|
||||
|
||||
if ($params['type'] == NOTIFY_TAGSHARE) {
|
||||
$subject = sprintf( t('[Red:Notify] %s tagged your post') , $sender['xchan_name']);
|
||||
$subject = sprintf( t('[Hubzilla:Notify] %s tagged your post') , $sender['xchan_name']);
|
||||
$preamble = sprintf( t('%1$s, %2$s tagged your post at %3$s') , $recip['channel_name'],$sender['xchan_name'], $sitename);
|
||||
$epreamble = sprintf( t('%1$s, %2$s tagged [zrl=%3$s]your post[/zrl]') ,
|
||||
$recip['channel_name'],
|
||||
@ -267,7 +267,7 @@ function notification($params) {
|
||||
}
|
||||
|
||||
if ($params['type'] == NOTIFY_INTRO) {
|
||||
$subject = sprintf( t('[Red:Notify] Introduction received'));
|
||||
$subject = sprintf( t('[Hubzilla:Notify] Introduction received'));
|
||||
$preamble = sprintf( t('%1$s, you\'ve received an new connection request from \'%2$s\' at %3$s'), $recip['channel_name'], $sender['xchan_name'], $sitename);
|
||||
$epreamble = sprintf( t('%1$s, you\'ve received [zrl=%2$s]a new connection request[/zrl] from %3$s.'),
|
||||
$recip['channel_name'],
|
||||
@ -282,7 +282,7 @@ function notification($params) {
|
||||
}
|
||||
|
||||
if ($params['type'] == NOTIFY_SUGGEST) {
|
||||
$subject = sprintf( t('[Red:Notify] Friend suggestion received'));
|
||||
$subject = sprintf( t('[Hubzilla:Notify] Friend suggestion received'));
|
||||
$preamble = sprintf( t('%1$s, you\'ve received a friend suggestion from \'%2$s\' at %3$s'), $recip['channel_name'], $sender['xchan_name'], $sitename);
|
||||
$epreamble = sprintf( t('%1$s, you\'ve received [zrl=%2$s]a friend suggestion[/zrl] for %3$s from %4$s.'),
|
||||
$recip['channel_name'],
|
||||
@ -315,9 +315,12 @@ function notification($params) {
|
||||
'epreamble' => $epreamble,
|
||||
'body' => $body,
|
||||
'sitelink' => $sitelink,
|
||||
'sitename' => $sitename,
|
||||
'tsitelink' => $tsitelink,
|
||||
'hsitelink' => $hsitelink,
|
||||
'itemlink' => $itemlink
|
||||
'itemlink' => $itemlink,
|
||||
'sender' => $sender,
|
||||
'recipient' => $recip
|
||||
);
|
||||
|
||||
call_hooks('enotify', $h);
|
||||
@ -505,7 +508,7 @@ function notification($params) {
|
||||
$private_activity = true;
|
||||
case NOTIFY_MAIL:
|
||||
$datarray['textversion'] = $datarray['htmlversion'] = $datarray['title'] = '';
|
||||
$datarray['subject'] = preg_replace('/' . preg_quote(t('[Red:Notify]')) . '/','$0*',$datarray['subject']);
|
||||
$datarray['subject'] = preg_replace('/' . preg_quote(t('[Hubzilla:Notify]')) . '/','$0*',$datarray['subject']);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
@ -133,27 +133,27 @@ function new_contact($uid,$url,$channel,$interactive = false, $confirm = false)
|
||||
$their_perms = 0;
|
||||
$xchan_hash = '';
|
||||
|
||||
|
||||
$r = q("select * from xchan where xchan_hash = '%s' or xchan_url = '%s' limit 1",
|
||||
dbesc($url),
|
||||
dbesc($url)
|
||||
);
|
||||
|
||||
|
||||
if(! $r) {
|
||||
// attempt network auto-discovery
|
||||
if(strpos($url,'@') && (! $is_http)) {
|
||||
$r = discover_by_webbie($url);
|
||||
$d = discover_by_webbie($url);
|
||||
}
|
||||
elseif($is_http) {
|
||||
$r = discover_by_url($url);
|
||||
$r['allowed'] = intval(get_config('system','feed_contacts'));
|
||||
}
|
||||
if($r) {
|
||||
$r['channel_id'] = $uid;
|
||||
call_hooks('follow_allow',$r);
|
||||
if(! $r['allowed']) {
|
||||
if(get_config('system','feed_contacts'))
|
||||
$d = discover_by_url($url);
|
||||
else {
|
||||
$result['message'] = t('Protocol disabled.');
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
if($d) {
|
||||
$r = q("select * from xchan where xchan_hash = '%s' or xchan_url = '%s' limit 1",
|
||||
dbesc($url),
|
||||
dbesc($url)
|
||||
@ -172,6 +172,16 @@ function new_contact($uid,$url,$channel,$interactive = false, $confirm = false)
|
||||
return $result;
|
||||
}
|
||||
|
||||
$x = array('channel_id' => $uid, 'follow_address' => $url, 'xchan' => $r[0], 'allowed' => 1);
|
||||
|
||||
call_hooks('follow_allow',$x);
|
||||
|
||||
if(! $x['allowed']) {
|
||||
$result['message'] = t('Protocol disabled.');
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
if((local_channel()) && $uid == local_channel()) {
|
||||
$aid = get_account_id();
|
||||
$hash = get_observer_hash();
|
||||
@ -251,7 +261,7 @@ function new_contact($uid,$url,$channel,$interactive = false, $confirm = false)
|
||||
);
|
||||
if($r) {
|
||||
$result['abook'] = $r[0];
|
||||
proc_run('php', 'include/notifier.php', 'permission_update', $result['abook']['abook_id']);
|
||||
proc_run('php', 'include/notifier.php', 'permission_create', $result['abook']['abook_id']);
|
||||
}
|
||||
|
||||
$arr = array('channel_id' => $uid, 'abook' => $result['abook']);
|
||||
|
@ -631,6 +631,30 @@ function identity_basic_export($channel_id, $items = false) {
|
||||
if($r)
|
||||
$ret['likes'] = $r;
|
||||
|
||||
|
||||
$r = q("select * from conv where uid = %d",
|
||||
intval($channel_id)
|
||||
);
|
||||
if($r) {
|
||||
for($x = 0; $x < count($r); $x ++) {
|
||||
$r[$x]['subject'] = base64url_decode(str_rot47($r[$x]['subject']));
|
||||
}
|
||||
$ret['conv'] = $r;
|
||||
}
|
||||
|
||||
|
||||
$r = q("select * from mail where mail.uid = %d",
|
||||
intval($channel_id)
|
||||
);
|
||||
if($r) {
|
||||
$m = array();
|
||||
foreach($r as $rr) {
|
||||
xchan_mail_query($rr);
|
||||
$m[] = mail_encode($rr,true);
|
||||
}
|
||||
$ret['mail'] = $m;
|
||||
}
|
||||
|
||||
$r = q("select item_id.*, item.mid from item_id left join item on item_id.iid = item.id where item_id.uid = %d",
|
||||
intval($channel_id)
|
||||
);
|
||||
|
@ -790,7 +790,7 @@ function import_likes($channel,$likes) {
|
||||
if($r)
|
||||
continue;
|
||||
|
||||
dbesc_array($config);
|
||||
dbesc_array($like);
|
||||
$r = dbq("INSERT INTO likes (`"
|
||||
. implode("`, `", array_keys($like))
|
||||
. "`) VALUES ('"
|
||||
@ -800,6 +800,71 @@ function import_likes($channel,$likes) {
|
||||
}
|
||||
}
|
||||
|
||||
function import_conv($channel,$convs) {
|
||||
if($channel && $convs) {
|
||||
foreach($convs as $conv) {
|
||||
if($conv['deleted']) {
|
||||
q("delete from conv where guid = '%s' and uid = %d limit 1",
|
||||
dbesc($conv['guid']),
|
||||
intval($channel['channel_id'])
|
||||
);
|
||||
continue;
|
||||
}
|
||||
|
||||
unset($conv['id']);
|
||||
|
||||
$conv['uid'] = $channel['channel_id'];
|
||||
$conv['subject'] = str_rot47(base64url_encode($conv['subject']));
|
||||
|
||||
$r = q("select id from conv where guid = '%s' and uid = %d limit 1",
|
||||
dbesc($conv['guid']),
|
||||
intval($channel['channel_id'])
|
||||
);
|
||||
if($r)
|
||||
continue;
|
||||
|
||||
dbesc_array($conv);
|
||||
$r = dbq("INSERT INTO conv (`"
|
||||
. implode("`, `", array_keys($conv))
|
||||
. "`) VALUES ('"
|
||||
. implode("', '", array_values($conv))
|
||||
. "')" );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
function import_mail($channel,$mails) {
|
||||
if($channel && $mails) {
|
||||
foreach($mails as $mail) {
|
||||
if(array_key_exists('flags',$mail) && in_array('deleted',$mail['flags'])) {
|
||||
q("delete from mail where mid = '%s' and uid = %d limit 1",
|
||||
dbesc($mail['message_id']),
|
||||
intval($channel['channel_id'])
|
||||
);
|
||||
continue;
|
||||
}
|
||||
if(array_key_exists('flags',$mail) && in_array('recalled',$mail['flags'])) {
|
||||
q("update mail set mail_recalled = 1 where mid = '%s' and uid = %d limit 1",
|
||||
dbesc($mail['message_id']),
|
||||
intval($channel['channel_id'])
|
||||
);
|
||||
continue;
|
||||
}
|
||||
|
||||
$m = get_mail_elements($mail);
|
||||
if(! $m)
|
||||
continue;
|
||||
|
||||
$m['aid'] = $channel['channel_account_id'];
|
||||
$m['uid'] = $channel['channel_id'];
|
||||
mail_store($m);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -889,6 +889,7 @@ function get_item_elements($x,$allow_code = false) {
|
||||
$arr['mimetype'] = (($x['mimetype']) ? htmlspecialchars($x['mimetype'], ENT_COMPAT,'UTF-8',false) : '');
|
||||
$arr['obj_type'] = (($x['object_type']) ? htmlspecialchars($x['object_type'], ENT_COMPAT,'UTF-8',false) : '');
|
||||
$arr['tgt_type'] = (($x['target_type']) ? htmlspecialchars($x['target_type'], ENT_COMPAT,'UTF-8',false) : '');
|
||||
$arr['resource_type'] = (($x['resource_type']) ? htmlspecialchars($x['resource_type'], ENT_COMPAT,'UTF-8',false) : '');
|
||||
|
||||
$arr['public_policy'] = (($x['public_scope']) ? htmlspecialchars($x['public_scope'], ENT_COMPAT,'UTF-8',false) : '');
|
||||
if($arr['public_policy'] === 'public')
|
||||
@ -1285,6 +1286,7 @@ function encode_item($item,$mirror = false) {
|
||||
$x['verb'] = $item['verb'];
|
||||
$x['object_type'] = $item['obj_type'];
|
||||
$x['target_type'] = $item['tgt_type'];
|
||||
$x['resource_type'] = $item['resource_type'];
|
||||
$x['permalink'] = $item['plink'];
|
||||
$x['location'] = $item['location'];
|
||||
$x['longlat'] = $item['coord'];
|
||||
@ -1559,7 +1561,7 @@ function encode_item_flags($item) {
|
||||
return $ret;
|
||||
}
|
||||
|
||||
function encode_mail($item) {
|
||||
function encode_mail($item,$extended = false) {
|
||||
$x = array();
|
||||
$x['type'] = 'mail';
|
||||
$x['encoding'] = 'zot';
|
||||
@ -1592,6 +1594,18 @@ function encode_mail($item) {
|
||||
$x['body'] = '';
|
||||
}
|
||||
|
||||
if($extended) {
|
||||
$x['conv_guid'] = $item['conv_guid'];
|
||||
if(intval($item['mail_deleted']))
|
||||
$x['flags'][] = 'deleted';
|
||||
if(intval($item['mail_replied']))
|
||||
$x['flags'][] = 'replied';
|
||||
if(intval($item['mail_isreply']))
|
||||
$x['flags'][] = 'isreply';
|
||||
if(intval($item['mail_seen']))
|
||||
$x['flags'][] = 'seen';
|
||||
}
|
||||
|
||||
return $x;
|
||||
}
|
||||
|
||||
@ -1604,6 +1618,8 @@ function get_mail_elements($x) {
|
||||
$arr['body'] = (($x['body']) ? htmlspecialchars($x['body'], ENT_COMPAT,'UTF-8',false) : '');
|
||||
$arr['title'] = (($x['title'])? htmlspecialchars($x['title'],ENT_COMPAT,'UTF-8',false) : '');
|
||||
|
||||
$arr['conv_guid'] = (($x['conv_guid'])? htmlspecialchars($x['conv_guid'],ENT_COMPAT,'UTF-8',false) : '');
|
||||
|
||||
$arr['created'] = datetime_convert('UTC','UTC',$x['created']);
|
||||
if((! array_key_exists('expires',$x)) || ($x['expires'] === NULL_DATE))
|
||||
$arr['expires'] = NULL_DATE;
|
||||
@ -1616,6 +1632,18 @@ function get_mail_elements($x) {
|
||||
if(in_array('recalled',$x['flags'])) {
|
||||
$arr['mail_recalled'] = 1;
|
||||
}
|
||||
if(in_array('replied',$x['flags'])) {
|
||||
$arr['mail_replied'] = 1;
|
||||
}
|
||||
if(in_array('isreply',$x['flags'])) {
|
||||
$arr['mail_isreply'] = 1;
|
||||
}
|
||||
if(in_array('seen',$x['flags'])) {
|
||||
$arr['mail_seen'] = 1;
|
||||
}
|
||||
if(in_array('deleted',$x['flags'])) {
|
||||
$arr['mail_deleted'] = 1;
|
||||
}
|
||||
}
|
||||
|
||||
$key = get_config('system','pubkey');
|
||||
@ -1630,6 +1658,7 @@ function get_mail_elements($x) {
|
||||
if($arr['created'] > datetime_convert())
|
||||
$arr['created'] = datetime_convert();
|
||||
|
||||
|
||||
$arr['mid'] = (($x['message_id']) ? htmlspecialchars($x['message_id'], ENT_COMPAT,'UTF-8',false) : '');
|
||||
$arr['parent_mid'] = (($x['message_parent']) ? htmlspecialchars($x['message_parent'], ENT_COMPAT,'UTF-8',false) : '');
|
||||
|
||||
@ -3510,6 +3539,7 @@ function mail_store($arr) {
|
||||
$arr['title'] = ((x($arr,'title')) ? trim($arr['title']) : '');
|
||||
$arr['parent_mid'] = ((x($arr,'parent_mid')) ? notags(trim($arr['parent_mid'])) : '');
|
||||
$arr['body'] = ((x($arr,'body')) ? trim($arr['body']) : '');
|
||||
$arr['conv_guid'] = ((x($arr,'conv_guid')) ? trim($arr['conv_guid']) : '');
|
||||
|
||||
$arr['mail_flags'] = ((x($arr,'mail_flags')) ? intval($arr['mail_flags']) : 0 );
|
||||
|
||||
|
@ -28,8 +28,6 @@ function send_message($uid = 0, $recipient='', $body='', $subject='', $replyto='
|
||||
// $expires = datetime_convert(date_default_timezone_get(),'UTC',$expires);
|
||||
|
||||
|
||||
|
||||
|
||||
if($uid) {
|
||||
$r = q("select * from channel where channel_id = %d limit 1",
|
||||
intval($uid)
|
||||
@ -49,18 +47,20 @@ function send_message($uid = 0, $recipient='', $body='', $subject='', $replyto='
|
||||
|
||||
// look for any existing conversation structure
|
||||
|
||||
$conv_guid = '';
|
||||
|
||||
if(strlen($replyto)) {
|
||||
$r = q("select convid from mail where channel_id = %d and ( mid = '%s' or parent_mid = '%s' ) limit 1",
|
||||
$r = q("select conv_guid from mail where channel_id = %d and ( mid = '%s' or parent_mid = '%s' ) limit 1",
|
||||
intval(local_channel()),
|
||||
dbesc($replyto),
|
||||
dbesc($replyto)
|
||||
);
|
||||
if($r)
|
||||
$convid = $r[0]['convid'];
|
||||
if($r) {
|
||||
$conv_guid = $r[0]['conv_guid'];
|
||||
}
|
||||
}
|
||||
|
||||
if(! $convid) {
|
||||
if(! $conv_guid) {
|
||||
|
||||
// create a new conversation
|
||||
|
||||
@ -93,16 +93,28 @@ function send_message($uid = 0, $recipient='', $body='', $subject='', $replyto='
|
||||
dbesc($conv_guid),
|
||||
intval(local_channel())
|
||||
);
|
||||
if($r)
|
||||
$convid = $r[0]['id'];
|
||||
if($r) {
|
||||
$retconv = $r[0];
|
||||
$retconv['subject'] = base64url_decode(str_rot47($retconv['subject']));
|
||||
}
|
||||
}
|
||||
|
||||
if(! $convid) {
|
||||
if(! $retconv) {
|
||||
$r = q("select * from conv where guid = '%s' and uid = %d limit 1",
|
||||
dbesc($conv_guid),
|
||||
intval(local_channel())
|
||||
);
|
||||
if($r) {
|
||||
$retconv = $r[0];
|
||||
$retconv['subject'] = base64url_decode(str_rot47($retconv['subject']));
|
||||
}
|
||||
}
|
||||
|
||||
if(! $retconv) {
|
||||
$ret['message'] = 'conversation not found';
|
||||
return $ret;
|
||||
}
|
||||
|
||||
|
||||
// generate a unique message_id
|
||||
|
||||
do {
|
||||
@ -174,10 +186,10 @@ function send_message($uid = 0, $recipient='', $body='', $subject='', $replyto='
|
||||
|
||||
|
||||
|
||||
$r = q("INSERT INTO mail ( account_id, convid, mail_obscured, channel_id, from_xchan, to_xchan, title, body, attach, mid, parent_mid, created, expires )
|
||||
VALUES ( %d, %d, %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' )",
|
||||
$r = q("INSERT INTO mail ( account_id, conv_guid, mail_obscured, channel_id, from_xchan, to_xchan, title, body, attach, mid, parent_mid, created, expires )
|
||||
VALUES ( %d, '%s', %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' )",
|
||||
intval($channel['channel_account_id']),
|
||||
intval($convid),
|
||||
dbesc($conv_guid),
|
||||
intval(1),
|
||||
intval($channel['channel_id']),
|
||||
dbesc($channel['channel_hash']),
|
||||
@ -197,8 +209,11 @@ function send_message($uid = 0, $recipient='', $body='', $subject='', $replyto='
|
||||
dbesc($mid),
|
||||
intval($channel['channel_id'])
|
||||
);
|
||||
if($r)
|
||||
if($r) {
|
||||
$post_id = $r[0]['id'];
|
||||
$retmail = $r[0];
|
||||
xchan_mail_query($retmail);
|
||||
}
|
||||
else {
|
||||
$ret['message'] = t('Stored post could not be verified.');
|
||||
return $ret;
|
||||
@ -242,6 +257,9 @@ function send_message($uid = 0, $recipient='', $body='', $subject='', $replyto='
|
||||
|
||||
$ret['success'] = true;
|
||||
$ret['message_item'] = intval($post_id);
|
||||
$ret['conv'] = $retconv;
|
||||
$ret['mail'] = $retmail;
|
||||
|
||||
return $ret;
|
||||
|
||||
}
|
||||
@ -367,30 +385,67 @@ function private_messages_fetch_message($channel_id, $messageitem_id, $updatesee
|
||||
|
||||
function private_messages_drop($channel_id, $messageitem_id, $drop_conversation = false) {
|
||||
|
||||
if($drop_conversation) {
|
||||
// find the parent_id
|
||||
$p = q("SELECT parent_mid FROM mail WHERE id = %d AND channel_id = %d LIMIT 1",
|
||||
intval($messageitem_id),
|
||||
|
||||
$x = q("select * from mail where id = %d and channel_id = %d limit 1",
|
||||
intval($messageitem_id),
|
||||
intval($channel_id)
|
||||
);
|
||||
if(! $x)
|
||||
return false;
|
||||
|
||||
$conversation = null;
|
||||
|
||||
if($x[0]['conv_guid']) {
|
||||
$y = q("select * from conv where guid = '%s' and uid = %d limit 1",
|
||||
dbesc($x[0]['conv_guid']),
|
||||
intval($channel_id)
|
||||
);
|
||||
if($p) {
|
||||
$r = q("DELETE FROM mail WHERE parent_mid = '%s' AND channel_id = %d ",
|
||||
dbesc($p[0]['parent_mid']),
|
||||
intval($channel_id)
|
||||
);
|
||||
if($r)
|
||||
return true;
|
||||
if($y) {
|
||||
$conversation = $y[0];
|
||||
$conversation['subject'] = base64url_decode(str_rot47($conversation['subject']));
|
||||
}
|
||||
}
|
||||
|
||||
if($drop_conversation) {
|
||||
$m = array();
|
||||
$m['conv'] = array($conversation);
|
||||
$m['conv'][0]['deleted'] = 1;
|
||||
|
||||
$z = q("select * from mail where parent_mid = '%s' and channel_id = %d",
|
||||
dbesc($x[0]['parent_mid']),
|
||||
intval($channel_id)
|
||||
);
|
||||
if($z) {
|
||||
q("delete from conv where guid = '%s' and uid = %d limit 1",
|
||||
dbesc($x[0]['conv_guid']),
|
||||
intval($channel_id)
|
||||
);
|
||||
$m['mail'] = array();
|
||||
foreach($z as $zz) {
|
||||
xchan_mail_query($zz);
|
||||
$zz['mail_deleted'] = 1;
|
||||
$m['mail'][] = encode_mail($zz,true);
|
||||
}
|
||||
q("DELETE FROM mail WHERE parent_mid = '%s' AND channel_id = %d ",
|
||||
dbesc($x[0]['parent_mid']),
|
||||
intval($channel_id)
|
||||
);
|
||||
}
|
||||
build_sync_packet($channel_id,$m);
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
xchan_mail_query($x[0]);
|
||||
$x[0]['mail_deleted'] = true;
|
||||
$r = q("DELETE FROM mail WHERE id = %d AND channel_id = %d",
|
||||
intval($messageitem_id),
|
||||
intval($channel_id)
|
||||
);
|
||||
if($r)
|
||||
return true;
|
||||
build_sync_packet($channel_id,array('mail' => array(encode_mail($x,true))));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -586,7 +586,7 @@ function scale_external_images($s, $include_link = true, $scale_replace = false)
|
||||
|
||||
if(substr($mtch[1],0,1) == '=') {
|
||||
$owidth = intval(substr($mtch[2],1));
|
||||
if(intval($owidth) > 0 && intval($owidth) < 640)
|
||||
if(intval($owidth) > 0 && intval($owidth) < 1024)
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -624,9 +624,9 @@ function scale_external_images($s, $include_link = true, $scale_replace = false)
|
||||
$orig_width = $ph->getWidth();
|
||||
$orig_height = $ph->getHeight();
|
||||
|
||||
if($orig_width > 640 || $orig_height > 640) {
|
||||
if($orig_width > 1024 || $orig_height > 1024) {
|
||||
$tag = (($match[1] == 'z') ? 'zmg' : 'img');
|
||||
$ph->scaleImage(640);
|
||||
$ph->scaleImage(1024);
|
||||
$new_width = $ph->getWidth();
|
||||
$new_height = $ph->getHeight();
|
||||
logger('scale_external_images: ' . $orig_width . '->' . $new_width . 'w ' . $orig_height . '->' . $new_height . 'h' . ' match: ' . $mtch[0], LOGGER_DEBUG);
|
||||
@ -1677,13 +1677,40 @@ function format_and_send_email($sender,$xchan,$item) {
|
||||
'additionalMailHeader' => '',
|
||||
));
|
||||
|
||||
}
|
||||
|
||||
|
||||
function do_delivery($deliveries) {
|
||||
|
||||
if(! (is_array($deliveries) && count($deliveries)))
|
||||
return;
|
||||
|
||||
$interval = ((get_config('system','delivery_interval') !== false)
|
||||
? intval(get_config('system','delivery_interval')) : 2 );
|
||||
|
||||
$deliveries_per_process = intval(get_config('system','delivery_batch_count'));
|
||||
|
||||
if($deliveries_per_process <= 0)
|
||||
$deliveries_per_process = 1;
|
||||
|
||||
|
||||
$deliver = array();
|
||||
foreach($deliveries as $d) {
|
||||
|
||||
$deliver[] = $d;
|
||||
|
||||
if(count($deliver) >= $deliveries_per_process) {
|
||||
proc_run('php','include/deliver.php',$deliver);
|
||||
$deliver = array();
|
||||
if($interval)
|
||||
@time_sleep_until(microtime(true) + (float) $interval);
|
||||
}
|
||||
}
|
||||
|
||||
// catch any stragglers
|
||||
|
||||
if($deliver)
|
||||
proc_run('php','include/deliver.php',$deliver);
|
||||
|
||||
|
||||
}
|
||||
|
@ -96,7 +96,19 @@ function notifier_run($argv, $argc){
|
||||
require_once('include/identity.php');
|
||||
$sys = get_sys_channel();
|
||||
|
||||
if($cmd == 'permission_update') {
|
||||
$deliveries = array();
|
||||
|
||||
$dead_hubs = array();
|
||||
|
||||
$dh = q("select site_url from site where site_dead = 1");
|
||||
if(dh) {
|
||||
foreach($dh as $dead) {
|
||||
$dead_hubs[] = $dead['site_url'];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if($cmd == 'permission_update' || $cmd == 'permission_create') {
|
||||
// Get the recipient
|
||||
$r = q("select abook.*, hubloc.* from abook
|
||||
left join hubloc on hubloc_hash = abook_xchan
|
||||
@ -113,8 +125,16 @@ function notifier_run($argv, $argc){
|
||||
intval($r[0]['abook_channel'])
|
||||
);
|
||||
if($s) {
|
||||
$perm_update = array('sender' => $s[0], 'recipient' => $r[0], 'success' => false);
|
||||
call_hooks('permissions_update',$perm_update);
|
||||
$perm_update = array('sender' => $s[0], 'recipient' => $r[0], 'success' => false, 'deliveries' => '');
|
||||
|
||||
if($cmd == 'permission_create'])
|
||||
call_hooks('permissions_create',$perm_update);
|
||||
else
|
||||
call_hooks('permissions_update',$perm_update);
|
||||
|
||||
if($perm_update['success'] && $perm_update['deliveries'])
|
||||
$deliveries[] = $perm_update['deliveries'];
|
||||
|
||||
if(! $perm_update['success']) {
|
||||
// send a refresh message to each hub they have registered here
|
||||
$h = q("select * from hubloc where hubloc_hash = '%s'
|
||||
@ -125,36 +145,40 @@ function notifier_run($argv, $argc){
|
||||
);
|
||||
if($h) {
|
||||
foreach($h as $hh) {
|
||||
if(in_array($hh['hubloc_url'],$dead_hubs)) {
|
||||
logger('skipping dead hub: ' . $hh['hubloc_url'], LOGGER_DEBUG);
|
||||
continue;
|
||||
}
|
||||
|
||||
$data = zot_build_packet($s[0],'refresh',array(array(
|
||||
'guid' => $hh['hubloc_guid'],
|
||||
'guid_sig' => $hh['hubloc_guid_sig'],
|
||||
'url' => $hh['hubloc_url'])
|
||||
));
|
||||
if($data) {
|
||||
$result = zot_zot($hh['hubloc_callback'],$data);
|
||||
|
||||
// if immediate delivery failed, stick it in the queue to try again later.
|
||||
|
||||
if(! $result['success']) {
|
||||
$hash = random_string();
|
||||
q("insert into outq ( outq_hash, outq_account, outq_channel, outq_driver, outq_posturl, outq_async, outq_created, outq_updated, outq_notify, outq_msg )
|
||||
values ( '%s', %d, %d, '%s', '%s', %d, '%s', '%s', '%s', '%s' )",
|
||||
dbesc($hash),
|
||||
intval($s[0]['channel_account_id']),
|
||||
intval($s[0]['channel_id']),
|
||||
dbesc('zot'),
|
||||
dbesc($hh['hubloc_callback']),
|
||||
intval(1),
|
||||
dbesc(datetime_convert()),
|
||||
dbesc(datetime_convert()),
|
||||
dbesc($data),
|
||||
dbesc('')
|
||||
);
|
||||
}
|
||||
$hash = random_string();
|
||||
q("insert into outq ( outq_hash, outq_account, outq_channel, outq_driver, outq_posturl, outq_async, outq_created, outq_updated, outq_notify, outq_msg )
|
||||
values ( '%s', %d, %d, '%s', '%s', %d, '%s', '%s', '%s', '%s' )",
|
||||
dbesc($hash),
|
||||
intval($s[0]['channel_account_id']),
|
||||
intval($s[0]['channel_id']),
|
||||
dbesc('zot'),
|
||||
dbesc($hh['hubloc_callback']),
|
||||
intval(1),
|
||||
dbesc(datetime_convert()),
|
||||
dbesc(datetime_convert()),
|
||||
dbesc($data),
|
||||
dbesc('')
|
||||
);
|
||||
$deliveries[] = $hash;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if($deliveries)
|
||||
do_delivery($deliveries);
|
||||
}
|
||||
}
|
||||
return;
|
||||
@ -524,14 +548,6 @@ function notifier_run($argv, $argc){
|
||||
|
||||
$hubs = $r;
|
||||
|
||||
$dead_hubs = array();
|
||||
|
||||
$dh = q("select site_url from site where site_dead = 1");
|
||||
if(dh) {
|
||||
foreach($dh as $dead) {
|
||||
$dead_hubs[] = $dead['site_url'];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
@ -571,15 +587,6 @@ function notifier_run($argv, $argc){
|
||||
|
||||
logger('notifier: will notify/deliver to these hubs: ' . print_r($hublist,true), LOGGER_DEBUG);
|
||||
|
||||
$interval = ((get_config('system','delivery_interval') !== false)
|
||||
? intval(get_config('system','delivery_interval')) : 2 );
|
||||
|
||||
$deliveries_per_process = intval(get_config('system','delivery_batch_count'));
|
||||
|
||||
if($deliveries_per_process <= 0)
|
||||
$deliveries_per_process = 1;
|
||||
|
||||
$deliveries = array();
|
||||
|
||||
foreach($dhubs as $hub) {
|
||||
|
||||
@ -687,29 +694,11 @@ function notifier_run($argv, $argc){
|
||||
if($normal_mode) {
|
||||
$x = q("select * from hook where hook = 'notifier_normal'");
|
||||
if($x)
|
||||
proc_run('php','deliver_hooks.php', $target_item['id']);
|
||||
proc_run('php','include/deliver_hooks.php', $target_item['id']);
|
||||
}
|
||||
|
||||
if($deliveries) {
|
||||
$deliver = array();
|
||||
|
||||
foreach($deliveries as $d) {
|
||||
|
||||
$deliver[] = $d;
|
||||
|
||||
if(count($deliver) >= $deliveries_per_process) {
|
||||
proc_run('php','include/deliver.php',$deliver);
|
||||
$deliver = array();
|
||||
if($interval)
|
||||
@time_sleep_until(microtime(true) + (float) $interval);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// catch any stragglers
|
||||
|
||||
if($deliver)
|
||||
proc_run('php','include/deliver.php',$deliver);
|
||||
if($deliveries)
|
||||
do_delivery($deliveries);
|
||||
|
||||
logger('notifier: basic loop complete.', LOGGER_DEBUG);
|
||||
|
||||
|
@ -185,31 +185,40 @@ function photo_upload($channel, $observer, $args) {
|
||||
if($args['description'])
|
||||
$p['description'] = $args['description'];
|
||||
|
||||
$r1 = $ph->save($p);
|
||||
if(! $r1)
|
||||
$r0 = $ph->save($p);
|
||||
$r0wxh = $ph->getWidth() . 'x' . $ph->getHeight();
|
||||
if(! $r0)
|
||||
$errors = true;
|
||||
|
||||
|
||||
unset($p['os_storage']);
|
||||
unset($p['os_path']);
|
||||
|
||||
if(($width > 640 || $height > 640) && (! $errors)) {
|
||||
$ph->scaleImage(640);
|
||||
$p['scale'] = 1;
|
||||
$r2 = $ph->save($p);
|
||||
$smallest = 1;
|
||||
if(! $r2)
|
||||
$errors = true;
|
||||
}
|
||||
if(($width > 1024 || $height > 1024) && (! $errors))
|
||||
$ph->scaleImage(1024);
|
||||
|
||||
if(($width > 320 || $height > 320) && (! $errors)) {
|
||||
$p['scale'] = 1;
|
||||
$r1 = $ph->save($p);
|
||||
$r1wxh = $ph->getWidth() . 'x' . $ph->getHeight();
|
||||
if(! $r1)
|
||||
$errors = true;
|
||||
|
||||
if(($width > 640 || $height > 640) && (! $errors))
|
||||
$ph->scaleImage(640);
|
||||
|
||||
$p['scale'] = 2;
|
||||
$r2 = $ph->save($p);
|
||||
$r2wxh = $ph->getWidth() . 'x' . $ph->getHeight();
|
||||
if(! $r2)
|
||||
$errors = true;
|
||||
|
||||
if(($width > 320 || $height > 320) && (! $errors))
|
||||
$ph->scaleImage(320);
|
||||
$p['scale'] = 2;
|
||||
$r3 = $ph->save($p);
|
||||
$smallest = 2;
|
||||
if(! $r3)
|
||||
$errors = true;
|
||||
}
|
||||
|
||||
$p['scale'] = 3;
|
||||
$r3 = $ph->save($p);
|
||||
$r3wxh = $ph->getWidth() . 'x' . $ph->getHeight();
|
||||
if(! $r3)
|
||||
$errors = true;
|
||||
|
||||
if($errors) {
|
||||
q("delete from photo where resource_id = '%s' and uid = %d",
|
||||
@ -222,12 +231,6 @@ function photo_upload($channel, $observer, $args) {
|
||||
return $ret;
|
||||
}
|
||||
|
||||
// This will be the width and height of the smallest representation
|
||||
|
||||
$width_x_height = $ph->getWidth() . 'x' . $ph->getHeight();
|
||||
|
||||
// Create item container
|
||||
|
||||
$item_hidden = (($visible) ? 0 : 1 );
|
||||
|
||||
$lat = $lon = null;
|
||||
@ -239,6 +242,19 @@ function photo_upload($channel, $observer, $args) {
|
||||
}
|
||||
}
|
||||
|
||||
$larger = feature_enabled($channel['channel_id'], 'large_photos');
|
||||
|
||||
if($larger) {
|
||||
$tag = (($r1wxh) ? '[zmg=' . $r1wxh . ']' : '[zmg]');
|
||||
$scale = 1;
|
||||
}
|
||||
else {
|
||||
$tag = (($r2wxh) ? '[zmg=' . $r2wxh . ']' : '[zmg]');
|
||||
$scale = 2;
|
||||
}
|
||||
|
||||
// Create item container
|
||||
|
||||
if($args['item']) {
|
||||
foreach($args['item'] as $i) {
|
||||
|
||||
@ -248,7 +264,7 @@ function photo_upload($channel, $observer, $args) {
|
||||
if($item['mid'] === $item['parent_mid']) {
|
||||
|
||||
$item['body'] = '[zrl=' . z_root() . '/photos/' . $channel['channel_address'] . '/image/' . $photo_hash . ']'
|
||||
. $tag . z_root() . "/photo/{$photo_hash}-{$smallest}.".$ph->getExt() . '[/zmg]'
|
||||
. $tag . z_root() . "/photo/{$photo_hash}-{$scale}.".$ph->getExt() . '[/zmg]'
|
||||
. '[/zrl]';
|
||||
|
||||
if($item['author_xchan'] === $channel['channel_hash']) {
|
||||
@ -281,7 +297,7 @@ function photo_upload($channel, $observer, $args) {
|
||||
}
|
||||
}
|
||||
else {
|
||||
$title = '';
|
||||
$title = $args['filename'] ? $args['filename'] : '';
|
||||
$mid = item_message_id();
|
||||
|
||||
$arr = array();
|
||||
@ -310,26 +326,8 @@ function photo_upload($channel, $observer, $args) {
|
||||
$arr['item_private'] = intval($acl->is_private());
|
||||
$arr['plink'] = z_root() . '/channel/' . $channel['channel_address'] . '/?f=&mid=' . $arr['mid'];
|
||||
|
||||
// We should also put a width_x_height on large photos. Left as an exercise for
|
||||
// devs looking for simple stuff to fix.
|
||||
|
||||
$larger = feature_enabled($channel['channel_id'], 'large_photos');
|
||||
if($larger) {
|
||||
$tag = '[zmg]';
|
||||
if($r2)
|
||||
$smallest = 1;
|
||||
else
|
||||
$smallest = 0;
|
||||
}
|
||||
else {
|
||||
if ($width_x_height)
|
||||
$tag = '[zmg=' . $width_x_height. ']';
|
||||
else
|
||||
$tag = '[zmg]';
|
||||
}
|
||||
|
||||
$arr['body'] = '[zrl=' . z_root() . '/photos/' . $channel['channel_address'] . '/image/' . $photo_hash . ']'
|
||||
. $tag . z_root() . "/photo/{$photo_hash}-{$smallest}.".$ph->getExt() . '[/zmg]'
|
||||
. $tag . z_root() . "/photo/{$photo_hash}-{$scale}.".$ph->getExt() . '[/zmg]'
|
||||
. '[/zrl]';
|
||||
|
||||
$result = item_store($arr);
|
||||
|
@ -185,7 +185,7 @@ function dir_tagadelic($count = 0) {
|
||||
$count = intval($count);
|
||||
|
||||
// Fetch tags
|
||||
$r = q("select xtag_term, count(xtag_term) as total from xtag
|
||||
$r = q("select xtag_term, count(xtag_term) as total from xtag where xtag_flags = 0
|
||||
group by xtag_term order by total desc %s",
|
||||
((intval($count)) ? "limit $count" : '')
|
||||
);
|
||||
|
138
include/text.php
138
include/text.php
@ -1216,36 +1216,15 @@ function theme_attachments(&$item) {
|
||||
if(is_array($arr) && count($arr)) {
|
||||
$attaches = array();
|
||||
foreach($arr as $r) {
|
||||
$icon = '';
|
||||
$icontype = substr($r['type'],0,strpos($r['type'],'/'));
|
||||
|
||||
/**
|
||||
* @FIXME This should probably be a giant "if" statement in the
|
||||
* template so that we don't have icon names embedded in php code.
|
||||
*/
|
||||
$icon = getIconFromType($r['type']);
|
||||
$label = (($r['title']) ? urldecode(htmlspecialchars($r['title'], ENT_COMPAT, 'UTF-8')) : t('Unknown Attachment'));
|
||||
|
||||
switch($icontype) {
|
||||
case 'video':
|
||||
$icon = 'icon-facetime-video';
|
||||
break;
|
||||
case 'audio':
|
||||
$icon = 'icon-volume-up';
|
||||
break;
|
||||
case 'image':
|
||||
$icon = 'icon-picture';
|
||||
break;
|
||||
case 'text':
|
||||
$icon = 'icon-align-justify';
|
||||
break;
|
||||
default:
|
||||
$icon = 'icon-question';
|
||||
break;
|
||||
}
|
||||
//some feeds provide an attachment where title an empty space
|
||||
if($label == ' ')
|
||||
$label = t('Unknown Attachment');
|
||||
|
||||
$title = htmlspecialchars($r['title'], ENT_COMPAT,'UTF-8');
|
||||
if(! $title)
|
||||
$title = t('unknown.???');
|
||||
$title .= ' ' . (($r['length']) ? $r['length'] . ' ' . t('bytes') : '');
|
||||
$title = t('Attachment') . ' - ' . (($r['length']) ? userReadableSize($r['length']) : t('Size Unknown'));
|
||||
|
||||
require_once('include/identity.php');
|
||||
if(is_foreigner($item['author_xchan']))
|
||||
@ -1253,14 +1232,14 @@ function theme_attachments(&$item) {
|
||||
else
|
||||
$url = z_root() . '/magic?f=&hash=' . $item['author_xchan'] . '&dest=' . $r['href'] . '/' . $r['revision'];
|
||||
|
||||
$s .= '<a href="' . $url . '" title="' . $title . '" class="attachlink" >' . $icon . '</a>';
|
||||
$attaches[] = array('title' => $title, 'url' => $url, 'icon' => $icon );
|
||||
//$s .= '<a href="' . $url . '" title="' . $title . '" class="attachlink" >' . $icon . '</a>';
|
||||
$attaches[] = array('label' => $label, 'url' => $url, 'icon' => $icon, 'title' => $title);
|
||||
}
|
||||
}
|
||||
|
||||
$s = replace_macros(get_markup_template('item_attach.tpl'), array(
|
||||
'$attaches' => $attaches
|
||||
));
|
||||
$s = replace_macros(get_markup_template('item_attach.tpl'), array(
|
||||
'$attaches' => $attaches
|
||||
));
|
||||
}
|
||||
|
||||
return $s;
|
||||
}
|
||||
@ -1279,11 +1258,12 @@ function format_categories(&$item,$writeable) {
|
||||
$removelink = (($writeable) ? z_root() . '/filerm/' . $item['id'] . '?f=&cat=' . urlencode($t['term']) : '');
|
||||
$categories[] = array('term' => $term, 'writeable' => $writeable, 'removelink' => $removelink, 'url' => zid($t['url']));
|
||||
}
|
||||
|
||||
$s = replace_macros(get_markup_template('item_categories.tpl'),array(
|
||||
'$remove' => t('remove category'),
|
||||
'$categories' => $categories
|
||||
));
|
||||
}
|
||||
$s = replace_macros(get_markup_template('item_categories.tpl'),array(
|
||||
'$remove' => t('remove category'),
|
||||
'$categories' => $categories
|
||||
));
|
||||
|
||||
return $s;
|
||||
}
|
||||
@ -1294,6 +1274,7 @@ function format_categories(&$item,$writeable) {
|
||||
* @param[in] array &$item
|
||||
* @return string HTML link of hashtag
|
||||
*/
|
||||
|
||||
function format_hashtags(&$item) {
|
||||
$s = '';
|
||||
|
||||
@ -1354,11 +1335,12 @@ function format_filer(&$item) {
|
||||
$removelink = z_root() . '/filerm/' . $item['id'] . '?f=&term=' . urlencode($t['term']);
|
||||
$categories[] = array('term' => $term, 'removelink' => $removelink);
|
||||
}
|
||||
|
||||
$s = replace_macros(get_markup_template('item_filer.tpl'),array(
|
||||
'$remove' => t('remove from file'),
|
||||
'$categories' => $categories
|
||||
));
|
||||
}
|
||||
$s = replace_macros(get_markup_template('item_filer.tpl'),array(
|
||||
'$remove' => t('remove from file'),
|
||||
'$categories' => $categories
|
||||
));
|
||||
|
||||
return $s;
|
||||
}
|
||||
@ -1411,19 +1393,19 @@ function prepare_body(&$item,$attach = false) {
|
||||
}
|
||||
}
|
||||
|
||||
$s .= theme_attachments($item);
|
||||
$attachments = theme_attachments($item);
|
||||
|
||||
$writeable = ((get_observer_hash() == $item['owner_xchan']) ? true : false);
|
||||
|
||||
$s .= format_hashtags($item);
|
||||
$tags = format_hashtags($item);
|
||||
|
||||
if($item['resource_type'])
|
||||
$s .= format_mentions($item);
|
||||
$mentions = format_mentions($item);
|
||||
|
||||
$s .= format_categories($item,$writeable);
|
||||
$categories = format_categories($item,$writeable);
|
||||
|
||||
if(local_channel() == $item['uid'])
|
||||
$s .= format_filer($item);
|
||||
$filer = format_filer($item);
|
||||
|
||||
$s = sslify($s);
|
||||
|
||||
@ -1456,9 +1438,19 @@ function prepare_body(&$item,$attach = false) {
|
||||
$s = substr($s, 0, $pos).$authorreplace.substr($s, $pos+strlen($authorsearch));
|
||||
}
|
||||
|
||||
$prep_arr = array('item' => $item, 'html' => $s);
|
||||
$prep_arr = array(
|
||||
//'item' => $item,
|
||||
'html' => $s,
|
||||
'categories' => $categories,
|
||||
'folders' => $filer,
|
||||
'tags' => $tags,
|
||||
'mentions' => $mentions,
|
||||
'attachments' => $attachments
|
||||
);
|
||||
|
||||
call_hooks('prepare_body_final', $prep_arr);
|
||||
return $prep_arr['html'];
|
||||
|
||||
return $prep_arr;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1983,7 +1975,7 @@ function xchan_query(&$items,$abook = true,$effective_uid = 0) {
|
||||
$chans = q("select xchan.*,hubloc.* from xchan left join hubloc on hubloc_hash = xchan_hash
|
||||
where xchan_hash in (" . implode(',', $arr) . ") and hubloc_primary = 1");
|
||||
}
|
||||
$xchans = q("select * from xchan where xchan_hash in (" . implode(',',$arr) . ") and xchan_network in ('rss','unknown')");
|
||||
$xchans = q("select * from xchan where xchan_hash in (" . protect_sprintf(implode(',',$arr)) . ") and xchan_network in ('rss','unknown')");
|
||||
if(! $chans)
|
||||
$chans = $xchans;
|
||||
else
|
||||
@ -2221,7 +2213,7 @@ function handle_tag($a, &$body, &$access_tag, &$str_tags, $profile_uid, $tag, $d
|
||||
}
|
||||
if($tag == '#getzot') {
|
||||
$basetag = 'getzot';
|
||||
$url = 'https://redmatrix.me';
|
||||
$url = 'http://hubzilla.org';
|
||||
$newtag = '#[zrl=' . $url . ']' . $basetag . '[/zrl]';
|
||||
$body = str_replace($tag,$newtag,$body);
|
||||
$replaced = true;
|
||||
@ -2490,6 +2482,7 @@ function linkify_tags($a, &$body, $uid, $diaspora = false) {
|
||||
*
|
||||
* @param string $type mime type
|
||||
* @return string
|
||||
* @todo rename to get_icon_from_type()
|
||||
*/
|
||||
function getIconFromType($type) {
|
||||
$iconMap = array(
|
||||
@ -2542,6 +2535,7 @@ function getIconFromType($type) {
|
||||
*
|
||||
* @param int $size filesize in bytes
|
||||
* @return string human readable formatted filesize
|
||||
* @todo rename to user_readable_size()
|
||||
*/
|
||||
function userReadableSize($size) {
|
||||
$ret = '';
|
||||
@ -2564,3 +2558,47 @@ function str_rot47($str) {
|
||||
'!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~',
|
||||
'PQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNO');
|
||||
}
|
||||
|
||||
|
||||
function string_replace($old,$new,&$s) {
|
||||
|
||||
$x = str_replace($old,$new,$s);
|
||||
$replaced = false;
|
||||
if($x !== $s) {
|
||||
$replaced = true;
|
||||
}
|
||||
$s = $x;
|
||||
return $replaced;
|
||||
}
|
||||
|
||||
|
||||
function json_url_replace($old,$new,&$s) {
|
||||
|
||||
$old = str_replace('/','\\/',$old);
|
||||
$new = str_replace('/','\\/',$new);
|
||||
|
||||
$x = str_replace($old,$new,$s);
|
||||
$replaced = false;
|
||||
if($x !== $s) {
|
||||
$replaced = true;
|
||||
}
|
||||
$s = $x;
|
||||
return $replaced;
|
||||
}
|
||||
|
||||
|
||||
function item_url_replace($channel,&$item,$old,$new) {
|
||||
|
||||
if($item['attach'])
|
||||
json_url_replace($old,$new,$item['attach']);
|
||||
if($item['object'])
|
||||
json_url_replace($old,$new,$item['object']);
|
||||
if($item['target'])
|
||||
json_url_replace($old,$new,$item['target']);
|
||||
|
||||
if(string_replace($old,$new,$item['body'])) {
|
||||
$item['sig'] = base64url_encode(rsa_sign($item['body'],$channel['channel_prvkey']));
|
||||
$item['item_verified'] = 1;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -565,12 +565,6 @@ function widget_mailmenu($arr) {
|
||||
|
||||
return replace_macros(get_markup_template('message_side.tpl'), array(
|
||||
'$title' => t('Private Mail Menu'),
|
||||
'$check'=>array(
|
||||
'label' => t('Check Mail'),
|
||||
'url' => $a->get_baseurl(true) . '/mail/combined',
|
||||
'sel' => (argv(1) == ''),
|
||||
),
|
||||
|
||||
'$combined'=>array(
|
||||
'label' => t('Combined View'),
|
||||
'url' => $a->get_baseurl(true) . '/mail/combined',
|
||||
|
106
include/zot.php
106
include/zot.php
@ -11,6 +11,7 @@
|
||||
require_once('include/crypto.php');
|
||||
require_once('include/items.php');
|
||||
require_once('include/hubloc.php');
|
||||
require_once('include/DReport.php');
|
||||
|
||||
|
||||
/**
|
||||
@ -502,7 +503,7 @@ function zot_refresh($them, $channel = null, $force = false) {
|
||||
|
||||
if($new_connection) {
|
||||
if($new_perms != $previous_perms)
|
||||
proc_run('php','include/notifier.php','permission_update',$new_connection[0]['abook_id']);
|
||||
proc_run('php','include/notifier.php','permission_create',$new_connection[0]['abook_id']);
|
||||
require_once('include/enotify.php');
|
||||
notification(array(
|
||||
'type' => NOTIFY_INTRO,
|
||||
@ -901,7 +902,7 @@ function import_xchan($arr,$ud_flags = UPDATE_FLAGS_UPDATED, $ud_arr = null) {
|
||||
$r = q("delete from xprof where xprof_hash = '%s'",
|
||||
dbesc($xchan_hash)
|
||||
);
|
||||
$r = q("delete from xtag where xtag_hash = '%s'",
|
||||
$r = q("delete from xtag where xtag_hash = '%s' and xtag_flags = 0",
|
||||
dbesc($xchan_hash)
|
||||
);
|
||||
}
|
||||
@ -964,7 +965,7 @@ function zot_process_response($hub, $arr, $outq) {
|
||||
|
||||
if(is_array($x) && array_key_exists('delivery_report',$x) && is_array($x['delivery_report'])) {
|
||||
foreach($x['delivery_report'] as $xx) {
|
||||
if(is_array($xx) && array_key_exists('message_id',$xx)) {
|
||||
if(is_array($xx) && array_key_exists('message_id',$xx) && delivery_report_is_storable($xx)) {
|
||||
q("insert into dreport ( dreport_mid, dreport_site, dreport_recip, dreport_result, dreport_time, dreport_xchan ) values ( '%s', '%s','%s','%s','%s','%s' ) ",
|
||||
dbesc($xx['message_id']),
|
||||
dbesc($xx['location']),
|
||||
@ -1556,7 +1557,6 @@ function allowed_public_recips($msg) {
|
||||
function process_delivery($sender, $arr, $deliveries, $relay, $public = false, $request = false) {
|
||||
|
||||
$result = array();
|
||||
require_once('include/DReport.php');
|
||||
|
||||
$result['site'] = z_root();
|
||||
|
||||
@ -1569,6 +1569,7 @@ function process_delivery($sender, $arr, $deliveries, $relay, $public = false, $
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
foreach($deliveries as $d) {
|
||||
$local_public = $public;
|
||||
|
||||
@ -1587,11 +1588,21 @@ function process_delivery($sender, $arr, $deliveries, $relay, $public = false, $
|
||||
$channel = $r[0];
|
||||
$DR->addto_recipient($channel['channel_name'] . ' <' . $channel['channel_address'] . '@' . get_app()->get_hostname() . '>');
|
||||
|
||||
if($d['hash'] === $sender['hash']) {
|
||||
$DR->update('self delivery ignored');
|
||||
$result[] = $DR->get();
|
||||
continue;
|
||||
}
|
||||
/**
|
||||
* @FIXME: Somehow we need to block normal message delivery from our clones, as the delivered
|
||||
* message doesn't have ACL information in it as the cloned copy does. That copy
|
||||
* will normally arrive first via sync delivery, but this isn't guaranteed.
|
||||
* There's a chance the current delivery could take place before the cloned copy arrives
|
||||
* hence the item could have the wrong ACL and *could* be used in subsequent deliveries or
|
||||
* access checks. So far all attempts at identifying this situation precisely
|
||||
* have caused issues with delivery of relayed comments.
|
||||
*/
|
||||
|
||||
// if(($d['hash'] === $sender['hash']) && ($sender['url'] !== z_root()) && (! $relay)) {
|
||||
// $DR->update('self delivery ignored');
|
||||
// $result[] = $DR->get();
|
||||
// continue;
|
||||
// }
|
||||
|
||||
// allow public postings to the sys channel regardless of permissions, but not
|
||||
// for comments travelling upstream. Wait and catch them on the way down.
|
||||
@ -1949,8 +1960,7 @@ function delete_imported_item($sender, $item, $uid, $relay) {
|
||||
$item_found = false;
|
||||
$post_id = 0;
|
||||
|
||||
|
||||
$r = q("select id, item_deleted from item where ( author_xchan = '%s' or owner_xchan = '%s' or source_xchan = '%s' )
|
||||
$r = q("select id, author_xchan, owner_xchan, source_xchan, item_deleted from item where ( author_xchan = '%s' or owner_xchan = '%s' or source_xchan = '%s' )
|
||||
and mid = '%s' and uid = %d limit 1",
|
||||
dbesc($sender['hash']),
|
||||
dbesc($sender['hash']),
|
||||
@ -1958,6 +1968,7 @@ function delete_imported_item($sender, $item, $uid, $relay) {
|
||||
dbesc($item['mid']),
|
||||
intval($uid)
|
||||
);
|
||||
|
||||
if ($r) {
|
||||
if ($r[0]['author_xchan'] === $sender['hash'] || $r[0]['owner_xchan'] === $sender['hash'] || $r[0]['source_xchan'] === $sender['hash'])
|
||||
$ownership_valid = true;
|
||||
@ -2031,20 +2042,26 @@ function process_mail_delivery($sender, $arr, $deliveries) {
|
||||
}
|
||||
|
||||
foreach($deliveries as $d) {
|
||||
|
||||
$DR = new DReport(z_root(),$sender['hash'],$d['hash'],$arr['mid']);
|
||||
|
||||
$r = q("select * from channel where channel_hash = '%s' limit 1",
|
||||
dbesc($d['hash'])
|
||||
);
|
||||
|
||||
if(! $r) {
|
||||
$result[] = array($d['hash'],'not found');
|
||||
$DR->update('recipient not found');
|
||||
$result[] = $DR->get();
|
||||
continue;
|
||||
}
|
||||
|
||||
$channel = $r[0];
|
||||
$DR->addto_recipient($channel['channel_name'] . ' <' . $channel['channel_address'] . '@' . get_app()->get_hostname() . '>');
|
||||
|
||||
if(! perm_is_allowed($channel['channel_id'],$sender['hash'],'post_mail')) {
|
||||
logger("permission denied for mail delivery {$channel['channel_id']}");
|
||||
$result[] = array($d['hash'],'permission denied',$channel['channel_name'],$arr['mid']);
|
||||
$DR->update('permission denied');
|
||||
$result[] = $DR->get();
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -2058,11 +2075,13 @@ function process_mail_delivery($sender, $arr, $deliveries) {
|
||||
intval($r[0]['id']),
|
||||
intval($channel['channel_id'])
|
||||
);
|
||||
$result[] = array($d['hash'],'mail recalled',$channel['channel_name'],$arr['mid']);
|
||||
$DR->update('mail recalled');
|
||||
$result[] = $DR->get();
|
||||
logger('mail_recalled');
|
||||
}
|
||||
else {
|
||||
$result[] = array($d['hash'],'duplicate mail received',$channel['channel_name'],$arr['mid']);
|
||||
$DR->update('duplicate mail received');
|
||||
$result[] = $DR->get();
|
||||
logger('duplicate mail received');
|
||||
}
|
||||
continue;
|
||||
@ -2071,7 +2090,8 @@ function process_mail_delivery($sender, $arr, $deliveries) {
|
||||
$arr['account_id'] = $channel['channel_account_id'];
|
||||
$arr['channel_id'] = $channel['channel_id'];
|
||||
$item_id = mail_store($arr);
|
||||
$result[] = array($d['hash'],'mail delivered',$channel['channel_name'],$arr['mid']);
|
||||
$DR->update('mail delivered');
|
||||
$result[] = $DR->get();
|
||||
}
|
||||
}
|
||||
|
||||
@ -2580,7 +2600,7 @@ function import_directory_profile($hash, $profile, $addr, $ud_flags = UPDATE_FLA
|
||||
function import_directory_keywords($hash, $keywords) {
|
||||
|
||||
$existing = array();
|
||||
$r = q("select * from xtag where xtag_hash = '%s'",
|
||||
$r = q("select * from xtag where xtag_hash = '%s' and xtag_flags = 0",
|
||||
dbesc($hash)
|
||||
);
|
||||
|
||||
@ -2598,14 +2618,14 @@ function import_directory_keywords($hash, $keywords) {
|
||||
|
||||
foreach($existing as $x) {
|
||||
if(! in_array($x, $clean))
|
||||
$r = q("delete from xtag where xtag_hash = '%s' and xtag_term = '%s'",
|
||||
$r = q("delete from xtag where xtag_hash = '%s' and xtag_term = '%s' and xtag_flags = 0",
|
||||
dbesc($hash),
|
||||
dbesc($x)
|
||||
);
|
||||
}
|
||||
foreach($clean as $x) {
|
||||
if(! in_array($x, $existing)) {
|
||||
$r = q("insert into xtag ( xtag_hash, xtag_term) values ( '%s' ,'%s' )",
|
||||
$r = q("insert into xtag ( xtag_hash, xtag_term, xtag_flags) values ( '%s' ,'%s', 0 )",
|
||||
dbesc($hash),
|
||||
dbesc($x)
|
||||
);
|
||||
@ -2982,6 +3002,12 @@ function process_channel_sync_delivery($sender, $arr, $deliveries) {
|
||||
if(array_key_exists('chatroom',$arr) && $arr['chatroom'])
|
||||
sync_chatrooms($channel,$arr['chatroom']);
|
||||
|
||||
if(array_key_exists('conv',$arr) && $arr['conv'])
|
||||
import_conv($channel,$arr['conv']);
|
||||
|
||||
if(array_key_exists('mail',$arr) && $arr['mail'])
|
||||
import_mail($channel,$arr['mail']);
|
||||
|
||||
if(array_key_exists('event',$arr) && $arr['event'])
|
||||
sync_events($channel,$arr['event']);
|
||||
|
||||
@ -3856,3 +3882,45 @@ function check_zotinfo($channel,$locations,&$ret) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function delivery_report_is_storable($dr) {
|
||||
|
||||
call_hooks('dreport_is_storable',$dr);
|
||||
|
||||
// let plugins accept or reject - if neither, continue on
|
||||
if(array_key_exists('accept',$dr) && intval($dr['accept']))
|
||||
return true;
|
||||
if(array_key_exists('reject',$dr) && intval($dr['reject']))
|
||||
return false;
|
||||
|
||||
if(! ($dr['sender']))
|
||||
return false;
|
||||
|
||||
// Is the sender one of our channels?
|
||||
|
||||
$c = q("select channel_id from channel where channel_hash = '%s' limit 1",
|
||||
dbesc($dr['sender'])
|
||||
);
|
||||
if(! $c)
|
||||
return false;
|
||||
|
||||
// is the recipient one of our connections, or do we want to store every report?
|
||||
|
||||
$r = explode(' ', $dr['recipient']);
|
||||
$rxchan = $r[0];
|
||||
$pcf = get_pconfig($c[0]['channel_id'],'system','dreport_store_all');
|
||||
if($pcf)
|
||||
return true;
|
||||
|
||||
$r = q("select abook_id from abook where abook_xchan = '%s' and abook_channel = %d limit 1",
|
||||
dbesc($rxchan),
|
||||
intval($c[0]['channel_id'])
|
||||
);
|
||||
if($r)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -147,7 +147,12 @@ use SSL, your webserver must not listen on port 443 at all.
|
||||
|
||||
|
||||
3. Create an empty database and note the access details (hostname, username,
|
||||
password, database name).
|
||||
password, database name). The MySQL client libraries will fallback to socket
|
||||
communication if the hostname is 'localhost' and some people have reported
|
||||
issues with the socket implementation. Use it if your requirements mandate.
|
||||
Otherwise if the database is served on the local server, use '127.0.0.1' for
|
||||
the hostname. See https://dev.mysql.com/doc/refman/5.0/en/connecting.html
|
||||
for more information.
|
||||
|
||||
4. If you know in advance that it will be impossible for the web server to
|
||||
write or create files in your web directory, create an empty file called
|
||||
|
@ -731,6 +731,7 @@ CREATE TABLE IF NOT EXISTS `likes` (
|
||||
CREATE TABLE IF NOT EXISTS `mail` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`convid` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`conv_guid` char(255) NOT NULL DEFAULT '',
|
||||
`mail_flags` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`from_xchan` char(255) NOT NULL DEFAULT '',
|
||||
`to_xchan` char(255) NOT NULL DEFAULT '',
|
||||
@ -761,6 +762,7 @@ CREATE TABLE IF NOT EXISTS `mail` (
|
||||
KEY `parent_mid` (`parent_mid`),
|
||||
KEY `expires` (`expires`),
|
||||
KEY `convid` (`convid`),
|
||||
KEY `conv_guid` (`conv_guid`),
|
||||
KEY `mail_deleted` (`mail_deleted`),
|
||||
KEY `mail_replied` (`mail_replied`),
|
||||
KEY `mail_isreply` (`mail_isreply`),
|
||||
|
@ -728,6 +728,7 @@ create index "likes_target_id" on likes ("target_id");
|
||||
CREATE TABLE "mail" (
|
||||
"id" serial NOT NULL,
|
||||
"convid" bigint NOT NULL DEFAULT '0',
|
||||
"conv_guid" text NOT NULL,
|
||||
"mail_flags" bigint NOT NULL DEFAULT '0',
|
||||
"from_xchan" text NOT NULL DEFAULT '',
|
||||
"to_xchan" text NOT NULL DEFAULT '',
|
||||
@ -750,6 +751,7 @@ CREATE TABLE "mail" (
|
||||
PRIMARY KEY ("id")
|
||||
);
|
||||
create index "mail_convid" on mail ("convid");
|
||||
create index "mail_conv_guid" on mail ("conv_guid");
|
||||
create index "mail_created" on mail ("created");
|
||||
create index "mail_flags" on mail ("mail_flags");
|
||||
create index "mail_account_id" on mail ("account_id");
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
define( 'UPDATE_VERSION' , 1156 );
|
||||
define( 'UPDATE_VERSION' , 1157 );
|
||||
|
||||
/**
|
||||
*
|
||||
@ -1885,3 +1885,25 @@ function update_r1155() {
|
||||
return UPDATE_FAILED;
|
||||
}
|
||||
|
||||
|
||||
function update_r1156() {
|
||||
$r1 = q("ALTER TABLE mail ADD conv_guid CHAR( 255 ) NOT NULL DEFAULT '' ");
|
||||
$r2 = q("create index conv_guid on mail ( conv_guid ) ");
|
||||
|
||||
$r3 = q("select mail.id, mail.convid, conv.guid from mail left join conv on mail.convid = conv.id where true");
|
||||
if($r3) {
|
||||
foreach($r3 as $rr) {
|
||||
if($rr['convid']) {
|
||||
q("update mail set conv_guid = '%s' where id = %d",
|
||||
dbesc($rr['guid']),
|
||||
intval($rr['id'])
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if($r1 && $r2)
|
||||
return UPDATE_SUCCESS;
|
||||
return UPDATE_FAILED;
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
##
|
||||
## Bundle of CA Root Certificates
|
||||
##
|
||||
## Certificate data from Mozilla as of: Wed Apr 22 03:12:04 2015
|
||||
## Certificate data from Mozilla as of: Wed Sep 2 18:30:34 2015
|
||||
##
|
||||
## This is a bundle of X.509 certificates of public Certificate Authorities
|
||||
## (CA). These were automatically extracted from Mozilla's root certificates
|
||||
|
@ -1,7 +1,7 @@
|
||||
##
|
||||
## Bundle of CA Root Certificates
|
||||
##
|
||||
## Certificate data from Mozilla as of: Wed Apr 22 03:12:04 2015
|
||||
## Certificate data from Mozilla as of: Wed Sep 2 18:30:34 2015
|
||||
##
|
||||
## This is a bundle of X.509 certificates of public Certificate Authorities
|
||||
## (CA). These were automatically extracted from Mozilla's root certificates
|
||||
|
@ -173,7 +173,7 @@ function channel_content(&$a, $update = 0, $load = false) {
|
||||
$r = q("SELECT distinct parent AS `item_id`, created from item
|
||||
left join abook on ( item.owner_xchan = abook.abook_xchan $abook_uids )
|
||||
WHERE uid = %d $item_normal
|
||||
AND item_wall = 1 AND item_unseen = 1
|
||||
AND item_wall = 1 $simple_update
|
||||
AND (abook.abook_blocked = 0 or abook.abook_flags is null)
|
||||
$sql_extra
|
||||
ORDER BY created DESC",
|
||||
|
@ -59,6 +59,9 @@ function chat_post(&$a) {
|
||||
|
||||
$arr = $acl->get();
|
||||
$arr['name'] = $room;
|
||||
$arr['expire'] = intval($_POST['chat_expire']);
|
||||
if(intval($arr['expire']) < 0)
|
||||
$arr['expire'] = 0;
|
||||
|
||||
chatroom_create($channel,$arr);
|
||||
|
||||
@ -204,6 +207,7 @@ function chat_content(&$a) {
|
||||
$o = replace_macros(get_markup_template('chatroom_new.tpl'),array(
|
||||
'$header' => t('New Chatroom'),
|
||||
'$name' => array('room_name',t('Chatroom Name'),'', ''),
|
||||
'$chat_expire' => array('chat_expire',t('Expiration of chats (minutes)'),120,''),
|
||||
'$permissions' => t('Permissions'),
|
||||
'$acl' => populate_acl($channel_acl,false),
|
||||
'$submit' => t('Submit')
|
||||
|
@ -190,7 +190,7 @@ function connedit_post(&$a) {
|
||||
}
|
||||
}
|
||||
|
||||
$abook_pending = $new_friend ? 0 : $orig_record[0]['abook_pending'];
|
||||
$abook_pending = (($new_friend) ? 0 : $orig_record[0]['abook_pending'];
|
||||
|
||||
$r = q("UPDATE abook SET abook_profile = '%s', abook_my_perms = %d , abook_closeness = %d, abook_pending = %d,
|
||||
abook_incl = '%s', abook_excl = '%s'
|
||||
@ -214,7 +214,6 @@ function connedit_post(&$a) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
if($r)
|
||||
info( t('Connection updated.') . EOL);
|
||||
else
|
||||
@ -222,7 +221,7 @@ function connedit_post(&$a) {
|
||||
|
||||
if($a->poi && $a->poi['abook_my_perms'] != $abook_my_perms
|
||||
&& (! intval($a->poi['abook_self']))) {
|
||||
proc_run('php', 'include/notifier.php', 'permission_update', $contact_id);
|
||||
proc_run('php', 'include/notifier.php', (($new_friend) ? 'permission_create' : 'permission_update'), $contact_id);
|
||||
}
|
||||
|
||||
if($new_friend) {
|
||||
|
@ -7,15 +7,45 @@ function dreport_content(&$a) {
|
||||
return;
|
||||
}
|
||||
|
||||
$table = 'item';
|
||||
|
||||
$channel = $a->get_channel();
|
||||
|
||||
$mid = ((argc() > 1) ? argv(1) : '');
|
||||
|
||||
if($mid === 'mail') {
|
||||
$table = 'mail';
|
||||
$mid = ((argc() > 2) ? argv(2) : '');
|
||||
}
|
||||
|
||||
|
||||
if(! $mid) {
|
||||
notice( t('Invalid message') . EOL);
|
||||
return;
|
||||
}
|
||||
|
||||
switch($table) {
|
||||
case 'item':
|
||||
$i = q("select id from item where mid = '%s' and author_xchan = '%s' ",
|
||||
dbesc($mid),
|
||||
dbesc($channel['channel_hash'])
|
||||
);
|
||||
break;
|
||||
case 'mail':
|
||||
$i = q("select id from mail where mid = '%s' and from_xchan = '%s'",
|
||||
dbesc($mid),
|
||||
dbesc($channel['channel_hash'])
|
||||
);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if(! $i) {
|
||||
notice( t('Permission denied') . EOL);
|
||||
return;
|
||||
}
|
||||
|
||||
$r = q("select * from dreport where dreport_xchan = '%s' and dreport_mid = '%s'",
|
||||
dbesc($channel['channel_hash']),
|
||||
dbesc($mid)
|
||||
@ -33,6 +63,11 @@ function dreport_content(&$a) {
|
||||
for($x = 0; $x < count($r); $x++ ) {
|
||||
$r[$x]['name'] = escape_tags(substr($r[$x]['dreport_recip'],strpos($r[$x]['dreport_recip'],' ')));
|
||||
|
||||
// This has two purposes: 1. make the delivery report strings translateable, and
|
||||
// 2. assign an ordering to item delivery results so we can group them and provide
|
||||
// a readable report with more interesting events listed toward the top and lesser
|
||||
// interesting items towards the bottom
|
||||
|
||||
switch($r[$x]['dreport_result']) {
|
||||
case 'channel sync processed':
|
||||
$r[$x]['gravity'] = 0;
|
||||
@ -61,6 +96,18 @@ function dreport_content(&$a) {
|
||||
$r[$x]['dreport_result'] = t('permission denied');
|
||||
$r[$x]['gravity'] = 6;
|
||||
break;
|
||||
case 'recipient not found':
|
||||
$r[$x]['dreport_result'] = t('recipient not found');
|
||||
break;
|
||||
case 'mail recalled':
|
||||
$r[$x]['dreport_result'] = t('mail recalled');
|
||||
break;
|
||||
case 'duplicate mail received':
|
||||
$r[$x]['dreport_result'] = t('duplicate mail received');
|
||||
break;
|
||||
case 'mail delivered':
|
||||
$r[$x]['dreport_result'] = t('mail delivered');
|
||||
break;
|
||||
default:
|
||||
$r[$x]['gravity'] = 1;
|
||||
break;
|
||||
|
@ -59,12 +59,14 @@ function home_content(&$a, $update = 0, $load = false) {
|
||||
return $o;
|
||||
}
|
||||
}
|
||||
if(strpos($frontpage,'http') !== 0)
|
||||
$frontpage = z_root() . '/' . $frontpage;
|
||||
if(intval(get_config('system','mirror_frontpage'))) {
|
||||
$o = '<html><head><title>' . t('$Projectname') . '</title></head><body style="margin: 0; padding: 0; border: none;" ><iframe src="' . z_root() . '/' . $frontpage . '" width="100%" height="100%" style="margin: 0; padding: 0; border: none;" ></iframe></body></html>';
|
||||
$o = '<html><head><title>' . t('$Projectname') . '</title></head><body style="margin: 0; padding: 0; border: none;" ><iframe src="' . $frontpage . '" width="100%" height="100%" style="margin: 0; padding: 0; border: none;" ></iframe></body></html>';
|
||||
echo $o;
|
||||
killme();
|
||||
}
|
||||
goaway(z_root() . '/' . $frontpage);
|
||||
goaway($frontpage);
|
||||
}
|
||||
|
||||
|
||||
|
@ -441,6 +441,12 @@ function import_post(&$a) {
|
||||
if(is_array($data['chatroom']))
|
||||
import_chatrooms($channel,$data['chatroom']);
|
||||
|
||||
if(is_array($data['conv']))
|
||||
import_conv($channel,$data['conv']);
|
||||
|
||||
if(is_array($data['mail']))
|
||||
import_mail($channel,$data['mail']);
|
||||
|
||||
if(is_array($data['event']))
|
||||
import_events($channel,$data['event']);
|
||||
|
||||
|
23
mod/item.php
23
mod/item.php
@ -372,12 +372,23 @@ function item_post(&$a) {
|
||||
|
||||
}
|
||||
else {
|
||||
if((! $walltowall) &&
|
||||
((array_key_exists('contact_allow',$_REQUEST))
|
||||
|| (array_key_exists('group_allow',$_REQUEST))
|
||||
|| (array_key_exists('contact_deny',$_REQUEST))
|
||||
|| (array_key_exists('group_deny',$_REQUEST)))) {
|
||||
$acl->set_from_array($_REQUEST);
|
||||
if(! $walltowall) {
|
||||
if((array_key_exists('contact_allow',$_REQUEST))
|
||||
|| (array_key_exists('group_allow',$_REQUEST))
|
||||
|| (array_key_exists('contact_deny',$_REQUEST))
|
||||
|| (array_key_exists('group_deny',$_REQUEST))) {
|
||||
$acl->set_from_array($_REQUEST);
|
||||
}
|
||||
elseif(! $api_source) {
|
||||
|
||||
// if no ACL has been defined and we aren't using the API, the form
|
||||
// didn't send us any parameters. This means there's no ACL or it has
|
||||
// been reset to the default audience.
|
||||
// If $api_source is set and there are no ACL parameters, we default
|
||||
// to the channel permissions which were set in the ACL contructor.
|
||||
|
||||
$acl->set(array('allow_cid' => '', 'allow_gid' => '', 'deny_cid' => '', 'deny_gid' => ''));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
94
mod/mail.php
94
mod/mail.php
@ -97,7 +97,11 @@ function mail_post(&$a) {
|
||||
|
||||
$ret = send_message(0, $recipient, $body, $subject, $replyto, $expires);
|
||||
|
||||
if(! $ret['success']) {
|
||||
if($ret['success']) {
|
||||
xchan_mail_query($ret['mail']);
|
||||
build_sync_packet(0,array('conv' => array($ret['conv']),'mail' => array(encode_mail($ret['mail'],true))));
|
||||
}
|
||||
else {
|
||||
notice($ret['message']);
|
||||
}
|
||||
|
||||
@ -149,6 +153,14 @@ function mail_content(&$a) {
|
||||
intval(argv(3)),
|
||||
intval(local_channel())
|
||||
);
|
||||
$x = q("select * from mail where id = %d and channel_id = %d",
|
||||
intval(argv(3)),
|
||||
intval(local_channel())
|
||||
);
|
||||
if($x) {
|
||||
build_sync_packet(local_channel(),array('mail' => encode_mail($x[0],true)));
|
||||
}
|
||||
|
||||
proc_run('php','include/notifier.php','mail',intval(argv(3)));
|
||||
|
||||
if($r) {
|
||||
@ -185,68 +197,48 @@ function mail_content(&$a) {
|
||||
|
||||
$a->page['htmlhead'] .= $header;
|
||||
|
||||
|
||||
$preselect = (isset($a->argv[2])?array($a->argv[2]):false);
|
||||
$prename = $preurl = $preid = '';
|
||||
$prename = '';
|
||||
$preid = '';
|
||||
|
||||
if(x($_REQUEST,'hash')) {
|
||||
|
||||
$r = q("select abook.*, xchan.* from abook left join xchan on abook_xchan = xchan_hash
|
||||
where abook_channel = %d and abook_xchan = '%s' limit 1",
|
||||
intval(local_channel()),
|
||||
dbesc($_REQUEST['hash'])
|
||||
);
|
||||
if($r) {
|
||||
$prename = $r[0]['xchan_name'];
|
||||
$preurl = $r[0]['xchan_url'];
|
||||
$preid = $r[0]['abook_id'];
|
||||
$preselect = array($preid);
|
||||
|
||||
if(!$r) {
|
||||
$r = q("select * from xchan where xchan_hash = '%s' and xchan_network = 'zot' limit 1",
|
||||
dbesc($_REQUEST['hash'])
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if($preselect) {
|
||||
$r = q("select abook.*, xchan.* from abook left join xchan on abook_xchan = xchan_hash
|
||||
where abook_channel = %d and abook_id = %d limit 1",
|
||||
intval(local_channel()),
|
||||
intval(argv(2))
|
||||
);
|
||||
if($r) {
|
||||
$prename = $r[0]['xchan_name'];
|
||||
$prename = (($r[0]['abook_id']) ? $r[0]['xchan_name'] : $r[0]['xchan_addr']);
|
||||
$preurl = $r[0]['xchan_url'];
|
||||
$preid = $r[0]['abook_id'];
|
||||
$preid = (($r[0]['abook_id']) ? ($r[0]['xchan_hash']) : '');
|
||||
}
|
||||
else {
|
||||
notice( t('Requested channel is not in this network') . EOL );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$prefill = (($preselect) ? $prename : '');
|
||||
|
||||
if(! $prefill) {
|
||||
if(array_key_exists('to',$_REQUEST))
|
||||
$prefill = $_REQUEST['to'];
|
||||
}
|
||||
|
||||
// the ugly select box
|
||||
|
||||
$select = contact_select('messageto','message-to-select', $preselect, 4, true, false, false, 10);
|
||||
|
||||
$tpl = get_markup_template('prv_message.tpl');
|
||||
$o .= replace_macros($tpl,array(
|
||||
'$new' => true,
|
||||
'$header' => t('Send Private Message'),
|
||||
'$to' => t('To:'),
|
||||
'$showinputs' => 'true',
|
||||
'$prefill' => $prefill,
|
||||
'$autocomp' => $autocomp,
|
||||
'$prefill' => $prename,
|
||||
'$preid' => $preid,
|
||||
'$subject' => t('Subject:'),
|
||||
'$subjtxt' => ((x($_REQUEST,'subject')) ? strip_tags($_REQUEST['subject']) : ''),
|
||||
'$text' => ((x($_REQUEST,'body')) ? htmlspecialchars($_REQUEST['body'], ENT_COMPAT, 'UTF-8') : ''),
|
||||
'$readonly' => '',
|
||||
'$yourmessage' => t('Your message:'),
|
||||
'$select' => $select,
|
||||
'$parent' => '',
|
||||
'$upload' => t('Upload photo'),
|
||||
'$attach' => t('Attach file'),
|
||||
'$insert' => t('Insert web link'),
|
||||
'$wait' => t('Please wait'),
|
||||
'$submit' => t('Send'),
|
||||
'$defexpire' => '',
|
||||
'$feature_expire' => ((feature_enabled(local_channel(),'content_expire')) ? true : false),
|
||||
@ -254,8 +246,6 @@ function mail_content(&$a) {
|
||||
'$feature_encrypt' => ((feature_enabled(local_channel(),'content_encrypt')) ? true : false),
|
||||
'$encrypt' => t('Encrypt text'),
|
||||
'$cipher' => $cipher,
|
||||
|
||||
|
||||
));
|
||||
|
||||
return $o;
|
||||
@ -285,7 +275,14 @@ function mail_content(&$a) {
|
||||
// if( local_channel() && feature_enabled(local_channel(),'richtext') )
|
||||
// $plaintext = false;
|
||||
|
||||
$messages = private_messages_fetch_conversation(local_channel(), $mid, true);
|
||||
|
||||
|
||||
if($mailbox == 'combined') {
|
||||
$messages = private_messages_fetch_conversation(local_channel(), $mid, true);
|
||||
}
|
||||
else {
|
||||
$messages = private_messages_fetch_message(local_channel(), $mid, true);
|
||||
}
|
||||
|
||||
if(! $messages) {
|
||||
//info( t('Message not found.') . EOL);
|
||||
@ -324,6 +321,7 @@ function mail_content(&$a) {
|
||||
$mails[] = array(
|
||||
'mailbox' => $mailbox,
|
||||
'id' => $message['id'],
|
||||
'mid' => $message['mid'],
|
||||
'from_name' => $message['from']['xchan_name'],
|
||||
'from_url' => chanlink_hash($message['from_xchan']),
|
||||
'from_photo' => $message['from']['xchan_photo_s'],
|
||||
@ -333,6 +331,7 @@ function mail_content(&$a) {
|
||||
'subject' => $message['title'],
|
||||
'body' => smilies(bbcode($message['body']) . $s),
|
||||
'delete' => t('Delete message'),
|
||||
'dreport' => t('Delivery report'),
|
||||
'recall' => t('Recall message'),
|
||||
'can_recall' => (($channel['channel_hash'] == $message['from_xchan']) ? true : false),
|
||||
'is_recalled' => (intval($message['mail_recalled']) ? t('Message has been recalled.') : ''),
|
||||
@ -345,10 +344,6 @@ function mail_content(&$a) {
|
||||
|
||||
$recp = (($message['from_xchan'] === $channel['channel_hash']) ? 'to' : 'from');
|
||||
|
||||
// FIXME - move this HTML to template
|
||||
|
||||
$select = $message[$recp]['xchan_name'] . '<input type="hidden" name="messageto" value="' . $message[$recp]['xchan_hash'] . '" />';
|
||||
$parent = '<input type="hidden" name="replyto" value="' . $message['parent_mid'] . '" />';
|
||||
$tpl = get_markup_template('mail_display.tpl');
|
||||
$o = replace_macros($tpl, array(
|
||||
'$mailbox' => $mailbox,
|
||||
@ -364,19 +359,16 @@ function mail_content(&$a) {
|
||||
// reply
|
||||
'$header' => t('Send Reply'),
|
||||
'$to' => t('To:'),
|
||||
'$showinputs' => '',
|
||||
'$reply' => true,
|
||||
'$subject' => t('Subject:'),
|
||||
'$subjtxt' => $message['title'],
|
||||
'$readonly' => 'readonly="readonly"',
|
||||
'$yourmessage' => t('Your message:'),
|
||||
'$yourmessage' => sprintf(t('Your message for %s (%s):'), $message[$recp]['xchan_name'], $message[$recp]['xchan_addr']),
|
||||
'$text' => '',
|
||||
'$select' => $select,
|
||||
'$parent' => $parent,
|
||||
'$upload' => t('Upload photo'),
|
||||
'$parent' => $message['parent_mid'],
|
||||
'$recphash' => $message[$recp]['xchan_hash'],
|
||||
'$attach' => t('Attach file'),
|
||||
'$insert' => t('Insert web link'),
|
||||
'$submit' => t('Submit'),
|
||||
'$wait' => t('Please wait'),
|
||||
'$defexpire' => '',
|
||||
'$feature_expire' => ((feature_enabled(local_channel(),'content_expire')) ? true : false),
|
||||
'$expires' => t('Set expiration date'),
|
||||
|
108
mod/photos.php
108
mod/photos.php
@ -149,8 +149,9 @@ function photos_post(&$a) {
|
||||
if($r) {
|
||||
foreach($r as $i) {
|
||||
attach_delete($page_owner_uid, $i['resource_id'], 1 );
|
||||
drop_item($i['id'],false,DROPITEM_PHASE1,true /* force removal of linked items */);
|
||||
proc_run('php','include/notifier.php','drop',$i['id']);
|
||||
// This is now being done in attach_delete()
|
||||
// drop_item($i['id'],false,DROPITEM_PHASE1,true /* force removal of linked items */);
|
||||
// proc_run('php','include/notifier.php','drop',$i['id']);
|
||||
}
|
||||
}
|
||||
|
||||
@ -182,12 +183,17 @@ function photos_post(&$a) {
|
||||
);
|
||||
|
||||
if($r) {
|
||||
|
||||
/* this happens in attach_delete
|
||||
q("DELETE FROM `photo` WHERE `uid` = %d AND `resource_id` = '%s'",
|
||||
intval($page_owner_uid),
|
||||
dbesc($r[0]['resource_id'])
|
||||
);
|
||||
*/
|
||||
|
||||
attach_delete($page_owner_uid, $r[0]['resource_id'], 1 );
|
||||
|
||||
/* this happens in attach_delete
|
||||
$i = q("SELECT * FROM `item` WHERE `resource_id` = '%s' AND resource_type = 'photo' and `uid` = %d LIMIT 1",
|
||||
dbesc($r[0]['resource_id']),
|
||||
intval($page_owner_uid)
|
||||
@ -196,6 +202,7 @@ function photos_post(&$a) {
|
||||
drop_item($i[0]['id'],true,DROPITEM_PHASE1);
|
||||
$url = $a->get_baseurl();
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
goaway($a->get_baseurl() . '/photos/' . $a->data['channel']['channel_address'] . '/album/' . $_SESSION['album_return']);
|
||||
@ -229,7 +236,8 @@ function photos_post(&$a) {
|
||||
intval($page_owner_uid)
|
||||
);
|
||||
if(count($r)) {
|
||||
$ph = photo_factory(dbunescbin($r[0]['data']), $r[0]['type']);
|
||||
$d = (($r[0]['os_storage']) ? @file_get_contents($r[0]['data']) : dbunescbin($r[0]['data']));
|
||||
$ph = photo_factory($d, $r[0]['type']);
|
||||
if($ph->is_valid()) {
|
||||
$rotate_deg = ( (intval($_POST['rotate']) == 1) ? 270 : 90 );
|
||||
$ph->rotate($rotate_deg);
|
||||
@ -237,7 +245,37 @@ function photos_post(&$a) {
|
||||
$width = $ph->getWidth();
|
||||
$height = $ph->getHeight();
|
||||
|
||||
$x = q("update photo set data = '%s', height = %d, width = %d where `resource_id` = '%s' and uid = %d and scale = 0",
|
||||
if(intval($r[0]['os_storage'])) {
|
||||
@file_put_contents($r[0]['data'],$ph->imageString());
|
||||
$data = $r[0]['data'];
|
||||
$fsize = @filesize($r[0]['data']);
|
||||
q("update attach set filesize = %d where hash = '%s' and uid = %d limit 1",
|
||||
intval($fsize),
|
||||
dbesc($resource_id),
|
||||
intval($page_owner_uid)
|
||||
);
|
||||
}
|
||||
else {
|
||||
$data = $ph->imageString();
|
||||
$fsize = strlen($data);
|
||||
}
|
||||
|
||||
$x = q("update photo set data = '%s', `size` = %d, height = %d, width = %d where `resource_id` = '%s' and uid = %d and scale = 0",
|
||||
dbescbin($data),
|
||||
intval($fsize),
|
||||
intval($height),
|
||||
intval($width),
|
||||
dbesc($resource_id),
|
||||
intval($page_owner_uid)
|
||||
);
|
||||
|
||||
if($width > 1024 || $height > 1024)
|
||||
$ph->scaleImage(1024);
|
||||
|
||||
$width = $ph->getWidth();
|
||||
$height = $ph->getHeight();
|
||||
|
||||
$x = q("update photo set data = '%s', height = %d, width = %d where `resource_id` = '%s' and uid = %d and scale = 1",
|
||||
dbescbin($ph->imageString()),
|
||||
intval($height),
|
||||
intval($width),
|
||||
@ -245,38 +283,40 @@ function photos_post(&$a) {
|
||||
intval($page_owner_uid)
|
||||
);
|
||||
|
||||
if($width > 640 || $height > 640) {
|
||||
|
||||
if($width > 640 || $height > 640)
|
||||
$ph->scaleImage(640);
|
||||
$width = $ph->getWidth();
|
||||
$height = $ph->getHeight();
|
||||
|
||||
$x = q("update photo set data = '%s', height = %d, width = %d where `resource_id` = '%s' and uid = %d and scale = 1",
|
||||
dbescbin($ph->imageString()),
|
||||
intval($height),
|
||||
intval($width),
|
||||
dbesc($resource_id),
|
||||
intval($page_owner_uid)
|
||||
);
|
||||
}
|
||||
$width = $ph->getWidth();
|
||||
$height = $ph->getHeight();
|
||||
|
||||
if($width > 320 || $height > 320) {
|
||||
$x = q("update photo set data = '%s', height = %d, width = %d where `resource_id` = '%s' and uid = %d and scale = 2",
|
||||
dbescbin($ph->imageString()),
|
||||
intval($height),
|
||||
intval($width),
|
||||
dbesc($resource_id),
|
||||
intval($page_owner_uid)
|
||||
);
|
||||
|
||||
|
||||
if($width > 320 || $height > 320)
|
||||
$ph->scaleImage(320);
|
||||
$width = $ph->getWidth();
|
||||
$height = $ph->getHeight();
|
||||
|
||||
$x = q("update photo set data = '%s', height = %d, width = %d where `resource_id` = '%s' and uid = %d and scale = 2",
|
||||
dbescbin($ph->imageString()),
|
||||
intval($height),
|
||||
intval($width),
|
||||
dbesc($resource_id),
|
||||
intval($page_owner_uid)
|
||||
);
|
||||
}
|
||||
$width = $ph->getWidth();
|
||||
$height = $ph->getHeight();
|
||||
|
||||
$x = q("update photo set data = '%s', height = %d, width = %d where `resource_id` = '%s' and uid = %d and scale = 3",
|
||||
dbescbin($ph->imageString()),
|
||||
intval($height),
|
||||
intval($width),
|
||||
dbesc($resource_id),
|
||||
intval($page_owner_uid)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$p = q("SELECT * FROM `photo` WHERE `resource_id` = '%s' AND `uid` = %d ORDER BY `scale` DESC",
|
||||
$p = q("SELECT type, is_nsfw, description, resource_id, scale, allow_cid, allow_gid, deny_cid, deny_gid FROM photo WHERE resource_id = '%s' AND uid = %d ORDER BY scale DESC",
|
||||
dbesc($resource_id),
|
||||
intval($page_owner_uid)
|
||||
);
|
||||
@ -982,13 +1022,13 @@ function photos_content(&$a) {
|
||||
$likebuttons = '';
|
||||
|
||||
if($can_post || $can_comment) {
|
||||
$likebuttons = replace_macros($like_tpl,array(
|
||||
'$id' => $link_item['id'],
|
||||
'$likethis' => t("I like this \x28toggle\x29"),
|
||||
'$nolike' => t("I don't like this \x28toggle\x29"),
|
||||
'$share' => t('Share'),
|
||||
'$wait' => t('Please wait')
|
||||
));
|
||||
$likebuttons = array(
|
||||
'id' => $link_item['id'],
|
||||
'likethis' => t("I like this \x28toggle\x29"),
|
||||
'nolike' => t("I don't like this \x28toggle\x29"),
|
||||
'share' => t('Share'),
|
||||
'wait' => t('Please wait')
|
||||
);
|
||||
}
|
||||
|
||||
$comments = '';
|
||||
|
@ -292,7 +292,7 @@ function setup_content(&$a) {
|
||||
|
||||
case 2: { // Database config
|
||||
|
||||
$dbhost = ((x($_POST,'dbhost')) ? notags(trim($_POST['dbhost'])) : 'localhost');
|
||||
$dbhost = ((x($_POST,'dbhost')) ? notags(trim($_POST['dbhost'])) : '127.0.0.1');
|
||||
$dbuser = notags(trim($_POST['dbuser']));
|
||||
$dbport = intval(notags(trim($_POST['dbport'])));
|
||||
$dbpass = notags(trim($_POST['dbpass']));
|
||||
@ -312,7 +312,7 @@ function setup_content(&$a) {
|
||||
|
||||
'$status' => $wizard_status,
|
||||
|
||||
'$dbhost' => array('dbhost', t('Database Server Name'), $dbhost, t('Default is localhost')),
|
||||
'$dbhost' => array('dbhost', t('Database Server Name'), $dbhost, t('Default is 127.0.0.1')),
|
||||
'$dbport' => array('dbport', t('Database Port'), $dbport, t('Communication port number - use 0 for default')),
|
||||
'$dbuser' => array('dbuser', t('Database Login Name'), $dbuser, ''),
|
||||
'$dbpass' => array('dbpass', t('Database Login Password'), $dbpass, ''),
|
||||
@ -334,7 +334,7 @@ function setup_content(&$a) {
|
||||
}; break;
|
||||
case 3: { // Site settings
|
||||
require_once('include/datetime.php');
|
||||
$dbhost = ((x($_POST,'dbhost')) ? notags(trim($_POST['dbhost'])) : 'localhost');
|
||||
$dbhost = ((x($_POST,'dbhost')) ? notags(trim($_POST['dbhost'])) : '127.0.0.1');
|
||||
$dbport = intval(notags(trim($_POST['dbuser'])));
|
||||
$dbuser = notags(trim($_POST['dbuser']));
|
||||
$dbpass = notags(trim($_POST['dbpass']));
|
||||
|
@ -165,7 +165,7 @@ function siteinfo_content(&$a) {
|
||||
'$loadavg_all' => $loadavg[0] . ', ' . $loadavg[1] . ', ' . $loadavg[2],
|
||||
'$commit' => $commit,
|
||||
'$web_location' => t('Running at web location') . ' ' . z_root(),
|
||||
'$visit' => t('Please visit <a href="https://redmatrix.me">redmatrix.me</a> to learn more about $Projectname.'),
|
||||
'$visit' => t('Please visit <a href="http://hubzilla.org">hubzilla.org</a> to learn more about $Projectname.'),
|
||||
'$bug_text' => t('Bug reports and issues: please visit'),
|
||||
'$bug_link_url' => 'https://github.com/redmatrix/hubzilla/issues',
|
||||
'$bug_link_text' => t('$projectname issues'),
|
||||
|
3506
util/hmessages.po
3506
util/hmessages.po
File diff suppressed because it is too large
Load Diff
268
util/messages.po
268
util/messages.po
@ -6,9 +6,9 @@
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: 2015-09-25.1166\n"
|
||||
"Project-Id-Version: 2015-10-17.1188\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-09-25 00:05-0700\n"
|
||||
"POT-Creation-Date: 2015-10-17 16:47-0700\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -416,7 +416,7 @@ msgstr ""
|
||||
msgid "Edited"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/api.php:1234
|
||||
#: ../../include/api.php:1267
|
||||
msgid "Public Timeline"
|
||||
msgstr ""
|
||||
|
||||
@ -828,7 +828,8 @@ msgstr ""
|
||||
msgid "April"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/text.php:1201
|
||||
#: ../../include/text.php:1201 ../../mod/uexport.php:58
|
||||
#: ../../mod/uexport.php:59
|
||||
msgid "May"
|
||||
msgstr ""
|
||||
|
||||
@ -1374,7 +1375,7 @@ msgstr ""
|
||||
|
||||
#: ../../include/widgets.php:136 ../../include/widgets.php:175
|
||||
#: ../../include/Contact.php:107 ../../include/conversation.php:956
|
||||
#: ../../include/identity.php:933 ../../mod/directory.php:316
|
||||
#: ../../include/identity.php:956 ../../mod/directory.php:316
|
||||
#: ../../mod/match.php:64 ../../mod/suggest.php:52
|
||||
msgid "Connect"
|
||||
msgstr ""
|
||||
@ -1551,7 +1552,7 @@ msgid "Finishes:"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/event.php:50 ../../include/bb2diaspora.php:481
|
||||
#: ../../include/identity.php:984 ../../mod/directory.php:302
|
||||
#: ../../include/identity.php:1007 ../../mod/directory.php:302
|
||||
#: ../../mod/events.php:684
|
||||
msgid "Location:"
|
||||
msgstr ""
|
||||
@ -1855,7 +1856,7 @@ msgid "View all"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/ItemObject.php:179 ../../include/taxonomy.php:396
|
||||
#: ../../include/conversation.php:1712 ../../include/identity.php:1243
|
||||
#: ../../include/conversation.php:1712 ../../include/identity.php:1266
|
||||
#: ../../mod/photos.php:1019
|
||||
msgctxt "noun"
|
||||
msgid "Like"
|
||||
@ -2107,7 +2108,7 @@ msgstr ""
|
||||
msgid "Manage/Edit profiles"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/nav.php:95 ../../include/identity.php:956
|
||||
#: ../../include/nav.php:95 ../../include/identity.php:979
|
||||
msgid "Edit Profile"
|
||||
msgstr ""
|
||||
|
||||
@ -3037,14 +3038,14 @@ msgstr ""
|
||||
msgid "Visible to specific connections."
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/items.php:4286 ../../mod/thing.php:74
|
||||
#: ../../include/items.php:4310 ../../mod/thing.php:74
|
||||
#: ../../mod/filestorage.php:27 ../../mod/viewsrc.php:20
|
||||
#: ../../mod/admin.php:167 ../../mod/admin.php:1025 ../../mod/admin.php:1225
|
||||
#: ../../mod/display.php:36
|
||||
msgid "Item not found."
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/items.php:4359 ../../include/attach.php:137
|
||||
#: ../../include/items.php:4383 ../../include/attach.php:137
|
||||
#: ../../include/attach.php:184 ../../include/attach.php:247
|
||||
#: ../../include/attach.php:261 ../../include/attach.php:305
|
||||
#: ../../include/attach.php:319 ../../include/attach.php:350
|
||||
@ -3087,38 +3088,38 @@ msgstr ""
|
||||
msgid "Permission denied."
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/items.php:4763 ../../mod/group.php:38 ../../mod/group.php:140
|
||||
#: ../../include/items.php:4787 ../../mod/group.php:38 ../../mod/group.php:140
|
||||
#: ../../mod/bulksetclose.php:51
|
||||
msgid "Collection not found."
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/items.php:4779
|
||||
#: ../../include/items.php:4803
|
||||
msgid "Collection is empty."
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/items.php:4786
|
||||
#: ../../include/items.php:4810
|
||||
#, php-format
|
||||
msgid "Collection: %s"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/items.php:4796 ../../mod/connedit.php:674
|
||||
#: ../../include/items.php:4820 ../../mod/connedit.php:674
|
||||
#, php-format
|
||||
msgid "Connection: %s"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/items.php:4798
|
||||
#: ../../include/items.php:4822
|
||||
msgid "Connection not found."
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/zot.php:678
|
||||
#: ../../include/zot.php:684
|
||||
msgid "Invalid data packet"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/zot.php:694
|
||||
#: ../../include/zot.php:700
|
||||
msgid "Unable to verify channel signature"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/zot.php:2184
|
||||
#: ../../include/zot.php:2208
|
||||
#, php-format
|
||||
msgid "Unable to verify site signature for %s"
|
||||
msgstr ""
|
||||
@ -3316,11 +3317,11 @@ msgstr ""
|
||||
msgid "Default Profile"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:736
|
||||
#: ../../include/identity.php:759
|
||||
msgid "Requested channel is not available."
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:783 ../../mod/profile.php:16
|
||||
#: ../../include/identity.php:806 ../../mod/profile.php:16
|
||||
#: ../../mod/achievements.php:11 ../../mod/webpages.php:29
|
||||
#: ../../mod/connect.php:13 ../../mod/hcard.php:8 ../../mod/blocks.php:29
|
||||
#: ../../mod/editlayout.php:27 ../../mod/editwebpage.php:28
|
||||
@ -3329,193 +3330,193 @@ msgstr ""
|
||||
msgid "Requested profile is not available."
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:946 ../../mod/profiles.php:774
|
||||
#: ../../include/identity.php:969 ../../mod/profiles.php:774
|
||||
msgid "Change profile photo"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:952
|
||||
#: ../../include/identity.php:975
|
||||
msgid "Profiles"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:952
|
||||
#: ../../include/identity.php:975
|
||||
msgid "Manage/edit profiles"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:953 ../../mod/profiles.php:775
|
||||
#: ../../include/identity.php:976 ../../mod/profiles.php:775
|
||||
msgid "Create New Profile"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:968 ../../mod/profiles.php:786
|
||||
#: ../../include/identity.php:991 ../../mod/profiles.php:786
|
||||
msgid "Profile Image"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:971
|
||||
#: ../../include/identity.php:994
|
||||
msgid "visible to everybody"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:972 ../../mod/profiles.php:669
|
||||
#: ../../include/identity.php:995 ../../mod/profiles.php:669
|
||||
#: ../../mod/profiles.php:790
|
||||
msgid "Edit visibility"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:988 ../../include/identity.php:1227
|
||||
#: ../../include/identity.php:1011 ../../include/identity.php:1250
|
||||
msgid "Gender:"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:989 ../../include/identity.php:1271
|
||||
#: ../../include/identity.php:1012 ../../include/identity.php:1294
|
||||
msgid "Status:"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:990 ../../include/identity.php:1282
|
||||
#: ../../include/identity.php:1013 ../../include/identity.php:1305
|
||||
msgid "Homepage:"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:991
|
||||
#: ../../include/identity.php:1014
|
||||
msgid "Online Now"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:1074 ../../include/identity.php:1152
|
||||
#: ../../include/identity.php:1097 ../../include/identity.php:1175
|
||||
#: ../../mod/ping.php:324
|
||||
msgid "g A l F d"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:1075 ../../include/identity.php:1153
|
||||
#: ../../include/identity.php:1098 ../../include/identity.php:1176
|
||||
msgid "F d"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:1120 ../../include/identity.php:1192
|
||||
#: ../../include/identity.php:1143 ../../include/identity.php:1215
|
||||
#: ../../mod/ping.php:346
|
||||
msgid "[today]"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:1131
|
||||
#: ../../include/identity.php:1154
|
||||
msgid "Birthday Reminders"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:1132
|
||||
#: ../../include/identity.php:1155
|
||||
msgid "Birthdays this week:"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:1185
|
||||
#: ../../include/identity.php:1208
|
||||
msgid "[No description]"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:1203
|
||||
#: ../../include/identity.php:1226
|
||||
msgid "Event Reminders"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:1204
|
||||
#: ../../include/identity.php:1227
|
||||
msgid "Events this week:"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:1217 ../../include/identity.php:1334
|
||||
#: ../../include/identity.php:1240 ../../include/identity.php:1357
|
||||
#: ../../include/apps.php:138 ../../mod/profperm.php:112
|
||||
msgid "Profile"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:1225 ../../mod/settings.php:1056
|
||||
#: ../../include/identity.php:1248 ../../mod/settings.php:1056
|
||||
msgid "Full Name:"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:1232
|
||||
#: ../../include/identity.php:1255
|
||||
msgid "Like this channel"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:1256
|
||||
#: ../../include/identity.php:1279
|
||||
msgid "j F, Y"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:1257
|
||||
#: ../../include/identity.php:1280
|
||||
msgid "j F"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:1264
|
||||
#: ../../include/identity.php:1287
|
||||
msgid "Birthday:"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:1268 ../../mod/directory.php:297
|
||||
#: ../../include/identity.php:1291 ../../mod/directory.php:297
|
||||
msgid "Age:"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:1277
|
||||
#: ../../include/identity.php:1300
|
||||
#, php-format
|
||||
msgid "for %1$d %2$s"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:1280 ../../mod/profiles.php:691
|
||||
#: ../../include/identity.php:1303 ../../mod/profiles.php:691
|
||||
msgid "Sexual Preference:"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:1284 ../../mod/directory.php:313
|
||||
#: ../../include/identity.php:1307 ../../mod/directory.php:313
|
||||
#: ../../mod/profiles.php:693
|
||||
msgid "Hometown:"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:1286
|
||||
#: ../../include/identity.php:1309
|
||||
msgid "Tags:"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:1288 ../../mod/profiles.php:694
|
||||
#: ../../include/identity.php:1311 ../../mod/profiles.php:694
|
||||
msgid "Political Views:"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:1290
|
||||
#: ../../include/identity.php:1313
|
||||
msgid "Religion:"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:1292 ../../mod/directory.php:315
|
||||
#: ../../include/identity.php:1315 ../../mod/directory.php:315
|
||||
msgid "About:"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:1294
|
||||
#: ../../include/identity.php:1317
|
||||
msgid "Hobbies/Interests:"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:1296 ../../mod/profiles.php:697
|
||||
#: ../../include/identity.php:1319 ../../mod/profiles.php:697
|
||||
msgid "Likes:"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:1298 ../../mod/profiles.php:698
|
||||
#: ../../include/identity.php:1321 ../../mod/profiles.php:698
|
||||
msgid "Dislikes:"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:1300
|
||||
#: ../../include/identity.php:1323
|
||||
msgid "Contact information and Social Networks:"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:1302
|
||||
#: ../../include/identity.php:1325
|
||||
msgid "My other channels:"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:1304
|
||||
#: ../../include/identity.php:1327
|
||||
msgid "Musical interests:"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:1306
|
||||
#: ../../include/identity.php:1329
|
||||
msgid "Books, literature:"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:1308
|
||||
#: ../../include/identity.php:1331
|
||||
msgid "Television:"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:1310
|
||||
#: ../../include/identity.php:1333
|
||||
msgid "Film/dance/culture/entertainment:"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:1312
|
||||
#: ../../include/identity.php:1335
|
||||
msgid "Love/Romance:"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:1314
|
||||
#: ../../include/identity.php:1337
|
||||
msgid "Work/employment:"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:1316
|
||||
#: ../../include/identity.php:1339
|
||||
msgid "School/education:"
|
||||
msgstr ""
|
||||
|
||||
#: ../../include/identity.php:1336
|
||||
#: ../../include/identity.php:1359
|
||||
msgid "Like this thing"
|
||||
msgstr ""
|
||||
|
||||
@ -4602,7 +4603,7 @@ msgstr ""
|
||||
msgid "No installed plugins/addons/apps"
|
||||
msgstr ""
|
||||
|
||||
#: ../../mod/siteinfo.php:155 ../../mod/home.php:58 ../../mod/home.php:64
|
||||
#: ../../mod/siteinfo.php:155 ../../mod/home.php:58 ../../mod/home.php:66
|
||||
msgid "$Projectname"
|
||||
msgstr ""
|
||||
|
||||
@ -6521,30 +6522,6 @@ msgstr ""
|
||||
msgid "%1$s tagged %2$s's %3$s with %4$s"
|
||||
msgstr ""
|
||||
|
||||
#: ../../mod/uexport.php:45 ../../mod/uexport.php:46
|
||||
msgid "Export Channel"
|
||||
msgstr ""
|
||||
|
||||
#: ../../mod/uexport.php:47
|
||||
msgid ""
|
||||
"Export your basic channel information to a small file. This acts as a "
|
||||
"backup of your connections, permissions, profile and basic data, which can "
|
||||
"be used to import your data to a new hub, but\tdoes not contain your content."
|
||||
msgstr ""
|
||||
|
||||
#: ../../mod/uexport.php:48
|
||||
msgid "Export Content"
|
||||
msgstr ""
|
||||
|
||||
#: ../../mod/uexport.php:49
|
||||
msgid ""
|
||||
"Export your channel information and all the content to a JSON backup. This "
|
||||
"backs up all of your connections, permissions, profile data and all of your "
|
||||
"content, but is generally not suitable for importing a channel to a new hub "
|
||||
"as this file may be VERY large. Please be patient - it may take several "
|
||||
"minutes for this download to begin."
|
||||
msgstr ""
|
||||
|
||||
#: ../../mod/viewconnections.php:62
|
||||
msgid "No connections."
|
||||
msgstr ""
|
||||
@ -8155,6 +8132,113 @@ msgstr ""
|
||||
msgid "D, d M Y - g:i A"
|
||||
msgstr ""
|
||||
|
||||
#: ../../mod/uexport.php:50 ../../mod/uexport.php:51
|
||||
msgid "Export Channel"
|
||||
msgstr ""
|
||||
|
||||
#: ../../mod/uexport.php:52
|
||||
msgid ""
|
||||
"Export your basic channel information to a file. This acts as a backup of "
|
||||
"your connections, permissions, profile and basic data, which can be used to "
|
||||
"import your data to a new server hub, but does not contain your content."
|
||||
msgstr ""
|
||||
|
||||
#: ../../mod/uexport.php:53
|
||||
msgid "Export Content"
|
||||
msgstr ""
|
||||
|
||||
#: ../../mod/uexport.php:54
|
||||
msgid ""
|
||||
"Export your channel information and recent content to a JSON backup that can "
|
||||
"be restored or imported to another server hub. This backs up all of your "
|
||||
"connections, permissions, profile data and several months of posts. This "
|
||||
"file may be VERY large. Please be patient - it may take several minutes for "
|
||||
"this download to begin."
|
||||
msgstr ""
|
||||
|
||||
#: ../../mod/uexport.php:55
|
||||
msgid "Export your posts from a given year or month:"
|
||||
msgstr ""
|
||||
|
||||
#: ../../mod/uexport.php:57
|
||||
msgid ""
|
||||
"You may also export your posts and conversations for a particular year or "
|
||||
"month. Click on one of the recent years or months below."
|
||||
msgstr ""
|
||||
|
||||
#: ../../mod/uexport.php:58 ../../mod/uexport.php:59
|
||||
msgid "Jan"
|
||||
msgstr ""
|
||||
|
||||
#: ../../mod/uexport.php:58 ../../mod/uexport.php:59
|
||||
msgid "Feb"
|
||||
msgstr ""
|
||||
|
||||
#: ../../mod/uexport.php:58 ../../mod/uexport.php:59
|
||||
msgid "Mar"
|
||||
msgstr ""
|
||||
|
||||
#: ../../mod/uexport.php:58 ../../mod/uexport.php:59
|
||||
msgid "Apr"
|
||||
msgstr ""
|
||||
|
||||
#: ../../mod/uexport.php:58 ../../mod/uexport.php:59
|
||||
msgid "Jun"
|
||||
msgstr ""
|
||||
|
||||
#: ../../mod/uexport.php:58 ../../mod/uexport.php:59
|
||||
msgid "Jul"
|
||||
msgstr ""
|
||||
|
||||
#: ../../mod/uexport.php:58 ../../mod/uexport.php:59
|
||||
msgid "Aug"
|
||||
msgstr ""
|
||||
|
||||
#: ../../mod/uexport.php:58 ../../mod/uexport.php:59
|
||||
msgid "Sep"
|
||||
msgstr ""
|
||||
|
||||
#: ../../mod/uexport.php:58 ../../mod/uexport.php:59
|
||||
msgid "Oct"
|
||||
msgstr ""
|
||||
|
||||
#: ../../mod/uexport.php:58 ../../mod/uexport.php:59
|
||||
msgid "Nov"
|
||||
msgstr ""
|
||||
|
||||
#: ../../mod/uexport.php:58 ../../mod/uexport.php:59
|
||||
msgid "Dec"
|
||||
msgstr ""
|
||||
|
||||
#: ../../mod/uexport.php:60
|
||||
msgid ""
|
||||
"If the export fails (possibly due to memory exhaustion on your server hub), "
|
||||
"please try again selecting a more limited date range."
|
||||
msgstr ""
|
||||
|
||||
#: ../../mod/uexport.php:61
|
||||
#, php-format
|
||||
msgid ""
|
||||
"Or adjust the date in your browser location bar to select other dates. For "
|
||||
"example the year 2013; <a href=\"%1$s/2013\">%1$s/2013</a> or the month "
|
||||
"September 2013; <a href=\"%1$s/2013/9\">%1$s/2013/9</a>"
|
||||
msgstr ""
|
||||
|
||||
#: ../../mod/uexport.php:62
|
||||
msgid "Please visit"
|
||||
msgstr ""
|
||||
|
||||
#: ../../mod/uexport.php:62
|
||||
msgid "on another hub to import the backup files(s)."
|
||||
msgstr ""
|
||||
|
||||
#: ../../mod/uexport.php:63
|
||||
msgid ""
|
||||
"We advise you to clone the channel on the new hub first and than to import "
|
||||
"the backup file(s) (from the same channel) in chronological order. Importing "
|
||||
"the backup files into another channel will certainly give permission issues."
|
||||
msgstr ""
|
||||
|
||||
#: ../../mod/mood.php:131
|
||||
msgid "Set your current mood and tell your friends"
|
||||
msgstr ""
|
||||
@ -8672,7 +8756,7 @@ msgstr ""
|
||||
msgid "Download PDL file"
|
||||
msgstr ""
|
||||
|
||||
#: ../../mod/home.php:73
|
||||
#: ../../mod/home.php:75
|
||||
#, php-format
|
||||
msgid "Welcome to %s"
|
||||
msgstr ""
|
||||
|
@ -1 +1 @@
|
||||
2015-09-28.1169
|
||||
2015-10-17.1188
|
||||
|
@ -77,21 +77,17 @@ code {
|
||||
|
||||
/* conv_item */
|
||||
|
||||
.wall-photo-item img {
|
||||
width: 100% !important;
|
||||
max-width: 100% !important;
|
||||
}
|
||||
|
||||
.wall-item-info {
|
||||
display: block;
|
||||
float: left;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.wall-item-photo-wrapper {
|
||||
margin-top: 0px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.comment .wall-item-photo-wrapper {
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
.wall-item-wrapper {
|
||||
margin-left:10px;
|
||||
}
|
||||
@ -153,27 +149,8 @@ a.wall-item-name-link {
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
.body-tag, .filesavetags, .categorytags {
|
||||
opacity: 0.5;
|
||||
filter:alpha(opacity=50);
|
||||
}
|
||||
|
||||
.body-tag:hover, .filesavetags:hover, .categorytags:hover {
|
||||
opacity: 1.0 !important;
|
||||
filter:alpha(opacity=100) !important;
|
||||
}
|
||||
|
||||
.body-tag {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.categorytags {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.wall-item-tools {
|
||||
width: 100%;
|
||||
margin-top: 10px;
|
||||
.body-tags {
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
.item-tool {
|
||||
|
@ -6,7 +6,7 @@
|
||||
#chatTopBar {
|
||||
float: left;
|
||||
height: 400px;
|
||||
width: 650px;
|
||||
width: 400px;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
|
@ -29,3 +29,6 @@
|
||||
margin-top: -2px;
|
||||
}
|
||||
|
||||
.directory-collapse {
|
||||
overflow: auto;
|
||||
}
|
||||
|
@ -1,50 +1,26 @@
|
||||
/* message/new */
|
||||
|
||||
#prvmail-to-label,
|
||||
#prvmail-subject-label,
|
||||
#prvmail-expires-label,
|
||||
#prvmail-message-label {
|
||||
margin-bottom: 10px;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
#prvmail-submit {
|
||||
float: left;
|
||||
margin-top: 10px;
|
||||
margin-right: 30px;
|
||||
}
|
||||
|
||||
#prvmail-upload-wrapper,
|
||||
#prvmail-attach-wrapper,
|
||||
#prvmail-link-wrapper,
|
||||
#prvmail-expire-wrapper,
|
||||
#prvmail-encrypt-wrapper,
|
||||
#prvmail-rotator-wrapper {
|
||||
float: left;
|
||||
margin-top: 10px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
/* message/id */
|
||||
|
||||
.mail-conv-outside-wrapper {
|
||||
display: table;
|
||||
table-layout: fixed;
|
||||
}
|
||||
|
||||
.mail-conv-sender {
|
||||
display: table-cell;
|
||||
vertical-align: top;
|
||||
float: left;
|
||||
margin-right: 10px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.mail-conv-sender img{
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
}
|
||||
|
||||
.mail-conv-sender-name {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.mail-conv-detail {
|
||||
display: table-cell;
|
||||
vertical-align: top;
|
||||
width: 100%;
|
||||
padding-left: 10px;
|
||||
.mail-conv-body {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.mail-conv-body img {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
#prvmail-rotator {
|
||||
margin: 15px;
|
||||
}
|
||||
|
13521
view/de/hmessages.po
13521
view/de/hmessages.po
File diff suppressed because it is too large
Load Diff
2996
view/de/hstrings.php
2996
view/de/hstrings.php
File diff suppressed because it is too large
Load Diff
10693
view/de/messages.po
10693
view/de/messages.po
File diff suppressed because it is too large
Load Diff
2412
view/de/strings.php
2412
view/de/strings.php
File diff suppressed because it is too large
Load Diff
15373
view/es/hmessages.po
15373
view/es/hmessages.po
File diff suppressed because it is too large
Load Diff
3303
view/es/hstrings.php
3303
view/es/hstrings.php
File diff suppressed because it is too large
Load Diff
@ -13,8 +13,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Redmatrix\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-09-18 00:04-0700\n"
|
||||
"PO-Revision-Date: 2015-09-22 14:10+0000\n"
|
||||
"POT-Creation-Date: 2015-10-02 00:04-0700\n"
|
||||
"PO-Revision-Date: 2015-10-04 08:23+0000\n"
|
||||
"Last-Translator: Manuel Jiménez Friaza <mjfriaza@openmailbox.org>\n"
|
||||
"Language-Team: Spanish (http://www.transifex.com/Friendica/red-matrix/language/es/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@ -1091,7 +1091,7 @@ msgstr "Gracias,"
|
||||
#: ../../include/network.php:1590 ../../include/enotify.php:63
|
||||
#, php-format
|
||||
msgid "%s Administrator"
|
||||
msgstr "%s Administrador"
|
||||
msgstr "Administrador de %s"
|
||||
|
||||
#: ../../include/network.php:1646
|
||||
msgid "No Subject"
|
||||
@ -3008,51 +3008,51 @@ msgstr[1] "Se abstienen"
|
||||
msgid "Permission denied"
|
||||
msgstr "Permiso denegado"
|
||||
|
||||
#: ../../include/items.php:1038 ../../include/items.php:1084
|
||||
#: ../../include/items.php:1101 ../../include/items.php:1147
|
||||
msgid "(Unknown)"
|
||||
msgstr "(Desconocido)"
|
||||
|
||||
#: ../../include/items.php:1310
|
||||
#: ../../include/items.php:1373
|
||||
msgid "Visible to anybody on the internet."
|
||||
msgstr "Visible para cualquiera en internet."
|
||||
|
||||
#: ../../include/items.php:1312
|
||||
#: ../../include/items.php:1375
|
||||
msgid "Visible to you only."
|
||||
msgstr "Visible sólo para usted."
|
||||
|
||||
#: ../../include/items.php:1314
|
||||
#: ../../include/items.php:1377
|
||||
msgid "Visible to anybody in this network."
|
||||
msgstr "Visible para cualquiera en esta red."
|
||||
|
||||
#: ../../include/items.php:1316
|
||||
#: ../../include/items.php:1379
|
||||
msgid "Visible to anybody authenticated."
|
||||
msgstr "Visible para cualquiera que haya sido autenticado."
|
||||
|
||||
#: ../../include/items.php:1318
|
||||
#: ../../include/items.php:1381
|
||||
#, php-format
|
||||
msgid "Visible to anybody on %s."
|
||||
msgstr "Visible para cualquiera en %s."
|
||||
|
||||
#: ../../include/items.php:1320
|
||||
#: ../../include/items.php:1383
|
||||
msgid "Visible to all connections."
|
||||
msgstr "Visible para todas las conexiones."
|
||||
|
||||
#: ../../include/items.php:1322
|
||||
#: ../../include/items.php:1385
|
||||
msgid "Visible to approved connections."
|
||||
msgstr "Visible para las conexiones permitidas."
|
||||
|
||||
#: ../../include/items.php:1324
|
||||
#: ../../include/items.php:1387
|
||||
msgid "Visible to specific connections."
|
||||
msgstr "Visible para conexiones específicas."
|
||||
|
||||
#: ../../include/items.php:4223 ../../mod/thing.php:74
|
||||
#: ../../include/items.php:4286 ../../mod/thing.php:74
|
||||
#: ../../mod/filestorage.php:27 ../../mod/viewsrc.php:20
|
||||
#: ../../mod/admin.php:167 ../../mod/admin.php:1025 ../../mod/admin.php:1225
|
||||
#: ../../mod/display.php:36
|
||||
msgid "Item not found."
|
||||
msgstr "Elemento no encontrado."
|
||||
|
||||
#: ../../include/items.php:4296 ../../include/attach.php:137
|
||||
#: ../../include/items.php:4359 ../../include/attach.php:137
|
||||
#: ../../include/attach.php:184 ../../include/attach.php:247
|
||||
#: ../../include/attach.php:261 ../../include/attach.php:305
|
||||
#: ../../include/attach.php:319 ../../include/attach.php:350
|
||||
@ -3095,38 +3095,38 @@ msgstr "Elemento no encontrado."
|
||||
msgid "Permission denied."
|
||||
msgstr "Acceso denegado."
|
||||
|
||||
#: ../../include/items.php:4700 ../../mod/group.php:38 ../../mod/group.php:140
|
||||
#: ../../include/items.php:4763 ../../mod/group.php:38 ../../mod/group.php:140
|
||||
#: ../../mod/bulksetclose.php:51
|
||||
msgid "Collection not found."
|
||||
msgstr "Colección no encontrada."
|
||||
|
||||
#: ../../include/items.php:4716
|
||||
#: ../../include/items.php:4779
|
||||
msgid "Collection is empty."
|
||||
msgstr "La colección está vacía."
|
||||
|
||||
#: ../../include/items.php:4723
|
||||
#: ../../include/items.php:4786
|
||||
#, php-format
|
||||
msgid "Collection: %s"
|
||||
msgstr "Colección: %s"
|
||||
|
||||
#: ../../include/items.php:4733 ../../mod/connedit.php:674
|
||||
#: ../../include/items.php:4796 ../../mod/connedit.php:674
|
||||
#, php-format
|
||||
msgid "Connection: %s"
|
||||
msgstr "Conexión: %s"
|
||||
|
||||
#: ../../include/items.php:4735
|
||||
#: ../../include/items.php:4798
|
||||
msgid "Connection not found."
|
||||
msgstr "Conexión no encontrada"
|
||||
|
||||
#: ../../include/zot.php:677
|
||||
#: ../../include/zot.php:684
|
||||
msgid "Invalid data packet"
|
||||
msgstr "Paquete de datos no válido"
|
||||
|
||||
#: ../../include/zot.php:693
|
||||
#: ../../include/zot.php:700
|
||||
msgid "Unable to verify channel signature"
|
||||
msgstr "No ha sido posible de verificar la signatura del canal"
|
||||
|
||||
#: ../../include/zot.php:2161
|
||||
#: ../../include/zot.php:2208
|
||||
#, php-format
|
||||
msgid "Unable to verify site signature for %s"
|
||||
msgstr "No ha sido posible de verificar la signatura del sitio para %s"
|
||||
@ -6524,7 +6524,7 @@ msgstr "IMPORTANTE: Debe crear [manualmente] una tarea programada para las actua
|
||||
msgid "OpenID protocol error. No ID returned."
|
||||
msgstr "Error del protocolo OpenID. Ningún ID recibido como respuesta."
|
||||
|
||||
#: ../../mod/openid.php:72 ../../mod/openid.php:180 ../../mod/post.php:286
|
||||
#: ../../mod/openid.php:72 ../../mod/openid.php:180 ../../mod/post.php:287
|
||||
#, php-format
|
||||
msgid "Welcome %s. Remote authentication successful."
|
||||
msgstr "Bienvenido %s. La identificación desde su servidor se ha llevado a cabo correctamente."
|
||||
@ -8564,7 +8564,7 @@ msgstr "Descartar"
|
||||
msgid "Please login."
|
||||
msgstr "Por favor, inicie sesión."
|
||||
|
||||
#: ../../mod/post.php:235
|
||||
#: ../../mod/post.php:236
|
||||
msgid ""
|
||||
"Remote authentication blocked. You are logged into this site locally. Please"
|
||||
" logout and retry."
|
||||
|
@ -2,16 +2,16 @@
|
||||
Una cuenta ha sido creada en {{$sitename}} con esta dirección de correo electrónico.
|
||||
Los detalles del inicio de sesión son los siguientes:
|
||||
|
||||
Localización del Sitio: {{$siteurl}}
|
||||
Nombre de usuario: {{$email}}
|
||||
Localización del sitio:⇥{{$siteurl}}
|
||||
Nombre de usuario:⇥{{$email}}
|
||||
Contraseña: (la contraseña que proporcionó durante el proceso de registro)
|
||||
|
||||
Si esta cuenta se creó sin su consentimiento y no es deseada, puedes
|
||||
Si esta cuenta se creó sin su consentimiento, y no es deseada, puede
|
||||
visitar el sitio y cambiar la contraseña. Esto le permitirá eliminar la
|
||||
cuenta de los enlaces en la página de Ajustes, le
|
||||
pedimos disculpas por cualquier inconveniente que hayamos podido causar.
|
||||
cuenta en la página de Ajustes del perfil, le
|
||||
pedimos disculpas por cualquier inconveniente que hayamos podido causarle.
|
||||
|
||||
gracias y bienvenido a {{$sitename}}.
|
||||
Gracias y bienvenido a {{$sitename}}.
|
||||
|
||||
Atentamente,
|
||||
Administrador de {{$sitename}}
|
||||
|
@ -5,8 +5,8 @@ su aprobación.
|
||||
|
||||
Los detalles del inicio de sesión son los siguientes:
|
||||
|
||||
Localización del Sitio: {{$siteurl}}
|
||||
Nombre de usuario: {{$email}}
|
||||
Localización del sitio:⇥{{$siteurl}}
|
||||
Nombre de usuario:⇥{{$email}}
|
||||
Dirección IP: {{$details}}
|
||||
|
||||
Para aprobar la petición siga el enlace:
|
||||
@ -15,7 +15,7 @@ Para aprobar la petición siga el enlace:
|
||||
{{$siteurl}}/regmod/allow/{{$hash}}
|
||||
|
||||
|
||||
Para denegar la petición y eliminar la cuenta , siga:
|
||||
Para rechazar la petición y eliminar la cuenta , siga:
|
||||
|
||||
|
||||
{{$siteurl}}/regmod/deny/{{$hash}}
|
||||
|
@ -3,10 +3,10 @@ Gracias por registrarse en {{$sitename}}.
|
||||
|
||||
Los detalles del inicio de sesión son los siguientes:
|
||||
|
||||
Localización del Sitio: {{$siteurl}}
|
||||
Nombre de usuario: {{$email}}
|
||||
Localización del sitio:⇥{{$siteurl}}
|
||||
Nombre de usuario:⇥{{$email}}
|
||||
|
||||
inicie la sesión con la contraseña que elegió durante el registro.
|
||||
Inicie la sesión con la contraseña que eligió durante el registro.
|
||||
|
||||
Necesitamos verificar su correo electrónico para poder darle pleno acceso.
|
||||
|
||||
@ -15,7 +15,7 @@ Si registró esta cuenta, por favor, siga el enlace:
|
||||
{{$siteurl}}/regver/allow/{{$hash}}
|
||||
|
||||
|
||||
Para denegar la petición y eliminar la cuenta , siga:
|
||||
Para rechazar la petición y eliminar la cuenta , siga:
|
||||
|
||||
|
||||
{{$siteurl}}/regver/deny/{{$hash}}
|
||||
|
@ -245,7 +245,7 @@ $a->strings["view full size"] = "Ver en el tamaño original";
|
||||
$a->strings["\$Projectname Notification"] = "Notificación de \$Projectname";
|
||||
$a->strings["\$projectname"] = "\$projectname";
|
||||
$a->strings["Thank You,"] = "Gracias,";
|
||||
$a->strings["%s Administrator"] = "%s Administrador";
|
||||
$a->strings["%s Administrator"] = "Administrador de %s";
|
||||
$a->strings["No Subject"] = "Sin asunto";
|
||||
$a->strings["General Features"] = "Características generales";
|
||||
$a->strings["Content Expiration"] = "Caducidad del contenido";
|
||||
|
@ -88,6 +88,14 @@ function basic_replace(item) {
|
||||
return '$1'+item.name+' ';
|
||||
}
|
||||
|
||||
function trim_replace(item) {
|
||||
if(typeof item.replace !== 'undefined')
|
||||
return '$1'+item.replace;
|
||||
|
||||
return '$1'+item.name;
|
||||
}
|
||||
|
||||
|
||||
function submit_form(e) {
|
||||
$(e).parents('form').submit();
|
||||
}
|
||||
@ -163,3 +171,29 @@ function submit_form(e) {
|
||||
a.on('textComplete:select', function(e, value, strategy) { onselect(value); });
|
||||
};
|
||||
})( jQuery );
|
||||
|
||||
|
||||
(function( $ ) {
|
||||
$.fn.name_autocomplete = function(backend_url, typ, autosubmit, onselect) {
|
||||
if(typeof typ === 'undefined') typ = '';
|
||||
if(typeof autosubmit === 'undefined') autosubmit = false;
|
||||
|
||||
// Autocomplete contacts
|
||||
names = {
|
||||
match: /(^)([^\n]+)$/,
|
||||
index: 2,
|
||||
search: function(term, callback) { contact_search(term, callback, backend_url, typ,[], spinelement=false); },
|
||||
replace: trim_replace,
|
||||
template: contact_format,
|
||||
};
|
||||
|
||||
this.attr('autocomplete','off');
|
||||
var a = this.textcomplete([names], {className:'acpopup', zIndex:1020});
|
||||
|
||||
if(autosubmit)
|
||||
a.on('textComplete:select', function(e,value,strategy) { submit_form(this); });
|
||||
|
||||
if(typeof onselect !== 'undefined')
|
||||
a.on('textComplete:select', function(e, value, strategy) { onselect(value); });
|
||||
};
|
||||
})( jQuery );
|
@ -112,12 +112,12 @@ function insertbbcomment(comment, BBcode, id) {
|
||||
return true;
|
||||
}
|
||||
|
||||
function inserteditortag(BBcode) {
|
||||
function inserteditortag(BBcode, id) {
|
||||
// allow themes to override this
|
||||
if(typeof(insertEditorFormatting) != 'undefined')
|
||||
return(insertEditorFormatting(BBcode));
|
||||
|
||||
textarea = document.getElementById('profile-jot-text');
|
||||
textarea = document.getElementById(id);
|
||||
if (document.selection) {
|
||||
textarea.focus();
|
||||
selected = document.selection.createRange();
|
||||
@ -616,11 +616,12 @@ function updateConvItems(mode,data) {
|
||||
|
||||
function collapseHeight() {
|
||||
$(".wall-item-content, .directory-collapse").each(function() {
|
||||
var orgHeight = $(this).height();
|
||||
var orgHeight = $(this).outerHeight(true);
|
||||
if(orgHeight > divmore_height + 10) {
|
||||
if(! $(this).hasClass('divmore')) {
|
||||
$(this).readmore({
|
||||
speed: 0,
|
||||
heightMargin: 50,
|
||||
collapsedHeight: divmore_height,
|
||||
moreLink: '<a href="#" class="divgrow-showmore">' + aStr.divgrowmore + '</a>',
|
||||
lessLink: '<a href="#" class="divgrow-showmore">' + aStr.divgrowless + '</a>',
|
||||
@ -745,12 +746,12 @@ function justifyPhotos() {
|
||||
margins: 3,
|
||||
border: 0,
|
||||
sizeRangeSuffixes: {
|
||||
'lt100': '-2',
|
||||
'lt240': '-2',
|
||||
'lt320': '-2',
|
||||
'lt500': '',
|
||||
'lt640': '-1',
|
||||
'lt1024': '-0'
|
||||
'lt100': '-3',
|
||||
'lt240': '-3',
|
||||
'lt320': '-3',
|
||||
'lt500': '-2',
|
||||
'lt640': '-2',
|
||||
'lt1024': '-1'
|
||||
}
|
||||
}).on('jg.complete', function(e){ justifiedGalleryActive = false; });
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
$(document).ready(function() {
|
||||
$("#recip").contact_autocomplete(baseurl + '/acl', '', false, function(data) {
|
||||
$("#recip").name_autocomplete(baseurl + '/acl', '', false, function(data) {
|
||||
$("#recip-complete").val(data.xid);
|
||||
});
|
||||
});
|
||||
|
@ -1,5 +1,5 @@
|
||||
$(document).ready(function() {
|
||||
$("#poke-recip").contact_autocomplete(baseurl + '/acl', 'a', false, function(data) {
|
||||
$("#poke-recip").name_autocomplete(baseurl + '/acl', 'a', false, function(data) {
|
||||
$("#poke-recip-complete").val(data.id);
|
||||
});
|
||||
});
|
||||
|
13928
view/nb-no/hmessages.po
13928
view/nb-no/hmessages.po
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
3614
view/nl/hmessages.po
3614
view/nl/hmessages.po
File diff suppressed because it is too large
Load Diff
@ -5,6 +5,13 @@ function string_plural_select_nl($n){
|
||||
return ($n != 1);;
|
||||
}}
|
||||
;
|
||||
$a->strings["Permission denied."] = "Toegang geweigerd";
|
||||
$a->strings["Image exceeds website size limit of %lu bytes"] = "Afbeelding is groter dan op deze hub toegestane limiet van %lu bytes";
|
||||
$a->strings["Image file is empty."] = "Afbeeldingsbestand is leeg";
|
||||
$a->strings["Unable to process image"] = "Afbeelding kan niet verwerkt worden";
|
||||
$a->strings["Photo storage failed."] = "Foto kan niet worden opgeslagen";
|
||||
$a->strings["Photo Albums"] = "Fotoalbums";
|
||||
$a->strings["Upload New Photos"] = "Nieuwe foto's uploaden";
|
||||
$a->strings["No username found in import file."] = "Geen gebruikersnaam in het importbestand gevonden.";
|
||||
$a->strings["Unable to create a unique channel address. Import failed."] = "Niet in staat om een uniek kanaaladres aan te maken. Importeren is mislukt.";
|
||||
$a->strings["Import completed."] = "Import voltooid.";
|
||||
@ -66,7 +73,6 @@ $a->strings["Missing room name"] = "Naam chatkanaal ontbreekt";
|
||||
$a->strings["Duplicate room name"] = "Naam chatkanaal bestaat al";
|
||||
$a->strings["Invalid room specifier."] = "Ongeldige omschrijving chatkanaal";
|
||||
$a->strings["Room not found."] = "Chatkanaal niet gevonden";
|
||||
$a->strings["Permission denied."] = "Toegang geweigerd";
|
||||
$a->strings["Room is full"] = "Chatkanaal is vol";
|
||||
$a->strings["Miscellaneous"] = "Diversen";
|
||||
$a->strings["YYYY-MM-DD or MM-DD"] = "JJJJ-MM-DD of MM-DD";
|
||||
@ -259,301 +265,36 @@ $a->strings["New window"] = "Nieuw venster";
|
||||
$a->strings["Open the selected location in a different window or browser tab"] = "Open de geselecteerde locatie in een ander venster of tab";
|
||||
$a->strings["User '%s' deleted"] = "Account '%s' verwijderd";
|
||||
$a->strings["Cannot locate DNS info for database server '%s'"] = "Kan DNS-informatie voor databaseserver '%s' niet vinden";
|
||||
$a->strings["photo"] = "foto";
|
||||
$a->strings["event"] = "gebeurtenis";
|
||||
$a->strings["channel"] = "kanaal";
|
||||
$a->strings["status"] = "bericht";
|
||||
$a->strings["comment"] = "reactie";
|
||||
$a->strings["%1\$s likes %2\$s's %3\$s"] = "%1\$s vindt %3\$s van %2\$s leuk";
|
||||
$a->strings["%1\$s doesn't like %2\$s's %3\$s"] = "%1\$s vindt %3\$s van %2\$s niet leuk";
|
||||
$a->strings["%1\$s is now connected with %2\$s"] = "%1\$s is nu met %2\$s verbonden";
|
||||
$a->strings["%1\$s poked %2\$s"] = "%1\$s heeft %2\$s aangestoten";
|
||||
$a->strings["poked"] = "aangestoten";
|
||||
$a->strings["__ctx:mood__ %1\$s is %2\$s"] = "%1\$s is %2\$s";
|
||||
$a->strings["__ctx:title__ Likes"] = "vinden dit leuk";
|
||||
$a->strings["__ctx:title__ Dislikes"] = "vinden dit niet leuk";
|
||||
$a->strings["__ctx:title__ Agree"] = "eens";
|
||||
$a->strings["__ctx:title__ Disagree"] = "oneens";
|
||||
$a->strings["__ctx:title__ Abstain"] = "onthoudingen";
|
||||
$a->strings["__ctx:title__ Attending"] = "aanwezig";
|
||||
$a->strings["__ctx:title__ Not attending"] = "niet aanwezig";
|
||||
$a->strings["__ctx:title__ Might attend"] = "mogelijk aanwezig";
|
||||
$a->strings["Select"] = "Kies";
|
||||
$a->strings["Private Message"] = "Privébericht";
|
||||
$a->strings["Message signature validated"] = "Berichtkenmerk gevalideerd";
|
||||
$a->strings["Message signature incorrect"] = "Berichtkenmerk onjuist";
|
||||
$a->strings["View %s's profile @ %s"] = "Bekijk het profiel van %s @ %s";
|
||||
$a->strings["Categories:"] = "Categorieën:";
|
||||
$a->strings["Filed under:"] = "Bewaard onder:";
|
||||
$a->strings["from %s"] = "van %s";
|
||||
$a->strings["last edited: %s"] = "laatst bewerkt: %s";
|
||||
$a->strings["Expires: %s"] = "Verloopt: %s";
|
||||
$a->strings["View in context"] = "In context bekijken";
|
||||
$a->strings["Please wait"] = "Even wachten";
|
||||
$a->strings["remove"] = "verwijderen";
|
||||
$a->strings["Loading..."] = "Aan het laden...";
|
||||
$a->strings["Delete Selected Items"] = "Verwijder de geselecteerde items";
|
||||
$a->strings["View Source"] = "Bron weergeven";
|
||||
$a->strings["Follow Thread"] = "Conversatie volgen";
|
||||
$a->strings["View Status"] = "Status weergeven";
|
||||
$a->strings["View Profile"] = "Profiel weergeven";
|
||||
$a->strings["View Photos"] = "Foto's weergeven";
|
||||
$a->strings["Activity/Posts"] = "Kanaal-activiteit";
|
||||
$a->strings["Edit Connection"] = "Connectie bewerken";
|
||||
$a->strings["Send PM"] = "Privébericht verzenden";
|
||||
$a->strings["Poke"] = "Aanstoten";
|
||||
$a->strings["%s likes this."] = "%s vindt dit leuk.";
|
||||
$a->strings["%s doesn't like this."] = "%s vindt dit niet leuk.";
|
||||
$a->strings["<span %1\$s>%2\$d people</span> like this."] = array(
|
||||
0 => "<span %1\$s>%2\$d persoon</span> vindt dit leuk.",
|
||||
1 => "<span %1\$s>%2\$d personen</span> vinden dit leuk.",
|
||||
);
|
||||
$a->strings["<span %1\$s>%2\$d people</span> don't like this."] = array(
|
||||
0 => "<span %1\$s>%2\$d persoon</span> vindt dit niet leuk.",
|
||||
1 => "<span %1\$s>%2\$d personen</span> vinden dit niet leuk.",
|
||||
);
|
||||
$a->strings["and"] = "en";
|
||||
$a->strings[", and %d other people"] = array(
|
||||
0 => ", en %d ander persoon",
|
||||
1 => ", en %d andere personen",
|
||||
);
|
||||
$a->strings["%s like this."] = "%s vinden dit leuk.";
|
||||
$a->strings["%s don't like this."] = "%s vinden dit niet leuk.";
|
||||
$a->strings["Visible to <strong>everybody</strong>"] = "Voor <strong>iedereen</strong> zichtbaar";
|
||||
$a->strings["Please enter a link URL:"] = "Vul een internetadres/URL in:";
|
||||
$a->strings["Please enter a video link/URL:"] = "Vul een videolink/URL in:";
|
||||
$a->strings["Please enter an audio link/URL:"] = "Vul een audiolink/URL in:";
|
||||
$a->strings["Tag term:"] = "Tag:";
|
||||
$a->strings["Save to Folder:"] = "Bewaar in map: ";
|
||||
$a->strings["Where are you right now?"] = "Waar bevind je je op dit moment?";
|
||||
$a->strings["Expires YYYY-MM-DD HH:MM"] = "Verloopt op DD-MM-YYYY om HH:MM";
|
||||
$a->strings["Preview"] = "Voorvertoning";
|
||||
$a->strings["Share"] = "Delen";
|
||||
$a->strings["Page link name"] = "Linknaam pagina";
|
||||
$a->strings["Post as"] = "Bericht plaatsen als";
|
||||
$a->strings["Bold"] = "Vet";
|
||||
$a->strings["Italic"] = "Cursief";
|
||||
$a->strings["Underline"] = "Onderstrepen";
|
||||
$a->strings["Quote"] = "Citeren";
|
||||
$a->strings["Code"] = "Broncode";
|
||||
$a->strings["Upload photo"] = "Foto uploaden";
|
||||
$a->strings["upload photo"] = "foto uploaden";
|
||||
$a->strings["Attach file"] = "Bestand toevoegen";
|
||||
$a->strings["attach file"] = "bestand toevoegen";
|
||||
$a->strings["Insert web link"] = "Weblink invoegen";
|
||||
$a->strings["web link"] = "Weblink";
|
||||
$a->strings["Insert video link"] = "Videolink invoegen";
|
||||
$a->strings["video link"] = "videolink";
|
||||
$a->strings["Insert audio link"] = "Audiolink invoegen";
|
||||
$a->strings["audio link"] = "audiolink";
|
||||
$a->strings["Set your location"] = "Locatie instellen";
|
||||
$a->strings["set location"] = "locatie instellen";
|
||||
$a->strings["Toggle voting"] = "Stemmen in- of uitschakelen";
|
||||
$a->strings["Clear browser location"] = "Locatie van webbrowser wissen";
|
||||
$a->strings["clear location"] = "locatie wissen";
|
||||
$a->strings["Title (optional)"] = "Titel (optioneel)";
|
||||
$a->strings["Categories (optional, comma-separated list)"] = "Categorieën (optioneel, door komma's gescheiden lijst)";
|
||||
$a->strings["Permission settings"] = "Permissies";
|
||||
$a->strings["permissions"] = "permissies";
|
||||
$a->strings["Public post"] = "Openbaar bericht";
|
||||
$a->strings["Example: bob@example.com, mary@example.com"] = "Voorbeeld: bob@voorbeeld.nl, mary@voorbeeld.be";
|
||||
$a->strings["Set expiration date"] = "Verloopdatum instellen";
|
||||
$a->strings["Encrypt text"] = "Tekst versleutelen";
|
||||
$a->strings["OK"] = "OK";
|
||||
$a->strings["Cancel"] = "Annuleren";
|
||||
$a->strings["Discover"] = "Ontdekken";
|
||||
$a->strings["Imported public streams"] = "Openbare streams importeren";
|
||||
$a->strings["Commented Order"] = "Nieuwe reacties bovenaan";
|
||||
$a->strings["Sort by Comment Date"] = "Berichten met nieuwe reacties bovenaan";
|
||||
$a->strings["Posted Order"] = "Nieuwe berichten bovenaan";
|
||||
$a->strings["Sort by Post Date"] = "Nieuwe berichten bovenaan";
|
||||
$a->strings["Personal"] = "Persoonlijk";
|
||||
$a->strings["Posts that mention or involve you"] = "Alleen berichten die jou vermelden of waar je op een andere manier bij betrokken bent";
|
||||
$a->strings["New"] = "Nieuw";
|
||||
$a->strings["Activity Stream - by date"] = "Activiteitenstroom - volgens datum";
|
||||
$a->strings["Starred"] = "Met ster";
|
||||
$a->strings["Favourite Posts"] = "Favoriete berichten";
|
||||
$a->strings["Spam"] = "Spam";
|
||||
$a->strings["Posts flagged as SPAM"] = "Berichten gemarkeerd als SPAM";
|
||||
$a->strings["Channel"] = "Kanaal";
|
||||
$a->strings["Status Messages and Posts"] = "Berichten in dit kanaal";
|
||||
$a->strings["About"] = "Over";
|
||||
$a->strings["Profile Details"] = "Profiel";
|
||||
$a->strings["Photos"] = "Foto's";
|
||||
$a->strings["Photo Albums"] = "Fotoalbums";
|
||||
$a->strings["Files and Storage"] = "Bestanden en opslagruimte";
|
||||
$a->strings["Chatrooms"] = "Chatkanalen";
|
||||
$a->strings["Bookmarks"] = "Bladwijzers";
|
||||
$a->strings["Saved Bookmarks"] = "Opgeslagen bladwijzers";
|
||||
$a->strings["Webpages"] = "Webpagina's";
|
||||
$a->strings["Manage Webpages"] = "Webpagina's beheren";
|
||||
$a->strings["View all"] = "Toon alles";
|
||||
$a->strings["__ctx:noun__ Like"] = array(
|
||||
0 => "vindt dit leuk",
|
||||
1 => "vinden dit leuk",
|
||||
);
|
||||
$a->strings["__ctx:noun__ Dislike"] = array(
|
||||
0 => "vindt dit niet leuk",
|
||||
1 => "vinden dit niet leuk",
|
||||
);
|
||||
$a->strings["__ctx:noun__ Attending"] = array(
|
||||
0 => "aanwezig",
|
||||
1 => "aanwezig",
|
||||
);
|
||||
$a->strings["__ctx:noun__ Not Attending"] = array(
|
||||
0 => "niet aanwezig",
|
||||
1 => "niet aanwezig",
|
||||
);
|
||||
$a->strings["__ctx:noun__ Undecided"] = array(
|
||||
0 => "nog niet beslist",
|
||||
1 => "nog niet beslist",
|
||||
);
|
||||
$a->strings["__ctx:noun__ Agree"] = array(
|
||||
0 => "eens",
|
||||
1 => "eens",
|
||||
);
|
||||
$a->strings["__ctx:noun__ Disagree"] = array(
|
||||
0 => "oneens",
|
||||
1 => "oneens",
|
||||
);
|
||||
$a->strings["__ctx:noun__ Abstain"] = array(
|
||||
0 => "onthouding",
|
||||
1 => "onthoudingen",
|
||||
);
|
||||
$a->strings["Permission denied"] = "Toegang geweigerd";
|
||||
$a->strings["(Unknown)"] = "(Onbekend)";
|
||||
$a->strings["Visible to anybody on the internet."] = "Voor iedereen op het internet zichtbaar.";
|
||||
$a->strings["Visible to you only."] = "Alleen voor jou zichtbaar.";
|
||||
$a->strings["Visible to anybody in this network."] = "Voor iedereen in dit netwerk zichtbaar.";
|
||||
$a->strings["Visible to anybody authenticated."] = "Voor iedereen die geauthenticeerd is zichtbaar.";
|
||||
$a->strings["Visible to anybody on %s."] = "Voor iedereen op %s zichtbaar.";
|
||||
$a->strings["Visible to all connections."] = "Voor alle connecties zichtbaar.";
|
||||
$a->strings["Visible to approved connections."] = "Voor alle goedgekeurde connecties zichtbaar.";
|
||||
$a->strings["Visible to specific connections."] = "Voor specifieke connecties zichtbaar.";
|
||||
$a->strings["Item not found."] = "Item niet gevonden.";
|
||||
$a->strings["Collection not found."] = "Collectie niet gevonden.";
|
||||
$a->strings["Collection is empty."] = "Collectie is leeg";
|
||||
$a->strings["Collection: %s"] = "Collectie: %s";
|
||||
$a->strings["Connection: %s"] = "Connectie: %s";
|
||||
$a->strings["Connection not found."] = "Connectie niet gevonden.";
|
||||
$a->strings["Public Timeline"] = "Openbare tijdlijn";
|
||||
$a->strings["Image exceeds website size limit of %lu bytes"] = "Afbeelding is groter dan op deze hub toegestane limiet van %lu bytes";
|
||||
$a->strings["Image file is empty."] = "Afbeeldingsbestand is leeg";
|
||||
$a->strings["Unable to process image"] = "Afbeelding kan niet verwerkt worden";
|
||||
$a->strings["Photo storage failed."] = "Foto kan niet worden opgeslagen";
|
||||
$a->strings["Upload New Photos"] = "Nieuwe foto's uploaden";
|
||||
$a->strings["view full size"] = "volledige grootte tonen";
|
||||
$a->strings["\$Projectname Notification"] = "\$Projectname-notificatie";
|
||||
$a->strings["\$projectname"] = "\$projectname";
|
||||
$a->strings["Thank You,"] = "Bedankt,";
|
||||
$a->strings["%s Administrator"] = "Beheerder %s";
|
||||
$a->strings["%s <!item_type!>"] = "%s <!item_type!>";
|
||||
$a->strings["[Red:Notify] New mail received at %s"] = "[Red:Notificatie] Nieuw privébericht ontvangen op %s";
|
||||
$a->strings["%1\$s, %2\$s sent you a new private message at %3\$s."] = "%1\$s, %2\$s zond jou een nieuw privébericht om %3\$s.";
|
||||
$a->strings["%1\$s sent you %2\$s."] = "%1\$s zond jou %2\$s.";
|
||||
$a->strings["a private message"] = "een privébericht";
|
||||
$a->strings["Please visit %s to view and/or reply to your private messages."] = "Bezoek %s om je privéberichten te bekijken en/of er op te reageren.";
|
||||
$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]a %4\$s[/zrl]"] = "%1\$s, %2\$s gaf een reactie op [zrl=%3\$s]een %4\$s[/zrl]";
|
||||
$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]%4\$s's %5\$s[/zrl]"] = "%1\$s, %2\$s gaf een reactie op [zrl=%3\$s]een %5\$s van %4\$s[/zrl]";
|
||||
$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]your %4\$s[/zrl]"] = "%1\$s, %2\$s gaf een reactie op [zrl=%3\$s]jouw %4\$s[/zrl]";
|
||||
$a->strings["[Red:Notify] Comment to conversation #%1\$d by %2\$s"] = "[Red:Notificatie] Reactie op conversatie #%1\$d door %2\$s";
|
||||
$a->strings["%1\$s, %2\$s commented on an item/conversation you have been following."] = "%1\$s, %2\$s gaf een reactie op een bericht/conversatie die jij volgt.";
|
||||
$a->strings["Please visit %s to view and/or reply to the conversation."] = "Bezoek %s om de conversatie te bekijken en/of er op te reageren.";
|
||||
$a->strings["[Red:Notify] %s posted to your profile wall"] = "[Red:Notificatie] %s heeft een bericht op jouw kanaal geplaatst";
|
||||
$a->strings["%1\$s, %2\$s posted to your profile wall at %3\$s"] = "%1\$s, %2\$s heeft om %3\$s een bericht op jouw kanaal geplaatst";
|
||||
$a->strings["%1\$s, %2\$s posted to [zrl=%3\$s]your wall[/zrl]"] = "%1\$s, %2\$s heeft een bericht op [zrl=%3\$s]jouw kanaal[/zrl] geplaatst";
|
||||
$a->strings["[Red:Notify] %s tagged you"] = "[Red:Notificatie] %s heeft je genoemd";
|
||||
$a->strings["%1\$s, %2\$s tagged you at %3\$s"] = "%1\$s, %2\$s noemde jou op %3\$s";
|
||||
$a->strings["%1\$s, %2\$s [zrl=%3\$s]tagged you[/zrl]."] = "%1\$s, %2\$s [zrl=%3\$s]noemde jou[/zrl].";
|
||||
$a->strings["[Red:Notify] %1\$s poked you"] = "[Red:Notificatie] %1\$s heeft je aangestoten";
|
||||
$a->strings["%1\$s, %2\$s poked you at %3\$s"] = "%1\$s, %2\$s heeft je aangestoten op %3\$s";
|
||||
$a->strings["%1\$s, %2\$s [zrl=%2\$s]poked you[/zrl]."] = "%1\$s, %2\$s [zrl=%2\$s]heeft je aangestoten[/zrl].";
|
||||
$a->strings["[Red:Notify] %s tagged your post"] = "[Red:Notificatie] %s heeft jouw bericht getagd";
|
||||
$a->strings["%1\$s, %2\$s tagged your post at %3\$s"] = "%1\$s, %2\$s heeft jouw bericht om %3\$s getagd";
|
||||
$a->strings["%1\$s, %2\$s tagged [zrl=%3\$s]your post[/zrl]"] = "%1\$s, %2\$s heeft [zrl=%3\$s]jouw bericht[/zrl] getagd";
|
||||
$a->strings["[Red:Notify] Introduction received"] = "[Red:Notificatie] Connectieverzoek ontvangen";
|
||||
$a->strings["%1\$s, you've received an new connection request from '%2\$s' at %3\$s"] = "%1\$s, je hebt een nieuw connectieverzoek ontvangen van '%2\$s' op %3\$s";
|
||||
$a->strings["%1\$s, you've received [zrl=%2\$s]a new connection request[/zrl] from %3\$s."] = "%1\$s, je hebt een [zrl=%2\$s]nieuw connectieverzoek[/zrl] ontvangen van %3\$s.";
|
||||
$a->strings["You may visit their profile at %s"] = "Je kan het profiel bekijken op %s";
|
||||
$a->strings["Please visit %s to approve or reject the connection request."] = "Bezoek %s om het connectieverzoek te accepteren of af te wijzen.";
|
||||
$a->strings["[Red:Notify] Friend suggestion received"] = "[Red:Notificatie] Kanaalvoorstel ontvangen";
|
||||
$a->strings["%1\$s, you've received a friend suggestion from '%2\$s' at %3\$s"] = "%1\$s, je hebt een kanaalvoorstel ontvangen van '%2\$s' om %3\$s";
|
||||
$a->strings["%1\$s, you've received [zrl=%2\$s]a friend suggestion[/zrl] for %3\$s from %4\$s."] = "%1\$s, je hebt [zrl=%2\$s]een kanaalvoorstel[/zrl] ontvangen voor %3\$s van %4\$s.";
|
||||
$a->strings["Name:"] = "Naam:";
|
||||
$a->strings["Photo:"] = "Foto:";
|
||||
$a->strings["Please visit %s to approve or reject the suggestion."] = "Bezoek %s om het voorstel te accepteren of af te wijzen.";
|
||||
$a->strings["[Red:Notify]"] = "[Red:Notificatie]";
|
||||
$a->strings["view full size"] = "volledige grootte tonen";
|
||||
$a->strings["Administrator"] = "Beheerder";
|
||||
$a->strings["No Subject"] = "Geen onderwerp";
|
||||
$a->strings["%1\$s's bookmarks"] = "Bladwijzers van %1\$s";
|
||||
$a->strings["prev"] = "vorige";
|
||||
$a->strings["first"] = "eerste";
|
||||
$a->strings["last"] = "laatste";
|
||||
$a->strings["next"] = "volgende";
|
||||
$a->strings["older"] = "ouder";
|
||||
$a->strings["newer"] = "nieuwer";
|
||||
$a->strings["No connections"] = "Geen connecties";
|
||||
$a->strings["%d Connection"] = array(
|
||||
0 => "%d connectie",
|
||||
1 => "%d connecties",
|
||||
);
|
||||
$a->strings["View Connections"] = "Connecties weergeven";
|
||||
$a->strings["Search"] = "Zoeken";
|
||||
$a->strings["Save"] = "Opslaan";
|
||||
$a->strings["poke"] = "aanstoten";
|
||||
$a->strings["ping"] = "ping";
|
||||
$a->strings["pinged"] = "gepingd";
|
||||
$a->strings["prod"] = "por";
|
||||
$a->strings["prodded"] = "gepord";
|
||||
$a->strings["slap"] = "slaan";
|
||||
$a->strings["slapped"] = "sloeg";
|
||||
$a->strings["finger"] = "finger";
|
||||
$a->strings["fingered"] = "gefingerd";
|
||||
$a->strings["rebuff"] = "afpoeieren";
|
||||
$a->strings["rebuffed"] = "afgepoeierd";
|
||||
$a->strings["happy"] = "gelukkig";
|
||||
$a->strings["sad"] = "bedroefd";
|
||||
$a->strings["mellow"] = "mellow";
|
||||
$a->strings["tired"] = "moe";
|
||||
$a->strings["perky"] = "parmantig";
|
||||
$a->strings["angry"] = "boos";
|
||||
$a->strings["stupified"] = "beteuterd";
|
||||
$a->strings["puzzled"] = "verward";
|
||||
$a->strings["interested"] = "geïnteresseerd";
|
||||
$a->strings["bitter"] = "verbitterd";
|
||||
$a->strings["cheerful"] = "vrolijk";
|
||||
$a->strings["alive"] = "levendig";
|
||||
$a->strings["annoyed"] = "geërgerd";
|
||||
$a->strings["anxious"] = "bezorgd";
|
||||
$a->strings["cranky"] = "humeurig";
|
||||
$a->strings["disturbed"] = "verontrust";
|
||||
$a->strings["frustrated"] = "gefrustreerd ";
|
||||
$a->strings["depressed"] = "gedeprimeerd";
|
||||
$a->strings["motivated"] = "gemotiveerd";
|
||||
$a->strings["relaxed"] = "ontspannen";
|
||||
$a->strings["surprised"] = "verrast";
|
||||
$a->strings["May"] = "mei";
|
||||
$a->strings["unknown.???"] = "onbekend.???";
|
||||
$a->strings["bytes"] = "bytes";
|
||||
$a->strings["remove category"] = "categorie verwijderen";
|
||||
$a->strings["remove from file"] = "uit map verwijderen";
|
||||
$a->strings["Click to open/close"] = "Klik om te openen of te sluiten";
|
||||
$a->strings["Link to Source"] = "Originele locatie";
|
||||
$a->strings["default"] = "standaard";
|
||||
$a->strings["Page layout"] = "Pagina-lay-out";
|
||||
$a->strings["You can create your own with the layouts tool"] = "Je kan jouw eigen lay-out ontwerpen onder lay-outs";
|
||||
$a->strings["Page content type"] = "Opmaaktype pagina";
|
||||
$a->strings["Select an alternate language"] = "Kies een andere taal";
|
||||
$a->strings["activity"] = "activiteit";
|
||||
$a->strings["Design Tools"] = "Ontwerp-hulpmiddelen";
|
||||
$a->strings["Blocks"] = "Blokken";
|
||||
$a->strings["Menus"] = "Menu's";
|
||||
$a->strings["Layouts"] = "Lay-outs";
|
||||
$a->strings["Pages"] = "Pagina's";
|
||||
$a->strings["Visible to your default audience"] = "Voor iedereen zichtbaar, mits niet anders ingesteld";
|
||||
$a->strings["Show"] = "Tonen";
|
||||
$a->strings["Don't show"] = "Niet tonen";
|
||||
$a->strings["Permissions"] = "Permissies";
|
||||
$a->strings["Close"] = "Sluiten";
|
||||
$a->strings["Item was not found."] = "Item niet gevonden";
|
||||
$a->strings["No source file."] = "Geen bronbestand.";
|
||||
$a->strings["Cannot locate file to replace"] = "Kan het te vervangen bestand niet vinden";
|
||||
$a->strings["Cannot locate file to revise/update"] = "Kan het bestand wat aangepast moet worden niet vinden";
|
||||
$a->strings["File exceeds size limit of %d"] = "Bestand is groter dan de toegelaten %d";
|
||||
$a->strings["You have reached your limit of %1$.0f Mbytes attachment storage."] = "Je hebt jouw limiet van %1$.0f MB opslagruimte voor bijlagen bereikt.";
|
||||
$a->strings["File upload failed. Possible system limit or action terminated."] = "Uploaden van bestand mislukt. Mogelijk systeemlimiet bereikt of actie afgebroken.";
|
||||
$a->strings["Stored file could not be verified. Upload failed."] = "Opgeslagen bestand kon niet worden geverifieerd. Uploaden mislukt.";
|
||||
$a->strings["Path not available."] = "Pad niet beschikbaar.";
|
||||
$a->strings["Empty pathname"] = "Padnaam leeg";
|
||||
$a->strings["duplicate filename or path"] = "dubbele bestandsnaam of pad";
|
||||
$a->strings["Path not found."] = "Pad niet gevonden";
|
||||
$a->strings["mkdir failed."] = "directory aanmaken (mkdir) mislukt.";
|
||||
$a->strings["database storage failed."] = "opslag in database mislukt.";
|
||||
$a->strings["Empty path"] = "Ontbrekend bestandspad";
|
||||
$a->strings["Cannot create a duplicate channel identifier on this system. Import failed."] = "Kan geen dubbele kanaal-identificator op deze hub aanmaken. Importeren mislukt.";
|
||||
$a->strings["Channel clone failed. Import failed."] = "Het klonen van het kanaal is mislukt. Importeren mislukt.";
|
||||
$a->strings["Cloned channel not found. Import failed."] = "Gekloond kanaal niet gevonden. Importeren mislukt.";
|
||||
@ -561,6 +302,7 @@ $a->strings["created a new post"] = "maakte een nieuw bericht aan";
|
||||
$a->strings["commented on %s's post"] = "gaf een reactie op een bericht van %s";
|
||||
$a->strings["New Page"] = "Nieuwe pagina";
|
||||
$a->strings["View"] = "Weergeven";
|
||||
$a->strings["Preview"] = "Voorvertoning";
|
||||
$a->strings["Actions"] = "Acties";
|
||||
$a->strings["Page Link"] = "Paginalink";
|
||||
$a->strings["Title"] = "Titel";
|
||||
@ -631,25 +373,31 @@ $a->strings["Starts:"] = "Start:";
|
||||
$a->strings["Finishes:"] = "Einde:";
|
||||
$a->strings["Location:"] = "Plaats:";
|
||||
$a->strings["This event has been added to your calendar."] = "Dit evenement is aan jouw agenda toegevoegd.";
|
||||
$a->strings["event"] = "gebeurtenis";
|
||||
$a->strings["Not specified"] = "Niet aangegeven";
|
||||
$a->strings["Needs Action"] = "Actie vereist";
|
||||
$a->strings["Completed"] = "Voltooid";
|
||||
$a->strings["In Process"] = "In behandeling";
|
||||
$a->strings["Cancelled"] = "Geannuleerd";
|
||||
$a->strings["Site Admin"] = "Hubbeheerder";
|
||||
$a->strings["Bookmarks"] = "Bladwijzers";
|
||||
$a->strings["Address Book"] = "Connecties";
|
||||
$a->strings["Login"] = "Inloggen";
|
||||
$a->strings["Channel Manager"] = "Kanaalbeheer";
|
||||
$a->strings["Matrix"] = "Matrix";
|
||||
$a->strings["Grid"] = "Grid";
|
||||
$a->strings["Settings"] = "Instellingen";
|
||||
$a->strings["Webpages"] = "Webpagina's";
|
||||
$a->strings["Channel Home"] = "Tijdlijn kanaal";
|
||||
$a->strings["Profile"] = "Profiel";
|
||||
$a->strings["Photos"] = "Foto's";
|
||||
$a->strings["Events"] = "Agenda";
|
||||
$a->strings["Directory"] = "Kanalengids";
|
||||
$a->strings["Help"] = "Hulp";
|
||||
$a->strings["Mail"] = "Privéberichten";
|
||||
$a->strings["Mood"] = "Stemming";
|
||||
$a->strings["Poke"] = "Aanstoten";
|
||||
$a->strings["Chat"] = "Chatten";
|
||||
$a->strings["Search"] = "Zoeken";
|
||||
$a->strings["Probe"] = "Onderzoeken";
|
||||
$a->strings["Suggest"] = "Voorstellen";
|
||||
$a->strings["Random Channel"] = "Willekeurig kanaal";
|
||||
@ -661,11 +409,175 @@ $a->strings["Profile Photo"] = "Profielfoto";
|
||||
$a->strings["Update"] = "Bijwerken";
|
||||
$a->strings["Install"] = "Installeren";
|
||||
$a->strings["Purchase"] = "Aanschaffen";
|
||||
$a->strings["prev"] = "vorige";
|
||||
$a->strings["first"] = "eerste";
|
||||
$a->strings["last"] = "laatste";
|
||||
$a->strings["next"] = "volgende";
|
||||
$a->strings["older"] = "ouder";
|
||||
$a->strings["newer"] = "nieuwer";
|
||||
$a->strings["No connections"] = "Geen connecties";
|
||||
$a->strings["%d Connection"] = array(
|
||||
0 => "%d connectie",
|
||||
1 => "%d connecties",
|
||||
);
|
||||
$a->strings["View Connections"] = "Connecties weergeven";
|
||||
$a->strings["Save"] = "Opslaan";
|
||||
$a->strings["poke"] = "aanstoten";
|
||||
$a->strings["poked"] = "aangestoten";
|
||||
$a->strings["ping"] = "ping";
|
||||
$a->strings["pinged"] = "gepingd";
|
||||
$a->strings["prod"] = "por";
|
||||
$a->strings["prodded"] = "gepord";
|
||||
$a->strings["slap"] = "slaan";
|
||||
$a->strings["slapped"] = "sloeg";
|
||||
$a->strings["finger"] = "finger";
|
||||
$a->strings["fingered"] = "gefingerd";
|
||||
$a->strings["rebuff"] = "afpoeieren";
|
||||
$a->strings["rebuffed"] = "afgepoeierd";
|
||||
$a->strings["happy"] = "gelukkig";
|
||||
$a->strings["sad"] = "bedroefd";
|
||||
$a->strings["mellow"] = "mellow";
|
||||
$a->strings["tired"] = "moe";
|
||||
$a->strings["perky"] = "parmantig";
|
||||
$a->strings["angry"] = "boos";
|
||||
$a->strings["stupified"] = "beteuterd";
|
||||
$a->strings["puzzled"] = "verward";
|
||||
$a->strings["interested"] = "geïnteresseerd";
|
||||
$a->strings["bitter"] = "verbitterd";
|
||||
$a->strings["cheerful"] = "vrolijk";
|
||||
$a->strings["alive"] = "levendig";
|
||||
$a->strings["annoyed"] = "geërgerd";
|
||||
$a->strings["anxious"] = "bezorgd";
|
||||
$a->strings["cranky"] = "humeurig";
|
||||
$a->strings["disturbed"] = "verontrust";
|
||||
$a->strings["frustrated"] = "gefrustreerd ";
|
||||
$a->strings["depressed"] = "gedeprimeerd";
|
||||
$a->strings["motivated"] = "gemotiveerd";
|
||||
$a->strings["relaxed"] = "ontspannen";
|
||||
$a->strings["surprised"] = "verrast";
|
||||
$a->strings["May"] = "mei";
|
||||
$a->strings["Unknown Attachment"] = "Onbekende bijlage";
|
||||
$a->strings["Attachment"] = "Bijlage";
|
||||
$a->strings["Size Unknown"] = "Onbekende grootte";
|
||||
$a->strings["remove category"] = "categorie verwijderen";
|
||||
$a->strings["remove from file"] = "uit map verwijderen";
|
||||
$a->strings["Click to open/close"] = "Klik om te openen of te sluiten";
|
||||
$a->strings["Link to Source"] = "Originele locatie";
|
||||
$a->strings["default"] = "standaard";
|
||||
$a->strings["Page layout"] = "Pagina-lay-out";
|
||||
$a->strings["You can create your own with the layouts tool"] = "Je kan jouw eigen lay-out ontwerpen onder lay-outs";
|
||||
$a->strings["Page content type"] = "Opmaaktype pagina";
|
||||
$a->strings["Select an alternate language"] = "Kies een andere taal";
|
||||
$a->strings["photo"] = "foto";
|
||||
$a->strings["status"] = "bericht";
|
||||
$a->strings["comment"] = "reactie";
|
||||
$a->strings["activity"] = "activiteit";
|
||||
$a->strings["Design Tools"] = "Ontwerp-hulpmiddelen";
|
||||
$a->strings["Blocks"] = "Blokken";
|
||||
$a->strings["Menus"] = "Menu's";
|
||||
$a->strings["Layouts"] = "Lay-outs";
|
||||
$a->strings["Pages"] = "Pagina's";
|
||||
$a->strings["Logged out."] = "Uitgelogd.";
|
||||
$a->strings["Failed authentication"] = "Mislukte authenticatie";
|
||||
$a->strings["Login failed."] = "Inloggen mislukt.";
|
||||
$a->strings["%s <!item_type!>"] = "%s <!item_type!>";
|
||||
$a->strings["[Hubzilla:Notify] New mail received at %s"] = "[Hubzilla:Notificatie] Nieuw privébericht ontvangen op %s";
|
||||
$a->strings["%1\$s, %2\$s sent you a new private message at %3\$s."] = "%1\$s, %2\$s zond jou een nieuw privébericht om %3\$s.";
|
||||
$a->strings["%1\$s sent you %2\$s."] = "%1\$s zond jou %2\$s.";
|
||||
$a->strings["a private message"] = "een privébericht";
|
||||
$a->strings["Please visit %s to view and/or reply to your private messages."] = "Bezoek %s om je privéberichten te bekijken en/of er op te reageren.";
|
||||
$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]a %4\$s[/zrl]"] = "%1\$s, %2\$s gaf een reactie op [zrl=%3\$s]een %4\$s[/zrl]";
|
||||
$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]%4\$s's %5\$s[/zrl]"] = "%1\$s, %2\$s gaf een reactie op [zrl=%3\$s]een %5\$s van %4\$s[/zrl]";
|
||||
$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]your %4\$s[/zrl]"] = "%1\$s, %2\$s gaf een reactie op [zrl=%3\$s]jouw %4\$s[/zrl]";
|
||||
$a->strings["[Hubzilla:Notify] Comment to conversation #%1\$d by %2\$s"] = "[Hubzilla:Notificatie] Reactie op conversatie #%1\$d door %2\$s";
|
||||
$a->strings["%1\$s, %2\$s commented on an item/conversation you have been following."] = "%1\$s, %2\$s gaf een reactie op een bericht/conversatie die jij volgt.";
|
||||
$a->strings["Please visit %s to view and/or reply to the conversation."] = "Bezoek %s om de conversatie te bekijken en/of er op te reageren.";
|
||||
$a->strings["[Hubzilla:Notify] %s posted to your profile wall"] = "[Hubzilla:Notificatie] %s heeft een bericht op jouw kanaal geplaatst";
|
||||
$a->strings["%1\$s, %2\$s posted to your profile wall at %3\$s"] = "%1\$s, %2\$s heeft om %3\$s een bericht op jouw kanaal geplaatst";
|
||||
$a->strings["%1\$s, %2\$s posted to [zrl=%3\$s]your wall[/zrl]"] = "%1\$s, %2\$s heeft een bericht op [zrl=%3\$s]jouw kanaal[/zrl] geplaatst";
|
||||
$a->strings["[Hubzilla:Notify] %s tagged you"] = "[Hubzilla:Notificatie] %s heeft je genoemd";
|
||||
$a->strings["%1\$s, %2\$s tagged you at %3\$s"] = "%1\$s, %2\$s noemde jou op %3\$s";
|
||||
$a->strings["%1\$s, %2\$s [zrl=%3\$s]tagged you[/zrl]."] = "%1\$s, %2\$s [zrl=%3\$s]noemde jou[/zrl].";
|
||||
$a->strings["[Hubzilla:Notify] %1\$s poked you"] = "[Hubzilla:Notificatie] %1\$s heeft je aangestoten";
|
||||
$a->strings["%1\$s, %2\$s poked you at %3\$s"] = "%1\$s, %2\$s heeft je aangestoten op %3\$s";
|
||||
$a->strings["%1\$s, %2\$s [zrl=%2\$s]poked you[/zrl]."] = "%1\$s, %2\$s [zrl=%2\$s]heeft je aangestoten[/zrl].";
|
||||
$a->strings["[Hubzilla:Notify] %s tagged your post"] = "[Hubzilla:Notificatie] %s heeft jouw bericht getagd";
|
||||
$a->strings["%1\$s, %2\$s tagged your post at %3\$s"] = "%1\$s, %2\$s heeft jouw bericht om %3\$s getagd";
|
||||
$a->strings["%1\$s, %2\$s tagged [zrl=%3\$s]your post[/zrl]"] = "%1\$s, %2\$s heeft [zrl=%3\$s]jouw bericht[/zrl] getagd";
|
||||
$a->strings["[Hubzilla:Notify] Introduction received"] = "[Hubzilla:Notificatie] Connectieverzoek ontvangen";
|
||||
$a->strings["%1\$s, you've received an new connection request from '%2\$s' at %3\$s"] = "%1\$s, je hebt een nieuw connectieverzoek ontvangen van '%2\$s' op %3\$s";
|
||||
$a->strings["%1\$s, you've received [zrl=%2\$s]a new connection request[/zrl] from %3\$s."] = "%1\$s, je hebt een [zrl=%2\$s]nieuw connectieverzoek[/zrl] ontvangen van %3\$s.";
|
||||
$a->strings["You may visit their profile at %s"] = "Je kan het profiel bekijken op %s";
|
||||
$a->strings["Please visit %s to approve or reject the connection request."] = "Bezoek %s om het connectieverzoek te accepteren of af te wijzen.";
|
||||
$a->strings["[Hubzilla:Notify] Friend suggestion received"] = "[Hubzilla:Notificatie] Kanaalvoorstel ontvangen";
|
||||
$a->strings["%1\$s, you've received a friend suggestion from '%2\$s' at %3\$s"] = "%1\$s, je hebt een kanaalvoorstel ontvangen van '%2\$s' om %3\$s";
|
||||
$a->strings["%1\$s, you've received [zrl=%2\$s]a friend suggestion[/zrl] for %3\$s from %4\$s."] = "%1\$s, je hebt [zrl=%2\$s]een kanaalvoorstel[/zrl] ontvangen voor %3\$s van %4\$s.";
|
||||
$a->strings["Name:"] = "Naam:";
|
||||
$a->strings["Photo:"] = "Foto:";
|
||||
$a->strings["Please visit %s to approve or reject the suggestion."] = "Bezoek %s om het voorstel te accepteren of af te wijzen.";
|
||||
$a->strings["[Hubzilla:Notify]"] = "[Hubzilla:Notificatie]";
|
||||
$a->strings["Attachments:"] = "Bijlagen:";
|
||||
$a->strings["\$Projectname event notification:"] = "Notificatie \$Projectname-gebeurtenis:";
|
||||
$a->strings["Private Message"] = "Privébericht";
|
||||
$a->strings["Select"] = "Kies";
|
||||
$a->strings["Save to Folder"] = "In map opslaan";
|
||||
$a->strings["I will attend"] = "Aanwezig";
|
||||
$a->strings["I will not attend"] = "Niet aanwezig";
|
||||
$a->strings["I might attend"] = "Mogelijk aanwezig";
|
||||
$a->strings["I agree"] = "Eens";
|
||||
$a->strings["I disagree"] = "Oneens";
|
||||
$a->strings["I abstain"] = "Onthouding";
|
||||
$a->strings["View all"] = "Toon alles";
|
||||
$a->strings["__ctx:noun__ Like"] = array(
|
||||
0 => "vindt dit leuk",
|
||||
1 => "vinden dit leuk",
|
||||
);
|
||||
$a->strings["__ctx:noun__ Dislike"] = array(
|
||||
0 => "vindt dit niet leuk",
|
||||
1 => "vinden dit niet leuk",
|
||||
);
|
||||
$a->strings["Add Star"] = "Ster toevoegen";
|
||||
$a->strings["Remove Star"] = "Ster verwijderen";
|
||||
$a->strings["Toggle Star Status"] = "Ster toevoegen of verwijderen";
|
||||
$a->strings["starred"] = "met ster";
|
||||
$a->strings["Message signature validated"] = "Berichtkenmerk gevalideerd";
|
||||
$a->strings["Message signature incorrect"] = "Berichtkenmerk onjuist";
|
||||
$a->strings["Add Tag"] = "Tag toevoegen";
|
||||
$a->strings["I like this (toggle)"] = "Vind ik leuk";
|
||||
$a->strings["like"] = "vind dit leuk";
|
||||
$a->strings["I don't like this (toggle)"] = "Vind ik niet leuk";
|
||||
$a->strings["dislike"] = "vind dit niet leuk";
|
||||
$a->strings["Share This"] = "Delen";
|
||||
$a->strings["share"] = "delen";
|
||||
$a->strings["%d comment"] = array(
|
||||
0 => "%d reactie",
|
||||
1 => "%d reacties weergeven",
|
||||
);
|
||||
$a->strings["View %s's profile - %s"] = "Profiel van %s bekijken - %s";
|
||||
$a->strings["to"] = "aan";
|
||||
$a->strings["via"] = "via";
|
||||
$a->strings["Wall-to-Wall"] = "Kanaal-naar-kanaal";
|
||||
$a->strings["via Wall-To-Wall:"] = "via kanaal-naar-kanaal";
|
||||
$a->strings["Delivery Report"] = "Afleveringsrapport";
|
||||
$a->strings["from %s"] = "van %s";
|
||||
$a->strings["last edited: %s"] = "laatst bewerkt: %s";
|
||||
$a->strings["Expires: %s"] = "Verloopt: %s";
|
||||
$a->strings["Save Bookmarks"] = "Bladwijzers opslaan";
|
||||
$a->strings["Add to Calendar"] = "Aan agenda toevoegen";
|
||||
$a->strings["Mark all seen"] = "Markeer alles als bekeken";
|
||||
$a->strings["__ctx:noun__ Likes"] = "vinden dit leuk";
|
||||
$a->strings["__ctx:noun__ Dislikes"] = "vinden dit niet leuk";
|
||||
$a->strings["Please wait"] = "Even wachten";
|
||||
$a->strings["This is you"] = "Dit ben jij";
|
||||
$a->strings["Bold"] = "Vet";
|
||||
$a->strings["Italic"] = "Cursief";
|
||||
$a->strings["Underline"] = "Onderstrepen";
|
||||
$a->strings["Quote"] = "Citeren";
|
||||
$a->strings["Code"] = "Broncode";
|
||||
$a->strings["Image"] = "Afbeelding";
|
||||
$a->strings["Insert Link"] = "Link invoegen";
|
||||
$a->strings["Video"] = "Video";
|
||||
$a->strings["Encrypt text"] = "Tekst versleutelen";
|
||||
$a->strings["Image/photo"] = "Afbeelding/foto";
|
||||
$a->strings["Encrypted content"] = "Versleutelde inhoud";
|
||||
$a->strings["Install %s element: "] = "Installeer %s-element: ";
|
||||
@ -735,22 +647,10 @@ $a->strings["Edit collection"] = "Collectie bewerken";
|
||||
$a->strings["Add new collection"] = "Nieuwe collectie toevoegen";
|
||||
$a->strings["Channels not in any collection"] = "Kanalen die zich in geen enkele collectie bevinden";
|
||||
$a->strings["add"] = "toevoegen";
|
||||
$a->strings["Tags"] = "Tags";
|
||||
$a->strings["Keywords"] = "Trefwoorden";
|
||||
$a->strings["have"] = "heb";
|
||||
$a->strings["has"] = "heeft";
|
||||
$a->strings["want"] = "wil";
|
||||
$a->strings["wants"] = "wil";
|
||||
$a->strings["like"] = "vind dit leuk";
|
||||
$a->strings["likes"] = "vindt dit leuk";
|
||||
$a->strings["dislike"] = "vind dit niet leuk";
|
||||
$a->strings["dislikes"] = "vindt dit niet leuk";
|
||||
$a->strings["Directory Options"] = "Opties kanalengids";
|
||||
$a->strings["Safe Mode"] = "Veilig zoeken";
|
||||
$a->strings["No"] = "Nee";
|
||||
$a->strings["Yes"] = "Ja";
|
||||
$a->strings["Public Forums Only"] = "Alleen openbare forums";
|
||||
$a->strings["This Website Only"] = "Alleen deze hub";
|
||||
$a->strings["No recipient provided."] = "Geen ontvanger opgegeven.";
|
||||
$a->strings["[no subject]"] = "[geen onderwerp]";
|
||||
$a->strings["Unable to determine sender."] = "Afzender kan niet bepaald worden.";
|
||||
$a->strings["Stored post could not be verified."] = "Opgeslagen bericht kon niet worden geverifieerd.";
|
||||
$a->strings["Unable to obtain identity information from database"] = "Niet in staat om identiteitsinformatie uit de database te verkrijgen";
|
||||
$a->strings["Empty name"] = "Ontbrekende naam";
|
||||
$a->strings["Name too long"] = "Naam te lang";
|
||||
@ -808,61 +708,160 @@ $a->strings["Love/Romance:"] = "Liefde/romantiek:";
|
||||
$a->strings["Work/employment:"] = "Werk/beroep:";
|
||||
$a->strings["School/education:"] = "School/opleiding:";
|
||||
$a->strings["Like this thing"] = "Vind dit ding leuk";
|
||||
$a->strings["No recipient provided."] = "Geen ontvanger opgegeven.";
|
||||
$a->strings["[no subject]"] = "[geen onderwerp]";
|
||||
$a->strings["Unable to determine sender."] = "Afzender kan niet bepaald worden.";
|
||||
$a->strings["Stored post could not be verified."] = "Opgeslagen bericht kon niet worden geverifieerd.";
|
||||
$a->strings["Save to Folder"] = "In map opslaan";
|
||||
$a->strings["I will attend"] = "Aanwezig";
|
||||
$a->strings["I will not attend"] = "Niet aanwezig";
|
||||
$a->strings["I might attend"] = "Mogelijk aanwezig";
|
||||
$a->strings["I agree"] = "Eens";
|
||||
$a->strings["I disagree"] = "Oneens";
|
||||
$a->strings["I abstain"] = "Onthouding";
|
||||
$a->strings["Add Star"] = "Ster toevoegen";
|
||||
$a->strings["Remove Star"] = "Ster verwijderen";
|
||||
$a->strings["Toggle Star Status"] = "Ster toevoegen of verwijderen";
|
||||
$a->strings["starred"] = "met ster";
|
||||
$a->strings["Add Tag"] = "Tag toevoegen";
|
||||
$a->strings["I like this (toggle)"] = "Vind ik leuk";
|
||||
$a->strings["I don't like this (toggle)"] = "Vind ik niet leuk";
|
||||
$a->strings["Share This"] = "Delen";
|
||||
$a->strings["share"] = "delen";
|
||||
$a->strings["%d comment"] = array(
|
||||
0 => "%d reactie",
|
||||
1 => "%d reacties weergeven",
|
||||
$a->strings["Tags"] = "Tags";
|
||||
$a->strings["Keywords"] = "Trefwoorden";
|
||||
$a->strings["have"] = "heb";
|
||||
$a->strings["has"] = "heeft";
|
||||
$a->strings["want"] = "wil";
|
||||
$a->strings["wants"] = "wil";
|
||||
$a->strings["likes"] = "vindt dit leuk";
|
||||
$a->strings["dislikes"] = "vindt dit niet leuk";
|
||||
$a->strings["Invalid data packet"] = "Datapakket ongeldig";
|
||||
$a->strings["Unable to verify channel signature"] = "Kanaalkenmerk kon niet worden geverifieerd. ";
|
||||
$a->strings["Unable to verify site signature for %s"] = "Hubkenmerk voor %s kon niet worden geverifieerd";
|
||||
$a->strings["invalid target signature"] = "ongeldig doelkenmerk";
|
||||
$a->strings["Item was not found."] = "Item niet gevonden";
|
||||
$a->strings["No source file."] = "Geen bronbestand.";
|
||||
$a->strings["Cannot locate file to replace"] = "Kan het te vervangen bestand niet vinden";
|
||||
$a->strings["Cannot locate file to revise/update"] = "Kan het bestand wat aangepast moet worden niet vinden";
|
||||
$a->strings["File exceeds size limit of %d"] = "Bestand is groter dan de toegelaten %d";
|
||||
$a->strings["You have reached your limit of %1$.0f Mbytes attachment storage."] = "Je hebt jouw limiet van %1$.0f MB opslagruimte voor bijlagen bereikt.";
|
||||
$a->strings["File upload failed. Possible system limit or action terminated."] = "Uploaden van bestand mislukt. Mogelijk systeemlimiet bereikt of actie afgebroken.";
|
||||
$a->strings["Stored file could not be verified. Upload failed."] = "Opgeslagen bestand kon niet worden geverifieerd. Uploaden mislukt.";
|
||||
$a->strings["Path not available."] = "Pad niet beschikbaar.";
|
||||
$a->strings["Empty pathname"] = "Padnaam leeg";
|
||||
$a->strings["duplicate filename or path"] = "dubbele bestandsnaam of pad";
|
||||
$a->strings["Path not found."] = "Pad niet gevonden";
|
||||
$a->strings["mkdir failed."] = "directory aanmaken (mkdir) mislukt.";
|
||||
$a->strings["database storage failed."] = "opslag in database mislukt.";
|
||||
$a->strings["Empty path"] = "Ontbrekend bestandspad";
|
||||
$a->strings["channel"] = "kanaal";
|
||||
$a->strings["%1\$s likes %2\$s's %3\$s"] = "%1\$s vindt %3\$s van %2\$s leuk";
|
||||
$a->strings["%1\$s doesn't like %2\$s's %3\$s"] = "%1\$s vindt %3\$s van %2\$s niet leuk";
|
||||
$a->strings["%1\$s is now connected with %2\$s"] = "%1\$s is nu met %2\$s verbonden";
|
||||
$a->strings["%1\$s poked %2\$s"] = "%1\$s heeft %2\$s aangestoten";
|
||||
$a->strings["__ctx:mood__ %1\$s is %2\$s"] = "%1\$s is %2\$s";
|
||||
$a->strings["__ctx:title__ Likes"] = "vinden dit leuk";
|
||||
$a->strings["__ctx:title__ Dislikes"] = "vinden dit niet leuk";
|
||||
$a->strings["__ctx:title__ Agree"] = "eens";
|
||||
$a->strings["__ctx:title__ Disagree"] = "oneens";
|
||||
$a->strings["__ctx:title__ Abstain"] = "onthoudingen";
|
||||
$a->strings["__ctx:title__ Attending"] = "aanwezig";
|
||||
$a->strings["__ctx:title__ Not attending"] = "niet aanwezig";
|
||||
$a->strings["__ctx:title__ Might attend"] = "mogelijk aanwezig";
|
||||
$a->strings["View %s's profile @ %s"] = "Bekijk het profiel van %s @ %s";
|
||||
$a->strings["Categories:"] = "Categorieën:";
|
||||
$a->strings["Filed under:"] = "Bewaard onder:";
|
||||
$a->strings["View in context"] = "In context bekijken";
|
||||
$a->strings["remove"] = "verwijderen";
|
||||
$a->strings["Loading..."] = "Aan het laden...";
|
||||
$a->strings["Delete Selected Items"] = "Verwijder de geselecteerde items";
|
||||
$a->strings["View Source"] = "Bron weergeven";
|
||||
$a->strings["Follow Thread"] = "Conversatie volgen";
|
||||
$a->strings["View Status"] = "Status weergeven";
|
||||
$a->strings["View Profile"] = "Profiel weergeven";
|
||||
$a->strings["View Photos"] = "Foto's weergeven";
|
||||
$a->strings["Activity/Posts"] = "Kanaal-activiteit";
|
||||
$a->strings["Edit Connection"] = "Connectie bewerken";
|
||||
$a->strings["Send PM"] = "Privébericht verzenden";
|
||||
$a->strings["%s likes this."] = "%s vindt dit leuk.";
|
||||
$a->strings["%s doesn't like this."] = "%s vindt dit niet leuk.";
|
||||
$a->strings["<span %1\$s>%2\$d people</span> like this."] = array(
|
||||
0 => "<span %1\$s>%2\$d persoon</span> vindt dit leuk.",
|
||||
1 => "<span %1\$s>%2\$d personen</span> vinden dit leuk.",
|
||||
);
|
||||
$a->strings["<span %1\$s>%2\$d people</span> don't like this."] = array(
|
||||
0 => "<span %1\$s>%2\$d persoon</span> vindt dit niet leuk.",
|
||||
1 => "<span %1\$s>%2\$d personen</span> vinden dit niet leuk.",
|
||||
);
|
||||
$a->strings["and"] = "en";
|
||||
$a->strings[", and %d other people"] = array(
|
||||
0 => ", en %d ander persoon",
|
||||
1 => ", en %d andere personen",
|
||||
);
|
||||
$a->strings["%s like this."] = "%s vinden dit leuk.";
|
||||
$a->strings["%s don't like this."] = "%s vinden dit niet leuk.";
|
||||
$a->strings["Visible to <strong>everybody</strong>"] = "Voor <strong>iedereen</strong> zichtbaar";
|
||||
$a->strings["Please enter a link URL:"] = "Vul een internetadres/URL in:";
|
||||
$a->strings["Please enter a video link/URL:"] = "Vul een videolink/URL in:";
|
||||
$a->strings["Please enter an audio link/URL:"] = "Vul een audiolink/URL in:";
|
||||
$a->strings["Tag term:"] = "Tag:";
|
||||
$a->strings["Save to Folder:"] = "Bewaar in map: ";
|
||||
$a->strings["Where are you right now?"] = "Waar bevind je je op dit moment?";
|
||||
$a->strings["Expires YYYY-MM-DD HH:MM"] = "Verloopt op DD-MM-YYYY om HH:MM";
|
||||
$a->strings["Share"] = "Delen";
|
||||
$a->strings["Page link name"] = "Linknaam pagina";
|
||||
$a->strings["Post as"] = "Bericht plaatsen als";
|
||||
$a->strings["Upload photo"] = "Foto uploaden";
|
||||
$a->strings["upload photo"] = "foto uploaden";
|
||||
$a->strings["Attach file"] = "Bestand toevoegen";
|
||||
$a->strings["attach file"] = "bestand toevoegen";
|
||||
$a->strings["Insert web link"] = "Weblink invoegen";
|
||||
$a->strings["web link"] = "Weblink";
|
||||
$a->strings["Insert video link"] = "Videolink invoegen";
|
||||
$a->strings["video link"] = "videolink";
|
||||
$a->strings["Insert audio link"] = "Audiolink invoegen";
|
||||
$a->strings["audio link"] = "audiolink";
|
||||
$a->strings["Set your location"] = "Locatie instellen";
|
||||
$a->strings["set location"] = "locatie instellen";
|
||||
$a->strings["Toggle voting"] = "Stemmen in- of uitschakelen";
|
||||
$a->strings["Clear browser location"] = "Locatie van webbrowser wissen";
|
||||
$a->strings["clear location"] = "locatie wissen";
|
||||
$a->strings["Title (optional)"] = "Titel (optioneel)";
|
||||
$a->strings["Categories (optional, comma-separated list)"] = "Categorieën (optioneel, door komma's gescheiden lijst)";
|
||||
$a->strings["Permission settings"] = "Permissies";
|
||||
$a->strings["permissions"] = "permissies";
|
||||
$a->strings["Public post"] = "Openbaar bericht";
|
||||
$a->strings["Example: bob@example.com, mary@example.com"] = "Voorbeeld: bob@voorbeeld.nl, mary@voorbeeld.be";
|
||||
$a->strings["Set expiration date"] = "Verloopdatum instellen";
|
||||
$a->strings["OK"] = "OK";
|
||||
$a->strings["Cancel"] = "Annuleren";
|
||||
$a->strings["Discover"] = "Ontdekken";
|
||||
$a->strings["Imported public streams"] = "Openbare streams importeren";
|
||||
$a->strings["Commented Order"] = "Nieuwe reacties bovenaan";
|
||||
$a->strings["Sort by Comment Date"] = "Berichten met nieuwe reacties bovenaan";
|
||||
$a->strings["Posted Order"] = "Nieuwe berichten bovenaan";
|
||||
$a->strings["Sort by Post Date"] = "Nieuwe berichten bovenaan";
|
||||
$a->strings["Personal"] = "Persoonlijk";
|
||||
$a->strings["Posts that mention or involve you"] = "Alleen berichten die jou vermelden of waar je op een andere manier bij betrokken bent";
|
||||
$a->strings["New"] = "Nieuw";
|
||||
$a->strings["Activity Stream - by date"] = "Activiteitenstroom - volgens datum";
|
||||
$a->strings["Starred"] = "Met ster";
|
||||
$a->strings["Favourite Posts"] = "Favoriete berichten";
|
||||
$a->strings["Spam"] = "Spam";
|
||||
$a->strings["Posts flagged as SPAM"] = "Berichten gemarkeerd als SPAM";
|
||||
$a->strings["Channel"] = "Kanaal";
|
||||
$a->strings["Status Messages and Posts"] = "Berichten in dit kanaal";
|
||||
$a->strings["About"] = "Over";
|
||||
$a->strings["Profile Details"] = "Profiel";
|
||||
$a->strings["Files and Storage"] = "Bestanden en opslagruimte";
|
||||
$a->strings["Chatrooms"] = "Chatkanalen";
|
||||
$a->strings["Saved Bookmarks"] = "Opgeslagen bladwijzers";
|
||||
$a->strings["Manage Webpages"] = "Webpagina's beheren";
|
||||
$a->strings["__ctx:noun__ Attending"] = array(
|
||||
0 => "aanwezig",
|
||||
1 => "aanwezig",
|
||||
);
|
||||
$a->strings["__ctx:noun__ Not Attending"] = array(
|
||||
0 => "niet aanwezig",
|
||||
1 => "niet aanwezig",
|
||||
);
|
||||
$a->strings["__ctx:noun__ Undecided"] = array(
|
||||
0 => "nog niet beslist",
|
||||
1 => "nog niet beslist",
|
||||
);
|
||||
$a->strings["__ctx:noun__ Agree"] = array(
|
||||
0 => "eens",
|
||||
1 => "eens",
|
||||
);
|
||||
$a->strings["__ctx:noun__ Disagree"] = array(
|
||||
0 => "oneens",
|
||||
1 => "oneens",
|
||||
);
|
||||
$a->strings["__ctx:noun__ Abstain"] = array(
|
||||
0 => "onthouding",
|
||||
1 => "onthoudingen",
|
||||
);
|
||||
$a->strings["View %s's profile - %s"] = "Profiel van %s bekijken - %s";
|
||||
$a->strings["to"] = "aan";
|
||||
$a->strings["via"] = "via";
|
||||
$a->strings["Wall-to-Wall"] = "Kanaal-naar-kanaal";
|
||||
$a->strings["via Wall-To-Wall:"] = "via kanaal-naar-kanaal";
|
||||
$a->strings["Delivery Report"] = "Afleveringsrapport";
|
||||
$a->strings["Save Bookmarks"] = "Bladwijzers opslaan";
|
||||
$a->strings["Add to Calendar"] = "Aan agenda toevoegen";
|
||||
$a->strings["Mark all seen"] = "Markeer alles als bekeken";
|
||||
$a->strings["__ctx:noun__ Likes"] = "vinden dit leuk";
|
||||
$a->strings["__ctx:noun__ Dislikes"] = "vinden dit niet leuk";
|
||||
$a->strings["This is you"] = "Dit ben jij";
|
||||
$a->strings["Image"] = "Afbeelding";
|
||||
$a->strings["Insert Link"] = "Link invoegen";
|
||||
$a->strings["Video"] = "Video";
|
||||
$a->strings["Permission denied"] = "Toegang geweigerd";
|
||||
$a->strings["(Unknown)"] = "(Onbekend)";
|
||||
$a->strings["Visible to anybody on the internet."] = "Voor iedereen op het internet zichtbaar.";
|
||||
$a->strings["Visible to you only."] = "Alleen voor jou zichtbaar.";
|
||||
$a->strings["Visible to anybody in this network."] = "Voor iedereen in dit netwerk zichtbaar.";
|
||||
$a->strings["Visible to anybody authenticated."] = "Voor iedereen die geauthenticeerd is zichtbaar.";
|
||||
$a->strings["Visible to anybody on %s."] = "Voor iedereen op %s zichtbaar.";
|
||||
$a->strings["Visible to all connections."] = "Voor alle connecties zichtbaar.";
|
||||
$a->strings["Visible to approved connections."] = "Voor alle goedgekeurde connecties zichtbaar.";
|
||||
$a->strings["Visible to specific connections."] = "Voor specifieke connecties zichtbaar.";
|
||||
$a->strings["Item not found."] = "Item niet gevonden.";
|
||||
$a->strings["Collection not found."] = "Collectie niet gevonden.";
|
||||
$a->strings["Collection is empty."] = "Collectie is leeg";
|
||||
$a->strings["Collection: %s"] = "Collectie: %s";
|
||||
$a->strings["Connection: %s"] = "Connectie: %s";
|
||||
$a->strings["Connection not found."] = "Connectie niet gevonden.";
|
||||
$a->strings["Apps"] = "Apps";
|
||||
$a->strings["System"] = "Systeem";
|
||||
$a->strings["Create Personal App"] = "Persoonlijke app maken";
|
||||
@ -892,7 +891,6 @@ $a->strings["Export channel"] = "Kanaal exporteren";
|
||||
$a->strings["Connection Default Permissions"] = "Standaard permissies voor connecties";
|
||||
$a->strings["Premium Channel Settings"] = "Instellingen premiumkanaal";
|
||||
$a->strings["Private Mail Menu"] = "Privéberichten";
|
||||
$a->strings["Check Mail"] = "Controleer op nieuwe berichten";
|
||||
$a->strings["Combined View"] = "Gecombineerd postvak";
|
||||
$a->strings["Inbox"] = "Postvak IN";
|
||||
$a->strings["Outbox"] = "Postvak UIT";
|
||||
@ -929,10 +927,6 @@ $a->strings["Logs"] = "Logboeken";
|
||||
$a->strings["Admin"] = "Beheer";
|
||||
$a->strings["Plugin Features"] = "Plug-in-opties";
|
||||
$a->strings["User registrations waiting for confirmation"] = "Accounts die op goedkeuring wachten";
|
||||
$a->strings["Invalid data packet"] = "Datapakket ongeldig";
|
||||
$a->strings["Unable to verify channel signature"] = "Kanaalkenmerk kon niet worden geverifieerd. ";
|
||||
$a->strings["Unable to verify site signature for %s"] = "Hubkenmerk voor %s kon niet worden geverifieerd";
|
||||
$a->strings["invalid target signature"] = "ongeldig doelkenmerk";
|
||||
$a->strings["Logout"] = "Uitloggen";
|
||||
$a->strings["End this session"] = "Beëindig deze sessie";
|
||||
$a->strings["Home"] = "Home";
|
||||
@ -957,7 +951,6 @@ $a->strings["Help and documentation"] = "Hulp en documentatie";
|
||||
$a->strings["Applications, utilities, links, games"] = "Apps";
|
||||
$a->strings["Search site @name, #tag, ?docs, content"] = "Zoek een @kanaal, doorzoek inhoud hub met tekst en #tags, of doorzoek ?documentatie ";
|
||||
$a->strings["Channel Directory"] = "Kanalengids";
|
||||
$a->strings["Grid"] = "Grid";
|
||||
$a->strings["Your grid"] = "Jouw grid";
|
||||
$a->strings["Mark all grid notifications seen"] = "Markeer alle gridnotificaties als bekeken";
|
||||
$a->strings["Channel home"] = "Tijdlijn kanaal";
|
||||
@ -978,6 +971,12 @@ $a->strings["Account/Channel Settings"] = "Account-/kanaal-instellingen";
|
||||
$a->strings["Site Setup and Configuration"] = "Hub instellen en beheren";
|
||||
$a->strings["@name, #tag, ?doc, content"] = "@kanaal, #tag, inhoud, ?hulp";
|
||||
$a->strings["Please wait..."] = "Wachten aub...";
|
||||
$a->strings["Directory Options"] = "Opties kanalengids";
|
||||
$a->strings["Safe Mode"] = "Veilig zoeken";
|
||||
$a->strings["No"] = "Nee";
|
||||
$a->strings["Yes"] = "Ja";
|
||||
$a->strings["Public Forums Only"] = "Alleen openbare forums";
|
||||
$a->strings["This Website Only"] = "Alleen deze hub";
|
||||
$a->strings["Some blurb about what to do when you're new here"] = "Welkom op \$Projectname. Klik op de tab ontdekken of klik rechtsboven op de <a href=\"directory\">kanalengids</a>, om kanalen te vinden. Rechtsboven vind je ook <a href=\"directory\">apps</a>, waar je vrijwel alle functies van \$Projectname kunt vinden. Voor <a href=\"directory\">hulp</a> met \$Projectname klik je op het vraagteken.";
|
||||
$a->strings["Contact not found."] = "Contact niet gevonden";
|
||||
$a->strings["Friend suggestion sent."] = "Kanaalvoorstel verzonden.";
|
||||
@ -1196,6 +1195,7 @@ $a->strings["Copy/paste this URL to link file from a web page"] = "Kopieer/plak
|
||||
$a->strings["Share this file"] = "Dit bestand delen";
|
||||
$a->strings["Show URL to this file"] = "Toon URL van dit bestand";
|
||||
$a->strings["Notify your contacts about this file"] = "Jouw connecties over dit bestand berichten";
|
||||
$a->strings["This site is not a directory server"] = "Deze hub is geen kanalengidshub (directoryserver)";
|
||||
$a->strings["Layout Name"] = "Naam lay-out";
|
||||
$a->strings["Layout Description (Optional)"] = "Lay-out-omschrijving (optioneel)";
|
||||
$a->strings["Comanche page description language help"] = "Hulp met de paginabeschrijvingstaal Comanche";
|
||||
@ -1225,8 +1225,31 @@ $a->strings["Chatroom Name"] = "Naam chatkanaal";
|
||||
$a->strings["%1\$s's Chatrooms"] = "Chatkanalen van %1\$s";
|
||||
$a->strings["Items tagged with: %s"] = "Items getagd met %s";
|
||||
$a->strings["Search results for: %s"] = "Zoekresultaten voor %s";
|
||||
$a->strings["Website:"] = "Website:";
|
||||
$a->strings["Remote Channel [%s] (not yet known on this site)"] = "Kanaal op afstand [%s] (nog niet op deze hub bekend)";
|
||||
$a->strings["Rating (this information is public)"] = "Beoordeling (deze informatie is openbaar)";
|
||||
$a->strings["Optionally explain your rating (this information is public)"] = "Verklaar jouw beoordeling (niet verplicht, deze informatie is openbaar)";
|
||||
$a->strings["Unable to lookup recipient."] = "Niet in staat om ontvanger op te zoeken.";
|
||||
$a->strings["Unable to communicate with requested channel."] = "Niet in staat om met het aangevraagde kanaal te communiceren.";
|
||||
$a->strings["Cannot verify requested channel."] = "Kan opgevraagd kanaal niet verifieren";
|
||||
$a->strings["Selected channel has private message restrictions. Send failed."] = "Gekozen kanaal heeft restricties voor privéberichten. Verzenden mislukt.";
|
||||
$a->strings["Messages"] = "Berichten";
|
||||
$a->strings["Message recalled."] = "Bericht ingetrokken.";
|
||||
$a->strings["Conversation removed."] = "Conversatie verwijderd";
|
||||
$a->strings["Insufficient permissions. Request redirected to profile page."] = "Onvoldoende permissies. Doorgestuurd naar profielpagina.";
|
||||
$a->strings["Requested channel is not in this network"] = "Opgevraagd kanaal is niet in dit netwerk beschikbaar";
|
||||
$a->strings["Send Private Message"] = "Privébericht versturen";
|
||||
$a->strings["To:"] = "Aan:";
|
||||
$a->strings["Subject:"] = "Onderwerp:";
|
||||
$a->strings["Your message:"] = "Jouw bericht:";
|
||||
$a->strings["Send"] = "Verzenden";
|
||||
$a->strings["Delete message"] = "Bericht verwijderen";
|
||||
$a->strings["Delivery report"] = "Afleveringsrapport";
|
||||
$a->strings["Recall message"] = "Bericht intrekken";
|
||||
$a->strings["Message has been recalled."] = "Bericht is ingetrokken.";
|
||||
$a->strings["Delete Conversation"] = "Verwijder conversatie";
|
||||
$a->strings["No secure communications available. You <strong>may</strong> be able to respond from the sender's profile page."] = "Geen veilige communicatie beschikbaar. <strong>Mogelijk</strong> kan je reageren op de kanaalpagina van de afzender.";
|
||||
$a->strings["Send Reply"] = "Antwoord versturen";
|
||||
$a->strings["Your message for %s (%s):"] = "Jouw privébericht aan %s (%s):";
|
||||
$a->strings["Item not found"] = "Item niet gevonden";
|
||||
$a->strings["Item is not editable"] = "Item is niet te bewerken";
|
||||
$a->strings["Delete item?"] = "Item verwijderen?";
|
||||
@ -1244,6 +1267,10 @@ $a->strings["accepted for delivery"] = "geaccepteerd om afgeleverd te worden";
|
||||
$a->strings["updated"] = "geüpdatet";
|
||||
$a->strings["update ignored"] = "update genegeerd";
|
||||
$a->strings["permission denied"] = "toegang geweigerd";
|
||||
$a->strings["recipient not found"] = "ontvanger niet gevonden";
|
||||
$a->strings["mail recalled"] = "Privébericht ingetrokken";
|
||||
$a->strings["duplicate mail received"] = "dubbel privébericht ontvangen";
|
||||
$a->strings["mail delivered"] = "privébericht afgeleverd";
|
||||
$a->strings["Delete block?"] = "Blok verwijderen";
|
||||
$a->strings["Edit Block"] = "Blok bewerken";
|
||||
$a->strings["\$Projectname"] = "\$Projectname";
|
||||
@ -1549,10 +1576,6 @@ $a->strings["Map"] = "Kaart";
|
||||
$a->strings["View Album"] = "Album weergeven";
|
||||
$a->strings["Recent Photos"] = "Recente foto's";
|
||||
$a->strings["\$Projectname channel"] = "\$Projectname-kanaal";
|
||||
$a->strings["Website:"] = "Website:";
|
||||
$a->strings["Remote Channel [%s] (not yet known on this site)"] = "Kanaal op afstand [%s] (nog niet op deze hub bekend)";
|
||||
$a->strings["Rating (this information is public)"] = "Beoordeling (deze informatie is openbaar)";
|
||||
$a->strings["Optionally explain your rating (this information is public)"] = "Verklaar jouw beoordeling (niet verplicht, deze informatie is openbaar)";
|
||||
$a->strings["Calendar entries imported."] = "Agenda-items geïmporteerd.";
|
||||
$a->strings["No calendar entries found."] = "Geen agenda-items gevonden.";
|
||||
$a->strings["Event can not end before it has started."] = "Gebeurtenis kan niet eindigen voordat het is begonnen";
|
||||
@ -1615,25 +1638,6 @@ $a->strings["Ratings"] = "Waarderingen";
|
||||
$a->strings["Rating: "] = "Waardering: ";
|
||||
$a->strings["Website: "] = "Website: ";
|
||||
$a->strings["Description: "] = "Omschrijving: ";
|
||||
$a->strings["This site is not a directory server"] = "Deze hub is geen kanalengidshub (directoryserver)";
|
||||
$a->strings["Unable to lookup recipient."] = "Niet in staat om ontvanger op te zoeken.";
|
||||
$a->strings["Unable to communicate with requested channel."] = "Niet in staat om met het aangevraagde kanaal te communiceren.";
|
||||
$a->strings["Cannot verify requested channel."] = "Kan opgevraagd kanaal niet verifieren";
|
||||
$a->strings["Selected channel has private message restrictions. Send failed."] = "Gekozen kanaal heeft restricties voor privéberichten. Verzenden mislukt.";
|
||||
$a->strings["Messages"] = "Berichten";
|
||||
$a->strings["Message deleted."] = "Bericht verwijderd.";
|
||||
$a->strings["Message recalled."] = "Bericht ingetrokken.";
|
||||
$a->strings["Send Private Message"] = "Privébericht versturen";
|
||||
$a->strings["To:"] = "Aan:";
|
||||
$a->strings["Subject:"] = "Onderwerp:";
|
||||
$a->strings["Your message:"] = "Jouw bericht:";
|
||||
$a->strings["Send"] = "Verzenden";
|
||||
$a->strings["Delete message"] = "Bericht verwijderen";
|
||||
$a->strings["Recall message"] = "Bericht intrekken";
|
||||
$a->strings["Message has been recalled."] = "Bericht is ingetrokken.";
|
||||
$a->strings["Delete Conversation"] = "Verwijder conversatie";
|
||||
$a->strings["No secure communications available. You <strong>may</strong> be able to respond from the sender's profile page."] = "Geen veilige communicatie beschikbaar. <strong>Mogelijk</strong> kan je reageren op de kanaalpagina van de afzender.";
|
||||
$a->strings["Send Reply"] = "Antwoord versturen";
|
||||
$a->strings["Page Title"] = "Paginatitel";
|
||||
$a->strings["Maximum daily site registrations exceeded. Please try again tomorrow."] = "Maximum toegestane dagelijkse registraties op deze \$Projectname-hub bereikt. Probeer het morgen (UTC) nogmaals.";
|
||||
$a->strings["Please indicate acceptance of the Terms of Service. Registration failed."] = "Registratie mislukt. De gebruiksvoorwaarden dienen wel geaccepteerd te worden.";
|
||||
@ -1662,6 +1666,7 @@ $a->strings["By default only the instances of the channels located on this hub w
|
||||
$a->strings["Remove Account"] = "Account verwijderen";
|
||||
$a->strings["No service class restrictions found."] = "Geen abonnementsbeperkingen gevonden.";
|
||||
$a->strings["Item not available."] = "Item is niet aanwezig.";
|
||||
$a->strings["This directory server requires an access token"] = "Deze kanalengidshub (directoryserver) heeft een toegangs-token nodig";
|
||||
$a->strings["Failed to create source. No channel selected."] = "Aanmaken bron mislukt. Geen kanaal geselecteerd.";
|
||||
$a->strings["Source created."] = "Bron aangemaakt.";
|
||||
$a->strings["Source updated."] = "Bron aangemaakt.";
|
||||
@ -1687,7 +1692,7 @@ $a->strings["Authentication failed."] = "Authenticatie mislukt.";
|
||||
$a->strings["Remote Authentication"] = "Authenticatie op afstand";
|
||||
$a->strings["Enter your channel address (e.g. channel@example.com)"] = "Vul jouw kanaaladres in (bijv. channel@example.com)";
|
||||
$a->strings["Authenticate"] = "Authenticeren";
|
||||
$a->strings["This directory server requires an access token"] = "Deze kanalengidshub (directoryserver) heeft een toegangs-token nodig";
|
||||
$a->strings["Insufficient permissions. Request redirected to profile page."] = "Onvoldoende permissies. Doorgestuurd naar profielpagina.";
|
||||
$a->strings["Version %s"] = "Versie %s";
|
||||
$a->strings["Installed plugins/addons/apps:"] = "Ingeschakelde plug-ins/add-ons/apps:";
|
||||
$a->strings["No installed plugins/addons/apps"] = "Geen ingeschakelde plug-ins/add-ons/apps";
|
||||
@ -1696,7 +1701,7 @@ $a->strings["Tag: "] = "Tag: ";
|
||||
$a->strings["Last background fetch: "] = "Meest recente achtergrond-fetch:";
|
||||
$a->strings["Current load average: "] = "Gemiddelde systeembelasting is nu:";
|
||||
$a->strings["Running at web location"] = "Draaiend op weblocatie";
|
||||
$a->strings["Please visit <a href=\"https://redmatrix.me\">redmatrix.me</a> to learn more about \$Projectname."] = "Bezoek <a href=\"https://redmatrix.me\">redmatrix.me</a> om meer over \$Projectname te leren.";
|
||||
$a->strings["Please visit <a href=\"http://hubzilla.org\">hubzilla.org</a> to learn more about \$Projectname."] = "Bezoek <a href=\"http://hubzilla.org\">hubzilla.org</a> ";
|
||||
$a->strings["Bug reports and issues: please visit"] = "Bugrapporten en andere kwesties: bezoek";
|
||||
$a->strings["\$projectname issues"] = "\$projectname-issues";
|
||||
$a->strings["Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot com"] = "Voorstellen, lofbetuigingen, enz. - e-mail \"redmatrix\" at librelist - dot com";
|
||||
|
14406
view/nl/messages.po
14406
view/nl/messages.po
File diff suppressed because it is too large
Load Diff
3078
view/nl/strings.php
3078
view/nl/strings.php
File diff suppressed because it is too large
Load Diff
@ -1,10 +1,10 @@
|
||||
Hey,
|
||||
I'm the RedMatrix hub at {{$sitename}};
|
||||
I'm the Hubzilla hub at {{$sitename}};
|
||||
|
||||
The Red atrix developers released update {{$update}} recently,
|
||||
The Hubzilla developers released update {{$update}} recently,
|
||||
but when I tried to install it, something went terribly wrong.
|
||||
This needs to be fixed soon and it requires human intervention.
|
||||
Please contact a RedMatrix developer if you can not figure out how to
|
||||
Please contact a Hubzilla developer if you can not figure out how to
|
||||
fix it on your own. My database might be invalid.
|
||||
|
||||
The error message is '{{$error}}'.
|
||||
|
@ -129,7 +129,7 @@ pre code {
|
||||
|
||||
code {
|
||||
font-size: 1em;
|
||||
padding: 5px;
|
||||
padding: 1em;
|
||||
border: 1px solid #ccc;
|
||||
background: #ccc;
|
||||
color: #000;
|
||||
@ -1432,7 +1432,10 @@ a.rconnect:hover, a.rateme:hover, div.rateme:hover {
|
||||
.profile-match-connect { margin-top: 5px; }
|
||||
|
||||
.reshared-content { margin-left: 20px; }
|
||||
.shared_header img { margin-right: 10px; }
|
||||
.shared_header img {
|
||||
border-radius: $radiuspx;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.tag1 {
|
||||
font-size : 0.9em !important;
|
||||
@ -1527,22 +1530,6 @@ a .drop-icons:hover {
|
||||
color: #FF0000;
|
||||
}
|
||||
|
||||
.attachlink {
|
||||
float: left;
|
||||
border: 1px solid black;
|
||||
padding: 5px;
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
.attach-icons {
|
||||
font-size: 1.4em;
|
||||
}
|
||||
|
||||
.attach-clip {
|
||||
margin-right: 3px;
|
||||
font-size: 1.8em;
|
||||
}
|
||||
|
||||
#menulist {
|
||||
list-style-type: none;
|
||||
}
|
||||
@ -1635,39 +1622,43 @@ img.mail-conv-sender-photo {
|
||||
|
||||
/* conversation */
|
||||
|
||||
.wall-item-title {
|
||||
font-size: $font_size;
|
||||
.wall-item-head {
|
||||
padding: 10px 10px 0px 10px;
|
||||
}
|
||||
|
||||
.hide-comments-outer,
|
||||
.thread-wrapper .wall-item-comment-wrapper,
|
||||
.wall-item-content-wrapper.comment {
|
||||
margin-left: $comment_indent;
|
||||
.wall-item-content {
|
||||
padding: 1em 10px;
|
||||
}
|
||||
|
||||
.wall-photo-item {
|
||||
padding: 10px 0px;
|
||||
}
|
||||
|
||||
.wall-item-tools {
|
||||
padding: 0px 10px 10px 10px;
|
||||
}
|
||||
|
||||
|
||||
.wall-item-title {
|
||||
font-size: $font_size;
|
||||
}
|
||||
|
||||
.wall-item-content-wrapper {
|
||||
background-color: $item_colour;
|
||||
padding: 10px;
|
||||
border-top-right-radius: $radiuspx;
|
||||
border-top-left-radius: $radiuspx;
|
||||
}
|
||||
|
||||
.wall-item-content-wrapper.comment {
|
||||
background-color: $comment_item_colour;
|
||||
border-color: $comment_border_colour;
|
||||
border-style: solid;
|
||||
border-width: 0px 0px 0px 3px;
|
||||
border-radius: 0px;
|
||||
padding: 7px 10px 7px 7px;
|
||||
}
|
||||
|
||||
.hide-comments-outer {
|
||||
background-color: $comment_item_colour;
|
||||
border-color: $comment_border_colour;
|
||||
border-top-color: #ccc;
|
||||
border-style: solid;
|
||||
border-top-style: dashed;
|
||||
border-width: 1px 0px 0px 3px;
|
||||
border-width: 1px 0px 0px 0px;
|
||||
text-align: center;
|
||||
border-radius: 0px;
|
||||
}
|
||||
@ -1722,6 +1713,7 @@ img.mail-conv-sender-photo {
|
||||
}
|
||||
|
||||
.wall-item-content,
|
||||
.mail-conv-body,
|
||||
.page-body {
|
||||
font-size: $font_size;
|
||||
clear: both;
|
||||
|
@ -16,8 +16,8 @@
|
||||
{{include file="field_colorinput.tpl" field=$background_image}}
|
||||
{{include file="field_colorinput.tpl" field=$item_colour}}
|
||||
{{include file="field_colorinput.tpl" field=$comment_item_colour}}
|
||||
{{include file="field_colorinput.tpl" field=$comment_border_colour}}
|
||||
{{include file="field_input.tpl" field=$comment_indent}}
|
||||
{{*include file="field_colorinput.tpl" field=$comment_border_colour*}}
|
||||
{{*include file="field_input.tpl" field=$comment_indent*}}
|
||||
{{include file="field_input.tpl" field=$body_font_size}}
|
||||
{{include file="field_input.tpl" field=$font_size}}
|
||||
{{include file="field_colorinput.tpl" field=$font_colour}}
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
<form action="chat" method="post" >
|
||||
{{include file="field_input.tpl" field=$name}}
|
||||
{{include file="field_input.tpl" field=$chat_expire}}
|
||||
<button id="dbtn-acl" class="btn btn-default" data-toggle="modal" data-target="#aclModal" onclick="return false;" >{{$permissions}}</button>
|
||||
{{$acl}}
|
||||
<div class="clear"></div>
|
||||
|
@ -8,51 +8,67 @@
|
||||
<a name="{{$item.id}}" ></a>
|
||||
<div class="wall-item-outside-wrapper {{$item.indent}}{{$item.previewing}}" id="wall-item-outside-wrapper-{{$item.id}}" >
|
||||
<div class="wall-item-content-wrapper {{$item.indent}}" id="wall-item-content-wrapper-{{$item.id}}" style="clear:both;">
|
||||
<div class="wall-item-info" id="wall-item-info-{{$item.id}}" >
|
||||
<div class="wall-item-photo-wrapper{{if $item.owner_url}} wwfrom{{/if}}" id="wall-item-photo-wrapper-{{$item.id}}">
|
||||
<a href="{{$item.profile_url}}" title="{{$item.linktitle}}" class="wall-item-photo-link" id="wall-item-photo-link-{{$item.id}}"><img src="{{$item.thumb}}" class="wall-item-photo{{$item.sparkle}}" id="wall-item-photo-{{$item.id}}" alt="{{$item.name}}" /></a>
|
||||
<div class="wall-item-head">
|
||||
<div class="wall-item-info" id="wall-item-info-{{$item.id}}" >
|
||||
<div class="wall-item-photo-wrapper{{if $item.owner_url}} wwfrom{{/if}}" id="wall-item-photo-wrapper-{{$item.id}}">
|
||||
<a href="{{$item.profile_url}}" title="{{$item.linktitle}}" class="wall-item-photo-link" id="wall-item-photo-link-{{$item.id}}"><img src="{{$item.thumb}}" class="wall-item-photo{{$item.sparkle}}" id="wall-item-photo-{{$item.id}}" alt="{{$item.name}}" /></a>
|
||||
</div>
|
||||
<div class="wall-item-photo-end" style="clear:both"></div>
|
||||
</div>
|
||||
<div class="wall-item-photo-end" style="clear:both"></div>
|
||||
{{if $item.title}}
|
||||
<div class="wall-item-title" id="wall-item-title-{{$item.id}}">
|
||||
<h3>{{if $item.title_tosource}}{{if $item.plink}}<a href="{{$item.plink.href}}" title="{{$item.title}} ({{$item.plink.title}})">{{/if}}{{/if}}{{$item.title}}{{if $item.title_tosource}}{{if $item.plink}}</a>{{/if}}{{/if}}</h3>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{if $item.lock}}
|
||||
<div class="wall-item-lock dropdown">
|
||||
<i class="icon-lock lockview dropdown-toggle" data-toggle="dropdown" title="{{$item.lock}}" onclick="lockview('item',{{$item.id}});" ></i><ul id="panel-{{$item.id}}" class="lockview-panel dropdown-menu"></ul>
|
||||
</div>
|
||||
{{/if}}
|
||||
<div class="wall-item-author">
|
||||
<a href="{{$item.profile_url}}" title="{{$item.linktitle}}" class="wall-item-name-link"><span class="wall-item-name{{$item.sparkle}}" id="wall-item-name-{{$item.id}}" >{{$item.name}}</span></a>{{if $item.owner_url}} {{$item.via}} <a href="{{$item.owner_url}}" title="{{$item.olinktitle}}" class="wall-item-name-link"><span class="wall-item-name{{$item.osparkle}}" id="wall-item-ownername-{{$item.id}}">{{$item.owner_name}}</span></a>{{/if}}
|
||||
</div>
|
||||
<div class="wall-item-ago" id="wall-item-ago-{{$item.id}}">
|
||||
{{if $item.verified}}<i class="icon-ok item-verified" title="{{$item.verified}}"></i> {{elseif $item.forged}}<i class="icon-exclamation item-forged" title="{{$item.forged}}"></i> {{/if}}{{if $item.location}}<span class="wall-item-location" id="wall-item-location-{{$item.id}}">{{$item.location}}, </span>{{/if}}<span class="autotime" title="{{$item.isotime}}">{{$item.localtime}}{{if $item.editedtime}} {{$item.editedtime}}{{/if}}{{if $item.expiretime}} {{$item.expiretime}}{{/if}}</span>{{if $item.editedtime}} <i class="icon-pencil"></i>{{/if}} {{if $item.app}}<span class="item.app">{{$item.str_app}}</span>{{/if}}
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
{{if $item.title}}
|
||||
<div class="wall-item-title" id="wall-item-title-{{$item.id}}">
|
||||
<h3>{{if $item.title_tosource}}{{if $item.plink}}<a href="{{$item.plink.href}}" title="{{$item.title}} ({{$item.plink.title}})">{{/if}}{{/if}}{{$item.title}}{{if $item.title_tosource}}{{if $item.plink}}</a>{{/if}}{{/if}}</h3>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{if $item.lock}}
|
||||
<div class="wall-item-lock dropdown">
|
||||
<i class="icon-lock lockview dropdown-toggle" data-toggle="dropdown" title="{{$item.lock}}" onclick="lockview('item',{{$item.id}});" ></i><ul id="panel-{{$item.id}}" class="lockview-panel dropdown-menu"></ul>
|
||||
</div>
|
||||
{{/if}}
|
||||
<div class="wall-item-author">
|
||||
<a href="{{$item.profile_url}}" title="{{$item.linktitle}}" class="wall-item-name-link"><span class="wall-item-name{{$item.sparkle}}" id="wall-item-name-{{$item.id}}" >{{$item.name}}</span></a>{{if $item.owner_url}} {{$item.via}} <a href="{{$item.owner_url}}" title="{{$item.olinktitle}}" class="wall-item-name-link"><span class="wall-item-name{{$item.osparkle}}" id="wall-item-ownername-{{$item.id}}">{{$item.owner_name}}</span></a>{{/if}}
|
||||
</div>
|
||||
<div class="wall-item-ago" id="wall-item-ago-{{$item.id}}">
|
||||
{{if $item.verified}}<i class="icon-ok item-verified" title="{{$item.verified}}"></i> {{elseif $item.forged}}<i class="icon-exclamation item-forged" title="{{$item.forged}}"></i> {{/if}}{{if $item.location}}<span class="wall-item-location" id="wall-item-location-{{$item.id}}">{{$item.location}}, </span>{{/if}}<span class="autotime" title="{{$item.isotime}}">{{$item.localtime}}{{if $item.editedtime}} {{$item.editedtime}}{{/if}}{{if $item.expiretime}} {{$item.expiretime}}{{/if}}</span>{{if $item.editedtime}} <i class="icon-pencil"></i>{{/if}} {{if $item.app}}<span class="item.app">{{$item.str_app}}</span>{{/if}}
|
||||
</div>
|
||||
<div class="wall-item-content" id="wall-item-content-{{$item.id}}">
|
||||
<div class="wall-item-title-end"></div>
|
||||
<div class="{{if $item.is_photo}}wall-photo-item{{else}}wall-item-content{{/if}}" id="wall-item-content-{{$item.id}}">
|
||||
<div class="wall-item-body" id="wall-item-body-{{$item.id}}" >
|
||||
{{$item.body}}
|
||||
{{if $item.tags}}
|
||||
<div class="body-tag">
|
||||
{{foreach $item.tags as $tag}}
|
||||
<span class='tag'>{{$tag}}</span>
|
||||
{{/foreach}}
|
||||
</div>
|
||||
{{/if}}
|
||||
{{if $item.has_cats}}
|
||||
<div class="categorytags">
|
||||
<span>{{$item.txt_cats}} {{foreach $item.categories as $cat}}{{$cat.name}} <a href="{{$cat.removeurl}}" title="{{$remove}}">[{{$remove}}]</a> {{if $cat.last}}{{else}}, {{/if}}{{/foreach}}
|
||||
</div>
|
||||
{{/if}}
|
||||
{{if $item.has_folders}}
|
||||
<div class="filesavetags">
|
||||
<span>{{$item.txt_folders}} {{foreach $item.folders as $cat}}{{$cat.name}} <a href="{{$cat.removeurl}}" title="{{$remove}}">[{{$remove}}]</a> {{if $cat.last}}{{else}}, {{/if}}{{/foreach}}
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
{{if $item.has_tags}}
|
||||
<div class="wall-item-tools">
|
||||
{{if $item.mentions}}
|
||||
<div class="body-tags" id="item-mentions">
|
||||
<span class="tag">{{$item.mentions}}</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{if $item.tags}}
|
||||
<div class="body-tags" id="item-tags">
|
||||
<span class="tag">{{$item.tags}}</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{if $item.categories}}
|
||||
<div class="body-tags" id="item-categories">
|
||||
<span class="tag">{{$item.categories}}</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{if $item.folders}}
|
||||
<div class="body-tags" id="item-folders">
|
||||
<span class="tag">{{$item.folders}}</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{if $item.attachments}}
|
||||
<div class="body-tags" id="item-attachments">
|
||||
<span class='tag'>{{$item.attachments}}</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
{{/if}}
|
||||
<div class="wall-item-tools">
|
||||
<div class="wall-item-tools-right btn-group pull-right">
|
||||
{{if $item.like}}
|
||||
@ -167,6 +183,7 @@
|
||||
{{/foreach}}
|
||||
</div>
|
||||
{{/if}}
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
|
@ -8,51 +8,68 @@
|
||||
<a name="{{$item.id}}" ></a>
|
||||
<div class="wall-item-outside-wrapper {{$item.indent}}{{$item.previewing}}" id="wall-item-outside-wrapper-{{$item.id}}" >
|
||||
<div class="wall-item-content-wrapper {{$item.indent}}" id="wall-item-content-wrapper-{{$item.id}}" style="clear:both;">
|
||||
<div class="wall-item-info" id="wall-item-info-{{$item.id}}" >
|
||||
<div class="wall-item-photo-wrapper{{if $item.owner_url}} wwfrom{{/if}}" id="wall-item-photo-wrapper-{{$item.id}}">
|
||||
<a href="{{$item.profile_url}}" title="{{$item.linktitle}}" class="wall-item-photo-link" id="wall-item-photo-link-{{$item.id}}"><img src="{{$item.thumb}}" class="wall-item-photo{{$item.sparkle}}" id="wall-item-photo-{{$item.id}}" alt="{{$item.name}}" /></a>
|
||||
<div class="wall-item-head">
|
||||
<div class="wall-item-info" id="wall-item-info-{{$item.id}}" >
|
||||
<div class="wall-item-photo-wrapper{{if $item.owner_url}} wwfrom{{/if}}" id="wall-item-photo-wrapper-{{$item.id}}">
|
||||
<a href="{{$item.profile_url}}" title="{{$item.linktitle}}" class="wall-item-photo-link" id="wall-item-photo-link-{{$item.id}}"><img src="{{$item.thumb}}" class="wall-item-photo{{$item.sparkle}}" id="wall-item-photo-{{$item.id}}" alt="{{$item.name}}" /></a>
|
||||
</div>
|
||||
<div class="wall-item-photo-end" style="clear:both"></div>
|
||||
</div>
|
||||
<div class="wall-item-photo-end" style="clear:both"></div>
|
||||
{{if $item.title}}
|
||||
<div class="wall-item-title" id="wall-item-title-{{$item.id}}">
|
||||
<h3>{{if $item.title_tosource}}{{if $item.plink}}<a href="{{$item.plink.href}}" title="{{$item.title}} ({{$item.plink.title}})">{{/if}}{{/if}}{{$item.title}}{{if $item.title_tosource}}{{if $item.plink}}</a>{{/if}}{{/if}}</h3>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{if $item.lock}}
|
||||
<div class="wall-item-lock dropdown">
|
||||
<i class="icon-lock lockview dropdown-toggle" data-toggle="dropdown" title="{{$item.lock}}" onclick="lockview('item',{{$item.id}});" ></i><ul id="panel-{{$item.id}}" class="lockview-panel dropdown-menu"></ul>
|
||||
</div>
|
||||
{{/if}}
|
||||
<div class="wall-item-author">
|
||||
<a href="{{$item.profile_url}}" title="{{$item.linktitle}}" class="wall-item-name-link"><span class="wall-item-name{{$item.sparkle}}" id="wall-item-name-{{$item.id}}" >{{$item.name}}</span></a>{{if $item.owner_url}} {{$item.via}} <a href="{{$item.owner_url}}" title="{{$item.olinktitle}}" class="wall-item-name-link"><span class="wall-item-name{{$item.osparkle}}" id="wall-item-ownername-{{$item.id}}">{{$item.owner_name}}</span></a>{{/if}}
|
||||
</div>
|
||||
<div class="wall-item-ago" id="wall-item-ago-{{$item.id}}">
|
||||
{{if $item.verified}}<i class="icon-ok item-verified" title="{{$item.verified}}"></i> {{elseif $item.forged}}<i class="icon-exclamation item-forged" title="{{$item.forged}}"></i> {{/if}}{{if $item.location}}<span class="wall-item-location" id="wall-item-location-{{$item.id}}">{{$item.location}}, </span>{{/if}}<span class="autotime" title="{{$item.isotime}}">{{$item.localtime}}{{if $item.editedtime}} {{$item.editedtime}}{{/if}}{{if $item.expiretime}} {{$item.expiretime}}{{/if}}</span>{{if $item.editedtime}} <i class="icon-pencil"></i>{{/if}} {{if $item.app}}<span class="item.app">{{$item.str_app}}</span>{{/if}}
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
{{if $item.title}}
|
||||
<div class="wall-item-title" id="wall-item-title-{{$item.id}}">
|
||||
<h3>{{if $item.title_tosource}}{{if $item.plink}}<a href="{{$item.plink.href}}" title="{{$item.title}} ({{$item.plink.title}})">{{/if}}{{/if}}{{$item.title}}{{if $item.title_tosource}}{{if $item.plink}}</a>{{/if}}{{/if}}</h3>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{if $item.lock}}
|
||||
<div class="wall-item-lock dropdown">
|
||||
<i class="icon-lock lockview dropdown-toggle" data-toggle="dropdown" title="{{$item.lock}}" onclick="lockview('item',{{$item.id}});" ></i><ul id="panel-{{$item.id}}" class="lockview-panel dropdown-menu"></ul>
|
||||
</div>
|
||||
{{/if}}
|
||||
<div class="wall-item-author">
|
||||
<a href="{{$item.profile_url}}" title="{{$item.linktitle}}" class="wall-item-name-link"><span class="wall-item-name{{$item.sparkle}}" id="wall-item-name-{{$item.id}}" >{{$item.name}}</span></a>{{if $item.owner_url}} {{$item.via}} <a href="{{$item.owner_url}}" title="{{$item.olinktitle}}" class="wall-item-name-link"><span class="wall-item-name{{$item.osparkle}}" id="wall-item-ownername-{{$item.id}}">{{$item.owner_name}}</span></a>{{/if}}
|
||||
</div>
|
||||
<div class="wall-item-ago" id="wall-item-ago-{{$item.id}}">
|
||||
{{if $item.verified}}<i class="icon-ok item-verified" title="{{$item.verified}}"></i> {{elseif $item.forged}}<i class="icon-exclamation item-forged" title="{{$item.forged}}"></i> {{/if}}{{if $item.location}}<span class="wall-item-location" id="wall-item-location-{{$item.id}}">{{$item.location}}, </span>{{/if}}<span class="autotime" title="{{$item.isotime}}">{{$item.localtime}}{{if $item.editedtime}} {{$item.editedtime}}{{/if}}{{if $item.expiretime}} {{$item.expiretime}}{{/if}}</span>{{if $item.editedtime}} <i class="icon-pencil"></i>{{/if}} {{if $item.app}}<span class="item.app">{{$item.str_app}}</span>{{/if}}
|
||||
</div>
|
||||
<div class="wall-item-content conv-list-mode" id="wall-item-content-{{$item.id}}">
|
||||
<div class="wall-item-title-end"></div>
|
||||
<div class="wall-item-body wall-item-listbody" id="wall-item-body-{{$item.id}}" >
|
||||
<div class="{{if $item.is_photo}}wall-photo-item{{else}}wall-item-content{{/if}}" id="wall-item-content-{{$item.id}}">
|
||||
<div class="wall-item-body" id="wall-item-body-{{$item.id}}" >
|
||||
{{$item.body}}
|
||||
{{if $item.tags}}
|
||||
<div class="body-tag">
|
||||
{{foreach $item.tags as $tag}}
|
||||
<span class='tag'>{{$tag}}</span>
|
||||
{{/foreach}}
|
||||
</div>
|
||||
{{/if}}
|
||||
{{if $item.has_cats}}
|
||||
<div class="categorytags">
|
||||
<span>{{$item.txt_cats}} {{foreach $item.categories as $cat}}{{$cat.name}} <a href="{{$cat.removeurl}}" title="{{$remove}}">[{{$remove}}]</a> {{if $cat.last}}{{else}}, {{/if}}{{/foreach}}
|
||||
</div>
|
||||
{{/if}}
|
||||
{{if $item.has_folders}}
|
||||
<div class="filesavetags">
|
||||
<span>{{$item.txt_folders}} {{foreach $item.folders as $cat}}{{$cat.name}} <a href="{{$cat.removeurl}}" title="{{$remove}}">[{{$remove}}]</a> {{if $cat.last}}{{else}}, {{/if}}{{/foreach}}
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
{{if $item.has_tags}}
|
||||
<div class="wall-item-tools">
|
||||
{{if $item.mentions}}
|
||||
<div class="body-tags" id="item-mentions">
|
||||
<span class="tag">{{$item.mentions}}</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{if $item.tags}}
|
||||
<div class="body-tags" id="item-tags">
|
||||
<span class="tag">{{$item.tags}}</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{if $item.categories}}
|
||||
<div class="body-tags" id="item-categories">
|
||||
<span class="tag">{{$item.categories}}</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{if $item.folders}}
|
||||
<div class="body-tags" id="item-folders">
|
||||
<span class="tag">{{$item.folders}}</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{if $item.attachments}}
|
||||
<div class="body-tags" id="item-attachments">
|
||||
<span class='tag'>{{$item.attachments}}</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
<div class="wall-item-tools">
|
||||
<div class="wall-item-tools-right btn-group pull-right">
|
||||
{{if $item.like}}
|
||||
@ -176,6 +193,7 @@
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
|
@ -27,8 +27,8 @@
|
||||
previewWrap: 'previewWrap',
|
||||
minWidth: 300,
|
||||
minHeight: 300,
|
||||
maxWidth: 640,
|
||||
maxHeight: 640,
|
||||
maxWidth: 1024,
|
||||
maxHeight: 1024,
|
||||
ratioDim: { x: 100, y:100 },
|
||||
displayOnInit: true,
|
||||
onEndCrop: onEndCrop
|
||||
|
@ -1,8 +1,5 @@
|
||||
<div class="clear"></div>
|
||||
{{if $attaches}}
|
||||
<div class="body-attach">
|
||||
{{foreach $attaches as $a}}
|
||||
<a href="{{$a.url}}" title="{{$a.title}}" class="attachlink" ><i class="icon-paper-clip attach-icons attach-clip"></i><i class="{{$a.icon}} attach-icons"></i></a>
|
||||
{{/foreach}}
|
||||
</div>
|
||||
{{foreach $attaches as $a}}
|
||||
<a href="{{$a.url}}" title="{{$a.title}}" class="btn btn-xs btn-default"><i class="{{$a.icon}} attach-icons"></i> {{$a.label}}</a>
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user