/** * Function exporting addressbook contents to VCFs. * * @param array $params */ public function actionExportVCard($params) { $findParams = \GO\Base\Db\FindParams::loadExportFindParams('contact'); $findParams->limit(0); $store = new \GO\Base\Data\DbStore('GO\\Addressbook\\Model\\Contact', new \GO\Base\Data\ColumnModel('GO\\Addressbook\\Model\\Contact'), $params, $findParams); $file = new \GO\Base\Fs\File(\GO::t('contacts', 'addressbook') . '.vcf'); \GO\Base\Util\Http::outputDownloadHeaders($file); while ($record = $store->nextRecord()) { $model = \GO\Addressbook\Model\Contact::model()->findByPk($record['id']); if (!isset($fileStream)) { $fileStream = fopen('php://output', 'w+'); } fwrite($fileStream, $model->toVObject()->serialize()); } }