وحید حاجی پور 105 ارسال شده در اردیبهشت 90 در جوملا هر درخواستی انجام می شه و صفحه ای لود میشه و اسکریپتی اجرا می شه دلیل اون یک کاربر است که می توان اطلاعات آن از یک شی درون فریم ورک استخراج کرد . $user =& JFactory::getUser(); خوب توسط این کد اطلاعات یک کاربر رو می تونیم در یافت کنیم . و یا اطلاعات یک شخصی رو که در سایت عضو هست اش رو می تونیم با استفاده از ای دی و یا یوزرنیم اون بدست بیاریم. $user =& JFactory::getUser(99); $user =& JFactory::getUser('johnsmith'); بیشتر اطلاعات در رابطه با کاربر از طریق متغییر ها عمومی در شی user در دسترس هستند echo " Your name is {$user->name}, your email is {$user->email}, and your username is {$user->username}"; echo " Your usertype is {$user->usertype} which has a group id of {$user->gid}."; در کد بالا می تویند از طریق شی user به نام و ایمیل و نام و سطح کاربری و ایدی گروه ان دسترسی پیدا کنید . متغییر ها و پارامتر های متعلق به شی id - The unique, numerical user id. Use this when referencing the user record in other database tables. [right]name - The name of the user. (e.g. Vint Cerf)[/right] username - The login/screen name of the user. (e.g. shmuffin1979) email - The email address of the user. (e.g. crashoverride@hackers.com) password - The encrypted version of the user's password password_clear - Set to the user's password only when it is being changed. Otherwise, remains blank. usertype - The role of the user within Joomla!. (Super Administrator, Editor, etc...) gid - Set to the user's group id, which corresponds to the usertype. block - Set to '1' when the user is set to 'blocked' in Joomla!. registerDate - Set to the date when the user was first registered. lastvisitDate - Set to the date the user last visited the site. guest - If the user is not logged in, this variable will be set to '1'. The other variables will be unset or default values mall">علاوه بر این می توانیم متغییر های عضوی که درون ستون های جدول مربوط به کاربر ذخیره شده اند و به عنوان پارامتر ها هستند را بدست بیاوریم برای این کار از طریق شی و تابع getParam() اقدام می کنیم . برای این کار نام پارامتر را به تابع مذکور پاس می کنیم و پارامتر دوم را default قرار می دهیم . بس برای دسترسی به این پارامتر ها با ید از تابع عضو getParam() استفاده کرد. خوب با این اطلاعات می تونیم ببینیم که کاربر که داخل سایت وجود دارد و صفحات را بارگذاری می کند مهمان است یا عضو سایت . در اینجا ما برای اینکه اطلاعاتی را به کاربر بدهیم چک می کنیم ببینیم وارد سایت شده است یا نه این را هم با شی user انجام می دهیم در صورتی که مهمان باشد کد زیر $user->guest مقدار یک را بر می گرداند و در غیر اینصورت مقدار صفر بقیه کد نیز واضح است . > $user =& JFactory::getUser(); if ($user->guest) { echo " You must login to see the content. I want your email address."; } else { ?> Impromptu leftovers salad that goes well with fish </pre> <ul> 1/2 cup chopped celery 1/4 cup raisins 1 teaspoon Extra Virgin Olive Oil 2 tablespoons of faux Thai lemongrass marinade 1/4 cup shredded fresh basil Sprinkling of dill weed Big pinch of kosher salt Several lettuce leaves </ul> <br><p>Wash the lettuce and basil and place in a salad bowl. Get out a much smaller bowl and swish around all of the remaining ingredients. Pour this over the greens and toss. Serves two.</p> <br><?php } همونطور که می دنیم در جوملا کاربران یک سایت حقوق مساوی در دسترسی به منابع ندارند و می توانیم بر این اساس نیز کاربران رو مدیریت کنیم . کد زیر رو نگاه کنید . $user =& JFactory::getUser(); if ($user->authorize('com_content', 'edit', 'content', 'all')) { echo " You may edit all content."; } else { echo " You may not edit all content."; } if ($user->authorize('com_content', 'publish', 'content', 'own')) { echo " You may publish your own content."; } else { echo " You may not publish your own content."; } فکر کنم کد ها گویا باشن نیازی به توضیح نداشته باشه . دوستان یک سری مجوزها که در هسته جوملا وجود داره ممکنه در بعضی از افزونه هایی که می خواهیم تهیه کنیم برای ما مفید نباشه برای این می یایم و خودمون یک سری مجوز ها تعریف می کنیم که این از طریق تابع getACL انجام می شود. $auth =& JFactory::getACL(); $auth->addACL('com_userinfo15', 'persuade', 'users', 'super administrator'); $auth->addACL('com_userinfo15', 'persuade', 'users', 'administrator'); $auth->addACL('com_userinfo15', 'persuade', 'users', 'manager'); $user =& JFactory::getUser(); if ($user->authorize('com_userinfo15', 'persuade')) { echo " You may persuade the system to do what you wish."; } else { echo " You are not very persuasive."; } این هم نمونه کد ی که این کار رو انجام داده . ما با استفاده از یک اشاره گر به متغییر ها ی سطوح دسترسی می یام و اونها رو تغییر می دیم . از آقای رزاقی هم بابت راهنمایی شون کمال تشکر رو دارم . انشا الله هر جا که هستند سلامت و پیروز باشند نقل قول به اشتراک گذاری این ارسال لینک به ارسال به اشتراک گذاری در سایت های دیگر