مهدی کاراتا

مشکل بودن تشخیص مرجع توابع و متد در کامپونت نویسی

3 پست در این موضوع

سلام


<div style="text-align:left">


[left][left]<?php
/**
* @version      4.1.0 20.08.2012
* @author       MAXXmarketing GmbH
* @package      Jshopping
* @copyright    Copyright (C) 2010 webdesigner-profi.de. All rights reserved.
* @license      GNU/GPL
*/

defined('_JEXEC') or die('Restricted access');

if (!JFactory::getUser()->authorise('core.manage', 'com_jshopping')) {
   return JError::raiseWarning(404, JText::_('JERROR_ALERTNOAUTHOR'));
}
JTable::addIncludePath(JPATH_COMPONENT_SITE.'/tables');
require_once(JPATH_COMPONENT_SITE."/lib/factory.php");
require_once(JPATH_COMPONENT_ADMINISTRATOR.'/functions.php');

$ajax = JRequest::getInt('ajax');
$adminlang = JFactory::getLanguage();
if (!JRequest::getVar("js_nolang")){
   JSFactory::loadAdminLanguageFile();
}
$db = JFactory::getDBO();
$jshopConfig = JSFactory::getConfig();
$jshopConfig->cur_lang = $jshopConfig->frontend_lang;

if ($jshopConfig->adminLanguage!=$adminlang->getTag()){
$config = new jshopConfig($db);
$config->id = 1;	
$config->adminLanguage = $adminlang->getTag();
if (!$config->store()) {
	JError::raiseWarning("",_JSHOP_ERROR_SAVE_DATABASE);
	return 0;
}
}
if (!$ajax){
   installNewLanguages();
}else{
   header('Content-Type: text/html;charset=UTF-8');
}

JPluginHelper::importPlugin('jshopping');
$dispatcher = JDispatcher::getInstance();
$dispatcher->trigger('onAfterLoadShopParamsAdmin', array());

JHtml::_('behavior.framework');
JHtml::_('bootstrap.framework');
$document = JFactory::getDocument();
$document->addScript($jshopConfig->live_path.'js/functions.js');
$document->addScript($jshopConfig->live_admin_path.'js/functions.js');
$document->addStyleSheet($jshopConfig->live_admin_path.'css/style.css');

$controller = JRequest::getCmd('controller');
if (!$controller) $controller = "panel";

if (file_exists(JPATH_COMPONENT.'/controllers/'.$controller.'.php'))
   require_once( JPATH_COMPONENT.'/controllers/'.$controller.'.php' );
else
   JError::raiseError( 403, JText::_('Access Forbidden') );

$classname = 'JshoppingController'.$controller;
$controller = new $classname();
$controller->execute(JRequest::getCmd('task'));
$controller->redirect();
?>[/left]
[/left]


</div>

برخی متد ها در جوملا هستند که می توان آن ها در کلاس های که در کد آن کلاس فراخوانی شده پیدا کرد مانند این خط :

JFactory::getUser()

که متد getUser() آن را می توان در کلاس JFactory پیدا کرد .

ولی برخی توابع و متد ها هستند که پیدا کردن مرجع آن ها سخته مانند این متد :

JFactory::getUser()->authorise('core.manage', 'com_jshopping')

منظور :

تابع authorise() در خط بالا می باشد.

که من این تابع رو تو فایل ها ی پوشه libraries جوملا جستجو کردم ولی متاسفانه این تابع یا همان متد در بیش از 10 فایل جوملا موجود می باشد الان من چطور می تونم پیدا کنم که این تابع از کدام یک از این فایل ها فرا خوانی می شود .

Share this post


Link to post
Share on other sites
آموزش ووکامرس قالب جوملا قالب وردپرس قالب رایگان وردپرس قالب رایگان جوملا هاست نامحدود هاست جوملا هاست لاراول هاست وردپرس هاست ارزان هاست ربات تلگرام خرید دامنه آموزش ساخت ربات تلگرام با php آموزش html و css آموزش لاراول آموزش cPanel آموزش php آموزش سئو وردپرس آموزش امنیت وردپرس آموزش وردپرس آموزش فرم ساز RSform آموزش سئو جوملا آموزش فروشگاه ساز Hikashop آموزش فروشگاه ساز ویرچومارت آموزش طراحی سایت آگهی تبلیغاتی آموزش امنیت جوملا آموزش طراحی سایت فروش فایل آموزش طراحی قالب ریسپانسیو با Helix آموزش جوملا 3 آموزش ساخت ربات دکمه ی شیشه ای آموزش ساخت ربات همکاری در فروش آموزش ساخت ربات جذب ممبر آموزش ساخت ربات ضد اسپم آموزش ساخت ربات پیوست فایل سورس ربات مدیر گروه | ربات مدیر گروه همسریابی

ارسال شده در (ویرایش شده)

سلام.حیلی دارید میرید تو عمق. اینو برای چی میخاید؟ این سینتکس برای ریترن کردن اعضا یا ویژگی های اون ها به کار میره. مرجع فراخوانی این ها خود فریم ورک جوملاست که پیشنهاد میکنم اصلا تغییرش ندید.بهترین راه اینه که شما بر اساس داکیومنت خود جوملا عمل کنید.به این آدرس مراجعه کنید:

JFactory/getUser - Joomla! Documentation

اگه به مثال 2 در لینک بالا دقت کنید کاربرد authorize براتون مشخص میشه.

ویرایش شده در توسط sadaf3d

Share this post


Link to post
Share on other sites

ٔدوست عزیز جوملا در خیلی از مواقع از Factory Design Pattern استفاده میکنه، در واقع متد استاتیکی که به کلاس JFactory میدین یک شئ دیگری متناسب به نیازتون به شما میده، مثلا در اینجا یک شئ از کلاس User(اسم کلاسش میتونه متفاوت باشه) برگردونده میشه و شما متد این کلاس جدید رو صدا می*زنید

موفق باشید

Share this post


Link to post
Share on other sites

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری