ох, ассемблер это даааа.... не хочу вспоминать даже )))
У меня все прозаичнее )
<?php
namespace Module\Gallery\Action;
use Core\Event;
use Core\Render\Stylesheet\XSL;
use Core\Database\MySql\Query;
use Core\Database\Bindings;
use Application\Entity;
class Images extends Event\Action
{
use \Core\Access\Registered;
public function __invoke($userID=0, $start=0, $limit=0, $dateBegin=NULL, $dateEnd=NULL, $image = 'userImage', $input = 'userAvatar')
{
\getApplication()->setStylesheet("gallery/images.xsl");
if (!$userID)
$userID = \Module\User::getInstance()->getUser()->getID();
if ($dateBegin && $dateEnd)
{
$dateBegin = new \DateTime($dateBegin);
$dateEnd = new \DateTime($dateEnd);
}
$queryString = "
select
`file`.`fileID`,
`file`.`name`,
`file`.`hash`,
`file`.`size`,
`file`.`createTime`,
`file`.`userID`,
`file`.`extID`,
`fileExt`.`name` as `ext`
from `bmwplanet`.`file`
left join `bmwplanet`.`fileExt` using (`extID`)
where
`file`.`userID` = ?";
$bindings = new Bindings();
$bindings->userID = (int)$userID;
if ($limit)
{
if ($dateBegin && $dateEnd)
{
$bindings->dateBegin = $dateBegin->format("Y-m-d H:i");
$bindings->dateEnd = $dateEnd->format("Y-m-d H:i");
$bindings->start = (int)$start;
$bindings->limit = (int)$limit;
$condition ="and (`file`.`createTime` between
str_to_date(?, '%Y-%m-%d %H:%i') and
str_to_date(?, '%Y-%m-%d %H:%i'))
order by `file`.`createTime` desc
limit ?,?;";
}
else
{
$bindings->start = (int)$start;
$bindings->limit = (int)$limit;
$condition = "order by `file`.`createTime` desc limit ?,?;";
}
}
else
{
if ($dateBegin && $dateEnd)
{
$bindings->dateBegin = $dateBegin->format("Y-m-d H:i");
$bindings->dateEnd = $dateEnd->format("Y-m-d H:i");
$condition = "and (`file`.`createTime` between
str_to_date(?, '%Y-%m-%d %H:%i') and
str_to_date(?, '%Y-%m-%d %H:%i'))
order by `file`.`createTime` desc;";
}
else
$condition = "order by `file`.`createTime` desc;";
}
$query = new Query( "$queryString $condition", $bindings);
$images = $query->createFactory('\Module\Uploader\Entity\File')->spawn();
$albums = $this->getOwner()->getAlbums($userID);
$this->getOwner()->setAttributes(['userID'=> $userID,"image" => $image, "input" => $input]);
$this->getOwner()->addNode(new Entity('albums', NULL, $albums));
$this->getOwner()->addNode(new Entity('imageList', NULL, $images));
}
}