PHP code example of makinacorpus / drupal-udashboard
1. Go to this page and download the library: Download makinacorpus/drupal-udashboard 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/ */
makinacorpus / drupal-udashboard example snippets
$conf['udashboard.context_pane_enable'] = true;
$conf['udashboard.context_pane_enable'] = true;
$conf['udashboard.breadcrumb_alter'] = true;
$conf['udashboard.disable_css'] = true;
$conf['udashboard.seven_force'] = true;
/**
* Implements hook_menu_alter().
*/
function mymodule_menu_alter(&$items) {
$items['admin/people']['page callback'] = 'sf_dic_page';
$items['admin/people']['page arguments'] = [AccountController::class . '::accountList'];
}
use MakinaCorpus\Drupal\Dashboard\Controller\PageControllerTrait;
use MakinaCorpus\Drupal\Sf\Controller;
use Symfony\Component\HttpFoundation\Request;
/**
* User admin
*/
class AccountController extends Controller
{
/**
* Main list
*
* @param \Symfony\Component\HttpFoundation\Request $request
* @return string
*/
public function accountListAction(Request $request)
{
/** @var \MakinaCorpus\Drupal\Dashboard\Page\DatasourceInterface $datasource */
$datasource = $this->get('mymodule.datasource.account');
return $this
->createPageBuilder()
->setDatasource($datasource)
->setAllowedTemplates(
[
'table' => 'module:mymodule:Page/page-account.html.twig',
]
)
->showFilters()
->showSort()
->showSearch()
->setDefaultDisplay('table')
->searchAndRender($request)
;
}
}
namespace MyModule\Page;
use MakinaCorpus\Drupal\Dashboard\Page\Account\DefaultAccountDatasource;
use MakinaCorpus\Drupal\Dashboard\Page\PageState;
/**
* Account Datasource
*/
class AccountDatasource extends DefaultAccountDatasource
{
/**
* Add our own columns
*
* @inheritdoc
*/
public function getSortFields($query)
{
$sortFields = parent::getSortFields($query);
$sortFields['m.myfield_value'] = "my field";
return $sortFields;
}
protected function applyFilters(\SelectQueryInterface $select, $query, PageState $pageState)
{
$select->leftJoin('field_data_myfield', 'm', 'm.entity_id = u.uid');
}
}
namespace MyModule\Action;
use Drupal\Core\StringTranslation\StringTranslationTrait;
use Drupal\user\User;
use MakinaCorpus\Drupal\Dashboard\Action\Action;
use MakinaCorpus\Drupal\Dashboard\Action\ActionProviderInterface;
/**
* Action provider for accounts
*/
class AccountActionProvider implements ActionProviderInterface
{
use StringTranslationTrait;
/**
* @inheritdoc
*/
public function getActions($item, $primaryOnly = false, array $groups = [])
{
$ret = [];
$ret[] = new Action($this->t("Edit"), 'user/'.$item->id().'/edit', null,'pencil', 0, true, false);
$ret[] = new Action($this->t("Delete"), 'user/'.$item->id().'/cancel', null, 'trash', 2, true, false);
return $ret;
}
/**
* {@inheritDoc}
*/
public function supports($item)
{
return $item instanceof User;
}
}