aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSilvio <s1lv10@uol.com.br>2010-08-09 12:24:41 -0300
committerSilvio <s1lv10@uol.com.br>2010-08-09 12:24:41 -0300
commit3ac0e8cbbc0d655234c863291585a7e40d905147 (patch)
treefa79296b19198fbf002827d766dabba43983f068
parent831477c2045d4db7db669c2abf1a95c31ed0701b (diff)
downloadsf_isis_importer_plugin-3ac0e8cbbc0d655234c863291585a7e40d905147.tar.gz
sf_isis_importer_plugin-3ac0e8cbbc0d655234c863291585a7e40d905147.tar.bz2
Adding method skipExisting at sfIsisImporter
-rw-r--r--lib/sfIsisImporter.class.php26
-rw-r--r--lib/sfIsisImporterManager.class.php6
2 files changed, 27 insertions, 5 deletions
diff --git a/lib/sfIsisImporter.class.php b/lib/sfIsisImporter.class.php
index 22541e3..d0d9a9f 100644
--- a/lib/sfIsisImporter.class.php
+++ b/lib/sfIsisImporter.class.php
@@ -142,21 +142,43 @@ class sfIsisImporter extends IsisConnector
if ($id)
{
- if (!call_user_func(array($base_model, 'getById'), $id))
+ $existing = call_user_func(array($base_model, 'getById'), $id);
+
+ if (!$existing)
{
$this->setBaseModelId($model);
return $model;
}
- else
+ elseif ($this->skipExisting())
{
return false;
}
+ else
+ {
+ return $existing;
+ }
}
return $model;
}
/**
+ * Check if ISIS database configuration is set to not skip existing
+ * entries during an import.
+ *
+ * @return boolean
+ */
+ public function skipExisting()
+ {
+ if (isset($this->format['import']['skip_existing']))
+ {
+ return $this->format['import']['skip_existing'];
+ }
+
+ return true;
+ }
+
+ /**
* Set the primary key for the model by getting it or just saving it.
*
* @param object $model Base model
diff --git a/lib/sfIsisImporterManager.class.php b/lib/sfIsisImporterManager.class.php
index 24b483e..e615f0c 100644
--- a/lib/sfIsisImporterManager.class.php
+++ b/lib/sfIsisImporterManager.class.php
@@ -90,9 +90,9 @@ class sfIsisImporterManager extends IsisConnector
$database = basename($file, '.yaml');
$options = sfYaml::load($file);
- if (isset($options['db']['order']))
+ if (isset($options['import']['order']))
{
- $databases[$options['db']['order']] = $database;
+ $databases[$options['import']['order']] = $database;
}
else
{
@@ -145,7 +145,7 @@ class sfIsisImporterManager extends IsisConnector
{
// Determine base model and max entries.
$this->log('Starting mass import procedure for config '. $database .'.', 'notice');
- $base_model = $importer->format['db']['base_model'];
+ $base_model = $importer->format['import']['base_model'];
$this->entries = ($entries != NULL && $entries <= $importer->entries) ? $entries : $importer->entries;
if ($base_model) {