예제 #1
0
 /**
  * Load your component.
  *
  * @param \Cx\Core\ContentManager\Model\Entity\Page $page       The resolved page
  */
 public function load(\Cx\Core\ContentManager\Model\Entity\Page $page)
 {
     global $_CORELANG, $subMenuTitle, $intAccessIdOffset, $objTemplate;
     switch ($this->cx->getMode()) {
         case \Cx\Core\Core\Controller\Cx::MODE_FRONTEND:
             \Env::get('cx')->getPage()->setContent(Shop::getPage(\Env::get('cx')->getPage()->getContent()));
             // show product title if the user is on the product details page
             if ($page_metatitle = Shop::getPageTitle()) {
                 \Env::get('cx')->getPage()->setTitle($page_metatitle);
                 \Env::get('cx')->getPage()->setContentTitle($page_metatitle);
                 \Env::get('cx')->getPage()->setMetaTitle($page_metatitle);
             }
             break;
         case \Cx\Core\Core\Controller\Cx::MODE_BACKEND:
             $this->cx->getTemplate()->addBlockfile('CONTENT_OUTPUT', 'content_master', 'LegacyContentMaster.html');
             $objTemplate = $this->cx->getTemplate();
             \Permission::checkAccess($intAccessIdOffset + 13, 'static');
             $subMenuTitle = $_CORELANG['TXT_SHOP_ADMINISTRATION'];
             $objShopManager = new ShopManager();
             $objShopManager->getPage();
             break;
     }
 }
    {
        $strage = MyStrage::getInstance();
        $before_count = $strage->strage_max_count;
        $strage->strage_max_count += $item_num;
        message(" 倉庫を拡張しました。 {$before_count}→" . $strage->strage_max_count);
    }
    protected function _pay($item_num)
    {
        $price = MasterSilverItem::getPrice('strage') * $item_num;
        $player = MyPlayer::getInstance();
        $before_count = $player->silver_count;
        $player->silver_count = max(0, $player->silver_count - $price);
        message(" シルバーを消費しました。 {$before_count}→" . $player->silver_count);
    }
}
$shop_manager = new ShopManager();
// クリスタル購入
$shop_manager->purchase('crystal', 150);
// ゴールドを付与して購入
MyPlayer::getInstance()->addGold(15000);
$shop_manager->purchase('crystal', 150);
// 倉庫拡張購入
$shop_manager->purchase('strage', 100);
// シルバーを付与して購入
MyPlayer::getInstance()->addSilver(30000);
$shop_manager->purchase('strage', 100);
// 最大枠を超過するケース
$shop_manager->purchase('strage', 500);
$shop_manager->purchase('strage', 400);
// 購入
$shop_manager->purchase('strage', 300);
예제 #3
0
 /**
  * Updates the Order status with parameter values from the GET request
  * @return  boolean             True on success, false on failure,
  *                              or null (on NOOP)
  * @todo    Should definitely use POST instead.
  */
 static function updateStatusFromGet()
 {
     global $objDatabase, $_ARRAYLANG;
     // Update the order status if valid
     if (!isset($_GET['changeOrderStatus']) || empty($_GET['order_id'])) {
         return null;
     }
     $status = intval($_GET['changeOrderStatus']);
     $order_id = intval($_GET['order_id']);
     if ($status < Order::STATUS_PENDING || $status >= Order::STATUS_MAX || $order_id <= 0) {
         \Message::error($_ARRAYLANG['TXT_SHOP_ORDER_ERROR_UPDATING_STATUS']);
         \Cx\Core\Csrf\Controller\Csrf::redirect('index.php?cmd=Shop&act=orders');
     }
     $objUser = \FWUser::getFWUserObject()->objUser;
     $query = "\n            UPDATE `" . DBPREFIX . "module_shop" . MODULE_INDEX . "_orders`\n               SET `status`={$status},\n                   `modified_by`='" . addslashes($objUser->getUsername()) . "',\n                   `modified_on`='" . date('Y-m-d H:i:s') . "'\n             WHERE `id`={$order_id}";
     if (!$objDatabase->Execute($query)) {
         \Message::error($_ARRAYLANG['TXT_SHOP_ORDER_ERROR_UPDATING_STATUS']);
         \Cx\Core\Csrf\Controller\Csrf::redirect('index.php?cmd=Shop&act=orders');
     }
     // Send an email to the customer
     if (!empty($_GET['sendMail']) && !empty($_GET['order_id'])) {
         // TODO: It might be useful to move this to its own method:
         $hasMail = false;
         $result = null;
         switch ($status) {
             case Order::STATUS_CONFIRMED:
                 $result = ShopLibrary::sendConfirmationMail($_GET['order_id']);
                 $hasMail = true;
                 break;
             case Order::STATUS_COMPLETED:
                 $result = ShopManager::sendProcessedMail($_GET['order_id']);
                 $hasMail = true;
                 break;
         }
         if ($hasMail) {
             if (!empty($result)) {
                 \Message::ok(sprintf($_ARRAYLANG['TXT_EMAIL_SEND_SUCCESSFULLY'], $result));
             } else {
                 \Message::error($_ARRAYLANG['TXT_MESSAGE_SEND_ERROR']);
             }
         }
     }
     \Cx\Core\Csrf\Controller\Csrf::redirect('index.php?cmd=Shop&act=orders');
 }
예제 #4
0
 /**
  * Returns the Pricelist for the given ID
  *
  * @param   integer   $list_id    The Pricelist ID
  * @return  Pricelist             The Pricelist on success, false otherwise
  */
 static function getById($list_id)
 {
     global $objDatabase;
     $list_id = intval($list_id);
     if ($list_id <= 0) {
         return false;
     }
     $query = "\n            SELECT `id`, `name`, `lang_id`,\n                   `border_on`,\n                   `header_on`, `header_left`, `header_right`,\n                   `footer_on`, `footer_left`, `footer_right`,\n                   `categories`\n              FROM " . DBPREFIX . "module_shop" . MODULE_INDEX . "_pricelists\n             WHERE id={$list_id}";
     $objResult = $objDatabase->Execute($query);
     if (!$objResult) {
         return ShopManager::error_database();
     }
     if ($objResult->EOF) {
         return ShopManager::information_no_data();
     }
     $objList = new PriceList($list_id, null, $objResult->fields['lang_id']);
     $objList->name($objResult->fields['name']);
     $objList->border($objResult->fields['border_on']);
     $objList->header($objResult->fields['header_on']);
     $objList->header_left($objResult->fields['header_left']);
     $objList->header_right($objResult->fields['header_right']);
     $objList->footer($objResult->fields['footer_on']);
     $objList->footer_left($objResult->fields['footer_left']);
     $objList->footer_right($objResult->fields['footer_right']);
     $objList->category_ids($objResult->fields['categories']);
     return $objList;
 }
예제 #5
0
파일: UTCShop.php 프로젝트: asiforny/Basic
function UTCInsertShop($Shop)
{
    ShopManager::InsertShop($Shop);
}