forked from friendica/friendica-addons
Revert to stable version 3.5.4
This commit is contained in:
parent
38db18b624
commit
5360f08f42
1647
appnet/AppDotNet.php
Normal file
1647
appnet/AppDotNet.php
Normal file
File diff suppressed because it is too large
Load diff
23
appnet/DigiCertHighAssuranceEVRootCA.pem
Normal file
23
appnet/DigiCertHighAssuranceEVRootCA.pem
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBs
|
||||||
|
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
||||||
|
d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j
|
||||||
|
ZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAwMFoXDTMxMTExMDAwMDAwMFowbDEL
|
||||||
|
MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3
|
||||||
|
LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug
|
||||||
|
RVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm
|
||||||
|
+9S75S0tMqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTW
|
||||||
|
PNt0OKRKzE0lgvdKpVMSOO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEM
|
||||||
|
xChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFB
|
||||||
|
Ik5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQNAQTXKFx01p8VdteZOE3
|
||||||
|
hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUeh10aUAsg
|
||||||
|
EsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQF
|
||||||
|
MAMBAf8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaA
|
||||||
|
FLE+w2kD+L9HAdSYJhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3Nec
|
||||||
|
nzyIZgYIVyHbIUf4KmeqvxgydkAQV8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6z
|
||||||
|
eM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFpmyPInngiK3BD41VHMWEZ71jF
|
||||||
|
hS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkKmNEVX58Svnw2
|
||||||
|
Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
|
||||||
|
vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep
|
||||||
|
+OkuE6N36B9K
|
||||||
|
-----END CERTIFICATE-----
|
15
appnet/README.md
Normal file
15
appnet/README.md
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
App.net Plugin
|
||||||
|
==============
|
||||||
|
|
||||||
|
With this addon to friendica you can give your users the possibility to post their *public* messages to App.net and
|
||||||
|
to import their timeline. The messages will be strapped their rich context and shortened to 256 characters length if
|
||||||
|
necessary.
|
||||||
|
|
||||||
|
Installation
|
||||||
|
------------
|
||||||
|
|
||||||
|
If you have an developer account you can create an Application for all of your users at
|
||||||
|
[https://account.app.net/developer/apps/](https://account.app.net/developer/apps/). Add the redirect uri
|
||||||
|
"https://your.server.name/appnet/connect" (Replace "your.server.name" with the hostname of your server)
|
||||||
|
|
||||||
|
If you can't create an application (because you only have a free account) this addon still works, but your users have to create individual applications on their own.
|
29
appnet/appnet.css
Normal file
29
appnet/appnet.css
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
#appnet-import-label, #appnet-disconnect-label, #appnet-token-label,
|
||||||
|
#appnet-enable-label, #appnet-bydefault-label,
|
||||||
|
#appnet-clientid-label, #appnet-clientsecret-label {
|
||||||
|
float: left;
|
||||||
|
width: 200px;
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#appnet-import, #appnet-disconnect, #appnet-token,
|
||||||
|
#appnet-checkbox, #appnet-bydefault,
|
||||||
|
#appnet-clientid, #appnet-clientsecret {
|
||||||
|
float: left;
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#appnet-submit {
|
||||||
|
margin-top: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#appnet-avatar {
|
||||||
|
float: left;
|
||||||
|
width: 48px;
|
||||||
|
height: 48px;
|
||||||
|
padding: 2px;
|
||||||
|
}
|
||||||
|
#appnet-info-block {
|
||||||
|
height: 52px;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
1358
appnet/appnet.php
Normal file
1358
appnet/appnet.php
Normal file
File diff suppressed because it is too large
Load diff
116
appnet/lang/C/messages.po
Normal file
116
appnet/lang/C/messages.po
Normal file
|
@ -0,0 +1,116 @@
|
||||||
|
# ADDON appnet
|
||||||
|
# Copyright (C)
|
||||||
|
# This file is distributed under the same license as the Friendica appnet addon package.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#, fuzzy
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: \n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2014-06-22 11:47+0200\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"
|
||||||
|
"Language: \n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
|
#: appnet.php:39
|
||||||
|
msgid "Permission denied."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: appnet.php:73
|
||||||
|
msgid "You are now authenticated to app.net. "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: appnet.php:77
|
||||||
|
msgid "<p>Error fetching token. Please try again.</p>"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: appnet.php:80
|
||||||
|
msgid "return to the connector page"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: appnet.php:94
|
||||||
|
msgid "Post to app.net"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: appnet.php:125 appnet.php:129
|
||||||
|
msgid "App.net Export"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: appnet.php:142
|
||||||
|
msgid "Currently connected to: "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: appnet.php:144
|
||||||
|
msgid "Enable App.net Post Plugin"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: appnet.php:149
|
||||||
|
msgid "Post to App.net by default"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: appnet.php:153
|
||||||
|
msgid "Import the remote timeline"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: appnet.php:159
|
||||||
|
msgid ""
|
||||||
|
"<p>Error fetching user profile. Please clear the configuration and try again."
|
||||||
|
"</p>"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: appnet.php:164
|
||||||
|
msgid "<p>You have two ways to connect to App.net.</p>"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: appnet.php:166
|
||||||
|
msgid ""
|
||||||
|
"<p>First way: Register an application at <a href=\"https://account.app.net/"
|
||||||
|
"developer/apps/\">https://account.app.net/developer/apps/</a> and enter "
|
||||||
|
"Client ID and Client Secret. "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: appnet.php:167
|
||||||
|
#, php-format
|
||||||
|
msgid "Use '%s' as Redirect URI<p>"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: appnet.php:169
|
||||||
|
msgid "Client ID"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: appnet.php:173
|
||||||
|
msgid "Client Secret"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: appnet.php:177
|
||||||
|
msgid ""
|
||||||
|
"<p>Second way: fetch a token at <a href=\"http://dev-lite.jonathonduerig.com/"
|
||||||
|
"\">http://dev-lite.jonathonduerig.com/</a>. "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: appnet.php:178
|
||||||
|
msgid ""
|
||||||
|
"Set these scopes: 'Basic', 'Stream', 'Write Post', 'Public Messages', "
|
||||||
|
"'Messages'.</p>"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: appnet.php:180
|
||||||
|
msgid "Token"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: appnet.php:192
|
||||||
|
msgid "Sign in using App.net"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: appnet.php:197
|
||||||
|
msgid "Clear OAuth configuration"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: appnet.php:204
|
||||||
|
msgid "Save Settings"
|
||||||
|
msgstr ""
|
118
appnet/lang/cs/messages.po
Normal file
118
appnet/lang/cs/messages.po
Normal file
|
@ -0,0 +1,118 @@
|
||||||
|
# ADDON appnet
|
||||||
|
# Copyright (C)
|
||||||
|
# This file is distributed under the same license as the Friendica appnet addon package.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# Michal Šupler <msupler@gmail.com>, 2014
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: friendica\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2014-06-22 11:47+0200\n"
|
||||||
|
"PO-Revision-Date: 2014-07-02 15:24+0000\n"
|
||||||
|
"Last-Translator: Michal Šupler <msupler@gmail.com>\n"
|
||||||
|
"Language-Team: Czech (http://www.transifex.com/projects/p/friendica/language/cs/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Language: cs\n"
|
||||||
|
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
|
||||||
|
|
||||||
|
#: appnet.php:39
|
||||||
|
msgid "Permission denied."
|
||||||
|
msgstr "Přístup odmítnut."
|
||||||
|
|
||||||
|
#: appnet.php:73
|
||||||
|
msgid "You are now authenticated to app.net. "
|
||||||
|
msgstr "Nyní jste přihlášen k app.net."
|
||||||
|
|
||||||
|
#: appnet.php:77
|
||||||
|
msgid "<p>Error fetching token. Please try again.</p>"
|
||||||
|
msgstr "<p>Chyba v přenesení tokenu. Prosím zkuste to znovu.</p>"
|
||||||
|
|
||||||
|
#: appnet.php:80
|
||||||
|
msgid "return to the connector page"
|
||||||
|
msgstr "návrat ke stránce konektor"
|
||||||
|
|
||||||
|
#: appnet.php:94
|
||||||
|
msgid "Post to app.net"
|
||||||
|
msgstr "Poslat příspěvek na app.net"
|
||||||
|
|
||||||
|
#: appnet.php:125 appnet.php:129
|
||||||
|
msgid "App.net Export"
|
||||||
|
msgstr "App.net Export"
|
||||||
|
|
||||||
|
#: appnet.php:142
|
||||||
|
msgid "Currently connected to: "
|
||||||
|
msgstr "V současné době připojen k:"
|
||||||
|
|
||||||
|
#: appnet.php:144
|
||||||
|
msgid "Enable App.net Post Plugin"
|
||||||
|
msgstr "Aktivovat App.net Post Plugin"
|
||||||
|
|
||||||
|
#: appnet.php:149
|
||||||
|
msgid "Post to App.net by default"
|
||||||
|
msgstr "Defaultně poslat na App.net"
|
||||||
|
|
||||||
|
#: appnet.php:153
|
||||||
|
msgid "Import the remote timeline"
|
||||||
|
msgstr "Importovat vzdálenou časovou osu"
|
||||||
|
|
||||||
|
#: appnet.php:159
|
||||||
|
msgid ""
|
||||||
|
"<p>Error fetching user profile. Please clear the configuration and try "
|
||||||
|
"again.</p>"
|
||||||
|
msgstr "<p>Chyba v přenesení uživatelského profilu. Prosím zkuste smazat konfiguraci a zkusit to znovu.</p>"
|
||||||
|
|
||||||
|
#: appnet.php:164
|
||||||
|
msgid "<p>You have two ways to connect to App.net.</p>"
|
||||||
|
msgstr "<p>Máte nyní dvě možnosti jak se připojit k App.net.</p>"
|
||||||
|
|
||||||
|
#: appnet.php:166
|
||||||
|
msgid ""
|
||||||
|
"<p>First way: Register an application at <a "
|
||||||
|
"href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a>"
|
||||||
|
" and enter Client ID and Client Secret. "
|
||||||
|
msgstr "<p>První možnost: Registrovat svou žádost na <a href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a> a zadat Client ID and Client Secret. "
|
||||||
|
|
||||||
|
#: appnet.php:167
|
||||||
|
#, php-format
|
||||||
|
msgid "Use '%s' as Redirect URI<p>"
|
||||||
|
msgstr "Použít '%s' jako URI pro přesměrování<p>"
|
||||||
|
|
||||||
|
#: appnet.php:169
|
||||||
|
msgid "Client ID"
|
||||||
|
msgstr "Client ID"
|
||||||
|
|
||||||
|
#: appnet.php:173
|
||||||
|
msgid "Client Secret"
|
||||||
|
msgstr "Client Secret"
|
||||||
|
|
||||||
|
#: appnet.php:177
|
||||||
|
msgid ""
|
||||||
|
"<p>Second way: fetch a token at <a href=\"http://dev-"
|
||||||
|
"lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. "
|
||||||
|
msgstr "<p>Druhá možnost: vložit token do <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. "
|
||||||
|
|
||||||
|
#: appnet.php:178
|
||||||
|
msgid ""
|
||||||
|
"Set these scopes: 'Basic', 'Stream', 'Write Post', 'Public Messages', "
|
||||||
|
"'Messages'.</p>"
|
||||||
|
msgstr "Nastavte tyto rámce: 'Základní', 'Stream', 'Psaní příspěvků, 'Veřejné zprávy', 'Zprávy'.</p>"
|
||||||
|
|
||||||
|
#: appnet.php:180
|
||||||
|
msgid "Token"
|
||||||
|
msgstr "Token"
|
||||||
|
|
||||||
|
#: appnet.php:192
|
||||||
|
msgid "Sign in using App.net"
|
||||||
|
msgstr "Přihlásit se s použitím App.net"
|
||||||
|
|
||||||
|
#: appnet.php:197
|
||||||
|
msgid "Clear OAuth configuration"
|
||||||
|
msgstr "Vymazat konfiguraci OAuth"
|
||||||
|
|
||||||
|
#: appnet.php:204
|
||||||
|
msgid "Save Settings"
|
||||||
|
msgstr "Uložit Nastavení"
|
29
appnet/lang/cs/strings.php
Normal file
29
appnet/lang/cs/strings.php
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
if(! function_exists("string_plural_select_cs")) {
|
||||||
|
function string_plural_select_cs($n){
|
||||||
|
return ($n==1) ? 0 : ($n>=2 && $n<=4) ? 1 : 2;;
|
||||||
|
}}
|
||||||
|
;
|
||||||
|
$a->strings["Permission denied."] = "Přístup odmítnut.";
|
||||||
|
$a->strings["You are now authenticated to app.net. "] = "Nyní jste přihlášen k app.net.";
|
||||||
|
$a->strings["<p>Error fetching token. Please try again.</p>"] = "<p>Chyba v přenesení tokenu. Prosím zkuste to znovu.</p>";
|
||||||
|
$a->strings["return to the connector page"] = "návrat ke stránce konektor";
|
||||||
|
$a->strings["Post to app.net"] = "Poslat příspěvek na app.net";
|
||||||
|
$a->strings["App.net Export"] = "App.net Export";
|
||||||
|
$a->strings["Currently connected to: "] = "V současné době připojen k:";
|
||||||
|
$a->strings["Enable App.net Post Plugin"] = "Aktivovat App.net Post Plugin";
|
||||||
|
$a->strings["Post to App.net by default"] = "Defaultně poslat na App.net";
|
||||||
|
$a->strings["Import the remote timeline"] = "Importovat vzdálenou časovou osu";
|
||||||
|
$a->strings["<p>Error fetching user profile. Please clear the configuration and try again.</p>"] = "<p>Chyba v přenesení uživatelského profilu. Prosím zkuste smazat konfiguraci a zkusit to znovu.</p>";
|
||||||
|
$a->strings["<p>You have two ways to connect to App.net.</p>"] = "<p>Máte nyní dvě možnosti jak se připojit k App.net.</p>";
|
||||||
|
$a->strings["<p>First way: Register an application at <a href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a> and enter Client ID and Client Secret. "] = "<p>První možnost: Registrovat svou žádost na <a href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a> a zadat Client ID and Client Secret. ";
|
||||||
|
$a->strings["Use '%s' as Redirect URI<p>"] = "Použít '%s' jako URI pro přesměrování<p>";
|
||||||
|
$a->strings["Client ID"] = "Client ID";
|
||||||
|
$a->strings["Client Secret"] = "Client Secret";
|
||||||
|
$a->strings["<p>Second way: fetch a token at <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. "] = "<p>Druhá možnost: vložit token do <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. ";
|
||||||
|
$a->strings["Set these scopes: 'Basic', 'Stream', 'Write Post', 'Public Messages', 'Messages'.</p>"] = "Nastavte tyto rámce: 'Základní', 'Stream', 'Psaní příspěvků, 'Veřejné zprávy', 'Zprávy'.</p>";
|
||||||
|
$a->strings["Token"] = "Token";
|
||||||
|
$a->strings["Sign in using App.net"] = "Přihlásit se s použitím App.net";
|
||||||
|
$a->strings["Clear OAuth configuration"] = "Vymazat konfiguraci OAuth";
|
||||||
|
$a->strings["Save Settings"] = "Uložit Nastavení";
|
118
appnet/lang/de/messages.po
Normal file
118
appnet/lang/de/messages.po
Normal file
|
@ -0,0 +1,118 @@
|
||||||
|
# ADDON appnet
|
||||||
|
# Copyright (C)
|
||||||
|
# This file is distributed under the same license as the Friendica appnet addon package.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# bavatar <tobias.diekershoff@gmx.net>, 2014
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: friendica\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2014-06-22 11:47+0200\n"
|
||||||
|
"PO-Revision-Date: 2014-06-25 04:31+0000\n"
|
||||||
|
"Last-Translator: bavatar <tobias.diekershoff@gmx.net>\n"
|
||||||
|
"Language-Team: German (http://www.transifex.com/projects/p/friendica/language/de/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Language: de\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#: appnet.php:39
|
||||||
|
msgid "Permission denied."
|
||||||
|
msgstr "Zugriff verweigert."
|
||||||
|
|
||||||
|
#: appnet.php:73
|
||||||
|
msgid "You are now authenticated to app.net. "
|
||||||
|
msgstr "Du bist nun auf app.net authentifiziert."
|
||||||
|
|
||||||
|
#: appnet.php:77
|
||||||
|
msgid "<p>Error fetching token. Please try again.</p>"
|
||||||
|
msgstr "<p>Fehler beim Holen des Tokens, bitte versuche es später noch einmal.</p>"
|
||||||
|
|
||||||
|
#: appnet.php:80
|
||||||
|
msgid "return to the connector page"
|
||||||
|
msgstr "zurück zur Connector Seite"
|
||||||
|
|
||||||
|
#: appnet.php:94
|
||||||
|
msgid "Post to app.net"
|
||||||
|
msgstr "Nach app.net senden"
|
||||||
|
|
||||||
|
#: appnet.php:125 appnet.php:129
|
||||||
|
msgid "App.net Export"
|
||||||
|
msgstr "App.net Export"
|
||||||
|
|
||||||
|
#: appnet.php:142
|
||||||
|
msgid "Currently connected to: "
|
||||||
|
msgstr "Momentan verbunden mit: "
|
||||||
|
|
||||||
|
#: appnet.php:144
|
||||||
|
msgid "Enable App.net Post Plugin"
|
||||||
|
msgstr "Veröffentlichungen bei App.net erlauben"
|
||||||
|
|
||||||
|
#: appnet.php:149
|
||||||
|
msgid "Post to App.net by default"
|
||||||
|
msgstr "Standardmäßig bei App.net veröffentlichen"
|
||||||
|
|
||||||
|
#: appnet.php:153
|
||||||
|
msgid "Import the remote timeline"
|
||||||
|
msgstr "Importiere die entfernte Zeitleiste"
|
||||||
|
|
||||||
|
#: appnet.php:159
|
||||||
|
msgid ""
|
||||||
|
"<p>Error fetching user profile. Please clear the configuration and try "
|
||||||
|
"again.</p>"
|
||||||
|
msgstr "<p>Beim Laden des Nutzerprofils ist ein Fehler aufgetreten. Bitte versuche es später noch einmal.</p>"
|
||||||
|
|
||||||
|
#: appnet.php:164
|
||||||
|
msgid "<p>You have two ways to connect to App.net.</p>"
|
||||||
|
msgstr "<p>Du hast zwei Wege deinen friendica Account mit App.net zu verbinden.</p>"
|
||||||
|
|
||||||
|
#: appnet.php:166
|
||||||
|
msgid ""
|
||||||
|
"<p>First way: Register an application at <a "
|
||||||
|
"href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a>"
|
||||||
|
" and enter Client ID and Client Secret. "
|
||||||
|
msgstr "<p>Erster Weg: Registriere eine Anwendung unter <a href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a> und wähle eine Client ID und ein Client Secret."
|
||||||
|
|
||||||
|
#: appnet.php:167
|
||||||
|
#, php-format
|
||||||
|
msgid "Use '%s' as Redirect URI<p>"
|
||||||
|
msgstr "Verwende '%s' als Redirect URI<p>"
|
||||||
|
|
||||||
|
#: appnet.php:169
|
||||||
|
msgid "Client ID"
|
||||||
|
msgstr "Client ID"
|
||||||
|
|
||||||
|
#: appnet.php:173
|
||||||
|
msgid "Client Secret"
|
||||||
|
msgstr "Client Secret"
|
||||||
|
|
||||||
|
#: appnet.php:177
|
||||||
|
msgid ""
|
||||||
|
"<p>Second way: fetch a token at <a href=\"http://dev-"
|
||||||
|
"lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. "
|
||||||
|
msgstr "<p>Zweiter Weg: Beantrage ein Token unter <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. "
|
||||||
|
|
||||||
|
#: appnet.php:178
|
||||||
|
msgid ""
|
||||||
|
"Set these scopes: 'Basic', 'Stream', 'Write Post', 'Public Messages', "
|
||||||
|
"'Messages'.</p>"
|
||||||
|
msgstr "Verwende folgende Scopes: 'Basic', 'Stream', 'Write Post', 'Public Messages', 'Messages'.</p>"
|
||||||
|
|
||||||
|
#: appnet.php:180
|
||||||
|
msgid "Token"
|
||||||
|
msgstr "Token"
|
||||||
|
|
||||||
|
#: appnet.php:192
|
||||||
|
msgid "Sign in using App.net"
|
||||||
|
msgstr "Per App.net anmelden"
|
||||||
|
|
||||||
|
#: appnet.php:197
|
||||||
|
msgid "Clear OAuth configuration"
|
||||||
|
msgstr "OAuth Konfiguration löschen"
|
||||||
|
|
||||||
|
#: appnet.php:204
|
||||||
|
msgid "Save Settings"
|
||||||
|
msgstr "Einstellungen speichern"
|
29
appnet/lang/de/strings.php
Normal file
29
appnet/lang/de/strings.php
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
if(! function_exists("string_plural_select_de")) {
|
||||||
|
function string_plural_select_de($n){
|
||||||
|
return ($n != 1);;
|
||||||
|
}}
|
||||||
|
;
|
||||||
|
$a->strings["Permission denied."] = "Zugriff verweigert.";
|
||||||
|
$a->strings["You are now authenticated to app.net. "] = "Du bist nun auf app.net authentifiziert.";
|
||||||
|
$a->strings["<p>Error fetching token. Please try again.</p>"] = "<p>Fehler beim Holen des Tokens, bitte versuche es später noch einmal.</p>";
|
||||||
|
$a->strings["return to the connector page"] = "zurück zur Connector Seite";
|
||||||
|
$a->strings["Post to app.net"] = "Nach app.net senden";
|
||||||
|
$a->strings["App.net Export"] = "App.net Export";
|
||||||
|
$a->strings["Currently connected to: "] = "Momentan verbunden mit: ";
|
||||||
|
$a->strings["Enable App.net Post Plugin"] = "Veröffentlichungen bei App.net erlauben";
|
||||||
|
$a->strings["Post to App.net by default"] = "Standardmäßig bei App.net veröffentlichen";
|
||||||
|
$a->strings["Import the remote timeline"] = "Importiere die entfernte Zeitleiste";
|
||||||
|
$a->strings["<p>Error fetching user profile. Please clear the configuration and try again.</p>"] = "<p>Beim Laden des Nutzerprofils ist ein Fehler aufgetreten. Bitte versuche es später noch einmal.</p>";
|
||||||
|
$a->strings["<p>You have two ways to connect to App.net.</p>"] = "<p>Du hast zwei Wege deinen friendica Account mit App.net zu verbinden.</p>";
|
||||||
|
$a->strings["<p>First way: Register an application at <a href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a> and enter Client ID and Client Secret. "] = "<p>Erster Weg: Registriere eine Anwendung unter <a href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a> und wähle eine Client ID und ein Client Secret.";
|
||||||
|
$a->strings["Use '%s' as Redirect URI<p>"] = "Verwende '%s' als Redirect URI<p>";
|
||||||
|
$a->strings["Client ID"] = "Client ID";
|
||||||
|
$a->strings["Client Secret"] = "Client Secret";
|
||||||
|
$a->strings["<p>Second way: fetch a token at <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. "] = "<p>Zweiter Weg: Beantrage ein Token unter <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. ";
|
||||||
|
$a->strings["Set these scopes: 'Basic', 'Stream', 'Write Post', 'Public Messages', 'Messages'.</p>"] = "Verwende folgende Scopes: 'Basic', 'Stream', 'Write Post', 'Public Messages', 'Messages'.</p>";
|
||||||
|
$a->strings["Token"] = "Token";
|
||||||
|
$a->strings["Sign in using App.net"] = "Per App.net anmelden";
|
||||||
|
$a->strings["Clear OAuth configuration"] = "OAuth Konfiguration löschen";
|
||||||
|
$a->strings["Save Settings"] = "Einstellungen speichern";
|
118
appnet/lang/es/messages.po
Normal file
118
appnet/lang/es/messages.po
Normal file
|
@ -0,0 +1,118 @@
|
||||||
|
# ADDON appnet
|
||||||
|
# Copyright (C)
|
||||||
|
# This file is distributed under the same license as the Friendica appnet addon package.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# Alberto Díaz Tormo <albertodiaztormo@gmail.com>, 2016
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: friendica\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2014-06-22 11:47+0200\n"
|
||||||
|
"PO-Revision-Date: 2016-10-13 21:25+0000\n"
|
||||||
|
"Last-Translator: Alberto Díaz Tormo <albertodiaztormo@gmail.com>\n"
|
||||||
|
"Language-Team: Spanish (http://www.transifex.com/Friendica/friendica/language/es/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Language: es\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#: appnet.php:39
|
||||||
|
msgid "Permission denied."
|
||||||
|
msgstr "Permiso denegado"
|
||||||
|
|
||||||
|
#: appnet.php:73
|
||||||
|
msgid "You are now authenticated to app.net. "
|
||||||
|
msgstr "Ahora está autenticado en app.net."
|
||||||
|
|
||||||
|
#: appnet.php:77
|
||||||
|
msgid "<p>Error fetching token. Please try again.</p>"
|
||||||
|
msgstr "<p>Advertencia de error. Por favor inténtelo de nuevo.</p>"
|
||||||
|
|
||||||
|
#: appnet.php:80
|
||||||
|
msgid "return to the connector page"
|
||||||
|
msgstr "vuelva a pa página de conexón"
|
||||||
|
|
||||||
|
#: appnet.php:94
|
||||||
|
msgid "Post to app.net"
|
||||||
|
msgstr "Publique en app.net"
|
||||||
|
|
||||||
|
#: appnet.php:125 appnet.php:129
|
||||||
|
msgid "App.net Export"
|
||||||
|
msgstr "Exportar a app.net"
|
||||||
|
|
||||||
|
#: appnet.php:142
|
||||||
|
msgid "Currently connected to: "
|
||||||
|
msgstr "Actualmente conectado a:"
|
||||||
|
|
||||||
|
#: appnet.php:144
|
||||||
|
msgid "Enable App.net Post Plugin"
|
||||||
|
msgstr "Habilitar el plugin de publicación de App.net"
|
||||||
|
|
||||||
|
#: appnet.php:149
|
||||||
|
msgid "Post to App.net by default"
|
||||||
|
msgstr "Publicar en App.net por defecto"
|
||||||
|
|
||||||
|
#: appnet.php:153
|
||||||
|
msgid "Import the remote timeline"
|
||||||
|
msgstr "Importar la línea de tiempo remota"
|
||||||
|
|
||||||
|
#: appnet.php:159
|
||||||
|
msgid ""
|
||||||
|
"<p>Error fetching user profile. Please clear the configuration and try "
|
||||||
|
"again.</p>"
|
||||||
|
msgstr "<p>Advertencia de error de perfil. Por favor borre la configuración e inténtelo de nuevo.</p>"
|
||||||
|
|
||||||
|
#: appnet.php:164
|
||||||
|
msgid "<p>You have two ways to connect to App.net.</p>"
|
||||||
|
msgstr "<p>Tiene dos formas de conectar a App.net.</p>"
|
||||||
|
|
||||||
|
#: appnet.php:166
|
||||||
|
msgid ""
|
||||||
|
"<p>First way: Register an application at <a "
|
||||||
|
"href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a>"
|
||||||
|
" and enter Client ID and Client Secret. "
|
||||||
|
msgstr "<p>Primera forma: Registrar una aplicación en <a href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a> y seleccionar Client ID y Client Secret. "
|
||||||
|
|
||||||
|
#: appnet.php:167
|
||||||
|
#, php-format
|
||||||
|
msgid "Use '%s' as Redirect URI<p>"
|
||||||
|
msgstr "Use '%s' como Redirigir URI"
|
||||||
|
|
||||||
|
#: appnet.php:169
|
||||||
|
msgid "Client ID"
|
||||||
|
msgstr "ID de cliente"
|
||||||
|
|
||||||
|
#: appnet.php:173
|
||||||
|
msgid "Client Secret"
|
||||||
|
msgstr "Secreto de cliente"
|
||||||
|
|
||||||
|
#: appnet.php:177
|
||||||
|
msgid ""
|
||||||
|
"<p>Second way: fetch a token at <a href=\"http://dev-"
|
||||||
|
"lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. "
|
||||||
|
msgstr "<p>Segunda manera: traiga un símbolo a <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>"
|
||||||
|
|
||||||
|
#: appnet.php:178
|
||||||
|
msgid ""
|
||||||
|
"Set these scopes: 'Basic', 'Stream', 'Write Post', 'Public Messages', "
|
||||||
|
"'Messages'.</p>"
|
||||||
|
msgstr "Seleccione estas posibilidades: 'Básico', 'Continuo', 'Escribir entrada', 'Mensajes públicos', 'Mensajes'.</p>"
|
||||||
|
|
||||||
|
#: appnet.php:180
|
||||||
|
msgid "Token"
|
||||||
|
msgstr "Símbolo"
|
||||||
|
|
||||||
|
#: appnet.php:192
|
||||||
|
msgid "Sign in using App.net"
|
||||||
|
msgstr "Regístrese usando App.net"
|
||||||
|
|
||||||
|
#: appnet.php:197
|
||||||
|
msgid "Clear OAuth configuration"
|
||||||
|
msgstr "Borre la configuración OAuth"
|
||||||
|
|
||||||
|
#: appnet.php:204
|
||||||
|
msgid "Save Settings"
|
||||||
|
msgstr "Guardar los ajustes"
|
29
appnet/lang/es/strings.php
Normal file
29
appnet/lang/es/strings.php
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
if(! function_exists("string_plural_select_es")) {
|
||||||
|
function string_plural_select_es($n){
|
||||||
|
return ($n != 1);;
|
||||||
|
}}
|
||||||
|
;
|
||||||
|
$a->strings["Permission denied."] = "Permiso denegado";
|
||||||
|
$a->strings["You are now authenticated to app.net. "] = "Ahora está autenticado en app.net.";
|
||||||
|
$a->strings["<p>Error fetching token. Please try again.</p>"] = "<p>Advertencia de error. Por favor inténtelo de nuevo.</p>";
|
||||||
|
$a->strings["return to the connector page"] = "vuelva a pa página de conexón";
|
||||||
|
$a->strings["Post to app.net"] = "Publique en app.net";
|
||||||
|
$a->strings["App.net Export"] = "Exportar a app.net";
|
||||||
|
$a->strings["Currently connected to: "] = "Actualmente conectado a:";
|
||||||
|
$a->strings["Enable App.net Post Plugin"] = "Habilitar el plugin de publicación de App.net";
|
||||||
|
$a->strings["Post to App.net by default"] = "Publicar en App.net por defecto";
|
||||||
|
$a->strings["Import the remote timeline"] = "Importar la línea de tiempo remota";
|
||||||
|
$a->strings["<p>Error fetching user profile. Please clear the configuration and try again.</p>"] = "<p>Advertencia de error de perfil. Por favor borre la configuración e inténtelo de nuevo.</p>";
|
||||||
|
$a->strings["<p>You have two ways to connect to App.net.</p>"] = "<p>Tiene dos formas de conectar a App.net.</p>";
|
||||||
|
$a->strings["<p>First way: Register an application at <a href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a> and enter Client ID and Client Secret. "] = "<p>Primera forma: Registrar una aplicación en <a href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a> y seleccionar Client ID y Client Secret. ";
|
||||||
|
$a->strings["Use '%s' as Redirect URI<p>"] = "Use '%s' como Redirigir URI";
|
||||||
|
$a->strings["Client ID"] = "ID de cliente";
|
||||||
|
$a->strings["Client Secret"] = "Secreto de cliente";
|
||||||
|
$a->strings["<p>Second way: fetch a token at <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. "] = "<p>Segunda manera: traiga un símbolo a <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>";
|
||||||
|
$a->strings["Set these scopes: 'Basic', 'Stream', 'Write Post', 'Public Messages', 'Messages'.</p>"] = "Seleccione estas posibilidades: 'Básico', 'Continuo', 'Escribir entrada', 'Mensajes públicos', 'Mensajes'.</p>";
|
||||||
|
$a->strings["Token"] = "Símbolo";
|
||||||
|
$a->strings["Sign in using App.net"] = "Regístrese usando App.net";
|
||||||
|
$a->strings["Clear OAuth configuration"] = "Borre la configuración OAuth";
|
||||||
|
$a->strings["Save Settings"] = "Guardar los ajustes";
|
119
appnet/lang/fr/messages.po
Normal file
119
appnet/lang/fr/messages.po
Normal file
|
@ -0,0 +1,119 @@
|
||||||
|
# ADDON appnet
|
||||||
|
# Copyright (C)
|
||||||
|
# This file is distributed under the same license as the Friendica appnet addon package.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# Hypolite Petovan <mrpetovan@gmail.com>, 2016
|
||||||
|
# Jak <jacques@riseup.net>, 2014
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: friendica\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2014-06-22 11:47+0200\n"
|
||||||
|
"PO-Revision-Date: 2016-09-24 02:12+0000\n"
|
||||||
|
"Last-Translator: Hypolite Petovan <mrpetovan@gmail.com>\n"
|
||||||
|
"Language-Team: French (http://www.transifex.com/Friendica/friendica/language/fr/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Language: fr\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||||
|
|
||||||
|
#: appnet.php:39
|
||||||
|
msgid "Permission denied."
|
||||||
|
msgstr "Autorisation refusée"
|
||||||
|
|
||||||
|
#: appnet.php:73
|
||||||
|
msgid "You are now authenticated to app.net. "
|
||||||
|
msgstr "Vous êtes maintenant authentifié sur app.net"
|
||||||
|
|
||||||
|
#: appnet.php:77
|
||||||
|
msgid "<p>Error fetching token. Please try again.</p>"
|
||||||
|
msgstr "<p>Impossible d'obtenir le jeton, merci de réessayer.</p>"
|
||||||
|
|
||||||
|
#: appnet.php:80
|
||||||
|
msgid "return to the connector page"
|
||||||
|
msgstr "revenir à la page du connecteur"
|
||||||
|
|
||||||
|
#: appnet.php:94
|
||||||
|
msgid "Post to app.net"
|
||||||
|
msgstr "Publier sur app.net"
|
||||||
|
|
||||||
|
#: appnet.php:125 appnet.php:129
|
||||||
|
msgid "App.net Export"
|
||||||
|
msgstr "Export App.net"
|
||||||
|
|
||||||
|
#: appnet.php:142
|
||||||
|
msgid "Currently connected to: "
|
||||||
|
msgstr "Actuellement connecté à :"
|
||||||
|
|
||||||
|
#: appnet.php:144
|
||||||
|
msgid "Enable App.net Post Plugin"
|
||||||
|
msgstr "Activer le plugin de publication app.net"
|
||||||
|
|
||||||
|
#: appnet.php:149
|
||||||
|
msgid "Post to App.net by default"
|
||||||
|
msgstr "Publier sur App.net par défaut"
|
||||||
|
|
||||||
|
#: appnet.php:153
|
||||||
|
msgid "Import the remote timeline"
|
||||||
|
msgstr "Importer la timeline distante"
|
||||||
|
|
||||||
|
#: appnet.php:159
|
||||||
|
msgid ""
|
||||||
|
"<p>Error fetching user profile. Please clear the configuration and try "
|
||||||
|
"again.</p>"
|
||||||
|
msgstr "<p>Impossible d'obtenir le profil utilisateur. Merci de réinitialiser la configuration et de réessayer.</p>"
|
||||||
|
|
||||||
|
#: appnet.php:164
|
||||||
|
msgid "<p>You have two ways to connect to App.net.</p>"
|
||||||
|
msgstr "<p>Vous avez deux possibilités pour vous connecter à App.net.</p>"
|
||||||
|
|
||||||
|
#: appnet.php:166
|
||||||
|
msgid ""
|
||||||
|
"<p>First way: Register an application at <a "
|
||||||
|
"href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a>"
|
||||||
|
" and enter Client ID and Client Secret. "
|
||||||
|
msgstr "<p>Première méthode: Enregistrer une application sur <a href=\"https://account.app.net/developer/apps/\">App.net [en]</a> et entrez l'ID Client et le Secret Client. "
|
||||||
|
|
||||||
|
#: appnet.php:167
|
||||||
|
#, php-format
|
||||||
|
msgid "Use '%s' as Redirect URI<p>"
|
||||||
|
msgstr "Utilisez '%s' pour l'URI de Redirection"
|
||||||
|
|
||||||
|
#: appnet.php:169
|
||||||
|
msgid "Client ID"
|
||||||
|
msgstr "ID Client"
|
||||||
|
|
||||||
|
#: appnet.php:173
|
||||||
|
msgid "Client Secret"
|
||||||
|
msgstr "Secret Client"
|
||||||
|
|
||||||
|
#: appnet.php:177
|
||||||
|
msgid ""
|
||||||
|
"<p>Second way: fetch a token at <a href=\"http://dev-"
|
||||||
|
"lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. "
|
||||||
|
msgstr "<p>Deuxième méthode: obtenez un jeton ur <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/ [en]</a>. "
|
||||||
|
|
||||||
|
#: appnet.php:178
|
||||||
|
msgid ""
|
||||||
|
"Set these scopes: 'Basic', 'Stream', 'Write Post', 'Public Messages', "
|
||||||
|
"'Messages'.</p>"
|
||||||
|
msgstr "Cochez les \"scopes\" suivant: \"Basic\", \"Stream\", \"Write Post\", \"Public Messages\", \"Messages\".</p>"
|
||||||
|
|
||||||
|
#: appnet.php:180
|
||||||
|
msgid "Token"
|
||||||
|
msgstr "Jeton"
|
||||||
|
|
||||||
|
#: appnet.php:192
|
||||||
|
msgid "Sign in using App.net"
|
||||||
|
msgstr "Se connecter avec App.net"
|
||||||
|
|
||||||
|
#: appnet.php:197
|
||||||
|
msgid "Clear OAuth configuration"
|
||||||
|
msgstr "Effacer la configuration OAuth"
|
||||||
|
|
||||||
|
#: appnet.php:204
|
||||||
|
msgid "Save Settings"
|
||||||
|
msgstr "Sauvegarder les paramètres"
|
29
appnet/lang/fr/strings.php
Normal file
29
appnet/lang/fr/strings.php
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
if(! function_exists("string_plural_select_fr")) {
|
||||||
|
function string_plural_select_fr($n){
|
||||||
|
return ($n > 1);;
|
||||||
|
}}
|
||||||
|
;
|
||||||
|
$a->strings["Permission denied."] = "Autorisation refusée";
|
||||||
|
$a->strings["You are now authenticated to app.net. "] = "Vous êtes maintenant authentifié sur app.net";
|
||||||
|
$a->strings["<p>Error fetching token. Please try again.</p>"] = "<p>Impossible d'obtenir le jeton, merci de réessayer.</p>";
|
||||||
|
$a->strings["return to the connector page"] = "revenir à la page du connecteur";
|
||||||
|
$a->strings["Post to app.net"] = "Publier sur app.net";
|
||||||
|
$a->strings["App.net Export"] = "Export App.net";
|
||||||
|
$a->strings["Currently connected to: "] = "Actuellement connecté à :";
|
||||||
|
$a->strings["Enable App.net Post Plugin"] = "Activer le plugin de publication app.net";
|
||||||
|
$a->strings["Post to App.net by default"] = "Publier sur App.net par défaut";
|
||||||
|
$a->strings["Import the remote timeline"] = "Importer la timeline distante";
|
||||||
|
$a->strings["<p>Error fetching user profile. Please clear the configuration and try again.</p>"] = "<p>Impossible d'obtenir le profil utilisateur. Merci de réinitialiser la configuration et de réessayer.</p>";
|
||||||
|
$a->strings["<p>You have two ways to connect to App.net.</p>"] = "<p>Vous avez deux possibilités pour vous connecter à App.net.</p>";
|
||||||
|
$a->strings["<p>First way: Register an application at <a href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a> and enter Client ID and Client Secret. "] = "<p>Première méthode: Enregistrer une application sur <a href=\"https://account.app.net/developer/apps/\">App.net [en]</a> et entrez l'ID Client et le Secret Client. ";
|
||||||
|
$a->strings["Use '%s' as Redirect URI<p>"] = "Utilisez '%s' pour l'URI de Redirection";
|
||||||
|
$a->strings["Client ID"] = "ID Client";
|
||||||
|
$a->strings["Client Secret"] = "Secret Client";
|
||||||
|
$a->strings["<p>Second way: fetch a token at <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. "] = "<p>Deuxième méthode: obtenez un jeton ur <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/ [en]</a>. ";
|
||||||
|
$a->strings["Set these scopes: 'Basic', 'Stream', 'Write Post', 'Public Messages', 'Messages'.</p>"] = "Cochez les \"scopes\" suivant: \"Basic\", \"Stream\", \"Write Post\", \"Public Messages\", \"Messages\".</p>";
|
||||||
|
$a->strings["Token"] = "Jeton";
|
||||||
|
$a->strings["Sign in using App.net"] = "Se connecter avec App.net";
|
||||||
|
$a->strings["Clear OAuth configuration"] = "Effacer la configuration OAuth";
|
||||||
|
$a->strings["Save Settings"] = "Sauvegarder les paramètres";
|
118
appnet/lang/it/messages.po
Normal file
118
appnet/lang/it/messages.po
Normal file
|
@ -0,0 +1,118 @@
|
||||||
|
# ADDON appnet
|
||||||
|
# Copyright (C)
|
||||||
|
# This file is distributed under the same license as the Friendica appnet addon package.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# fabrixxm <fabrix.xm@gmail.com>, 2014
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: friendica\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2014-06-22 11:47+0200\n"
|
||||||
|
"PO-Revision-Date: 2014-09-10 10:18+0000\n"
|
||||||
|
"Last-Translator: fabrixxm <fabrix.xm@gmail.com>\n"
|
||||||
|
"Language-Team: Italian (http://www.transifex.com/Friendica/friendica/language/it/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Language: it\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#: appnet.php:39
|
||||||
|
msgid "Permission denied."
|
||||||
|
msgstr "Permesso negato."
|
||||||
|
|
||||||
|
#: appnet.php:73
|
||||||
|
msgid "You are now authenticated to app.net. "
|
||||||
|
msgstr "Sei autenticato su app.net"
|
||||||
|
|
||||||
|
#: appnet.php:77
|
||||||
|
msgid "<p>Error fetching token. Please try again.</p>"
|
||||||
|
msgstr "<p>Errore recuperando il token. Prova di nuovo</p>"
|
||||||
|
|
||||||
|
#: appnet.php:80
|
||||||
|
msgid "return to the connector page"
|
||||||
|
msgstr "ritorna alla pagina del connettore"
|
||||||
|
|
||||||
|
#: appnet.php:94
|
||||||
|
msgid "Post to app.net"
|
||||||
|
msgstr "Invia ad app.net"
|
||||||
|
|
||||||
|
#: appnet.php:125 appnet.php:129
|
||||||
|
msgid "App.net Export"
|
||||||
|
msgstr "Esporta App.net"
|
||||||
|
|
||||||
|
#: appnet.php:142
|
||||||
|
msgid "Currently connected to: "
|
||||||
|
msgstr "Al momento connesso con:"
|
||||||
|
|
||||||
|
#: appnet.php:144
|
||||||
|
msgid "Enable App.net Post Plugin"
|
||||||
|
msgstr "Abilita il plugin di invio ad App.net"
|
||||||
|
|
||||||
|
#: appnet.php:149
|
||||||
|
msgid "Post to App.net by default"
|
||||||
|
msgstr "Invia sempre ad App.net"
|
||||||
|
|
||||||
|
#: appnet.php:153
|
||||||
|
msgid "Import the remote timeline"
|
||||||
|
msgstr "Importa la timeline remota"
|
||||||
|
|
||||||
|
#: appnet.php:159
|
||||||
|
msgid ""
|
||||||
|
"<p>Error fetching user profile. Please clear the configuration and try "
|
||||||
|
"again.</p>"
|
||||||
|
msgstr "<p>Errore recuperando il profilo utente. Svuota la configurazione e prova di nuovo.</p>"
|
||||||
|
|
||||||
|
#: appnet.php:164
|
||||||
|
msgid "<p>You have two ways to connect to App.net.</p>"
|
||||||
|
msgstr "<p>Puoi collegarti ad App.net in due modi.</p>"
|
||||||
|
|
||||||
|
#: appnet.php:166
|
||||||
|
msgid ""
|
||||||
|
"<p>First way: Register an application at <a "
|
||||||
|
"href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a>"
|
||||||
|
" and enter Client ID and Client Secret. "
|
||||||
|
msgstr "<p>Registrare un'applicazione su <a href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a> e inserire Client ID e Client Secret."
|
||||||
|
|
||||||
|
#: appnet.php:167
|
||||||
|
#, php-format
|
||||||
|
msgid "Use '%s' as Redirect URI<p>"
|
||||||
|
msgstr "Usa '%s' come Redirect URI</p>"
|
||||||
|
|
||||||
|
#: appnet.php:169
|
||||||
|
msgid "Client ID"
|
||||||
|
msgstr "Client ID"
|
||||||
|
|
||||||
|
#: appnet.php:173
|
||||||
|
msgid "Client Secret"
|
||||||
|
msgstr "Client Secret"
|
||||||
|
|
||||||
|
#: appnet.php:177
|
||||||
|
msgid ""
|
||||||
|
"<p>Second way: fetch a token at <a href=\"http://dev-"
|
||||||
|
"lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. "
|
||||||
|
msgstr "<p>Oppure puoi recuperare un token su <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>."
|
||||||
|
|
||||||
|
#: appnet.php:178
|
||||||
|
msgid ""
|
||||||
|
"Set these scopes: 'Basic', 'Stream', 'Write Post', 'Public Messages', "
|
||||||
|
"'Messages'.</p>"
|
||||||
|
msgstr "Imposta gli ambiti 'Basic', 'Stream', 'Scrivi Post', 'Messaggi Pubblici', 'Messaggi'.</p>"
|
||||||
|
|
||||||
|
#: appnet.php:180
|
||||||
|
msgid "Token"
|
||||||
|
msgstr "Token"
|
||||||
|
|
||||||
|
#: appnet.php:192
|
||||||
|
msgid "Sign in using App.net"
|
||||||
|
msgstr "Autenticati con App.net"
|
||||||
|
|
||||||
|
#: appnet.php:197
|
||||||
|
msgid "Clear OAuth configuration"
|
||||||
|
msgstr "Pulisci configurazione OAuth"
|
||||||
|
|
||||||
|
#: appnet.php:204
|
||||||
|
msgid "Save Settings"
|
||||||
|
msgstr "Salva Impostazioni"
|
29
appnet/lang/it/strings.php
Normal file
29
appnet/lang/it/strings.php
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
if(! function_exists("string_plural_select_it")) {
|
||||||
|
function string_plural_select_it($n){
|
||||||
|
return ($n != 1);;
|
||||||
|
}}
|
||||||
|
;
|
||||||
|
$a->strings["Permission denied."] = "Permesso negato.";
|
||||||
|
$a->strings["You are now authenticated to app.net. "] = "Sei autenticato su app.net";
|
||||||
|
$a->strings["<p>Error fetching token. Please try again.</p>"] = "<p>Errore recuperando il token. Prova di nuovo</p>";
|
||||||
|
$a->strings["return to the connector page"] = "ritorna alla pagina del connettore";
|
||||||
|
$a->strings["Post to app.net"] = "Invia ad app.net";
|
||||||
|
$a->strings["App.net Export"] = "Esporta App.net";
|
||||||
|
$a->strings["Currently connected to: "] = "Al momento connesso con:";
|
||||||
|
$a->strings["Enable App.net Post Plugin"] = "Abilita il plugin di invio ad App.net";
|
||||||
|
$a->strings["Post to App.net by default"] = "Invia sempre ad App.net";
|
||||||
|
$a->strings["Import the remote timeline"] = "Importa la timeline remota";
|
||||||
|
$a->strings["<p>Error fetching user profile. Please clear the configuration and try again.</p>"] = "<p>Errore recuperando il profilo utente. Svuota la configurazione e prova di nuovo.</p>";
|
||||||
|
$a->strings["<p>You have two ways to connect to App.net.</p>"] = "<p>Puoi collegarti ad App.net in due modi.</p>";
|
||||||
|
$a->strings["<p>First way: Register an application at <a href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a> and enter Client ID and Client Secret. "] = "<p>Registrare un'applicazione su <a href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a> e inserire Client ID e Client Secret.";
|
||||||
|
$a->strings["Use '%s' as Redirect URI<p>"] = "Usa '%s' come Redirect URI</p>";
|
||||||
|
$a->strings["Client ID"] = "Client ID";
|
||||||
|
$a->strings["Client Secret"] = "Client Secret";
|
||||||
|
$a->strings["<p>Second way: fetch a token at <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. "] = "<p>Oppure puoi recuperare un token su <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>.";
|
||||||
|
$a->strings["Set these scopes: 'Basic', 'Stream', 'Write Post', 'Public Messages', 'Messages'.</p>"] = "Imposta gli ambiti 'Basic', 'Stream', 'Scrivi Post', 'Messaggi Pubblici', 'Messaggi'.</p>";
|
||||||
|
$a->strings["Token"] = "Token";
|
||||||
|
$a->strings["Sign in using App.net"] = "Autenticati con App.net";
|
||||||
|
$a->strings["Clear OAuth configuration"] = "Pulisci configurazione OAuth";
|
||||||
|
$a->strings["Save Settings"] = "Salva Impostazioni";
|
118
appnet/lang/nl/messages.po
Normal file
118
appnet/lang/nl/messages.po
Normal file
|
@ -0,0 +1,118 @@
|
||||||
|
# ADDON appnet
|
||||||
|
# Copyright (C)
|
||||||
|
# This file is distributed under the same license as the Friendica appnet addon package.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# Jeroen S <j.soeurt@gmail.com>, 2016
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: friendica\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2014-06-22 11:47+0200\n"
|
||||||
|
"PO-Revision-Date: 2016-06-23 19:52+0000\n"
|
||||||
|
"Last-Translator: Jeroen S <j.soeurt@gmail.com>\n"
|
||||||
|
"Language-Team: Dutch (http://www.transifex.com/Friendica/friendica/language/nl/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Language: nl\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#: appnet.php:39
|
||||||
|
msgid "Permission denied."
|
||||||
|
msgstr "Toegang geweigerd"
|
||||||
|
|
||||||
|
#: appnet.php:73
|
||||||
|
msgid "You are now authenticated to app.net. "
|
||||||
|
msgstr "Je bent nu aangemeld bij app.net."
|
||||||
|
|
||||||
|
#: appnet.php:77
|
||||||
|
msgid "<p>Error fetching token. Please try again.</p>"
|
||||||
|
msgstr "<p>Fout tijdens token fetching. Probeer het nogmaals.</p>"
|
||||||
|
|
||||||
|
#: appnet.php:80
|
||||||
|
msgid "return to the connector page"
|
||||||
|
msgstr "ga terug naar de connector pagina"
|
||||||
|
|
||||||
|
#: appnet.php:94
|
||||||
|
msgid "Post to app.net"
|
||||||
|
msgstr "Post naar app.net."
|
||||||
|
|
||||||
|
#: appnet.php:125 appnet.php:129
|
||||||
|
msgid "App.net Export"
|
||||||
|
msgstr "App.net Export"
|
||||||
|
|
||||||
|
#: appnet.php:142
|
||||||
|
msgid "Currently connected to: "
|
||||||
|
msgstr "Momenteel verbonden met:"
|
||||||
|
|
||||||
|
#: appnet.php:144
|
||||||
|
msgid "Enable App.net Post Plugin"
|
||||||
|
msgstr "App.net Post Plugin inschakelen"
|
||||||
|
|
||||||
|
#: appnet.php:149
|
||||||
|
msgid "Post to App.net by default"
|
||||||
|
msgstr "Naar App.net posten als standaard instellen"
|
||||||
|
|
||||||
|
#: appnet.php:153
|
||||||
|
msgid "Import the remote timeline"
|
||||||
|
msgstr "The tijdlijn op afstand importeren"
|
||||||
|
|
||||||
|
#: appnet.php:159
|
||||||
|
msgid ""
|
||||||
|
"<p>Error fetching user profile. Please clear the configuration and try "
|
||||||
|
"again.</p>"
|
||||||
|
msgstr "<p>Fout tijdens het ophalen van gebruikersprofiel. Leeg de configuratie en probeer het opnieuw.</p>"
|
||||||
|
|
||||||
|
#: appnet.php:164
|
||||||
|
msgid "<p>You have two ways to connect to App.net.</p>"
|
||||||
|
msgstr "<p>Er zijn twee manieren om met App.net te verbinden.</p>"
|
||||||
|
|
||||||
|
#: appnet.php:166
|
||||||
|
msgid ""
|
||||||
|
"<p>First way: Register an application at <a "
|
||||||
|
"href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a>"
|
||||||
|
" and enter Client ID and Client Secret. "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: appnet.php:167
|
||||||
|
#, php-format
|
||||||
|
msgid "Use '%s' as Redirect URI<p>"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: appnet.php:169
|
||||||
|
msgid "Client ID"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: appnet.php:173
|
||||||
|
msgid "Client Secret"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: appnet.php:177
|
||||||
|
msgid ""
|
||||||
|
"<p>Second way: fetch a token at <a href=\"http://dev-"
|
||||||
|
"lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: appnet.php:178
|
||||||
|
msgid ""
|
||||||
|
"Set these scopes: 'Basic', 'Stream', 'Write Post', 'Public Messages', "
|
||||||
|
"'Messages'.</p>"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: appnet.php:180
|
||||||
|
msgid "Token"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: appnet.php:192
|
||||||
|
msgid "Sign in using App.net"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: appnet.php:197
|
||||||
|
msgid "Clear OAuth configuration"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: appnet.php:204
|
||||||
|
msgid "Save Settings"
|
||||||
|
msgstr ""
|
29
appnet/lang/nl/strings.php
Normal file
29
appnet/lang/nl/strings.php
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
if(! function_exists("string_plural_select_nl")) {
|
||||||
|
function string_plural_select_nl($n){
|
||||||
|
return ($n != 1);;
|
||||||
|
}}
|
||||||
|
;
|
||||||
|
$a->strings["Permission denied."] = "Toegang geweigerd";
|
||||||
|
$a->strings["You are now authenticated to app.net. "] = "Je bent nu aangemeld bij app.net.";
|
||||||
|
$a->strings["<p>Error fetching token. Please try again.</p>"] = "<p>Fout tijdens token fetching. Probeer het nogmaals.</p>";
|
||||||
|
$a->strings["return to the connector page"] = "ga terug naar de connector pagina";
|
||||||
|
$a->strings["Post to app.net"] = "Post naar app.net.";
|
||||||
|
$a->strings["App.net Export"] = "App.net Export";
|
||||||
|
$a->strings["Currently connected to: "] = "Momenteel verbonden met:";
|
||||||
|
$a->strings["Enable App.net Post Plugin"] = "App.net Post Plugin inschakelen";
|
||||||
|
$a->strings["Post to App.net by default"] = "Naar App.net posten als standaard instellen";
|
||||||
|
$a->strings["Import the remote timeline"] = "The tijdlijn op afstand importeren";
|
||||||
|
$a->strings["<p>Error fetching user profile. Please clear the configuration and try again.</p>"] = "<p>Fout tijdens het ophalen van gebruikersprofiel. Leeg de configuratie en probeer het opnieuw.</p>";
|
||||||
|
$a->strings["<p>You have two ways to connect to App.net.</p>"] = "<p>Er zijn twee manieren om met App.net te verbinden.</p>";
|
||||||
|
$a->strings["<p>First way: Register an application at <a href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a> and enter Client ID and Client Secret. "] = "";
|
||||||
|
$a->strings["Use '%s' as Redirect URI<p>"] = "";
|
||||||
|
$a->strings["Client ID"] = "";
|
||||||
|
$a->strings["Client Secret"] = "";
|
||||||
|
$a->strings["<p>Second way: fetch a token at <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. "] = "";
|
||||||
|
$a->strings["Set these scopes: 'Basic', 'Stream', 'Write Post', 'Public Messages', 'Messages'.</p>"] = "";
|
||||||
|
$a->strings["Token"] = "";
|
||||||
|
$a->strings["Sign in using App.net"] = "";
|
||||||
|
$a->strings["Clear OAuth configuration"] = "";
|
||||||
|
$a->strings["Save Settings"] = "";
|
119
appnet/lang/pt-br/messages.po
Normal file
119
appnet/lang/pt-br/messages.po
Normal file
|
@ -0,0 +1,119 @@
|
||||||
|
# ADDON appnet
|
||||||
|
# Copyright (C)
|
||||||
|
# This file is distributed under the same license as the Friendica appnet addon package.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# Beatriz Vital <vitalb@riseup.net>, 2016
|
||||||
|
# Calango Jr <jcsojr@gmail.com>, 2014
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: friendica\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2014-06-22 11:47+0200\n"
|
||||||
|
"PO-Revision-Date: 2016-08-19 20:37+0000\n"
|
||||||
|
"Last-Translator: Beatriz Vital <vitalb@riseup.net>\n"
|
||||||
|
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/Friendica/friendica/language/pt_BR/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Language: pt_BR\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||||
|
|
||||||
|
#: appnet.php:39
|
||||||
|
msgid "Permission denied."
|
||||||
|
msgstr "Permissão negada."
|
||||||
|
|
||||||
|
#: appnet.php:73
|
||||||
|
msgid "You are now authenticated to app.net. "
|
||||||
|
msgstr "Você está autenticado no app.net."
|
||||||
|
|
||||||
|
#: appnet.php:77
|
||||||
|
msgid "<p>Error fetching token. Please try again.</p>"
|
||||||
|
msgstr "Erro ocorrido na obtenção do token. Tente novamente."
|
||||||
|
|
||||||
|
#: appnet.php:80
|
||||||
|
msgid "return to the connector page"
|
||||||
|
msgstr "Volte a página de conectores."
|
||||||
|
|
||||||
|
#: appnet.php:94
|
||||||
|
msgid "Post to app.net"
|
||||||
|
msgstr "Publicar no App.net"
|
||||||
|
|
||||||
|
#: appnet.php:125 appnet.php:129
|
||||||
|
msgid "App.net Export"
|
||||||
|
msgstr "App.net exportar"
|
||||||
|
|
||||||
|
#: appnet.php:142
|
||||||
|
msgid "Currently connected to: "
|
||||||
|
msgstr "Atualmente conectado em: "
|
||||||
|
|
||||||
|
#: appnet.php:144
|
||||||
|
msgid "Enable App.net Post Plugin"
|
||||||
|
msgstr "Habilitar plug-in para publicar no App.net"
|
||||||
|
|
||||||
|
#: appnet.php:149
|
||||||
|
msgid "Post to App.net by default"
|
||||||
|
msgstr "Publicar em App.net por padrão"
|
||||||
|
|
||||||
|
#: appnet.php:153
|
||||||
|
msgid "Import the remote timeline"
|
||||||
|
msgstr "Importar a linha do tempo remota"
|
||||||
|
|
||||||
|
#: appnet.php:159
|
||||||
|
msgid ""
|
||||||
|
"<p>Error fetching user profile. Please clear the configuration and try "
|
||||||
|
"again.</p>"
|
||||||
|
msgstr "Erro na obtenção do perfil do usuário. Confira as configurações e tente novamente."
|
||||||
|
|
||||||
|
#: appnet.php:164
|
||||||
|
msgid "<p>You have two ways to connect to App.net.</p>"
|
||||||
|
msgstr "<p>Você possui duas formas de conectar ao App.net</p>"
|
||||||
|
|
||||||
|
#: appnet.php:166
|
||||||
|
msgid ""
|
||||||
|
"<p>First way: Register an application at <a "
|
||||||
|
"href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a>"
|
||||||
|
" and enter Client ID and Client Secret. "
|
||||||
|
msgstr "<p>1º Método: Registre uma aplicação em <a href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a> e entre o Client ID e Client Secret"
|
||||||
|
|
||||||
|
#: appnet.php:167
|
||||||
|
#, php-format
|
||||||
|
msgid "Use '%s' as Redirect URI<p>"
|
||||||
|
msgstr "Use '%s' como URI redirecionador<p>"
|
||||||
|
|
||||||
|
#: appnet.php:169
|
||||||
|
msgid "Client ID"
|
||||||
|
msgstr "Client ID"
|
||||||
|
|
||||||
|
#: appnet.php:173
|
||||||
|
msgid "Client Secret"
|
||||||
|
msgstr "Client Secret"
|
||||||
|
|
||||||
|
#: appnet.php:177
|
||||||
|
msgid ""
|
||||||
|
"<p>Second way: fetch a token at <a href=\"http://dev-"
|
||||||
|
"lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. "
|
||||||
|
msgstr "<p>2º Método: obtenha um token em <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. "
|
||||||
|
|
||||||
|
#: appnet.php:178
|
||||||
|
msgid ""
|
||||||
|
"Set these scopes: 'Basic', 'Stream', 'Write Post', 'Public Messages', "
|
||||||
|
"'Messages'.</p>"
|
||||||
|
msgstr "Adicione valor as estas saídas: 'Basic', 'Stream', 'Write Post', 'Public Messages', 'Messages'.</p>"
|
||||||
|
|
||||||
|
#: appnet.php:180
|
||||||
|
msgid "Token"
|
||||||
|
msgstr "Token"
|
||||||
|
|
||||||
|
#: appnet.php:192
|
||||||
|
msgid "Sign in using App.net"
|
||||||
|
msgstr "Entre usando o App.net"
|
||||||
|
|
||||||
|
#: appnet.php:197
|
||||||
|
msgid "Clear OAuth configuration"
|
||||||
|
msgstr "Limpar configuração OAuth"
|
||||||
|
|
||||||
|
#: appnet.php:204
|
||||||
|
msgid "Save Settings"
|
||||||
|
msgstr "Salvar Configurações"
|
29
appnet/lang/pt-br/strings.php
Normal file
29
appnet/lang/pt-br/strings.php
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
if(! function_exists("string_plural_select_pt_br")) {
|
||||||
|
function string_plural_select_pt_br($n){
|
||||||
|
return ($n > 1);;
|
||||||
|
}}
|
||||||
|
;
|
||||||
|
$a->strings["Permission denied."] = "Permissão negada.";
|
||||||
|
$a->strings["You are now authenticated to app.net. "] = "Você está autenticado no app.net.";
|
||||||
|
$a->strings["<p>Error fetching token. Please try again.</p>"] = "Erro ocorrido na obtenção do token. Tente novamente.";
|
||||||
|
$a->strings["return to the connector page"] = "Volte a página de conectores.";
|
||||||
|
$a->strings["Post to app.net"] = "Publicar no App.net";
|
||||||
|
$a->strings["App.net Export"] = "App.net exportar";
|
||||||
|
$a->strings["Currently connected to: "] = "Atualmente conectado em: ";
|
||||||
|
$a->strings["Enable App.net Post Plugin"] = "Habilitar plug-in para publicar no App.net";
|
||||||
|
$a->strings["Post to App.net by default"] = "Publicar em App.net por padrão";
|
||||||
|
$a->strings["Import the remote timeline"] = "Importar a linha do tempo remota";
|
||||||
|
$a->strings["<p>Error fetching user profile. Please clear the configuration and try again.</p>"] = "Erro na obtenção do perfil do usuário. Confira as configurações e tente novamente.";
|
||||||
|
$a->strings["<p>You have two ways to connect to App.net.</p>"] = "<p>Você possui duas formas de conectar ao App.net</p>";
|
||||||
|
$a->strings["<p>First way: Register an application at <a href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a> and enter Client ID and Client Secret. "] = "<p>1º Método: Registre uma aplicação em <a href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a> e entre o Client ID e Client Secret";
|
||||||
|
$a->strings["Use '%s' as Redirect URI<p>"] = "Use '%s' como URI redirecionador<p>";
|
||||||
|
$a->strings["Client ID"] = "Client ID";
|
||||||
|
$a->strings["Client Secret"] = "Client Secret";
|
||||||
|
$a->strings["<p>Second way: fetch a token at <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. "] = "<p>2º Método: obtenha um token em <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. ";
|
||||||
|
$a->strings["Set these scopes: 'Basic', 'Stream', 'Write Post', 'Public Messages', 'Messages'.</p>"] = "Adicione valor as estas saídas: 'Basic', 'Stream', 'Write Post', 'Public Messages', 'Messages'.</p>";
|
||||||
|
$a->strings["Token"] = "Token";
|
||||||
|
$a->strings["Sign in using App.net"] = "Entre usando o App.net";
|
||||||
|
$a->strings["Clear OAuth configuration"] = "Limpar configuração OAuth";
|
||||||
|
$a->strings["Save Settings"] = "Salvar Configurações";
|
117
appnet/lang/ro/messages.po
Normal file
117
appnet/lang/ro/messages.po
Normal file
|
@ -0,0 +1,117 @@
|
||||||
|
# ADDON appnet
|
||||||
|
# Copyright (C)
|
||||||
|
# This file is distributed under the same license as the Friendica appnet addon package.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: friendica\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2014-06-22 11:47+0200\n"
|
||||||
|
"PO-Revision-Date: 2014-07-08 11:40+0000\n"
|
||||||
|
"Last-Translator: Arian - Cazare Muncitori <arianserv@gmail.com>\n"
|
||||||
|
"Language-Team: Romanian (Romania) (http://www.transifex.com/projects/p/friendica/language/ro_RO/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Language: ro_RO\n"
|
||||||
|
"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"
|
||||||
|
|
||||||
|
#: appnet.php:39
|
||||||
|
msgid "Permission denied."
|
||||||
|
msgstr "Permisiune refuzată."
|
||||||
|
|
||||||
|
#: appnet.php:73
|
||||||
|
msgid "You are now authenticated to app.net. "
|
||||||
|
msgstr "Acum sunteți autentificat pe App.net."
|
||||||
|
|
||||||
|
#: appnet.php:77
|
||||||
|
msgid "<p>Error fetching token. Please try again.</p>"
|
||||||
|
msgstr "<p>Eroare la procesarea token-ului. Vă rugăm să reîncercați.</p>"
|
||||||
|
|
||||||
|
#: appnet.php:80
|
||||||
|
msgid "return to the connector page"
|
||||||
|
msgstr "revenire la pagina de conectare"
|
||||||
|
|
||||||
|
#: appnet.php:94
|
||||||
|
msgid "Post to app.net"
|
||||||
|
msgstr "Postați pe App.net"
|
||||||
|
|
||||||
|
#: appnet.php:125 appnet.php:129
|
||||||
|
msgid "App.net Export"
|
||||||
|
msgstr "Exportare pe App.net"
|
||||||
|
|
||||||
|
#: appnet.php:142
|
||||||
|
msgid "Currently connected to: "
|
||||||
|
msgstr "Conectat curent la:"
|
||||||
|
|
||||||
|
#: appnet.php:144
|
||||||
|
msgid "Enable App.net Post Plugin"
|
||||||
|
msgstr "Activare Modul Postare pe App.net"
|
||||||
|
|
||||||
|
#: appnet.php:149
|
||||||
|
msgid "Post to App.net by default"
|
||||||
|
msgstr "Postați implicit pe App.net"
|
||||||
|
|
||||||
|
#: appnet.php:153
|
||||||
|
msgid "Import the remote timeline"
|
||||||
|
msgstr "Importare cronologie la distanță"
|
||||||
|
|
||||||
|
#: appnet.php:159
|
||||||
|
msgid ""
|
||||||
|
"<p>Error fetching user profile. Please clear the configuration and try "
|
||||||
|
"again.</p>"
|
||||||
|
msgstr "<p>Eroare la procesarea profilului de utilizator. Vă rugăm să ștergeți configurarea şi apoi reîncercați.</p>"
|
||||||
|
|
||||||
|
#: appnet.php:164
|
||||||
|
msgid "<p>You have two ways to connect to App.net.</p>"
|
||||||
|
msgstr "<p>Aveți două modalități de a vă conecta la App.net.</p>"
|
||||||
|
|
||||||
|
#: appnet.php:166
|
||||||
|
msgid ""
|
||||||
|
"<p>First way: Register an application at <a "
|
||||||
|
"href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a>"
|
||||||
|
" and enter Client ID and Client Secret. "
|
||||||
|
msgstr "<p>Prima modalitate: Înregistrați o cerere pe <a href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a> şi introduceți ID Client şi Cheia Secretă Client."
|
||||||
|
|
||||||
|
#: appnet.php:167
|
||||||
|
#, php-format
|
||||||
|
msgid "Use '%s' as Redirect URI<p>"
|
||||||
|
msgstr "Utilizați '%s' ca URI de Redirecţionare<p>"
|
||||||
|
|
||||||
|
#: appnet.php:169
|
||||||
|
msgid "Client ID"
|
||||||
|
msgstr "ID Client"
|
||||||
|
|
||||||
|
#: appnet.php:173
|
||||||
|
msgid "Client Secret"
|
||||||
|
msgstr "Cheia Secretă Client"
|
||||||
|
|
||||||
|
#: appnet.php:177
|
||||||
|
msgid ""
|
||||||
|
"<p>Second way: fetch a token at <a href=\"http://dev-"
|
||||||
|
"lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. "
|
||||||
|
msgstr "<p>A doua cale: autorizați un indicativ de acces token de pe <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a> ."
|
||||||
|
|
||||||
|
#: appnet.php:178
|
||||||
|
msgid ""
|
||||||
|
"Set these scopes: 'Basic', 'Stream', 'Write Post', 'Public Messages', "
|
||||||
|
"'Messages'.</p>"
|
||||||
|
msgstr "Stabiliți aceste scopuri: 'De Bază', 'Flux', 'Scriere Postare', 'Mesaje Publice', 'Mesaje'.</p>"
|
||||||
|
|
||||||
|
#: appnet.php:180
|
||||||
|
msgid "Token"
|
||||||
|
msgstr "Token"
|
||||||
|
|
||||||
|
#: appnet.php:192
|
||||||
|
msgid "Sign in using App.net"
|
||||||
|
msgstr "Autentificați-vă utilizând App.net"
|
||||||
|
|
||||||
|
#: appnet.php:197
|
||||||
|
msgid "Clear OAuth configuration"
|
||||||
|
msgstr "Ștergeți configurările OAuth"
|
||||||
|
|
||||||
|
#: appnet.php:204
|
||||||
|
msgid "Save Settings"
|
||||||
|
msgstr "Salvare Configurări"
|
29
appnet/lang/ro/strings.php
Normal file
29
appnet/lang/ro/strings.php
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
if(! function_exists("string_plural_select_ro")) {
|
||||||
|
function string_plural_select_ro($n){
|
||||||
|
return ($n==1?0:((($n%100>19)||(($n%100==0)&&($n!=0)))?2:1));;
|
||||||
|
}}
|
||||||
|
;
|
||||||
|
$a->strings["Permission denied."] = "Permisiune refuzată.";
|
||||||
|
$a->strings["You are now authenticated to app.net. "] = "Acum sunteți autentificat pe App.net.";
|
||||||
|
$a->strings["<p>Error fetching token. Please try again.</p>"] = "<p>Eroare la procesarea token-ului. Vă rugăm să reîncercați.</p>";
|
||||||
|
$a->strings["return to the connector page"] = "revenire la pagina de conectare";
|
||||||
|
$a->strings["Post to app.net"] = "Postați pe App.net";
|
||||||
|
$a->strings["App.net Export"] = "Exportare pe App.net";
|
||||||
|
$a->strings["Currently connected to: "] = "Conectat curent la:";
|
||||||
|
$a->strings["Enable App.net Post Plugin"] = "Activare Modul Postare pe App.net";
|
||||||
|
$a->strings["Post to App.net by default"] = "Postați implicit pe App.net";
|
||||||
|
$a->strings["Import the remote timeline"] = "Importare cronologie la distanță";
|
||||||
|
$a->strings["<p>Error fetching user profile. Please clear the configuration and try again.</p>"] = "<p>Eroare la procesarea profilului de utilizator. Vă rugăm să ștergeți configurarea şi apoi reîncercați.</p>";
|
||||||
|
$a->strings["<p>You have two ways to connect to App.net.</p>"] = "<p>Aveți două modalități de a vă conecta la App.net.</p>";
|
||||||
|
$a->strings["<p>First way: Register an application at <a href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a> and enter Client ID and Client Secret. "] = "<p>Prima modalitate: Înregistrați o cerere pe <a href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a> şi introduceți ID Client şi Cheia Secretă Client.";
|
||||||
|
$a->strings["Use '%s' as Redirect URI<p>"] = "Utilizați '%s' ca URI de Redirecţionare<p>";
|
||||||
|
$a->strings["Client ID"] = "ID Client";
|
||||||
|
$a->strings["Client Secret"] = "Cheia Secretă Client";
|
||||||
|
$a->strings["<p>Second way: fetch a token at <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. "] = "<p>A doua cale: autorizați un indicativ de acces token de pe <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a> .";
|
||||||
|
$a->strings["Set these scopes: 'Basic', 'Stream', 'Write Post', 'Public Messages', 'Messages'.</p>"] = "Stabiliți aceste scopuri: 'De Bază', 'Flux', 'Scriere Postare', 'Mesaje Publice', 'Mesaje'.</p>";
|
||||||
|
$a->strings["Token"] = "Token";
|
||||||
|
$a->strings["Sign in using App.net"] = "Autentificați-vă utilizând App.net";
|
||||||
|
$a->strings["Clear OAuth configuration"] = "Ștergeți configurările OAuth";
|
||||||
|
$a->strings["Save Settings"] = "Salvare Configurări";
|
118
appnet/lang/ru/messages.po
Normal file
118
appnet/lang/ru/messages.po
Normal file
|
@ -0,0 +1,118 @@
|
||||||
|
# ADDON appnet
|
||||||
|
# Copyright (C)
|
||||||
|
# This file is distributed under the same license as the Friendica appnet addon package.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# Stanislav N. <pztrn@pztrn.name>, 2017
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: friendica\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2014-06-22 11:47+0200\n"
|
||||||
|
"PO-Revision-Date: 2017-04-08 05:32+0000\n"
|
||||||
|
"Last-Translator: Stanislav N. <pztrn@pztrn.name>\n"
|
||||||
|
"Language-Team: Russian (http://www.transifex.com/Friendica/friendica/language/ru/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Language: ru\n"
|
||||||
|
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
|
||||||
|
|
||||||
|
#: appnet.php:39
|
||||||
|
msgid "Permission denied."
|
||||||
|
msgstr "Доступ запрещен."
|
||||||
|
|
||||||
|
#: appnet.php:73
|
||||||
|
msgid "You are now authenticated to app.net. "
|
||||||
|
msgstr "Вы аутентифицированы на app.net"
|
||||||
|
|
||||||
|
#: appnet.php:77
|
||||||
|
msgid "<p>Error fetching token. Please try again.</p>"
|
||||||
|
msgstr "<p>Ошибка получения токена. Попробуйте еще раз.</p>"
|
||||||
|
|
||||||
|
#: appnet.php:80
|
||||||
|
msgid "return to the connector page"
|
||||||
|
msgstr "вернуться на страницу коннектора"
|
||||||
|
|
||||||
|
#: appnet.php:94
|
||||||
|
msgid "Post to app.net"
|
||||||
|
msgstr "Отправить на app.net"
|
||||||
|
|
||||||
|
#: appnet.php:125 appnet.php:129
|
||||||
|
msgid "App.net Export"
|
||||||
|
msgstr "Экспорт app.net"
|
||||||
|
|
||||||
|
#: appnet.php:142
|
||||||
|
msgid "Currently connected to: "
|
||||||
|
msgstr "В настоящее время соединены с: "
|
||||||
|
|
||||||
|
#: appnet.php:144
|
||||||
|
msgid "Enable App.net Post Plugin"
|
||||||
|
msgstr "Включить плагин App.net"
|
||||||
|
|
||||||
|
#: appnet.php:149
|
||||||
|
msgid "Post to App.net by default"
|
||||||
|
msgstr "Отправлять сообщения на App.net по-умолчанию"
|
||||||
|
|
||||||
|
#: appnet.php:153
|
||||||
|
msgid "Import the remote timeline"
|
||||||
|
msgstr "Импортировать удаленные сообщения"
|
||||||
|
|
||||||
|
#: appnet.php:159
|
||||||
|
msgid ""
|
||||||
|
"<p>Error fetching user profile. Please clear the configuration and try "
|
||||||
|
"again.</p>"
|
||||||
|
msgstr "<p>Ошибка при получении профиля пользователя. Сбросьте конфигурацию и попробуйте еще раз.</p>"
|
||||||
|
|
||||||
|
#: appnet.php:164
|
||||||
|
msgid "<p>You have two ways to connect to App.net.</p>"
|
||||||
|
msgstr "<p>У вас есть два способа соединения с App.net.</p>"
|
||||||
|
|
||||||
|
#: appnet.php:166
|
||||||
|
msgid ""
|
||||||
|
"<p>First way: Register an application at <a "
|
||||||
|
"href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a>"
|
||||||
|
" and enter Client ID and Client Secret. "
|
||||||
|
msgstr "<p>Первый способ: зарегистрируйте приложение на <a href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a> и введите Client ID и Client Secret"
|
||||||
|
|
||||||
|
#: appnet.php:167
|
||||||
|
#, php-format
|
||||||
|
msgid "Use '%s' as Redirect URI<p>"
|
||||||
|
msgstr "Используйте '%s' как Redirect URI<p>"
|
||||||
|
|
||||||
|
#: appnet.php:169
|
||||||
|
msgid "Client ID"
|
||||||
|
msgstr "Client ID"
|
||||||
|
|
||||||
|
#: appnet.php:173
|
||||||
|
msgid "Client Secret"
|
||||||
|
msgstr "Client Secret"
|
||||||
|
|
||||||
|
#: appnet.php:177
|
||||||
|
msgid ""
|
||||||
|
"<p>Second way: fetch a token at <a href=\"http://dev-"
|
||||||
|
"lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. "
|
||||||
|
msgstr "<p>Второй путь: получите токен на <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. "
|
||||||
|
|
||||||
|
#: appnet.php:178
|
||||||
|
msgid ""
|
||||||
|
"Set these scopes: 'Basic', 'Stream', 'Write Post', 'Public Messages', "
|
||||||
|
"'Messages'.</p>"
|
||||||
|
msgstr "Выберите области: 'Basic', 'Stream', 'Write Post', 'Public Messages', 'Messages'.</p>"
|
||||||
|
|
||||||
|
#: appnet.php:180
|
||||||
|
msgid "Token"
|
||||||
|
msgstr "Токен"
|
||||||
|
|
||||||
|
#: appnet.php:192
|
||||||
|
msgid "Sign in using App.net"
|
||||||
|
msgstr "Войти через App.net"
|
||||||
|
|
||||||
|
#: appnet.php:197
|
||||||
|
msgid "Clear OAuth configuration"
|
||||||
|
msgstr "Удалить конфигурацию OAuth"
|
||||||
|
|
||||||
|
#: appnet.php:204
|
||||||
|
msgid "Save Settings"
|
||||||
|
msgstr "Сохранить настройки"
|
29
appnet/lang/ru/strings.php
Normal file
29
appnet/lang/ru/strings.php
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
if(! function_exists("string_plural_select_ru")) {
|
||||||
|
function string_plural_select_ru($n){
|
||||||
|
return ($n%10==1 && $n%100!=11 ? 0 : $n%10>=2 && $n%10<=4 && ($n%100<12 || $n%100>14) ? 1 : $n%10==0 || ($n%10>=5 && $n%10<=9) || ($n%100>=11 && $n%100<=14)? 2 : 3);;
|
||||||
|
}}
|
||||||
|
;
|
||||||
|
$a->strings["Permission denied."] = "Доступ запрещен.";
|
||||||
|
$a->strings["You are now authenticated to app.net. "] = "Вы аутентифицированы на app.net";
|
||||||
|
$a->strings["<p>Error fetching token. Please try again.</p>"] = "<p>Ошибка получения токена. Попробуйте еще раз.</p>";
|
||||||
|
$a->strings["return to the connector page"] = "вернуться на страницу коннектора";
|
||||||
|
$a->strings["Post to app.net"] = "Отправить на app.net";
|
||||||
|
$a->strings["App.net Export"] = "Экспорт app.net";
|
||||||
|
$a->strings["Currently connected to: "] = "В настоящее время соединены с: ";
|
||||||
|
$a->strings["Enable App.net Post Plugin"] = "Включить плагин App.net";
|
||||||
|
$a->strings["Post to App.net by default"] = "Отправлять сообщения на App.net по-умолчанию";
|
||||||
|
$a->strings["Import the remote timeline"] = "Импортировать удаленные сообщения";
|
||||||
|
$a->strings["<p>Error fetching user profile. Please clear the configuration and try again.</p>"] = "<p>Ошибка при получении профиля пользователя. Сбросьте конфигурацию и попробуйте еще раз.</p>";
|
||||||
|
$a->strings["<p>You have two ways to connect to App.net.</p>"] = "<p>У вас есть два способа соединения с App.net.</p>";
|
||||||
|
$a->strings["<p>First way: Register an application at <a href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a> and enter Client ID and Client Secret. "] = "<p>Первый способ: зарегистрируйте приложение на <a href=\"https://account.app.net/developer/apps/\">https://account.app.net/developer/apps/</a> и введите Client ID и Client Secret";
|
||||||
|
$a->strings["Use '%s' as Redirect URI<p>"] = "Используйте '%s' как Redirect URI<p>";
|
||||||
|
$a->strings["Client ID"] = "Client ID";
|
||||||
|
$a->strings["Client Secret"] = "Client Secret";
|
||||||
|
$a->strings["<p>Second way: fetch a token at <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. "] = "<p>Второй путь: получите токен на <a href=\"http://dev-lite.jonathonduerig.com/\">http://dev-lite.jonathonduerig.com/</a>. ";
|
||||||
|
$a->strings["Set these scopes: 'Basic', 'Stream', 'Write Post', 'Public Messages', 'Messages'.</p>"] = "Выберите области: 'Basic', 'Stream', 'Write Post', 'Public Messages', 'Messages'.</p>";
|
||||||
|
$a->strings["Token"] = "Токен";
|
||||||
|
$a->strings["Sign in using App.net"] = "Войти через App.net";
|
||||||
|
$a->strings["Clear OAuth configuration"] = "Удалить конфигурацию OAuth";
|
||||||
|
$a->strings["Save Settings"] = "Сохранить настройки";
|
3
appnet/templates/admin.tpl
Normal file
3
appnet/templates/admin.tpl
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{{include file="field_input.tpl" field=$clientid}}
|
||||||
|
{{include file="field_input.tpl" field=$clientsecret}}
|
||||||
|
<div class="submit"><input type="submit" name="page_site" value="{{$submit}}" /></div>
|
|
@ -36,10 +36,10 @@
|
||||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
* copies of the Software, and to permit persons to whom the Software is
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
* furnished to do so, subject to the following conditions:
|
* furnished to do so, subject to the following conditions:
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included in
|
* The above copyright notice and this permission notice shall be included in
|
||||||
* all copies or substantial portions of the Software.
|
* all copies or substantial portions of the Software.
|
||||||
*
|
*
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
@ -49,7 +49,6 @@
|
||||||
* THE SOFTWARE.
|
* THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
use Friendica\Core\Config;
|
|
||||||
|
|
||||||
function blackout_install() {
|
function blackout_install() {
|
||||||
register_hook('page_header', 'addon/blackout/blackout.php', 'blackout_redirect');
|
register_hook('page_header', 'addon/blackout/blackout.php', 'blackout_redirect');
|
||||||
|
@ -68,9 +67,9 @@ function blackout_redirect ($a, $b) {
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
// else...
|
// else...
|
||||||
$mystart = Config::get('blackout','begindate');
|
$mystart = get_config('blackout','begindate');
|
||||||
$myend = Config::get('blackout','enddate');
|
$myend = get_config('blackout','enddate');
|
||||||
$myurl = Config::get('blackout','url');
|
$myurl = get_config('blackout','url');
|
||||||
$now = time();
|
$now = time();
|
||||||
$date1 = DateTime::createFromFormat('Y-m-d G:i', $mystart);
|
$date1 = DateTime::createFromFormat('Y-m-d G:i', $mystart);
|
||||||
$date2 = DateTime::createFromFormat('Y-m-d G:i', $myend);
|
$date2 = DateTime::createFromFormat('Y-m-d G:i', $myend);
|
||||||
|
@ -88,21 +87,21 @@ function blackout_redirect ($a, $b) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function blackout_plugin_admin(&$a, &$o) {
|
function blackout_plugin_admin(&$a, &$o) {
|
||||||
$mystart = Config::get('blackout','begindate');
|
$mystart = get_config('blackout','begindate');
|
||||||
if (! is_string($mystart)) { $mystart = "YYYY-MM-DD:hhmm"; }
|
if (! is_string($mystart)) { $mystart = "YYYY-MM-DD:hhmm"; }
|
||||||
$myend = Config::get('blackout','enddate');
|
$myend = get_config('blackout','enddate');
|
||||||
if (! is_string($myend)) { $myend = "YYYY-MM-DD:hhmm"; }
|
if (! is_string($myend)) { $myend = "YYYY-MM-DD:hhmm"; }
|
||||||
$myurl = Config::get('blackout','url');
|
$myurl = get_config('blackout','url');
|
||||||
if (! is_string($myurl)) { $myurl = "http://www.example.com"; }
|
if (! is_string($myurl)) { $myurl = "http://www.example.com"; }
|
||||||
$t = get_markup_template( "admin.tpl", "addon/blackout/" );
|
$t = get_markup_template( "admin.tpl", "addon/blackout/" );
|
||||||
|
|
||||||
$o = replace_macros($t, [
|
$o = replace_macros($t, array(
|
||||||
'$submit' => t('Save Settings'),
|
'$submit' => t('Save Settings'),
|
||||||
'$rurl' => ["rurl", "Redirect URL", $myurl, "all your visitors from the web will be redirected to this URL"],
|
'$rurl' => array("rurl", "Redirect URL", $myurl, "all your visitors from the web will be redirected to this URL"),
|
||||||
'$startdate' => ["startdate", "Begin of the Blackout<br />(YYYY-MM-DD hh:mm)", $mystart, "format is <em>YYYY</em> year, <em>MM</em> month, <em>DD</em> day, <em>hh</em> hour and <em>mm</em> minute"],
|
'$startdate' => array("startdate", "Begin of the Blackout<br />(YYYY-MM-DD hh:mm)", $mystart, "format is <em>YYYY</em> year, <em>MM</em> month, <em>DD</em> day, <em>hh</em> hour and <em>mm</em> minute"),
|
||||||
'$enddate' => ["enddate", "End of the Blackout<br />(YYYY-MM-DD hh:mm)", $myend, ""],
|
'$enddate' => array("enddate", "End of the Blackout<br />(YYYY-MM-DD hh:mm)", $myend, ""),
|
||||||
|
|
||||||
]);
|
));
|
||||||
$date1 = DateTime::createFromFormat('Y-m-d G:i', $mystart);
|
$date1 = DateTime::createFromFormat('Y-m-d G:i', $mystart);
|
||||||
$date2 = DateTime::createFromFormat('Y-m-d G:i', $myend);
|
$date2 = DateTime::createFromFormat('Y-m-d G:i', $myend);
|
||||||
if ($date2 < $date1) {
|
if ($date2 < $date1) {
|
||||||
|
@ -115,7 +114,7 @@ function blackout_plugin_admin_post (&$a) {
|
||||||
$begindate = trim($_POST['startdate']);
|
$begindate = trim($_POST['startdate']);
|
||||||
$enddate = trim($_POST['enddate']);
|
$enddate = trim($_POST['enddate']);
|
||||||
$url = trim($_POST['rurl']);
|
$url = trim($_POST['rurl']);
|
||||||
Config::set('blackout','begindate',$begindate);
|
set_config('blackout','begindate',$begindate);
|
||||||
Config::set('blackout','enddate',$enddate);
|
set_config('blackout','enddate',$enddate);
|
||||||
Config::set('blackout','url',$url);
|
set_config('blackout','url',$url);
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,11 +6,9 @@
|
||||||
* Description: block people
|
* Description: block people
|
||||||
* Version: 1.0
|
* Version: 1.0
|
||||||
* Author: Mike Macgirvin <http://macgirvin.com/profile/mike>
|
* Author: Mike Macgirvin <http://macgirvin.com/profile/mike>
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
use Friendica\Core\PConfig;
|
|
||||||
|
|
||||||
function blockem_install() {
|
function blockem_install() {
|
||||||
register_hook('prepare_body', 'addon/blockem/blockem.php', 'blockem_prepare_body');
|
register_hook('prepare_body', 'addon/blockem/blockem.php', 'blockem_prepare_body');
|
||||||
register_hook('display_item', 'addon/blockem/blockem.php', 'blockem_display_item');
|
register_hook('display_item', 'addon/blockem/blockem.php', 'blockem_display_item');
|
||||||
|
@ -47,7 +45,7 @@ function blockem_addon_settings(&$a,&$s) {
|
||||||
$a->page['htmlhead'] .= '<link rel="stylesheet" type="text/css" href="' . $a->get_baseurl() . '/addon/blockem/blockem.css' . '" media="all" />' . "\r\n";
|
$a->page['htmlhead'] .= '<link rel="stylesheet" type="text/css" href="' . $a->get_baseurl() . '/addon/blockem/blockem.css' . '" media="all" />' . "\r\n";
|
||||||
|
|
||||||
|
|
||||||
$words = PConfig::get(local_user(),'blockem','words');
|
$words = get_pconfig(local_user(),'blockem','words');
|
||||||
if(! $words)
|
if(! $words)
|
||||||
$words = '';
|
$words = '';
|
||||||
|
|
||||||
|
@ -76,7 +74,7 @@ function blockem_addon_settings_post(&$a,&$b) {
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if($_POST['blockem-submit']) {
|
if($_POST['blockem-submit']) {
|
||||||
PConfig::set(local_user(),'blockem','words',trim($_POST['blockem-words']));
|
set_pconfig(local_user(),'blockem','words',trim($_POST['blockem-words']));
|
||||||
info( t('BLOCKEM Settings saved.') . EOL);
|
info( t('BLOCKEM Settings saved.') . EOL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -84,7 +82,7 @@ function blockem_addon_settings_post(&$a,&$b) {
|
||||||
|
|
||||||
function blockem_enotify_store(&$a,&$b) {
|
function blockem_enotify_store(&$a,&$b) {
|
||||||
|
|
||||||
$words = PConfig::get($b['uid'],'blockem','words');
|
$words = get_pconfig($b['uid'],'blockem','words');
|
||||||
if($words) {
|
if($words) {
|
||||||
$arr = explode(',',$words);
|
$arr = explode(',',$words);
|
||||||
}
|
}
|
||||||
|
@ -117,7 +115,7 @@ function blockem_prepare_body(&$a,&$b) {
|
||||||
|
|
||||||
$words = null;
|
$words = null;
|
||||||
if(local_user()) {
|
if(local_user()) {
|
||||||
$words = PConfig::get(local_user(),'blockem','words');
|
$words = get_pconfig(local_user(),'blockem','words');
|
||||||
}
|
}
|
||||||
if($words) {
|
if($words) {
|
||||||
$arr = explode(',',$words);
|
$arr = explode(',',$words);
|
||||||
|
@ -141,7 +139,7 @@ function blockem_prepare_body(&$a,&$b) {
|
||||||
}
|
}
|
||||||
if($found) {
|
if($found) {
|
||||||
$rnd = random_string(8);
|
$rnd = random_string(8);
|
||||||
$b['html'] = '<div id="blockem-wrap-' . $rnd . '" class="fakelink" onclick=openClose(\'blockem-' . $rnd . '\'); >' . sprintf( t('Blocked %s - Click to open/close'),$word ) . '</div><div id="blockem-' . $rnd . '" style="display: none; " >' . $b['html'] . '</div>';
|
$b['html'] = '<div id="blockem-wrap-' . $rnd . '" class="fakelink" onclick=openClose(\'blockem-' . $rnd . '\'); >' . sprintf( t('Blocked %s - Click to open/close'),$word ) . '</div><div id="blockem-' . $rnd . '" style="display: none; " >' . $b['html'] . '</div>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -157,7 +155,7 @@ function blockem_conversation_start(&$a,&$b) {
|
||||||
if(! local_user())
|
if(! local_user())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
$words = PConfig::get(local_user(),'blockem','words');
|
$words = get_pconfig(local_user(),'blockem','words');
|
||||||
if($words) {
|
if($words) {
|
||||||
$a->data['blockem'] = explode(',',$words);
|
$a->data['blockem'] = explode(',',$words);
|
||||||
}
|
}
|
||||||
|
@ -209,7 +207,7 @@ function blockem_init(&$a) {
|
||||||
if(! local_user())
|
if(! local_user())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
$words = PConfig::get(local_user(),'blockem','words');
|
$words = get_pconfig(local_user(),'blockem','words');
|
||||||
|
|
||||||
if(array_key_exists('block',$_GET) && $_GET['block']) {
|
if(array_key_exists('block',$_GET) && $_GET['block']) {
|
||||||
if(strlen($words))
|
if(strlen($words))
|
||||||
|
@ -218,7 +216,7 @@ function blockem_init(&$a) {
|
||||||
}
|
}
|
||||||
if(array_key_exists('unblock',$_GET) && $_GET['unblock']) {
|
if(array_key_exists('unblock',$_GET) && $_GET['unblock']) {
|
||||||
$arr = explode(',',$words);
|
$arr = explode(',',$words);
|
||||||
$newarr = [];
|
$newarr = array();
|
||||||
|
|
||||||
if(count($arr)) {
|
if(count($arr)) {
|
||||||
foreach($arr as $x) {
|
foreach($arr as $x) {
|
||||||
|
@ -229,7 +227,7 @@ function blockem_init(&$a) {
|
||||||
$words = implode(',',$newarr);
|
$words = implode(',',$newarr);
|
||||||
}
|
}
|
||||||
|
|
||||||
PConfig::set(local_user(),'blockem','words',$words);
|
set_pconfig(local_user(),'blockem','words',$words);
|
||||||
info( t('blockem settings updated') . EOL );
|
info( t('blockem settings updated') . EOL );
|
||||||
killme();
|
killme();
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,176 +4,174 @@
|
||||||
* Name: Blogger Post Connector
|
* Name: Blogger Post Connector
|
||||||
* Description: Post to Blogger (or anything else which uses blogger XMLRPC API)
|
* Description: Post to Blogger (or anything else which uses blogger XMLRPC API)
|
||||||
* Version: 1.0
|
* Version: 1.0
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
use Friendica\Core\PConfig;
|
|
||||||
|
|
||||||
function blogger_install() {
|
function blogger_install() {
|
||||||
register_hook('post_local', 'addon/blogger/blogger.php', 'blogger_post_local');
|
register_hook('post_local', 'addon/blogger/blogger.php', 'blogger_post_local');
|
||||||
register_hook('notifier_normal', 'addon/blogger/blogger.php', 'blogger_send');
|
register_hook('notifier_normal', 'addon/blogger/blogger.php', 'blogger_send');
|
||||||
register_hook('jot_networks', 'addon/blogger/blogger.php', 'blogger_jot_nets');
|
register_hook('jot_networks', 'addon/blogger/blogger.php', 'blogger_jot_nets');
|
||||||
register_hook('connector_settings', 'addon/blogger/blogger.php', 'blogger_settings');
|
register_hook('connector_settings', 'addon/blogger/blogger.php', 'blogger_settings');
|
||||||
register_hook('connector_settings_post', 'addon/blogger/blogger.php', 'blogger_settings_post');
|
register_hook('connector_settings_post', 'addon/blogger/blogger.php', 'blogger_settings_post');
|
||||||
}
|
|
||||||
|
|
||||||
|
}
|
||||||
function blogger_uninstall() {
|
function blogger_uninstall() {
|
||||||
unregister_hook('post_local', 'addon/blogger/blogger.php', 'blogger_post_local');
|
unregister_hook('post_local', 'addon/blogger/blogger.php', 'blogger_post_local');
|
||||||
unregister_hook('notifier_normal', 'addon/blogger/blogger.php', 'blogger_send');
|
unregister_hook('notifier_normal', 'addon/blogger/blogger.php', 'blogger_send');
|
||||||
unregister_hook('jot_networks', 'addon/blogger/blogger.php', 'blogger_jot_nets');
|
unregister_hook('jot_networks', 'addon/blogger/blogger.php', 'blogger_jot_nets');
|
||||||
unregister_hook('connector_settings', 'addon/blogger/blogger.php', 'blogger_settings');
|
unregister_hook('connector_settings', 'addon/blogger/blogger.php', 'blogger_settings');
|
||||||
unregister_hook('connector_settings_post', 'addon/blogger/blogger.php', 'blogger_settings_post');
|
unregister_hook('connector_settings_post', 'addon/blogger/blogger.php', 'blogger_settings_post');
|
||||||
|
|
||||||
// obsolete - remove
|
// obsolete - remove
|
||||||
unregister_hook('post_local_end', 'addon/blogger/blogger.php', 'blogger_send');
|
unregister_hook('post_local_end', 'addon/blogger/blogger.php', 'blogger_send');
|
||||||
unregister_hook('plugin_settings', 'addon/blogger/blogger.php', 'blogger_settings');
|
unregister_hook('plugin_settings', 'addon/blogger/blogger.php', 'blogger_settings');
|
||||||
unregister_hook('plugin_settings_post', 'addon/blogger/blogger.php', 'blogger_settings_post');
|
unregister_hook('plugin_settings_post', 'addon/blogger/blogger.php', 'blogger_settings_post');
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function blogger_jot_nets(&$a,&$b) {
|
function blogger_jot_nets(&$a,&$b) {
|
||||||
if (!local_user()) {
|
if(! local_user())
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
$bl_post = PConfig::get(local_user(),'blogger','post');
|
$bl_post = get_pconfig(local_user(),'blogger','post');
|
||||||
if (intval($bl_post) == 1) {
|
if(intval($bl_post) == 1) {
|
||||||
$bl_defpost = PConfig::get(local_user(),'blogger','post_by_default');
|
$bl_defpost = get_pconfig(local_user(),'blogger','post_by_default');
|
||||||
$selected = ((intval($bl_defpost) == 1) ? ' checked="checked" ' : '');
|
$selected = ((intval($bl_defpost) == 1) ? ' checked="checked" ' : '');
|
||||||
$b .= '<div class="profile-jot-net"><input type="checkbox" name="blogger_enable" ' . $selected . ' value="1" /> '
|
$b .= '<div class="profile-jot-net"><input type="checkbox" name="blogger_enable" ' . $selected . ' value="1" /> '
|
||||||
. t('Post to blogger') . '</div>';
|
. t('Post to blogger') . '</div>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function blogger_settings(&$a,&$s) {
|
function blogger_settings(&$a,&$s) {
|
||||||
|
|
||||||
if (! local_user()) {
|
if(! local_user())
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
/* Add our stylesheet to the page so we can make our settings look nice */
|
/* Add our stylesheet to the page so we can make our settings look nice */
|
||||||
|
|
||||||
$a->page['htmlhead'] .= '<link rel="stylesheet" type="text/css" href="' . $a->get_baseurl() . '/addon/blogger/blogger.css' . '" media="all" />' . "\r\n";
|
$a->page['htmlhead'] .= '<link rel="stylesheet" type="text/css" href="' . $a->get_baseurl() . '/addon/blogger/blogger.css' . '" media="all" />' . "\r\n";
|
||||||
|
|
||||||
/* Get the current state of our config variables */
|
/* Get the current state of our config variables */
|
||||||
|
|
||||||
$enabled = PConfig::get(local_user(),'blogger','post');
|
$enabled = get_pconfig(local_user(),'blogger','post');
|
||||||
$checked = (($enabled) ? ' checked="checked" ' : '');
|
$checked = (($enabled) ? ' checked="checked" ' : '');
|
||||||
$css = (($enabled) ? '' : '-disabled');
|
$css = (($enabled) ? '' : '-disabled');
|
||||||
|
|
||||||
$def_enabled = PConfig::get(local_user(),'blogger','post_by_default');
|
$def_enabled = get_pconfig(local_user(),'blogger','post_by_default');
|
||||||
|
|
||||||
$def_checked = (($def_enabled) ? ' checked="checked" ' : '');
|
$def_checked = (($def_enabled) ? ' checked="checked" ' : '');
|
||||||
|
|
||||||
$bl_username = PConfig::get(local_user(), 'blogger', 'bl_username');
|
$bl_username = get_pconfig(local_user(), 'blogger', 'bl_username');
|
||||||
$bl_password = PConfig::get(local_user(), 'blogger', 'bl_password');
|
$bl_password = get_pconfig(local_user(), 'blogger', 'bl_password');
|
||||||
$bl_blog = PConfig::get(local_user(), 'blogger', 'bl_blog');
|
$bl_blog = get_pconfig(local_user(), 'blogger', 'bl_blog');
|
||||||
|
|
||||||
/* Add some HTML to the existing form */
|
|
||||||
$s .= '<span id="settings_blogger_inflated" class="settings-block fakelink" style="display: block;" onclick="openClose(\'settings_blogger_expanded\'); openClose(\'settings_blogger_inflated\');">';
|
|
||||||
$s .= '<img class="connector'.$css.'" src="images/blogger.png" /><h3 class="connector">'. t('Blogger Export').'</h3>';
|
|
||||||
$s .= '</span>';
|
|
||||||
$s .= '<div id="settings_blogger_expanded" class="settings-block" style="display: none;">';
|
|
||||||
$s .= '<span class="fakelink" onclick="openClose(\'settings_blogger_expanded\'); openClose(\'settings_blogger_inflated\');">';
|
|
||||||
$s .= '<img class="connector'.$css.'" src="images/blogger.png" /><h3 class="connector">'. t('Blogger Export').'</h3>';
|
|
||||||
$s .= '</span>';
|
|
||||||
|
|
||||||
$s .= '<div id="blogger-enable-wrapper">';
|
/* Add some HTML to the existing form */
|
||||||
$s .= '<label id="blogger-enable-label" for="blogger-checkbox">' . t('Enable Blogger Post Plugin') . '</label>';
|
|
||||||
$s .= '<input id="blogger-checkbox" type="checkbox" name="blogger" value="1" ' . $checked . '/>';
|
|
||||||
$s .= '</div><div class="clear"></div>';
|
|
||||||
|
|
||||||
$s .= '<div id="blogger-username-wrapper">';
|
$s .= '<span id="settings_blogger_inflated" class="settings-block fakelink" style="display: block;" onclick="openClose(\'settings_blogger_expanded\'); openClose(\'settings_blogger_inflated\');">';
|
||||||
$s .= '<label id="blogger-username-label" for="blogger-username">' . t('Blogger username') . '</label>';
|
$s .= '<img class="connector'.$css.'" src="images/blogger.png" /><h3 class="connector">'. t('Blogger Export').'</h3>';
|
||||||
$s .= '<input id="blogger-username" type="text" name="bl_username" value="' . $bl_username . '" />';
|
$s .= '</span>';
|
||||||
$s .= '</div><div class="clear"></div>';
|
$s .= '<div id="settings_blogger_expanded" class="settings-block" style="display: none;">';
|
||||||
|
$s .= '<span class="fakelink" onclick="openClose(\'settings_blogger_expanded\'); openClose(\'settings_blogger_inflated\');">';
|
||||||
|
$s .= '<img class="connector'.$css.'" src="images/blogger.png" /><h3 class="connector">'. t('Blogger Export').'</h3>';
|
||||||
|
$s .= '</span>';
|
||||||
|
|
||||||
$s .= '<div id="blogger-password-wrapper">';
|
$s .= '<div id="blogger-enable-wrapper">';
|
||||||
$s .= '<label id="blogger-password-label" for="blogger-password">' . t('Blogger password') . '</label>';
|
$s .= '<label id="blogger-enable-label" for="blogger-checkbox">' . t('Enable Blogger Post Plugin') . '</label>';
|
||||||
$s .= '<input id="blogger-password" type="password" name="bl_password" value="' . $bl_password . '" />';
|
$s .= '<input id="blogger-checkbox" type="checkbox" name="blogger" value="1" ' . $checked . '/>';
|
||||||
$s .= '</div><div class="clear"></div>';
|
$s .= '</div><div class="clear"></div>';
|
||||||
|
|
||||||
$s .= '<div id="blogger-blog-wrapper">';
|
$s .= '<div id="blogger-username-wrapper">';
|
||||||
$s .= '<label id="blogger-blog-label" for="blogger-blog">' . t('Blogger API URL') . '</label>';
|
$s .= '<label id="blogger-username-label" for="blogger-username">' . t('Blogger username') . '</label>';
|
||||||
$s .= '<input id="blogger-blog" type="text" name="bl_blog" value="' . $bl_blog . '" />';
|
$s .= '<input id="blogger-username" type="text" name="bl_username" value="' . $bl_username . '" />';
|
||||||
$s .= '</div><div class="clear"></div>';
|
$s .= '</div><div class="clear"></div>';
|
||||||
|
|
||||||
$s .= '<div id="blogger-bydefault-wrapper">';
|
$s .= '<div id="blogger-password-wrapper">';
|
||||||
$s .= '<label id="blogger-bydefault-label" for="blogger-bydefault">' . t('Post to Blogger by default') . '</label>';
|
$s .= '<label id="blogger-password-label" for="blogger-password">' . t('Blogger password') . '</label>';
|
||||||
$s .= '<input id="blogger-bydefault" type="checkbox" name="bl_bydefault" value="1" ' . $def_checked . '/>';
|
$s .= '<input id="blogger-password" type="password" name="bl_password" value="' . $bl_password . '" />';
|
||||||
$s .= '</div><div class="clear"></div>';
|
$s .= '</div><div class="clear"></div>';
|
||||||
|
|
||||||
|
$s .= '<div id="blogger-blog-wrapper">';
|
||||||
|
$s .= '<label id="blogger-blog-label" for="blogger-blog">' . t('Blogger API URL') . '</label>';
|
||||||
|
$s .= '<input id="blogger-blog" type="text" name="bl_blog" value="' . $bl_blog . '" />';
|
||||||
|
$s .= '</div><div class="clear"></div>';
|
||||||
|
|
||||||
|
$s .= '<div id="blogger-bydefault-wrapper">';
|
||||||
|
$s .= '<label id="blogger-bydefault-label" for="blogger-bydefault">' . t('Post to Blogger by default') . '</label>';
|
||||||
|
$s .= '<input id="blogger-bydefault" type="checkbox" name="bl_bydefault" value="1" ' . $def_checked . '/>';
|
||||||
|
$s .= '</div><div class="clear"></div>';
|
||||||
|
|
||||||
|
/* provide a submit button */
|
||||||
|
|
||||||
|
$s .= '<div class="settings-submit-wrapper" ><input type="submit" id="blogger-submit" name="blogger-submit" class="settings-submit" value="' . t('Save Settings') . '" /></div></div>';
|
||||||
|
|
||||||
/* provide a submit button */
|
|
||||||
$s .= '<div class="settings-submit-wrapper" ><input type="submit" id="blogger-submit" name="blogger-submit" class="settings-submit" value="' . t('Save Settings') . '" /></div></div>';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function blogger_settings_post(&$a,&$b) {
|
function blogger_settings_post(&$a,&$b) {
|
||||||
if (x($_POST,'blogger-submit')) {
|
|
||||||
PConfig::set(local_user(),'blogger','post',intval($_POST['blogger']));
|
if(x($_POST,'blogger-submit')) {
|
||||||
PConfig::set(local_user(),'blogger','post_by_default',intval($_POST['bl_bydefault']));
|
|
||||||
PConfig::set(local_user(),'blogger','bl_username',trim($_POST['bl_username']));
|
set_pconfig(local_user(),'blogger','post',intval($_POST['blogger']));
|
||||||
PConfig::set(local_user(),'blogger','bl_password',trim($_POST['bl_password']));
|
set_pconfig(local_user(),'blogger','post_by_default',intval($_POST['bl_bydefault']));
|
||||||
PConfig::set(local_user(),'blogger','bl_blog',trim($_POST['bl_blog']));
|
set_pconfig(local_user(),'blogger','bl_username',trim($_POST['bl_username']));
|
||||||
|
set_pconfig(local_user(),'blogger','bl_password',trim($_POST['bl_password']));
|
||||||
|
set_pconfig(local_user(),'blogger','bl_blog',trim($_POST['bl_blog']));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function blogger_post_local(&$a,&$b) {
|
function blogger_post_local(&$a,&$b) {
|
||||||
|
|
||||||
// This can probably be changed to allow editing by pointing to a different API endpoint
|
// This can probably be changed to allow editing by pointing to a different API endpoint
|
||||||
|
|
||||||
if ($b['edit']) {
|
if($b['edit'])
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
if (!local_user() || (local_user() != $b['uid'])) {
|
if((! local_user()) || (local_user() != $b['uid']))
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
if ($b['private'] || $b['parent']) {
|
if($b['private'] || $b['parent'])
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
$bl_post = intval(PConfig::get(local_user(),'blogger','post'));
|
$bl_post = intval(get_pconfig(local_user(),'blogger','post'));
|
||||||
|
|
||||||
$bl_enable = (($bl_post && x($_REQUEST,'blogger_enable')) ? intval($_REQUEST['blogger_enable']) : 0);
|
$bl_enable = (($bl_post && x($_REQUEST,'blogger_enable')) ? intval($_REQUEST['blogger_enable']) : 0);
|
||||||
|
|
||||||
if ($b['api_source'] && intval(PConfig::get(local_user(),'blogger','post_by_default'))) {
|
if($b['api_source'] && intval(get_pconfig(local_user(),'blogger','post_by_default')))
|
||||||
$bl_enable = 1;
|
$bl_enable = 1;
|
||||||
}
|
|
||||||
|
|
||||||
if (!$bl_enable) {
|
if(! $bl_enable)
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
if (strlen($b['postopts'])) {
|
if(strlen($b['postopts']))
|
||||||
$b['postopts'] .= ',';
|
$b['postopts'] .= ',';
|
||||||
}
|
$b['postopts'] .= 'blogger';
|
||||||
|
|
||||||
$b['postopts'] .= 'blogger';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function blogger_send(&$a,&$b) {
|
function blogger_send(&$a,&$b) {
|
||||||
if ($b['deleted'] || $b['private'] || ($b['created'] !== $b['edited'])) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (! strstr($b['postopts'],'blogger')) {
|
if($b['deleted'] || $b['private'] || ($b['created'] !== $b['edited']))
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
if ($b['parent'] != $b['id']) {
|
if(! strstr($b['postopts'],'blogger'))
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
$bl_username = xmlify(PConfig::get($b['uid'],'blogger','bl_username'));
|
if($b['parent'] != $b['id'])
|
||||||
$bl_password = xmlify(PConfig::get($b['uid'],'blogger','bl_password'));
|
return;
|
||||||
$bl_blog = PConfig::get($b['uid'],'blogger','bl_blog');
|
|
||||||
|
|
||||||
if ($bl_username && $bl_password && $bl_blog) {
|
|
||||||
|
$bl_username = xmlify(get_pconfig($b['uid'],'blogger','bl_username'));
|
||||||
|
$bl_password = xmlify(get_pconfig($b['uid'],'blogger','bl_password'));
|
||||||
|
$bl_blog = get_pconfig($b['uid'],'blogger','bl_blog');
|
||||||
|
|
||||||
|
if($bl_username && $bl_password && $bl_blog) {
|
||||||
|
|
||||||
require_once('include/bbcode.php');
|
require_once('include/bbcode.php');
|
||||||
|
|
||||||
|
@ -199,10 +197,10 @@ EOT;
|
||||||
|
|
||||||
logger('blogger: data: ' . $xml, LOGGER_DATA);
|
logger('blogger: data: ' . $xml, LOGGER_DATA);
|
||||||
|
|
||||||
if ($bl_blog !== 'test') {
|
if($bl_blog !== 'test')
|
||||||
$x = post_url($bl_blog,$xml);
|
$x = post_url($bl_blog,$xml);
|
||||||
}
|
|
||||||
|
|
||||||
logger('posted to blogger: ' . (($x) ? $x : ''), LOGGER_DEBUG);
|
logger('posted to blogger: ' . (($x) ? $x : ''), LOGGER_DEBUG);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,11 +5,7 @@
|
||||||
* Version: 0.2
|
* Version: 0.2
|
||||||
* Author: Michael Vogel <http://pirati.ca/profile/heluecht>
|
* Author: Michael Vogel <http://pirati.ca/profile/heluecht>
|
||||||
*/
|
*/
|
||||||
require 'addon/buffer/bufferapp.php';
|
require('addon/buffer/bufferapp.php');
|
||||||
|
|
||||||
use Friendica\App;
|
|
||||||
use Friendica\Core\Config;
|
|
||||||
use Friendica\Core\PConfig;
|
|
||||||
|
|
||||||
function buffer_install() {
|
function buffer_install() {
|
||||||
register_hook('post_local', 'addon/buffer/buffer.php', 'buffer_post_local');
|
register_hook('post_local', 'addon/buffer/buffer.php', 'buffer_post_local');
|
||||||
|
@ -57,18 +53,18 @@ function buffer_content(&$a) {
|
||||||
function buffer_plugin_admin(&$a, &$o){
|
function buffer_plugin_admin(&$a, &$o){
|
||||||
$t = get_markup_template( "admin.tpl", "addon/buffer/" );
|
$t = get_markup_template( "admin.tpl", "addon/buffer/" );
|
||||||
|
|
||||||
$o = replace_macros($t, [
|
$o = replace_macros($t, array(
|
||||||
'$submit' => t('Save Settings'),
|
'$submit' => t('Save Settings'),
|
||||||
// name, label, value, help, [extra values]
|
// name, label, value, help, [extra values]
|
||||||
'$client_id' => ['client_id', t('Client ID'), Config::get('buffer', 'client_id' ), ''],
|
'$client_id' => array('client_id', t('Client ID'), get_config('buffer', 'client_id' ), ''),
|
||||||
'$client_secret' => ['client_secret', t('Client Secret'), Config::get('buffer', 'client_secret' ), ''],
|
'$client_secret' => array('client_secret', t('Client Secret'), get_config('buffer', 'client_secret' ), ''),
|
||||||
]);
|
));
|
||||||
}
|
}
|
||||||
function buffer_plugin_admin_post(&$a){
|
function buffer_plugin_admin_post(&$a){
|
||||||
$client_id = ((x($_POST,'client_id')) ? notags(trim($_POST['client_id'])) : '');
|
$client_id = ((x($_POST,'client_id')) ? notags(trim($_POST['client_id'])) : '');
|
||||||
$client_secret = ((x($_POST,'client_secret')) ? notags(trim($_POST['client_secret'])): '');
|
$client_secret = ((x($_POST,'client_secret')) ? notags(trim($_POST['client_secret'])): '');
|
||||||
Config::set('buffer','client_id',$client_id);
|
set_config('buffer','client_id',$client_id);
|
||||||
Config::set('buffer','client_secret',$client_secret);
|
set_config('buffer','client_secret',$client_secret);
|
||||||
info( t('Settings updated.'). EOL );
|
info( t('Settings updated.'). EOL );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -82,8 +78,8 @@ function buffer_connect(&$a) {
|
||||||
session_start();
|
session_start();
|
||||||
|
|
||||||
// Define the needed keys
|
// Define the needed keys
|
||||||
$client_id = Config::get('buffer','client_id');
|
$client_id = get_config('buffer','client_id');
|
||||||
$client_secret = Config::get('buffer','client_secret');
|
$client_secret = get_config('buffer','client_secret');
|
||||||
|
|
||||||
// The callback URL is the script that gets called after the user authenticates with buffer
|
// The callback URL is the script that gets called after the user authenticates with buffer
|
||||||
$callback_url = $a->get_baseurl()."/buffer/connect";
|
$callback_url = $a->get_baseurl()."/buffer/connect";
|
||||||
|
@ -96,7 +92,7 @@ function buffer_connect(&$a) {
|
||||||
logger("buffer_connect: authenticated");
|
logger("buffer_connect: authenticated");
|
||||||
$o .= t("You are now authenticated to buffer. ");
|
$o .= t("You are now authenticated to buffer. ");
|
||||||
$o .= '<br /><a href="'.$a->get_baseurl().'/settings/connectors">'.t("return to the connector page").'</a>';
|
$o .= '<br /><a href="'.$a->get_baseurl().'/settings/connectors">'.t("return to the connector page").'</a>';
|
||||||
PConfig::set(local_user(), 'buffer','access_token', $buffer->access_token);
|
set_pconfig(local_user(), 'buffer','access_token', $buffer->access_token);
|
||||||
}
|
}
|
||||||
|
|
||||||
return($o);
|
return($o);
|
||||||
|
@ -106,9 +102,9 @@ function buffer_jot_nets(&$a,&$b) {
|
||||||
if(! local_user())
|
if(! local_user())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
$buffer_post = PConfig::get(local_user(),'buffer','post');
|
$buffer_post = get_pconfig(local_user(),'buffer','post');
|
||||||
if(intval($buffer_post) == 1) {
|
if(intval($buffer_post) == 1) {
|
||||||
$buffer_defpost = PConfig::get(local_user(),'buffer','post_by_default');
|
$buffer_defpost = get_pconfig(local_user(),'buffer','post_by_default');
|
||||||
$selected = ((intval($buffer_defpost) == 1) ? ' checked="checked" ' : '');
|
$selected = ((intval($buffer_defpost) == 1) ? ' checked="checked" ' : '');
|
||||||
$b .= '<div class="profile-jot-net"><input type="checkbox" name="buffer_enable"' . $selected . ' value="1" /> '
|
$b .= '<div class="profile-jot-net"><input type="checkbox" name="buffer_enable"' . $selected . ' value="1" /> '
|
||||||
. t('Post to Buffer') . '</div>';
|
. t('Post to Buffer') . '</div>';
|
||||||
|
@ -126,11 +122,11 @@ function buffer_settings(&$a,&$s) {
|
||||||
|
|
||||||
/* Get the current state of our config variables */
|
/* Get the current state of our config variables */
|
||||||
|
|
||||||
$enabled = PConfig::get(local_user(),'buffer','post');
|
$enabled = get_pconfig(local_user(),'buffer','post');
|
||||||
$checked = (($enabled) ? ' checked="checked" ' : '');
|
$checked = (($enabled) ? ' checked="checked" ' : '');
|
||||||
$css = (($enabled) ? '' : '-disabled');
|
$css = (($enabled) ? '' : '-disabled');
|
||||||
|
|
||||||
$def_enabled = PConfig::get(local_user(),'buffer','post_by_default');
|
$def_enabled = get_pconfig(local_user(),'buffer','post_by_default');
|
||||||
$def_checked = (($def_enabled) ? ' checked="checked" ' : '');
|
$def_checked = (($def_enabled) ? ' checked="checked" ' : '');
|
||||||
|
|
||||||
/* Add some HTML to the existing form */
|
/* Add some HTML to the existing form */
|
||||||
|
@ -143,9 +139,9 @@ function buffer_settings(&$a,&$s) {
|
||||||
$s .= '<img class="connector'.$css.'" src="images/buffer.png" /><h3 class="connector">'. t('Buffer Export').'</h3>';
|
$s .= '<img class="connector'.$css.'" src="images/buffer.png" /><h3 class="connector">'. t('Buffer Export').'</h3>';
|
||||||
$s .= '</span>';
|
$s .= '</span>';
|
||||||
|
|
||||||
$client_id = Config::get("buffer", "client_id");
|
$client_id = get_config("buffer", "client_id");
|
||||||
$client_secret = Config::get("buffer", "client_secret");
|
$client_secret = get_config("buffer", "client_secret");
|
||||||
$access_token = PConfig::get(local_user(), "buffer", "access_token");
|
$access_token = get_pconfig(local_user(), "buffer", "access_token");
|
||||||
|
|
||||||
$s .= '<div id="buffer-password-wrapper">';
|
$s .= '<div id="buffer-password-wrapper">';
|
||||||
if ($access_token == "") {
|
if ($access_token == "") {
|
||||||
|
@ -202,12 +198,12 @@ function buffer_settings_post(&$a,&$b) {
|
||||||
|
|
||||||
if(x($_POST,'buffer-submit')) {
|
if(x($_POST,'buffer-submit')) {
|
||||||
if(x($_POST,'buffer_delete')) {
|
if(x($_POST,'buffer_delete')) {
|
||||||
PConfig::set(local_user(),'buffer','access_token','');
|
set_pconfig(local_user(),'buffer','access_token','');
|
||||||
PConfig::set(local_user(),'buffer','post',false);
|
set_pconfig(local_user(),'buffer','post',false);
|
||||||
PConfig::set(local_user(),'buffer','post_by_default',false);
|
set_pconfig(local_user(),'buffer','post_by_default',false);
|
||||||
} else {
|
} else {
|
||||||
PConfig::set(local_user(),'buffer','post',intval($_POST['buffer']));
|
set_pconfig(local_user(),'buffer','post',intval($_POST['buffer']));
|
||||||
PConfig::set(local_user(),'buffer','post_by_default',intval($_POST['buffer_bydefault']));
|
set_pconfig(local_user(),'buffer','post_by_default',intval($_POST['buffer_bydefault']));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -218,11 +214,11 @@ function buffer_post_local(&$a,&$b) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$buffer_post = intval(PConfig::get(local_user(),'buffer','post'));
|
$buffer_post = intval(get_pconfig(local_user(),'buffer','post'));
|
||||||
|
|
||||||
$buffer_enable = (($buffer_post && x($_REQUEST,'buffer_enable')) ? intval($_REQUEST['buffer_enable']) : 0);
|
$buffer_enable = (($buffer_post && x($_REQUEST,'buffer_enable')) ? intval($_REQUEST['buffer_enable']) : 0);
|
||||||
|
|
||||||
if ($b['api_source'] && intval(PConfig::get(local_user(),'buffer','post_by_default'))) {
|
if ($b['api_source'] && intval(get_pconfig(local_user(),'buffer','post_by_default'))) {
|
||||||
$buffer_enable = 1;
|
$buffer_enable = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -237,34 +233,24 @@ function buffer_post_local(&$a,&$b) {
|
||||||
$b['postopts'] .= 'buffer';
|
$b['postopts'] .= 'buffer';
|
||||||
}
|
}
|
||||||
|
|
||||||
function buffer_send(App $a, &$b)
|
function buffer_send(&$a,&$b) {
|
||||||
{
|
|
||||||
if($b['deleted'] || $b['private'] || ($b['created'] !== $b['edited'])) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(! strstr($b['postopts'],'buffer')) {
|
if($b['deleted'] || $b['private'] || ($b['created'] !== $b['edited']))
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
if($b['parent'] != $b['id']) {
|
if(! strstr($b['postopts'],'buffer'))
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
// Dont't post if the post doesn't belong to us.
|
if($b['parent'] != $b['id'])
|
||||||
// This is a check for forum postings
|
|
||||||
$self = dba::selectFirst('contact', ['id'], ['uid' => $b['uid'], 'self' => true]);
|
|
||||||
if ($b['contact-id'] != $self['id']) {
|
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
// if post comes from buffer don't send it back
|
// if post comes from buffer don't send it back
|
||||||
//if($b['app'] == "Buffer")
|
//if($b['app'] == "Buffer")
|
||||||
// return;
|
// return;
|
||||||
|
|
||||||
$client_id = Config::get("buffer", "client_id");
|
$client_id = get_config("buffer", "client_id");
|
||||||
$client_secret = Config::get("buffer", "client_secret");
|
$client_secret = get_config("buffer", "client_secret");
|
||||||
$access_token = PConfig::get($b['uid'], "buffer","access_token");
|
$access_token = get_pconfig($b['uid'], "buffer","access_token");
|
||||||
|
|
||||||
if($access_token) {
|
if($access_token) {
|
||||||
$buffer = new BufferApp($client_id, $client_secret, $callback_url, $access_token);
|
$buffer = new BufferApp($client_id, $client_secret, $callback_url, $access_token);
|
||||||
|
@ -306,7 +292,7 @@ function buffer_send(App $a, &$b)
|
||||||
break;
|
break;
|
||||||
case 'twitter':
|
case 'twitter':
|
||||||
$send = ($b["extid"] != NETWORK_TWITTER);
|
$send = ($b["extid"] != NETWORK_TWITTER);
|
||||||
$limit = 280;
|
$limit = 140;
|
||||||
$markup = false;
|
$markup = false;
|
||||||
$includedlinks = true;
|
$includedlinks = true;
|
||||||
$htmlmode = 8;
|
$htmlmode = 8;
|
||||||
|
@ -335,7 +321,7 @@ function buffer_send(App $a, &$b)
|
||||||
$item["body"] = preg_replace("(\[s\](.*?)\[\/s\])ism",'-$1-',$item["body"]);
|
$item["body"] = preg_replace("(\[s\](.*?)\[\/s\])ism",'-$1-',$item["body"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
$post = plaintext($item, $limit, $includedlinks, $htmlmode);
|
$post = plaintext($a, $item, $limit, $includedlinks, $htmlmode);
|
||||||
logger("buffer_send: converted message ".$b["id"]." result: ".print_r($post, true), LOGGER_DEBUG);
|
logger("buffer_send: converted message ".$b["id"]." result: ".print_r($post, true), LOGGER_DEBUG);
|
||||||
|
|
||||||
// The image proxy is used as a sanitizer. Buffer seems to be really picky about pictures
|
// The image proxy is used as a sanitizer. Buffer seems to be really picky about pictures
|
||||||
|
@ -369,7 +355,7 @@ function buffer_send(App $a, &$b)
|
||||||
elseif ($profile->service == "google")
|
elseif ($profile->service == "google")
|
||||||
$post["text"] .= html_entity_decode(" ", ENT_QUOTES, 'UTF-8'); // Send a special blank to identify the post through the "fromgplus" addon
|
$post["text"] .= html_entity_decode(" ", ENT_QUOTES, 'UTF-8'); // Send a special blank to identify the post through the "fromgplus" addon
|
||||||
|
|
||||||
$message = [];
|
$message = array();
|
||||||
$message["text"] = $post["text"];
|
$message["text"] = $post["text"];
|
||||||
$message["profile_ids[]"] = $profile->id;
|
$message["profile_ids[]"] = $profile->id;
|
||||||
$message["shorten"] = false;
|
$message["shorten"] = false;
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
|
|
||||||
public $ok = false;
|
public $ok = false;
|
||||||
|
|
||||||
private $endpoints = [
|
private $endpoints = array(
|
||||||
'/user' => 'get',
|
'/user' => 'get',
|
||||||
|
|
||||||
'/profiles' => 'get',
|
'/profiles' => 'get',
|
||||||
|
@ -37,9 +37,9 @@
|
||||||
|
|
||||||
'/info/configuration' => 'get',
|
'/info/configuration' => 'get',
|
||||||
|
|
||||||
];
|
);
|
||||||
|
|
||||||
public $errors = [
|
public $errors = array(
|
||||||
'invalid-endpoint' => 'The endpoint you supplied does not appear to be valid.',
|
'invalid-endpoint' => 'The endpoint you supplied does not appear to be valid.',
|
||||||
|
|
||||||
'403' => 'Permission denied.',
|
'403' => 'Permission denied.',
|
||||||
|
@ -77,7 +77,7 @@
|
||||||
'1042' => 'User did not save successfully.',
|
'1042' => 'User did not save successfully.',
|
||||||
'1050' => 'Client could not be found.',
|
'1050' => 'Client could not be found.',
|
||||||
'1051' => 'No authorization to access client.',
|
'1051' => 'No authorization to access client.',
|
||||||
];
|
);
|
||||||
|
|
||||||
function __construct($client_id = '', $client_secret = '', $callback_url = '', $access_token = '') {
|
function __construct($client_id = '', $client_secret = '', $callback_url = '', $access_token = '') {
|
||||||
if ($client_id) $this->set_client_id($client_id);
|
if ($client_id) $this->set_client_id($client_id);
|
||||||
|
@ -110,7 +110,7 @@
|
||||||
if (!$ok) return $this->error('invalid-endpoint');
|
if (!$ok) return $this->error('invalid-endpoint');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$data || !is_array($data)) $data = [];
|
if (!$data || !is_array($data)) $data = array();
|
||||||
$data['access_token'] = $this->access_token;
|
$data['access_token'] = $this->access_token;
|
||||||
|
|
||||||
$method = $this->endpoints[$done_endpoint]; //get() or post()
|
$method = $this->endpoints[$done_endpoint]; //get() or post()
|
||||||
|
@ -130,17 +130,17 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
function error($error) {
|
function error($error) {
|
||||||
return (object) ['error' => $this->errors[$error]];
|
return (object) array('error' => $this->errors[$error]);
|
||||||
}
|
}
|
||||||
|
|
||||||
function create_access_token_url() {
|
function create_access_token_url() {
|
||||||
$data = [
|
$data = array(
|
||||||
'code' => $this->code,
|
'code' => $this->code,
|
||||||
'grant_type' => 'authorization_code',
|
'grant_type' => 'authorization_code',
|
||||||
'client_id' => $this->client_id,
|
'client_id' => $this->client_id,
|
||||||
'client_secret' => $this->client_secret,
|
'client_secret' => $this->client_secret,
|
||||||
'redirect_uri' => $this->callback_url,
|
'redirect_uri' => $this->callback_url,
|
||||||
];
|
);
|
||||||
|
|
||||||
$obj = $this->post($this->access_token_url, $data);
|
$obj = $this->post($this->access_token_url, $data);
|
||||||
$this->access_token = $obj->access_token;
|
$this->access_token = $obj->access_token;
|
||||||
|
@ -150,15 +150,15 @@
|
||||||
|
|
||||||
function req($url = '', $data = '', $post = true) {
|
function req($url = '', $data = '', $post = true) {
|
||||||
if (!$url) return false;
|
if (!$url) return false;
|
||||||
if (!$data || !is_array($data)) $data = [];
|
if (!$data || !is_array($data)) $data = array();
|
||||||
|
|
||||||
$options = [CURLOPT_RETURNTRANSFER => true, CURLOPT_HEADER => false];
|
$options = array(CURLOPT_RETURNTRANSFER => true, CURLOPT_HEADER => false);
|
||||||
|
|
||||||
if ($post) {
|
if ($post) {
|
||||||
$options += [
|
$options += array(
|
||||||
CURLOPT_POST => $post,
|
CURLOPT_POST => $post,
|
||||||
CURLOPT_POSTFIELDS => $data
|
CURLOPT_POSTFIELDS => $data
|
||||||
];
|
);
|
||||||
} else {
|
} else {
|
||||||
$url .= '?' . http_build_query($data);
|
$url .= '?' . http_build_query($data);
|
||||||
}
|
}
|
||||||
|
|
19
cal/LICENSE
Normal file
19
cal/LICENSE
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
Copyright (c) 2013 Tobias Diekershoff
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
29
cal/README.md
Normal file
29
cal/README.md
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
Calendar Export
|
||||||
|
===============
|
||||||
|
|
||||||
|
This addon makes it possible to export the events posted by your users,
|
||||||
|
so they can be imported into other calendar applications.
|
||||||
|
|
||||||
|
Exporting a calendar is an _opt-in_ feature which has to be activated by each
|
||||||
|
of the users in the _addon settings_. As the admin you can only provide the
|
||||||
|
service but should not force it upon your users.
|
||||||
|
|
||||||
|
The calendars are exported at
|
||||||
|
|
||||||
|
http://example.com/cal/username/export/format
|
||||||
|
|
||||||
|
currently the following formats are supported
|
||||||
|
|
||||||
|
* ical
|
||||||
|
* csv.
|
||||||
|
|
||||||
|
Author
|
||||||
|
------
|
||||||
|
|
||||||
|
This addon is developed by [Tobias Diekershoff](https://f.diekershoff.de/profile/tobias).
|
||||||
|
|
||||||
|
License
|
||||||
|
-------
|
||||||
|
|
||||||
|
This addon is licensed under the [MIT](http://opensource.org/licenses/MIT)
|
||||||
|
license, see also the LICENSE file in the addon directory.
|
200
cal/cal.php
Normal file
200
cal/cal.php
Normal file
|
@ -0,0 +1,200 @@
|
||||||
|
<?php
|
||||||
|
/********************************************************************
|
||||||
|
* Name: Calendar Export
|
||||||
|
* Description: This addon exports the public events of your users as calendar files
|
||||||
|
* Version: 0.1
|
||||||
|
* Author: Tobias Diekershoff <https://f.diekershoff.de/profile/tobias>
|
||||||
|
* License: MIT
|
||||||
|
* Status: Unsupported
|
||||||
|
* ******************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
function cal_install()
|
||||||
|
{
|
||||||
|
register_hook('plugin_settings', 'addon/cal/cal.php', 'cal_addon_settings');
|
||||||
|
register_hook('plugin_settings_post', 'addon/cal/cal.php', 'cal_addon_settings_post');
|
||||||
|
}
|
||||||
|
function cal_uninstall()
|
||||||
|
{
|
||||||
|
unregister_hook('plugin_settings', 'addon/cal/cal.php', 'cal_addon_settings');
|
||||||
|
unregister_hook('plugin_settings_post', 'addon/cal/cal.php', 'cal_addon_settings_post');
|
||||||
|
}
|
||||||
|
function cal_module()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
/* pathes
|
||||||
|
* /cal/$user/export/$format
|
||||||
|
* currently supported formats are ical (iCalendar) and CSV
|
||||||
|
*/
|
||||||
|
function cal_content()
|
||||||
|
{
|
||||||
|
$a = get_app();
|
||||||
|
$o = "";
|
||||||
|
if ($a->argc == 1) {
|
||||||
|
$o .= "<h3>".t('Event Export')."</h3><p>".t('You can download public events from: ').$a->get_baseurl()."/cal/username/export/ical</p>";
|
||||||
|
} elseif ($a->argc==4) {
|
||||||
|
// get the parameters from the request we just received
|
||||||
|
$username = $a->argv[1];
|
||||||
|
$do = $a->argv[2];
|
||||||
|
$format = $a->argv[3];
|
||||||
|
// check that there is a user matching the requested profile
|
||||||
|
$r = q("SELECT uid FROM user WHERE nickname='".$username."' LIMIT 1;");
|
||||||
|
if (count($r))
|
||||||
|
{
|
||||||
|
$uid = $r[0]['uid'];
|
||||||
|
} else {
|
||||||
|
killme();
|
||||||
|
}
|
||||||
|
// if we shall do anything other then export, end here
|
||||||
|
if (! $do == 'export' )
|
||||||
|
killme();
|
||||||
|
// check if the user allows us to share the profile
|
||||||
|
$enable = get_pconfig( $uid, 'cal', 'enable');
|
||||||
|
if (! $enable == 1) {
|
||||||
|
info(t('The user does not export the calendar.'));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// we are allowed to show events
|
||||||
|
// get the timezone the user is in
|
||||||
|
$r = q("SELECT timezone FROM user WHERE uid=".$uid." LIMIT 1;");
|
||||||
|
if (count($r))
|
||||||
|
$timezone = $r[0]['timezone'];
|
||||||
|
// does the user who requests happen to be the owner of the events
|
||||||
|
// requested? then show all of your events, otherwise only those that
|
||||||
|
// don't have limitations set in allow_cid and allow_gid
|
||||||
|
if (local_user() == $uid) {
|
||||||
|
$r = q("SELECT `start`, `finish`, `adjust`, `summary`, `desc`, `location` FROM `event` WHERE `uid`=".$uid." and `cid`=0;");
|
||||||
|
} else {
|
||||||
|
$r = q("SELECT `start`, `finish`, `adjust`, `summary`, `desc`, `location` FROM `event` WHERE `allow_cid`='' and `allow_gid`='' and `uid`='".$uid."' and `cid`='0';");
|
||||||
|
}
|
||||||
|
// we have the events that are available for the requestor
|
||||||
|
// now format the output according to the requested format
|
||||||
|
$res = cal_format_output($r, $format, $timezone);
|
||||||
|
if (! $res=='')
|
||||||
|
info($res);
|
||||||
|
} else {
|
||||||
|
// wrong number of parameters
|
||||||
|
killme();
|
||||||
|
}
|
||||||
|
return $o;
|
||||||
|
}
|
||||||
|
|
||||||
|
function cal_format_output ($r, $f, $tz)
|
||||||
|
{
|
||||||
|
$res = t('This calendar format is not supported');
|
||||||
|
switch ($f)
|
||||||
|
{
|
||||||
|
// format the exported data as a CSV file
|
||||||
|
case "csv":
|
||||||
|
header("Content-type: text/csv");
|
||||||
|
$o = '"Subject", "Start Date", "Start Time", "Description", "End Date", "End Time", "Location"' . PHP_EOL;
|
||||||
|
foreach ($r as $rr) {
|
||||||
|
// TODO the time / date entries don't include any information about the
|
||||||
|
// timezone the event is scheduled in :-/
|
||||||
|
$tmp1 = strtotime($rr['start']);
|
||||||
|
$tmp2 = strtotime($rr['finish']);
|
||||||
|
$time_format = "%H:%M:%S";
|
||||||
|
$date_format = "%Y-%m-%d";
|
||||||
|
$o .= '"'.$rr['summary'].'", "'.strftime($date_format, $tmp1) .
|
||||||
|
'", "'.strftime($time_format, $tmp1).'", "'.$rr['desc'] .
|
||||||
|
'", "'.strftime($date_format, $tmp2) .
|
||||||
|
'", "'.strftime($time_format, $tmp2) .
|
||||||
|
'", "'.$rr['location'].'"' . PHP_EOL;
|
||||||
|
}
|
||||||
|
echo $o;
|
||||||
|
killme();
|
||||||
|
|
||||||
|
case "ical":
|
||||||
|
header("Content-type: text/ics");
|
||||||
|
$o = 'BEGIN:VCALENDAR'. PHP_EOL
|
||||||
|
. 'VERSION:2.0' . PHP_EOL
|
||||||
|
. 'PRODID:-//friendica calendar export//0.1//EN' . PHP_EOL;
|
||||||
|
// TODO include timezone informations in cases were the time is not in UTC
|
||||||
|
// see http://tools.ietf.org/html/rfc2445#section-4.8.3
|
||||||
|
// . 'BEGIN:VTIMEZONE' . PHP_EOL
|
||||||
|
// . 'TZID:' . $tz . PHP_EOL
|
||||||
|
// . 'END:VTIMEZONE' . PHP_EOL;
|
||||||
|
// TODO instead of PHP_EOL CRLF should be used for long entries
|
||||||
|
// but test your solution against http://icalvalid.cloudapp.net/
|
||||||
|
// also long lines SHOULD be split at 75 characters length
|
||||||
|
foreach ($r as $rr) {
|
||||||
|
if ($rr['adjust'] == 1) {
|
||||||
|
$UTC = 'Z';
|
||||||
|
} else {
|
||||||
|
$UTC = '';
|
||||||
|
}
|
||||||
|
$o .= 'BEGIN:VEVENT' . PHP_EOL;
|
||||||
|
if ($rr[start]) {
|
||||||
|
$tmp = strtotime($rr['start']);
|
||||||
|
$dtformat = "%Y%m%dT%H%M%S".$UTC;
|
||||||
|
$o .= 'DTSTART:'.strftime($dtformat, $tmp).PHP_EOL;
|
||||||
|
}
|
||||||
|
if ($rr['finish']) {
|
||||||
|
$tmp = strtotime($rr['finish']);
|
||||||
|
$dtformat = "%Y%m%dT%H%M%S".$UTC;
|
||||||
|
$o .= 'DTEND:'.strftime($dtformat, $tmp).PHP_EOL;
|
||||||
|
}
|
||||||
|
if ($rr['summary'])
|
||||||
|
$tmp = $rr['summary'];
|
||||||
|
$tmp = str_replace(PHP_EOL, PHP_EOL.' ',$tmp);
|
||||||
|
$tmp = addcslashes($tmp, ',;');
|
||||||
|
$o .= 'SUMMARY:' . $tmp . PHP_EOL;
|
||||||
|
if ($rr['desc'])
|
||||||
|
$tmp = $rr['desc'];
|
||||||
|
$tmp = str_replace(PHP_EOL, PHP_EOL.' ',$tmp);
|
||||||
|
$tmp = addcslashes($tmp, ',;');
|
||||||
|
$o .= 'DESCRIPTION:' . $tmp . PHP_EOL;
|
||||||
|
if ($rr['location']) {
|
||||||
|
$tmp = $rr['location'];
|
||||||
|
$tmp = str_replace(PHP_EOL, PHP_EOL.' ',$tmp);
|
||||||
|
$tmp = addcslashes($tmp, ',;');
|
||||||
|
$o .= 'LOCATION:' . $tmp . PHP_EOL;
|
||||||
|
}
|
||||||
|
$o .= 'END:VEVENT' . PHP_EOL;
|
||||||
|
}
|
||||||
|
$o .= 'END:VCALENDAR' . PHP_EOL;
|
||||||
|
echo $o;
|
||||||
|
killme();
|
||||||
|
}
|
||||||
|
return $res;
|
||||||
|
}
|
||||||
|
|
||||||
|
function cal_addon_settings_post ( &$a, &$b )
|
||||||
|
{
|
||||||
|
if (! local_user())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!x($_POST,'cal-submit'))
|
||||||
|
return;
|
||||||
|
|
||||||
|
set_pconfig(local_user(),'cal','enable',intval($_POST['cal-enable']));
|
||||||
|
}
|
||||||
|
function cal_addon_settings ( &$a, &$s )
|
||||||
|
{
|
||||||
|
if (! local_user())
|
||||||
|
return;
|
||||||
|
|
||||||
|
$enabled = get_pconfig(local_user(), 'cal', 'enable');
|
||||||
|
$checked = (($enabled) ? ' checked="checked" ' : '');
|
||||||
|
$url = $a->get_baseurl().'/cal/'.$a->user['nickname'].'/export/<em>format</em>';
|
||||||
|
|
||||||
|
$s .= '<span id="settings_cal_inflated" class="settings-block fakelink" style="display: block;" onclick="openClose(\'settings_cal_expanded\'); openClose(\'settings_cal_inflated\');">';
|
||||||
|
$s .= '<h3>'.t('Export Events').'</h3>';
|
||||||
|
$s .= '</span>';
|
||||||
|
$s .= '<div id="settings_cal_expanded" class="settings-block" style="display: none;">';
|
||||||
|
$s .= '<span class="fakelink" onclick="openClose(\'settings_cal_expanded\'); openClose(\'settings_cal_inflated\');">';
|
||||||
|
$s .= '<h3>'.t('Export Events').'</h3>';
|
||||||
|
$s .= '</span>';
|
||||||
|
|
||||||
|
$s .= '<div id="cal-wrapper">';
|
||||||
|
$s .= '<p>'.t('If this is enabled, your public events will be available at').' <strong>'.$url.'</strong></p>';
|
||||||
|
$s .= '<p>'.t('Currently supported formats are ical and csv.').'</p>';
|
||||||
|
$s .= '<label id="cal-enable-label" for="cal-checkbox">'. t('Enable calendar export') .'</label>';
|
||||||
|
$s .= '<input id="cal-checkbox" type="checkbox" name="cal-enable" value="1" ' . $checked . '/>';
|
||||||
|
$s .= '<div class="settings-submit-wrapper" ><input type="submit" name="cal-submit" class="settings-submit" value="' . t('Save Settings') . '" /></div>';
|
||||||
|
$s .= '<div class="clear"></div>';
|
||||||
|
$s .= '</div>';
|
||||||
|
$s .= '</div>';
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
54
cal/lang/C/messages.po
Normal file
54
cal/lang/C/messages.po
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
# ADDON cal
|
||||||
|
# Copyright (C)
|
||||||
|
# This file is distributed under the same license as the Friendica cal addon package.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#, fuzzy
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: \n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2014-06-22 13:18+0200\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"
|
||||||
|
"Language: \n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
|
#: cal.php:33
|
||||||
|
msgid "Event Export"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: cal.php:33
|
||||||
|
msgid "You can download public events from: "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: cal.php:53
|
||||||
|
msgid "The user does not export the calendar."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: cal.php:83
|
||||||
|
msgid "This calendar format is not supported"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: cal.php:181 cal.php:185
|
||||||
|
msgid "Export Events"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: cal.php:189
|
||||||
|
msgid "If this is enabled, your public events will be available at"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: cal.php:190
|
||||||
|
msgid "Currently supported formats are ical and csv."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: cal.php:191
|
||||||
|
msgid "Enable calendar export"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: cal.php:193
|
||||||
|
msgid "Save Settings"
|
||||||
|
msgstr ""
|
12
cal/lang/C/strings.php
Normal file
12
cal/lang/C/strings.php
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
;
|
||||||
|
$a->strings["Event Export"] = "";
|
||||||
|
$a->strings["You can download public events from: "] = "";
|
||||||
|
$a->strings["The user does not export the calendar."] = "";
|
||||||
|
$a->strings["This calendar format is not supported"] = "";
|
||||||
|
$a->strings["Export Events"] = "";
|
||||||
|
$a->strings["If this is enabled, your public events will be available at"] = "";
|
||||||
|
$a->strings["Currently supported formats are ical and csv."] = "";
|
||||||
|
$a->strings["Enable calendar export"] = "";
|
||||||
|
$a->strings["Submit"] = "";
|
56
cal/lang/cs/messages.po
Normal file
56
cal/lang/cs/messages.po
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
# ADDON cal
|
||||||
|
# Copyright (C)
|
||||||
|
# This file is distributed under the same license as the Friendica cal addon package.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# Michal Šupler <msupler@gmail.com>, 2014
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: friendica\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2014-06-22 13:18+0200\n"
|
||||||
|
"PO-Revision-Date: 2014-09-07 11:04+0000\n"
|
||||||
|
"Last-Translator: Michal Šupler <msupler@gmail.com>\n"
|
||||||
|
"Language-Team: Czech (http://www.transifex.com/projects/p/friendica/language/cs/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Language: cs\n"
|
||||||
|
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
|
||||||
|
|
||||||
|
#: cal.php:33
|
||||||
|
msgid "Event Export"
|
||||||
|
msgstr "Export událostí"
|
||||||
|
|
||||||
|
#: cal.php:33
|
||||||
|
msgid "You can download public events from: "
|
||||||
|
msgstr "Veřejné události si můžete stánout z:"
|
||||||
|
|
||||||
|
#: cal.php:53
|
||||||
|
msgid "The user does not export the calendar."
|
||||||
|
msgstr "Uživatel kalenář neexportuje."
|
||||||
|
|
||||||
|
#: cal.php:83
|
||||||
|
msgid "This calendar format is not supported"
|
||||||
|
msgstr "Tento kalendářový formát není podporován."
|
||||||
|
|
||||||
|
#: cal.php:181 cal.php:185
|
||||||
|
msgid "Export Events"
|
||||||
|
msgstr "Export událostí"
|
||||||
|
|
||||||
|
#: cal.php:189
|
||||||
|
msgid "If this is enabled, your public events will be available at"
|
||||||
|
msgstr "Pokud je toto povoleno, vaše veřejné události budou viditelné na"
|
||||||
|
|
||||||
|
#: cal.php:190
|
||||||
|
msgid "Currently supported formats are ical and csv."
|
||||||
|
msgstr "Aktuálně podporované formáty jsou ical a csv."
|
||||||
|
|
||||||
|
#: cal.php:191
|
||||||
|
msgid "Enable calendar export"
|
||||||
|
msgstr "Povolit export kalendáře"
|
||||||
|
|
||||||
|
#: cal.php:193
|
||||||
|
msgid "Save Settings"
|
||||||
|
msgstr "Uložit Nastavení"
|
16
cal/lang/cs/strings.php
Normal file
16
cal/lang/cs/strings.php
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
if(! function_exists("string_plural_select_cs")) {
|
||||||
|
function string_plural_select_cs($n){
|
||||||
|
return ($n==1) ? 0 : ($n>=2 && $n<=4) ? 1 : 2;;
|
||||||
|
}}
|
||||||
|
;
|
||||||
|
$a->strings["Event Export"] = "Export událostí";
|
||||||
|
$a->strings["You can download public events from: "] = "Veřejné události si můžete stánout z:";
|
||||||
|
$a->strings["The user does not export the calendar."] = "Uživatel kalenář neexportuje.";
|
||||||
|
$a->strings["This calendar format is not supported"] = "Tento kalendářový formát není podporován.";
|
||||||
|
$a->strings["Export Events"] = "Export událostí";
|
||||||
|
$a->strings["If this is enabled, your public events will be available at"] = "Pokud je toto povoleno, vaše veřejné události budou viditelné na";
|
||||||
|
$a->strings["Currently supported formats are ical and csv."] = "Aktuálně podporované formáty jsou ical a csv.";
|
||||||
|
$a->strings["Enable calendar export"] = "Povolit export kalendáře";
|
||||||
|
$a->strings["Save Settings"] = "Uložit Nastavení";
|
56
cal/lang/de/messages.po
Normal file
56
cal/lang/de/messages.po
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
# ADDON cal
|
||||||
|
# Copyright (C)
|
||||||
|
# This file is distributed under the same license as the Friendica cal addon package.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# bavatar <tobias.diekershoff@gmx.net>, 2014
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: friendica\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2014-06-22 13:18+0200\n"
|
||||||
|
"PO-Revision-Date: 2014-09-28 10:39+0000\n"
|
||||||
|
"Last-Translator: bavatar <tobias.diekershoff@gmx.net>\n"
|
||||||
|
"Language-Team: German (http://www.transifex.com/projects/p/friendica/language/de/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Language: de\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#: cal.php:33
|
||||||
|
msgid "Event Export"
|
||||||
|
msgstr "Ereignis Export"
|
||||||
|
|
||||||
|
#: cal.php:33
|
||||||
|
msgid "You can download public events from: "
|
||||||
|
msgstr "Du kannst öffentliche Ereignisse hier herunterladen;"
|
||||||
|
|
||||||
|
#: cal.php:53
|
||||||
|
msgid "The user does not export the calendar."
|
||||||
|
msgstr "Diese_r Nutzer_in exportiert den Kalender nicht."
|
||||||
|
|
||||||
|
#: cal.php:83
|
||||||
|
msgid "This calendar format is not supported"
|
||||||
|
msgstr "Dieses Kalenderformat wird nicht unterstützt."
|
||||||
|
|
||||||
|
#: cal.php:181 cal.php:185
|
||||||
|
msgid "Export Events"
|
||||||
|
msgstr "Exportiere Ereignisse"
|
||||||
|
|
||||||
|
#: cal.php:189
|
||||||
|
msgid "If this is enabled, your public events will be available at"
|
||||||
|
msgstr "Wenn dies aktiviert ist, werden alle öffentliche Ereignisse unter folgender URL verfügbar sein"
|
||||||
|
|
||||||
|
#: cal.php:190
|
||||||
|
msgid "Currently supported formats are ical and csv."
|
||||||
|
msgstr "Derzeit werden die Formate ical und csv unterstützt."
|
||||||
|
|
||||||
|
#: cal.php:191
|
||||||
|
msgid "Enable calendar export"
|
||||||
|
msgstr "Kalenderexport aktivieren"
|
||||||
|
|
||||||
|
#: cal.php:193
|
||||||
|
msgid "Save Settings"
|
||||||
|
msgstr "Einstellungen speichern"
|
16
cal/lang/de/strings.php
Normal file
16
cal/lang/de/strings.php
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
if(! function_exists("string_plural_select_de")) {
|
||||||
|
function string_plural_select_de($n){
|
||||||
|
return ($n != 1);;
|
||||||
|
}}
|
||||||
|
;
|
||||||
|
$a->strings["Event Export"] = "Ereignis Export";
|
||||||
|
$a->strings["You can download public events from: "] = "Du kannst öffentliche Ereignisse hier herunterladen;";
|
||||||
|
$a->strings["The user does not export the calendar."] = "Diese_r Nutzer_in exportiert den Kalender nicht.";
|
||||||
|
$a->strings["This calendar format is not supported"] = "Dieses Kalenderformat wird nicht unterstützt.";
|
||||||
|
$a->strings["Export Events"] = "Exportiere Ereignisse";
|
||||||
|
$a->strings["If this is enabled, your public events will be available at"] = "Wenn dies aktiviert ist, werden alle öffentliche Ereignisse unter folgender URL verfügbar sein";
|
||||||
|
$a->strings["Currently supported formats are ical and csv."] = "Derzeit werden die Formate ical und csv unterstützt.";
|
||||||
|
$a->strings["Enable calendar export"] = "Kalenderexport aktivieren";
|
||||||
|
$a->strings["Save Settings"] = "Einstellungen speichern";
|
55
cal/lang/es/messages.po
Normal file
55
cal/lang/es/messages.po
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
# ADDON cal
|
||||||
|
# Copyright (C)
|
||||||
|
# This file is distributed under the same license as the Friendica cal addon package.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: friendica\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2014-06-22 13:18+0200\n"
|
||||||
|
"PO-Revision-Date: 2016-10-10 20:48+0000\n"
|
||||||
|
"Last-Translator: Athalbert\n"
|
||||||
|
"Language-Team: Spanish (http://www.transifex.com/Friendica/friendica/language/es/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Language: es\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#: cal.php:33
|
||||||
|
msgid "Event Export"
|
||||||
|
msgstr "Exportación de evento"
|
||||||
|
|
||||||
|
#: cal.php:33
|
||||||
|
msgid "You can download public events from: "
|
||||||
|
msgstr "Puede descargar eventos públicos desde:"
|
||||||
|
|
||||||
|
#: cal.php:53
|
||||||
|
msgid "The user does not export the calendar."
|
||||||
|
msgstr "El usuario no exporta el calendario."
|
||||||
|
|
||||||
|
#: cal.php:83
|
||||||
|
msgid "This calendar format is not supported"
|
||||||
|
msgstr "No se soporta este formato de calendario"
|
||||||
|
|
||||||
|
#: cal.php:181 cal.php:185
|
||||||
|
msgid "Export Events"
|
||||||
|
msgstr "Exportar Eventos"
|
||||||
|
|
||||||
|
#: cal.php:189
|
||||||
|
msgid "If this is enabled, your public events will be available at"
|
||||||
|
msgstr "Si esto está habilitado, sus eventos públicos estarán permitidos en"
|
||||||
|
|
||||||
|
#: cal.php:190
|
||||||
|
msgid "Currently supported formats are ical and csv."
|
||||||
|
msgstr "Los formatos soportados actualmente son ical y csv."
|
||||||
|
|
||||||
|
#: cal.php:191
|
||||||
|
msgid "Enable calendar export"
|
||||||
|
msgstr "Habilitar exportar calendario"
|
||||||
|
|
||||||
|
#: cal.php:193
|
||||||
|
msgid "Save Settings"
|
||||||
|
msgstr "Guardar Ajustes"
|
16
cal/lang/es/strings.php
Normal file
16
cal/lang/es/strings.php
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
if(! function_exists("string_plural_select_es")) {
|
||||||
|
function string_plural_select_es($n){
|
||||||
|
return ($n != 1);;
|
||||||
|
}}
|
||||||
|
;
|
||||||
|
$a->strings["Event Export"] = "Exportación de evento";
|
||||||
|
$a->strings["You can download public events from: "] = "Puede descargar eventos públicos desde:";
|
||||||
|
$a->strings["The user does not export the calendar."] = "El usuario no exporta el calendario.";
|
||||||
|
$a->strings["This calendar format is not supported"] = "No se soporta este formato de calendario";
|
||||||
|
$a->strings["Export Events"] = "Exportar Eventos";
|
||||||
|
$a->strings["If this is enabled, your public events will be available at"] = "Si esto está habilitado, sus eventos públicos estarán permitidos en";
|
||||||
|
$a->strings["Currently supported formats are ical and csv."] = "Los formatos soportados actualmente son ical y csv.";
|
||||||
|
$a->strings["Enable calendar export"] = "Habilitar exportar calendario";
|
||||||
|
$a->strings["Save Settings"] = "Guardar Ajustes";
|
56
cal/lang/fr/messages.po
Normal file
56
cal/lang/fr/messages.po
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
# ADDON cal
|
||||||
|
# Copyright (C)
|
||||||
|
# This file is distributed under the same license as the Friendica cal addon package.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# Tubuntu <tubuntu@testimonium.be>, 2014
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: friendica\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2014-06-22 13:18+0200\n"
|
||||||
|
"PO-Revision-Date: 2014-09-07 09:24+0000\n"
|
||||||
|
"Last-Translator: Tubuntu <tubuntu@testimonium.be>\n"
|
||||||
|
"Language-Team: French (http://www.transifex.com/projects/p/friendica/language/fr/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Language: fr\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||||
|
|
||||||
|
#: cal.php:33
|
||||||
|
msgid "Event Export"
|
||||||
|
msgstr "Exportation d'événement"
|
||||||
|
|
||||||
|
#: cal.php:33
|
||||||
|
msgid "You can download public events from: "
|
||||||
|
msgstr "Vous pouvez télécharger les événements publiques de :"
|
||||||
|
|
||||||
|
#: cal.php:53
|
||||||
|
msgid "The user does not export the calendar."
|
||||||
|
msgstr "L'utilisateur n'exporte pas le calendrier."
|
||||||
|
|
||||||
|
#: cal.php:83
|
||||||
|
msgid "This calendar format is not supported"
|
||||||
|
msgstr "Ce format de calendrier n'est pas pris en charge"
|
||||||
|
|
||||||
|
#: cal.php:181 cal.php:185
|
||||||
|
msgid "Export Events"
|
||||||
|
msgstr "Exporter les événements"
|
||||||
|
|
||||||
|
#: cal.php:189
|
||||||
|
msgid "If this is enabled, your public events will be available at"
|
||||||
|
msgstr "Si activé, vos événements publiques seront disponible à"
|
||||||
|
|
||||||
|
#: cal.php:190
|
||||||
|
msgid "Currently supported formats are ical and csv."
|
||||||
|
msgstr "Les formats actuellement pris en charge sont ical et csv."
|
||||||
|
|
||||||
|
#: cal.php:191
|
||||||
|
msgid "Enable calendar export"
|
||||||
|
msgstr "Activer l'export de calendrier"
|
||||||
|
|
||||||
|
#: cal.php:193
|
||||||
|
msgid "Save Settings"
|
||||||
|
msgstr "Sauvegarder les paramètres"
|
16
cal/lang/fr/strings.php
Normal file
16
cal/lang/fr/strings.php
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
if(! function_exists("string_plural_select_fr")) {
|
||||||
|
function string_plural_select_fr($n){
|
||||||
|
return ($n > 1);;
|
||||||
|
}}
|
||||||
|
;
|
||||||
|
$a->strings["Event Export"] = "Exportation d'événement";
|
||||||
|
$a->strings["You can download public events from: "] = "Vous pouvez télécharger les événements publiques de :";
|
||||||
|
$a->strings["The user does not export the calendar."] = "L'utilisateur n'exporte pas le calendrier.";
|
||||||
|
$a->strings["This calendar format is not supported"] = "Ce format de calendrier n'est pas pris en charge";
|
||||||
|
$a->strings["Export Events"] = "Exporter les événements";
|
||||||
|
$a->strings["If this is enabled, your public events will be available at"] = "Si activé, vos événements publiques seront disponible à";
|
||||||
|
$a->strings["Currently supported formats are ical and csv."] = "Les formats actuellement pris en charge sont ical et csv.";
|
||||||
|
$a->strings["Enable calendar export"] = "Activer l'export de calendrier";
|
||||||
|
$a->strings["Save Settings"] = "Sauvegarder les paramètres";
|
56
cal/lang/it/messages.po
Normal file
56
cal/lang/it/messages.po
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
# ADDON cal
|
||||||
|
# Copyright (C)
|
||||||
|
# This file is distributed under the same license as the Friendica cal addon package.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# fabrixxm <fabrix.xm@gmail.com>, 2014
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: friendica\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2014-06-22 13:18+0200\n"
|
||||||
|
"PO-Revision-Date: 2014-09-10 10:30+0000\n"
|
||||||
|
"Last-Translator: fabrixxm <fabrix.xm@gmail.com>\n"
|
||||||
|
"Language-Team: Italian (http://www.transifex.com/Friendica/friendica/language/it/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Language: it\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#: cal.php:33
|
||||||
|
msgid "Event Export"
|
||||||
|
msgstr "Esporta Evento"
|
||||||
|
|
||||||
|
#: cal.php:33
|
||||||
|
msgid "You can download public events from: "
|
||||||
|
msgstr "Puoi scaricare gli eventi publici da:"
|
||||||
|
|
||||||
|
#: cal.php:53
|
||||||
|
msgid "The user does not export the calendar."
|
||||||
|
msgstr "L'utente non esporta il calendario."
|
||||||
|
|
||||||
|
#: cal.php:83
|
||||||
|
msgid "This calendar format is not supported"
|
||||||
|
msgstr "Il formato del calendario non è supportato"
|
||||||
|
|
||||||
|
#: cal.php:181 cal.php:185
|
||||||
|
msgid "Export Events"
|
||||||
|
msgstr "Esporta Eventi"
|
||||||
|
|
||||||
|
#: cal.php:189
|
||||||
|
msgid "If this is enabled, your public events will be available at"
|
||||||
|
msgstr "Se abilitato, i tuoi eventi pubblici saranno disponibili a"
|
||||||
|
|
||||||
|
#: cal.php:190
|
||||||
|
msgid "Currently supported formats are ical and csv."
|
||||||
|
msgstr "I formati supportati sono ical e csv."
|
||||||
|
|
||||||
|
#: cal.php:191
|
||||||
|
msgid "Enable calendar export"
|
||||||
|
msgstr "Abilita esporazione calendario"
|
||||||
|
|
||||||
|
#: cal.php:193
|
||||||
|
msgid "Save Settings"
|
||||||
|
msgstr "Salva Impostazioni"
|
16
cal/lang/it/strings.php
Normal file
16
cal/lang/it/strings.php
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
if(! function_exists("string_plural_select_it")) {
|
||||||
|
function string_plural_select_it($n){
|
||||||
|
return ($n != 1);;
|
||||||
|
}}
|
||||||
|
;
|
||||||
|
$a->strings["Event Export"] = "Esporta Evento";
|
||||||
|
$a->strings["You can download public events from: "] = "Puoi scaricare gli eventi publici da:";
|
||||||
|
$a->strings["The user does not export the calendar."] = "L'utente non esporta il calendario.";
|
||||||
|
$a->strings["This calendar format is not supported"] = "Il formato del calendario non è supportato";
|
||||||
|
$a->strings["Export Events"] = "Esporta Eventi";
|
||||||
|
$a->strings["If this is enabled, your public events will be available at"] = "Se abilitato, i tuoi eventi pubblici saranno disponibili a";
|
||||||
|
$a->strings["Currently supported formats are ical and csv."] = "I formati supportati sono ical e csv.";
|
||||||
|
$a->strings["Enable calendar export"] = "Abilita esporazione calendario";
|
||||||
|
$a->strings["Save Settings"] = "Salva Impostazioni";
|
57
cal/lang/pt-br/messages.po
Normal file
57
cal/lang/pt-br/messages.po
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
# ADDON cal
|
||||||
|
# Copyright (C)
|
||||||
|
# This file is distributed under the same license as the Friendica cal addon package.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# John Brazil, 2015
|
||||||
|
# Sérgio Lima <oigreslima@gmail.com>, 2014
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: friendica\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2014-06-22 13:18+0200\n"
|
||||||
|
"PO-Revision-Date: 2015-01-31 01:24+0000\n"
|
||||||
|
"Last-Translator: John Brazil\n"
|
||||||
|
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/friendica/language/pt_BR/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Language: pt_BR\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||||
|
|
||||||
|
#: cal.php:33
|
||||||
|
msgid "Event Export"
|
||||||
|
msgstr "Exportar Evento"
|
||||||
|
|
||||||
|
#: cal.php:33
|
||||||
|
msgid "You can download public events from: "
|
||||||
|
msgstr "Você pode baixar eventos públicos de:"
|
||||||
|
|
||||||
|
#: cal.php:53
|
||||||
|
msgid "The user does not export the calendar."
|
||||||
|
msgstr "O usuário não exportou o calendário."
|
||||||
|
|
||||||
|
#: cal.php:83
|
||||||
|
msgid "This calendar format is not supported"
|
||||||
|
msgstr "Esse formato de calendário não é suportado."
|
||||||
|
|
||||||
|
#: cal.php:181 cal.php:185
|
||||||
|
msgid "Export Events"
|
||||||
|
msgstr "Exporta Eventos"
|
||||||
|
|
||||||
|
#: cal.php:189
|
||||||
|
msgid "If this is enabled, your public events will be available at"
|
||||||
|
msgstr "Se isso estiver habiltiado, seus eventos públicos estarão disponíveis"
|
||||||
|
|
||||||
|
#: cal.php:190
|
||||||
|
msgid "Currently supported formats are ical and csv."
|
||||||
|
msgstr "Os formatos disponíveis atualmente são ical e csv."
|
||||||
|
|
||||||
|
#: cal.php:191
|
||||||
|
msgid "Enable calendar export"
|
||||||
|
msgstr "Habilite exportar calendário"
|
||||||
|
|
||||||
|
#: cal.php:193
|
||||||
|
msgid "Save Settings"
|
||||||
|
msgstr "Salvar as Configurações"
|
16
cal/lang/pt-br/strings.php
Normal file
16
cal/lang/pt-br/strings.php
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
if(! function_exists("string_plural_select_pt_br")) {
|
||||||
|
function string_plural_select_pt_br($n){
|
||||||
|
return ($n > 1);;
|
||||||
|
}}
|
||||||
|
;
|
||||||
|
$a->strings["Event Export"] = "Exportar Evento";
|
||||||
|
$a->strings["You can download public events from: "] = "Você pode baixar eventos públicos de:";
|
||||||
|
$a->strings["The user does not export the calendar."] = "O usuário não exportou o calendário.";
|
||||||
|
$a->strings["This calendar format is not supported"] = "Esse formato de calendário não é suportado.";
|
||||||
|
$a->strings["Export Events"] = "Exporta Eventos";
|
||||||
|
$a->strings["If this is enabled, your public events will be available at"] = "Se isso estiver habiltiado, seus eventos públicos estarão disponíveis";
|
||||||
|
$a->strings["Currently supported formats are ical and csv."] = "Os formatos disponíveis atualmente são ical e csv.";
|
||||||
|
$a->strings["Enable calendar export"] = "Habilite exportar calendário";
|
||||||
|
$a->strings["Save Settings"] = "Salvar as Configurações";
|
56
cal/lang/ro/messages.po
Normal file
56
cal/lang/ro/messages.po
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
# ADDON cal
|
||||||
|
# Copyright (C)
|
||||||
|
# This file is distributed under the same license as the Friendica cal addon package.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# Doru DEACONU <dumitrudeaconu@yahoo.com>, 2014
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: friendica\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2014-06-22 13:18+0200\n"
|
||||||
|
"PO-Revision-Date: 2014-11-27 14:13+0000\n"
|
||||||
|
"Last-Translator: Doru DEACONU <dumitrudeaconu@yahoo.com>\n"
|
||||||
|
"Language-Team: Romanian (Romania) (http://www.transifex.com/projects/p/friendica/language/ro_RO/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Language: ro_RO\n"
|
||||||
|
"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"
|
||||||
|
|
||||||
|
#: cal.php:33
|
||||||
|
msgid "Event Export"
|
||||||
|
msgstr "Exportare Eveniment"
|
||||||
|
|
||||||
|
#: cal.php:33
|
||||||
|
msgid "You can download public events from: "
|
||||||
|
msgstr "Puteți descărca evenimente publice de la:"
|
||||||
|
|
||||||
|
#: cal.php:53
|
||||||
|
msgid "The user does not export the calendar."
|
||||||
|
msgstr "Utilizatorul nu își exportă calendarul."
|
||||||
|
|
||||||
|
#: cal.php:83
|
||||||
|
msgid "This calendar format is not supported"
|
||||||
|
msgstr "Acest format de calendar nu este acceptat"
|
||||||
|
|
||||||
|
#: cal.php:181 cal.php:185
|
||||||
|
msgid "Export Events"
|
||||||
|
msgstr "Exportați Evenimente"
|
||||||
|
|
||||||
|
#: cal.php:189
|
||||||
|
msgid "If this is enabled, your public events will be available at"
|
||||||
|
msgstr "Dacă este activat, evenimente dvs publice vor fi disponibile pe"
|
||||||
|
|
||||||
|
#: cal.php:190
|
||||||
|
msgid "Currently supported formats are ical and csv."
|
||||||
|
msgstr "Formate acceptate în prezent sunt ical şi csv."
|
||||||
|
|
||||||
|
#: cal.php:191
|
||||||
|
msgid "Enable calendar export"
|
||||||
|
msgstr "Activați exportarea calendarului"
|
||||||
|
|
||||||
|
#: cal.php:193
|
||||||
|
msgid "Save Settings"
|
||||||
|
msgstr "Salvare Configurări"
|
16
cal/lang/ro/strings.php
Normal file
16
cal/lang/ro/strings.php
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
if(! function_exists("string_plural_select_ro")) {
|
||||||
|
function string_plural_select_ro($n){
|
||||||
|
return ($n==1?0:((($n%100>19)||(($n%100==0)&&($n!=0)))?2:1));;
|
||||||
|
}}
|
||||||
|
;
|
||||||
|
$a->strings["Event Export"] = "Exportare Eveniment";
|
||||||
|
$a->strings["You can download public events from: "] = "Puteți descărca evenimente publice de la:";
|
||||||
|
$a->strings["The user does not export the calendar."] = "Utilizatorul nu își exportă calendarul.";
|
||||||
|
$a->strings["This calendar format is not supported"] = "Acest format de calendar nu este acceptat";
|
||||||
|
$a->strings["Export Events"] = "Exportați Evenimente";
|
||||||
|
$a->strings["If this is enabled, your public events will be available at"] = "Dacă este activat, evenimente dvs publice vor fi disponibile pe";
|
||||||
|
$a->strings["Currently supported formats are ical and csv."] = "Formate acceptate în prezent sunt ical şi csv.";
|
||||||
|
$a->strings["Enable calendar export"] = "Activați exportarea calendarului";
|
||||||
|
$a->strings["Save Settings"] = "Salvare Configurări";
|
56
cal/lang/ru/messages.po
Normal file
56
cal/lang/ru/messages.po
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
# ADDON cal
|
||||||
|
# Copyright (C)
|
||||||
|
# This file is distributed under the same license as the Friendica cal addon package.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# Stanislav N. <pztrn@pztrn.name>, 2017
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: friendica\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2014-06-22 13:18+0200\n"
|
||||||
|
"PO-Revision-Date: 2017-04-08 17:06+0000\n"
|
||||||
|
"Last-Translator: Stanislav N. <pztrn@pztrn.name>\n"
|
||||||
|
"Language-Team: Russian (http://www.transifex.com/Friendica/friendica/language/ru/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Language: ru\n"
|
||||||
|
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
|
||||||
|
|
||||||
|
#: cal.php:33
|
||||||
|
msgid "Event Export"
|
||||||
|
msgstr "Экспорт событий"
|
||||||
|
|
||||||
|
#: cal.php:33
|
||||||
|
msgid "You can download public events from: "
|
||||||
|
msgstr "Вы можете скачать публичные события из:"
|
||||||
|
|
||||||
|
#: cal.php:53
|
||||||
|
msgid "The user does not export the calendar."
|
||||||
|
msgstr "Пользователь не экспортировал календарь."
|
||||||
|
|
||||||
|
#: cal.php:83
|
||||||
|
msgid "This calendar format is not supported"
|
||||||
|
msgstr "Этот формат календарей не поддерживается"
|
||||||
|
|
||||||
|
#: cal.php:181 cal.php:185
|
||||||
|
msgid "Export Events"
|
||||||
|
msgstr "Экспорт событий"
|
||||||
|
|
||||||
|
#: cal.php:189
|
||||||
|
msgid "If this is enabled, your public events will be available at"
|
||||||
|
msgstr "Если эта настройка включена, то ваши публичные события будут доступны на:"
|
||||||
|
|
||||||
|
#: cal.php:190
|
||||||
|
msgid "Currently supported formats are ical and csv."
|
||||||
|
msgstr "Текущие поддерживаемые форматы ical и csv."
|
||||||
|
|
||||||
|
#: cal.php:191
|
||||||
|
msgid "Enable calendar export"
|
||||||
|
msgstr "Включить экспорт календаря"
|
||||||
|
|
||||||
|
#: cal.php:193
|
||||||
|
msgid "Save Settings"
|
||||||
|
msgstr "Сохранить настройки"
|
16
cal/lang/ru/strings.php
Normal file
16
cal/lang/ru/strings.php
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
if(! function_exists("string_plural_select_ru")) {
|
||||||
|
function string_plural_select_ru($n){
|
||||||
|
return ($n%10==1 && $n%100!=11 ? 0 : $n%10>=2 && $n%10<=4 && ($n%100<12 || $n%100>14) ? 1 : $n%10==0 || ($n%10>=5 && $n%10<=9) || ($n%100>=11 && $n%100<=14)? 2 : 3);;
|
||||||
|
}}
|
||||||
|
;
|
||||||
|
$a->strings["Event Export"] = "Экспорт событий";
|
||||||
|
$a->strings["You can download public events from: "] = "Вы можете скачать публичные события из:";
|
||||||
|
$a->strings["The user does not export the calendar."] = "Пользователь не экспортировал календарь.";
|
||||||
|
$a->strings["This calendar format is not supported"] = "Этот формат календарей не поддерживается";
|
||||||
|
$a->strings["Export Events"] = "Экспорт событий";
|
||||||
|
$a->strings["If this is enabled, your public events will be available at"] = "Если эта настройка включена, то ваши публичные события будут доступны на:";
|
||||||
|
$a->strings["Currently supported formats are ical and csv."] = "Текущие поддерживаемые форматы ical и csv.";
|
||||||
|
$a->strings["Enable calendar export"] = "Включить экспорт календаря";
|
||||||
|
$a->strings["Save Settings"] = "Сохранить настройки";
|
56
cal/lang/zh-cn/messages.po
Normal file
56
cal/lang/zh-cn/messages.po
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
# ADDON cal
|
||||||
|
# Copyright (C)
|
||||||
|
# This file is distributed under the same license as the Friendica cal addon package.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# mytbk <mytbk920423@gmail.com>, 2017
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: friendica\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2014-06-22 13:18+0200\n"
|
||||||
|
"PO-Revision-Date: 2017-10-02 05:52+0000\n"
|
||||||
|
"Last-Translator: mytbk <mytbk920423@gmail.com>\n"
|
||||||
|
"Language-Team: Chinese (China) (http://www.transifex.com/Friendica/friendica/language/zh_CN/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Language: zh_CN\n"
|
||||||
|
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||||
|
|
||||||
|
#: cal.php:33
|
||||||
|
msgid "Event Export"
|
||||||
|
msgstr "事件导出"
|
||||||
|
|
||||||
|
#: cal.php:33
|
||||||
|
msgid "You can download public events from: "
|
||||||
|
msgstr "你可以从这里下载公开事件:"
|
||||||
|
|
||||||
|
#: cal.php:53
|
||||||
|
msgid "The user does not export the calendar."
|
||||||
|
msgstr "这个用户没有导出日历。"
|
||||||
|
|
||||||
|
#: cal.php:83
|
||||||
|
msgid "This calendar format is not supported"
|
||||||
|
msgstr "不支持这个日历格式"
|
||||||
|
|
||||||
|
#: cal.php:181 cal.php:185
|
||||||
|
msgid "Export Events"
|
||||||
|
msgstr "导出事件"
|
||||||
|
|
||||||
|
#: cal.php:189
|
||||||
|
msgid "If this is enabled, your public events will be available at"
|
||||||
|
msgstr "如果这个被启用,你的公开事件会在"
|
||||||
|
|
||||||
|
#: cal.php:190
|
||||||
|
msgid "Currently supported formats are ical and csv."
|
||||||
|
msgstr "当前支持的格式是 ical 和 csv."
|
||||||
|
|
||||||
|
#: cal.php:191
|
||||||
|
msgid "Enable calendar export"
|
||||||
|
msgstr "启用日历导出"
|
||||||
|
|
||||||
|
#: cal.php:193
|
||||||
|
msgid "Save Settings"
|
||||||
|
msgstr "保存设置"
|
16
cal/lang/zh-cn/strings.php
Normal file
16
cal/lang/zh-cn/strings.php
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
if(! function_exists("string_plural_select_zh_cn")) {
|
||||||
|
function string_plural_select_zh_cn($n){
|
||||||
|
return 0;;
|
||||||
|
}}
|
||||||
|
;
|
||||||
|
$a->strings["Event Export"] = "事件导出";
|
||||||
|
$a->strings["You can download public events from: "] = "你可以从这里下载公开事件:";
|
||||||
|
$a->strings["The user does not export the calendar."] = "这个用户没有导出日历。";
|
||||||
|
$a->strings["This calendar format is not supported"] = "不支持这个日历格式";
|
||||||
|
$a->strings["Export Events"] = "导出事件";
|
||||||
|
$a->strings["If this is enabled, your public events will be available at"] = "如果这个被启用,你的公开事件会在";
|
||||||
|
$a->strings["Currently supported formats are ical and csv."] = "当前支持的格式是 ical 和 csv.";
|
||||||
|
$a->strings["Enable calendar export"] = "启用日历导出";
|
||||||
|
$a->strings["Save Settings"] = "保存设置";
|
|
@ -6,8 +6,6 @@
|
||||||
* Author: Fabio Comuni <http://kirgroup.com/profile/fabrixxm>
|
* Author: Fabio Comuni <http://kirgroup.com/profile/fabrixxm>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
use Friendica\Core\Config;
|
|
||||||
use Friendica\Module\Login;
|
|
||||||
|
|
||||||
require_once('mod/community.php');
|
require_once('mod/community.php');
|
||||||
|
|
||||||
|
@ -22,73 +20,37 @@ function communityhome_uninstall() {
|
||||||
logger("removed communityhome");
|
logger("removed communityhome");
|
||||||
}
|
}
|
||||||
|
|
||||||
function communityhome_getopts() {
|
|
||||||
return [
|
|
||||||
'hidelogin'=>t('Hide login form'),
|
|
||||||
'showlastusers'=>t('Show last new users'),
|
|
||||||
'showactiveusers'=>t('Show last active users'),
|
|
||||||
'showlastphotos'=>t('Show last photos'),
|
|
||||||
'showlastlike'=>t('Show last liked items'),
|
|
||||||
'showcommunitystream'=>t('Show community stream')
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
function communityhome_plugin_admin(&$a, &$o) {
|
|
||||||
$tpl = get_markup_template( 'settings.tpl', 'addon/communityhome/' );
|
|
||||||
|
|
||||||
$opts = communityhome_getopts();
|
|
||||||
$ctx = [
|
|
||||||
'$submit' => t("Submit"),
|
|
||||||
'$fields' => [],
|
|
||||||
];
|
|
||||||
foreach($opts as $k=>$v) {
|
|
||||||
$ctx['fields'][] = ['communityhome_'.$k, $v, Config::get('communityhome', $k)];
|
|
||||||
}
|
|
||||||
$o = replace_macros($tpl, $ctx);
|
|
||||||
}
|
|
||||||
|
|
||||||
function communityhome_plugin_admin_post(&$a,&$b) {
|
|
||||||
if(x($_POST,'communityhome-submit')) {
|
|
||||||
$opts = communityhome_getopts();
|
|
||||||
foreach($opts as $k=>$v) {
|
|
||||||
Config::set('communityhome', $k, x($_POST,'communityhome_'.$k));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function communityhome_home(&$a, &$o){
|
function communityhome_home(&$a, &$o){
|
||||||
// custom css
|
// custom css
|
||||||
$a->page['htmlhead'] .= '<link rel="stylesheet" type="text/css" href="'.$a->get_baseurl().'/addon/communityhome/communityhome.css" media="all" />';
|
$a->page['htmlhead'] .= '<link rel="stylesheet" type="text/css" href="'.$a->get_baseurl().'/addon/communityhome/communityhome.css" media="all" />';
|
||||||
|
|
||||||
if (!Config::get('communityhome','hidelogin')){
|
if (!get_config('communityhome','hidelogin')){
|
||||||
$aside = [
|
$aside = array(
|
||||||
'$tab_1' => t('Login'),
|
'$tab_1' => t('Login'),
|
||||||
'$tab_2' => t('OpenID'),
|
'$tab_2' => t('OpenID'),
|
||||||
'$noOid' => Config::get('system','no_openid'),
|
'$noOid' => get_config('system','no_openid'),
|
||||||
];
|
);
|
||||||
|
|
||||||
// login form
|
// login form
|
||||||
$aside['$login_title'] = t('Login');
|
$aside['$login_title'] = t('Login');
|
||||||
$aside['$login_form'] = Login::form($a->query_string, $a->config['register_policy'] == REGISTER_CLOSED ? false : true);
|
$aside['$login_form'] = login(($a->config['register_policy'] == REGISTER_CLOSED) ? false : true);
|
||||||
} else {
|
} else
|
||||||
$aside = [
|
$aside = array(
|
||||||
//'$tab_1' => t('Login'),
|
//'$tab_1' => t('Login'),
|
||||||
//'$tab_2' => t('OpenID'),
|
//'$tab_2' => t('OpenID'),
|
||||||
//'$noOid' => Config::get('system','no_openid'),
|
//'$noOid' => get_config('system','no_openid'),
|
||||||
];
|
);
|
||||||
}
|
|
||||||
|
|
||||||
// last 12 users
|
// last 12 users
|
||||||
if (Config::get('communityhome','showlastusers')){
|
if (get_config('communityhome','showlastusers')===true){
|
||||||
$aside['$lastusers_title'] = t('Latest users');
|
$aside['$lastusers_title'] = t('Latest users');
|
||||||
$aside['$lastusers_items'] = [];
|
$aside['$lastusers_items'] = array();
|
||||||
$sql_extra = "";
|
$sql_extra = "";
|
||||||
$publish = (Config::get('system','publish_all') ? '' : " AND `publish` = 1 " );
|
$publish = (get_config('system','publish_all') ? '' : " AND `publish` = 1 " );
|
||||||
$order = " ORDER BY `register_date` DESC ";
|
$order = " ORDER BY `register_date` DESC ";
|
||||||
|
|
||||||
$r = q("SELECT `profile`.*, `profile`.`uid` AS `profile_uid`, `user`.`nickname`
|
$r = q("SELECT `profile`.*, `profile`.`uid` AS `profile_uid`, `user`.`nickname`
|
||||||
FROM `profile` LEFT JOIN `user` ON `user`.`uid` = `profile`.`uid`
|
FROM `profile` LEFT JOIN `user` ON `user`.`uid` = `profile`.`uid`
|
||||||
WHERE `is-default` = 1 $publish AND `user`.`blocked` = 0 $sql_extra $order LIMIT %d , %d ",
|
WHERE `is-default` = 1 $publish AND `user`.`blocked` = 0 $sql_extra $order LIMIT %d , %d ",
|
||||||
0,
|
0,
|
||||||
12
|
12
|
||||||
|
@ -99,25 +61,25 @@ function communityhome_home(&$a, &$o){
|
||||||
$photo = 'thumb';
|
$photo = 'thumb';
|
||||||
foreach($r as $rr) {
|
foreach($r as $rr) {
|
||||||
$profile_link = $a->get_baseurl() . '/profile/' . ((strlen($rr['nickname'])) ? $rr['nickname'] : $rr['profile_uid']);
|
$profile_link = $a->get_baseurl() . '/profile/' . ((strlen($rr['nickname'])) ? $rr['nickname'] : $rr['profile_uid']);
|
||||||
$entry = replace_macros($tpl,[
|
$entry = replace_macros($tpl,array(
|
||||||
'$id' => $rr['id'],
|
'$id' => $rr['id'],
|
||||||
'$profile_link' => $profile_link,
|
'$profile_link' => $profile_link,
|
||||||
'$photo' => $rr[$photo],
|
'$photo' => $a->get_cached_avatar_image($rr[$photo]),
|
||||||
'$alt_text' => $rr['name'],
|
'$alt_text' => $rr['name'],
|
||||||
]);
|
));
|
||||||
$aside['$lastusers_items'][] = $entry;
|
$aside['$lastusers_items'][] = $entry;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 12 most active users (by posts and contacts)
|
// 12 most active users (by posts and contacts)
|
||||||
// this query don't work on some mysql versions
|
// this query don't work on some mysql versions
|
||||||
if (Config::get('communityhome','showactiveusers')){
|
if (get_config('communityhome','showactiveusers')===true){
|
||||||
$r = q("SELECT `uni`.`contacts`,`uni`.`items`, `profile`.*, `profile`.`uid` AS `profile_uid`, `user`.`nickname` FROM
|
$r = q("SELECT `uni`.`contacts`,`uni`.`items`, `profile`.*, `profile`.`uid` AS `profile_uid`, `user`.`nickname` FROM
|
||||||
(SELECT COUNT(*) as `contacts`, `uid` FROM `contact` WHERE `self`=0 GROUP BY `uid`) AS `con`,
|
(SELECT COUNT(*) as `contacts`, `uid` FROM `contact` WHERE `self`=0 GROUP BY `uid`) AS `con`,
|
||||||
(SELECT COUNT(*) as `items`, `uid` FROM `item` WHERE `item`.`changed` > DATE(NOW() - INTERVAL 1 MONTH) AND `item`.`wall` = 1 GROUP BY `uid`) AS `ite`,
|
(SELECT COUNT(*) as `items`, `uid` FROM `item` WHERE `item`.`changed` > DATE(NOW() - INTERVAL 1 MONTH) AND `item`.`wall` = 1 GROUP BY `uid`) AS `ite`,
|
||||||
(
|
(
|
||||||
SELECT `contacts`,`items`,`ite`.`uid` FROM `con` RIGHT OUTER JOIN `ite` ON `con`.`uid`=`ite`.`uid`
|
SELECT `contacts`,`items`,`ite`.`uid` FROM `con` RIGHT OUTER JOIN `ite` ON `con`.`uid`=`ite`.`uid`
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT `contacts`,`items`,`con`.`uid` FROM `con` LEFT OUTER JOIN `ite` ON `con`.`uid`=`ite`.`uid`
|
SELECT `contacts`,`items`,`con`.`uid` FROM `con` LEFT OUTER JOIN `ite` ON `con`.`uid`=`ite`.`uid`
|
||||||
) AS `uni`, `user`, `profile`
|
) AS `uni`, `user`, `profile`
|
||||||
WHERE `uni`.`uid`=`user`.`uid`
|
WHERE `uni`.`uid`=`user`.`uid`
|
||||||
|
@ -127,31 +89,31 @@ function communityhome_home(&$a, &$o){
|
||||||
LIMIT 0,10");
|
LIMIT 0,10");
|
||||||
if($r && count($r)) {
|
if($r && count($r)) {
|
||||||
$aside['$activeusers_title'] = t('Most active users');
|
$aside['$activeusers_title'] = t('Most active users');
|
||||||
$aside['$activeusers_items'] = [];
|
$aside['$activeusers_items'] = array();
|
||||||
|
|
||||||
$photo = 'thumb';
|
$photo = 'thumb';
|
||||||
foreach($r as $rr) {
|
foreach($r as $rr) {
|
||||||
$profile_link = $a->get_baseurl() . '/profile/' . ((strlen($rr['nickname'])) ? $rr['nickname'] : $rr['profile_uid']);
|
$profile_link = $a->get_baseurl() . '/profile/' . ((strlen($rr['nickname'])) ? $rr['nickname'] : $rr['profile_uid']);
|
||||||
$entry = replace_macros($tpl,[
|
$entry = replace_macros($tpl,array(
|
||||||
'$id' => $rr['id'],
|
'$id' => $rr['id'],
|
||||||
'$profile_link' => $profile_link,
|
'$profile_link' => $profile_link,
|
||||||
'$photo' => $rr[$photo],
|
'$photo' => $rr[$photo],
|
||||||
'$photo_user' => sprintf("%s (%s posts, %s contacts)",$rr['name'], ($rr['items']?$rr['items']:'0'), ($rr['contacts']?$rr['contacts']:'0'))
|
'$alt_text' => sprintf("%s (%s posts, %s contacts)",$rr['name'], ($rr['items']?$rr['items']:'0'), ($rr['contacts']?$rr['contacts']:'0'))
|
||||||
]);
|
));
|
||||||
$aside['$activeusers_items'][] = $entry;
|
$aside['$activeusers_items'][] = $entry;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// last 12 photos
|
// last 12 photos
|
||||||
if (Config::get('communityhome','showlastphotos')){
|
if (get_config('communityhome','showlastphotos')===true){
|
||||||
$aside['$photos_title'] = t('Latest photos');
|
$aside['$photos_title'] = t('Latest photos');
|
||||||
$aside['$photos_items'] = [];
|
$aside['$photos_items'] = array();
|
||||||
$r = q("SELECT `photo`.`id`, `photo`.`resource-id`, `photo`.`scale`, `photo`.`desc`, `user`.`nickname`, `user`.`username` FROM
|
$r = q("SELECT `photo`.`id`, `photo`.`resource-id`, `photo`.`scale`, `photo`.`desc`, `user`.`nickname`, `user`.`username` FROM
|
||||||
(SELECT `resource-id`, MAX(`scale`) as maxscale FROM `photo`
|
(SELECT `resource-id`, MAX(`scale`) as maxscale FROM `photo`
|
||||||
WHERE `profile`=0 AND `contact-id`=0 AND `album` NOT IN ('Contact Photos', '%s', 'Profile Photos', '%s')
|
WHERE `profile`=0 AND `contact-id`=0 AND `album` NOT IN ('Contact Photos', '%s', 'Profile Photos', '%s')
|
||||||
AND `allow_cid`='' AND `allow_gid`='' AND `deny_cid`='' AND `deny_gid`='' GROUP BY `resource-id`) AS `t1`
|
AND `allow_cid`='' AND `allow_gid`='' AND `deny_cid`='' AND `deny_gid`='' GROUP BY `resource-id`) AS `t1`
|
||||||
INNER JOIN `photo` ON `photo`.`resource-id`=`t1`.`resource-id` AND `photo`.`scale` = `t1`.`maxscale`,
|
INNER JOIN `photo` ON `photo`.`resource-id`=`t1`.`resource-id` AND `photo`.`scale` = `t1`.`maxscale`,
|
||||||
`user`
|
`user`
|
||||||
WHERE `user`.`uid` = `photo`.`uid`
|
WHERE `user`.`uid` = `photo`.`uid`
|
||||||
AND `user`.`blockwall`=0
|
AND `user`.`blockwall`=0
|
||||||
AND `user`.`hidewall` = 0
|
AND `user`.`hidewall` = 0
|
||||||
|
@ -169,13 +131,12 @@ function communityhome_home(&$a, &$o){
|
||||||
$photo_page = $a->get_baseurl() . '/photos/' . $rr['nickname'] . '/image/' . $rr['resource-id'];
|
$photo_page = $a->get_baseurl() . '/photos/' . $rr['nickname'] . '/image/' . $rr['resource-id'];
|
||||||
$photo_url = $a->get_baseurl() . '/photo/' . $rr['resource-id'] . '-' . $rr['scale'] .'.jpg';
|
$photo_url = $a->get_baseurl() . '/photo/' . $rr['resource-id'] . '-' . $rr['scale'] .'.jpg';
|
||||||
|
|
||||||
$entry = replace_macros($tpl,[
|
$entry = replace_macros($tpl,array(
|
||||||
'$id' => $rr['id'],
|
'$id' => $rr['id'],
|
||||||
'$profile_link' => $photo_page,
|
'$profile_link' => $photo_page,
|
||||||
'$photo' => $photo_url,
|
'$photo' => $photo_url,
|
||||||
'$photo_user' => $rr['username'],
|
'$alt_text' => $rr['username']." : ".$rr['desc'],
|
||||||
'$photo_title' => $rr['desc']
|
));
|
||||||
]);
|
|
||||||
|
|
||||||
$aside['$photos_items'][] = $entry;
|
$aside['$photos_items'][] = $entry;
|
||||||
}
|
}
|
||||||
|
@ -183,13 +144,13 @@ function communityhome_home(&$a, &$o){
|
||||||
}
|
}
|
||||||
|
|
||||||
// last 10 liked items
|
// last 10 liked items
|
||||||
if (Config::get('communityhome','showlastlike')){
|
if (get_config('communityhome','showlastlike')===true){
|
||||||
$aside['$like_title'] = t('Latest likes');
|
$aside['$like_title'] = t('Latest likes');
|
||||||
$aside['$like_items'] = [];
|
$aside['$like_items'] = array();
|
||||||
$r = q("SELECT `T1`.`created`, `T1`.`liker`, `T1`.`liker-link`, `item`.* FROM
|
$r = q("SELECT `T1`.`created`, `T1`.`liker`, `T1`.`liker-link`, `item`.* FROM
|
||||||
(SELECT `parent-uri`, `created`, `author-name` AS `liker`,`author-link` AS `liker-link`
|
(SELECT `parent-uri`, `created`, `author-name` AS `liker`,`author-link` AS `liker-link`
|
||||||
FROM `item` WHERE `verb`='http://activitystrea.ms/schema/1.0/like' GROUP BY `parent-uri` ORDER BY `created` DESC) AS T1
|
FROM `item` WHERE `verb`='http://activitystrea.ms/schema/1.0/like' GROUP BY `parent-uri` ORDER BY `created` DESC) AS T1
|
||||||
INNER JOIN `item` ON `item`.`uri`=`T1`.`parent-uri`
|
INNER JOIN `item` ON `item`.`uri`=`T1`.`parent-uri`
|
||||||
WHERE `T1`.`liker-link` LIKE '%s%%' OR `item`.`author-link` LIKE '%s%%'
|
WHERE `T1`.`liker-link` LIKE '%s%%' OR `item`.`author-link` LIKE '%s%%'
|
||||||
GROUP BY `uri`
|
GROUP BY `uri`
|
||||||
ORDER BY `T1`.`created` DESC
|
ORDER BY `T1`.`created` DESC
|
||||||
|
@ -215,7 +176,7 @@ function communityhome_home(&$a, &$o){
|
||||||
default:
|
default:
|
||||||
if ($rr['resource-id']){
|
if ($rr['resource-id']){
|
||||||
$post_type = t('photo');
|
$post_type = t('photo');
|
||||||
$m=[]; preg_match("/\[url=([^]]*)\]/", $rr['body'], $m);
|
$m=array(); preg_match("/\[url=([^]]*)\]/", $rr['body'], $m);
|
||||||
$rr['plink'] = $m[1];
|
$rr['plink'] = $m[1];
|
||||||
} else {
|
} else {
|
||||||
$post_type = t('status');
|
$post_type = t('status');
|
||||||
|
@ -237,14 +198,14 @@ function communityhome_home(&$a, &$o){
|
||||||
if(file_exists('home.html'))
|
if(file_exists('home.html'))
|
||||||
$o = file_get_contents('home.html');
|
$o = file_get_contents('home.html');
|
||||||
|
|
||||||
if (Config::get('communityhome','showcommunitystream')){
|
if (get_config('communityhome','showcommunitystream')===true){
|
||||||
$oldset = Config::get('system','community_page_style');
|
$oldset = get_config('system','community_page_style');
|
||||||
if ($oldset == CP_NO_COMMUNITY_PAGE)
|
if ($oldset == CP_NO_COMMUNITY_PAGE)
|
||||||
Config::set('system','community_page_style', CP_USERS_ON_SERVER);
|
set_config('system','community_page_style', CP_USERS_ON_SERVER);
|
||||||
|
|
||||||
$o .= community_content($a,1);
|
$o .= community_content($a,1);
|
||||||
|
|
||||||
if ($oldset == CP_NO_COMMUNITY_PAGE)
|
if ($oldset == CP_NO_COMMUNITY_PAGE)
|
||||||
Config::set('system','community_page_style', $oldset);
|
set_config('system','community_page_style', $oldset);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,8 +2,8 @@
|
||||||
<div class="directory-item" id="directory-item-{{$id}}" >
|
<div class="directory-item" id="directory-item-{{$id}}" >
|
||||||
<div class="directory-photo-wrapper" id="directory-photo-wrapper-{{$id}}" >
|
<div class="directory-photo-wrapper" id="directory-photo-wrapper-{{$id}}" >
|
||||||
<div class="directory-photo" id="directory-photo-{{$id}}" >
|
<div class="directory-photo" id="directory-photo-{{$id}}" >
|
||||||
<a href="{{$profile_link}}" class="directory-profile-link" id="directory-profile-link-{{$id}}" >
|
<a href="{{$profile}}-link" class="directory-profile-link" id="directory-profile-link-{{$id}}" >
|
||||||
<img class="directory-photo-img" src="{{$photo}}" alt="{{$photo_user}} {{if $photo_title}}: {{$photo_title}}{{/if}}" title="{{$alt_text}}" />
|
<img class="directory-photo-img" src="{{$photo}}" alt="{{$alt}}-text" title="{{$alt}}-text" />
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
<div id="communityhome-wrapper">
|
|
||||||
{{foreach $fields as $field}}
|
|
||||||
{{include file="field_checkbox.tpl" field=$field}}
|
|
||||||
{{/foreach}}
|
|
||||||
</div>
|
|
||||||
<div class="settings-submit-wrapper" >
|
|
||||||
<input type="submit" id="communityhome-submit" name="communityhome-submit" class="settings-submit" value="{{$submit}}" />
|
|
||||||
</div>
|
|
||||||
|
|
|
@ -15,7 +15,7 @@ function convert_uninstall() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function convert_app_menu($a,&$b) {
|
function convert_app_menu($a,&$b) {
|
||||||
$b['app_menu'][] = '<div class="app-title"><a href="convert">Units Conversion</a></div>';
|
$b['app_menu'][] = '<div class="app-title"><a href="convert">Units Conversion</a></div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ function convert_module() {}
|
||||||
function convert_content($app) {
|
function convert_content($app) {
|
||||||
|
|
||||||
include("UnitConvertor.php");
|
include("UnitConvertor.php");
|
||||||
|
|
||||||
class TP_Converter extends UnitConvertor {
|
class TP_Converter extends UnitConvertor {
|
||||||
function TP_Converter($lang = "en")
|
function TP_Converter($lang = "en")
|
||||||
{
|
{
|
||||||
|
@ -39,7 +39,7 @@ include("UnitConvertor.php");
|
||||||
} else {
|
} else {
|
||||||
$dec_point = '.'; $thousand_sep = ",";
|
$dec_point = '.'; $thousand_sep = ",";
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->UnitConvertor($dec_point , $thousand_sep );
|
$this->UnitConvertor($dec_point , $thousand_sep );
|
||||||
|
|
||||||
} // end func UnitConvertor
|
} // end func UnitConvertor
|
||||||
|
@ -47,24 +47,24 @@ include("UnitConvertor.php");
|
||||||
function find_base_unit($from,$to) {
|
function find_base_unit($from,$to) {
|
||||||
while (list($skey,$sval) = each($this->bases)) {
|
while (list($skey,$sval) = each($this->bases)) {
|
||||||
if ($skey == $from || $to == $skey || in_array($to,$sval) || in_array($from,$sval)) {
|
if ($skey == $from || $to == $skey || in_array($to,$sval) || in_array($from,$sval)) {
|
||||||
return $skey;
|
return $skey;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getTable($value, $from_unit, $to_unit, $precision) {
|
function getTable($value, $from_unit, $to_unit, $precision) {
|
||||||
|
|
||||||
if ($base_unit = $this->find_base_unit($from_unit,$to_unit)) {
|
if ($base_unit = $this->find_base_unit($from_unit,$to_unit)) {
|
||||||
|
|
||||||
// A baseunit was found now lets convert from -> $base_unit
|
// A baseunit was found now lets convert from -> $base_unit
|
||||||
|
|
||||||
$cell ['value'] = $this->convert($value, $from_unit, $base_unit, $precision)." ".$base_unit;
|
$cell ['value'] = $this->convert($value, $from_unit, $base_unit, $precision)." ".$base_unit;
|
||||||
$cell ['class'] = ($base_unit == $from_unit || $base_unit == $to_unit) ? "framedred": "";
|
$cell ['class'] = ($base_unit == $from_unit || $base_unit == $to_unit) ? "framedred": "";
|
||||||
$cells[] = $cell;
|
$cells[] = $cell;
|
||||||
// We now have the base unit and value now lets produce the table;
|
// We now have the base unit and value now lets produce the table;
|
||||||
while (list($key,$val) = each($this->bases[$base_unit])) {
|
while (list($key,$val) = each($this->bases[$base_unit])) {
|
||||||
$cell ['value'] = $this->convert($value, $from_unit, $val, $precision)." ".$val;
|
$cell ['value'] = $this->convert($value, $from_unit, $val, $precision)." ".$val;
|
||||||
$cell ['class'] = ($val == $from_unit || $val == $to_unit) ? "framedred": "";
|
$cell ['class'] = ($val == $from_unit || $val == $to_unit) ? "framedred": "";
|
||||||
$cells[] = $cell;
|
$cells[] = $cell;
|
||||||
}
|
}
|
||||||
|
@ -83,8 +83,8 @@ include("UnitConvertor.php");
|
||||||
}
|
}
|
||||||
$string .= "</tr></table>";
|
$string .= "</tr></table>";
|
||||||
return $string;
|
return $string;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -92,16 +92,16 @@ include("UnitConvertor.php");
|
||||||
$conv = new TP_Converter('en');
|
$conv = new TP_Converter('en');
|
||||||
|
|
||||||
|
|
||||||
$conversions = [
|
$conversions = array(
|
||||||
'Temperature'=>['base' =>'Celsius',
|
'Temperature'=>array('base' =>'Celsius',
|
||||||
'conv'=>[
|
'conv'=>array(
|
||||||
'Fahrenheit'=>['ratio'=>1.8, 'offset'=>32],
|
'Fahrenheit'=>array('ratio'=>1.8, 'offset'=>32),
|
||||||
'Kelvin'=>['ratio'=>1, 'offset'=>273],
|
'Kelvin'=>array('ratio'=>1, 'offset'=>273),
|
||||||
'Reaumur'=>0.8
|
'Reaumur'=>0.8
|
||||||
]
|
)
|
||||||
],
|
),
|
||||||
'Weight' => ['base' =>'kg',
|
'Weight' => array('base' =>'kg',
|
||||||
'conv'=>[
|
'conv'=>array(
|
||||||
'g'=>1000,
|
'g'=>1000,
|
||||||
'mg'=>1000000,
|
'mg'=>1000000,
|
||||||
't'=>0.001,
|
't'=>0.001,
|
||||||
|
@ -109,13 +109,13 @@ $conversions = [
|
||||||
'oz'=>35.274,
|
'oz'=>35.274,
|
||||||
'lb'=>2.2046,
|
'lb'=>2.2046,
|
||||||
'cwt(UK)' => 0.019684,
|
'cwt(UK)' => 0.019684,
|
||||||
'cwt(US)' => 0.022046,
|
'cwt(US)' => 0.022046,
|
||||||
'ton (US)' => 0.0011023,
|
'ton (US)' => 0.0011023,
|
||||||
'ton (UK)' => 0.0009842
|
'ton (UK)' => 0.0009842
|
||||||
]
|
)
|
||||||
],
|
),
|
||||||
'Distance' => ['base' =>'km',
|
'Distance' => array('base' =>'km',
|
||||||
'conv'=>[
|
'conv'=>array(
|
||||||
'm'=>1000,
|
'm'=>1000,
|
||||||
'dm'=>10000,
|
'dm'=>10000,
|
||||||
'cm'=>100000,
|
'cm'=>100000,
|
||||||
|
@ -127,25 +127,25 @@ $conversions = [
|
||||||
'yd'=>1093.6,
|
'yd'=>1093.6,
|
||||||
'furlong'=>4.970969537898672,
|
'furlong'=>4.970969537898672,
|
||||||
'fathom'=>546.8066491688539
|
'fathom'=>546.8066491688539
|
||||||
]
|
)
|
||||||
],
|
),
|
||||||
'Area' => ['base' =>'km 2',
|
'Area' => array('base' =>'km 2',
|
||||||
'conv'=>[
|
'conv'=>array(
|
||||||
'ha'=>100,
|
'ha'=>100,
|
||||||
'acre'=>247.105,
|
'acre'=>247.105,
|
||||||
'm 2'=>pow(1000,2),
|
'm 2'=>pow(1000,2),
|
||||||
'dm 2'=>pow(10000,2),
|
'dm 2'=>pow(10000,2),
|
||||||
'cm 2'=>pow(100000,2),
|
'cm 2'=>pow(100000,2),
|
||||||
'mm 2'=>pow(1000000,2),
|
'mm 2'=>pow(1000000,2),
|
||||||
'mile 2'=>pow(0.62137,2),
|
'mile 2'=>pow(0.62137,2),
|
||||||
'naut.miles 2'=>pow(0.53996,2),
|
'naut.miles 2'=>pow(0.53996,2),
|
||||||
'in 2'=>pow(39370,2),
|
'in 2'=>pow(39370,2),
|
||||||
'ft 2'=>pow(3280.8,2),
|
'ft 2'=>pow(3280.8,2),
|
||||||
'yd 2'=>pow(1093.6,2),
|
'yd 2'=>pow(1093.6,2),
|
||||||
]
|
)
|
||||||
],
|
),
|
||||||
'Volume' => ['base' =>'m 3',
|
'Volume' => array('base' =>'m 3',
|
||||||
'conv'=>[
|
'conv'=>array(
|
||||||
'in 3'=>61023.6,
|
'in 3'=>61023.6,
|
||||||
'ft 3'=>35.315,
|
'ft 3'=>35.315,
|
||||||
'cm 3'=>pow(10,6),
|
'cm 3'=>pow(10,6),
|
||||||
|
@ -161,22 +161,22 @@ $conversions = [
|
||||||
'fl oz' => 33814.02,
|
'fl oz' => 33814.02,
|
||||||
'tablespoon' => 67628.04,
|
'tablespoon' => 67628.04,
|
||||||
'teaspoon' => 202884.1,
|
'teaspoon' => 202884.1,
|
||||||
'pt (UK)'=>1000/0.56826,
|
'pt (UK)'=>1000/0.56826,
|
||||||
'barrel petroleum'=>1000/158.99,
|
'barrel petroleum'=>1000/158.99,
|
||||||
'Register Tons'=>2.832,
|
'Register Tons'=>2.832,
|
||||||
'Ocean Tons'=>1.1327
|
'Ocean Tons'=>1.1327
|
||||||
]
|
)
|
||||||
],
|
),
|
||||||
'Speed' =>['base' =>'kmph',
|
'Speed' =>array('base' =>'kmph',
|
||||||
'conv'=>[
|
'conv'=>array(
|
||||||
'mps'=>0.0001726031,
|
'mps'=>0.0001726031,
|
||||||
'milesph'=>0.62137,
|
'milesph'=>0.62137,
|
||||||
'knots'=>0.53996,
|
'knots'=>0.53996,
|
||||||
'mach STP'=>0.0008380431,
|
'mach STP'=>0.0008380431,
|
||||||
'c (warp)'=>9.265669e-10
|
'c (warp)'=>9.265669e-10
|
||||||
]
|
)
|
||||||
]
|
)
|
||||||
];
|
);
|
||||||
|
|
||||||
|
|
||||||
while (list($key,$val) = each($conversions)) {
|
while (list($key,$val) = each($conversions)) {
|
||||||
|
@ -223,6 +223,6 @@ while (list($key,$val) = each($conversions)) {
|
||||||
$o .= '</select>';
|
$o .= '</select>';
|
||||||
|
|
||||||
$o .= '<input type="submit" name="Submit" value="Submit" /></form>';
|
$o .= '<input type="submit" name="Submit" value="Submit" /></form>';
|
||||||
|
|
||||||
return $o;
|
return $o;
|
||||||
}
|
}
|
||||||
|
|
7
convpath/README
Normal file
7
convpath/README
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
convpath
|
||||||
|
|
||||||
|
This addon converts all internal paths according to the current scheme.
|
||||||
|
|
||||||
|
That means that if a page is called via https then all internal links are also converted into https.
|
||||||
|
|
||||||
|
Same happens when you call your page with http.
|
102
convpath/convpath.php
Normal file
102
convpath/convpath.php
Normal file
|
@ -0,0 +1,102 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Name: Convert Paths
|
||||||
|
* Description: Converts all internal paths according to the current scheme (http or https)
|
||||||
|
* Version: 1.0
|
||||||
|
* Author: Michael Vogel <https://pirati.ca/profile/heluecht>
|
||||||
|
* Status: Unsupported
|
||||||
|
*/
|
||||||
|
|
||||||
|
function convpath_install() {
|
||||||
|
register_hook('page_end', 'addon/convpath/convpath.php', 'convpath_page_end');
|
||||||
|
register_hook('page_header', 'addon/convpath/convpath.php', 'convpath_page_header');
|
||||||
|
register_hook('ping_xmlize', 'addon/convpath/convpath.php', 'convpath_ping_xmlize_hook');
|
||||||
|
register_hook('prepare_body', 'addon/convpath/convpath.php', 'convpath_prepare_body_hook');
|
||||||
|
register_hook('display_item', 'addon/convpath/convpath.php', 'convpath_display_item_hook');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function convpath_uninstall() {
|
||||||
|
unregister_hook('page_end', 'addon/convpath/convpath.php', 'convpath_page_end');
|
||||||
|
unregister_hook('page_header', 'addon/convpath/convpath.php', 'convpath_page_header');
|
||||||
|
unregister_hook('ping_xmlize', 'addon/convpath/convpath.php', 'convpath_ping_xmlize_hook');
|
||||||
|
unregister_hook('prepare_body', 'addon/convpath/convpath.php', 'convpath_prepare_body_hook');
|
||||||
|
unregister_hook('display_item', 'addon/convpath/convpath.php', 'convpath_display_item_hook');
|
||||||
|
}
|
||||||
|
|
||||||
|
function convpath_ping_xmlize_hook(&$a, &$o) {
|
||||||
|
$o["photo"] = convpath_url($a, $o["photo"]);
|
||||||
|
}
|
||||||
|
|
||||||
|
function convpath_page_header(&$a, &$o){
|
||||||
|
$o = convpath_convert($o);
|
||||||
|
}
|
||||||
|
|
||||||
|
function convpath_page_end(&$a, &$o){
|
||||||
|
$o = convpath_convert($o);
|
||||||
|
if (isset($a->page['aside']))
|
||||||
|
$a->page['aside'] = convpath_convert($a->page['aside']);
|
||||||
|
}
|
||||||
|
|
||||||
|
function convpath_prepare_body_hook(&$a, &$o) {
|
||||||
|
$o["html"] = convpath_convert($o["html"]);
|
||||||
|
}
|
||||||
|
|
||||||
|
function convpath_display_item_hook(&$a, &$o) {
|
||||||
|
if (isset($o["output"])) {
|
||||||
|
if (isset($o["output"]["thumb"]))
|
||||||
|
$o["output"]["thumb"] = convpath_url($a, $o["output"]["thumb"]);
|
||||||
|
if (isset($o["output"]["author-avatar"]))
|
||||||
|
$o["output"]["author-avatar"] = convpath_url($a, $o["output"]["author-avatar"]);
|
||||||
|
if (isset($o["output"]["owner-avatar"]))
|
||||||
|
$o["output"]["owner-avatar"] = convpath_url($a, $o["output"]["owner-avatar"]);
|
||||||
|
if (isset($o["output"]["owner_photo"]))
|
||||||
|
$o["output"]["owner_photo"] = convpath_url($a, $o["output"]["owner_photo"]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function convpath_url($a, $path) {
|
||||||
|
if ($path == "")
|
||||||
|
return("");
|
||||||
|
|
||||||
|
$ssl = (substr($a->get_baseurl(), 0, 8) == "https://");
|
||||||
|
|
||||||
|
if ($ssl) {
|
||||||
|
$search = "http://".$a->get_hostname();
|
||||||
|
$replace = "https://".$a->get_hostname();
|
||||||
|
} else {
|
||||||
|
$search = "https://".$a->get_hostname();
|
||||||
|
$replace = "http://".$a->get_hostname();
|
||||||
|
}
|
||||||
|
|
||||||
|
$path = str_replace($search, $replace, $path);
|
||||||
|
|
||||||
|
return($path);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Converts a given path according to the current scheme
|
||||||
|
*/
|
||||||
|
function convpath_convert($path) {
|
||||||
|
global $a;
|
||||||
|
|
||||||
|
if ($path == "")
|
||||||
|
return("");
|
||||||
|
|
||||||
|
$ssl = (substr($a->get_baseurl(), 0, 8) == "https://");
|
||||||
|
|
||||||
|
if ($ssl) {
|
||||||
|
$search = "http://".$a->get_hostname();
|
||||||
|
$replace = "https://".$a->get_hostname();
|
||||||
|
} else {
|
||||||
|
$search = "https://".$a->get_hostname();
|
||||||
|
$replace = "http://".$a->get_hostname();
|
||||||
|
}
|
||||||
|
$searcharr = array("src='".$search, 'src="'.$search);
|
||||||
|
$replacearr = array("src='".$replace, 'src="'.$replace);
|
||||||
|
$path = str_replace($searcharr, $replacearr, $path);
|
||||||
|
|
||||||
|
//$path = str_replace($search, $replace, $path);
|
||||||
|
|
||||||
|
return($path);
|
||||||
|
}
|
0
convpath/lang/C/messages.po
Normal file
0
convpath/lang/C/messages.po
Normal file
|
@ -1,6 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Name: Current Weather
|
* Name: Current Weather
|
||||||
* Description: Shows current weather conditions for user's location on their network page.
|
* Description: Shows current weather conditions for user's location on their network page.
|
||||||
* Version: 1.1
|
* Version: 1.1
|
||||||
* Author: Tony Baldwin <http://friendica.tonybaldwin.info/u/t0ny>
|
* Author: Tony Baldwin <http://friendica.tonybaldwin.info/u/t0ny>
|
||||||
|
@ -13,17 +13,13 @@ require_once('include/network.php');
|
||||||
require_once("mod/proxy.php");
|
require_once("mod/proxy.php");
|
||||||
require_once('include/text.php');
|
require_once('include/text.php');
|
||||||
|
|
||||||
use Friendica\Core\Cache;
|
|
||||||
use Friendica\Core\Config;
|
|
||||||
use Friendica\Core\PConfig;
|
|
||||||
|
|
||||||
// get the weather data from OpenWeatherMap
|
// get the weather data from OpenWeatherMap
|
||||||
function getWeather( $loc, $units='metric', $lang='en', $appid='', $cachetime=0) {
|
function getWeather( $loc, $units='metric', $lang='en', $appid='', $cachetime=0) {
|
||||||
$url = "http://api.openweathermap.org/data/2.5/weather?q=".$loc."&appid=".$appid."&lang=".$lang."&units=".$units."&mode=xml";
|
$url = "http://api.openweathermap.org/data/2.5/weather?q=".$loc."&appid=".$appid."&lang=".$lang."&units=".$units."&mode=xml";
|
||||||
$cached = Cache::get('curweather'.md5($url));
|
$cached = Cache::get('curweather'.md5($url));
|
||||||
$now = new DateTime();
|
$now = new DateTime();
|
||||||
if (!is_null($cached)) {
|
if (!is_null($cached)) {
|
||||||
$cdate = PConfig::get(local_user(), 'curweather', 'last');
|
$cdate = get_pconfig(local_user(), 'curweather', 'last');
|
||||||
$cached = unserialize($cached);
|
$cached = unserialize($cached);
|
||||||
if ($cdate + $cachetime > $now->getTimestamp()) {
|
if ($cdate + $cachetime > $now->getTimestamp()) {
|
||||||
return $cached;
|
return $cached;
|
||||||
|
@ -47,7 +43,7 @@ function getWeather( $loc, $units='metric', $lang='en', $appid='', $cachetime=0)
|
||||||
} else {
|
} else {
|
||||||
$desc = (string)$res->weather['value'].', '.(string)$res->clouds['name'];
|
$desc = (string)$res->weather['value'].', '.(string)$res->clouds['name'];
|
||||||
}
|
}
|
||||||
$r = [
|
$r = array(
|
||||||
'city'=> (string) $res->city['name'][0],
|
'city'=> (string) $res->city['name'][0],
|
||||||
'country' => (string) $res->city->country[0],
|
'country' => (string) $res->city->country[0],
|
||||||
'lat' => (string) $res->city->coord['lat'],
|
'lat' => (string) $res->city->coord['lat'],
|
||||||
|
@ -59,8 +55,8 @@ function getWeather( $loc, $units='metric', $lang='en', $appid='', $cachetime=0)
|
||||||
'wind' => (string)$res->wind->speed['name'].' ('.(string)$res->wind->speed['value'].$wunit.')',
|
'wind' => (string)$res->wind->speed['name'].' ('.(string)$res->wind->speed['value'].$wunit.')',
|
||||||
'update' => (string)$res->lastupdate['value'],
|
'update' => (string)$res->lastupdate['value'],
|
||||||
'icon' => (string)$res->weather['icon']
|
'icon' => (string)$res->weather['icon']
|
||||||
];
|
);
|
||||||
PConfig::set(local_user(), 'curweather', 'last', $now->getTimestamp());
|
set_pconfig(local_user(), 'curweather', 'last', $now->getTimestamp());
|
||||||
Cache::set('curweather'.md5($url), serialize($r), CACHE_HOUR);
|
Cache::set('curweather'.md5($url), serialize($r), CACHE_HOUR);
|
||||||
return $r;
|
return $r;
|
||||||
}
|
}
|
||||||
|
@ -79,7 +75,7 @@ function curweather_uninstall() {
|
||||||
|
|
||||||
function curweather_network_mod_init(&$fk_app,&$b) {
|
function curweather_network_mod_init(&$fk_app,&$b) {
|
||||||
|
|
||||||
if(! intval(PConfig::get(local_user(),'curweather','curweather_enable')))
|
if(! intval(get_pconfig(local_user(),'curweather','curweather_enable')))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
$fk_app->page['htmlhead'] .= '<link rel="stylesheet" type="text/css" href="' . $fk_app->get_baseurl() . '/addon/curweather/curweather.css' . '" media="all" />' . "\r\n";
|
$fk_app->page['htmlhead'] .= '<link rel="stylesheet" type="text/css" href="' . $fk_app->get_baseurl() . '/addon/curweather/curweather.css' . '" media="all" />' . "\r\n";
|
||||||
|
@ -93,14 +89,14 @@ function curweather_network_mod_init(&$fk_app,&$b) {
|
||||||
// those parameters will be used to get: cloud status, temperature, preassure
|
// those parameters will be used to get: cloud status, temperature, preassure
|
||||||
// and relative humidity for display, also the relevent area of the map is
|
// and relative humidity for display, also the relevent area of the map is
|
||||||
// linked from lat/log of the reply of OWMp
|
// linked from lat/log of the reply of OWMp
|
||||||
$rpt = PConfig::get(local_user(), 'curweather', 'curweather_loc');
|
$rpt = get_pconfig(local_user(), 'curweather', 'curweather_loc');
|
||||||
|
|
||||||
|
|
||||||
// set the language to the browsers language and use metric units
|
// set the language to the browsers language and use metric units
|
||||||
$lang = $_SESSION['language'];
|
$lang = $_SESSION['language'];
|
||||||
$units = PConfig::get( local_user(), 'curweather', 'curweather_units');
|
$units = get_pconfig( local_user(), 'curweather', 'curweather_units');
|
||||||
$appid = Config::get('curweather','appid');
|
$appid = get_config('curweather','appid');
|
||||||
$cachetime = intval(Config::get('curweather','cachetime'));
|
$cachetime = intval(get_config('curweather','cachetime'));
|
||||||
if ($units==="")
|
if ($units==="")
|
||||||
$units = 'metric';
|
$units = 'metric';
|
||||||
$ok = true;
|
$ok = true;
|
||||||
|
@ -111,7 +107,7 @@ function curweather_network_mod_init(&$fk_app,&$b) {
|
||||||
|
|
||||||
if ($ok) {
|
if ($ok) {
|
||||||
$t = get_markup_template("widget.tpl", "addon/curweather/" );
|
$t = get_markup_template("widget.tpl", "addon/curweather/" );
|
||||||
$curweather = replace_macros ($t, [
|
$curweather = replace_macros ($t, array(
|
||||||
'$title' => t("Current Weather"),
|
'$title' => t("Current Weather"),
|
||||||
'$icon' => proxy_url('http://openweathermap.org/img/w/'.$res['icon'].'.png'),
|
'$icon' => proxy_url('http://openweathermap.org/img/w/'.$res['icon'].'.png'),
|
||||||
'$city' => $res['city'],
|
'$city' => $res['city'],
|
||||||
|
@ -119,20 +115,20 @@ function curweather_network_mod_init(&$fk_app,&$b) {
|
||||||
'$lat' => $res['lat'],
|
'$lat' => $res['lat'],
|
||||||
'$description' => $res['descripion'],
|
'$description' => $res['descripion'],
|
||||||
'$temp' => $res['temperature'],
|
'$temp' => $res['temperature'],
|
||||||
'$relhumidity' => ['caption'=>t('Relative Humidity'), 'val'=>$res['humidity']],
|
'$relhumidity' => array('caption'=>t('Relative Humidity'), 'val'=>$res['humidity']),
|
||||||
'$pressure' => ['caption'=>t('Pressure'), 'val'=>$res['pressure']],
|
'$pressure' => array('caption'=>t('Pressure'), 'val'=>$res['pressure']),
|
||||||
'$wind' => ['caption'=>t('Wind'), 'val'=> $res['wind']],
|
'$wind' => array('caption'=>t('Wind'), 'val'=> $res['wind']),
|
||||||
'$lastupdate' => t('Last Updated').': '.$res['update'].'UTC',
|
'$lastupdate' => t('Last Updated').': '.$res['update'].'UTC',
|
||||||
'$databy' => t('Data by'),
|
'$databy' => t('Data by'),
|
||||||
'$showonmap' => t('Show on map')
|
'$showonmap' => t('Show on map')
|
||||||
]);
|
));
|
||||||
} else {
|
} else {
|
||||||
$t = get_markup_template('widget-error.tpl', 'addon/curweather/');
|
$t = get_markup_template('widget-error.tpl', 'addon/curweather/');
|
||||||
$curweather = replace_macros( $t, [
|
$curweather = replace_macros( $t, array(
|
||||||
'$problem' => t('There was a problem accessing the weather data. But have a look'),
|
'$problem' => t('There was a problem accessing the weather data. But have a look'),
|
||||||
'$rpt' => $rpt,
|
'$rpt' => $rpt,
|
||||||
'$atOWM' => t('at OpenWeatherMap')
|
'$atOWM' => t('at OpenWeatherMap')
|
||||||
]);
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
$fk_app->page['aside'] = $curweather.$fk_app->page['aside'];
|
$fk_app->page['aside'] = $curweather.$fk_app->page['aside'];
|
||||||
|
@ -143,9 +139,9 @@ function curweather_network_mod_init(&$fk_app,&$b) {
|
||||||
function curweather_plugin_settings_post($a,$post) {
|
function curweather_plugin_settings_post($a,$post) {
|
||||||
if(! local_user() || (! x($_POST,'curweather-settings-submit')))
|
if(! local_user() || (! x($_POST,'curweather-settings-submit')))
|
||||||
return;
|
return;
|
||||||
PConfig::set(local_user(),'curweather','curweather_loc',trim($_POST['curweather_loc']));
|
set_pconfig(local_user(),'curweather','curweather_loc',trim($_POST['curweather_loc']));
|
||||||
PConfig::set(local_user(),'curweather','curweather_enable',intval($_POST['curweather_enable']));
|
set_pconfig(local_user(),'curweather','curweather_enable',intval($_POST['curweather_enable']));
|
||||||
PConfig::set(local_user(),'curweather','curweather_units',trim($_POST['curweather_units']));
|
set_pconfig(local_user(),'curweather','curweather_units',trim($_POST['curweather_units']));
|
||||||
|
|
||||||
info( t('Current Weather settings updated.') . EOL);
|
info( t('Current Weather settings updated.') . EOL);
|
||||||
}
|
}
|
||||||
|
@ -158,28 +154,28 @@ function curweather_plugin_settings(&$a,&$s) {
|
||||||
|
|
||||||
/* Get the current state of our config variable */
|
/* Get the current state of our config variable */
|
||||||
|
|
||||||
$curweather_loc = PConfig::get(local_user(), 'curweather', 'curweather_loc');
|
$curweather_loc = get_pconfig(local_user(), 'curweather', 'curweather_loc');
|
||||||
$curweather_units = PConfig::get(local_user(), 'curweather', 'curweather_units');
|
$curweather_units = get_pconfig(local_user(), 'curweather', 'curweather_units');
|
||||||
$appid = Config::get('curweather','appid');
|
$appid = get_config('curweather','appid');
|
||||||
if ($appid=="") {
|
if ($appid=="") {
|
||||||
$noappidtext = t('No APPID found, please contact your admin to obtain one.');
|
$noappidtext = t('No APPID found, please contact your admin to obtain one.');
|
||||||
} else {
|
} else {
|
||||||
$noappidtext = '';
|
$noappidtext = '';
|
||||||
}
|
}
|
||||||
$enable = intval(PConfig::get(local_user(),'curweather','curweather_enable'));
|
$enable = intval(get_pconfig(local_user(),'curweather','curweather_enable'));
|
||||||
$enable_checked = (($enable) ? ' checked="checked" ' : '');
|
$enable_checked = (($enable) ? ' checked="checked" ' : '');
|
||||||
|
|
||||||
// load template and replace the macros
|
// load template and replace the macros
|
||||||
$t = get_markup_template("settings.tpl", "addon/curweather/" );
|
$t = get_markup_template("settings.tpl", "addon/curweather/" );
|
||||||
$s = replace_macros ($t, [
|
$s = replace_macros ($t, array(
|
||||||
'$submit' => t('Save Settings'),
|
'$submit' => t('Save Settings'),
|
||||||
'$header' => t('Current Weather').' '.t('Settings'),
|
'$header' => t('Current Weather').' '.t('Settings'),
|
||||||
'$noappidtext' => $noappidtext,
|
'$noappidtext' => $noappidtext,
|
||||||
'$info' => t('Enter either the name of your location or the zip code.'),
|
'$info' => t('Enter either the name of your location or the zip code.'),
|
||||||
'$curweather_loc' => [ 'curweather_loc', t('Your Location'), $curweather_loc, t('Identifier of your location (name or zip code), e.g. <em>Berlin,DE</em> or <em>14476,DE</em>.') ],
|
'$curweather_loc' => array( 'curweather_loc', t('Your Location'), $curweather_loc, t('Identifier of your location (name or zip code), e.g. <em>Berlin,DE</em> or <em>14476,DE</em>.') ),
|
||||||
'$curweather_units' => [ 'curweather_units', t('Units'), $curweather_units, t('select if the temperature should be displayed in °C or °F'), ['metric'=>'°C', 'imperial'=>'°F']],
|
'$curweather_units' => array( 'curweather_units', t('Units'), $curweather_units, t('select if the temperature should be displayed in °C or °F'), array('metric'=>'°C', 'imperial'=>'°F')),
|
||||||
'$enabled' => [ 'curweather_enable', t('Show weather data'), $enable, '']
|
'$enabled' => array( 'curweather_enable', t('Show weather data'), $enable, '')
|
||||||
]);
|
));
|
||||||
return;
|
return;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -189,20 +185,20 @@ function curweather_plugin_admin_post (&$a) {
|
||||||
if(! is_site_admin())
|
if(! is_site_admin())
|
||||||
return;
|
return;
|
||||||
if ($_POST['curweather-submit']) {
|
if ($_POST['curweather-submit']) {
|
||||||
Config::set('curweather','appid',trim($_POST['appid']));
|
set_config('curweather','appid',trim($_POST['appid']));
|
||||||
Config::set('curweather','cachetime',trim($_POST['cachetime']));
|
set_config('curweather','cachetime',trim($_POST['cachetime']));
|
||||||
info( t('Curweather settings saved.'.EOL));
|
info( t('Curweather settings saved.'.EOL));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function curweather_plugin_admin (&$a, &$o) {
|
function curweather_plugin_admin (&$a, &$o) {
|
||||||
if(! is_site_admin())
|
if(! is_site_admin())
|
||||||
return;
|
return;
|
||||||
$appid = Config::get('curweather','appid');
|
$appid = get_config('curweather','appid');
|
||||||
$cachetime = Config::get('curweather','cachetime');
|
$cachetime = get_config('curweather','cachetime');
|
||||||
$t = get_markup_template("admin.tpl", "addon/curweather/" );
|
$t = get_markup_template("admin.tpl", "addon/curweather/" );
|
||||||
$o = replace_macros ($t, [
|
$o = replace_macros ($t, array(
|
||||||
'$submit' => t('Save Settings'),
|
'$submit' => t('Save Settings'),
|
||||||
'$cachetime' => ['cachetime', t('Caching Interval'), $cachetime, t('For how long should the weather data be cached? Choose according your OpenWeatherMap account type.'), ['0'=>t('no cache'), '300'=>'5 '.t('minutes'), '900'=>'15 '.t('minutes'), '1800'=>'30 '.t('minutes'), '3600'=>'60 '.t('minutes')]],
|
'$cachetime' => array('cachetime', t('Caching Interval'), $cachetime, t('For how long should the weather data be cached? Choose according your OpenWeatherMap account type.'), array('0'=>t('no cache'), '300'=>'5 '.t('minutes'), '900'=>'15 '.t('minutes'), '1800'=>'30 '.t('minutes'), '3600'=>'60 '.t('minutes'))),
|
||||||
'$appid' => ['appid', t('Your APPID'), $appid, t('Your API key provided by OpenWeatherMap')]
|
'$appid' => array('appid', t('Your APPID'), $appid, t('Your API key provided by OpenWeatherMap'))
|
||||||
]);
|
));
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
<li>{{$wind['caption']}}: {{$wind['val']}}</li>
|
<li>{{$wind['caption']}}: {{$wind['val']}}</li>
|
||||||
</ul></p>
|
</ul></p>
|
||||||
<p class="curweather-footer">
|
<p class="curweather-footer">
|
||||||
{{$databy}}: <a href="http://openweathermap.org">OpenWeatherMap</a>. <a href="http://openweathermap.org/weathermap?basemap=map&cities=true&layer=temperature&lat={{$lat}}&lon={{$lon}}&zoom=10">{{$showonmap}}</a>
|
{{$databy}}: <a href="http://openweathermap.org">OpenWeatherMap</a>. <a href="http://openweathermap.org/Maps?zoom=7&lat={{$lat}}&lon={{$lon}}&layers=B0FTTFF">{{$showonmap}}</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="clear"></div>
|
<div class="clear"></div>
|
||||||
|
|
|
@ -1,6 +1,4 @@
|
||||||
# Calendar with CalDAV Support
|
Calendar with CalDAV Support
|
||||||
|
|
||||||
**THIS ADDON IS UNSUPPORTED**
|
|
||||||
|
|
||||||
This is a rewrite of the calendar system used by the german social network [Animexx](http://www.animexx.de/).
|
This is a rewrite of the calendar system used by the german social network [Animexx](http://www.animexx.de/).
|
||||||
It's still in a very early stage, so expect major bugs. Please feel free to report any of them, by mail (cato@animexx.de) or Friendica: http://friendica.hoessl.eu/profile/cato
|
It's still in a very early stage, so expect major bugs. Please feel free to report any of them, by mail (cato@animexx.de) or Friendica: http://friendica.hoessl.eu/profile/cato
|
||||||
|
@ -18,28 +16,28 @@ At the moment, the calendar system supports the following features:
|
||||||
- The events of a calendar can be exported as ICS file. ICS files can be imported into a calendar
|
- The events of a calendar can be exported as ICS file. ICS files can be imported into a calendar
|
||||||
|
|
||||||
|
|
||||||
## Internationalization:
|
Internationalization:
|
||||||
- At the moment, settings for the US and the german systems are selectable (regarding the date format and the first day of the week). More will be added on request.
|
- At the moment, settings for the US and the german systems are selectable (regarding the date format and the first day of the week). More will be added on request.
|
||||||
- The basic design of the system is aware of timezones; however this is not reflected in the UI yet. It currently assumes that the timezone set in the friendica-installation matches the user's local time and matches the local time set in the user's operating system.
|
- The basic design of the system is aware of timezones; however this is not reflected in the UI yet. It currently assumes that the timezone set in the friendica-installation matches the user's local time and matches the local time set in the user's operating system.
|
||||||
|
|
||||||
## CalDAV device compatibility:
|
CalDAV device compatibility:
|
||||||
- iOS (iPhone/iPodTouch) works
|
- iOS (iPhone/iPodTouch) works
|
||||||
- Thunderbird Lightning works
|
- Thunderbird Lightning works
|
||||||
- Android:
|
- Android:
|
||||||
- aCal (http://andrew.mcmillan.net.nz/projects/aCal) works, available in F-Droid and Google Play
|
- aCal (http://andrew.mcmillan.net.nz/projects/aCal) works, available in F-Droid and Google Play
|
||||||
- CalDAV-Sync (http://dmfs.org/caldav/) works, non-free
|
- CalDAV-Sync (http://dmfs.org/caldav/) works, non-free
|
||||||
|
|
||||||
## Installation
|
Installation
|
||||||
After activating, serveral tables in the database have to be created. The admin-interface of the plugin will try to do this automatically.
|
After activating, serveral tables in the database have to be created. The admin-interface of the plugin will try to do this automatically.
|
||||||
In case of errors, the SQL-statement to create the tables manually are shown in the admin-interface.
|
In case of errors, the SQL-statement to create the tables manually are shown in the admin-interface.
|
||||||
|
|
||||||
|
|
||||||
## Functuality missing: (a.k.a. "Roadmap")
|
Functuality missing: (a.k.a. "Roadmap")
|
||||||
- Sharing events; all events are private at the moment, therefore this system is not a complete replacement for the friendica-native events
|
- Sharing events; all events are private at the moment, therefore this system is not a complete replacement for the friendica-native events
|
||||||
- Attendees / Collaboration
|
- Attendees / Collaboration
|
||||||
|
|
||||||
|
|
||||||
## Used libraries
|
Used libraries
|
||||||
|
|
||||||
SabreDAV
|
SabreDAV
|
||||||
http://code.google.com/p/sabredav/
|
http://code.google.com/p/sabredav/
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
use Friendica\Core\PConfig;
|
|
||||||
|
|
||||||
abstract class wdcal_local
|
abstract class wdcal_local
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -36,7 +34,7 @@ abstract class wdcal_local
|
||||||
* @return wdcal_local
|
* @return wdcal_local
|
||||||
*/
|
*/
|
||||||
static function getInstanceByUser($uid = 0) {
|
static function getInstanceByUser($uid = 0) {
|
||||||
$dateformat = PConfig::get($uid, "dav", "dateformat");
|
$dateformat = get_pconfig($uid, "dav", "dateformat");
|
||||||
$format = self::getInstance($dateformat);
|
$format = self::getInstance($dateformat);
|
||||||
if ($format == null) $format = self::getInstance(self::LOCAL_US);
|
if ($format == null) $format = self::getInstance(self::LOCAL_US);
|
||||||
return $format;
|
return $format;
|
||||||
|
|
|
@ -4,10 +4,9 @@
|
||||||
* Description: A web-based calendar system with CalDAV-support. Also brings your Friendica-Contacts to your CardDAV-capable mobile phone. Requires PHP >= 5.3.
|
* Description: A web-based calendar system with CalDAV-support. Also brings your Friendica-Contacts to your CardDAV-capable mobile phone. Requires PHP >= 5.3.
|
||||||
* Version: 0.3.0
|
* Version: 0.3.0
|
||||||
* Author: Tobias Hößl <https://github.com/CatoTH/>
|
* Author: Tobias Hößl <https://github.com/CatoTH/>
|
||||||
* Status: Unsupported
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$_v = explode(".", phpversion());
|
$_v = explode(".", phpversion());
|
||||||
if ($_v[0] > 5 || ($_v[0] == 5 && $_v[1] >= 3)) {
|
if ($_v[0] > 5 || ($_v[0] == 5 && $_v[1] >= 3)) {
|
||||||
require(__DIR__ . "/friendica/main.php");
|
require(__DIR__ . "/friendica/main.php");
|
||||||
}
|
}
|
|
@ -16,13 +16,13 @@ define("CALDAV_NAMESPACE_PRIVATE", 1);
|
||||||
define("CALDAV_FRIENDICA_MINE", "friendica-mine");
|
define("CALDAV_FRIENDICA_MINE", "friendica-mine");
|
||||||
define("CALDAV_FRIENDICA_CONTACTS", "friendica-contacts");
|
define("CALDAV_FRIENDICA_CONTACTS", "friendica-contacts");
|
||||||
|
|
||||||
$GLOBALS["CALDAV_PRIVATE_SYSTEM_CALENDARS"] = [CALDAV_FRIENDICA_MINE, CALDAV_FRIENDICA_CONTACTS];
|
$GLOBALS["CALDAV_PRIVATE_SYSTEM_CALENDARS"] = array(CALDAV_FRIENDICA_MINE, CALDAV_FRIENDICA_CONTACTS);
|
||||||
$GLOBALS["CALDAV_PRIVATE_SYSTEM_BACKENDS"] = ["Sabre_CalDAV_Backend_Friendica"];
|
$GLOBALS["CALDAV_PRIVATE_SYSTEM_BACKENDS"] = array("Sabre_CalDAV_Backend_Friendica");
|
||||||
|
|
||||||
define("CARDDAV_NAMESPACE_PRIVATE", 1);
|
define("CARDDAV_NAMESPACE_PRIVATE", 1);
|
||||||
define("CARDDAV_FRIENDICA_CONTACT", "friendica");
|
define("CARDDAV_FRIENDICA_CONTACT", "friendica");
|
||||||
$GLOBALS["CARDDAV_PRIVATE_SYSTEM_ADDRESSBOOKS"] = [CARDDAV_FRIENDICA_CONTACT];
|
$GLOBALS["CARDDAV_PRIVATE_SYSTEM_ADDRESSBOOKS"] = array(CARDDAV_FRIENDICA_CONTACT);
|
||||||
$GLOBALS["CARDDAV_PRIVATE_SYSTEM_BACKENDS"] = ["Sabre_CardDAV_Backend_Friendica"];
|
$GLOBALS["CARDDAV_PRIVATE_SYSTEM_BACKENDS"] = array("Sabre_CardDAV_Backend_Friendica");
|
||||||
|
|
||||||
$GLOBALS["CALDAV_ACL_PLUGIN_CLASS"] = "Sabre_DAVACL_Plugin_Friendica";
|
$GLOBALS["CALDAV_ACL_PLUGIN_CLASS"] = "Sabre_DAVACL_Plugin_Friendica";
|
||||||
|
|
||||||
|
@ -106,7 +106,7 @@ function dav_compat_principal2namespace($principalUri = "")
|
||||||
|
|
||||||
if (strpos($principalUri, "principals/users/") !== 0) return null;
|
if (strpos($principalUri, "principals/users/") !== 0) return null;
|
||||||
$username = substr($principalUri, strlen("principals/users/"));
|
$username = substr($principalUri, strlen("principals/users/"));
|
||||||
return ["namespace" => CALDAV_NAMESPACE_PRIVATE, "namespace_id" => dav_compat_username2id($username)];
|
return array("namespace" => CALDAV_NAMESPACE_PRIVATE, "namespace_id" => dav_compat_username2id($username));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -200,13 +200,13 @@ function wdcal_calendar_factory_by_id($calendar_id)
|
||||||
*/
|
*/
|
||||||
function wdcal_create_std_calendars_get_statements($user_id, $withcheck = true)
|
function wdcal_create_std_calendars_get_statements($user_id, $withcheck = true)
|
||||||
{
|
{
|
||||||
$stms = [];
|
$stms = array();
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
$uris = [
|
$uris = array(
|
||||||
'private' => t("Private Calendar"),
|
'private' => t("Private Calendar"),
|
||||||
CALDAV_FRIENDICA_MINE => t("Friendica Events: Mine"),
|
CALDAV_FRIENDICA_MINE => t("Friendica Events: Mine"),
|
||||||
CALDAV_FRIENDICA_CONTACTS => t("Friendica Events: Contacts"),
|
CALDAV_FRIENDICA_CONTACTS => t("Friendica Events: Contacts"),
|
||||||
];
|
);
|
||||||
foreach ($uris as $uri => $name) {
|
foreach ($uris as $uri => $name) {
|
||||||
$cals = q("SELECT * FROM %s%scalendars WHERE `namespace` = %d AND `namespace_id` = %d AND `uri` = '%s'",
|
$cals = q("SELECT * FROM %s%scalendars WHERE `namespace` = %d AND `namespace_id` = %d AND `uri` = '%s'",
|
||||||
CALDAV_SQL_DB, CALDAV_SQL_PREFIX, CALDAV_NAMESPACE_PRIVATE, IntVal($user_id), dbesc($uri));
|
CALDAV_SQL_DB, CALDAV_SQL_PREFIX, CALDAV_NAMESPACE_PRIVATE, IntVal($user_id), dbesc($uri));
|
||||||
|
@ -242,12 +242,12 @@ function wdcal_create_std_calendars()
|
||||||
*/
|
*/
|
||||||
function wdcal_create_std_addressbooks_get_statements($user_id, $withcheck = true)
|
function wdcal_create_std_addressbooks_get_statements($user_id, $withcheck = true)
|
||||||
{
|
{
|
||||||
$stms = [];
|
$stms = array();
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
$uris = [
|
$uris = array(
|
||||||
'private' => t("Private Addresses"),
|
'private' => t("Private Addresses"),
|
||||||
CARDDAV_FRIENDICA_CONTACT => t("Friendica Contacts"),
|
CARDDAV_FRIENDICA_CONTACT => t("Friendica Contacts"),
|
||||||
];
|
);
|
||||||
foreach ($uris as $uri => $name) {
|
foreach ($uris as $uri => $name) {
|
||||||
$cals = q("SELECT * FROM %s%saddressbooks WHERE `namespace` = %d AND `namespace_id` = %d AND `uri` = '%s'",
|
$cals = q("SELECT * FROM %s%saddressbooks WHERE `namespace` = %d AND `namespace_id` = %d AND `uri` = '%s'",
|
||||||
CALDAV_SQL_DB, CALDAV_SQL_PREFIX, CALDAV_NAMESPACE_PRIVATE, IntVal($user_id), dbesc($uri));
|
CALDAV_SQL_DB, CALDAV_SQL_PREFIX, CALDAV_NAMESPACE_PRIVATE, IntVal($user_id), dbesc($uri));
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
*/
|
*/
|
||||||
function dav_get_update_statements($from_version)
|
function dav_get_update_statements($from_version)
|
||||||
{
|
{
|
||||||
$stms = [];
|
$stms = array();
|
||||||
|
|
||||||
if ($from_version == 1) {
|
if ($from_version == 1) {
|
||||||
$stms[] = "ALTER TABLE `dav_calendarobjects`
|
$stms[] = "ALTER TABLE `dav_calendarobjects`
|
||||||
|
@ -30,7 +30,7 @@ function dav_get_update_statements($from_version)
|
||||||
`dav_locks` ,
|
`dav_locks` ,
|
||||||
`dav_notifications` ;";
|
`dav_notifications` ;";
|
||||||
|
|
||||||
$stms = array_merge($stms, dav_get_create_statements(["dav_calendarobjects"]));
|
$stms = array_merge($stms, dav_get_create_statements(array("dav_calendarobjects")));
|
||||||
|
|
||||||
$user_ids = q("SELECT DISTINCT `uid` FROM %s%scalendars", CALDAV_SQL_DB, CALDAV_SQL_PREFIX);
|
$user_ids = q("SELECT DISTINCT `uid` FROM %s%scalendars", CALDAV_SQL_DB, CALDAV_SQL_PREFIX);
|
||||||
foreach ($user_ids as $user) $stms = array_merge($stms, wdcal_create_std_calendars_get_statements($user["uid"], false));
|
foreach ($user_ids as $user) $stms = array_merge($stms, wdcal_create_std_calendars_get_statements($user["uid"], false));
|
||||||
|
@ -43,7 +43,7 @@ function dav_get_update_statements($from_version)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (in_array($from_version, [1, 2])) {
|
if (in_array($from_version, array(1, 2))) {
|
||||||
$stms[] = "CREATE TABLE IF NOT EXISTS `dav_addressbooks` (
|
$stms[] = "CREATE TABLE IF NOT EXISTS `dav_addressbooks` (
|
||||||
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
`namespace` mediumint(9) NOT NULL,
|
`namespace` mediumint(9) NOT NULL,
|
||||||
|
@ -80,9 +80,9 @@ function dav_get_update_statements($from_version)
|
||||||
* @param array $except
|
* @param array $except
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
function dav_get_create_statements($except = [])
|
function dav_get_create_statements($except = array())
|
||||||
{
|
{
|
||||||
$arr = [];
|
$arr = array();
|
||||||
|
|
||||||
if (!in_array("dav_caldav_log", $except)) $arr[] = "CREATE TABLE IF NOT EXISTS `dav_caldav_log` (
|
if (!in_array("dav_caldav_log", $except)) $arr[] = "CREATE TABLE IF NOT EXISTS `dav_caldav_log` (
|
||||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
@ -240,7 +240,7 @@ function dav_check_tables()
|
||||||
function dav_create_tables()
|
function dav_create_tables()
|
||||||
{
|
{
|
||||||
$stms = dav_get_create_statements();
|
$stms = dav_get_create_statements();
|
||||||
$errors = [];
|
$errors = array();
|
||||||
|
|
||||||
foreach ($stms as $st) { // @TODO Friendica-dependent
|
foreach ($stms as $st) { // @TODO Friendica-dependent
|
||||||
dba::e($st);
|
dba::e($st);
|
||||||
|
@ -258,10 +258,10 @@ function dav_create_tables()
|
||||||
function dav_upgrade_tables()
|
function dav_upgrade_tables()
|
||||||
{
|
{
|
||||||
$ver = dav_check_tables();
|
$ver = dav_check_tables();
|
||||||
if (!in_array($ver, [1, 2])) return ["Unknown error"];
|
if (!in_array($ver, array(1, 2))) return array("Unknown error");
|
||||||
$stms = dav_get_update_statements($ver);
|
$stms = dav_get_update_statements($ver);
|
||||||
|
|
||||||
$errors = [];
|
$errors = array();
|
||||||
|
|
||||||
foreach ($stms as $st) { // @TODO Friendica-dependent
|
foreach ($stms as $st) { // @TODO Friendica-dependent
|
||||||
dba::e($st);
|
dba::e($st);
|
||||||
|
|
|
@ -124,7 +124,7 @@ class Sabre_CalDAV_Backend_Friendica extends Sabre_CalDAV_Backend_Virtual
|
||||||
|
|
||||||
$summary = (($row["summary"]) ? $row["summary"] : substr(preg_replace("/\[[^\]]*\]/", "", $row["desc"]), 0, 100));
|
$summary = (($row["summary"]) ? $row["summary"] : substr(preg_replace("/\[[^\]]*\]/", "", $row["desc"]), 0, 100));
|
||||||
|
|
||||||
return [
|
return array(
|
||||||
"jq_id" => $row["id"],
|
"jq_id" => $row["id"],
|
||||||
"ev_id" => $row["id"],
|
"ev_id" => $row["id"],
|
||||||
"summary" => escape_tags($summary),
|
"summary" => escape_tags($summary),
|
||||||
|
@ -142,7 +142,7 @@ class Sabre_CalDAV_Backend_Friendica extends Sabre_CalDAV_Backend_Virtual
|
||||||
"url_detail" => $base_path . "/events/event/" . $row["id"],
|
"url_detail" => $base_path . "/events/event/" . $row["id"],
|
||||||
"url_edit" => "",
|
"url_edit" => "",
|
||||||
"special_type" => ($row["type"] == "birthday" ? "birthday" : ""),
|
"special_type" => ($row["type"] == "birthday" ? "birthday" : ""),
|
||||||
];
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -179,7 +179,7 @@ class Sabre_CalDAV_Backend_Friendica extends Sabre_CalDAV_Backend_Virtual
|
||||||
if (is_numeric($date_to)) $sql_where .= " AND `start` <= '" . date("Y-m-d H:i:s", $date_to) . "'";
|
if (is_numeric($date_to)) $sql_where .= " AND `start` <= '" . date("Y-m-d H:i:s", $date_to) . "'";
|
||||||
else $sql_where .= " AND `start` <= '" . dbesc($date_to) . "'";
|
else $sql_where .= " AND `start` <= '" . dbesc($date_to) . "'";
|
||||||
}
|
}
|
||||||
$ret = [];
|
$ret = array();
|
||||||
|
|
||||||
$r = q("SELECT * FROM `event` WHERE `uid` = %d " . $sql_where . " ORDER BY `start`", IntVal($calendar["namespace_id"]));
|
$r = q("SELECT * FROM `event` WHERE `uid` = %d " . $sql_where . " ORDER BY `start`", IntVal($calendar["namespace_id"]));
|
||||||
|
|
||||||
|
@ -214,21 +214,21 @@ class Sabre_CalDAV_Backend_Friendica extends Sabre_CalDAV_Backend_Virtual
|
||||||
public function getCalendarsForUser($principalUri)
|
public function getCalendarsForUser($principalUri)
|
||||||
{
|
{
|
||||||
$n = dav_compat_principal2namespace($principalUri);
|
$n = dav_compat_principal2namespace($principalUri);
|
||||||
if ($n["namespace"] != $this->getNamespace()) return [];
|
if ($n["namespace"] != $this->getNamespace()) return array();
|
||||||
|
|
||||||
$cals = q("SELECT * FROM %s%scalendars WHERE `namespace` = %d AND `namespace_id` = %d", CALDAV_SQL_DB, CALDAV_SQL_PREFIX, $this->getNamespace(), IntVal($n["namespace_id"]));
|
$cals = q("SELECT * FROM %s%scalendars WHERE `namespace` = %d AND `namespace_id` = %d", CALDAV_SQL_DB, CALDAV_SQL_PREFIX, $this->getNamespace(), IntVal($n["namespace_id"]));
|
||||||
$ret = [];
|
$ret = array();
|
||||||
foreach ($cals as $cal) {
|
foreach ($cals as $cal) {
|
||||||
if (!in_array($cal["uri"], $GLOBALS["CALDAV_PRIVATE_SYSTEM_CALENDARS"])) continue;
|
if (!in_array($cal["uri"], $GLOBALS["CALDAV_PRIVATE_SYSTEM_CALENDARS"])) continue;
|
||||||
|
|
||||||
$dat = [
|
$dat = array(
|
||||||
"id" => $cal["id"],
|
"id" => $cal["id"],
|
||||||
"uri" => $cal["uri"],
|
"uri" => $cal["uri"],
|
||||||
"principaluri" => $principalUri,
|
"principaluri" => $principalUri,
|
||||||
'{' . Sabre_CalDAV_Plugin::NS_CALENDARSERVER . '}getctag' => $cal['ctag'] ? $cal['ctag'] : '0',
|
'{' . Sabre_CalDAV_Plugin::NS_CALENDARSERVER . '}getctag' => $cal['ctag'] ? $cal['ctag'] : '0',
|
||||||
'{' . Sabre_CalDAV_Plugin::NS_CALDAV . '}supported-calendar-component-set' => new Sabre_CalDAV_Property_SupportedCalendarComponentSet(["VEVENT"]),
|
'{' . Sabre_CalDAV_Plugin::NS_CALDAV . '}supported-calendar-component-set' => new Sabre_CalDAV_Property_SupportedCalendarComponentSet(array("VEVENT")),
|
||||||
"calendar_class" => "Sabre_CalDAV_Calendar_Virtual",
|
"calendar_class" => "Sabre_CalDAV_Calendar_Virtual",
|
||||||
];
|
);
|
||||||
foreach ($this->propertyMap as $key=> $field) $dat[$key] = $cal[$field];
|
foreach ($this->propertyMap as $key=> $field) $dat[$key] = $cal[$field];
|
||||||
|
|
||||||
$ret[] = $dat;
|
$ret[] = $dat;
|
||||||
|
|
|
@ -46,13 +46,13 @@ class Sabre_CardDAV_Backend_Friendica extends Sabre_CardDAV_Backend_Virtual
|
||||||
{
|
{
|
||||||
$uid = dav_compat_principal2uid($principalUri);
|
$uid = dav_compat_principal2uid($principalUri);
|
||||||
|
|
||||||
$addressBooks = [];
|
$addressBooks = array();
|
||||||
|
|
||||||
$books = q("SELECT id, ctag FROM %s%saddressbooks WHERE `namespace` = %d AND `namespace_id` = %d AND `uri` = '%s'",
|
$books = q("SELECT id, ctag FROM %s%saddressbooks WHERE `namespace` = %d AND `namespace_id` = %d AND `uri` = '%s'",
|
||||||
CALDAV_SQL_DB, CALDAV_SQL_PREFIX, CARDDAV_NAMESPACE_PRIVATE, IntVal($uid), dbesc(CARDDAV_FRIENDICA_CONTACT));
|
CALDAV_SQL_DB, CALDAV_SQL_PREFIX, CARDDAV_NAMESPACE_PRIVATE, IntVal($uid), dbesc(CARDDAV_FRIENDICA_CONTACT));
|
||||||
$ctag = $books[0]["ctag"];
|
$ctag = $books[0]["ctag"];
|
||||||
|
|
||||||
$addressBooks[] = [
|
$addressBooks[] = array(
|
||||||
'id' => $books[0]["id"],
|
'id' => $books[0]["id"],
|
||||||
'uri' => "friendica",
|
'uri' => "friendica",
|
||||||
'principaluri' => $principalUri,
|
'principaluri' => $principalUri,
|
||||||
|
@ -61,7 +61,7 @@ class Sabre_CardDAV_Backend_Friendica extends Sabre_CardDAV_Backend_Virtual
|
||||||
'{http://calendarserver.org/ns/}getctag' => $ctag,
|
'{http://calendarserver.org/ns/}getctag' => $ctag,
|
||||||
'{' . Sabre_CardDAV_Plugin::NS_CARDDAV . '}supported-address-data' =>
|
'{' . Sabre_CardDAV_Plugin::NS_CARDDAV . '}supported-address-data' =>
|
||||||
new Sabre_CardDAV_Property_SupportedAddressData(),
|
new Sabre_CardDAV_Property_SupportedAddressData(),
|
||||||
];
|
);
|
||||||
|
|
||||||
return $addressBooks;
|
return $addressBooks;
|
||||||
|
|
||||||
|
@ -76,7 +76,7 @@ class Sabre_CardDAV_Backend_Friendica extends Sabre_CardDAV_Backend_Virtual
|
||||||
{
|
{
|
||||||
$name = explode(" ", $contact["name"]);
|
$name = explode(" ", $contact["name"]);
|
||||||
$first_name = $last_name = "";
|
$first_name = $last_name = "";
|
||||||
$middle_name = [];
|
$middle_name = array();
|
||||||
$num = count($name);
|
$num = count($name);
|
||||||
for ($i = 0; $i < $num && $first_name == ""; $i++) if ($name[$i] != "") {
|
for ($i = 0; $i < $num && $first_name == ""; $i++) if ($name[$i] != "") {
|
||||||
$first_name = $name[$i];
|
$first_name = $name[$i];
|
||||||
|
@ -114,14 +114,14 @@ class Sabre_CardDAV_Backend_Friendica extends Sabre_CardDAV_Backend_Virtual
|
||||||
}
|
}
|
||||||
|
|
||||||
$vcard = vcard_source_compile($vcarddata);
|
$vcard = vcard_source_compile($vcarddata);
|
||||||
return [
|
return array(
|
||||||
"id" => $contact["id"],
|
"id" => $contact["id"],
|
||||||
"carddata" => $vcard,
|
"carddata" => $vcard,
|
||||||
"uri" => $contact["id"] . ".vcf",
|
"uri" => $contact["id"] . ".vcf",
|
||||||
"lastmodified" => wdcal_mySql2PhpTime($vcarddata->last_update),
|
"lastmodified" => wdcal_mySql2PhpTime($vcarddata->last_update),
|
||||||
"etag" => md5($vcard),
|
"etag" => md5($vcard),
|
||||||
"size" => strlen($vcard),
|
"size" => strlen($vcard),
|
||||||
];
|
);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,41 +1,41 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
use Friendica\Model\User;
|
class Sabre_DAV_Auth_Backend_Std extends Sabre_DAV_Auth_Backend_AbstractBasic {
|
||||||
|
|
||||||
|
public function __construct() {
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
class Sabre_DAV_Auth_Backend_Std extends Sabre_DAV_Auth_Backend_AbstractBasic
|
|
||||||
{
|
|
||||||
/**
|
/**
|
||||||
* @var Sabre_DAV_Auth_Backend_Std|null
|
* @var Sabre_DAV_Auth_Backend_Std|null
|
||||||
*/
|
*/
|
||||||
private static $instance = null;
|
private static $intstance = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @static
|
* @static
|
||||||
* @return Sabre_DAV_Auth_Backend_Std
|
* @return Sabre_DAV_Auth_Backend_Std
|
||||||
*/
|
*/
|
||||||
public static function getInstance()
|
public static function &getInstance() {
|
||||||
{
|
if (is_null(self::$intstance)) {
|
||||||
if (is_null(self::$instance)) {
|
self::$intstance = new Sabre_DAV_Auth_Backend_Std();
|
||||||
self::$instance = new Sabre_DAV_Auth_Backend_Std();
|
|
||||||
}
|
}
|
||||||
return self::$instance;
|
return self::$intstance;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function getUsers()
|
public function getUsers() {
|
||||||
{
|
return array($this->currentUser);
|
||||||
return [$this->currentUser];
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return null|string
|
* @return null|string
|
||||||
*/
|
*/
|
||||||
public function getCurrentUser()
|
public function getCurrentUser() {
|
||||||
{
|
return $this->currentUser;
|
||||||
return $this->currentUser;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Authenticates the user based on the current request.
|
* Authenticates the user based on the current request.
|
||||||
|
@ -48,8 +48,8 @@ class Sabre_DAV_Auth_Backend_Std extends Sabre_DAV_Auth_Backend_AbstractBasic
|
||||||
* @throws Sabre_DAV_Exception_NotAuthenticated
|
* @throws Sabre_DAV_Exception_NotAuthenticated
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public function authenticate(Sabre_DAV_Server $server, $realm)
|
public function authenticate(Sabre_DAV_Server $server, $realm) {
|
||||||
{
|
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
if (isset($a->user["uid"])) {
|
if (isset($a->user["uid"])) {
|
||||||
$this->currentUser = strtolower($a->user["nickname"]);
|
$this->currentUser = strtolower($a->user["nickname"]);
|
||||||
|
@ -67,7 +67,7 @@ class Sabre_DAV_Auth_Backend_Std extends Sabre_DAV_Auth_Backend_AbstractBasic
|
||||||
}
|
}
|
||||||
|
|
||||||
// Authenticates the user
|
// Authenticates the user
|
||||||
if (!$this->validateUserPass($userpass[0], $userpass[1])) {
|
if (!$this->validateUserPass($userpass[0],$userpass[1])) {
|
||||||
$auth->requireLogin();
|
$auth->requireLogin();
|
||||||
throw new Sabre_DAV_Exception_NotAuthenticated('Username or password does not match');
|
throw new Sabre_DAV_Exception_NotAuthenticated('Username or password does not match');
|
||||||
}
|
}
|
||||||
|
@ -75,13 +75,19 @@ class Sabre_DAV_Auth_Backend_Std extends Sabre_DAV_Auth_Backend_AbstractBasic
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $username
|
* @param string $username
|
||||||
* @param string $password
|
* @param string $password
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
protected function validateUserPass($username, $password)
|
protected function validateUserPass($username, $password) {
|
||||||
{
|
$encrypted = hash('whirlpool',trim($password));
|
||||||
return User::authenticate($username, $password);
|
$r = q("SELECT COUNT(*) anz FROM `user` WHERE `nickname` = '%s' AND `password` = '%s' AND `blocked` = 0 AND `account_expired` = 0 AND `verified` = 1 LIMIT 1",
|
||||||
}
|
dbesc(trim($username)),
|
||||||
|
dbesc($encrypted)
|
||||||
|
);
|
||||||
|
return ($r[0]["anz"] == 1);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -61,16 +61,16 @@ class Sabre_DAVACL_PrincipalBackend_Std implements Sabre_DAVACL_IPrincipalBacken
|
||||||
{
|
{
|
||||||
|
|
||||||
// This backend only support principals in one collection
|
// This backend only support principals in one collection
|
||||||
if ($prefixPath !== $this->prefix) return [];
|
if ($prefixPath !== $this->prefix) return array();
|
||||||
|
|
||||||
$users = [];
|
$users = array();
|
||||||
|
|
||||||
$r = q("SELECT `nickname` FROM `user` WHERE `nickname` = '%s'", escape_tags($this->authBackend->getCurrentUser()) );
|
$r = q("SELECT `nickname` FROM `user` WHERE `nickname` = '%s'", escape_tags($this->authBackend->getCurrentUser()) );
|
||||||
foreach ($r as $t) {
|
foreach ($r as $t) {
|
||||||
$users[] = [
|
$users[] = array(
|
||||||
'uri' => $this->prefix . '/' . strtolower($t['nickname']),
|
'uri' => $this->prefix . '/' . strtolower($t['nickname']),
|
||||||
'{DAV:}displayname' => $t['nickname'],
|
'{DAV:}displayname' => $t['nickname'],
|
||||||
];
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $users;
|
return $users;
|
||||||
|
@ -94,24 +94,24 @@ class Sabre_DAVACL_PrincipalBackend_Std implements Sabre_DAVACL_IPrincipalBacken
|
||||||
if ($prefixPath !== $this->prefix) return null;
|
if ($prefixPath !== $this->prefix) return null;
|
||||||
|
|
||||||
$r = q("SELECT `nickname` FROM `user` WHERE `nickname` = '%s'", escape_tags($userName) );
|
$r = q("SELECT `nickname` FROM `user` WHERE `nickname` = '%s'", escape_tags($userName) );
|
||||||
if (count($r) == 0) return [];
|
if (count($r) == 0) return array();
|
||||||
|
|
||||||
return [
|
return array(
|
||||||
'uri' => $this->prefix . '/' . strtolower($r[0]['nickname']),
|
'uri' => $this->prefix . '/' . strtolower($r[0]['nickname']),
|
||||||
'{DAV:}displayname' => $r[0]['nickname'],
|
'{DAV:}displayname' => $r[0]['nickname'],
|
||||||
];
|
);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function getGroupMemberSet($principal)
|
function getGroupMemberSet($principal)
|
||||||
{
|
{
|
||||||
return [];
|
return array();
|
||||||
}
|
}
|
||||||
|
|
||||||
function getGroupMembership($principal)
|
function getGroupMembership($principal)
|
||||||
{
|
{
|
||||||
return [];
|
return array();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
use Friendica\Core\Config;
|
|
||||||
use Friendica\Core\PConfig;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
@ -25,7 +23,7 @@ function wdcal_addRequiredHeaders()
|
||||||
$a->page['htmlhead'] .= '<link rel="stylesheet" type="text/css" href="' . $a->get_baseurl() . '/addon/dav/wdcal/css/calendar.css' . '" media="all" />' . "\r\n";
|
$a->page['htmlhead'] .= '<link rel="stylesheet" type="text/css" href="' . $a->get_baseurl() . '/addon/dav/wdcal/css/calendar.css' . '" media="all" />' . "\r\n";
|
||||||
$a->page['htmlhead'] .= '<link rel="stylesheet" type="text/css" href="' . $a->get_baseurl() . '/addon/dav/wdcal/css/main.css' . '" media="all" />' . "\r\n";
|
$a->page['htmlhead'] .= '<link rel="stylesheet" type="text/css" href="' . $a->get_baseurl() . '/addon/dav/wdcal/css/main.css' . '" media="all" />' . "\r\n";
|
||||||
|
|
||||||
switch (Config::get("system", "language")) {
|
switch (get_config("system", "language")) {
|
||||||
case "de":
|
case "de":
|
||||||
$a->page['htmlhead'] .= '<script type="text/javascript" src="' . $a->get_baseurl() . '/addon/dav/common/wdcal/js/wdCalendar_lang_DE.js"></script>' . "\r\n";
|
$a->page['htmlhead'] .= '<script type="text/javascript" src="' . $a->get_baseurl() . '/addon/dav/common/wdcal/js/wdCalendar_lang_DE.js"></script>' . "\r\n";
|
||||||
$a->page['htmlhead'] .= '<script type="text/javascript" src="' . $a->get_baseurl() . '/addon/dav/jqueryui/jquery.ui.datepicker-de.js"></script>' . "\r\n";
|
$a->page['htmlhead'] .= '<script type="text/javascript" src="' . $a->get_baseurl() . '/addon/dav/jqueryui/jquery.ui.datepicker-de.js"></script>' . "\r\n";
|
||||||
|
@ -80,7 +78,7 @@ function wdcal_import_user_ics($calendar_id) {
|
||||||
|
|
||||||
$server = dav_create_server(true, true, false);
|
$server = dav_create_server(true, true, false);
|
||||||
$calendar = dav_get_current_user_calendar_by_id($server, $calendar_id, DAV_ACL_WRITE);
|
$calendar = dav_get_current_user_calendar_by_id($server, $calendar_id, DAV_ACL_WRITE);
|
||||||
if (!$calendar) goaway('dav/wdcal/');
|
if (!$calendar) goaway($a->get_baseurl() . "/dav/wdcal/");
|
||||||
|
|
||||||
if (isset($_REQUEST["save"])) {
|
if (isset($_REQUEST["save"])) {
|
||||||
check_form_security_token_redirectOnErr('/dav/settings/', 'icsimport');
|
check_form_security_token_redirectOnErr('/dav/settings/', 'icsimport');
|
||||||
|
@ -91,7 +89,7 @@ function wdcal_import_user_ics($calendar_id) {
|
||||||
/** @var Sabre\VObject\Component\VCalendar $vObject */
|
/** @var Sabre\VObject\Component\VCalendar $vObject */
|
||||||
$vObject = Sabre\VObject\Reader::read($text);
|
$vObject = Sabre\VObject\Reader::read($text);
|
||||||
$comp = $vObject->getComponents();
|
$comp = $vObject->getComponents();
|
||||||
$imported = [];
|
$imported = array();
|
||||||
foreach ($comp as $c) try {
|
foreach ($comp as $c) try {
|
||||||
/** @var Sabre\VObject\Component\VEvent $c */
|
/** @var Sabre\VObject\Component\VEvent $c */
|
||||||
$uid = $c->__get("UID")->value;
|
$uid = $c->__get("UID")->value;
|
||||||
|
@ -171,18 +169,18 @@ function wdcal_import_user_ics($calendar_id) {
|
||||||
* @param bool $show_nav
|
* @param bool $show_nav
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
function wdcal_printCalendar($calendars, $calendars_selected, $data_feed_url, $view = "week", $theme = 0, $height_diff = 175, $readonly = false, $curr_day = "", $add_params = [], $show_nav = true)
|
function wdcal_printCalendar($calendars, $calendars_selected, $data_feed_url, $view = "week", $theme = 0, $height_diff = 175, $readonly = false, $curr_day = "", $add_params = array(), $show_nav = true)
|
||||||
{
|
{
|
||||||
|
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
$localization = wdcal_local::getInstanceByUser($a->user["uid"]);
|
$localization = wdcal_local::getInstanceByUser($a->user["uid"]);
|
||||||
|
|
||||||
if (count($calendars_selected) == 0) foreach ($calendars as $c) {
|
if (count($calendars_selected) == 0) foreach ($calendars as $c) {
|
||||||
$prop = $c->getProperties(["id"]);
|
$prop = $c->getProperties(array("id"));
|
||||||
$calendars_selected[] = $prop["id"];
|
$calendars_selected[] = $prop["id"];
|
||||||
}
|
}
|
||||||
|
|
||||||
$opts = [
|
$opts = array(
|
||||||
"view" => $view,
|
"view" => $view,
|
||||||
"theme" => $theme,
|
"theme" => $theme,
|
||||||
"readonly" => $readonly,
|
"readonly" => $readonly,
|
||||||
|
@ -194,7 +192,7 @@ function wdcal_printCalendar($calendars, $calendars_selected, $data_feed_url, $v
|
||||||
"date_format_dm3" => $localization->dateformat_js_dm3(),
|
"date_format_dm3" => $localization->dateformat_js_dm3(),
|
||||||
"date_format_full" => $localization->dateformat_datepicker_js(),
|
"date_format_full" => $localization->dateformat_datepicker_js(),
|
||||||
"baseurl" => $a->get_baseurl() . "/dav/wdcal/",
|
"baseurl" => $a->get_baseurl() . "/dav/wdcal/",
|
||||||
];
|
);
|
||||||
|
|
||||||
$x = '
|
$x = '
|
||||||
<script>
|
<script>
|
||||||
|
@ -207,7 +205,7 @@ function wdcal_printCalendar($calendars, $calendars_selected, $data_feed_url, $v
|
||||||
<div class="calselect"><strong>Available Calendars:</strong>';
|
<div class="calselect"><strong>Available Calendars:</strong>';
|
||||||
|
|
||||||
foreach ($calendars as $cal) {
|
foreach ($calendars as $cal) {
|
||||||
$cal_id = $cal->getProperties(["id", DAV_DISPLAYNAME]);
|
$cal_id = $cal->getProperties(array("id", DAV_DISPLAYNAME));
|
||||||
$x .= '<label style="margin-left: 10px; margin-right: 10px;"><input type="checkbox" name="cals[]" value="' . $cal_id["id"] . '"';
|
$x .= '<label style="margin-left: 10px; margin-right: 10px;"><input type="checkbox" name="cals[]" value="' . $cal_id["id"] . '"';
|
||||||
$found = false;
|
$found = false;
|
||||||
foreach ($calendars_selected as $pre) if ($pre["id"] == $cal_id["id"]) $found = true;
|
foreach ($calendars_selected as $pre) if ($pre["id"] == $cal_id["id"]) $found = true;
|
||||||
|
@ -308,12 +306,12 @@ function wdcal_getDetailPage($calendar_id, $calendarobject_id)
|
||||||
$calbackend = wdcal_calendar_factory_by_id($calendar_id);
|
$calbackend = wdcal_calendar_factory_by_id($calendar_id);
|
||||||
$redirect = $calbackend->getItemDetailRedirect($calendar_id, $calendarobject_id);
|
$redirect = $calbackend->getItemDetailRedirect($calendar_id, $calendarobject_id);
|
||||||
|
|
||||||
if ($redirect !== null) goaway($redirect);
|
if ($redirect !== null) goaway($a->get_baseurl() . $redirect);
|
||||||
|
|
||||||
$details = $obj;
|
$details = $obj;
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
info(t("Error") . ": " . $e);
|
info(t("Error") . ": " . $e);
|
||||||
goaway('dav/wdcal/');
|
goaway($a->get_baseurl() . "/dav/wdcal/");
|
||||||
}
|
}
|
||||||
|
|
||||||
return print_r($details, true);
|
return print_r($details, true);
|
||||||
|
@ -359,7 +357,7 @@ function wdcal_getSettingsPage(&$a)
|
||||||
|
|
||||||
if (isset($_REQUEST["save"])) {
|
if (isset($_REQUEST["save"])) {
|
||||||
check_form_security_token_redirectOnErr('/dav/settings/', 'calprop');
|
check_form_security_token_redirectOnErr('/dav/settings/', 'calprop');
|
||||||
PConfig::set($a->user["uid"], "dav", "dateformat", $_REQUEST["wdcal_date_format"]);
|
set_pconfig($a->user["uid"], "dav", "dateformat", $_REQUEST["wdcal_date_format"]);
|
||||||
info(t('The new values have been saved.'));
|
info(t('The new values have been saved.'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,5 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
use Friendica\Module\Login;
|
|
||||||
use Friendica\Util\Emailer;
|
|
||||||
|
|
||||||
require_once('include/security.php');
|
require_once('include/security.php');
|
||||||
|
|
||||||
function dav_install()
|
function dav_install()
|
||||||
|
@ -150,7 +147,7 @@ function dav_content()
|
||||||
{
|
{
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
if (!isset($a->user["uid"]) || $a->user["uid"] == 0) {
|
if (!isset($a->user["uid"]) || $a->user["uid"] == 0) {
|
||||||
return Login::form();
|
return login();
|
||||||
}
|
}
|
||||||
|
|
||||||
$x = "";
|
$x = "";
|
||||||
|
@ -166,7 +163,7 @@ function dav_content()
|
||||||
$ret = wdcal_postEditPage("new", "", $a->user["uid"], $a->timezone, $a->get_baseurl() . "/dav/wdcal/");
|
$ret = wdcal_postEditPage("new", "", $a->user["uid"], $a->timezone, $a->get_baseurl() . "/dav/wdcal/");
|
||||||
if ($ret["ok"]) notice($ret["msg"]);
|
if ($ret["ok"]) notice($ret["msg"]);
|
||||||
else info($ret["msg"]);
|
else info($ret["msg"]);
|
||||||
goaway('dav/wdcal/');
|
goaway($a->get_baseurl() . "/dav/wdcal/");
|
||||||
}
|
}
|
||||||
$o .= wdcal_getNewPage();
|
$o .= wdcal_getNewPage();
|
||||||
return $o;
|
return $o;
|
||||||
|
@ -184,7 +181,7 @@ function dav_content()
|
||||||
$ret = wdcal_postEditPage($a->argv[3], $a->user["uid"], $a->timezone, $a->get_baseurl() . "/dav/wdcal/");
|
$ret = wdcal_postEditPage($a->argv[3], $a->user["uid"], $a->timezone, $a->get_baseurl() . "/dav/wdcal/");
|
||||||
if ($ret["ok"]) notice($ret["msg"]);
|
if ($ret["ok"]) notice($ret["msg"]);
|
||||||
else info($ret["msg"]);
|
else info($ret["msg"]);
|
||||||
goaway('dav/wdcal/');
|
goaway($a->get_baseurl() . "/dav/wdcal/");
|
||||||
}
|
}
|
||||||
$o .= wdcal_getEditPage($calendar_id, $a->argv[3]);
|
$o .= wdcal_getEditPage($calendar_id, $a->argv[3]);
|
||||||
return $o;
|
return $o;
|
||||||
|
@ -198,7 +195,7 @@ function dav_content()
|
||||||
} else {
|
} else {
|
||||||
$server = dav_create_server(true, true, false);
|
$server = dav_create_server(true, true, false);
|
||||||
$cals = dav_get_current_user_calendars($server, DAV_ACL_READ);
|
$cals = dav_get_current_user_calendars($server, DAV_ACL_READ);
|
||||||
$x = wdcal_printCalendar($cals, [], $a->get_baseurl() . "/dav/wdcal/feed/", "week", 0, 200);
|
$x = wdcal_printCalendar($cals, array(), $a->get_baseurl() . "/dav/wdcal/feed/", "week", 0, 200);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (DAVVersionMismatchException $e) {
|
} catch (DAVVersionMismatchException $e) {
|
||||||
|
@ -238,12 +235,12 @@ function dav_event_updated_hook(&$a, &$b)
|
||||||
*/
|
*/
|
||||||
function dav_profile_tabs_hook(&$a, &$b)
|
function dav_profile_tabs_hook(&$a, &$b)
|
||||||
{
|
{
|
||||||
$b["tabs"][] = [
|
$b["tabs"][] = array(
|
||||||
"label" => t('Calendar'),
|
"label" => t('Calendar'),
|
||||||
"url" => $a->get_baseurl() . "/dav/wdcal/",
|
"url" => $a->get_baseurl() . "/dav/wdcal/",
|
||||||
"sel" => "",
|
"sel" => "",
|
||||||
"title" => t('Extended calendar with CalDAV-support'),
|
"title" => t('Extended calendar with CalDAV-support'),
|
||||||
];
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -261,7 +258,7 @@ function dav_cron(&$a, &$b)
|
||||||
q("UPDATE %s%snotifications SET `notified` = 1 WHERE `id` = %d", CALDAV_SQL_DB, CALDAV_SQL_PREFIX, $not["id"]);
|
q("UPDATE %s%snotifications SET `notified` = 1 WHERE `id` = %d", CALDAV_SQL_DB, CALDAV_SQL_PREFIX, $not["id"]);
|
||||||
$event = q("SELECT * FROM %s%sjqcalendar WHERE `calendarobject_id` = %d", CALDAV_SQL_DB, CALDAV_SQL_PREFIX, $not["calendarobject_id"]);
|
$event = q("SELECT * FROM %s%sjqcalendar WHERE `calendarobject_id` = %d", CALDAV_SQL_DB, CALDAV_SQL_PREFIX, $not["calendarobject_id"]);
|
||||||
$calendar = q("SELECT * FROM %s%scalendars WHERE `id` = %d", CALDAV_SQL_DB, CALDAV_SQL_PREFIX, $not["calendar_id"]);
|
$calendar = q("SELECT * FROM %s%scalendars WHERE `id` = %d", CALDAV_SQL_DB, CALDAV_SQL_PREFIX, $not["calendar_id"]);
|
||||||
$users = [];
|
$users = array();
|
||||||
if (count($calendar) != 1 || count($event) == 0) continue;
|
if (count($calendar) != 1 || count($event) == 0) continue;
|
||||||
switch ($calendar[0]["namespace"]) {
|
switch ($calendar[0]["namespace"]) {
|
||||||
case CALDAV_NAMESPACE_PRIVATE:
|
case CALDAV_NAMESPACE_PRIVATE:
|
||||||
|
@ -274,11 +271,11 @@ function dav_cron(&$a, &$b)
|
||||||
case "email":
|
case "email":
|
||||||
case "display": // @TODO implement "Display"
|
case "display": // @TODO implement "Display"
|
||||||
foreach ($users as $user) {
|
foreach ($users as $user) {
|
||||||
$find = ["%to%", "%event%", "%url%"];
|
$find = array("%to%", "%event%", "%url%");
|
||||||
$repl = [$user["username"], $event[0]["Summary"], $a->get_baseurl() . "/dav/wdcal/" . $calendar[0]["id"] . "/" . $not["calendarobject_id"] . "/"];
|
$repl = array($user["username"], $event[0]["Summary"], $a->get_baseurl() . "/dav/wdcal/" . $calendar[0]["id"] . "/" . $not["calendarobject_id"] . "/");
|
||||||
$text_text = str_replace($find, $repl, "Hi %to%!\n\nThe event \"%event%\" is about to begin:\n%url%");
|
$text_text = str_replace($find, $repl, "Hi %to%!\n\nThe event \"%event%\" is about to begin:\n%url%");
|
||||||
$text_html = str_replace($find, $repl, "Hi %to%!<br>\n<br>\nThe event \"%event%\" is about to begin:<br>\n<a href='" . "%url%" . "'>%url%</a>");
|
$text_html = str_replace($find, $repl, "Hi %to%!<br>\n<br>\nThe event \"%event%\" is about to begin:<br>\n<a href='" . "%url%" . "'>%url%</a>");
|
||||||
$params = [
|
$params = array(
|
||||||
'fromName' => FRIENDICA_PLATFORM,
|
'fromName' => FRIENDICA_PLATFORM,
|
||||||
'fromEmail' => t('noreply') . '@' . $a->get_hostname(),
|
'fromEmail' => t('noreply') . '@' . $a->get_hostname(),
|
||||||
'replyTo' => t('noreply') . '@' . $a->get_hostname(),
|
'replyTo' => t('noreply') . '@' . $a->get_hostname(),
|
||||||
|
@ -287,7 +284,8 @@ function dav_cron(&$a, &$b)
|
||||||
'htmlVersion' => $text_html,
|
'htmlVersion' => $text_html,
|
||||||
'textVersion' => $text_text,
|
'textVersion' => $text_text,
|
||||||
'additionalMailHeader' => "",
|
'additionalMailHeader' => "",
|
||||||
];
|
);
|
||||||
|
require_once('include/Emailer.php');
|
||||||
Emailer::send($params);
|
Emailer::send($params);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
7
defaultfeatures/README
Normal file
7
defaultfeatures/README
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
Default Features Plugin
|
||||||
|
|
||||||
|
This plugin allows the site admin to choose which Additional Features
|
||||||
|
are on by default for newly created users on the site. The defaults
|
||||||
|
apply to all new users upon registration, but do not impact a user's
|
||||||
|
ability to turn features on/off once their account has been created.
|
||||||
|
These default settings do not impact existing users.
|
60
defaultfeatures/defaultfeatures.php
Normal file
60
defaultfeatures/defaultfeatures.php
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Name: Default Features
|
||||||
|
* Description: Choose which Additional Features are on by default for new users on the site.
|
||||||
|
* Version: 1.0
|
||||||
|
* Author: Michael Johnston
|
||||||
|
* Status: Unsupported
|
||||||
|
*/
|
||||||
|
|
||||||
|
function defaultfeatures_install() {
|
||||||
|
register_hook('register_account', 'addon/defaultfeatures/defaultfeatures.php', 'defaultfeatures_register');
|
||||||
|
logger("installed defaultfeatures plugin");
|
||||||
|
}
|
||||||
|
|
||||||
|
function defaultfeatures_uninstall() {
|
||||||
|
unregister_hook('register_account', 'addon/defaultfeatures/defaultfeatures.php', 'defaultfeatures_register');
|
||||||
|
logger("uninstalled defaultfeatures plugin");
|
||||||
|
}
|
||||||
|
|
||||||
|
function defaultfeatures_register($a, $newuid) {
|
||||||
|
$arr = array();
|
||||||
|
$features = get_features();
|
||||||
|
foreach($features as $fname => $fdata) {
|
||||||
|
foreach(array_slice($fdata,1) as $f) {
|
||||||
|
set_pconfig($newuid,'feature',$f[0],((intval(get_config('defaultfeatures',$f[0]))) ? "1" : "0"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function defaultfeatures_plugin_admin_post (&$a) {
|
||||||
|
check_form_security_token_redirectOnErr('/admin/plugins/defaultfeatures', 'defaultfeaturessave');
|
||||||
|
foreach($_POST as $k => $v) {
|
||||||
|
if(strpos($k,'feature_') === 0) {
|
||||||
|
set_config('defaultfeatures',substr($k,8),((intval($v)) ? 1 : 0));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
info( t('Features updated') . EOL);
|
||||||
|
}
|
||||||
|
|
||||||
|
function defaultfeatures_plugin_admin (&$a, &$o) {
|
||||||
|
$t = get_markup_template( "admin.tpl", "addon/defaultfeatures/" );
|
||||||
|
$token = get_form_security_token("defaultfeaturessave");
|
||||||
|
$arr = array();
|
||||||
|
$features = get_features();
|
||||||
|
foreach($features as $fname => $fdata) {
|
||||||
|
$arr[$fname] = array();
|
||||||
|
$arr[$fname][0] = $fdata[0];
|
||||||
|
foreach(array_slice($fdata,1) as $f) {
|
||||||
|
$arr[$fname][1][] = array('feature_' .$f[0],$f[1],((intval(get_config('defaultfeatures',$f[0]))) ? "1" : "0"),$f[2],array(t('Off'),t('On')));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//logger("Features: " . print_r($arr,true));
|
||||||
|
|
||||||
|
$o = replace_macros($t, array(
|
||||||
|
'$submit' => t('Save Settings'),
|
||||||
|
'$features' => $arr,
|
||||||
|
'$form_security_token' => $token
|
||||||
|
));
|
||||||
|
}
|
34
defaultfeatures/lang/C/messages.po
Normal file
34
defaultfeatures/lang/C/messages.po
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
# ADDON defaultfeatures
|
||||||
|
# Copyright (C)
|
||||||
|
# This file is distributed under the same license as the Friendica defaultfeatures addon package.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#, fuzzy
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: \n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2014-06-23 14:44+0200\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"
|
||||||
|
"Language: \n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
|
#: defaultfeatures.php:36
|
||||||
|
msgid "Features updated"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: defaultfeatures.php:48
|
||||||
|
msgid "Off"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: defaultfeatures.php:48
|
||||||
|
msgid "On"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: defaultfeatures.php:55
|
||||||
|
msgid "Save Settings"
|
||||||
|
msgstr ""
|
14
defaultfeatures/templates/admin.tpl
Normal file
14
defaultfeatures/templates/admin.tpl
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
{{*
|
||||||
|
* AUTOMATICALLY GENERATED TEMPLATE
|
||||||
|
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||||
|
*
|
||||||
|
*}}
|
||||||
|
<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
|
||||||
|
{{foreach $features as $f}}
|
||||||
|
<h3 class="settings-heading">{{$f.0}}</h3>
|
||||||
|
|
||||||
|
{{foreach $f.1 as $fcat}}
|
||||||
|
{{include file="field_yesno.tpl" field=$fcat}}
|
||||||
|
{{/foreach}}
|
||||||
|
{{/foreach}}
|
||||||
|
<div class="submit"><input type="submit" name="defaultfeatures-submit" value="{{$submit}}" /></div>
|
|
@ -69,7 +69,7 @@ class Diaspora_Connection {
|
||||||
return ($this->tls) ? 'https' : 'http';
|
return ($this->tls) ? 'https' : 'http';
|
||||||
}
|
}
|
||||||
|
|
||||||
private function doHttpRequest($url, $data = [], $headers = []) {
|
private function doHttpRequest($url, $data = array(), $headers = array()) {
|
||||||
if (0 === strpos($url, '/')) {
|
if (0 === strpos($url, '/')) {
|
||||||
$url = $this->getScheme() . '://' . $this->host . $url;
|
$url = $this->getScheme() . '://' . $this->host . $url;
|
||||||
}
|
}
|
||||||
|
@ -122,14 +122,14 @@ class Diaspora_Connection {
|
||||||
return $this->last_http_result;
|
return $this->last_http_result;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function doHttpDelete($url, $data = [], $headers = []) {
|
private function doHttpDelete($url, $data = array(), $headers = array()) {
|
||||||
$this->http_method = 'DELETE';
|
$this->http_method = 'DELETE';
|
||||||
$this->doHttpRequest($url, $data, $headers);
|
$this->doHttpRequest($url, $data, $headers);
|
||||||
$this->http_method = null; // reset for next request
|
$this->http_method = null; // reset for next request
|
||||||
}
|
}
|
||||||
|
|
||||||
private function parseAuthenticityToken($str) {
|
private function parseAuthenticityToken($str) {
|
||||||
$m = [];
|
$m = array();
|
||||||
preg_match('/<meta (?:name="csrf-token" content="(.*?)"|content="(.*?)" name="csrf-token")/', $str, $m);
|
preg_match('/<meta (?:name="csrf-token" content="(.*?)"|content="(.*?)" name="csrf-token")/', $str, $m);
|
||||||
if (empty($m[1]) && !empty($m[2])) {
|
if (empty($m[1]) && !empty($m[2])) {
|
||||||
$token = $m[2];
|
$token = $m[2];
|
||||||
|
@ -151,11 +151,11 @@ class Diaspora_Connection {
|
||||||
public function logIn() {
|
public function logIn() {
|
||||||
$this->doHttpRequest('/users/sign_in');
|
$this->doHttpRequest('/users/sign_in');
|
||||||
|
|
||||||
$params = [
|
$params = array(
|
||||||
'user[username]' => $this->user,
|
'user[username]' => $this->user,
|
||||||
'user[password]' => $this->password,
|
'user[password]' => $this->password,
|
||||||
'authenticity_token' => $this->csrf_token
|
'authenticity_token' => $this->csrf_token
|
||||||
];
|
);
|
||||||
$this->doHttpRequest('/users/sign_in', $params);
|
$this->doHttpRequest('/users/sign_in', $params);
|
||||||
$this->doHttpRequest('/stream');
|
$this->doHttpRequest('/stream');
|
||||||
return (200 === $this->last_http_result->info['http_code']) ? true : false;
|
return (200 === $this->last_http_result->info['http_code']) ? true : false;
|
||||||
|
@ -163,14 +163,14 @@ class Diaspora_Connection {
|
||||||
|
|
||||||
public function getAspects() {
|
public function getAspects() {
|
||||||
$this->doHttpRequest('/bookmarklet');
|
$this->doHttpRequest('/bookmarklet');
|
||||||
$m = [];
|
$m = array();
|
||||||
preg_match('/"aspects"\:(\[.+?\])/', $this->last_http_result->response, $m);
|
preg_match('/"aspects"\:(\[.+?\])/', $this->last_http_result->response, $m);
|
||||||
return (!empty($m[1])) ? json_decode($m[1]) : false;
|
return (!empty($m[1])) ? json_decode($m[1]) : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getServices() {
|
public function getServices() {
|
||||||
$this->doHttpRequest('/bookmarklet');
|
$this->doHttpRequest('/bookmarklet');
|
||||||
$m = [];
|
$m = array();
|
||||||
preg_match('/"configured_services"\:(\[.+?\])/', $this->last_http_result->response, $m);
|
preg_match('/"configured_services"\:(\[.+?\])/', $this->last_http_result->response, $m);
|
||||||
return (!empty($m[1])) ? json_decode($m[1]) : false;
|
return (!empty($m[1])) ? json_decode($m[1]) : false;
|
||||||
}
|
}
|
||||||
|
@ -196,24 +196,24 @@ class Diaspora_Connection {
|
||||||
return $this->readJsonResponse($this->last_http_result->response);
|
return $this->readJsonResponse($this->last_http_result->response);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function postStatusMessage($msg, $aspect_ids = 'all_aspects', $additional_data = []) {
|
public function postStatusMessage($msg, $aspect_ids = 'all_aspects', $additional_data = array()) {
|
||||||
$data = [
|
$data = array(
|
||||||
'aspect_ids' => $aspect_ids,
|
'aspect_ids' => $aspect_ids,
|
||||||
'status_message' => [
|
'status_message' => array(
|
||||||
'text' => $msg,
|
'text' => $msg,
|
||||||
'provider_display_name' => $this->provider
|
'provider_display_name' => $this->provider
|
||||||
]
|
)
|
||||||
];
|
);
|
||||||
|
|
||||||
if (!empty($additional_data)) {
|
if (!empty($additional_data)) {
|
||||||
$data += $additional_data;
|
$data += $additional_data;
|
||||||
}
|
}
|
||||||
|
|
||||||
$headers = [
|
$headers = array(
|
||||||
'Content-Type: application/json',
|
'Content-Type: application/json',
|
||||||
'Accept: application/json',
|
'Accept: application/json',
|
||||||
'X-CSRF-Token: ' . $this->csrf_token
|
'X-CSRF-Token: ' . $this->csrf_token
|
||||||
];
|
);
|
||||||
|
|
||||||
$this->http_method = 'POST';
|
$this->http_method = 'POST';
|
||||||
$this->doHttpRequest('/status_messages', json_encode($data), $headers);
|
$this->doHttpRequest('/status_messages', json_encode($data), $headers);
|
||||||
|
@ -228,18 +228,18 @@ class Diaspora_Connection {
|
||||||
}
|
}
|
||||||
|
|
||||||
public function postPhoto($file) {
|
public function postPhoto($file) {
|
||||||
$params = [
|
$params = array(
|
||||||
'photo[pending]' => 'true',
|
'photo[pending]' => 'true',
|
||||||
'qqfile' => basename($file)
|
'qqfile' => basename($file)
|
||||||
];
|
);
|
||||||
$query_string = '?' . http_build_query($params);
|
$query_string = '?' . http_build_query($params);
|
||||||
$headers = [
|
$headers = array(
|
||||||
'Accept: application/json',
|
'Accept: application/json',
|
||||||
'X-Requested-With: XMLHttpRequest',
|
'X-Requested-With: XMLHttpRequest',
|
||||||
'X-CSRF-Token: ' . $this->csrf_token,
|
'X-CSRF-Token: ' . $this->csrf_token,
|
||||||
'X-File-Name: ' . basename($file),
|
'X-File-Name: ' . basename($file),
|
||||||
'Content-Type: application/octet-stream',
|
'Content-Type: application/octet-stream',
|
||||||
];
|
);
|
||||||
if ($size = @filesize($file)) {
|
if ($size = @filesize($file)) {
|
||||||
$headers[] = "Content-Length: $size";
|
$headers[] = "Content-Length: $size";
|
||||||
}
|
}
|
||||||
|
@ -249,14 +249,14 @@ class Diaspora_Connection {
|
||||||
}
|
}
|
||||||
|
|
||||||
public function deletePost($id) {
|
public function deletePost($id) {
|
||||||
$headers = ['X-CSRF-Token: ' . $this->csrf_token];
|
$headers = array('X-CSRF-Token: ' . $this->csrf_token);
|
||||||
$this->doHttpDelete("/posts/$id", [], $headers);
|
$this->doHttpDelete("/posts/$id", array(), $headers);
|
||||||
return (204 === $this->last_http_result->info['http_code']) ? true : false;
|
return (204 === $this->last_http_result->info['http_code']) ? true : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function deleteComment($id) {
|
public function deleteComment($id) {
|
||||||
$headers = ['X-CSRF-Token: ' . $this->csrf_token];
|
$headers = array('X-CSRF-Token: ' . $this->csrf_token);
|
||||||
$this->doHttpDelete("/comments/$id", [], $headers);
|
$this->doHttpDelete("/comments/$id", array(), $headers);
|
||||||
return (204 === $this->last_http_result->info['http_code']) ? true : false;
|
return (204 === $this->last_http_result->info['http_code']) ? true : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,9 +9,6 @@
|
||||||
|
|
||||||
require_once("addon/diaspora/Diaspora_Connection.php");
|
require_once("addon/diaspora/Diaspora_Connection.php");
|
||||||
|
|
||||||
use Friendica\Core\PConfig;
|
|
||||||
use Friendica\Database\DBM;
|
|
||||||
|
|
||||||
function diaspora_install() {
|
function diaspora_install() {
|
||||||
register_hook('post_local', 'addon/diaspora/diaspora.php', 'diaspora_post_local');
|
register_hook('post_local', 'addon/diaspora/diaspora.php', 'diaspora_post_local');
|
||||||
register_hook('notifier_normal', 'addon/diaspora/diaspora.php', 'diaspora_send');
|
register_hook('notifier_normal', 'addon/diaspora/diaspora.php', 'diaspora_send');
|
||||||
|
@ -34,9 +31,9 @@ function diaspora_jot_nets(&$a,&$b) {
|
||||||
if(! local_user())
|
if(! local_user())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
$diaspora_post = PConfig::get(local_user(),'diaspora','post');
|
$diaspora_post = get_pconfig(local_user(),'diaspora','post');
|
||||||
if(intval($diaspora_post) == 1) {
|
if(intval($diaspora_post) == 1) {
|
||||||
$diaspora_defpost = PConfig::get(local_user(),'diaspora','post_by_default');
|
$diaspora_defpost = get_pconfig(local_user(),'diaspora','post_by_default');
|
||||||
$selected = ((intval($diaspora_defpost) == 1) ? ' checked="checked" ' : '');
|
$selected = ((intval($diaspora_defpost) == 1) ? ' checked="checked" ' : '');
|
||||||
$b .= '<div class="profile-jot-net"><input type="checkbox" name="diaspora_enable"' . $selected . ' value="1" /> '
|
$b .= '<div class="profile-jot-net"><input type="checkbox" name="diaspora_enable"' . $selected . ' value="1" /> '
|
||||||
. t('Post to Diaspora') . '</div>';
|
. t('Post to Diaspora') . '</div>';
|
||||||
|
@ -69,9 +66,9 @@ function diaspora_queue_hook(&$a,&$b) {
|
||||||
|
|
||||||
$userdata = $r[0];
|
$userdata = $r[0];
|
||||||
|
|
||||||
$handle = PConfig::get($userdata['uid'],'diaspora','handle');
|
$handle = get_pconfig($userdata['uid'],'diaspora','handle');
|
||||||
$password = PConfig::get($userdata['uid'],'diaspora','password');
|
$password = get_pconfig($userdata['uid'],'diaspora','password');
|
||||||
$aspect = PConfig::get($userdata['uid'],'diaspora','aspect');
|
$aspect = get_pconfig($userdata['uid'],'diaspora','aspect');
|
||||||
|
|
||||||
$success = false;
|
$success = false;
|
||||||
|
|
||||||
|
@ -122,22 +119,22 @@ function diaspora_settings(&$a,&$s) {
|
||||||
|
|
||||||
/* Get the current state of our config variables */
|
/* Get the current state of our config variables */
|
||||||
|
|
||||||
$enabled = PConfig::get(local_user(),'diaspora','post');
|
$enabled = get_pconfig(local_user(),'diaspora','post');
|
||||||
$checked = (($enabled) ? ' checked="checked" ' : '');
|
$checked = (($enabled) ? ' checked="checked" ' : '');
|
||||||
$css = (($enabled) ? '' : '-disabled');
|
$css = (($enabled) ? '' : '-disabled');
|
||||||
|
|
||||||
$def_enabled = PConfig::get(local_user(),'diaspora','post_by_default');
|
$def_enabled = get_pconfig(local_user(),'diaspora','post_by_default');
|
||||||
|
|
||||||
$def_checked = (($def_enabled) ? ' checked="checked" ' : '');
|
$def_checked = (($def_enabled) ? ' checked="checked" ' : '');
|
||||||
|
|
||||||
$handle = PConfig::get(local_user(), 'diaspora', 'handle');
|
$handle = get_pconfig(local_user(), 'diaspora', 'handle');
|
||||||
$password = PConfig::get(local_user(), 'diaspora', 'password');
|
$password = get_pconfig(local_user(), 'diaspora', 'password');
|
||||||
$aspect = PConfig::get(local_user(),'diaspora','aspect');
|
$aspect = get_pconfig(local_user(),'diaspora','aspect');
|
||||||
|
|
||||||
$status = "";
|
$status = "";
|
||||||
|
|
||||||
$r = q("SELECT `addr` FROM `contact` WHERE `self` AND `uid` = %d", intval(local_user()));
|
$r = q("SELECT `addr` FROM `contact` WHERE `self` AND `uid` = %d", intval(local_user()));
|
||||||
if (DBM::is_result($r)) {
|
if (dbm::is_result($r)) {
|
||||||
$status = sprintf(t("Please remember: You can always be reached from Diaspora with your Friendica handle %s. "), $r[0]['addr']);
|
$status = sprintf(t("Please remember: You can always be reached from Diaspora with your Friendica handle %s. "), $r[0]['addr']);
|
||||||
$status .= t('This connector is only meant if you still want to use your old Diaspora account for some time. ');
|
$status .= t('This connector is only meant if you still want to use your old Diaspora account for some time. ');
|
||||||
$status .= sprintf(t('However, it is preferred that you tell your Diaspora contacts the new handle %s instead.'), $r[0]['addr']);
|
$status .= sprintf(t('However, it is preferred that you tell your Diaspora contacts the new handle %s instead.'), $r[0]['addr']);
|
||||||
|
@ -225,11 +222,11 @@ function diaspora_settings_post(&$a,&$b) {
|
||||||
|
|
||||||
if(x($_POST,'diaspora-submit')) {
|
if(x($_POST,'diaspora-submit')) {
|
||||||
|
|
||||||
PConfig::set(local_user(),'diaspora','post',intval($_POST['diaspora']));
|
set_pconfig(local_user(),'diaspora','post',intval($_POST['diaspora']));
|
||||||
PConfig::set(local_user(),'diaspora','post_by_default',intval($_POST['diaspora_bydefault']));
|
set_pconfig(local_user(),'diaspora','post_by_default',intval($_POST['diaspora_bydefault']));
|
||||||
PConfig::set(local_user(),'diaspora','handle',trim($_POST['handle']));
|
set_pconfig(local_user(),'diaspora','handle',trim($_POST['handle']));
|
||||||
PConfig::set(local_user(),'diaspora','password',trim($_POST['password']));
|
set_pconfig(local_user(),'diaspora','password',trim($_POST['password']));
|
||||||
PConfig::set(local_user(),'diaspora','aspect',trim($_POST['aspect']));
|
set_pconfig(local_user(),'diaspora','aspect',trim($_POST['aspect']));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -248,11 +245,11 @@ function diaspora_post_local(&$a,&$b) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$diaspora_post = intval(PConfig::get(local_user(),'diaspora','post'));
|
$diaspora_post = intval(get_pconfig(local_user(),'diaspora','post'));
|
||||||
|
|
||||||
$diaspora_enable = (($diaspora_post && x($_REQUEST,'diaspora_enable')) ? intval($_REQUEST['diaspora_enable']) : 0);
|
$diaspora_enable = (($diaspora_post && x($_REQUEST,'diaspora_enable')) ? intval($_REQUEST['diaspora_enable']) : 0);
|
||||||
|
|
||||||
if ($b['api_source'] && intval(PConfig::get(local_user(),'diaspora','post_by_default'))) {
|
if ($b['api_source'] && intval(get_pconfig(local_user(),'diaspora','post_by_default'))) {
|
||||||
$diaspora_enable = 1;
|
$diaspora_enable = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -275,37 +272,27 @@ function diaspora_send(&$a,&$b) {
|
||||||
|
|
||||||
logger('diaspora_send: invoked');
|
logger('diaspora_send: invoked');
|
||||||
|
|
||||||
if($b['deleted'] || $b['private'] || ($b['created'] !== $b['edited'])) {
|
if($b['deleted'] || $b['private'] || ($b['created'] !== $b['edited']))
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
if(! strstr($b['postopts'],'diaspora')) {
|
if(! strstr($b['postopts'],'diaspora'))
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
if($b['parent'] != $b['id']) {
|
if($b['parent'] != $b['id'])
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
// Dont't post if the post doesn't belong to us.
|
|
||||||
// This is a check for forum postings
|
|
||||||
$self = dba::selectFirst('contact', ['id'], ['uid' => $b['uid'], 'self' => true]);
|
|
||||||
if ($b['contact-id'] != $self['id']) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
logger('diaspora_send: prepare posting', LOGGER_DEBUG);
|
logger('diaspora_send: prepare posting', LOGGER_DEBUG);
|
||||||
|
|
||||||
$handle = PConfig::get($b['uid'],'diaspora','handle');
|
$handle = get_pconfig($b['uid'],'diaspora','handle');
|
||||||
$password = PConfig::get($b['uid'],'diaspora','password');
|
$password = get_pconfig($b['uid'],'diaspora','password');
|
||||||
$aspect = PConfig::get($b['uid'],'diaspora','aspect');
|
$aspect = get_pconfig($b['uid'],'diaspora','aspect');
|
||||||
|
|
||||||
if ($handle && $password) {
|
if ($handle && $password) {
|
||||||
|
|
||||||
logger('diaspora_send: all values seem to be okay', LOGGER_DEBUG);
|
logger('diaspora_send: all values seem to be okay', LOGGER_DEBUG);
|
||||||
|
|
||||||
require_once('include/bb2diaspora.php');
|
require_once('include/bb2diaspora.php');
|
||||||
$tag_arr = [];
|
$tag_arr = array();
|
||||||
$tags = '';
|
$tags = '';
|
||||||
$x = preg_match_all('/\#\[(.*?)\](.*?)\[/',$b['tag'],$matches,PREG_SET_ORDER);
|
$x = preg_match_all('/\#\[(.*?)\](.*?)\[/',$b['tag'],$matches,PREG_SET_ORDER);
|
||||||
|
|
||||||
|
@ -364,7 +351,7 @@ function diaspora_send(&$a,&$b) {
|
||||||
if (count($r))
|
if (count($r))
|
||||||
$a->contact = $r[0]["id"];
|
$a->contact = $r[0]["id"];
|
||||||
|
|
||||||
$s = serialize(['url' => $url, 'item' => $b['id'], 'post' => $body]);
|
$s = serialize(array('url' => $url, 'item' => $b['id'], 'post' => $body));
|
||||||
require_once('include/queue_fn.php');
|
require_once('include/queue_fn.php');
|
||||||
add_to_queue($a->contact,NETWORK_DIASPORA2,$s);
|
add_to_queue($a->contact,NETWORK_DIASPORA2,$s);
|
||||||
notice(t('Diaspora post failed. Queued for retry.').EOL);
|
notice(t('Diaspora post failed. Queued for retry.').EOL);
|
||||||
|
|
|
@ -9,8 +9,6 @@
|
||||||
* Author: Cat Gray <https://free-haven.org/profile/catness>
|
* Author: Cat Gray <https://free-haven.org/profile/catness>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
use Friendica\Core\PConfig;
|
|
||||||
|
|
||||||
function dwpost_install() {
|
function dwpost_install() {
|
||||||
register_hook('post_local', 'addon/dwpost/dwpost.php', 'dwpost_post_local');
|
register_hook('post_local', 'addon/dwpost/dwpost.php', 'dwpost_post_local');
|
||||||
register_hook('notifier_normal', 'addon/dwpost/dwpost.php', 'dwpost_send');
|
register_hook('notifier_normal', 'addon/dwpost/dwpost.php', 'dwpost_send');
|
||||||
|
@ -33,9 +31,9 @@ function dwpost_jot_nets(&$a,&$b) {
|
||||||
if(! local_user())
|
if(! local_user())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
$dw_post = PConfig::get(local_user(),'dwpost','post');
|
$dw_post = get_pconfig(local_user(),'dwpost','post');
|
||||||
if(intval($dw_post) == 1) {
|
if(intval($dw_post) == 1) {
|
||||||
$dw_defpost = PConfig::get(local_user(),'dwpost','post_by_default');
|
$dw_defpost = get_pconfig(local_user(),'dwpost','post_by_default');
|
||||||
$selected = ((intval($dw_defpost) == 1) ? ' checked="checked" ' : '');
|
$selected = ((intval($dw_defpost) == 1) ? ' checked="checked" ' : '');
|
||||||
$b .= '<div class="profile-jot-net"><input type="checkbox" name="dwpost_enable" ' . $selected . ' value="1" /> '
|
$b .= '<div class="profile-jot-net"><input type="checkbox" name="dwpost_enable" ' . $selected . ' value="1" /> '
|
||||||
. t('Post to Dreamwidth') . '</div>';
|
. t('Post to Dreamwidth') . '</div>';
|
||||||
|
@ -54,16 +52,16 @@ function dwpost_settings(&$a,&$s) {
|
||||||
|
|
||||||
/* Get the current state of our config variables */
|
/* Get the current state of our config variables */
|
||||||
|
|
||||||
$enabled = PConfig::get(local_user(),'dwpost','post');
|
$enabled = get_pconfig(local_user(),'dwpost','post');
|
||||||
|
|
||||||
$checked = (($enabled) ? ' checked="checked" ' : '');
|
$checked = (($enabled) ? ' checked="checked" ' : '');
|
||||||
|
|
||||||
$def_enabled = PConfig::get(local_user(),'dwpost','post_by_default');
|
$def_enabled = get_pconfig(local_user(),'dwpost','post_by_default');
|
||||||
|
|
||||||
$def_checked = (($def_enabled) ? ' checked="checked" ' : '');
|
$def_checked = (($def_enabled) ? ' checked="checked" ' : '');
|
||||||
|
|
||||||
$dw_username = PConfig::get(local_user(), 'dwpost', 'dw_username');
|
$dw_username = get_pconfig(local_user(), 'dwpost', 'dw_username');
|
||||||
$dw_password = PConfig::get(local_user(), 'dwpost', 'dw_password');
|
$dw_password = get_pconfig(local_user(), 'dwpost', 'dw_password');
|
||||||
|
|
||||||
|
|
||||||
/* Add some HTML to the existing form */
|
/* Add some HTML to the existing form */
|
||||||
|
@ -107,10 +105,10 @@ function dwpost_settings_post(&$a,&$b) {
|
||||||
|
|
||||||
if(x($_POST,'dwpost-submit')) {
|
if(x($_POST,'dwpost-submit')) {
|
||||||
|
|
||||||
PConfig::set(local_user(),'dwpost','post',intval($_POST['dwpost']));
|
set_pconfig(local_user(),'dwpost','post',intval($_POST['dwpost']));
|
||||||
PConfig::set(local_user(),'dwpost','post_by_default',intval($_POST['dw_bydefault']));
|
set_pconfig(local_user(),'dwpost','post_by_default',intval($_POST['dw_bydefault']));
|
||||||
PConfig::set(local_user(),'dwpost','dw_username',trim($_POST['dw_username']));
|
set_pconfig(local_user(),'dwpost','dw_username',trim($_POST['dw_username']));
|
||||||
PConfig::set(local_user(),'dwpost','dw_password',trim($_POST['dw_password']));
|
set_pconfig(local_user(),'dwpost','dw_password',trim($_POST['dw_password']));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -129,11 +127,11 @@ function dwpost_post_local(&$a,&$b) {
|
||||||
if($b['private'] || $b['parent'])
|
if($b['private'] || $b['parent'])
|
||||||
return;
|
return;
|
||||||
|
|
||||||
$dw_post = intval(PConfig::get(local_user(),'dwpost','post'));
|
$dw_post = intval(get_pconfig(local_user(),'dwpost','post'));
|
||||||
|
|
||||||
$dw_enable = (($dw_post && x($_REQUEST,'dwpost_enable')) ? intval($_REQUEST['dwpost_enable']) : 0);
|
$dw_enable = (($dw_post && x($_REQUEST,'dwpost_enable')) ? intval($_REQUEST['dwpost_enable']) : 0);
|
||||||
|
|
||||||
if($_REQUEST['api_source'] && intval(PConfig::get(local_user(),'dwpost','post_by_default')))
|
if($_REQUEST['api_source'] && intval(get_pconfig(local_user(),'dwpost','post_by_default')))
|
||||||
$dw_enable = 1;
|
$dw_enable = 1;
|
||||||
|
|
||||||
if(! $dw_enable)
|
if(! $dw_enable)
|
||||||
|
@ -158,7 +156,7 @@ function dwpost_send(&$a,&$b) {
|
||||||
if($b['parent'] != $b['id'])
|
if($b['parent'] != $b['id'])
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// dreamwidth post in the LJ user's timezone.
|
// dreamwidth post in the LJ user's timezone.
|
||||||
// Hopefully the person's Friendica account
|
// Hopefully the person's Friendica account
|
||||||
// will be set to the same thing.
|
// will be set to the same thing.
|
||||||
|
|
||||||
|
@ -168,10 +166,10 @@ function dwpost_send(&$a,&$b) {
|
||||||
intval($b['uid'])
|
intval($b['uid'])
|
||||||
);
|
);
|
||||||
if($x && strlen($x[0]['timezone']))
|
if($x && strlen($x[0]['timezone']))
|
||||||
$tz = $x[0]['timezone'];
|
$tz = $x[0]['timezone'];
|
||||||
|
|
||||||
$dw_username = PConfig::get($b['uid'],'dwpost','dw_username');
|
$dw_username = get_pconfig($b['uid'],'dwpost','dw_username');
|
||||||
$dw_password = PConfig::get($b['uid'],'dwpost','dw_password');
|
$dw_password = get_pconfig($b['uid'],'dwpost','dw_password');
|
||||||
$dw_blog = 'http://www.dreamwidth.org/interface/xmlrpc';
|
$dw_blog = 'http://www.dreamwidth.org/interface/xmlrpc';
|
||||||
|
|
||||||
if($dw_username && $dw_password && $dw_blog) {
|
if($dw_username && $dw_password && $dw_blog) {
|
||||||
|
@ -221,7 +219,7 @@ EOT;
|
||||||
logger('dwpost: data: ' . $xml, LOGGER_DATA);
|
logger('dwpost: data: ' . $xml, LOGGER_DATA);
|
||||||
|
|
||||||
if($dw_blog !== 'test')
|
if($dw_blog !== 'test')
|
||||||
$x = post_url($dw_blog,$xml,["Content-Type: text/xml"]);
|
$x = post_url($dw_blog,$xml,array("Content-Type: text/xml"));
|
||||||
logger('posted to dreamwidth: ' . ($x) ? $x : '', LOGGER_DEBUG);
|
logger('posted to dreamwidth: ' . ($x) ? $x : '', LOGGER_DEBUG);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
14
editplain/editplain.css
Normal file
14
editplain/editplain.css
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#editplain-enable-label {
|
||||||
|
float: left;
|
||||||
|
width: 200px;
|
||||||
|
margin-bottom: 25px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#editplain-checkbox {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
86
editplain/editplain.php
Normal file
86
editplain/editplain.php
Normal file
|
@ -0,0 +1,86 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Name: Editplain
|
||||||
|
* Description: This addon is deprecated and has been replaced with the "Advanced Features" setting. Admins should remove this addon when their core code is updated to include advanced feature settings.
|
||||||
|
* Version: 1.0
|
||||||
|
* Author: Mike Macgirvin <http://macgirvin.com/profile/mike>
|
||||||
|
* Status: Unsupported
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
function editplain_install() {
|
||||||
|
|
||||||
|
register_hook('plugin_settings', 'addon/editplain/editplain.php', 'editplain_settings');
|
||||||
|
register_hook('plugin_settings_post', 'addon/editplain/editplain.php', 'editplain_settings_post');
|
||||||
|
|
||||||
|
logger("installed editplain");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function editplain_uninstall() {
|
||||||
|
|
||||||
|
unregister_hook('plugin_settings', 'addon/editplain/editplain.php', 'editplain_settings');
|
||||||
|
unregister_hook('plugin_settings_post', 'addon/editplain/editplain.php', 'editplain_settings_post');
|
||||||
|
|
||||||
|
|
||||||
|
logger("removed editplain");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Callback from the settings post function.
|
||||||
|
* $post contains the $_POST array.
|
||||||
|
* We will make sure we've got a valid user account
|
||||||
|
* and if so set our configuration setting for this person.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
function editplain_settings_post($a,$post) {
|
||||||
|
if(! local_user() || (! x($_POST,'editplain-submit')))
|
||||||
|
return;
|
||||||
|
set_pconfig(local_user(),'system','plaintext',intval($_POST['editplain']));
|
||||||
|
|
||||||
|
info( t('Editplain settings updated.') . EOL);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Called from the Plugin Setting form.
|
||||||
|
* Add our own settings info to the page.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function editplain_settings(&$a,&$s) {
|
||||||
|
|
||||||
|
if(! local_user())
|
||||||
|
return;
|
||||||
|
|
||||||
|
/* Add our stylesheet to the page so we can make our settings look nice */
|
||||||
|
|
||||||
|
$a->page['htmlhead'] .= '<link rel="stylesheet" type="text/css" href="' . $a->get_baseurl() . '/addon/editplain/editplain.css' . '" media="all" />' . "\r\n";
|
||||||
|
|
||||||
|
/* Get the current state of our config variable */
|
||||||
|
|
||||||
|
$enabled = get_pconfig(local_user(),'system','plaintext');
|
||||||
|
$checked = (($enabled) ? ' checked="checked" ' : '');
|
||||||
|
|
||||||
|
/* Add some HTML to the existing form */
|
||||||
|
|
||||||
|
$s .= '<div class="settings-block">';
|
||||||
|
$s .= '<h3>' . t('Editplain Settings') . '</h3>';
|
||||||
|
$s .= '<div id="editplain-enable-wrapper">';
|
||||||
|
$s .= '<label id="editplain-enable-label" for="editplain-checkbox">' . t('Disable richtext status editor') . '</label>';
|
||||||
|
$s .= '<input id="editplain-checkbox" type="checkbox" name="editplain" value="1" ' . $checked . '/>';
|
||||||
|
$s .= '</div><div class="clear"></div>';
|
||||||
|
|
||||||
|
/* provide a submit button */
|
||||||
|
|
||||||
|
$s .= '<div class="settings-submit-wrapper" ><input type="submit" name="editplain-submit" class="settings-submit" value="' . t('Save Settings') . '" /></div></div>';
|
||||||
|
|
||||||
|
}
|
34
editplain/lang/C/messages.po
Normal file
34
editplain/lang/C/messages.po
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
# ADDON editplain
|
||||||
|
# Copyright (C)
|
||||||
|
# This file is distributed under the same license as the Friendica editplain addon package.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#, fuzzy
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: \n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2013-02-27 05:01-0500\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"
|
||||||
|
"Language: \n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
|
#: editplain.php:46
|
||||||
|
msgid "Editplain settings updated."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: editplain.php:76
|
||||||
|
msgid "Editplain Settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: editplain.php:78
|
||||||
|
msgid "Disable richtext status editor"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: editplain.php:84
|
||||||
|
msgid "Submit"
|
||||||
|
msgstr ""
|
6
editplain/lang/ca/strings.php
Normal file
6
editplain/lang/ca/strings.php
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
$a->strings["Editplain settings updated."] = "Actualitzar la configuració de Editplain.";
|
||||||
|
$a->strings["Editplain Settings"] = "Configuració de Editplain";
|
||||||
|
$a->strings["Disable richtext status editor"] = "Deshabilitar l'editor d'estatus de texte enriquit";
|
||||||
|
$a->strings["Submit"] = "Enviar";
|
36
editplain/lang/cs/messages.po
Normal file
36
editplain/lang/cs/messages.po
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
# ADDON editplain
|
||||||
|
# Copyright (C)
|
||||||
|
# This file is distributed under the same license as the Friendica editplain addon package.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# Michal Šupler <msupler@gmail.com>, 2014-2015
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: friendica\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2013-02-27 05:01-0500\n"
|
||||||
|
"PO-Revision-Date: 2015-02-11 19:40+0000\n"
|
||||||
|
"Last-Translator: Michal Šupler <msupler@gmail.com>\n"
|
||||||
|
"Language-Team: Czech (http://www.transifex.com/projects/p/friendica/language/cs/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Language: cs\n"
|
||||||
|
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
|
||||||
|
|
||||||
|
#: editplain.php:46
|
||||||
|
msgid "Editplain settings updated."
|
||||||
|
msgstr "Editplain nastavení aktualizováno"
|
||||||
|
|
||||||
|
#: editplain.php:76
|
||||||
|
msgid "Editplain Settings"
|
||||||
|
msgstr "Editplain nastavení"
|
||||||
|
|
||||||
|
#: editplain.php:78
|
||||||
|
msgid "Disable richtext status editor"
|
||||||
|
msgstr "Zakázat richtext status editor"
|
||||||
|
|
||||||
|
#: editplain.php:84
|
||||||
|
msgid "Submit"
|
||||||
|
msgstr "Odeslat"
|
11
editplain/lang/cs/strings.php
Normal file
11
editplain/lang/cs/strings.php
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
if(! function_exists("string_plural_select_cs")) {
|
||||||
|
function string_plural_select_cs($n){
|
||||||
|
return ($n==1) ? 0 : ($n>=2 && $n<=4) ? 1 : 2;;
|
||||||
|
}}
|
||||||
|
;
|
||||||
|
$a->strings["Editplain settings updated."] = "Editplain nastavení aktualizováno";
|
||||||
|
$a->strings["Editplain Settings"] = "Editplain nastavení";
|
||||||
|
$a->strings["Disable richtext status editor"] = "Zakázat richtext status editor";
|
||||||
|
$a->strings["Submit"] = "Odeslat";
|
37
editplain/lang/de/messages.po
Normal file
37
editplain/lang/de/messages.po
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
# ADDON editplain
|
||||||
|
# Copyright (C)
|
||||||
|
# This file is distributed under the same license as the Friendica editplain addon package.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# Abrax <webmaster@a-zwenkau.de>, 2014
|
||||||
|
# bavatar <tobias.diekershoff@gmx.net>, 2014
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: friendica\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2013-02-27 05:01-0500\n"
|
||||||
|
"PO-Revision-Date: 2014-10-15 12:19+0000\n"
|
||||||
|
"Last-Translator: Abrax <webmaster@a-zwenkau.de>\n"
|
||||||
|
"Language-Team: German (http://www.transifex.com/projects/p/friendica/language/de/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Language: de\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#: editplain.php:46
|
||||||
|
msgid "Editplain settings updated."
|
||||||
|
msgstr "Editplain Einstellungen gespeichert."
|
||||||
|
|
||||||
|
#: editplain.php:76
|
||||||
|
msgid "Editplain Settings"
|
||||||
|
msgstr "Editplain Einstellungen"
|
||||||
|
|
||||||
|
#: editplain.php:78
|
||||||
|
msgid "Disable richtext status editor"
|
||||||
|
msgstr "Web-Editor für Beiträge deakivieren"
|
||||||
|
|
||||||
|
#: editplain.php:84
|
||||||
|
msgid "Submit"
|
||||||
|
msgstr "Senden"
|
11
editplain/lang/de/strings.php
Normal file
11
editplain/lang/de/strings.php
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
if(! function_exists("string_plural_select_de")) {
|
||||||
|
function string_plural_select_de($n){
|
||||||
|
return ($n != 1);;
|
||||||
|
}}
|
||||||
|
;
|
||||||
|
$a->strings["Editplain settings updated."] = "Editplain Einstellungen gespeichert.";
|
||||||
|
$a->strings["Editplain Settings"] = "Editplain Einstellungen";
|
||||||
|
$a->strings["Disable richtext status editor"] = "Web-Editor für Beiträge deakivieren";
|
||||||
|
$a->strings["Submit"] = "Senden";
|
6
editplain/lang/eo/strings.php
Normal file
6
editplain/lang/eo/strings.php
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
$a->strings["Editplain settings updated."] = "Ĝisdatigis la Editplain agordojn.";
|
||||||
|
$a->strings["Editplain Settings"] = "Agordoj por Editplain";
|
||||||
|
$a->strings["Disable richtext status editor"] = "Malŝalti la riĉteksto-redaktilon";
|
||||||
|
$a->strings["Submit"] = "Sendi";
|
36
editplain/lang/es/messages.po
Normal file
36
editplain/lang/es/messages.po
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
# ADDON editplain
|
||||||
|
# Copyright (C)
|
||||||
|
# This file is distributed under the same license as the Friendica editplain addon package.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# Alberto Díaz Tormo <albertodiaztormo@gmail.com>, 2016
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: friendica\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2013-02-27 05:01-0500\n"
|
||||||
|
"PO-Revision-Date: 2016-10-23 11:35+0000\n"
|
||||||
|
"Last-Translator: Alberto Díaz Tormo <albertodiaztormo@gmail.com>\n"
|
||||||
|
"Language-Team: Spanish (http://www.transifex.com/Friendica/friendica/language/es/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Language: es\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#: editplain.php:46
|
||||||
|
msgid "Editplain settings updated."
|
||||||
|
msgstr "Ajustes de edición sencillos actualizados."
|
||||||
|
|
||||||
|
#: editplain.php:76
|
||||||
|
msgid "Editplain Settings"
|
||||||
|
msgstr "Ajustes de edición sencillos"
|
||||||
|
|
||||||
|
#: editplain.php:78
|
||||||
|
msgid "Disable richtext status editor"
|
||||||
|
msgstr "Desactivar el editor de texto enriquecido del estatus"
|
||||||
|
|
||||||
|
#: editplain.php:84
|
||||||
|
msgid "Submit"
|
||||||
|
msgstr "Enviar"
|
11
editplain/lang/es/strings.php
Normal file
11
editplain/lang/es/strings.php
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
if(! function_exists("string_plural_select_es")) {
|
||||||
|
function string_plural_select_es($n){
|
||||||
|
return ($n != 1);;
|
||||||
|
}}
|
||||||
|
;
|
||||||
|
$a->strings["Editplain settings updated."] = "Ajustes de edición sencillos actualizados.";
|
||||||
|
$a->strings["Editplain Settings"] = "Ajustes de edición sencillos";
|
||||||
|
$a->strings["Disable richtext status editor"] = "Desactivar el editor de texto enriquecido del estatus";
|
||||||
|
$a->strings["Submit"] = "Enviar";
|
36
editplain/lang/fr/messages.po
Normal file
36
editplain/lang/fr/messages.po
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
# ADDON editplain
|
||||||
|
# Copyright (C)
|
||||||
|
# This file is distributed under the same license as the Friendica editplain addon package.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# Nicola Spanti <translations@nicola-spanti.info>, 2015
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: friendica\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2013-02-27 05:01-0500\n"
|
||||||
|
"PO-Revision-Date: 2015-07-27 18:13+0000\n"
|
||||||
|
"Last-Translator: Nicola Spanti <translations@nicola-spanti.info>\n"
|
||||||
|
"Language-Team: French (http://www.transifex.com/projects/p/friendica/language/fr/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Language: fr\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||||
|
|
||||||
|
#: editplain.php:46
|
||||||
|
msgid "Editplain settings updated."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: editplain.php:76
|
||||||
|
msgid "Editplain Settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: editplain.php:78
|
||||||
|
msgid "Disable richtext status editor"
|
||||||
|
msgstr "Désactiver l'éditeur avancé de statut"
|
||||||
|
|
||||||
|
#: editplain.php:84
|
||||||
|
msgid "Submit"
|
||||||
|
msgstr "Soumettre"
|
11
editplain/lang/fr/strings.php
Normal file
11
editplain/lang/fr/strings.php
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
if(! function_exists("string_plural_select_fr")) {
|
||||||
|
function string_plural_select_fr($n){
|
||||||
|
return ($n > 1);;
|
||||||
|
}}
|
||||||
|
;
|
||||||
|
$a->strings["Editplain settings updated."] = "";
|
||||||
|
$a->strings["Editplain Settings"] = "";
|
||||||
|
$a->strings["Disable richtext status editor"] = "Désactiver l'éditeur avancé de statut";
|
||||||
|
$a->strings["Submit"] = "Soumettre";
|
6
editplain/lang/is/strings.php
Normal file
6
editplain/lang/is/strings.php
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
$a->strings["Editplain settings updated."] = "";
|
||||||
|
$a->strings["Editplain Settings"] = "";
|
||||||
|
$a->strings["Disable richtext status editor"] = "";
|
||||||
|
$a->strings["Submit"] = "Senda inn";
|
36
editplain/lang/it/messages.po
Normal file
36
editplain/lang/it/messages.po
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
# ADDON editplain
|
||||||
|
# Copyright (C)
|
||||||
|
# This file is distributed under the same license as the Friendica editplain addon package.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# fabrixxm <fabrix.xm@gmail.com>, 2014
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: friendica\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2013-02-27 05:01-0500\n"
|
||||||
|
"PO-Revision-Date: 2014-10-22 07:54+0000\n"
|
||||||
|
"Last-Translator: fabrixxm <fabrix.xm@gmail.com>\n"
|
||||||
|
"Language-Team: Italian (http://www.transifex.com/Friendica/friendica/language/it/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Language: it\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#: editplain.php:46
|
||||||
|
msgid "Editplain settings updated."
|
||||||
|
msgstr "Impostazioni 'Editplain' aggiornate."
|
||||||
|
|
||||||
|
#: editplain.php:76
|
||||||
|
msgid "Editplain Settings"
|
||||||
|
msgstr "Impostazioni Editplain"
|
||||||
|
|
||||||
|
#: editplain.php:78
|
||||||
|
msgid "Disable richtext status editor"
|
||||||
|
msgstr "Disabilita l'editor di testo visuale"
|
||||||
|
|
||||||
|
#: editplain.php:84
|
||||||
|
msgid "Submit"
|
||||||
|
msgstr "Invia"
|
11
editplain/lang/it/strings.php
Normal file
11
editplain/lang/it/strings.php
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
if(! function_exists("string_plural_select_it")) {
|
||||||
|
function string_plural_select_it($n){
|
||||||
|
return ($n != 1);;
|
||||||
|
}}
|
||||||
|
;
|
||||||
|
$a->strings["Editplain settings updated."] = "Impostazioni 'Editplain' aggiornate.";
|
||||||
|
$a->strings["Editplain Settings"] = "Impostazioni Editplain";
|
||||||
|
$a->strings["Disable richtext status editor"] = "Disabilita l'editor di testo visuale";
|
||||||
|
$a->strings["Submit"] = "Invia";
|
6
editplain/lang/nb-no/strings.php
Normal file
6
editplain/lang/nb-no/strings.php
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
$a->strings["Editplain settings updated."] = "";
|
||||||
|
$a->strings["Editplain Settings"] = "";
|
||||||
|
$a->strings["Disable richtext status editor"] = "";
|
||||||
|
$a->strings["Submit"] = "Lagre";
|
6
editplain/lang/pl/strings.php
Normal file
6
editplain/lang/pl/strings.php
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
$a->strings["Editplain settings updated."] = "";
|
||||||
|
$a->strings["Editplain Settings"] = "";
|
||||||
|
$a->strings["Disable richtext status editor"] = "";
|
||||||
|
$a->strings["Submit"] = "Potwierdź";
|
6
editplain/lang/pt-br/strings.php
Normal file
6
editplain/lang/pt-br/strings.php
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
$a->strings["Editplain settings updated."] = "Configurações Editplain atualizadas.";
|
||||||
|
$a->strings["Editplain Settings"] = "Configurações Editplain";
|
||||||
|
$a->strings["Disable richtext status editor"] = "Disabilite o modo de edição richtext";
|
||||||
|
$a->strings["Submit"] = "Enviar";
|
36
editplain/lang/ro/messages.po
Normal file
36
editplain/lang/ro/messages.po
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
# ADDON editplain
|
||||||
|
# Copyright (C)
|
||||||
|
# This file is distributed under the same license as the Friendica editplain addon package.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# Doru DEACONU <dumitrudeaconu@yahoo.com>, 2014
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: friendica\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2013-02-27 05:01-0500\n"
|
||||||
|
"PO-Revision-Date: 2014-11-27 14:13+0000\n"
|
||||||
|
"Last-Translator: Doru DEACONU <dumitrudeaconu@yahoo.com>\n"
|
||||||
|
"Language-Team: Romanian (Romania) (http://www.transifex.com/projects/p/friendica/language/ro_RO/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Language: ro_RO\n"
|
||||||
|
"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"
|
||||||
|
|
||||||
|
#: editplain.php:46
|
||||||
|
msgid "Editplain settings updated."
|
||||||
|
msgstr "Configurările Editplain au fost actualizate."
|
||||||
|
|
||||||
|
#: editplain.php:76
|
||||||
|
msgid "Editplain Settings"
|
||||||
|
msgstr "Configurări Editplain"
|
||||||
|
|
||||||
|
#: editplain.php:78
|
||||||
|
msgid "Disable richtext status editor"
|
||||||
|
msgstr "Dezactivare editorul status de text îmbogățit"
|
||||||
|
|
||||||
|
#: editplain.php:84
|
||||||
|
msgid "Submit"
|
||||||
|
msgstr "Trimite"
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue