<?php
+use Friendica\Core\L10n;
+
class Sabre_CardDAV_Backend_Friendica extends Sabre_CardDAV_Backend_Virtual
{
* @return string
*/
public static function getBackendTypeName() {
- return t("Friendica-Contacts");
+ return L10n::t("Friendica-Contacts");
}
/**
{
$uid = dav_compat_principal2uid($principalUri);
- $addressBooks = array();
+ $addressBooks = [];
$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));
$ctag = $books[0]["ctag"];
- $addressBooks[] = array(
+ $addressBooks[] = [
'id' => $books[0]["id"],
'uri' => "friendica",
'principaluri' => $principalUri,
- '{DAV:}displayname' => t("Friendica-Contacts"),
- '{' . Sabre_CardDAV_Plugin::NS_CARDDAV . '}addressbook-description' => t("Your Friendica-Contacts"),
+ '{DAV:}displayname' => L10n::t("Friendica-Contacts"),
+ '{' . Sabre_CardDAV_Plugin::NS_CARDDAV . '}addressbook-description' => L10n::t("Your Friendica-Contacts"),
'{http://calendarserver.org/ns/}getctag' => $ctag,
'{' . Sabre_CardDAV_Plugin::NS_CARDDAV . '}supported-address-data' =>
new Sabre_CardDAV_Property_SupportedAddressData(),
- );
+ ];
return $addressBooks;
{
$name = explode(" ", $contact["name"]);
$first_name = $last_name = "";
- $middle_name = array();
+ $middle_name = [];
$num = count($name);
for ($i = 0; $i < $num && $first_name == ""; $i++) if ($name[$i] != "") {
$first_name = $name[$i];
}
$vcard = vcard_source_compile($vcarddata);
- return array(
+ return [
"id" => $contact["id"],
"carddata" => $vcard,
"uri" => $contact["id"] . ".vcf",
"lastmodified" => wdcal_mySql2PhpTime($vcarddata->last_update),
"etag" => md5($vcard),
"size" => strlen($vcard),
- );
+ ];
}
/**
* @static
* @param int $addressbookId
+ * @param bool $force
* @throws Sabre_DAV_Exception_NotFound
*/
- static protected function createCache_internal($addressbookId) {
+ static protected function createCache_internal($addressbookId, $force = false) {
//$notin = (count($exclude_ids) > 0 ? " AND id NOT IN (" . implode(", ", $exclude_ids) . ") " : "");
$addressbook = q("SELECT * FROM %s%saddressbooks WHERE `id` = %d", CALDAV_SQL_DB, CALDAV_SQL_PREFIX, IntVal($addressbookId));
if (count($addressbook) != 1 || $addressbook[0]["namespace"] != CARDDAV_NAMESPACE_PRIVATE) throw new Sabre_DAV_Exception_NotFound();
$contacts = q("SELECT * FROM `contact` WHERE `uid` = %d AND `blocked` = 0 AND `pending` = 0 AND `hidden` = 0 AND `archive` = 0 ORDER BY `name` ASC", $addressbook[0]["namespace_id"]);
- $retdata = array();
foreach ($contacts as $contact) {
$x = static::dav_contactarr2vcardsource($contact);
q("INSERT INTO %s%saddressbookobjects (`addressbook_id`, `contact`, `carddata`, `uri`, `lastmodified`, `etag`, `size`) VALUES (%d, %d, '%s', '%s', NOW(), '%s', %d)",
}
+ /**
+ * @static
+ * @param int $addressbookId
+ * @param int $contactId
+ * @param bool $force
+ * @throws Sabre_DAV_Exception_NotFound
+ */
+ static protected function createCardCache($addressbookId, $contactId, $force = false)
+ {
+ $addressbook = q("SELECT * FROM %s%saddressbooks WHERE `id` = %d", CALDAV_SQL_DB, CALDAV_SQL_PREFIX, IntVal($addressbookId));
+ if (count($addressbook) != 1 || $addressbook[0]["namespace"] != CARDDAV_NAMESPACE_PRIVATE) throw new Sabre_DAV_Exception_NotFound();
+
+ $contacts = q("SELECT * FROM `contact` WHERE `uid` = %d AND `blocked` = 0 AND `pending` = 0 AND `hidden` = 0 AND `archive` = 0 AND `id` = %d ORDER BY `name` ASC",
+ $addressbook[0]["namespace_id"], IntVal($contactId));
+ $contact = $contacts[0];
+
+ $x = static::dav_contactarr2vcardsource($contact);
+ q("INSERT INTO %s%saddressbookobjects (`addressbook_id`, `contact`, `carddata`, `uri`, `lastmodified`, `etag`, `size`) VALUES (%d, %d, '%s', '%s', NOW(), '%s', %d)",
+ CALDAV_SQL_DB, CALDAV_SQL_PREFIX, $addressbookId, $contact["id"], dbesc($x["carddata"]), dbesc($x["uri"]), dbesc($x["etag"]), $x["size"]
+ );
+ }
/**
* Updates a card.
*
return true;
}
+
}