public static function renderOutput($addrbookId, $grpId = 'all') { if ($grpId === 'all') { $contacts_alphabet = VCard::all($addrbookId, null, null, array(), true); } elseif ($grpId === 'fav') { $contacts_alphabet = VCard::allByFavourite(); } else { $contacts_alphabet = VCard::getCardsByGroups($addrbookId, $grpId, null, null, true); } $addressBookPerm = Addressbook::find($addrbookId); //Favourites $favorites = \OC::$server->getTagManager()->load(self::$appname)->getFavorites(); $aFavourites = array(); if (is_array($favorites)) { foreach ($favorites as $fav) { $aFavourites[$fav] = 1; } } $contacts = array(); $counterAlle = 0; $aLetter = []; if ($contacts_alphabet) { $oldLetter = ''; foreach ($contacts_alphabet as $contact) { try { $vcard = VObject\Reader::read($contact['carddata']); $details = VCard::structureContact($vcard); $imgBuild = ''; if ($vcard->PHOTO) { $image = new \OCP\Image(); $image->loadFromData((string) $vcard->PHOTO); $imgSrc = $image->__toString(); $imgBuild = 'data:' . $image->mimeType() . ';base64,' . $imgSrc; } $sLetter = strtoupper(mb_substr($contact['sortFullname'], 0, 1, "UTF-8")); if ($sLetter !== $oldLetter) { $aLetter[] = $sLetter; } //\OCP\Util::writeLog(self::$appname,'LETTER: '. $sLetter.':'.$contact['fullname'], \OCP\Util::DEBUG); $contacts[$sLetter][] = array('id' => $contact['id'], 'aid' => $contact['addressbookid'], 'letter' => $sLetter, 'photo' => $imgBuild, 'component' => $contact['component'], 'fullname' => $contact['fullname'], 'surename' => $contact['surename'], 'lastname' => $contact['lastname'], 'organization' => $contact['organization'], 'bcompany' => $contact['bcompany'], 'data' => $details); $oldLetter = $sLetter; $counterAlle++; } catch (Exception $e) { continue; } } $oldLetter = ''; $buildingOutput = '<ul>'; foreach ($aLetter as $letterInfo) { $bFound = false; $ContactsOutput = ''; if (isset($contacts[$letterInfo])) { foreach ($contacts[$letterInfo] as $contactInfo) { $bFound = true; $CONTACTDATA = $contactInfo['data']; $prepareOutput = self::renderSingleCard($CONTACTDATA, $contactInfo, $addressBookPerm, $aFavourites); $ContactsOutput .= '<li class="contactsrow visible">' . $prepareOutput . '</li>'; } } if ($bFound === true) { $buildingOutput .= '<li class="letter" data-scroll="' . $letterInfo . '"><span>' . $letterInfo . '</span></li>' . $ContactsOutput; } else { $buildingOutput .= '<li class="letter hidden" data-scroll="' . $letterInfo . '"><span>' . $letterInfo . '</span></li>'; } } $buildingOutput .= '<li><span class="noitem hidden">' . (string) self::$l10n->t('No Cards found!') . '</span></li>'; $buildingOutput .= '</ul>'; } else { $buildingOutput = '<ul>'; foreach ($aLetter as $letterInfo) { $buildingOutput .= '<li class="letter hidden" data-scroll="' . $letterInfo . '"><span>' . $letterInfo . '</span></li>'; } $buildingOutput .= '<li><span class="noitem">' . (string) self::$l10n->t('Add a new contact or import existing contacts from a file (VCF) per Drag & Drop.') . ' <i id="importAddrStart" title="' . (string) self::$l10n->t('Import addressbook per Drag & Drop') . '" class="toolTip ioc ioc-upload"></i></span></li>'; $buildingOutput .= '</ul>'; } return $buildingOutput; }
public static function renderOutput($addrbookId, $grpId = 'all') { if ($grpId === 'all') { $contacts_alphabet = VCard::all($addrbookId, null, null, array(), true); } elseif ($grpId === 'fav') { $contacts_alphabet = VCard::allByFavourite(); } else { $contacts_alphabet = VCard::getCardsByGroups($addrbookId, $grpId, null, null, true); } $addressBookPerm = Addressbook::find($addrbookId); //Favourites $favorites = \OC::$server->getTagManager()->load(self::$appname)->getFavorites(); $aFavourites = array(); if (is_array($favorites)) { foreach ($favorites as $fav) { $aFavourites[$fav] = 1; } } $contacts = array(); $counterAlle = 0; $aLetter = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'); if ($contacts_alphabet) { foreach ($contacts_alphabet as $contact) { try { $vcard = VObject\Reader::read($contact['carddata']); $details = VCard::structureContact($vcard); $imgBuild = ''; if ($vcard->PHOTO) { $image = new \OCP\Image(); $image->loadFromData((string) $vcard->PHOTO); $imgSrc = $image->__toString(); $imgBuild = 'data:' . $image->mimeType() . ';base64,' . $imgSrc; } $sLetter = strtoupper(substr($contact['fullname'], 0, 1)); //\OCP\Util::writeLog(self::$appname,'LETTER: '. $sLetter.':'.$contact['fullname'], \OCP\Util::DEBUG); $contacts[$sLetter][] = array('id' => $contact['id'], 'aid' => $contact['addressbookid'], 'letter' => $sLetter, 'photo' => $imgBuild, 'component' => $contact['component'], 'fullname' => $contact['fullname'], 'surename' => $contact['surename'], 'lastname' => $contact['lastname'], 'data' => $details); $counterAlle++; } catch (Exception $e) { continue; } } $oldLetter = ''; $buildingOutput = '<ul>'; foreach ($aLetter as $letterInfo) { $bFound = false; $ContactsOutput = ''; if (isset($contacts[$letterInfo])) { foreach ($contacts[$letterInfo] as $contactInfo) { $bFound = true; $CONTACTDATA = $contactInfo['data']; $prepareOutput = self::renderSingleCard($CONTACTDATA, $contactInfo, $addressBookPerm, $aFavourites); $ContactsOutput .= '<li class="contactsrow">' . $prepareOutput . '</li>'; } } if ($bFound === true) { $buildingOutput .= '<li class="letter" data-scroll="' . $letterInfo . '"><span>' . $letterInfo . '</span></li>' . $ContactsOutput; } else { $buildingOutput .= '<li class="letter hidden" data-scroll="' . $letterInfo . '"><span>' . $letterInfo . '</span></li>'; } } $buildingOutput .= '</ul>'; } else { $buildingOutput = '<ul>'; foreach ($aLetter as $letterInfo) { $buildingOutput .= '<li class="letter hidden" data-scroll="' . $letterInfo . '"><span>' . $letterInfo . '</span></li>'; } $buildingOutput .= '<li><span class="noitem">' . (string) self::$l10n->t('No Cards found!') . '</span></li>'; $buildingOutput .= '</ul>'; } return $buildingOutput; }