/** * Initializes rows and fields from CSV file * @param resource $fp File pointer, obtained with {@link fopen()} * @param SQLICSVOptions $options * @return SQLICSVRowSet */ public static function fromCSVFile($fp, SQLICSVOptions $options = null) { if (!$options instanceof SQLICSVOptions) { $options = new SQLICSVOptions(); } $set = new self(); $i = 0; while ($data = fgetcsv($fp, $options['csv_line_length'], $options['delimiter'], $options['enclosure'])) { //echo "Working on CSV row #$i\n"; if ($i == 0) { $set->setRowHeaders($data); $i++; unset($data); continue; } $aRowData = array(); $headers = $set->getHeaders(); for ($j = 0, $jMax = count($headers); $j < $jMax; ++$j) { $aRowData[$headers[$j]] = $data[$j]; } unset($headers, $data); $row = new SQLICSVRow($aRowData); $set->rows[] = $row; unset($aRowData); $i++; } $set->initIterator(); return $set; }
/** * Initializes a content fieldset holder from eZContentObject * @param eZContentObject $object * @return SQLIContentFieldsetHolder */ public static function fromContentObject(eZContentObject $object) { eZDebug::accumulatorStart('fieldset_holder_create', 'sqlicontent'); $setHolder = new self(); $languages = $object->allLanguages(); $setHolder->contentObject = $object; foreach ($languages as $lang) { $locale = $lang->attribute('locale'); $set = SQLIContentFieldset::fromDataMap($object->fetchDataMap(false, $locale)); $set->setLanguage($locale); $setHolder->fieldsets[$locale] = $set; } // Set default language $setHolder->setActiveLanguage(eZContentObject::defaultLanguage()); // Init internal iterator $setHolder->initIterator(); eZDebug::accumulatorStop('fieldset_holder_create'); return $setHolder; }