protected function items()
    {
        // check permissions
        // $siteIDs = $this->checkItemsPermission();

        $dto = new NodeQuery();
        $this->buildLimitOffset($dto);

        $this->passthruTemplateVariable($dto, 'Elements.in');
        $this->passthruTemplateVariable($dto, 'Sites.in');
        //$this->passthruTemplateVariable($dto, 'SiteIDs.in');
        $this->passthruTemplateVariable($dto, 'Slugs.in');

        $this->passthruTemplateVariable($dto, 'Meta.select');
        $this->passthruTemplateVariable($dto, 'OutTags.select');
        $this->passthruTemplateVariable($dto, 'InTags.select');
//        $this->passthruTemplateVariable($dto, 'Sections.select');
        $this->passthruTemplateVariable($dto, 'OrderByInTag');
        $this->passthruTemplateVariable($dto, 'OrderByOutTag');

        $this->passthruTemplateVariable($dto, 'Title.like');
        $this->passthruTemplateVariable($dto, 'Title.ieq');
        $this->passthruTemplateVariable($dto, 'Title.eq');
        $this->passthruTemplateVariable($dto, 'Title.firstChar');
        $this->passthruTemplateVariable($dto, 'Status.isActive');
        $this->passthruTemplateVariable($dto, 'Status.all');
        $this->passthruTemplateVariable($dto, 'Status.eq');
        $this->passthruTemplateVariable($dto, 'TreeID.childOf');
        $this->passthruTemplateVariable($dto, 'TreeID.eq');

        $this->passthruTemplateVariable($dto, 'ActiveDate.before');
        $this->passthruTemplateVariable($dto, 'ActiveDate.after');
        $this->passthruTemplateVariable($dto, 'ActiveDate.start');
        $this->passthruTemplateVariable($dto, 'ActiveDate.end');

        $this->passthruTemplateVariable($dto, 'CreationDate.before');
        $this->passthruTemplateVariable($dto, 'CreationDate.after');
        $this->passthruTemplateVariable($dto, 'CreationDate.start');
        $this->passthruTemplateVariable($dto, 'CreationDate.end');

        $this->passthruTemplateVariable($dto, 'OutTags.exist');
        $this->passthruTemplateVariable($dto, 'InTags.exist');
        $this->passthruTemplateVariable($dto, 'Meta.exist');
//        $this->passthruTemplateVariable($dto, 'Sections.exist');

        foreach ($this->templateVars as $name => $value) {
            if (strpos($name, '#') === 0)
                $dto->setParameter($name, $value);
        }

        $this->buildFilters($dto);

        $dto->isRetrieveTotalRecords(true);

        $dto->setOrderBy($this->getTemplateVariable('OrderBy'));
        $this->buildSorts($dto);

        $this->Events->trigger('NodeCmsController.items', $dto);

        try {
            $dto = $this->RegulatedNodeService->findAll($dto,
                    (($frw = $this->getTemplateVariable('ForceReadWrite'))!=null?StringUtils::strToBool($frw):false));
            return $this->readNodeQuery($dto);
        } catch (NoElementsException $e) {
            throw new NotFoundException('No elements were found for this request.');
        }

    }