本文整理汇总了PHP中Eccube\Framework\Util\Utils::jsonEncode方法的典型用法代码示例。如果您正苦于以下问题:PHP Utils::jsonEncode方法的具体用法?PHP Utils::jsonEncode怎么用?PHP Utils::jsonEncode使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Eccube\Framework\Util\Utils
的用法示例。
在下文中一共展示了Utils::jsonEncode方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: action
/**
* Page のAction.
*
* @return void
*/
public function action()
{
/* @var $objCustomer Customer */
$objCustomer = Application::alias('eccube.customer');
if (!Utils::sfIsInt($_GET['send_id'])) {
Utils::sfDispSiteError(CUSTOMER_ERROR);
}
$arrMailView = $this->lfGetMailView($_GET['send_id'], $objCustomer->getValue('customer_id'));
if (empty($arrMailView)) {
Utils::sfDispSiteError(CUSTOMER_ERROR);
}
$this->tpl_subject = $arrMailView[0]['subject'];
$this->tpl_body = $arrMailView[0]['mail_body'];
if (Application::alias('eccube.display')->detectDevice() === DEVICE_TYPE_PC) {
$this->setTemplate('mypage/mail_view.tpl');
} else {
$this->tpl_title = 'メール履歴詳細';
$this->tpl_mainpage = 'mypage/mail_view.tpl';
}
switch ($this->getMode()) {
case 'getDetail':
echo Utils::jsonEncode($arrMailView);
Application::alias('eccube.response')->actionExit();
break;
default:
break;
}
}
示例2: action
/**
* Page のAction.
*
* @return void
*/
public function action()
{
/* @var $objCustomer Customer */
$objCustomer = Application::alias('eccube.customer');
$customer_id = $objCustomer->getValue('customer_id');
switch ($this->getMode()) {
case 'delete_favorite':
// お気に入り削除
$this->lfDeleteFavoriteProduct($customer_id, intval($_POST['product_id']));
break;
case 'getList':
// スマートフォン版のもっと見るボタン用
// ページ送り用
if (isset($_POST['pageno'])) {
$this->tpl_pageno = intval($_POST['pageno']);
}
$this->arrFavorite = $this->lfGetFavoriteProduct($customer_id, $this);
Application::alias('eccube.product')->setPriceTaxTo($this->arrFavorite);
// 一覧メイン画像の指定が無い商品のための処理
foreach ($this->arrFavorite as $key => $val) {
$this->arrFavorite[$key]['main_list_image'] = Utils::sfNoImageMainList($val['main_list_image']);
}
echo Utils::jsonEncode($this->arrFavorite);
Application::alias('eccube.response')->actionExit();
break;
default:
break;
}
// ページ送り用
if (isset($_POST['pageno'])) {
$this->tpl_pageno = intval($_POST['pageno']);
}
$this->arrFavorite = $this->lfGetFavoriteProduct($customer_id, $this);
// 1ページあたりの件数
$this->dispNumber = SEARCH_PMAX;
}
示例3: lfGetErrorMessage
/**
* エラーメッセージを JSON 形式で返す.
*
* TODO リファクタリング
* この関数は主にスマートフォンで使用します.
*
* @param integer エラーコード
* @return string JSON 形式のエラーメッセージ
* @see LC_PageError
*/
public function lfGetErrorMessage($error)
{
switch ($error) {
case TEMP_LOGIN_ERROR:
$msg = "メールアドレスもしくはパスワードが正しくありません。\n本登録がお済みでない場合は、仮登録メールに記載されているURLより本登録を行ってください。";
break;
case SITE_LOGIN_ERROR:
default:
$msg = 'メールアドレスもしくはパスワードが正しくありません。';
}
return Utils::jsonEncode(array('login_error' => $msg));
}
示例4: action
/**
* Page のAction.
*
* @return void
*/
public function action()
{
//決済処理中ステータスのロールバック
/* @var $objPurchase PurchaseHelper */
$objPurchase = Application::alias('eccube.helper.purchase');
$objPurchase->cancelPendingOrder(PENDING_ORDER_CANCEL_FLAG);
/* @var $objCustomer Customer */
$objCustomer = Application::alias('eccube.customer');
$customer_id = $objCustomer->getValue('customer_id');
//ページ送り用
/* @var $objNavi PageNavi */
$this->objNavi = Application::alias('eccube.page_navi', $_REQUEST['pageno'], $this->lfGetOrderHistory($customer_id), SEARCH_PMAX, 'eccube.movePage', NAVI_PMAX, 'pageno=#page#', Application::alias('eccube.display')->detectDevice() !== DEVICE_TYPE_MOBILE);
$this->arrOrder = $this->lfGetOrderHistory($customer_id, $this->objNavi->start_row);
switch ($this->getMode()) {
case 'getList':
echo Utils::jsonEncode($this->arrOrder);
Application::alias('eccube.response')->actionExit();
break;
default:
break;
}
// 支払い方法の取得
$this->arrPayment = Application::alias('eccube.helper.payment')->getIDValueList();
// 1ページあたりの件数
$this->dispNumber = SEARCH_PMAX;
$this->json_payment = Utils::jsonEncode($this->arrPayment);
$this->json_customer_order_status = Utils::jsonEncode($this->arrCustomerOrderStatus);
}
示例5: lfMakeSelect
public function lfMakeSelect()
{
return 'fnSetClassCategories(' . 'document.form1, ' . Utils::jsonEncode($this->objFormParam->getValue('classcategory_id2')) . '); ';
}
示例6: lfSetViewParam_ConfirmPage
/**
* 表示用フォームパラメーター取得
* - 確認画面
*
* @param UploadFile $objUpFile UploadFileインスタンス
* @param UploadFile $objDownFile UploadFileインスタンス
* @param array $arrForm フォーム入力パラメーター配列
* @return array 表示用フォームパラメーター配列
*/
public function lfSetViewParam_ConfirmPage(&$objUpFile, &$objDownFile, &$arrForm)
{
// カテゴリ表示用
$arrForm['arrCategoryId'] = $arrForm['category_id'];
// hidden に渡す値は serialize する
$arrForm['category_id'] = Utils::jsonEncode($arrForm['category_id']);
// 画像ファイル用データ取得
$arrForm['arrFile'] = $objUpFile->getFormFileList(IMAGE_TEMP_URLPATH, IMAGE_SAVE_URLPATH);
// ダウンロード商品実ファイル名取得
$arrForm['down_realfilename'] = $objDownFile->getFormDownFile();
return $arrForm;
}
示例7: doDefault
/**
*
* @param Product $objProduct
* @param FormParam $objFormParam
* @return void
*/
public function doDefault(&$objProduct, &$objFormParam)
{
//商品一覧の表示処理
$strnavi = $this->objNavi->strnavi;
// 表示文字列
$this->tpl_strnavi = empty($strnavi) ? ' ' : $strnavi;
// 規格1クラス名
$this->tpl_class_name1 = $objProduct->className1;
// 規格2クラス名
$this->tpl_class_name2 = $objProduct->className2;
// 規格1
$this->arrClassCat1 = $objProduct->classCats1;
// 規格1が設定されている
$this->tpl_classcat_find1 = $objProduct->classCat1_find;
// 規格2が設定されている
$this->tpl_classcat_find2 = $objProduct->classCat2_find;
$this->tpl_stock_find = $objProduct->stock_find;
$this->tpl_product_class_id = $objProduct->product_class_id;
$this->tpl_product_type = $objProduct->product_type;
$js_fnOnLoad = '';
// 商品ステータスを取得
$this->productStatus = $this->arrProducts['productStatus'];
unset($this->arrProducts['productStatus']);
$this->tpl_javascript .= 'eccube.productsClassCategories = ' . Utils::jsonEncode($objProduct->classCategories) . ';';
if (Application::alias('eccube.display')->detectDevice() === DEVICE_TYPE_PC) {
//onloadスクリプトを設定. 在庫ありの商品のみ出力する
foreach ($this->arrProducts as $arrProduct) {
if ($arrProduct['stock_unlimited_max'] || $arrProduct['stock_max'] > 0) {
$js_fnOnLoad .= "fnSetClassCategories(document.product_form{$arrProduct['product_id']});";
}
}
}
//カート処理
$target_product_id = intval($this->arrForm['product_id']);
if ($target_product_id > 0) {
// 商品IDの正当性チェック
if (!Utils::sfIsInt($this->arrForm['product_id']) || !Application::alias('eccube.helper.db')->isRecord('dtb_products', 'product_id', $this->arrForm['product_id'], 'del_flg = 0 AND status = 1')) {
Utils::sfDispSiteError(PRODUCT_NOT_FOUND);
}
// 入力内容のチェック
$arrErr = $this->lfCheckError($objFormParam);
if (empty($arrErr)) {
$this->lfAddCart($this->arrForm);
// 開いているカテゴリーツリーを維持するためのパラメーター
$arrQueryString = array('category_id' => $this->arrForm['category_id']);
Application::alias('eccube.response')->sendRedirect(CART_URL, $arrQueryString);
Application::alias('eccube.response')->actionExit();
}
$js_fnOnLoad .= $this->lfSetSelectedData($this->arrProducts, $this->arrForm, $arrErr, $target_product_id);
} else {
// カート「戻るボタン」用に保持
$netURL = new \Net_URL();
//該当メソッドが無いため、$_SESSIONに直接セット
$_SESSION['cart_referer_url'] = $netURL->getURL();
}
$this->tpl_javascript .= 'function fnOnLoad() {' . $js_fnOnLoad . '}';
$this->tpl_onload .= 'fnOnLoad(); ';
}
示例8: sendResponseJson
/**
* @param string $response_outer_name
*/
public function sendResponseJson($response_outer_name, &$arrResponse)
{
if (isset($arrResponse["callback"])) {
$callback = $arrResponse["callback"];
unset($arrResponse["callback"]);
header('Content-Type: application/javascript; charset=UTF-8');
$arrResponse['response_name'] = $response_outer_name;
echo $callback . "(" . Utils::jsonEncode($arrResponse) . ")";
} else {
header('Content-Type: application/json; charset=UTF-8');
$arrResponse['response_name'] = $response_outer_name;
echo Utils::jsonEncode($arrResponse);
}
}
示例9: lfGetErrors
/**
* エラーメッセージを整形し, JSON 形式で返す.
*
* @param array $arrErr エラーメッセージの配列
* @return string JSON 形式のエラーメッセージ
*/
public function lfGetErrors($arrErr)
{
$messages = '';
foreach ($arrErr as $val) {
$messages .= $val . "\n";
}
return Utils::jsonEncode(array('error' => $messages));
}
示例10: action
/**
* Page のアクション.
*
* @return void
*/
public function action()
{
//決済処理中ステータスのロールバック
/* @var $objPurchase PurchaseHelper */
$objPurchase = Application::alias('eccube.helper.purchase');
$objPurchase->cancelPendingOrder(PENDING_ORDER_CANCEL_FLAG);
/* @var $objSiteSess SiteSession */
$objSiteSess = Application::alias('eccube.site_session');
/* @var $objCartSess CartSession */
$objCartSess = Application::alias('eccube.cart_session');
/* @var $objCustomer Customer */
$objCustomer = Application::alias('eccube.customer');
$objFormParam = Application::alias('eccube.form_param');
/* @var $objDelivery DeliveryHelper */
$objDelivery = Application::alias('eccube.helper.delivery');
$this->is_multiple = $objPurchase->isMultiple();
// カートの情報を取得
$this->arrShipping = $objPurchase->getShippingTemp($this->is_multiple);
$this->tpl_uniqid = $objSiteSess->getUniqId();
$cart_key = $objCartSess->getKey();
$this->cartKey = $cart_key;
$objPurchase->verifyChangeCart($this->tpl_uniqid, $objCartSess);
// 配送業者を取得
$this->arrDeliv = $objDelivery->getList($cart_key);
$this->is_single_deliv = $this->isSingleDeliv($this->arrDeliv);
$this->is_download = $this->cartKey == PRODUCT_TYPE_DOWNLOAD;
// 会員情報の取得
if ($objCustomer->isLoginSuccess(true)) {
$this->tpl_login = '1';
$this->tpl_user_point = $objCustomer->getValue('point');
$this->name01 = $objCustomer->getValue('name01');
$this->name02 = $objCustomer->getValue('name02');
}
// 戻り URL の設定
// @deprecated 2.12.0 テンプレート直書きに戻した
$this->tpl_back_url = '?mode=return';
$arrOrderTemp = $objPurchase->getOrderTemp($this->tpl_uniqid);
// 正常に受注情報が格納されていない場合はカート画面へ戻す
if (Utils::isBlank($arrOrderTemp)) {
Application::alias('eccube.response')->sendRedirect(CART_URL);
Application::alias('eccube.response')->actionExit();
}
// カート内商品の妥当性チェック
$this->tpl_message = $objCartSess->checkProducts($cart_key);
if (strlen($this->tpl_message) >= 1) {
Application::alias('eccube.response')->sendRedirect(CART_URL);
Application::alias('eccube.response')->actionExit();
}
/*
* 購入金額の取得
* ここでは送料を加算しない
*/
$this->arrPrices = $objCartSess->calculate($cart_key, $objCustomer);
// お届け日一覧の取得
$this->arrDelivDate = $objPurchase->getDelivDate($objCartSess, $cart_key);
switch ($this->getMode()) {
/*
* 配送業者選択時のアクション
* モバイル端末以外の場合は, JSON 形式のデータを出力し, ajax で取得する.
*/
case 'select_deliv':
$this->setFormParams($objFormParam, $arrOrderTemp, true, $this->arrShipping);
$objFormParam->setParam($_POST);
$this->arrErr = $objFormParam->checkError();
if (Utils::isBlank($this->arrErr)) {
$deliv_id = $objFormParam->getValue('deliv_id');
$arrSelectedDeliv = $this->getSelectedDeliv($objCartSess, $deliv_id);
$arrSelectedDeliv['error'] = false;
} else {
$arrSelectedDeliv = array('error' => true);
$this->tpl_mainpage = 'shopping/select_deliv.tpl';
// モバイル用
}
if (Application::alias('eccube.display')->detectDevice() != DEVICE_TYPE_MOBILE) {
echo Utils::jsonEncode($arrSelectedDeliv);
Application::alias('eccube.response')->actionExit();
} else {
$this->arrPayment = $arrSelectedDeliv['arrPayment'];
$this->arrDelivTime = $arrSelectedDeliv['arrDelivTime'];
}
break;
// 登録処理
// 登録処理
case 'confirm':
// パラメーター情報の初期化
$this->setFormParams($objFormParam, $_POST, $this->is_download, $this->arrShipping);
$this->arrErr = $this->lfCheckError($objFormParam, $this->arrPrices['subtotal'], $this->tpl_user_point);
if (empty($this->arrErr)) {
$this->saveShippings($objFormParam, $this->arrDelivTime);
$this->lfRegistData($this->tpl_uniqid, $objFormParam->getDbArray(), $objPurchase, $this->arrPayment);
// 正常に登録されたことを記録しておく
$objSiteSess->setRegistFlag();
// 確認ページへ移動
Application::alias('eccube.response')->sendRedirect(SHOPPING_CONFIRM_URLPATH);
Application::alias('eccube.response')->actionExit();
//.........这里部分代码省略.........
示例11: setDispPath
/**
* 現在の階層のパスをテンプレートに渡す
*
* @param FormParam $objFormParam FormParamインスタンス
* @return void
*/
public function setDispPath($objFormParam)
{
// Windows 環境で DIRECTORY_SEPARATOR が JavaScript に渡るとエスケープ文字と勘違いするので置換
$html_realdir = str_replace(DIRECTORY_SEPARATOR, '/', HTML_REALDIR);
$arrNowDir = preg_split('/\\//', str_replace($html_realdir, '', $objFormParam->getValue('now_dir')));
$this->setDispParam('tpl_now_dir', Utils::jsonEncode($arrNowDir));
$this->setDispParam('tpl_file_path', $html_realdir);
}
示例12: action
/**
* Page のアクション.
*
* @return void
*/
public function action()
{
/* @var $objDb DbHelper */
$objDb = Application::alias('eccube.helper.db');
/* @var $objCategory CategoryHelper */
$objCategory = Application::alias('eccube.helper.category');
$this->tpl_pageno = isset($_POST['pageno']) ? $_POST['pageno'] : '';
// 通常時は親カテゴリを0に設定する。
$this->arrForm['parent_category_id'] = isset($_POST['parent_category_id']) ? $_POST['parent_category_id'] : 0;
$this->arrForm['product_id'] = isset($_POST['product_id']) ? $_POST['product_id'] : '';
switch ($this->getMode()) {
case 'up':
$this->lfRankUp($objDb, $this->arrForm['parent_category_id'], $this->arrForm['product_id']);
break;
case 'down':
$this->lfRankDown($objDb, $this->arrForm['parent_category_id'], $this->arrForm['product_id']);
break;
case 'move':
$this->lfRankMove($objDb, $this->arrForm['parent_category_id'], $this->arrForm['product_id']);
break;
case 'tree':
// カテゴリの切替は、ページ番号をクリアする。
$this->tpl_pageno = '';
break;
case 'renumber':
$this->lfRenumber($this->arrForm['parent_category_id']);
break;
default:
break;
}
$this->arrTree = $objCategory->getTree();
$this->arrParentID = $objCategory->getTreeTrail($this->arrForm['parent_category_id']);
$this->arrProductsList = $this->lfGetProduct($this->arrForm['parent_category_id']);
$arrBread = $objCategory->getTreeTrail($this->arrForm['parent_category_id'], FALSE);
$this->tpl_bread_crumbs = Utils::jsonEncode(array_reverse($arrBread));
}
示例13: getTplJavascript
/**
* 規格クラス用JavaScript生成
* @param Product $objProduct
*/
public function getTplJavascript(Product &$objProduct)
{
return 'eccube.productsClassCategories = ' . Utils::jsonEncode($objProduct->classCategories) . '; ';
}
示例14: action
/**
* Page のAction.
*
* @return void
*/
public function action()
{
/* @var $objCustomer Customer */
$objCustomer = Application::alias('eccube.customer');
$customer_id = $objCustomer->getValue('customer_id');
/* @var $objAddress AddressHelper */
$objAddress = Application::alias('eccube.helper.address');
/* @var $objFormParam FormParam */
$objFormParam = Application::alias('eccube.form_param');
$this->lfInitParam($objFormParam);
$objFormParam->setParam($_POST);
$objFormParam->convParam();
switch ($this->getMode()) {
// お届け先の削除
case 'delete':
if ($objFormParam->checkError()) {
Utils::sfDispSiteError(CUSTOMER_ERROR);
Application::alias('eccube.response')->actionExit();
}
if (!$objAddress->deleteAddress($objFormParam->getValue('other_deliv_id'), $customer_id)) {
Utils::sfDispSiteError(FREE_ERROR_MSG, '', false, '別のお届け先を削除できませんでした。');
Application::alias('eccube.response')->actionExit();
}
break;
// スマートフォン版のもっと見るボタン用
// スマートフォン版のもっと見るボタン用
case 'getList':
$arrData = $objFormParam->getHashArray();
//別のお届け先情報
$arrOtherDeliv = $objAddress->getList($customer_id, ($arrData['pageno'] - 1) * SEARCH_PMAX);
//県名をセット
$arrOtherDeliv = $this->setPref($arrOtherDeliv, $this->arrPref);
$arrOtherDeliv['delivCount'] = count($arrOtherDeliv);
$this->arrOtherDeliv = $arrOtherDeliv;
echo Utils::jsonEncode($this->arrOtherDeliv);
Application::alias('eccube.response')->actionExit();
break;
// お届け先の表示
// お届け先の表示
default:
break;
}
//別のお届け先情報
$this->arrOtherDeliv = $objAddress->getList($customer_id);
//お届け先登録数
$this->tpl_linemax = count($this->arrOtherDeliv);
// 1ページあたりの件数
$this->dispNumber = SEARCH_PMAX;
}
示例15: action
//.........这里部分代码省略.........
break;
// カテゴリ削除
// カテゴリ削除
case 'delete':
$this->doDelete($objFormParam);
break;
// 表示順を上へ
// 表示順を上へ
case 'up':
$this->doUp($objFormParam);
break;
// 表示順を下へ
// 表示順を下へ
case 'down':
$this->doDown($objFormParam);
break;
// FIXME r19909 によってテンプレートが削除されている
// FIXME r19909 によってテンプレートが削除されている
case 'moveByDnD':
// DnDしたカテゴリと移動先のセットを分解する
$keys = explode('-', $_POST['keySet']);
if ($keys[0] && $keys[1]) {
$objQuery = Application::alias('eccube.query');
$objQuery->begin();
// 移動したデータのrank、level、parent_category_idを取得
$rank = $objQuery->get('rank', 'dtb_category', 'category_id = ?', array($keys[0]));
$level = $objQuery->get('level', 'dtb_category', 'category_id = ?', array($keys[0]));
$parent = $objQuery->get('parent_category_id', 'dtb_category', 'category_id = ?', array($keys[0]));
// 同一level内のrank配列を作成
$objQuery->setOption('ORDER BY rank DESC');
if ($level == 1) {
// 第1階層の時
$arrRet = $objQuery->select('rank', 'dtb_category', 'level = ?', array($level));
} else {
// 第2階層以下の時
$arrRet = $objQuery->select('rank', 'dtb_category', 'level = ? AND parent_category_id = ?', array($level, $parent));
}
for ($i = 0; $i < sizeof($arrRet); $i++) {
$rankAry[$i + 1] = $arrRet[$i]['rank'];
}
// 移動したデータのグループ内データ数
$my_count = $this->lfCountChilds($objQuery, 'dtb_category', 'parent_category_id', 'category_id', $keys[0]);
if ($rankAry[$keys[1]] > $rank) {
// データが今の位置より上がった時
$up_count = $rankAry[$keys[1]] - $rank;
$decAry = $objQuery->select('category_id', 'dtb_category', 'level = ? AND rank > ? AND rank <= ?', array($level, $rank, $rankAry[$keys[1]]));
foreach ($decAry as $value) {
// 上のグループから減算
$this->lfDownRankChilds($objQuery, 'dtb_category', 'parent_category_id', 'category_id', $value['category_id'], $my_count);
}
// 自分のグループに加算
$this->lfUpRankChilds($objQuery, 'dtb_category', 'parent_category_id', 'category_id', $keys[0], $up_count);
} elseif ($rankAry[$keys[1]] < $rank) {
// データが今の位置より下がった時
$down_count = 0;
$incAry = $objQuery->select('category_id', 'dtb_category', 'level = ? AND rank < ? AND rank >= ?', array($level, $rank, $rankAry[$keys[1]]));
foreach ($incAry as $value) {
// 下のグループに加算
$this->lfUpRankChilds($objQuery, 'dtb_category', 'parent_category_id', 'category_id', $value['category_id'], $my_count);
// 合計減算値
$down_count += $this->lfCountChilds($objQuery, 'dtb_category', 'parent_category_id', 'category_id', $value['category_id']);
}
// 自分のグループから減算
$this->lfDownRankChilds($objQuery, 'dtb_category', 'parent_category_id', 'category_id', $keys[0], $down_count);
}
$objQuery->commit();
}
break;
// カテゴリツリークリック時
// カテゴリツリークリック時
case 'tree':
break;
// CSVダウンロード
// CSVダウンロード
case 'csv':
// CSVを送信する
/* @var $objCSV CsvHelper */
$objCSV = Application::alias('eccube.helper.csv');
$objCSV->sfDownloadCsv('5', '', array(), '', true);
Application::alias('eccube.response')->actionExit();
break;
default:
break;
}
$parent_category_id = $objFormParam->getValue('parent_category_id');
// 空の場合は親カテゴリを0にする
if (empty($parent_category_id)) {
$parent_category_id = 0;
}
// 親カテゴリIDの保持
$this->arrForm['parent_category_id'] = $parent_category_id;
// カテゴリツリーを取得
$this->arrTree = $objCategory->getTree(true);
$this->arrParentID = $objCategory->getTreeTrail($parent_category_id);
// カテゴリ一覧を取得
$this->arrList = $objCategory->getTreeBranch($parent_category_id);
// ぱんくずの生成
$arrBread = $objCategory->getTreeTrail($this->arrForm['parent_category_id'], FALSE);
$this->tpl_bread_crumbs = Utils::jsonEncode(array_reverse($arrBread));
}