public function manage($hookType, dmDoctrineRecord $record) { if ($record instanceof dmRecordPermission && 'DmRecordPermission' === $record->get('secure_model')) { $permPermRecord = $record->getTable()->find($record->get('secure_record')); if ('DmRecordPermission' === $permPermRecord->get('secure_model')) { return; //don't go over 3 levels of permission of permission, crazy boy ! } } $security = $record->getDmModule()->getOption('security', false); if (is_array($security)) { foreach ($security as $app => $appConfig) { if (!is_array($appConfig)) { continue; } foreach ($appConfig as $actionKind => $actionsConfig) { if (!is_array($actionsConfig)) { continue; } foreach ($actionsConfig as $actionName => $actionConfig) { if (!is_array($actionConfig)) { continue; } if (isset($actionConfig['strategy']) && in_array($actionConfig['strategy'], array('record', 'mixed'))) { $method = 'manage' . ucfirst($hookType); if (method_exists($this, $method)) { $this->{$method}($record, $actionName, $actionConfig, $app); } } } } } } }
protected function replace(dmDoctrineRecord $record, array $fields) { foreach ($fields as $field) { $oldValue = $record->get($field); $newValue = strtr($oldValue, $this->getReplacements()); if ($oldValue != $newValue) { $this->log('Correct ' . $record . '->' . $field); $record->set($field, $newValue); $record->save(); } } }
public function getMediaUrl(dmDoctrineRecord $record) { if ($record instanceof DmMediaFolder) { if (null === $this->mediaFolderPathBaseUrl) { $this->mediaFolderPathBaseUrl = $this->generate('dm_media_library_path', array('path' => '__DM_MEDIA_PATH_PLACEHOLDER__')); } return str_replace('__DM_MEDIA_PATH_PLACEHOLDER__', $record->getRelPath(), $this->mediaFolderPathBaseUrl); } elseif ($record instanceof DmMedia) { return 'dmMediaLibrary/file?media_id=' . $record->get('id'); } else { throw new dmException('Can not generate url for ' . $record); } }
protected function updatePageIsActive(array $page, dmProjectModule $module, dmDoctrineRecord $record, array $modifiedFields) { if ($this->shouldUpdatePageIsActiveForModule($module)) { if (!$page['exist'] || $page['is_active'] != $record->get('is_active')) { $modifiedFields['is_active'] = $record->get('is_active'); } } return $modifiedFields; }
public function findOneByRecordWithI18n(dmDoctrineRecord $record) { $module = $record->getDmModule()->getKey(); if (isset($this->recordPageCache[$module][$record->get('id')])) { return $this->recordPageCache[$module][$record->get('id')]; } return $this->createQuery('p')->where('p.module = ?', $module)->andWhere('p.action = ?', 'show')->andWhere('p.record_id = ?', $record->get('id'))->withI18n(null, null, 'p')->fetchOne(); }