1. Go to this page and download the library: Download jacerider/sync 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/ */
jacerider / sync example snippets
namespace Drupal\my_module\Plugin\SyncResource;
use Drupal\Core\Entity\EntityInterface;
use Drupal\sync\Plugin\SyncDataItem;
use Drupal\sync\Plugin\SyncResourceBase;
/**
* @SyncResource(
* id = "articles",
* label = @Translation("Articles"),
* client = "example_articles",
* entity_type = "node",
* bundle = "article",
* cron = "2:00",
* cleanup = true,
* )
*/
class Articles extends SyncResourceBase {
protected function id(SyncDataItem $item) {
return $item->get('uuid');
}
protected function processItem(EntityInterface $entity, SyncDataItem $item) {
$entity->set('title', $item->get('title'));
// Nested keys are addressed with an array path, not dot notation.
$entity->set('body', $item->get(['content', 'html']));
}
}
protected function hashSource(SyncDataItem $item) {
return [
'title' => $item->get('title'),
'body' => $item->get(['content', 'html']),
// Sorted, because the source does not guarantee an order and a
// reordering is not a change.
'tags' => $this->sortTags($item->get('tags') ?? []),
];
}
$sync_storage = \Drupal::service('sync.storage');
// By entity, which covers every sync id pointing at it.
$sync_storage->setEntityLocked($entity);
$sync_storage->setEntityLocked($entity, FALSE);
$records = $sync_storage->loadByEntity($entity);
// Or by sync id and entity type.
$sync_storage->setLocked($id, 'node');
$sync_storage->isLocked($id, 'node');
public function accessEntity(EntityInterface $entity) {
if (!$entity->get('field_sync_locked')->isEmpty()) {
return FALSE;
}
return parent::accessEntity($entity);
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.