コード例 #1
0
ファイル: Factory.php プロジェクト: aimeos/ai-admin-jqadm
 /**
  * Creates a new client object.
  *
  * @param \Aimeos\MShop\Context\Item\Iface $context Shop context instance with necessary objects
  * @param array List of file system paths where the templates are stored
  * @param string $type Type of the client, e.g 'product' for \Aimeos\Admin\JQAdm\Product\Standard
  * @param string|null $name Admin name (default: "Standard")
  * @return \Aimeos\Admin\JQAdm\Iface admin client implementing \Aimeos\Admin\JQAdm\Iface
  * @throws \Aimeos\Admin\JQAdm\Exception If requested client implementation couldn't be found or initialisation fails
  */
 public static function createClient(\Aimeos\MShop\Context\Item\Iface $context, array $templatePaths, $type, $name = null)
 {
     if (empty($type)) {
         throw new \Aimeos\Admin\JQAdm\Exception(sprintf('Admin JQAdm type is empty'));
     }
     if (ctype_alnum($type) === false) {
         throw new \Aimeos\Admin\JQAdm\Exception(sprintf('Invalid characters in client name "%1$s"', $type));
     }
     $factory = '\\Aimeos\\Admin\\JQAdm\\' . ucwords($type) . '\\Factory';
     if (class_exists($factory) === false) {
         throw new \Aimeos\Admin\JQAdm\Exception(sprintf('Class "%1$s" not available', $factory));
     }
     $client = @call_user_func_array(array($factory, 'createClient'), array($context, $templatePaths, $name));
     if ($client === false) {
         throw new \Aimeos\Admin\JQAdm\Exception(sprintf('Invalid factory "%1$s"', $factory));
     }
     $client->setView($context->getView());
     return $client;
 }
コード例 #2
0
ファイル: Factory.php プロジェクト: aimeos/ai-admin-jsonadm
 /**
  * Creates a new client specified by the given path of client names.
  *
  * @param \Aimeos\MShop\Context\Item\Iface $context Context object required by clients
  * @param array $templatePaths List of file system paths where the templates are stored
  * @param string $path Name of the client separated by slashes, e.g "product/stock"
  * @param string|null $name Name of the client implementation ("Standard" if null)
  * @return \Aimeos\Admin\JsonAdm\Iface JSON admin instance
  * @throws \Aimeos\Admin\JsonAdm\Exception If the given path is invalid
  */
 protected static function createClientNew(\Aimeos\MShop\Context\Item\Iface $context, array $templatePaths, $path, $name)
 {
     $parts = explode('/', $path);
     foreach ($parts as $key => $part) {
         if (ctype_alnum($part) === false) {
             $msg = sprintf('Invalid client "%1$s" in "%2$s"', $part, $path);
             throw new \Aimeos\Admin\JsonAdm\Exception($msg, 400);
         }
         $parts[$key] = ucwords($part);
     }
     $view = $context->getView();
     $factory = '\\Aimeos\\Admin\\JsonAdm\\' . join('\\', $parts) . '\\Factory';
     if (class_exists($factory) === true) {
         $args = array($context, $view, $templatePaths, $path, $name);
         if (($client = @call_user_func_array(array($factory, 'createClient'), $args)) === false) {
             throw new \Aimeos\Admin\JsonAdm\Exception(sprintf('Invalid factory "%1$s"', $factory), 400);
         }
     } else {
         $client = self::createClientRoot($context, $view, $templatePaths, $path, $name);
     }
     return $client;
 }
コード例 #3
0
ファイル: Standard.php プロジェクト: aimeos/ai-client-html
 /**
  * Sends the notification e-mail for the given customer address and products
  *
  * @param \Aimeos\MShop\Context\Item\Iface $context Context item object
  * @param \Aimeos\MShop\Common\Item\Address\Iface $address Payment address of the customer
  * @param array $products List of products a notification should be sent for
  */
 protected function sendMail(\Aimeos\MShop\Context\Item\Iface $context, \Aimeos\MShop\Common\Item\Address\Iface $address, array $products)
 {
     $view = $context->getView();
     $view->extProducts = $products;
     $view->extAddressItem = $address;
     $helper = new \Aimeos\MW\View\Helper\Translate\Standard($view, $context->getI18n($address->getLanguageId()));
     $view->addHelper('translate', $helper);
     $mailer = $context->getMail();
     $message = $mailer->createMessage();
     $helper = new \Aimeos\MW\View\Helper\Mail\Standard($view, $message);
     $view->addHelper('mail', $helper);
     $client = $this->getClient($context);
     $client->setView($view);
     $client->getHeader();
     $client->getBody();
     $mailer->send($message);
 }
コード例 #4
0
ファイル: Standard.php プロジェクト: aimeos/ai-client-html
 /**
  * Sends the account creation e-mail to the e-mail address of the customer
  *
  * @param \Aimeos\MShop\Context\Item\Iface $context Context item object
  * @param \Aimeos\MShop\Customer\Item\Iface $item Customer item object
  * @param string $password Customer clear text password
  */
 protected function sendEmail(\Aimeos\MShop\Context\Item\Iface $context, \Aimeos\MShop\Customer\Item\Iface $item, $password)
 {
     $address = $item->getPaymentAddress();
     $view = $context->getView();
     $view->extAddressItem = $address;
     $view->extAccountCode = $item->getCode();
     $view->extAccountPassword = $password;
     $helper = new \Aimeos\MW\View\Helper\Translate\Standard($view, $context->getI18n($address->getLanguageId()));
     $view->addHelper('translate', $helper);
     $mailer = $context->getMail();
     $message = $mailer->createMessage();
     $helper = new \Aimeos\MW\View\Helper\Mail\Standard($view, $message);
     $view->addHelper('mail', $helper);
     $client = $this->getClient($context);
     $client->setView($view);
     $client->getHeader();
     $client->getBody();
     $mailer->send($message);
 }