aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Zotlabs/Storage/Directory.php6
-rw-r--r--doc/fr/about/project.bb (renamed from doc/fr/project.bb)61
-rw-r--r--doc/fr/toc.html6
-rw-r--r--include/attach.php130
-rw-r--r--include/bbcode.php8
-rw-r--r--include/text.php2
-rw-r--r--include/zid.php6
-rw-r--r--view/es-es/hmessages.po186
-rw-r--r--view/js/autocomplete.js43
-rw-r--r--view/theme/redbasic/schema/dark.css4
10 files changed, 257 insertions, 195 deletions
diff --git a/Zotlabs/Storage/Directory.php b/Zotlabs/Storage/Directory.php
index a2ae0fee8..d063eed40 100644
--- a/Zotlabs/Storage/Directory.php
+++ b/Zotlabs/Storage/Directory.php
@@ -389,8 +389,12 @@ class Directory extends DAV\Node implements DAV\ICollection, DAV\IQuota, DAV\IMo
);
if ($r) {
+
+ // When initiated from DAV, set the 'force' flag on attach_mkdir(). This will cause the operation to report success even if the
+ // folder already exists.
+
require_once('include/attach.php');
- $result = attach_mkdir($r[0], $this->auth->observer, array('filename' => $name, 'folder' => $this->folder_hash));
+ $result = attach_mkdir($r[0], $this->auth->observer, array('filename' => $name, 'folder' => $this->folder_hash, 'force' => true));
if($result['success']) {
$sync = attach_export_data($r[0],$result['data']['hash']);
diff --git a/doc/fr/project.bb b/doc/fr/about/project.bb
index b62c3bd25..e9bf11cb4 100644
--- a/doc/fr/project.bb
+++ b/doc/fr/about/project.bb
@@ -2,86 +2,81 @@
La gouvernance est liée à la gestion d'un projet et plus particulièrement à la résolution des conflits.
[h4]Gouvernance communautaire[/h4]
-Le projet est maintenu et les décisions sont prises par la " communauté ". La structure de gouvernance continue d'évoluer. Jusqu'à ce que la structure soit finalisée, les décisions sont prises dans l'ordre suivant :
+Le projet est maintenu et les décisions sont prises par la "communauté". La structure de gouvernance continue d'évoluer. Jusqu'à ce que la structure soit finalisée, les décisions sont prises dans l'ordre suivant :
[ol]
[*] Consensus paresseux
-
Si une proposition de projet est soumise à l'un des forums de gouvernance communautaire et qu'il n'y a pas d'objections sérieuses dans un délai "raisonnable" à partir de la date de la proposition (nous accordons généralement 2 à 3 jours pour que toutes les parties intéressées puissent intervenir), aucun vote n'est nécessaire et la proposition sera considérée comme approuvée. Certaines préoccupations peuvent être soulevées à ce moment-là, mais si elles sont abordées au cours de la discussion et des solutions de rechange fournies, elles seront quand même considérées comme approuvées.
-[*] Veto
+[*] Veto
Les promoteurs principaux ayant un historique important d'engagements de projet peuvent opposer leur veto à toute décision. La décision ne peut être prise tant que le veto n'a pas été levé ou qu'une autre proposition n'a pas été présentée.
-[*] Vote de la communauté
-Une décision qui n'a pas de mandat clair ou de consensus clair, mais qui ne fait pas l'objet d'un veto, peut être soumise au vote de la communauté. Actuellement, il s'agit d'un simple vote populaire dans l'un des forums communautaires applicables. À ce moment-là, c'est le vote populaire qui décide du résultat. Cela pourrait changer à l'avenir si la communauté adopte un modèle de gouvernance de " conseil ". Ce document sera mis à jour à ce moment-là avec les règles de gouvernance mises à jour.
+[*] Vote de la communauté
+Une décision qui n'a pas de mandat clair ou de consensus clair, mais qui ne fait pas l'objet d'un veto, peut être soumise au vote de la communauté. Actuellement, il s'agit d'un simple vote populaire dans l'un des forums communautaires applicables. À ce moment-là, c'est le vote populaire qui décide du résultat. Cela pourrait changer à l'avenir si la communauté adopte un modèle de gouvernance de "conseil". Ce document sera mis à jour à ce moment-là avec les règles de gouvernance mises à jour.
[/ol]
-Le vote communautaire n'offre pas toujours un résultat agréable et peut générer des factions polarisées au sein de la communauté (d'où la raison pour laquelle d'autres modèles sont à l'étude). Si la proposition est rejetée, il y a encore plusieurs choses qui peuvent être faites et la proposition peut être soumise à nouveau avec des paramètres légèrement différents (conversion vers un module complémentaire, conversion vers un module optionnel qui est désactivé par défaut, etc. Si l'intérêt pour le dispositif est élevé et que le vote est " serré ", cela peut générer beaucoup de mauvais sentiments parmi les électeurs perdants. Lors de ces votes serrés, il est [b]fortement recommandé[/b] que l'auteur de la proposition prenne des mesures pour répondre à toute préoccupation soulevée et la soumettre de nouveau.
+Le vote communautaire n'offre pas toujours un résultat agréable et peut générer des factions polarisées au sein de la communauté (d'où la raison pour laquelle d'autres modèles sont à l'étude). Si la proposition est rejetée, il y a encore plusieurs choses qui peuvent être faites et la proposition peut être soumise à nouveau avec des paramètres légèrement différents (conversion vers un module complémentaire, conversion vers un module optionnel qui est désactivé par défaut, etc. Si l'intérêt pour le dispositif est élevé et que le vote est "serré", cela peut générer beaucoup de mauvais sentiments parmi les électeurs perdants. Lors de ces votes serrés, il est [b]fortement recommandé[/b] que l'auteur de la proposition prenne des mesures pour répondre à toute préoccupation soulevée et la soumettre de nouveau.
-[h4]Politique de confidentialité[/h4]
+[h3]Politique de confidentialité[/h3]
-Q: Qui peut voir mon contenu ?
+Q : Qui peut voir mon contenu ?
-R : Par défaut, N'IMPORTE QUELLE personne sur Internet, à MOINS que vous le restreigniez. Nom du projet vous permet de choisir le niveau de confidentialité que vous désirez. Le contenu restreint ne sera PAS visible pour les "réseaux d'espionnage" et les annonceurs. Il sera protégé contre les écoutes de l'extérieur - au mieux de nos capacités. Les administrateurs de Hub ayant suffisamment de compétences et de patience PEUVENT être en mesure d'écouter certaines communications privées, mais ils doivent déployer des trésors d'efforts pour le faire. Des modes de confidentialité existent au sein de $Projectname qui résistent même à l'écoute par des administrateurs de hub qualifiés et déterminés.
+R : Par défaut, N'IMPORTE QUELLE personne sur Internet, à MOINS que vous le restreigniez. $Projectname vous permet de choisir le niveau de confidentialité que vous désirez. Le contenu restreint ne sera PAS visible pour les "réseaux d'espionnage" et les annonceurs. Il sera protégé contre les écoutes de l'extérieur - au mieux de nos capacités. Les administrateurs de Hub ayant suffisamment de compétences et de patience PEUVENT être en mesure d'écouter certaines communications privées, mais ils doivent déployer des trésors d'efforts pour le faire. Des modes de confidentialité existent au sein de $Projectname qui résistent même à l'écoute par des administrateurs de hub qualifiés et déterminés.
Q : Mon contenu peut-il être censuré ?
-R : $Nom du projet (le réseau) NE PEUT PAS censurer votre contenu. Les administrateurs de serveur et de hub sont soumis aux lois locales et PEUVENT supprimer le contenu répréhensible de leur site/hub. N'importe qui PEUT devenir un administrateur de hub, y compris vous ; et donc publier du contenu qui pourrait autrement être censuré. Vous POUVEZ toujours être soumis aux lois locales.
-
-
-[h5]Définitions[/h5].
-
-**$Nom du projet****
-
-Autrement appelé "le réseau", $Projectname est une collection d'ordinateurs/serveurs individuels (aka **hubs**) qui se connectent ensemble pour former un plus grand réseau coopératif.
+R : $Projectname (le réseau) NE PEUT PAS censurer votre contenu. Les administrateurs de serveur et de hub sont soumis aux lois locales et PEUVENT supprimer le contenu répréhensible de leur site/hub. N'importe qui PEUT devenir un administrateur de hub, y compris vous ; et donc publier du contenu qui pourrait autrement être censuré. Vous POUVEZ toujours être soumis aux lois locales.
-**hub**
+[h3]Définitions[/h3]
-Un ordinateur individuel ou un serveur connecté à $Projectname. Ces services sont fournis par un **administrateur de hub** et peuvent être publics ou privés, payants ou gratuits.
+[h4]$Projectname[/h4]
+Autrement appelé "le réseau", $Projectname est une collection d'ordinateurs/serveurs individuels (aka [b]hubs[/b]) qui se connectent ensemble pour former un plus grand réseau coopératif.
-**administrateur de hub****
+[h4]Hub[/h4]
+Un ordinateur individuel ou un serveur connecté à $Projectname. Ces services sont fournis par un [b]administrateur de hub[/b] et peuvent être publics ou privés, payants ou gratuits.
-Gérant du système d'un hub individuel.
+[h4]Administrateur de hub[/h4]
+Gérant du système d'un hub individuel.
-[h5]Politiques[/h5]
+[h3]Politiques[/h3]
-**Information publique**
+[h4]Information publique[/h4]
Toute information ou tout ce que vous affichez dans $Projectname PEUT être public ou visible par quiconque sur Internet. Dans la mesure du possible, $Projectname vous permet de protéger le contenu et de restreindre qui peut le consulter.
La photo de votre profil, le nom de votre canal et l'emplacement (URL ou adresse réseau) de votre canal sont visibles par tous sur Internet et les contrôles de confidentialité n'affecteront pas l'affichage de ces éléments.
-Vous POUVEZ fournir en plus d'autres informations de profil. Toute information que vous fournissez dans votre profil "par défaut" ou **profil public** PEUT être transmise à d'autres hubs dans $Projectname et peut également être affichée dans le répertoire des canaux. Vous pouvez limiter l'affichage de ces informations de profil. Il peut être limité aux seuls membres de votre hub, ou seulement aux connexions (amis), ou à d'autres groupes limités de visionneurs comme vous le souhaitez. Si vous souhaitez que votre profil soit restreint, vous devez définir le paramètre de confidentialité approprié ou simplement NE PAS fournir d'informations supplémentaires.
+Vous POUVEZ fournir en plus d'autres informations de profil. Toute information que vous fournissez dans votre profil "par défaut" ou [b]profil public[/b] PEUT être transmise à d'autres hubs dans $Projectname et peut également être affichée dans le répertoire des canaux. Vous pouvez limiter l'affichage de ces informations de profil. Il peut être limité aux seuls membres de votre hub, ou seulement aux connexions (amis), ou à d'autres groupes limités de visionneurs comme vous le souhaitez. Si vous souhaitez que votre profil soit restreint, vous devez définir le paramètre de confidentialité approprié ou simplement NE PAS fournir d'informations supplémentaires.
-**Contenu**
+[h4]Contenu[/h4]
Le contenu que vous fournissez (messages de statut, photos, fichiers, etc.) vous appartient. Par défaut, $Projectname publie le contenu ouvertement et visible par tout le monde sur Internet (PUBLIC). Vous POUVEZ contrôler cela dans les paramètres de votre canal et restreindre les permissions par défaut ou vous POUVEZ restreindre la visibilité de n'importe quel élément publié séparément (PRIVÉ). Les développeurs de noms de projet s'assureront que le contenu restreint est visible SEULEMENT pour ceux qui figurent dans la liste des restrictions - au mieux de leurs capacités.
Les contenus (en particulier les messages de statut) que vous partagez avec d'autres réseaux ou que vous avez rendus visibles à quiconque sur Internet (PUBLIC) ne peuvent pas être facilement repris une fois qu'ils ont été publiés. Il PEUT être partagé avec d'autres réseaux et rendu disponible par le biais de flux RSS/Atom. Il peut aussi être syndiqué sur d'autres sites $Projectname. Il PEUT apparaître sur d'autres réseaux et sites Web et être visible dans les recherches sur Internet. Si vous ne souhaitez pas ce comportement par défaut, veuillez ajuster les paramètres de votre canal et restreindre le nombre de personnes qui peuvent voir votre contenu.
-**Commentaires et posts du Forum**
+[h4]Commentaires et posts du Forum[/h4]
Les commentaires sur les posts qui ont été créés par d'autres et les posts qui sont désignés comme posts du forum vous appartiennent en tant que créateur/auteur, mais la distribution de ces posts n'est pas sous votre contrôle direct, et vous renoncez à certains droits sur ces items. Ces messages/commentaires PEUVENT être redistribués à d'autres, et PEUVENT être visibles pour n'importe qui sur Internet. Dans le cas de commentaires, le créateur du "premier message" dans le fil de discussion (conversation) auquel vous répondez contrôle la distribution de tous les commentaires et réponses à ce message. Ils "possèdent" et ont donc certains droits sur l'ensemble de la conversation (y compris tous les commentaires qu'elle contient). Vous pouvez toujours modifier ou supprimer le commentaire, mais le propriétaire de la conversation a également le droit de modifier, supprimer, redistribuer et sauvegarder/restaurer tout ou partie du contenu de la conversation.
-**Les informations privées**
+[h4]Les informations privées[/h4]
Les développeurs de $Projectname s'assureront que tout contenu que vous fournissez et qui est désigné comme PRIVÉ seront protégés contre les écoutes - au mieux de leurs capacités. Le contenu des canaux privés PEUT être vu dans la base de données de chaque administrateur de hub impliqué, mais les messages privés sont masqués dans la base de données. Cette dernière signifie qu'il est très difficile, mais PAS impossible que ce contenu soit vu par un administrateur de hub. Le contenu du canal privé et les messages privés sont également éliminés des notifications par courriel. Le cryptage de bout en bout est fourni en option et ceci NE PEUT PAS être vu, même par un administrateur déterminé.
-[h5]Confidentialité de l'identité[/h5].
+[h3]Confidentialité de l'identité[/h3]
La confidentialité de votre identité est un autre aspect. Parce que vous avez une identité décentralisée dans $Projectname, votre vie privée s'étend au-delà de votre hub d'origine. Si vous voulez avoir le contrôle total de votre vie privée et de la sécurité, vous devriez faire fonctionner votre propre concentrateur sur un serveur dédié. Pour beaucoup de gens, c'est compliqué et cela peut mettre à l'épreuve leurs capacités techniques. Énumérons donc quelques précautions que vous pouvez prendre pour assurer votre vie privée autant que possible.
Une identité décentralisée a beaucoup d'avantages et vous donne beaucoup de fonctionnalités intéressantes, mais vous devez être conscient du fait que votre identité est connue par d'autres hubs dans le réseau $Projectname. L'un de ces avantages est que d'autres canaux peuvent vous servir du contenu personnalisé et vous permettre de voir des choses privées (comme des photos privées que d'autres souhaitent partager avec vous). Pour cette raison, ces canaux ont besoin de savoir qui vous êtes. Mais nous comprenons que parfois, ces autres canaux en savent plus de vous que vous ne le souhaiteriez. Par exemple, le plug-in Visage qui peut indiquer au propriétaire d'un canal la dernière fois que vous avez visité son profil. Vous pouvez facilement OPT-OUT de ce bas niveau et nous pensons, le suivi inoffensif.
-Vous pouvez activer [Ne pas suivre (DNT)](http://donottrack.us/) dans votre navigateur Web. Nous respectons cette nouvelle proposition de politique de confidentialité. Tous les navigateurs modernes supportent le DNT. Vous le trouverez dans les paramètres de confidentialité de vos navigateurs ou bien vous pouvez consulter le manuel du navigateur Web. Cela n'affectera pas la fonctionnalité de $Projectname. Ce réglage est probablement suffisant pour la plupart des gens.
+Vous pouvez activer [url=http://donottrack.us/]Ne pas suivre (DNT)[/url] dans votre navigateur Web. Nous respectons cette nouvelle proposition de politique de confidentialité. Tous les navigateurs modernes supportent le DNT. Vous le trouverez dans les paramètres de confidentialité de vos navigateurs ou bien vous pouvez consulter le manuel du navigateur Web. Cela n'affectera pas la fonctionnalité de $Projectname. Ce réglage est probablement suffisant pour la plupart des gens.
-*Vous pouvez [désactiver la publication](settings) de votre chaîne dans notre répertoire de chaînes. Si vous voulez que les gens trouvent votre canal, vous devriez leur donner l'adresse de votre canal directement. Nous pensons que c'est une bonne indication que vous préférez une vie privée supplémentaire et que vous activez automatiquement l'option "Ne pas suivre" si c'est le cas.
+Vous pouvez [url=settings]désactiver la publication[/url] de votre chaîne dans notre répertoire de chaînes. Si vous voulez que les gens trouvent votre canal, vous devriez leur donner l'adresse de votre canal directement. Nous pensons que c'est une bonne indication que vous préférez une vie privée supplémentaire et que vous activez automatiquement l'option "Ne pas suivre" si c'est le cas.
-*Vous pouvez avoir un hub bloqué. Cela signifie que tous les canaux et le contenu de cette hub ne sont pas publics et ne sont pas visibles pour le monde extérieur. C'est quelque chose que seul votre administrateur de hub peut faire. Nous respectons également ce principe et activons automatiquement l'option "Ne pas suivre" si elle est définie.
+Vous pouvez avoir un hub bloqué. Cela signifie que tous les canaux et le contenu de cette hub ne sont pas publics et ne sont pas visibles pour le monde extérieur. C'est quelque chose que seul votre administrateur de hub peut faire. Nous respectons également ce principe et activons automatiquement l'option "Ne pas suivre" si elle est définie.
-[h5]La Censure[/h5]
+[h3]La Censure[/h3]
$Projectname est un réseau mondial qui inclut toutes les religions et toutes les cultures. Cela n'implique pas que tous les membres du réseau ressentent la même chose que vous sur les questions litigieuses, et certaines personnes peuvent être FORTEMENT opposées au contenu que vous publiez. En général, si vous souhaitez publier quelque chose que vous savez ne pas être universellement acceptable, la meilleure approche est de limiter l'audience en utilisant les contrôles de confidentialité à un petit cercle d'amis.
@@ -89,7 +84,7 @@ $Projectname en tant que fournisseur de réseau n'est pas en mesure de censurer
$Projectname RECOMMANDE que les administrateurs du concentrateur accordent un délai de grâce de 1 à 2 jours entre l'avertissement au titulaire du compte du contenu qui doit être supprimé et la suppression ou la désactivation physique du compte. Cela donnera au propriétaire du contenu la possibilité d'exporter les métadonnées de son canal et de les importer sur un autre site. Dans de rares cas, le contenu peut être de nature à justifier la résiliation immédiate du compte. Il s'agit d'une décision de hub, pas d'une décision de $Projectname.
-Si vous publiez régulièrement des contenus à caractère adulte ou offensant, nous vous encourageons fortement à marquer votre compte "NSFW" (Not Safe For Work). Ceci empêchera l'affichage de votre photo de profil dans le répertoire, sauf pour les visiteurs qui ont choisi de désactiver le "safe mode". Si votre photo de profil est trouvée par les administrateurs d'annuaire comme étant adulte ou offensante, l'administrateur d'annuaire PEUT marquer votre photo de profil comme NSFW. Il n'existe actuellement aucun mécanisme officiel pour contester ou renverser cette décision, c'est pourquoi vous DEVEZ marquer votre propre compte NSFW s'il est susceptible d'être inapproprié pour le grand public.
+Si vous publiez régulièrement des contenus à caractère adulte ou offensant, nous vous encourageons fortement à marquer votre compte "NSFW" (Not Safe For Work). Ceci empêchera l'affichage de votre photo de profil dans le répertoire, sauf pour les visiteurs qui ont choisi de désactiver le "mode sans échec". Si votre photo de profil est trouvée par les administrateurs d'annuaire comme étant adulte ou offensante, l'administrateur d'annuaire PEUT marquer votre photo de profil comme NSFW. Il n'existe actuellement aucun mécanisme officiel pour contester ou renverser cette décision, c'est pourquoi vous DEVEZ marquer votre propre compte NSFW s'il est susceptible d'être inapproprié pour le grand public.
[h3]Remerciements[/h3]
diff --git a/doc/fr/toc.html b/doc/fr/toc.html
index 95b9454c7..35edcd96d 100644
--- a/doc/fr/toc.html
+++ b/doc/fr/toc.html
@@ -7,9 +7,9 @@
</div>
<div id="about" class="doco-section">
<div class="flex-column">
- <a class="nav-link" href="/help/about/about">A propos</a>
- <a class="nav-link" href="/help/about/project">Le projet</a>
- <a class="nav-link" href="/help/about/about_hub">A propos de ce hub</a>
+ <a class="nav-link" href="/help/fr/about/about">A propos</a>
+ <a class="nav-link" href="/help/fr/about/project">Le projet</a>
+ <a class="nav-link" href="/help/fr/about/about_hub">A propos de ce hub</a>
</div>
</div>
</div>
diff --git a/include/attach.php b/include/attach.php
index 363005029..27bf0218a 100644
--- a/include/attach.php
+++ b/include/attach.php
@@ -2286,33 +2286,22 @@ function attach_move($channel_id, $resource_id, $new_folder_hash) {
if(! ($c && $resource_id))
return false;
+
+ // find the resource to be moved
+
$r = q("select * from attach where hash = '%s' and uid = %d limit 1",
dbesc($resource_id),
intval($channel_id)
);
- if(! $r)
+ if(! $r) {
+ logger('resource_id not found');
return false;
+ }
$oldstorepath = dbunescbin($r[0]['content']);
- if($r[0]['is_dir']) {
- $move_success = true;
- $x = q("select hash from attach where folder = '%s' and uid = %d",
- dbesc($r[0]['hash']),
- intval($channel_id)
- );
- if($x) {
- foreach($x as $xv) {
- $rs = attach_move($channel_id,$xv['hash'],$r[0]['hash']);
- if(! $rs) {
- $move_success = false;
- break;
- }
- }
- }
- return $move_success;
- }
+ // find the resource we are moving to
if($new_folder_hash) {
$n = q("select * from attach where hash = '%s' and uid = %d and is_dir = 1 limit 1",
@@ -2326,6 +2315,10 @@ function attach_move($channel_id, $resource_id, $new_folder_hash) {
$newstorepath = dbunescbin($n[0]['content']) . '/' . $resource_id;
}
else {
+
+ // root directory
+
+ $newdirname = EMPTY_STR;
$newstorepath = 'store/' . $c['channel_address'] . '/' . $resource_id;
}
@@ -2335,56 +2328,61 @@ function attach_move($channel_id, $resource_id, $new_folder_hash) {
$filename = $r[0]['filename'];
- $s = q("select filename, id, hash, filesize from attach where filename = '%s' and folder = '%s' ",
- dbesc($filename),
- dbesc($new_folder_hash)
- );
+ // don't do duplicate check unless our parent folder has changed.
- if($s) {
- $overwrite = get_pconfig($channel_id,'system','overwrite_dup_files');
- if($overwrite) {
- /// @fixme
- return;
- }
- else {
- if(strpos($filename,'.') !== false) {
- $basename = substr($filename,0,strrpos($filename,'.'));
- $ext = substr($filename,strrpos($filename,'.'));
+ if($r[0]['folder'] !== $new_folder_hash) {
+
+ $s = q("select filename, id, hash, filesize from attach where filename = '%s' and folder = '%s' ",
+ dbesc($filename),
+ dbesc($new_folder_hash)
+ );
+
+ if($s) {
+ $overwrite = get_pconfig($channel_id,'system','overwrite_dup_files');
+ if($overwrite) {
+ /// @fixme
+ return;
}
else {
- $basename = $filename;
- $ext = '';
- }
+ if(strpos($filename,'.') !== false) {
+ $basename = substr($filename,0,strrpos($filename,'.'));
+ $ext = substr($filename,strrpos($filename,'.'));
+ }
+ else {
+ $basename = $filename;
+ $ext = '';
+ }
- $matches = false;
- if(preg_match('/(.*?)\([0-9]{1,}\)$/',$basename,$matches))
- $basename = $matches[1];
+ $matches = false;
+ if(preg_match('/(.*?)\([0-9]{1,}\)$/',$basename,$matches))
+ $basename = $matches[1];
- $v = q("select filename from attach where ( filename = '%s' OR filename like '%s' ) and folder = '%s' ",
- dbesc($basename . $ext),
- dbesc($basename . '(%)' . $ext),
- dbesc($new_folder_hash)
- );
+ $v = q("select filename from attach where ( filename = '%s' OR filename like '%s' ) and folder = '%s' ",
+ dbesc($basename . $ext),
+ dbesc($basename . '(%)' . $ext),
+ dbesc($new_folder_hash)
+ );
- if($v) {
- $x = 1;
+ if($v) {
+ $x = 1;
- do {
- $found = false;
- foreach($v as $vv) {
- if($vv['filename'] === $basename . '(' . $x . ')' . $ext) {
- $found = true;
- break;
+ do {
+ $found = false;
+ foreach($v as $vv) {
+ if($vv['filename'] === $basename . '(' . $x . ')' . $ext) {
+ $found = true;
+ break;
+ }
}
+ if($found)
+ $x++;
}
- if($found)
- $x++;
+ while($found);
+ $filename = $basename . '(' . $x . ')' . $ext;
}
- while($found);
- $filename = $basename . '(' . $x . ')' . $ext;
+ else
+ $filename = $basename . $ext;
}
- else
- $filename = $basename . $ext;
}
}
@@ -2423,6 +2421,24 @@ function attach_move($channel_id, $resource_id, $new_folder_hash) {
);
}
+ if($r[0]['is_dir']) {
+ $move_success = true;
+ $x = q("select hash from attach where folder = '%s' and uid = %d",
+ dbesc($r[0]['hash']),
+ intval($channel_id)
+ );
+ if($x) {
+ foreach($x as $xv) {
+ $rs = attach_move($channel_id,$xv['hash'],$r[0]['hash']);
+ if(! $rs) {
+ $move_success = false;
+ break;
+ }
+ }
+ }
+ return $move_success;
+ }
+
return true;
}
diff --git a/include/bbcode.php b/include/bbcode.php
index 340fe6b25..345b5b025 100644
--- a/include/bbcode.php
+++ b/include/bbcode.php
@@ -85,12 +85,14 @@ function tryoembed($match) {
function nakedoembed($match) {
$url = ((count($match) == 2) ? $match[1] : $match[2]);
- $o = oembed_fetch_url($url);
+ $strip_url = strip_escaped_zids($url);
+
+ $o = oembed_fetch_url($strip_url);
if ($o['type'] == 'error')
- return $match[0];
+ return str_replace($url,$strip_url,$match[0]);
- return '[embed]' . $url . '[/embed]';
+ return '[embed]' . $strip_url . '[/embed]';
}
function tryzrlaudio($match) {
diff --git a/include/text.php b/include/text.php
index ede62f582..24f8e1623 100644
--- a/include/text.php
+++ b/include/text.php
@@ -3307,6 +3307,7 @@ function cleanup_bbcode($body) {
* First protect any url inside certain bbcode tags so we don't double link it.
*/
+
$body = preg_replace_callback('/\[code(.*?)\[\/(code)\]/ism','\red_escape_codeblock',$body);
$body = preg_replace_callback('/\[url(.*?)\[\/(url)\]/ism','\red_escape_codeblock',$body);
$body = preg_replace_callback('/\[zrl(.*?)\[\/(zrl)\]/ism','\red_escape_codeblock',$body);
@@ -3336,7 +3337,6 @@ function cleanup_bbcode($body) {
$body = scale_external_images($body,false);
-
return $body;
}
diff --git a/include/zid.php b/include/zid.php
index 5275c6d5a..fe06948ba 100644
--- a/include/zid.php
+++ b/include/zid.php
@@ -60,7 +60,7 @@ function zid($s, $address = '') {
$url_match = true;
if ($mine && $myaddr && (! $url_match))
- $zurl = $s . (($num_slashes >= 3) ? '' : '/') . $achar . 'zid=' . urlencode($myaddr);
+ $zurl = $s . (($num_slashes >= 3) ? '' : '/') . (($achar === '?') ? '?f=&' : '&') . 'zid=' . urlencode($myaddr);
else
$zurl = $s;
@@ -103,6 +103,10 @@ function strip_zats($s) {
return preg_replace('/[\?&]zat=(.*?)(&|$)/ism','$2',$s);
}
+function strip_escaped_zids($s) {
+ $x = preg_replace('/&amp\;zid=(.*?)(&|$)/ism','$2',$s);
+ return strip_query_param($x,'f');
+}
function clean_query_string($s = '') {
diff --git a/view/es-es/hmessages.po b/view/es-es/hmessages.po
index 7089c2eab..ec03b4c2c 100644
--- a/view/es-es/hmessages.po
+++ b/view/es-es/hmessages.po
@@ -14,8 +14,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Redmatrix\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-04-18 08:37+0200\n"
-"PO-Revision-Date: 2018-04-20 09:32+0000\n"
+"POT-Creation-Date: 2018-04-23 11:34+0200\n"
+"PO-Revision-Date: 2018-04-24 09:02+0000\n"
"Last-Translator: Manuel Jiménez Friaza <mjfriaza@disroot.org>\n"
"Language-Team: Spanish (Spain) (http://www.transifex.com/Friendica/red-matrix/language/es_ES/)\n"
"MIME-Version: 1.0\n"
@@ -101,8 +101,8 @@ msgid "Social Networking"
msgstr "Redes sociales"
#: ../../Zotlabs/Access/PermissionRoles.php:284
-msgid "Social - Party"
-msgstr "Social - Extra público"
+msgid "Social - Federation"
+msgstr "Social - Federación"
#: ../../Zotlabs/Access/PermissionRoles.php:285
msgid "Social - Mostly Public"
@@ -461,15 +461,16 @@ msgstr "3. Pulse [conectar]"
#: ../../addon/likebanner/likebanner.php:57
#: ../../addon/redphotos/redphotos.php:136 ../../addon/irc/irc.php:53
#: ../../addon/ljpost/ljpost.php:86 ../../addon/startpage/startpage.php:113
-#: ../../addon/diaspora/diaspora.php:823
+#: ../../addon/diaspora/diaspora.php:825
#: ../../addon/rainbowtag/rainbowtag.php:85 ../../addon/hzfiles/hzfiles.php:84
#: ../../addon/visage/visage.php:170 ../../addon/nsabait/nsabait.php:161
#: ../../addon/mailtest/mailtest.php:100
#: ../../addon/openstreetmap/openstreetmap.php:168
-#: ../../addon/rtof/rtof.php:101 ../../addon/jappixmini/jappixmini.php:371
+#: ../../addon/fuzzloc/fuzzloc.php:191 ../../addon/rtof/rtof.php:101
+#: ../../addon/jappixmini/jappixmini.php:371
#: ../../addon/superblock/superblock.php:120 ../../addon/nofed/nofed.php:80
#: ../../addon/redred/redred.php:119 ../../addon/logrot/logrot.php:35
-#: ../../addon/frphotos/frphotos.php:97 ../../addon/pubcrawl/pubcrawl.php:1069
+#: ../../addon/frphotos/frphotos.php:97 ../../addon/pubcrawl/pubcrawl.php:1072
#: ../../addon/chords/Mod_Chords.php:60 ../../addon/libertree/libertree.php:85
#: ../../addon/flattrwidget/flattrwidget.php:124
#: ../../addon/statusnet/statusnet.php:322
@@ -569,7 +570,7 @@ msgstr "Resumen: "
#: ../../Zotlabs/Module/Photos.php:817 ../../Zotlabs/Module/Photos.php:1273
#: ../../Zotlabs/Lib/Apps.php:754 ../../Zotlabs/Lib/Apps.php:833
#: ../../Zotlabs/Storage/Browser.php:164 ../../Zotlabs/Widget/Portfolio.php:95
-#: ../../Zotlabs/Widget/Album.php:84 ../../addon/pubcrawl/as.php:878
+#: ../../Zotlabs/Widget/Album.php:84 ../../addon/pubcrawl/as.php:891
#: ../../include/conversation.php:1160
msgid "Unknown"
msgstr "Desconocido"
@@ -731,7 +732,7 @@ msgstr "Teléfono"
#: ../../Zotlabs/Module/Connedit.php:910 ../../Zotlabs/Module/Profiles.php:787
#: ../../addon/openid/MysqlProvider.php:56
#: ../../addon/openid/MysqlProvider.php:57 ../../addon/rtof/rtof.php:93
-#: ../../addon/redred/redred.php:107 ../../include/network.php:1769
+#: ../../addon/redred/redred.php:107 ../../include/network.php:1770
msgid "Email"
msgstr "Correo electrónico"
@@ -1093,8 +1094,8 @@ msgstr "Usar la autenticación mágica si está disponible"
#: ../../addon/dwpost/dwpost.php:85 ../../addon/ljpost/ljpost.php:70
#: ../../addon/ljpost/ljpost.php:82 ../../addon/rainbowtag/rainbowtag.php:81
#: ../../addon/visage/visage.php:166 ../../addon/nsabait/nsabait.php:157
-#: ../../addon/rtof/rtof.php:81 ../../addon/rtof/rtof.php:85
-#: ../../addon/jappixmini/jappixmini.php:309
+#: ../../addon/fuzzloc/fuzzloc.php:178 ../../addon/rtof/rtof.php:81
+#: ../../addon/rtof/rtof.php:85 ../../addon/jappixmini/jappixmini.php:309
#: ../../addon/jappixmini/jappixmini.php:313
#: ../../addon/jappixmini/jappixmini.php:343
#: ../../addon/jappixmini/jappixmini.php:351
@@ -1145,8 +1146,8 @@ msgstr "No"
#: ../../addon/dwpost/dwpost.php:85 ../../addon/ljpost/ljpost.php:70
#: ../../addon/ljpost/ljpost.php:82 ../../addon/rainbowtag/rainbowtag.php:81
#: ../../addon/visage/visage.php:166 ../../addon/nsabait/nsabait.php:157
-#: ../../addon/rtof/rtof.php:81 ../../addon/rtof/rtof.php:85
-#: ../../addon/jappixmini/jappixmini.php:309
+#: ../../addon/fuzzloc/fuzzloc.php:178 ../../addon/rtof/rtof.php:81
+#: ../../addon/rtof/rtof.php:85 ../../addon/jappixmini/jappixmini.php:309
#: ../../addon/jappixmini/jappixmini.php:313
#: ../../addon/jappixmini/jappixmini.php:343
#: ../../addon/jappixmini/jappixmini.php:351
@@ -1463,13 +1464,13 @@ msgstr "Servidor no encontrado"
#: ../../Zotlabs/Module/Subthread.php:111 ../../Zotlabs/Module/Tagger.php:69
#: ../../Zotlabs/Module/Like.php:384
#: ../../addon/redphotos/redphotohelper.php:71
-#: ../../addon/diaspora/Receiver.php:1500 ../../addon/pubcrawl/as.php:1388
+#: ../../addon/diaspora/Receiver.php:1500 ../../addon/pubcrawl/as.php:1405
#: ../../include/conversation.php:116 ../../include/text.php:2005
msgid "photo"
msgstr "foto"
#: ../../Zotlabs/Module/Subthread.php:111 ../../Zotlabs/Module/Like.php:384
-#: ../../addon/diaspora/Receiver.php:1500 ../../addon/pubcrawl/as.php:1388
+#: ../../addon/diaspora/Receiver.php:1500 ../../addon/pubcrawl/as.php:1405
#: ../../include/conversation.php:144 ../../include/text.php:2011
msgid "status"
msgstr "el mensaje de estado"
@@ -1577,6 +1578,7 @@ msgid ""
msgstr "Su alias se usará para crear una dirección de canal fácil de recordar, p. ej.: alias%s"
#: ../../Zotlabs/Module/New_channel.php:149
+#: ../../Zotlabs/Module/Settings/Channel.php:539
#: ../../Zotlabs/Module/Register.php:257
msgid "Channel role and privacy"
msgstr "Clase de canal y privacidad"
@@ -1597,10 +1599,18 @@ msgstr "Crear un canal"
#: ../../Zotlabs/Module/New_channel.php:153
msgid ""
-"A channel is your identity on this network. It can represent a person, a "
-"blog, or a forum to name a few. Channels can make connections with other "
-"channels to share information with highly detailed permissions."
-msgstr "Un canal es su identidad en esta red. Puede representar a una persona, un blog o un foro, por nombrar unos pocos ejemplos. Los canales se pueden conectar con otros canales para compartir información con una gama de permisos extremadamente detallada."
+"A channel is a unique network identity. It can represent a person (social "
+"network profile), a forum (group), a business or celebrity page, a newsfeed,"
+" and many other things. Channels can make connections with other channels to"
+" share information with each other."
+msgstr "Un canal es una identidad única en la red. Puede representar a una persona (un perfil de una red social), un foro o grupo, un negocio o una página de una celebridad, un \"feed\" de noticias, y muchas otras cosas. Los canales pueden conectarse con otros canales para compartir información unos con otros."
+
+#: ../../Zotlabs/Module/New_channel.php:153
+msgid ""
+"The type of channel you create affects the basic privacy settings, the "
+"permissions that are granted to connections/friends, and also the channel's "
+"visibility across the network."
+msgstr "El tipo de canal que cree afecta a la configuración básica de privacidad, a los permisos que se conceden a las conexiones/amigos y también a la visibilidad del canal en la red."
#: ../../Zotlabs/Module/New_channel.php:154
msgid ""
@@ -3365,11 +3375,11 @@ msgctxt "acl"
msgid "Profile"
msgstr "Perfil"
-#: ../../Zotlabs/Module/Moderate.php:62
+#: ../../Zotlabs/Module/Moderate.php:65
msgid "Comment approved"
msgstr "El comentario ha sido aprobado"
-#: ../../Zotlabs/Module/Moderate.php:66
+#: ../../Zotlabs/Module/Moderate.php:69
msgid "Comment deleted"
msgstr "Se ha eliminado el comentario"
@@ -3633,10 +3643,6 @@ msgstr "Usar los ajustes de mi audiencia predeterminada para el tipo de publicac
msgid "Profile to assign new connections"
msgstr "Perfil para asignar a las nuevas conexiones"
-#: ../../Zotlabs/Module/Settings/Channel.php:539
-msgid "Channel permissions category:"
-msgstr "Categoría de los permisos del canal:"
-
#: ../../Zotlabs/Module/Settings/Channel.php:540
msgid "Default Permissions Group"
msgstr "Grupo de permisos predeterminados"
@@ -4910,7 +4916,7 @@ msgstr "Ver todo"
#: ../../Zotlabs/Module/Photos.php:1160 ../../Zotlabs/Lib/ThreadItem.php:205
#: ../../include/conversation.php:1981 ../../include/channel.php:1539
-#: ../../include/taxonomy.php:660
+#: ../../include/taxonomy.php:661
msgctxt "noun"
msgid "Like"
msgid_plural "Likes"
@@ -4953,7 +4959,7 @@ msgid "Close"
msgstr "Cerrar"
#: ../../Zotlabs/Module/Photos.php:1365 ../../Zotlabs/Module/Photos.php:1378
-#: ../../Zotlabs/Module/Photos.php:1379 ../../include/photos.php:663
+#: ../../Zotlabs/Module/Photos.php:1379 ../../include/photos.php:667
msgid "Recent Photos"
msgstr "Fotos recientes"
@@ -5266,7 +5272,7 @@ msgstr "Imagen actualizada, pero el recorte de la imagen ha fallado. "
#: ../../Zotlabs/Module/Profile_photo.php:120
#: ../../Zotlabs/Module/Profile_photo.php:248
-#: ../../include/photo/photo_driver.php:740
+#: ../../include/photo/photo_driver.php:741
msgid "Profile Photos"
msgstr "Fotos del perfil"
@@ -6839,12 +6845,12 @@ msgid "Previous action reversed."
msgstr "Acción anterior revocada."
#: ../../Zotlabs/Module/Like.php:438 ../../addon/diaspora/Receiver.php:1529
-#: ../../addon/pubcrawl/as.php:1423 ../../include/conversation.php:160
+#: ../../addon/pubcrawl/as.php:1440 ../../include/conversation.php:160
#, php-format
msgid "%1$s likes %2$s's %3$s"
msgstr "A %1$s le gusta %3$s de %2$s"
-#: ../../Zotlabs/Module/Like.php:440 ../../addon/pubcrawl/as.php:1425
+#: ../../Zotlabs/Module/Like.php:440 ../../addon/pubcrawl/as.php:1442
#: ../../include/conversation.php:163
#, php-format
msgid "%1$s doesn't like %2$s's %3$s"
@@ -8351,11 +8357,11 @@ msgstr "Firma de mensaje incorrecta"
msgid "Add Tag"
msgstr "Añadir etiqueta"
-#: ../../Zotlabs/Lib/ThreadItem.php:281 ../../include/taxonomy.php:574
+#: ../../Zotlabs/Lib/ThreadItem.php:281 ../../include/taxonomy.php:575
msgid "like"
msgstr "me gusta"
-#: ../../Zotlabs/Lib/ThreadItem.php:282 ../../include/taxonomy.php:575
+#: ../../Zotlabs/Lib/ThreadItem.php:282 ../../include/taxonomy.php:576
msgid "dislike"
msgstr "no me gusta"
@@ -8657,9 +8663,9 @@ msgstr "Seleccionar una agenda para importarla"
#: ../../Zotlabs/Widget/Appcategories.php:40
#: ../../include/contact_widgets.php:97 ../../include/contact_widgets.php:141
-#: ../../include/contact_widgets.php:186 ../../include/taxonomy.php:408
-#: ../../include/taxonomy.php:490 ../../include/taxonomy.php:510
-#: ../../include/taxonomy.php:531
+#: ../../include/contact_widgets.php:186 ../../include/taxonomy.php:409
+#: ../../include/taxonomy.php:491 ../../include/taxonomy.php:511
+#: ../../include/taxonomy.php:532
msgid "Categories"
msgstr "Temas"
@@ -8847,8 +8853,8 @@ msgstr "Carpetas guardadas"
msgid "Click to show more"
msgstr "Hacer clic para ver más"
-#: ../../Zotlabs/Widget/Tagcloud.php:22 ../../include/taxonomy.php:319
-#: ../../include/taxonomy.php:448 ../../include/taxonomy.php:469
+#: ../../Zotlabs/Widget/Tagcloud.php:22 ../../include/taxonomy.php:320
+#: ../../include/taxonomy.php:449 ../../include/taxonomy.php:470
msgid "Tags"
msgstr "Etiquetas"
@@ -10166,39 +10172,39 @@ msgstr "una declaración de amor eterno"
msgid "declared undying love for"
msgstr "ha declarado amor eterno a"
-#: ../../addon/diaspora/diaspora.php:779
+#: ../../addon/diaspora/diaspora.php:781
msgid "Diaspora Protocol Settings updated."
msgstr "Los ajustes del protocolo de Diaspora se han actualizado."
-#: ../../addon/diaspora/diaspora.php:798
+#: ../../addon/diaspora/diaspora.php:800
msgid ""
"The Diaspora protocol does not support location independence. Connections "
"you make within that network may be unreachable from alternate channel "
"locations."
msgstr "El protocolo de Diaspora no admite la independencia de la ubicación. Las conexiones que realice dentro de esa red pueden ser inaccesibles desde ubicaciones de canales alternativos."
-#: ../../addon/diaspora/diaspora.php:801
+#: ../../addon/diaspora/diaspora.php:803
msgid "Enable the Diaspora protocol for this channel"
msgstr "Activar el protocolo de Diaspora para este canal"
-#: ../../addon/diaspora/diaspora.php:805
+#: ../../addon/diaspora/diaspora.php:807
msgid "Allow any Diaspora member to comment on your public posts"
msgstr "Permitir a cualquier miembro de Diaspora comentar sus entradas públicas"
-#: ../../addon/diaspora/diaspora.php:809
+#: ../../addon/diaspora/diaspora.php:811
msgid "Prevent your hashtags from being redirected to other sites"
msgstr "Impedir que sus \"hashtags\" sean redirigidos a otros sitios "
-#: ../../addon/diaspora/diaspora.php:813
+#: ../../addon/diaspora/diaspora.php:815
msgid ""
"Sign and forward posts and comments with no existing Diaspora signature"
msgstr "Firmar y enviar entradas y comentarios sin firma de Diaspora"
-#: ../../addon/diaspora/diaspora.php:818
+#: ../../addon/diaspora/diaspora.php:820
msgid "Followed hashtags (comma separated, do not include the #)"
msgstr "\"Hashtags\" seguidos (separados por comas, sin incluir #)"
-#: ../../addon/diaspora/diaspora.php:823
+#: ../../addon/diaspora/diaspora.php:825
msgid "Diaspora Protocol Settings"
msgstr "Ajustes del protocolo de Diaspora"
@@ -10441,6 +10447,32 @@ msgstr "Incluir un marcador en el mapa."
msgid "text to include in all outgoing posts from this site"
msgstr "texto a incluir en todos los mensajes salientes de este sitio"
+#: ../../addon/fuzzloc/fuzzloc.php:148
+msgid "Fuzzloc Settings updated."
+msgstr "Los ajustes de Fuzzloc se han actualizado."
+
+#: ../../addon/fuzzloc/fuzzloc.php:175
+msgid ""
+"Fuzzloc allows you to blur your precise location if your channel uses "
+"browser location mapping."
+msgstr "Fuzzloc le permite desdibujar su ubicación precisa si su canal utiliza la asignación de ubicación del navegador."
+
+#: ../../addon/fuzzloc/fuzzloc.php:178
+msgid "Enable Fuzzloc Plugin"
+msgstr "Habilitar el plugin Fuzzloc"
+
+#: ../../addon/fuzzloc/fuzzloc.php:182
+msgid "Minimum offset in meters"
+msgstr "Offset mínimo en metros"
+
+#: ../../addon/fuzzloc/fuzzloc.php:186
+msgid "Maximum offset in meters"
+msgstr "Offset máximo en metros"
+
+#: ../../addon/fuzzloc/fuzzloc.php:191
+msgid "Fuzzloc Settings"
+msgstr "Ajustes de Fuzzloc"
+
#: ../../addon/rtof/rtof.php:45
msgid "Post to Friendica"
msgstr "Publicar en Friendica"
@@ -10643,35 +10675,35 @@ msgstr "Nombre de inicio de sesión en Friendica"
msgid "Friendica Login Password"
msgstr "Contraseña de inicio de sesión en Friendica"
-#: ../../addon/pubcrawl/as.php:1129 ../../addon/pubcrawl/as.php:1256
-#: ../../addon/pubcrawl/as.php:1432 ../../include/network.php:1768
+#: ../../addon/pubcrawl/as.php:1146 ../../addon/pubcrawl/as.php:1273
+#: ../../addon/pubcrawl/as.php:1449 ../../include/network.php:1769
msgid "ActivityPub"
msgstr "ActivityPub"
-#: ../../addon/pubcrawl/pubcrawl.php:1050
+#: ../../addon/pubcrawl/pubcrawl.php:1053
msgid "ActivityPub Protocol Settings updated."
msgstr "Se han actualizado los ajustes del protocolo ActivityPub."
-#: ../../addon/pubcrawl/pubcrawl.php:1059
+#: ../../addon/pubcrawl/pubcrawl.php:1062
msgid ""
"The ActivityPub protocol does not support location independence. Connections"
" you make within that network may be unreachable from alternate channel "
"locations."
msgstr "El protocolo ActivityPub no soporta la independencia de ubicación. Las conexiones que realice dentro de esa red pueden no ser accesibles desde ubicaciones de canales alternativos."
-#: ../../addon/pubcrawl/pubcrawl.php:1062
+#: ../../addon/pubcrawl/pubcrawl.php:1065
msgid "Enable the ActivityPub protocol for this channel"
msgstr "Activar el protocolo ActivityPub para este canal"
-#: ../../addon/pubcrawl/pubcrawl.php:1065
+#: ../../addon/pubcrawl/pubcrawl.php:1068
msgid "Send multi-media HTML articles"
msgstr "Enviar artículos multimedia en HTML"
-#: ../../addon/pubcrawl/pubcrawl.php:1065
+#: ../../addon/pubcrawl/pubcrawl.php:1068
msgid "Not supported by some microblog services such as Mastodon"
msgstr "No soportado por algunos servicios de microblog como Mastodon"
-#: ../../addon/pubcrawl/pubcrawl.php:1069
+#: ../../addon/pubcrawl/pubcrawl.php:1072
msgid "ActivityPub Protocol Settings"
msgstr "Ajustes del protocolo ActivityPub"
@@ -12232,7 +12264,7 @@ msgid "Profile Details"
msgstr "Detalles del perfil"
#: ../../include/conversation.php:1837 ../../include/nav.php:404
-#: ../../include/photos.php:662
+#: ../../include/photos.php:666
msgid "Photo Albums"
msgstr "Álbumes de fotos"
@@ -13414,43 +13446,43 @@ msgstr "Fax de trabajo"
msgid "view full size"
msgstr "Ver en el tamaño original"
-#: ../../include/network.php:1763 ../../include/network.php:1764
+#: ../../include/network.php:1764 ../../include/network.php:1765
msgid "Friendica"
msgstr "Friendica"
-#: ../../include/network.php:1765
+#: ../../include/network.php:1766
msgid "OStatus"
msgstr "OStatus"
-#: ../../include/network.php:1766
+#: ../../include/network.php:1767
msgid "GNU-Social"
msgstr "GNU Social"
-#: ../../include/network.php:1767
+#: ../../include/network.php:1768
msgid "RSS/Atom"
msgstr "RSS/Atom"
-#: ../../include/network.php:1770
+#: ../../include/network.php:1771
msgid "Diaspora"
msgstr "Diaspora"
-#: ../../include/network.php:1771
+#: ../../include/network.php:1772
msgid "Facebook"
msgstr "Facebook"
-#: ../../include/network.php:1772
+#: ../../include/network.php:1773
msgid "Zot"
msgstr "Zot"
-#: ../../include/network.php:1773
+#: ../../include/network.php:1774
msgid "LinkedIn"
msgstr "LinkedIn"
-#: ../../include/network.php:1774
+#: ../../include/network.php:1775
msgid "XMPP/IM"
msgstr "XMPP/IM"
-#: ../../include/network.php:1775
+#: ../../include/network.php:1776
msgid "MySpace"
msgstr "MySpace"
@@ -13922,35 +13954,35 @@ msgstr "Nube de etiquetas"
msgid "Provide a personal tag cloud on your channel page"
msgstr "Proveer nube de etiquetas personal en su página de canal"
-#: ../../include/taxonomy.php:319
+#: ../../include/taxonomy.php:320
msgid "Trending"
msgstr "Populares"
-#: ../../include/taxonomy.php:551
+#: ../../include/taxonomy.php:552
msgid "Keywords"
msgstr "Palabras clave"
-#: ../../include/taxonomy.php:572
+#: ../../include/taxonomy.php:573
msgid "have"
msgstr "tener"
-#: ../../include/taxonomy.php:572
+#: ../../include/taxonomy.php:573
msgid "has"
msgstr "tiene"
-#: ../../include/taxonomy.php:573
+#: ../../include/taxonomy.php:574
msgid "want"
msgstr "quiero"
-#: ../../include/taxonomy.php:573
+#: ../../include/taxonomy.php:574
msgid "wants"
msgstr "quiere"
-#: ../../include/taxonomy.php:574
+#: ../../include/taxonomy.php:575
msgid "likes"
msgstr "gusta de"
-#: ../../include/taxonomy.php:575
+#: ../../include/taxonomy.php:576
msgid "dislikes"
msgstr "no gusta de"
@@ -14188,21 +14220,21 @@ msgstr "La imagen excede el límite de %lu bytes del sitio"
msgid "Image file is empty."
msgstr "El fichero de imagen está vacío. "
-#: ../../include/photos.php:322
+#: ../../include/photos.php:326
msgid "Photo storage failed."
msgstr "La foto no ha podido ser guardada."
-#: ../../include/photos.php:371
+#: ../../include/photos.php:375
msgid "a new photo"
msgstr "una nueva foto"
-#: ../../include/photos.php:375
+#: ../../include/photos.php:379
#, php-format
msgctxt "photo_upload"
msgid "%1$s posted %2$s to %3$s"
msgstr "%1$s ha publicado %2$s en %3$s"
-#: ../../include/photos.php:667
+#: ../../include/photos.php:671
msgid "Upload New Photos"
msgstr "Subir nuevas fotos"
@@ -14219,7 +14251,7 @@ msgstr "No ha sido posible de verificar la firma del canal"
msgid "Unable to verify site signature for %s"
msgstr "No ha sido posible de verificar la firma del sitio para %s"
-#: ../../include/zot.php:4217
+#: ../../include/zot.php:4219
msgid "invalid target signature"
msgstr "La firma recibida no es válida"
diff --git a/view/js/autocomplete.js b/view/js/autocomplete.js
index 5fbdab27b..60552588e 100644
--- a/view/js/autocomplete.js
+++ b/view/js/autocomplete.js
@@ -231,10 +231,13 @@ function string2bb(element) {
this.attr('autocomplete','off');
var Textarea = Textcomplete.editors.Textarea;
- var editor = new Textarea(this[0]);
- var textcomplete = new Textcomplete(editor);
- textcomplete.register([contacts,forums,smilies,tags], {className:'acpopup', zIndex:1020});
+ $(this).each(function() {
+ var editor = new Textarea(this);
+ var textcomplete = new Textcomplete(editor);
+ textcomplete.register([contacts,forums,smilies,tags], {className:'acpopup', zIndex:1020});
+ });
+
};
})( jQuery );
@@ -282,10 +285,11 @@ function string2bb(element) {
this.attr('autocomplete', 'off');
var Textarea = Textcomplete.editors.Textarea;
- var editor = new Textarea(this[0]);
- var textcomplete = new Textcomplete(editor);
-
- textcomplete.register([contacts,forums,tags], {className:'acpopup', maxCount:100, zIndex: 1020, appendTo:'nav'});
+ $(this).each(function() {
+ var editor = new Textarea(this);
+ var textcomplete = new Textcomplete(editor);
+ textcomplete.register([contacts,forums,tags], {className:'acpopup', maxCount:100, zIndex: 1020, appendTo:'nav'});
+ });
this.on('select', function(e, value, strategy) { submit_form(this); });
};
@@ -313,10 +317,11 @@ function string2bb(element) {
this.attr('autocomplete','off');
var Textarea = Textcomplete.editors.Textarea;
- var editor = new Textarea(this[0]);
- var textcomplete = new Textcomplete(editor);
-
- textcomplete.register([contacts], {className:'acpopup', zIndex:1020});
+ $(this).each(function() {
+ var editor = new Textarea(this);
+ var textcomplete = new Textcomplete(editor);
+ textcomplete.register([contacts], {className:'acpopup', zIndex:1020});
+ });
if(autosubmit)
this.on('select', function(e,value,strategy) { submit_form(this); });
@@ -349,10 +354,12 @@ function string2bb(element) {
this.attr('autocomplete','off');
var Textarea = Textcomplete.editors.Textarea;
- var editor = new Textarea(this[0]);
- var textcomplete = new Textcomplete(editor);
- textcomplete.register([names], {className:'acpopup', zIndex:1020});
+ $(this).each(function() {
+ var editor = new Textarea(this);
+ var textcomplete = new Textcomplete(editor);
+ textcomplete.register([names], {className:'acpopup', zIndex:1020});
+ });
if(autosubmit)
this.on('select', function(e,value,strategy) { submit_form(this); });
@@ -427,10 +434,12 @@ function string2bb(element) {
this.attr('autocomplete','off');
var Textarea = Textcomplete.editors.Textarea;
- var editor = new Textarea(this[0]);
- var textcomplete = new Textcomplete(editor);
- textcomplete.register([bbco], {className:'acpopup', zIndex:1020});
+ $(this).each(function() {
+ var editor = new Textarea(this);
+ var textcomplete = new Textcomplete(editor);
+ textcomplete.register([bbco], {className:'acpopup', zIndex:1020});
+ });
this.on('select', function(e, value, strategy) { value; });
diff --git a/view/theme/redbasic/schema/dark.css b/view/theme/redbasic/schema/dark.css
index d0154bfb1..dbee67c84 100644
--- a/view/theme/redbasic/schema/dark.css
+++ b/view/theme/redbasic/schema/dark.css
@@ -1,5 +1,4 @@
.generic-content-wrapper {
- border: 1px solid #111;
background-color: transparent;
}
@@ -148,7 +147,8 @@ option {
background-color:#111;
}
-.modal-content {
+.modal-content,
+#notifications_wrapper {
background-color: #111;
}