field_completeness-1.0.3/src/FieldCompletenessStorage.php

src/FieldCompletenessStorage.php
<?php

namespace Drupal\field_completeness;

use Drupal\Core\Database\Connection;

/**
 * Defines a storage class for Field completeness.
 */
class FieldCompletenessStorage {

  /**
   * Database service object
   *
   * @var Drupal\Core\Database\Connection
   */
  protected $connection;

  /**
   * Constructs a field completeness storage Object
   */
  public function __construct(Connection $connection) {
    $this->connection = $connection;
  }

  /**
   * Determines entity exists or not in field completeness table
   */
  public function getCount($nid, $lang_code) {
    $select = $this->connection->select('field_completeness', 'fc');
    $select->condition('entity_id', $nid, '=');
    if (!empty($lang_code)) {
      $select->condition('langcode', $lang_code, '=');
    }
    return $select->countQuery()->execute()->fetchField();
  }

  /**
   * Insert field completeness data
   */
  public function insert($data) {

    return $this->connection
        ->insert('field_completeness')
        ->fields($data)
        ->execute();
  }

  /**
   * Update records for a node
   */
  public function update($nid, $fields) {
    return $this->connection
        ->update('field_completeness')
        ->fields($fields)
        ->condition('entity_id', $nid)
        ->execute();
  }

  /**
   * Loads a record by node id
   */
  public function select($nid) {
    return $this->connection
        ->query("SELECT * FROM {field_completeness} WHERE entity_id = :nid", [':nid' => $nid])
        ->fetchAllAssoc('entity_id', \PDO::FETCH_ASSOC);
  }

  /**
   * Loads a record by node bundle
   */
  public function selectByBundle($bundle) {
    return $this->connection
        ->select('field_completeness', 'fc')
        ->condition('fc.entity_type', $bundle, '=')
        ->fields('fc', ['entity_id', 'completeness', 'percentage', 'complete'])
        ->execute()->fetchAllAssoc('entity_id', \PDO::FETCH_ASSOC);
  }

  /**
   * Sync nodes
   */
  public function delete($nid) {
    return $this->connection
        ->delete('field_completeness')
        ->condition('entity_id', $nid, '=')
        ->execute();
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc