예제 #1
0
 /**
  * Get a data container
  * @param string $strName
  *
  * @return DataContainer
  *
  * @throws \RuntimeException
  */
 public static function getDataContainer($strName)
 {
     BackendBindings::loadDataContainer($strName);
     BackendBindings::loadLanguageFile($strName);
     if (!isset($GLOBALS['TL_DCA'][$strName])) {
         throw new \RuntimeException("DataContainer {$strName} does not exist.");
     }
     return DataContainer::getInstance($strName);
 }
예제 #2
0
 /**
  * ProviderManager is used for getting a DataProvider when not using the DC_General
  *
  * @param $dataContainer
  * @return \DcGeneral\Data\DriverInterface
  */
 public function getDataProvider($dataContainer)
 {
     if (!isset($this->drivers[$dataContainer])) {
         if (!isset($GLOBALS['TL_DCA'][$dataContainer])) {
             BackendBindings::loadLanguageFile($dataContainer);
             BackendBindings::loadDataContainer($dataContainer);
         }
         $config = $GLOBALS['TL_DCA'][$dataContainer]['dca_config'];
         $class = '\\DcGeneral\\Data\\DefaultDriver';
         if (isset($config['data_provider']['default'])) {
             $config = $config['data_provider']['default'];
             if (array_key_exists('class', $config)) {
                 $class = $config['class'];
             }
         }
         /** @var \DcGeneral\Data\DriverInterface $driver */
         $driver = new $class();
         $driver->setBaseConfig(array('source' => $dataContainer));
         $this->drivers[$dataContainer] = $driver;
     }
     return $this->drivers[$dataContainer];
 }