本文整理汇总了PHP中Modules::getExportableModules方法的典型用法代码示例。如果您正苦于以下问题:PHP Modules::getExportableModules方法的具体用法?PHP Modules::getExportableModules怎么用?PHP Modules::getExportableModules使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Modules
的用法示例。
在下文中一共展示了Modules::getExportableModules方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: reconstructImportedActionAssoc
/**
* Handle reconstructing and validating Action associations
* @param Action $model Action to reconstruct association
*/
protected function reconstructImportedActionAssoc(Actions &$model)
{
$exportableModules = array_merge(array_keys(Modules::getExportableModules()), array('None'));
$exportableModules = array_map('lcfirst', $exportableModules);
$model->associationType = lcfirst($model->associationType);
if (!in_array($model->associationType, $exportableModules)) {
// Invalid association type
$model->addError('associationType', Yii::t('admin', 'Unknown associationType.'));
} else {
if (isset($model->associationId) && $model->associationId !== '0') {
$associatedModel = X2Model::model($model->associationType)->findByPk($model->associationId);
if ($associatedModel) {
$model->associationName = $associatedModel->nameId;
}
} else {
if (!isset($model->associationId) && isset($model->associationName)) {
// Retrieve associationId
$staticAssociationModel = X2Model::model($model->associationType);
if ($staticAssociationModel->hasAttribute('name') && !ctype_digit($model->associationName)) {
$associationModelParams = array('name' => $model->associationName);
} else {
$associationModelParams = array('id' => $model->associationName);
}
$lookup = $staticAssociationModel->findByAttributes($associationModelParams);
if (isset($lookup)) {
$model->associationId = $lookup->id;
$model->associationName = $lookup->hasAttribute('nameId') ? $lookup->nameId : $lookup->name;
}
}
}
}
}
示例2: actionImportModels
/**
* The general model import page
*/
public function actionImportModels()
{
// Determine the model selected by the user
if (isset($_GET['model']) || isset($_POST['model'])) {
$_SESSION['model'] = isset($_GET['model']) ? $_GET['model'] : $_POST['model'];
}
// Retrieve specified export delimeter and enclosure
$_SESSION['delimeter'] = isset($_POST['delimeter']) ? $_POST['delimeter'] : ',';
$_SESSION['enclosure'] = isset($_POST['enclosure']) ? $_POST['enclosure'] : '"';
if (isset($_FILES['data'])) {
$temp = CUploadedFile::getInstanceByName('data');
$temp->saveAs($filePath = $this->safePath('data.csv'));
ini_set('auto_detect_line_endings', 1);
// Account for Mac based CSVs if possible
$_SESSION['csvLength'] = 0;
if (file_exists($filePath)) {
$fp = fopen($filePath, 'r+');
$csvLength = $this->calculateCsvLength($filePath);
$this->fixCsvLineEndings($filePath);
} else {
throw new Exception('There was an error saving the models file.');
}
list($meta, $x2attributes) = $this->initializeModelImporter($fp);
$preselectedMap = false;
if (isset($_POST['x2maps'])) {
// Use an existing import map from the app
$importMap = $this->loadImportMap($_POST['x2maps']);
if (empty($importMap)) {
$_SESSION['errors'] = Yii::t('admin', 'Unable to load import map');
$this->redirect('importModels');
}
$_SESSION['importMap'] = $this->normalizeImportMap($importMap['mapping'], $meta);
$_SESSION['mapName'] = $importMap['name'];
// Make sure $importMap is consistent with and without an uploaded import map
$importMap = $_SESSION['importMap'];
$preselectedMap = true;
} else {
if (CUploadedFile::getInstanceByName('mapping') instanceof CUploadedFile && CUploadedFile::getInstanceByName('mapping')->size > 0) {
$this->loadUploadedImportMap();
$_SESSION['importMap'] = $this->normalizeImportMap($_SESSION['importMap'], $meta);
$preselectedMap = true;
$importMap = $_SESSION['importMap'];
} else {
// Set up import map via the internal function
$this->createImportMap($x2attributes, $meta);
$importMap = $_SESSION['importMap'];
// We need the flipped version to display to users more easily which
// of their fields maps to what X2 field
$importMap = array_flip($importMap);
}
}
$sampleRecords = $this->prepareImportSampleRecords($meta, $fp);
fclose($fp);
// Remove the import failures column; the user doesn't need to know about it
$meta = array_filter($meta, function ($x) {
return $x !== 'X2_Import_Failures';
});
$this->render('processModels', array('attributes' => $x2attributes, 'meta' => $meta, 'csvLength' => isset($csvLength) ? $csvLength : null, 'fields' => $_SESSION['fields'], 'model' => str_replace(' ', '', $_SESSION['model']), 'sampleRecords' => $sampleRecords, 'importMap' => $importMap, 'preselectedMap' => $preselectedMap));
} else {
$modelList = Modules::getExportableModules();
$errors = isset($_SESSION['errors']) ? $_SESSION['errors'] : "";
$this->render('importModels', array('model' => isset($_SESSION['model']) ? $_SESSION['model'] : '', 'modelList' => $modelList, 'errors' => $errors));
}
}
示例3: actionImportModels
/**
* The general model import page
*/
public function actionImportModels()
{
// Determine the model selected by the user
if (isset($_GET['model']) || isset($_POST['model'])) {
$_SESSION['model'] = isset($_GET['model']) ? $_GET['model'] : $_POST['model'];
}
// Retrieve specified export delimeter and enclosure
$_SESSION['delimeter'] = isset($_POST['delimeter']) ? $_POST['delimeter'] : ',';
$_SESSION['enclosure'] = isset($_POST['enclosure']) ? $_POST['enclosure'] : '"';
// Retrive the default map option selected by the user, otherwise DO NOT MAP by default
$defaultMapping = isset($_POST['defaultMapOption']) ? $_POST['defaultMapOption'] : '';
if (isset($_FILES['data'])) {
$temp = CUploadedFile::getInstanceByName('data');
$temp->saveAs($filePath = $this->safePath('data.csv'));
ini_set('auto_detect_line_endings', 1);
// Account for Mac based CSVs if possible
$_SESSION['csvLength'] = 0;
if (file_exists($filePath)) {
$fp = fopen($filePath, 'r+');
$csvLength = $this->calculateCsvLength($filePath);
$this->fixCsvLineEndings($filePath);
} else {
throw new Exception('There was an error saving the models file.');
}
list($meta, $x2attributes) = $this->initializeModelImporter($fp);
$preselectedMap = false;
if (isset($_POST['x2maps'])) {
// Use an existing import map from the app
$importMap = $this->loadImportMap($_POST['x2maps']);
if (empty($importMap)) {
$_SESSION['errors'] = Yii::t('admin', 'Unable to load import map');
$this->redirect('importModels');
}
$_SESSION['importMap'] = $this->normalizeImportMap($importMap['mapping'], $meta);
$_SESSION['mapName'] = $importMap['name'];
// Make sure $importMap is consistent with and without an uploaded import map
$importMap = $_SESSION['importMap'];
$preselectedMap = true;
} else {
if (CUploadedFile::getInstanceByName('mapping') instanceof CUploadedFile && CUploadedFile::getInstanceByName('mapping')->size > 0) {
$this->loadUploadedImportMap();
$_SESSION['importMap'] = $this->normalizeImportMap($_SESSION['importMap'], $meta);
$preselectedMap = true;
$importMap = $_SESSION['importMap'];
} else {
// Set up import map via the internal function
$this->createImportMap($x2attributes, $meta);
$importMap = $_SESSION['importMap'];
// We need the flipped version to display to users more easily which
// of their fields maps to what X2 field
$importMap = array_flip($importMap);
}
}
$sampleRecords = $this->prepareImportSampleRecords($meta, $fp);
fclose($fp);
// Remove the import failures column; the user doesn't need to know about it
$meta = array_filter($meta, function ($x) {
return $x !== 'X2_Import_Failures';
});
// Retrieve link-type fields and associations to present a selector for the
// field in the related model to search on
$linkFields = Fields::model()->findAllByAttributes(array('modelName' => $_SESSION['model'], 'type' => 'link'));
$linkFieldModelMap = array();
foreach ($linkFields as $field) {
$linkFieldModelMap[$field['fieldName']] = $field['linkType'];
}
$possibleModels = array_keys(Modules::getExportableModules());
foreach ($possibleModels as $model) {
$attributes = Fields::model()->findAllByAttributes(array('modelName' => $model));
foreach ($attributes as $attr) {
$listData[$attr['fieldName']] = $attr['attributeLabel'];
}
$dropdown = CHtml::dropDownList('attr', 'name', $listData, array('class' => 'linkMatchSelector'));
$linkedRecordDropdowns[$model] = $dropdown;
}
$this->render('processModels', array('defaultMapping' => $defaultMapping, 'attributes' => $x2attributes, 'meta' => $meta, 'csvLength' => isset($csvLength) ? $csvLength : null, 'fields' => $_SESSION['fields'], 'model' => str_replace(' ', '', $_SESSION['model']), 'sampleRecords' => $sampleRecords, 'importMap' => $importMap, 'preselectedMap' => $preselectedMap, 'linkFieldModelMap' => $linkFieldModelMap, 'linkedRecordDropdowns' => $linkedRecordDropdowns));
} else {
$modelList = Modules::getExportableModules();
$errors = isset($_SESSION['errors']) ? $_SESSION['errors'] : "";
$this->render('importModels', array('model' => isset($_SESSION['model']) ? $_SESSION['model'] : '', 'modelList' => $modelList, 'errors' => $errors));
}
}