public function pjActionUpdate()
 {
     $this->checkLogin();
     if ($this->isAdmin() || $this->isEditor()) {
         if (isset($_POST['extra_update'])) {
             pjExtraModel::factory()->where('id', $_POST['id'])->limit(1)->modifyAll($_POST);
             if (isset($_POST['i18n'])) {
                 pjMultiLangModel::factory()->updateMultiLang($_POST['i18n'], $_POST['id'], 'pjExtra', 'data');
             }
             pjUtil::redirect(PJ_INSTALL_URL . "index.php?controller=pjAdminExtras&action=pjActionIndex&err=AE01");
         } else {
             $arr = pjExtraModel::factory()->find($_GET['id'])->getData();
             if (count($arr) === 0) {
                 pjUtil::redirect(PJ_INSTALL_URL . "index.php?controller=pjAdminExtras&action=pjActionIndex&err=AE08");
             }
             $arr['i18n'] = pjMultiLangModel::factory()->getMultiLang($arr['id'], 'pjExtra');
             $this->set('arr', $arr);
             $locale_arr = pjLocaleModel::factory()->select('t1.*, t2.file')->join('pjLocaleLanguage', 't2.iso=t1.language_iso', 'left')->where('t2.file IS NOT NULL')->orderBy('t1.sort ASC')->findAll()->getData();
             $lp_arr = array();
             foreach ($locale_arr as $item) {
                 $lp_arr[$item['id'] . "_"] = $item['file'];
             }
             $this->set('lp_arr', $locale_arr);
             $this->set('locale_str', pjAppController::jsonEncode($lp_arr));
             $this->appendJs('jquery.validate.min.js', PJ_THIRD_PARTY_PATH . 'validate/');
             $this->appendJs('jquery.multilang.js', PJ_FRAMEWORK_LIBS_PATH . 'pj/js/');
             $this->appendJs('jquery.tipsy.js', PJ_THIRD_PARTY_PATH . 'tipsy/');
             $this->appendCss('jquery.tipsy.css', PJ_THIRD_PARTY_PATH . 'tipsy/');
             $this->appendJs('pjAdminExtras.js');
         }
     } else {
         $this->set('status', 2);
     }
 }
 public function pjActionUpdate()
 {
     $this->checkLogin();
     if ($this->isAdmin() || $this->isEditor()) {
         $post_max_size = pjUtil::getPostMaxSize();
         if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_SERVER['CONTENT_LENGTH']) && (int) $_SERVER['CONTENT_LENGTH'] > $post_max_size) {
             pjUtil::redirect(PJ_INSTALL_URL . "index.php?controller=pjAdminProducts&action=pjActionIndex&err=AP06");
         }
         if (isset($_POST['product_update'])) {
             $pjProductModel = pjProductModel::factory();
             $err = 'AP01';
             $arr = $pjProductModel->find($_POST['id'])->getData();
             if (empty($arr)) {
                 pjUtil::redirect($_SERVER['PHP_SELF'] . "?controller=pjAdminProducts&action=pjActionIndex&err=AP08");
             }
             $data = array();
             if (isset($_FILES['image'])) {
                 if ($_FILES['image']['error'] == 0) {
                     if (getimagesize($_FILES['image']["tmp_name"]) != false) {
                         if (!empty($arr['image'])) {
                             @unlink(PJ_INSTALL_PATH . $arr['image']);
                         }
                         $Image = new pjImage();
                         if ($Image->getErrorCode() !== 200) {
                             $Image->setAllowedTypes(array('image/png', 'image/gif', 'image/jpg', 'image/jpeg', 'image/pjpeg'));
                             if ($Image->load($_FILES['image'])) {
                                 $resp = $Image->isConvertPossible();
                                 if ($resp['status'] === true) {
                                     $hash = md5(uniqid(rand(), true));
                                     $image_path = PJ_UPLOAD_PATH . 'products/' . $_POST['id'] . '_' . $hash . '.' . $Image->getExtension();
                                     $Image->loadImage($_FILES['image']["tmp_name"]);
                                     $Image->setFillColor($this->imageFillColor)->resize(116, 87);
                                     $Image->saveImage($image_path);
                                     $data['image'] = $image_path;
                                 }
                             }
                         }
                     } else {
                         $err = 'AP10';
                     }
                 } else {
                     if ($_FILES['image']['error'] != 4) {
                         $err = 'AP10';
                     }
                 }
             }
             if (isset($_POST['is_featured'])) {
                 $data['is_featured'] = 1;
                 unset($_POST['is_featured']);
             } else {
                 $data['is_featured'] = 0;
             }
             $pjProductModel->reset()->where('id', $_POST['id'])->limit(1)->modifyAll(array_merge($_POST, $data));
             if (isset($_POST['i18n'])) {
                 pjMultiLangModel::factory()->updateMultiLang($_POST['i18n'], $_POST['id'], 'pjProduct', 'data');
                 $pjMultiLangModel = pjMultiLangModel::factory();
                 $pjProductPriceModel = pjProductPriceModel::factory();
                 if ($_POST['set_different_sizes'] == 'T') {
                     if (isset($_POST['index_arr']) && $_POST['index_arr'] != '') {
                         $index_arr = explode("|", $_POST['index_arr']);
                         foreach ($index_arr as $k => $v) {
                             if (strpos($v, 'fd') !== false) {
                                 $p_data = array();
                                 $p_data['product_id'] = $_POST['id'];
                                 $p_data['price'] = $_POST['product_price'][$v];
                                 $price_id = $pjProductPriceModel->reset()->setAttributes($p_data)->insert()->getInsertId();
                                 if ($price_id !== false && (int) $price_id > 0) {
                                     foreach ($_POST['i18n'] as $locale => $locale_arr) {
                                         foreach ($locale_arr as $field => $content) {
                                             if (is_array($content)) {
                                                 $insert_id = $pjMultiLangModel->reset()->setAttributes(array('foreign_id' => $price_id, 'model' => 'pjProductPrice', 'locale' => $locale, 'field' => $field, 'content' => $content[$v], 'source' => 'data'))->insert()->getInsertId();
                                             }
                                         }
                                     }
                                 }
                             } else {
                                 $p_data = array();
                                 $p_data['price'] = $_POST['product_price'][$v];
                                 $pjProductPriceModel->reset()->where('id', $v)->limit(1)->modifyAll($p_data);
                                 foreach ($_POST['i18n'] as $locale => $locale_arr) {
                                     foreach ($locale_arr as $field => $content) {
                                         if (is_array($content)) {
                                             $sql = sprintf("INSERT INTO `%1\$s` (`id`, `foreign_id`, `model`, `locale`, `field`, `content`, `source`)\n\t\t\t\t\t\t\t\t\t\t\t\t\tVALUES (NULL, :foreign_id, :model, :locale, :field, :update_content, :source)\n\t\t\t\t\t\t\t\t\t\t\t\t\tON DUPLICATE KEY UPDATE `content` = :update_content, `source` = :source;", $pjMultiLangModel->getTable());
                                             $foreign_id = $v;
                                             $model = 'pjProductPrice';
                                             $source = 'data';
                                             $update_content = $content[$v];
                                             $modelObj = $pjMultiLangModel->reset()->prepare($sql)->exec(compact('foreign_id', 'model', 'locale', 'field', 'update_content', 'source'));
                                             if ($modelObj->getAffectedRows() > 0 || $modelObj->getInsertId() > 0) {
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     }
                     if (isset($_POST['remove_arr']) && $_POST['remove_arr'] != '') {
                         $remove_arr = explode("|", $_POST['remove_arr']);
                         $pjMultiLangModel->reset()->where('model', 'pjProductPrice')->whereIn('foreign_id', $remove_arr)->eraseAll();
                         $pjProductPriceModel->reset()->whereIn('id', $remove_arr)->eraseAll();
                     }
                     $pjProductModel->reset()->where('id', $_POST['id'])->limit(1)->modifyAll(array('price' => ':NULL'));
                 } else {
                     $id_arr = $pjProductPriceModel->where('product_id', $_POST['id'])->findAll()->getDataPair("id", "id");
                     $pjMultiLangModel->reset()->where('model', 'pjProductPrice')->whereIn('foreign_id', $id_arr);
                     $pjProductPriceModel->reset()->where('product_id', $_POST['id'])->eraseAll();
                 }
             }
             $pjProductCategoryModel = pjProductCategoryModel::factory();
             $pjProductCategoryModel->where('product_id', $_POST['id'])->eraseAll();
             if (isset($_POST['category_id']) && is_array($_POST['category_id']) && count($_POST['category_id']) > 0) {
                 $pjProductCategoryModel->reset()->begin();
                 foreach ($_POST['category_id'] as $category_id) {
                     $pjProductCategoryModel->reset()->set('product_id', $_POST['id'])->set('category_id', $category_id)->insert();
                 }
                 $pjProductCategoryModel->commit();
             }
             $pjProductExtraModel = pjProductExtraModel::factory();
             $pjProductExtraModel->where('product_id', $_POST['id'])->eraseAll();
             if (isset($_POST['extra_id']) && is_array($_POST['extra_id']) && count($_POST['extra_id']) > 0) {
                 $pjProductExtraModel->reset()->begin();
                 foreach ($_POST['extra_id'] as $extra_id) {
                     $pjProductExtraModel->reset()->set('product_id', $_POST['id'])->set('extra_id', $extra_id)->insert();
                 }
                 $pjProductExtraModel->commit();
             }
             if ($err == 'AP01') {
                 pjUtil::redirect(PJ_INSTALL_URL . "index.php?controller=pjAdminProducts&action=pjActionIndex&err=AP01");
             } else {
                 pjUtil::redirect(PJ_INSTALL_URL . "index.php?controller=pjAdminProducts&action=pjActionUpdate&id=" . $_POST['id'] . "&err=AP10");
             }
         } else {
             $pjMultiLangModel = pjMultiLangModel::factory();
             $arr = pjProductModel::factory()->find($_GET['id'])->getData();
             if (count($arr) === 0) {
                 pjUtil::redirect(PJ_INSTALL_URL . "index.php?controller=pjAdminProducts&action=pjActionIndex&err=AP08");
             }
             $arr['i18n'] = $pjMultiLangModel->getMultiLang($arr['id'], 'pjProduct');
             $this->set('arr', $arr);
             $locale_arr = pjLocaleModel::factory()->select('t1.*, t2.file')->join('pjLocaleLanguage', 't2.iso=t1.language_iso', 'left')->where('t2.file IS NOT NULL')->orderBy('t1.sort ASC')->findAll()->getData();
             $lp_arr = array();
             foreach ($locale_arr as $item) {
                 $lp_arr[$item['id'] . "_"] = $item['file'];
             }
             $this->set('lp_arr', $locale_arr);
             $this->set('locale_str', pjAppController::jsonEncode($lp_arr));
             $this->set('category_arr', pjCategoryModel::factory()->select('t1.*, t2.content AS name')->join('pjMultiLang', "t2.model='pjCategory' AND t2.foreign_id=t1.id AND t2.field='name' AND t2.locale='" . $this->getLocaleId() . "'", 'left outer')->where('t1.status', 'T')->orderBy('`order` ASC')->findAll()->getData());
             $this->set('extra_arr', pjExtraModel::factory()->select('t1.*, t2.content AS name')->join('pjMultiLang', "t2.model='pjExtra' AND t2.foreign_id=t1.id AND t2.field='name' AND t2.locale='" . $this->getLocaleId() . "'", 'left outer')->orderBy('name ASC')->findAll()->getData());
             $this->set('category_id_arr', pjProductCategoryModel::factory()->where("product_id", $_GET['id'])->findAll()->getDataPair("category_id", "category_id"));
             $this->set('extra_id_arr', pjProductExtraModel::factory()->where("product_id", $_GET['id'])->findAll()->getDataPair("extra_id", "extra_id"));
             if ($arr['set_different_sizes'] == 'T') {
                 $size_arr = pjProductPriceModel::factory()->where('product_id', $_GET['id'])->findAll()->getData();
                 foreach ($size_arr as $k => $v) {
                     $size_arr[$k]['i18n'] = pjMultiLangModel::factory()->getMultiLang($v['id'], 'pjProductPrice');
                 }
                 $this->set('size_arr', $size_arr);
             }
             $this->appendJs('jquery.validate.min.js', PJ_THIRD_PARTY_PATH . 'validate/');
             $this->appendJs('jquery.multilang.js', PJ_FRAMEWORK_LIBS_PATH . 'pj/js/');
             $this->appendJs('jquery.tipsy.js', PJ_THIRD_PARTY_PATH . 'tipsy/');
             $this->appendCss('jquery.tipsy.css', PJ_THIRD_PARTY_PATH . 'tipsy/');
             $this->appendJs('jquery.multiselect.min.js', PJ_THIRD_PARTY_PATH . 'multiselect/');
             $this->appendCss('jquery.multiselect.css', PJ_THIRD_PARTY_PATH . 'multiselect/');
             $this->appendJs('pjAdminProducts.js');
         }
     } else {
         $this->set('status', 2);
     }
 }
 public function pjActionIndex()
 {
     $this->checkLogin();
     if (!$this->isAdmin()) {
         $this->set('status', 2);
         return;
     }
     $this->set('field_arr', pjFieldModel::factory()->findAll()->getDataPair('id', 'label'));
     $pjLocaleModel = pjLocaleModel::factory()->select('t1.*, t2.file')->join('pjLocaleLanguage', 't2.iso=t1.language_iso', 'left')->where('t2.file IS NOT NULL')->orderBy('t1.sort ASC');
     if (!isset($this->option_arr['o_multi_lang']) || (int) $this->option_arr['o_multi_lang'] === 0) {
         $pjLocaleModel->where('t1.is_default', 1);
     }
     $locale_arr = $pjLocaleModel->findAll()->getData();
     $lp_arr = array();
     foreach ($locale_arr as $item) {
         $lp_arr[$item['id'] . "_"] = $item['file'];
         //Hack for jquery $.extend, to prevent (re)order of numeric keys in object
     }
     $this->set('lp_arr', $locale_arr);
     $this->set('locale_str', pjAppController::jsonEncode($lp_arr));
     $pjFieldModel = pjFieldModel::factory()->join('pjMultiLang', "t2.model='pjField' AND t2.foreign_id=t1.id AND t2.locale='" . $this->getLocaleId() . "'", 'left');
     if (isset($_GET['q']) && !empty($_GET['q'])) {
         $q = $pjFieldModel->escapeStr(trim($_GET['q']));
         $q = str_replace(array('%', '_'), array('\\%', '\\_'), $q);
         $pjFieldModel->where("(t1.label LIKE '%{$q}%' OR t2.content LIKE '%{$q}%')");
         if (get_magic_quotes_gpc()) {
             $_GET['q'] = stripslashes($_GET['q']);
         }
     }
     $pjMultiLangModel = pjMultiLangModel::factory()->where('model', 'pjField')->where('field', 'title');
     $column = 'id';
     $direction = 'ASC';
     if (isset($_GET['direction']) && isset($_GET['column']) && in_array(strtoupper($_GET['direction']), array('ASC', 'DESC'))) {
         $column = $_GET['column'];
         $direction = strtoupper($_GET['direction']);
     }
     $total = $pjFieldModel->findCount()->getData();
     $row_count = isset($_GET['row_count']) && (int) $_GET['row_count'] > 0 ? (int) $_GET['row_count'] : 15;
     $pages = ceil($total / $row_count);
     $page = isset($_GET['page']) && (int) $_GET['page'] > 0 ? (int) $_GET['page'] : 1;
     if ($page > $pages) {
         $page = $pages > 0 ? $pages : 1;
         $_GET['page'] = $page;
     }
     $offset = ((int) $page - 1) * $row_count;
     $_arr = $pjFieldModel->select("t1.*")->orderBy("{$column} {$direction}")->limit($row_count, $offset)->findAll()->getData();
     foreach ($_arr as $_k => $_v) {
         $tmp = $pjMultiLangModel->reset()->select('t1.*, t2.is_default')->join('pjLocale', 't2.id=t1.locale', 'left')->where('model', 'pjField')->where('field', 'title')->where('foreign_id', $_v['id'])->findAll()->getData();
         $_arr[$_k]['i18n'] = array();
         foreach ($tmp as $item) {
             $_arr[$_k]['i18n'][$item['locale']] = $item;
         }
     }
     $this->set('arr', $_arr);
     $this->set('paginator', compact('pages'));
     $this->appendJs('jquery.multilang.js', PJ_FRAMEWORK_LIBS_PATH . 'pj/js/');
     $this->appendJs('jquery.tipsy.js', PJ_THIRD_PARTY_PATH . 'tipsy/');
     $this->appendCss('jquery.tipsy.css', PJ_THIRD_PARTY_PATH . 'tipsy/');
     $this->appendJs('pjLocale.js', $this->getConst('PLUGIN_JS_PATH'));
     $this->appendJs('index.php?controller=pjAdmin&action=pjActionMessages', PJ_INSTALL_URL, true);
 }
Ejemplo n.º 4
0
	myLabel.txn_type = <?php 
    echo pjAppController::jsonEncode(__('plugin_paypal_txn_type', true));
    ?>
;
	myLabel.gross = <?php 
    echo pjAppController::jsonEncode(__('plugin_paypal_mc_gross', true));
    ?>
;
	myLabel.currency = <?php 
    echo pjAppController::jsonEncode(__('plugin_paypal_mc_currency', true));
    ?>
;
	myLabel.email = <?php 
    echo pjAppController::jsonEncode(__('plugin_paypal_payer_email', true));
    ?>
;
	myLabel.dt = <?php 
    echo pjAppController::jsonEncode(__('plugin_paypal_dt', true));
    ?>
;
	myLabel.btn_view = <?php 
    echo pjAppController::jsonEncode(__('plugin_paypal_btn_view', true));
    ?>
;
	myLabel.btn_close = <?php 
    echo pjAppController::jsonEncode(__('plugin_paypal_btn_close', true));
    ?>
;
	</script>
	<?php 
}
 public function pjActionUpdate()
 {
     $this->checkLogin();
     if ($this->isAdmin() || $this->isEditor()) {
         if (isset($_POST['location_update'])) {
             $data = array();
             if (empty($_POST['lat']) && empty($_POST['lng'])) {
                 $data = pjAppController::getCoords($_POST['i18n'][$this->getLocaleId()]['address']);
             }
             pjLocationModel::factory()->where('id', $_POST['id'])->limit(1)->modifyAll(array_merge($_POST, $data));
             if (isset($_POST['i18n'])) {
                 pjMultiLangModel::factory()->updateMultiLang($_POST['i18n'], $_POST['id'], 'pjLocation', 'data');
             }
             $pjLocationCoordModel = pjLocationCoordModel::factory();
             $pjLocationCoordModel->where('location_id', $_POST['id'])->eraseAll();
             if (isset($_POST['data'])) {
                 foreach ($_POST['data'] as $type => $coords) {
                     foreach ($coords as $hash => $d) {
                         $pjLocationCoordModel->reset()->setAttributes(array('location_id' => $_POST['id'], 'type' => $type, 'hash' => md5($hash), 'data' => $d))->insert();
                     }
                 }
             }
             pjUtil::redirect(PJ_INSTALL_URL . "index.php?controller=pjAdminLocations&action=pjActionUpdate&id=" . $_POST['id'] . "&err=AL01");
         } else {
             $arr = pjLocationModel::factory()->find($_GET['id'])->getData();
             if (count($arr) === 0) {
                 pjUtil::redirect(PJ_INSTALL_URL . "index.php?controller=pjAdminLocations&action=pjActionIndex&err=AL08");
             }
             $arr['i18n'] = pjMultiLangModel::factory()->getMultiLang($arr['id'], 'pjLocation');
             $this->set('arr', $arr);
             $this->set('coord_arr', pjLocationCoordModel::factory()->where('location_id', $_GET['id'])->findAll()->getData());
             $locale_arr = pjLocaleModel::factory()->select('t1.*, t2.file')->join('pjLocaleLanguage', 't2.iso=t1.language_iso', 'left')->where('t2.file IS NOT NULL')->orderBy('t1.sort ASC')->findAll()->getData();
             $lp_arr = array();
             foreach ($locale_arr as $item) {
                 $lp_arr[$item['id'] . "_"] = $item['file'];
             }
             $this->set('lp_arr', $locale_arr);
             $this->set('locale_str', pjAppController::jsonEncode($lp_arr));
             $this->appendJs('jquery.validate.min.js', PJ_THIRD_PARTY_PATH . 'validate/');
             $this->appendJs('jquery.multilang.js', PJ_FRAMEWORK_LIBS_PATH . 'pj/js/');
             $this->appendJs('jquery.tipsy.js', PJ_THIRD_PARTY_PATH . 'tipsy/');
             $this->appendCss('jquery.tipsy.css', PJ_THIRD_PARTY_PATH . 'tipsy/');
             $this->appendJs('js?sensor=false&libraries=drawing', 'https://maps.googleapis.com/maps/api/', TRUE);
             $this->appendJs('pjAdminLocations.js');
         }
     } else {
         $this->set('status', 2);
     }
 }
 public function pjActionUpdate()
 {
     $this->checkLogin();
     if ($this->isCountryReady()) {
         if (isset($_POST['country_update'])) {
             pjCountryModel::factory()->where('id', $_POST['id'])->limit(1)->modifyAll($_POST);
             if (isset($_POST['i18n'])) {
                 pjMultiLangModel::factory()->updateMultiLang($_POST['i18n'], $_POST['id'], 'pjCountry');
             }
             pjUtil::redirect(PJ_INSTALL_URL . "index.php?controller=pjCountry&action=pjActionIndex&err=PCY01");
         } else {
             $arr = pjCountryModel::factory()->find($_GET['id'])->getData();
             if (count($arr) === 0) {
                 pjUtil::redirect(PJ_INSTALL_URL . "index.php?controller=pjCountry&action=pjActionIndex&err=PCY08");
             }
             $arr['i18n'] = pjMultiLangModel::factory()->getMultiLang($arr['id'], 'pjCountry');
             $this->set('arr', $arr);
             $locale_arr = pjLocaleModel::factory()->select('t1.*, t2.file')->join('pjLocaleLanguage', 't2.iso=t1.language_iso', 'left')->where('t2.file IS NOT NULL')->orderBy('t1.sort ASC')->findAll()->getData();
             $lp_arr = array();
             foreach ($locale_arr as $item) {
                 $lp_arr[$item['id'] . "_"] = $item['file'];
                 //Hack for jquery $.extend, to prevent (re)order of numeric keys in object
             }
             $this->set('lp_arr', $locale_arr);
             $this->set('locale_str', pjAppController::jsonEncode($lp_arr));
             $this->appendJs('jquery.validate.min.js', PJ_THIRD_PARTY_PATH . 'validate/');
             $this->appendJs('jquery.multilang.js', PJ_FRAMEWORK_LIBS_PATH . 'pj/js/');
             $this->appendJs('jquery.tipsy.js', PJ_THIRD_PARTY_PATH . 'tipsy/');
             $this->appendCss('jquery.tipsy.css', PJ_THIRD_PARTY_PATH . 'tipsy/');
             $this->appendJs('pjCountry.js', $this->getConst('PLUGIN_JS_PATH'));
             $this->appendJs('index.php?controller=pjAdmin&action=pjActionMessages', PJ_INSTALL_URL, true);
         }
     } else {
         $this->set('status', 2);
     }
 }
Ejemplo n.º 7
0
?>
",
		btn_cancel: "<?php 
__('gridBtnCancel', false, true);
?>
",
		btn_delete: "<?php 
__('gridBtnDelete', false, true);
?>
"
	});
}

if (jQuery_1_8_2.multilang !== undefined) {
	jQuery_1_8_2.extend(jQuery_1_8_2.multilang.messages, {
		tooltip: "<?php 
__('multilangTooltip', false, true);
?>
"
	});
}

if (fdApp !== undefined) {
	fdApp = jQuery_1_8_2.extend(fdApp, {
		locale: {
			button: <?php 
echo pjAppController::jsonEncode(__('buttons', true));
?>
		}
	});
}
Ejemplo n.º 8
0
function __encode($key)
{
    echo pjAppController::jsonEncode(__($key, true));
}
 public function pjActionTerm()
 {
     $this->checkLogin();
     if ($this->isAdmin()) {
         $arr = pjOptionModel::factory()->where('t1.foreign_id', $this->getForeignId())->orderBy('t1.order ASC')->findAll()->getData();
         $arr['i18n'] = pjMultiLangModel::factory()->getMultiLang(1, 'pjOption');
         $this->set('arr', $arr);
         $locale_arr = pjLocaleModel::factory()->select('t1.*, t2.file')->join('pjLocaleLanguage', 't2.iso=t1.language_iso', 'left')->where('t2.file IS NOT NULL')->orderBy('t1.sort ASC')->findAll()->getData();
         $lp_arr = array();
         foreach ($locale_arr as $item) {
             $lp_arr[$item['id'] . "_"] = $item['file'];
         }
         $this->set('lp_arr', $locale_arr);
         $this->set('locale_str', pjAppController::jsonEncode($lp_arr));
         $this->appendJs('jquery.multilang.js', PJ_FRAMEWORK_LIBS_PATH . 'pj/js/');
         $this->appendJs('jquery.tipsy.js', PJ_THIRD_PARTY_PATH . 'tipsy/');
         $this->appendCss('jquery.tipsy.css', PJ_THIRD_PARTY_PATH . 'tipsy/');
         $this->appendJs('pjAdminOptions.js');
     }
 }
 public static function jsonResponse($arr)
 {
     header("Content-Type: application/json; charset=utf-8");
     echo pjAppController::jsonEncode($arr);
     exit;
 }