// Fix carrier lang copy when a new shop is created + can duplicate data when editing a shop

git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@8094 b9a71923-0436-4b27-9f14-aed3839534dd
This commit is contained in:
rMalie committed 2011-08-17 13:37:15 +00:00
1 parent 549d5be0c7
commit 51f2bf2617
2 files changed
+11 -6

No files matched your search

+10 -5
View File
@@ -67,6 +67,12 @@ class AdminShop extends AdminTab
$newShop->copyShopData((int)Tools::getValue('importFromShop'), $importData); $newShop->copyShopData((int)Tools::getValue('importFromShop'), $importData);
} }
public function afterUpdate($newShop)
{
if (Tools::getValue('useImportData') && ($importData = Tools::getValue('importData')) && is_array($importData))
$newShop->copyShopData((int)Tools::getValue('importFromShop'), $importData);
}
public function postProcess() public function postProcess()
{ {
if ((Tools::isSubmit('status') || Tools::isSubmit('status'.$this->table) || (Tools::isSubmit('submitAdd'.$this->table) && Tools::getValue($this->identifier) && !Tools::getValue('active'))) && $this->loadObject() && $this->loadObject()->active) if ((Tools::isSubmit('status') || Tools::isSubmit('status'.$this->table) || (Tools::isSubmit('submitAdd'.$this->table) && Tools::getValue($this->identifier) && !Tools::getValue('active'))) && $this->loadObject() && $this->loadObject()->active)
@@ -170,10 +176,9 @@ class AdminShop extends AdminTab
<div class="small"><sup>*</sup> '.$this->l('Required field').'</div> <div class="small"><sup>*</sup> '.$this->l('Required field').'</div>
</fieldset><br /><br />'; </fieldset><br /><br />';
if (Tools::getValue('addshop') !== false)
{
$importData = array( $importData = array(
'carrier' => $this->l('Carriers'), 'carrier' => $this->l('Carriers'),
'carrier_lang' => $this->l('Carriers lang'),
'category_lang' => $this->l('Category lang'), 'category_lang' => $this->l('Category lang'),
'cms' => $this->l('CMS page'), 'cms' => $this->l('CMS page'),
'contact' => $this->l('Contact'), 'contact' => $this->l('Contact'),
@@ -198,10 +203,11 @@ class AdminShop extends AdminTab
'zone' => $this->l('Zones'), 'zone' => $this->l('Zones'),
); );
$checked = (Tools::getValue('addshop') !== false) ? true : false;
echo '<fieldset><legend>'.$this->l('Import data from another shop').'</legend>'; echo '<fieldset><legend>'.$this->l('Import data from another shop').'</legend>';
echo '<label>'.$this->l('Import data from another shop').'</label>'; echo '<label>'.$this->l('Import data from another shop').'</label>';
echo '<div class="margin-form">'; echo '<div class="margin-form">';
echo '<input type="checkbox" value="1" checked="checked" name="useImportData" onclick="$(\'#importList\').slideToggle(\'slow\')" /> '; echo '<input type="checkbox" value="1" '.(($checked) ? 'checked="checked"' : '').' name="useImportData" onclick="$(\'#importList\').slideToggle(\'slow\')" /> ';
echo $this->l('Duplicate data from shop'); echo $this->l('Duplicate data from shop');
echo ' <select name="importFromShop">'; echo ' <select name="importFromShop">';
foreach (Shop::getTree() as $gID => $gData) foreach (Shop::getTree() as $gID => $gData)
@@ -212,7 +218,7 @@ class AdminShop extends AdminTab
echo '</optgroup>'; echo '</optgroup>';
} }
echo '</select>'; echo '</select>';
echo '<div id="importList" style=""><ul>'; echo '<div id="importList" style="'.((!$checked) ? 'display: none' : '').'"><ul>';
foreach ($importData as $table => $lang) foreach ($importData as $table => $lang)
echo '<li><label><input type="checkbox" name="importData['.$table.']" checked="checked" /> '.$lang.'</label></li>'; echo '<li><label><input type="checkbox" name="importData['.$table.']" checked="checked" /> '.$lang.'</label></li>';
echo '</ul></div>'; echo '</ul></div>';
@@ -221,7 +227,6 @@ class AdminShop extends AdminTab
<input type="submit" value="'.$this->l(' Save ').'" name="submitAdd'.$this->table.'" class="button" /> <input type="submit" value="'.$this->l(' Save ').'" name="submitAdd'.$this->table.'" class="button" />
</div>'; </div>';
echo '</fieldset>'; echo '</fieldset>';
}
echo '</form>'; echo '</form>';
} }
+1 -1
View File
@@ -737,7 +737,7 @@ class ShopCore extends ObjectModel
unset($res[$row['primary']]); unset($res[$row['primary']]);
$keys = implode(', ', array_keys($res)); $keys = implode(', ', array_keys($res));
$sql = 'INSERT INTO `'._DB_PREFIX_.$table_name.'` ('.$keys.', '.$id.') $sql = 'INSERT IGNORE INTO `'._DB_PREFIX_.$table_name.'` ('.$keys.', '.$id.')
(SELECT '.$keys.', '.(int)$this->id.' FROM '._DB_PREFIX_.$table_name.' (SELECT '.$keys.', '.(int)$this->id.' FROM '._DB_PREFIX_.$table_name.'
WHERE `'.$id.'` = '.(int)$old_id.')'; WHERE `'.$id.'` = '.(int)$old_id.')';
Db::getInstance()->Execute($sql); Db::getInstance()->Execute($sql);