Skip to content

Commit

Permalink
Add backend link option
Browse files Browse the repository at this point in the history
  • Loading branch information
damsfx committed Oct 9, 2021
1 parent 4e46a19 commit d5fe3c2
Show file tree
Hide file tree
Showing 4 changed files with 68 additions and 3 deletions.
6 changes: 6 additions & 0 deletions lang/en/lang.php
Original file line number Diff line number Diff line change
Expand Up @@ -41,12 +41,18 @@
'user_defined_id' => 'Reference',
'weight' => 'Weight (g)',
'link' => 'Link to product',
'admin_link' => 'Edit product',
],

'ux' => [
'export_button' => 'Export data',
'import_button' => 'Update data',
'only_variants' => 'Only product variants',
'only_variants_comment' => 'for products with variants, keep only the variants',
'export_links' => 'Export link to product',
'export_links_comment' => 'a link to the public product page is added',
'export_admin_links' => 'Export link to product’s backend',
'export_admin_links_comment' => 'a link to the edit product page is added',
'return_list' => 'Back to the product list',
],
];
6 changes: 6 additions & 0 deletions lang/fr/lang.php
Original file line number Diff line number Diff line change
Expand Up @@ -41,12 +41,18 @@
'user_defined_id' => 'Référence',
'weight' => 'Poids (g)',
'link' => 'Lien vers le produit',
'admin_link' => 'Editer le produit',
],

'ux' => [
'export_button' => 'Exporter les données',
'import_button' => 'Mettre à jour les données',
'only_variants' => 'Uniquement les variantes',
'only_variants_comment' => 'pour les produits avec variantes, ne conserver que les variantes',
'export_links' => 'Exporter un lien vers le produit',
'export_links_comment' => 'un lien vers la page publique du produit est ajouté',
'export_admin_links' => 'Exporter le lien vers le backend du produit',
'export_admin_links_comment' => 'un lien vers la page de modification du produit est ajouté',
'return_list' => 'Retourner à la liste des produits',
],

Expand Down
38 changes: 36 additions & 2 deletions models/ProductExport.php
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<?php namespace Hounddd\MallImportExport\Models;

use Backend;
use Config;
use Str;
use Cms\Classes\Page;
Expand All @@ -15,7 +16,9 @@ class ProductExport extends \Backend\Models\ExportModel
public $requiredPermissions = ['hounddd.mallimportexport.export'];

public $fillable = [
'link'
'only_variants',
'link',
'admin_link',
];

/**
Expand Down Expand Up @@ -47,6 +50,7 @@ class ProductExport extends \Backend\Models\ExportModel
protected $cmsPage;

private $exportLink = false;
private $exportAdminLink = false;

public function __construct()
{
Expand All @@ -66,9 +70,13 @@ protected function exportExtendColumns($columns)
if ($this->exportLink) {
$columns['link'] = 'hounddd.mallimportexport::lang.columns.link';
}
if ($this->exportAdminLink) {
$columns['admin_link'] = 'hounddd.mallimportexport::lang.columns.admin_link';
}
return $columns;
}


public function exportData($columns, $sessionKey = null)
{
$columns[] = 'additional_prices';
Expand All @@ -86,7 +94,9 @@ public function exportData($columns, $sessionKey = null)
$products = collect();

$productsWithVariants->each(function ($product, $key) use ($products) {
$products->push($product);
if (! (bool)$this->only_variants || $product->inventory_management_method === 'single') {
$products->push($product);
}
if ($product->inventory_management_method === 'variant') {
$product->variants->each(function ($item) use ($products) {
$products->push($item);
Expand All @@ -106,6 +116,14 @@ public function exportData($columns, $sessionKey = null)
});
}

if ($this->admin_link) {
$this->exportAdminLink = true;
$columns[] = 'admin_link';
$products = $products->map(function ($product) {
return $this->addAdminLink($product);
});
}

$products = $products->each(function ($product) use ($columns) {
$product->addVisible($columns);
});
Expand Down Expand Up @@ -156,6 +174,22 @@ protected function addLink($product)
return $product;
}

/**
* Add admin_link property to product's edit page
*
* @param Product $product
* @return Product
*/
protected function addAdminLink($product)
{
$productId = $product->id;
if ($product instanceof Variant) {
$productId = $product->product->id;
}
$product['admin_link'] = Backend::url('offline/mall/products/update/'. $productId);
return $product;
}

/**
* Return formated price without currency symbol
*
Expand Down
21 changes: 20 additions & 1 deletion models/product/export_fields.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,26 @@

fields:

only_variants:
label: 'hounddd.mallimportexport::lang.ux.only_variants'
comment: 'hounddd.mallimportexport::lang.ux.only_variants_comment'
type: checkbox
span: storm
cssClass: col-md-3
default: true

link:
label: 'hounddd.mallimportexport::lang.ux.export_links'
comment: 'hounddd.mallimportexport::lang.ux.export_links_comment'
type: checkbox
span: storm
cssClass: col-md-3
default: false

admin_link:
label: 'hounddd.mallimportexport::lang.ux.export_admin_links'
comment: 'hounddd.mallimportexport::lang.ux.export_admin_links_comment'
type: checkbox
default: true
span: storm
cssClass: col-md-3
default: false

0 comments on commit d5fe3c2

Please sign in to comment.