Source of file DynamicListCsvLoader.php
Size: 1,367 Bytes - Last Modified: 2021-12-23T10:20:16+00:00
/var/www/docs.ssmods.com/process/src/src/loaders/DynamicListCsvLoader.php
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | <?php namespace Symbiote\DynamicLists; use SilverStripe\Core\Convert; use SilverStripe\ORM\DataObject; use SilverStripe\Dev\CsvBulkLoader; class DynamicListCsvLoader extends CsvBulkLoader { public function __construct($objectClass) { parent::__construct($objectClass); $this->relationCallbacks = array( 'AgencyTitle' => array( 'relationname' => 'Items', 'callback' => 'getItemByTitle' ), ); } protected function processRecord($record, $columnMap, &$results, $preview = false) { $class = $this->objectClass; $title = trim($record['Title']); $item = trim($record['ListItem']); $existingList = DynamicList::get_dynamic_list($title); if (!$existingList) { $existingList = new DynamicList; $existingList->Title = $title; $existingList->write(); } // now add the item to that list $existingItem = DataObject::get_one(DynamicListItem::class, '"Title"=\''.Convert::raw2sql($item).'\' AND "ListID" = '.((int) $existingList->ID)); if (!$existingItem) { $existingItem = new DynamicListItem; $existingItem->Title = $item; $existingItem->ListID = $existingList->ID; $existingItem->write(); } } } |