Merge remote branch 'mike/master'

This commit is contained in:
Olivier Migeot 2011-04-13 14:25:13 +02:00
commit e051fa3605
7 changed files with 461 additions and 263 deletions

8
README
View file

@ -3,7 +3,7 @@
* Friendika * * Friendika *
************* *************
Distributed Social Network Social Communications Platform
http://friendika.com http://friendika.com
@ -40,8 +40,8 @@ interaction you've grown to love, *and* was free to use, *and* was open source,
*and* where your privacy is always under your control? *and* where your privacy is always under your control?
And what if this social network could scale to encompass the entire And what if this social network could scale to encompass the entire
internet, and *not* require a central organisation to provide servers? internet, and *not* require a central organisation - whose core business model
(In exchange for peddling your private information behind your back.) is to sell information it can discover about you for profit?
Look no further. Look no further.
@ -53,7 +53,7 @@ Status.Net and many other sites and social networks *today*.
Welcome to the federated social web. If you choose not to use Friendika Welcome to the federated social web. If you choose not to use Friendika
(though we think you'd be foolish not to), you can choose any of 20-30 other (though we think you'd be foolish not to), you can choose any of 20-30 other
providers of federated social networking software and still be a part of this providers of federated social communications software and still be a part of this
vast new social network. This is going to be bigger than Facebook. vast new social network. This is going to be bigger than Facebook.
Much bigger. Much bigger.

View file

@ -4,7 +4,7 @@ set_time_limit(0);
define ( 'FRIENDIKA_VERSION', '2.1.947' ); define ( 'FRIENDIKA_VERSION', '2.1.947' );
define ( 'DFRN_PROTOCOL_VERSION', '2.21' ); define ( 'DFRN_PROTOCOL_VERSION', '2.21' );
define ( 'DB_UPDATE_VERSION', 1050 ); define ( 'DB_UPDATE_VERSION', 1051 );
define ( 'EOL', "<br />\r\n" ); define ( 'EOL', "<br />\r\n" );
define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' ); define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );

View file

@ -514,3 +514,17 @@ CREATE TABLE IF NOT EXISTS `mailacct` (
`last_check` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' `last_check` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00'
) ENGINE = MYISAM DEFAULT CHARSET=utf8; ) ENGINE = MYISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `attach` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`uid` INT NOT NULL ,
`filetype` CHAR( 64 ) NOT NULL ,
`filesize` INT NOT NULL ,
`data` LONGBLOB NOT NULL ,
`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`edited` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`allow_cid` MEDIUMTEXT NOT NULL ,
`allow_gid` MEDIUMTEXT NOT NULL ,
`deny_cid` MEDIUMTEXT NOT NULL ,
`deny_gid` MEDIUMTEXT NOT NULL
) ENGINE = MYISAM DEFAULT CHARSET=utf8;

View file

@ -478,9 +478,11 @@ function get_atom_elements($feed,$item) {
$att_arr = array(); $att_arr = array();
foreach($attach as $att) { foreach($attach as $att) {
$len = intval($att->get_length()); $len = intval($att->get_length());
$link = str_replace(',','%2D', notags(trim($att->get_link()))); $link = str_replace(array(',','"'),array('%2D','%22'),notags(trim(unxmlify($att->get_link()))));
$title = str_replace(',','%2D',notags(trim($att->get_title()))); $title = str_replace(array(',','"'),array('%2D','%22'),notags(trim(unxmlify($att->get_title()))));
$type = notags(trim($att->get_type())); $type = str_replace(array(',','"'),array('%2D','%22'),notags(trim(unxmlify($att->get_type()))));
if(strpos($type,';'))
$type = substr($type,0,strpos($type,';'));
if((! $link) || (strpos($link,'http') !== 0)) if((! $link) || (strpos($link,'http') !== 0))
continue; continue;
@ -489,9 +491,7 @@ function get_atom_elements($feed,$item) {
if(! $type) if(! $type)
$type = 'application/octet-stream'; $type = 'application/octet-stream';
// this isn't legal html - there is no size in an 'a' tag, remember to strip it before display $att_arr[] = '[attach]href="' . $link . '" size="' . $len . '" type="' . $type . '" title="' . $title . '"[/attach]';
$att_arr[] = '<a href="' . $link . '" size="' . $len . '" type="' . $type . '">' . $title . '</a>';
} }
$res['attach'] = implode(',', $att_arr); $res['attach'] = implode(',', $att_arr);
} }
@ -1588,13 +1588,13 @@ function item_getfeedattach($item) {
if(count($arr)) { if(count($arr)) {
foreach($arr as $r) { foreach($arr as $r) {
$matches = false; $matches = false;
$cnt = preg_match('|\<a href=\"(.+?)\" size=\"(.+?)\" type=\"(.+?)\" >(.+?)</a>|',$r,$matches); $cnt = preg_match('|\[attach\]href=\"(.+?)\" size=\"(.+?)\" type=\"(.+?)\" title=\"(.+?)\"\[\/attach\]|',$r,$matches);
if($cnt) { if($cnt) {
$ret .= '<link rel="enclosure" href="' . xmlify($matches[1]) . '" type="' . xmlify($matches[3]) . '" '; $ret .= '<link rel="enclosure" href="' . xmlify($matches[1]) . '" type="' . xmlify($matches[3]) . '" ';
if(intval($matches[2])) if(intval($matches[2]))
$ret .= 'size="' . intval($matches[2]) . '" '; $ret .= 'size="' . intval($matches[2]) . '" ';
if($matches[4] !== ' ') if($matches[4] !== ' ')
$ret .= 'title="' . xmlify($matches[4]) . '" '; $ret .= 'title="' . xmlify(trim($matches[4])) . '" ';
$ret .= ' />' . "\r\n"; $ret .= ' />' . "\r\n";
} }
} }

View file

@ -444,3 +444,19 @@ function update_1049() {
) ENGINE = MYISAM "); ) ENGINE = MYISAM ");
} }
function update_1050() {
q("CREATE TABLE `attach` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`uid` INT NOT NULL ,
`filetype` CHAR( 64 ) NOT NULL ,
`filesize` INT NOT NULL ,
`data` LONGBLOB NOT NULL ,
`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`edited` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`allow_cid` MEDIUMTEXT NOT NULL ,
`allow_gid` MEDIUMTEXT NOT NULL ,
`deny_cid` MEDIUMTEXT NOT NULL ,
`deny_gid` MEDIUMTEXT NOT NULL
) ENGINE = MYISAM ");
}

File diff suppressed because it is too large Load diff

View file

@ -71,7 +71,7 @@ $a->strings["Select an identity to manage: "] = "Wähle eine Identität zum Verw
$a->strings["Submit"] = "Senden"; $a->strings["Submit"] = "Senden";
$a->strings["Image exceeds size limit of %d"] = "Bildgröße überschreitet das Limit von %d"; $a->strings["Image exceeds size limit of %d"] = "Bildgröße überschreitet das Limit von %d";
$a->strings["Unable to process image."] = "Konnte das Bild nicht bearbeiten."; $a->strings["Unable to process image."] = "Konnte das Bild nicht bearbeiten.";
$a->strings["Wall Photos"] = "Wall Photos"; $a->strings["Wall Photos"] = "Pinnwand Bilder";
$a->strings["Image upload failed."] = "Hochladen des Bildes gescheitert."; $a->strings["Image upload failed."] = "Hochladen des Bildes gescheitert.";
$a->strings["Administrator"] = "Administrator"; $a->strings["Administrator"] = "Administrator";
$a->strings["noreply"] = "noreply"; $a->strings["noreply"] = "noreply";
@ -93,7 +93,7 @@ $a->strings["I don't like this (toggle)"] = "Ich mag das nicht (toggle)";
$a->strings["This is you"] = "Das bist du"; $a->strings["This is you"] = "Das bist du";
$a->strings["Delete"] = "Löschen"; $a->strings["Delete"] = "Löschen";
$a->strings["View \$name's profile"] = "Betrachte das Profil von \$name"; $a->strings["View \$name's profile"] = "Betrachte das Profil von \$name";
$a->strings["Shared content is covered by the <a href=\"http://creativecommons.org/licenses/by/3.0/\">Creative Commons Attribution 3.0</a> license."] = "Shared content is covered by the <a href=\"http://creativecommons.org/licenses/by/3.0/\">Creative Commons Attribution 3.0</a> license."; $a->strings["Shared content is covered by the <a href=\"http://creativecommons.org/licenses/by/3.0/\">Creative Commons Attribution 3.0</a> license."] = "Geteilte Inhalte innerhalb des Friendika Netzwerks sind unter der <a href=\"http://creativecommons.org/licenses/by/3.0/\">Creative Commons Attribution 3.0</a> verfügbar.";
$a->strings["The profile address specified does not provide adequate information."] = "Die angegebene Profiladresse liefert unzureichende Informationen."; $a->strings["The profile address specified does not provide adequate information."] = "Die angegebene Profiladresse liefert unzureichende Informationen.";
$a->strings["Limited profile. This person will be unable to receive direct/personal notifications from you."] = "Eingeschränktes Profil. Diese Person wird keine direkten/privaten Nachrichten von dir erhalten können."; $a->strings["Limited profile. This person will be unable to receive direct/personal notifications from you."] = "Eingeschränktes Profil. Diese Person wird keine direkten/privaten Nachrichten von dir erhalten können.";
$a->strings["Unable to retrieve contact information."] = "Konnte die Kontaktinformationen nicht empfangen."; $a->strings["Unable to retrieve contact information."] = "Konnte die Kontaktinformationen nicht empfangen.";
@ -309,7 +309,8 @@ $a->strings["Profile location is not valid or does not contain profile informati
$a->strings["Warning: profile location has no identifiable owner name."] = "Warning: profile location has no identifiable owner name."; $a->strings["Warning: profile location has no identifiable owner name."] = "Warning: profile location has no identifiable owner name.";
$a->strings["Warning: profile location has no profile photo."] = "Warning: profile location has no profile photo."; $a->strings["Warning: profile location has no profile photo."] = "Warning: profile location has no profile photo.";
$a->strings["%d required parameter was not found at the given location"] = array( $a->strings["%d required parameter was not found at the given location"] = array(
0 => "", 0 => "%d benötigter Parameter wurde an der angegebenen Stelle nicht gefunden",
1 => "%d benötigte Parameter wurden an der angegebenen Stelle nicht gefunden",
); );
$a->strings["Introduction complete."] = "Vorstellung abgeschlossen."; $a->strings["Introduction complete."] = "Vorstellung abgeschlossen.";
$a->strings["Unrecoverable protocol error."] = "Nicht behebbarer Protokollfehler."; $a->strings["Unrecoverable protocol error."] = "Nicht behebbarer Protokollfehler.";
@ -399,7 +400,7 @@ $a->strings["Unable to update your contact profile details on our system"] = "Di
$a->strings["Connection accepted at %s"] = "Auf %s wurde die Verbindung akzeptiert"; $a->strings["Connection accepted at %s"] = "Auf %s wurde die Verbindung akzeptiert";
$a->strings["Login failed."] = "Annmeldung fehlgeschlagen."; $a->strings["Login failed."] = "Annmeldung fehlgeschlagen.";
$a->strings["Welcome back "] = "Willkommen zurück "; $a->strings["Welcome back "] = "Willkommen zurück ";
$a->strings["%s welcomes %s"] = "%s heist %s herzlich willkommen"; $a->strings["%s welcomes %s"] = "%s heißt %s herzlich willkommen";
$a->strings["No contacts."] = "Keine Kontakte."; $a->strings["No contacts."] = "Keine Kontakte.";
$a->strings["Group created."] = "Gruppe erstellt."; $a->strings["Group created."] = "Gruppe erstellt.";
$a->strings["Could not create group."] = "Konnte die Gruppe nicht erstellen."; $a->strings["Could not create group."] = "Konnte die Gruppe nicht erstellen.";
@ -632,7 +633,7 @@ $a->strings["%d member"] = array(
$a->strings["Warning: This group contains %s from an insecure network."] = "Warnung: Diese Gruppe beinhaltet %s aus einem unsicheren Netzwerk."; $a->strings["Warning: This group contains %s from an insecure network."] = "Warnung: Diese Gruppe beinhaltet %s aus einem unsicheren Netzwerk.";
$a->strings["Private messages to this group are at risk of public disclosure."] = "Private Nachrichten an diese Gruppe könnten an die Öffentlichkeit geraten."; $a->strings["Private messages to this group are at risk of public disclosure."] = "Private Nachrichten an diese Gruppe könnten an die Öffentlichkeit geraten.";
$a->strings["See more posts like this"] = "Mehr Beiträge wie diesen anzeigen"; $a->strings["See more posts like this"] = "Mehr Beiträge wie diesen anzeigen";
$a->strings["D, d M Y - g:i A"] = "g A l F d"; $a->strings["D, d M Y - g:i A"] = "D, d. M Y - g:i A";
$a->strings["Welcome home %s."] = "Willkommen zurück %s."; $a->strings["Welcome home %s."] = "Willkommen zurück %s.";
$a->strings["Please confirm your introduction/connection request to %s."] = "Bitte bestätige deine Vorstellung/Verbindungs Anfrage bei %s."; $a->strings["Please confirm your introduction/connection request to %s."] = "Bitte bestätige deine Vorstellung/Verbindungs Anfrage bei %s.";
$a->strings["Confirm"] = "Bestätigen"; $a->strings["Confirm"] = "Bestätigen";
@ -725,7 +726,7 @@ $a->strings["Your password may be changed from the <em>Settings</em> page after
$a->strings["Deny"] = "Verwehren"; $a->strings["Deny"] = "Verwehren";
$a->strings["Publish your default profile in site directory?"] = "Dein Standard-Profil im Verzeichnis dieser Seite veröffentliche?"; $a->strings["Publish your default profile in site directory?"] = "Dein Standard-Profil im Verzeichnis dieser Seite veröffentliche?";
$a->strings["Publish your default profile in global social directory?"] = "Dein Standard-Profil im weltweiten Verzeichnis veröffentlichen?"; $a->strings["Publish your default profile in global social directory?"] = "Dein Standard-Profil im weltweiten Verzeichnis veröffentlichen?";
$a->strings["or"] = " oder "; $a->strings["or"] = "oder";
$a->strings["Your profile address is"] = "Deine Profiladresse lautet"; $a->strings["Your profile address is"] = "Deine Profiladresse lautet";
$a->strings["Basic Settings"] = "Grundeinstellungen"; $a->strings["Basic Settings"] = "Grundeinstellungen";
$a->strings["Email Address:"] = "Email Adresse:"; $a->strings["Email Address:"] = "Email Adresse:";
@ -761,3 +762,14 @@ $a->strings["Online Reputation"] = "Online Ruf";
$a->strings["Occasionally your friends may wish to inquire about this person's online legitimacy."] = "Es könnte sein, dass deine Freunde etwas über den Ruf einer Peron erfahren möchten."; $a->strings["Occasionally your friends may wish to inquire about this person's online legitimacy."] = "Es könnte sein, dass deine Freunde etwas über den Ruf einer Peron erfahren möchten.";
$a->strings["You may help them choose whether or not to interact with this person by providing a <em>reputation</em> to guide them."] = "Du kannst ihnen bei der Entscheidung helfen ob sie mit einer Person interagieren sollten oder nicht indem du Informationen über den <em>Ruf</em> der Person anbietest."; $a->strings["You may help them choose whether or not to interact with this person by providing a <em>reputation</em> to guide them."] = "Du kannst ihnen bei der Entscheidung helfen ob sie mit einer Person interagieren sollten oder nicht indem du Informationen über den <em>Ruf</em> der Person anbietest.";
$a->strings["Please take a moment to elaborate on this selection if you feel it could be helpful to others."] = "Bitte nimm dir einen Moment und fülle diesen Punkt aus wenn du denkst das es anderen helfen könnte."; $a->strings["Please take a moment to elaborate on this selection if you feel it could be helpful to others."] = "Bitte nimm dir einen Moment und fülle diesen Punkt aus wenn du denkst das es anderen helfen könnte.";
$a->strings["View %s's profile"] = "Betrachte %s's Profil";
$a->strings["Help"] = "Hilfe";
$a->strings["Visible to everybody"] = "Für jeden sichtbar";
$a->strings["Edit visibility"] = "Sichtbarkeit bearbeiten";
$a->strings["Click on a contact to add or remove."] = "Klicke einen Kontakt an um ihn hinzuzufügen oder zu entfernen";
$a->strings["Members"] = "Mitglieder";
$a->strings["All Contacts"] = "Alle Kontakte";
$a->strings["Invalid profile identifier."] = "Ungültiger Profil-Bezeichner";
$a->strings["Profile Visibility Editor"] = "Editor für die Profil-Sichtbarkeit";
$a->strings["Visible To"] = "Sichtbar für";
$a->strings["All Contacts (with secure profile access)"] = "Alle Kontakte (mit gesichertem Profil zugriff)";