/** * Handle the create entity event. * * @param CreateEntityRepositoryEvent $event The received event. * * @return void */ public function handleCreateEntityRepository(CreateEntityRepositoryEvent $event) { if ($event->getRepository()) { return; } $providerName = $event->getProviderName(); $driver = $this->getDriver($providerName); switch ($driver) { case 'Table': $provider = new DefaultDataProvider(); $provider->setBaseConfig(array('source' => $providerName)); break; case 'General': // @codingStandardsIgnoreStart // TODO: Handle DcGeneral // @codingStandardsIgnoreEnd // @codingStandardsIgnoreStart // TODO: Handle DcGeneral // @codingStandardsIgnoreEnd default: return; } $repository = new EntityRepository($provider); $event->setRepository($repository); }
/** * Callback listener for get node items. * * @return null|string */ public function getItems() { if ($this->node['type'] !== 'regular') { return null; } $dataProvider = new DefaultDataProvider(); $dataProvider->setBaseConfig(array('source' => 'tl_article')); $count = $dataProvider->getCount($dataProvider->getEmptyConfig()->setFilter(array(array('property' => 'pid', 'value' => $this->node['id'], 'operation' => '=')))); if (intval($count) <= 0) { return null; } return $this->getArticleNode($this->node['id']); }
/** * Test that setting the base config works. * * @return void */ public function testSetBaseConfig() { $database = $this->mockDatabase(); $database->method('list_fields')->willReturn(array(array('name' => 'idField', 'type' => 'field'), array('name' => 'lastChanged', 'type' => 'field'), array('name' => 'idField', 'type' => 'index'))); $idGenerator = $this->getMockForAbstractClass('ContaoCommunityAlliance\\DcGeneral\\Data\\IdGeneratorInterface'); $dataProvider = new DefaultDataProvider(); $dataProvider->setBaseConfig(array('source' => 'tl_something', 'database' => $database, 'idProperty' => 'idField', 'timeStampProperty' => 'lastChanged', 'idGenerator' => $idGenerator)); $reflection = new \ReflectionProperty('ContaoCommunityAlliance\\DcGeneral\\Data\\DefaultDataProvider', 'objDatabase'); $reflection->setAccessible(true); $this->assertEquals('tl_something', $dataProvider->getEmptyModel()->getProviderName()); $this->assertEquals($database, $reflection->getValue($dataProvider)); $this->assertEquals('idField', $dataProvider->getIdProperty()); $this->assertEquals('lastChanged', $dataProvider->getTimeStampProperty()); $this->assertSame($idGenerator, $dataProvider->getIdGenerator()); }
/** * Set base config with source and other necessary parameter. * * @param array $arrConfig The configuration to use. * * @return void * * @throws DcGeneralException When no source has been defined. */ public function setBaseConfig(array $arrConfig) { parent::setBaseConfig($arrConfig); if (!$arrConfig['group_column']) { throw new DcGeneralException('ContaoCommunityAlliance\\DcGeneral\\Data\\TableRowsAsRecordsDriver needs a grouping column.', 1); } $this->strGroupCol = $arrConfig['group_column']; if ($arrConfig['sort_column']) { $this->strSortCol = $arrConfig['sort_column']; } }
/** * check if calendar is empty. * * @param $node * * @return bool */ protected function isEmptyCalendar($node) { $dataProvider = new DefaultDataProvider(); $dataProvider->setBaseConfig(array('source' => 'tl_calendar_events')); $count = $dataProvider->getCount($dataProvider->getEmptyConfig()->setFilter(array(array('property' => 'pid', 'value' => $node['id'], 'operation' => '=')))); if (intval($count) <= 0) { return true; } return false; }