PHP code example of ttree / contentrepositoryimporter
1. Go to this page and download the library: Download ttree/contentrepositoryimporter library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
ttree / contentrepositoryimporter example snippets
class BasicDataProvider extends DataProvider {
/**
* @return array
*/
public function fetch() {
$result = [];
$query = $this->createQuery()
->select('*')
->from('demo_table', 'd')
->orderBy('d.name');
$statement = $query->execute();
while ($demoRecord = $statement->fetch()) {
$result[] = [
'__externalIdentifier' => (integer)$demoRecord['id'],
'name' => String::create($demoRecord['name'])->getValue()
];
}
$this->count = count($result);
return $result;
}
}
class ProductImporter extends AbstractImporter
{
/**
* @var string
*/
protected $externalIdentifierDataKey = 'productNumber';
/**
* @var string
*/
protected $labelDataKey = 'properties.name';
/**
* @var string
*/
protected $nodeNamePrefix = 'product-';
/**
* @var string
*/
protected $nodeTypeName = 'Acme.Demo:Product';
/**
* Starts batch processing all commands
*
* @return void
* @api
*/
public function process()
{
$this->initializeStorageNode('shop/products', 'products', 'Products', 'products');
$this->initializeNodeTemplates();
$nodeTemplate = new NodeTemplate();
$this->processBatch($nodeTemplate);
}
}
/**
* Class ProductImporter
*/
class ProductImporter extends AbstractCommandBasedImporter
{
/**
* @var string
*/
protected $storageNodeNodePath = 'products';
/**
* @var string
*/
protected $storageNodeTitle = 'Products';
/**
* @var string
*/
protected $externalIdentifierDataKey = 'mpn';
/**
* @var string
*/
protected $labelDataKey = 'properties.Label';
/**
* @var string
*/
protected $nodeNamePrefix = 'product-';
/**
* @var string
*/
protected $nodeTypeName = 'Acme.MyShop:Product';
/**
* Creates a new product
*
* @param string $externalIdentifier
* @param array $data
* @return void
*/
protected function createCommand($externalIdentifier, array $data)
{
$this->applyProperties($data['properties'], $this->nodeTemplate);
$node = $this->storageNode->createNodeFromTemplate($this->nodeTemplate);
$this->registerNodeProcessing($node, $externalIdentifier);
}
/**
* Updates a product
*
* @param string $externalIdentifier
* @param array $data
* @return void
*/
protected function updateCommand($externalIdentifier, array $data)
{
$this->applyProperties($data['properties'], $this->nodeTemplate);
$node = $this->storageNode->createNodeFromTemplate($this->nodeTemplate);
$this->registerNodeProcessing($node, $externalIdentifier);
}
/**
* Deletes a product
*
* @param string $externalIdentifier
* @param array $data
*/
protected function deleteCommand($externalIdentifier, array $data)
{
// delete the product node
}
}
Ttree:
ContentRepositoryImporter:
dimensionsImporter:
presets:
fr:
language: ['fr', 'en', 'de']
en:
language: ['en', 'de']
de:
language: ['de']
$this->vault->set($key, $name)
$this->vault->get($key)