-
پاسخ : پیاده سازی سیستم اعلام نمره
سلام ، روز بخیر
من یه کامپوننت پیدا کردم،واسه من جدیده اما شاید واسه شما جدید نباشه.
به هر حال من اینجا معرفیش می کنم:
اسمش هست Component Creator که از اینجا می تونید دانلودش کنید : extensions.joomla.org/extensions/tools/development-tools/7627
من رفتم آنلاین یه کامپوننت ساختم به نام mycomp ، کل ساختار رو ایجاد کرد خودش.
در مورد اون ساختاری هم که گفتم همه چیز بستگی داره به آدرس دهی توی فایل xml ، حالا وقتی سورس فایل رو دیدین متوجه می شین منظورم چیه.
اسم فایل xml هم همنام با خود کامپوننته.
من محتوای فایل xml رو اینجا می ذارم تا شما هم ببینید:
کد:
<?xml version="1.0" encoding="utf-8"?>
<install type="component" version="1.5.0" method="upgrade">
<name>mycomp</name>
<author></author>
<creationDate>08/10/2010</creationDate>
<license>GNU/GPL</license>
<version>1.0</version>
<description>This component was created by Not Web Design's Joomla Component Creator.</description>
<!-- installation part -->
<install>
<queries>
</queries>
</install>
<installfile>install.mycomp.php</installfile>
<uninstallfile>uninstall.mycomp.php</uninstallfile>
<!-- user part -->
<files folder="components/com_mycomp">
<filename>controller.php</filename>
<filename>index.html</filename>
<filename>router.php</filename>
<filename>mycomp.php</filename>
<folder>models</folder>
<folder>views</folder>
</files>
<languages folder="language/en-GB">
<language tag="en-GB">en-GB.com_mycomp.ini</language>
</languages>
<!-- administration part -->
<administration>
<menu task="default" img="js/ThemeOffice/component.png">mycomp</menu>
<submenu>
<menu link="option=com_mycomp">mycomp</menu>
</submenu>
<files>
<filename>mycomp.xml</filename>
</files>
<files folder="administrator/components/com_mycomp">
<filename>config.xml</filename>
<filename>controller.php</filename>
<filename>index.html</filename>
<filename>install.mycomp.php</filename>
<filename>mycomp.php</filename>
<filename>uninstall.mycomp.php</filename>
<folder>helpers</folder>
<folder>models</folder>
<folder>tables</folder>
<folder>views</folder>
</files>
<languages folder="administrator/language/en-GB">
<language tag="en-GB">en-GB.com_mycomp.menu.ini</language>
<language tag="en-GB">en-GB.com_mycomp.ini</language>
</languages>
</administration>
<params>
</params>
</install>
حالا یه سوال :
توی تگ params چی باید قرار بگیره؟
آیا برای همه کامپوننت ها الزامیه؟
ممنون
جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.
-
-
10-08-2010 08:26 AM
# ADS
تبلیغات در جوملا فارسی
-
پاسخ : پیاده سازی سیستم اعلام نمره
سلام ، شب بخیر
من یه دو روز نتونستم بیام به انجمن سر بزنم !
با توجه به اینکه تو قوانین این انجمن اومده که از برنامه نویسی پشتیبانی نمی کنه اما من جواب چندتا از سوالامو گرفتم و همینجا وظیفه خودم می دونم از دو دوست خوبی که لطف کردن و با پست هاشون راهنمای من بودن تشکر کنم (جناب سعید و جناب محسنی - trisha)
من اخیرا یه مرجع انگلیسی جم و جور پیدا کردم واسه ساخت افزونه ، فعلا می خوام برم اونو مطالعه کنم تا یه سری اطلاعات جدید پیدا کنم راجع به ساخت افزونه های بخش کاربری(چون من در حال حاضر هیچ دانشی در این باره ندارم) ، بعد دوباره میام تا مشخصا" برای پیاده سازی بخش کاربری کامپوننتم از راهنمایی شما دوستان استفاده کنم.
پس تا اطلاع ثانوی این تاپیک تعطیله!
اما من بر می گردما ...
جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.
-
-
پاسخ : پیاده سازی سیستم اعلام نمره
سلام به همه
بالاخره کتابو تموم کردم ،حالا می شه گفت یه قدم به هدفم نزدیکتر شدم!!!
قبل از اینکه سوالای جدیدمو بپرسم می خوام جواب سوال قبلیمو اینجا بگم که سوالِ بی جواب نداشته باشیم تو این تاپیک ، تو کتابی که خوندم توضیح داده بود راجع بهش.
سوال : توی تگ params چی قرار می گیره؟ آیا واسه همه کامپوننت ها الزامیه؟
جواب : خب هر افزونه ای که واسه جوملا ساخته می شه یه فایل xml برای نصب و پیکربندی داره،یکی از تگ هایی که تو این فایل قرار می گیره تگ <params> هست ، من با مثال می گم : مثلا یه ماژول نوشتیم که یه لیست از تبلیغات رو نمایش می ده و این امکان رو هم گذاشتیم که مدیر بتونه تعیین کنه چندتا تبلیغ در هر لحظه نمایش داده بشه؟ یا اینکه آیا تبلیغات به طور تصادفی نمایش داده بشن یا نه؟ خب هر کدوم از این دو امکان ، یه پارامتره و یه تگ <param> می خواهد که همشون داخل تگ <params> قرار می گیرن.این پارامترها انواع مختلفی دارن:text , textarea , password, editors , list , menu , filelist , radio , sql , spacer, timezones , hidden و ... . برای هر تگ <param> یه سری خصوصیت مثل نام ، نوع ، مقدار پیش فرض ، برچسب و توضیحات رو تعیین می کنیم و اما محل نمایش این پارامترها کجاست: توی مدیریت ماژول ها وقتی روی یه ماژول کلیک می کنیم پارامترهایی که تو فایل xml تعریف کردیم نمایش داده می شه که می تونیم مقدارشون رو تغییر بدیم. ضمنا تعریف پارامتر برای همه افزونه ها الزامی نیست ، هستن افزونه هایی که تو قسمت پارامترهاشون مثلا نوشته : هیچ پارامتری برای این افزونه وجود ندارد.
خب حالا نوبت سوالای جدیده:
توی پست اول همین تاپیک من امکانات کامپوننت بخش کاربری رو گفتم،حتما دیدین دیگه؟
تصورم اینه که اگه امکان لاگینو ازش حذف کنم ، از نظر ساختاری می شه شبیه کامپوننت بخش مدیریت.
حالا ساختار کامپوننت بخش مدیریت چیه؟
اینه : یه کامپوننت که با الگوی MVC نوشته شده و به ازای هر امکان _ مثلا اطلاعات دانشجو _ یه controller ، یه model و یه view با چند تا layoutداره و کنترلر پیش فرضشم مدیر رو هدایت می کنه به یه کنترل پنل دقیقا مشابه کنترل پنل خود جوملا .
1- خب فکر می کنم واسه بخش کاربری این کامپوننت هم باید همین ساختار رو ایجاد کنم ، درسته؟
حالا می مونه لاگین به سیستم که اینو کلا نمی دونم چه طوری پیاده سازیش کنم!!!
یه نفر بهم گفت واسه بخش کاربریش ماژول بنویس،من خودم شک داشتم که شدنی باشه ، اومدم تو انجمن پرسیدم که جناب مهدی گفتن کامپوننته و ربطی به ماژول نداره.بعد من با خودم گفتم نکنه منظور طرف لاگینش بوده ، چون می گفت اگه ماژول باشه می تونی تو چند جای سایت تکثیرش کنی!!!
2- حالا می خوام نظر شما رو بدونم ، فکر می کنین منظورش چی بوده ؟
3- آیا من واسه پیاده سازی لاگین 2 تا انتخاب دارم(1-نوشتن یه ماژول 2-نوشتن کنترلر پیش فرض برای کامپوننت بخش کاربری که کاربر رو به فرم دریافت شماره دانشجویی و پسورد هدایت کنه)؟
4- یا شایدم گزینه بهتری وجود داشته باشه،شما پیشنهادی دارین؟
امیدوارم دقیقا متوجه منظورم شده باشین و بتونین راهنماییم کنین.
راستی من سوالامو شماره گذاری کردم که واسه پاسخ گویی راحت تر باشین.
شرمنده که این پست طولانی شد!!!
با سپاس فراوان
جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.
-
-
پاسخ : پیاده سازی سیستم اعلام نمره
سلام
[quote author=yal link=topic=29779.msg150017#msg150017 date=1288095734]
به ازای هر امکان _ مثلا اطلاعات دانشجو _ یه controller ، یه model و یه view با چند تا layoutداره
[/quote]
الزاما نیازی نیست برای هر امکان تمام این موارد بطور جداگانه تعریف بشن. مثلا ممکنه برای چند task از یک controller استفاده کنید.
[quote author=yal link=topic=29779.msg150017#msg150017 date=1288095734]
1- خب فکر می کنم واسه بخش کاربری این کامپوننت هم باید همین ساختار رو ایجاد کنم ، درسته؟
[/quote]
بله. مشابه همین ساختار.
[quote author=yal link=topic=29779.msg150017#msg150017 date=1288095734]
حالا می مونه لاگین به سیستم که اینو کلا نمی دونم چه طوری پیاده سازیش کنم!!!
یه نفر بهم گفت واسه بخش کاربریش ماژول بنویس،من خودم شک داشتم که شدنی باشه ، اومدم تو انجمن پرسیدم که جناب مهدی گفتن کامپوننته و ربطی به ماژول نداره.بعد من با خودم گفتم نکنه منظور طرف لاگینش بوده ، چون می گفت اگه ماژول باشه می تونی تو چند جای سایت تکثیرش کنی!!!
[/quote]
می تونید از Login خود جوملا استفاده کنید.
[quote author=yal link=topic=29779.msg150017#msg150017 date=1288095734]
3- آیا من واسه پیاده سازی لاگین 2 تا انتخاب دارم(1-نوشتن یه ماژول 2-نوشتن کنترلر پیش فرض برای کامپوننت بخش کاربری که کاربر رو به فرم دریافت شماره دانشجویی و پسورد هدایت کنه)؟
[/quote]
این 2 انتخاب + موردی که در بالا اشاره شد.
یا علی
جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.
-
-
پاسخ : پیاده سازی سیستم اعلام نمره
سلام.
جناب سعید بسیار بسیار ممنون از لطفتون.
متاسفانه ایمیل با خبرسازی پست جدید شما ، تو پوشه spam قرار گرفته بود و من الان متوجه شدم!
خب از بین این 3 روشی که واسه پیاده سازی لاگین وجود داره ، کدوم روش بهتره،شما کدومو پیشنهاد می کنید؟
لطفا در موردش توضیح بدید.
با سپاس
جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.
-
-
پاسخ : پیاده سازی سیستم اعلام نمره
سلام.
[quote author=yal link=topic=29779.msg151211#msg151211 date=1289663801]
خب از بین این 3 روشی که واسه پیاده سازی لاگین وجود داره ، کدوم روش بهتره،شما کدومو پیشنهاد می کنید؟
[/quote]
[quote author=سعید link=topic=29779.msg151052#msg151052 date=1289386804]می تونید از Login خود جوملا استفاده کنید.
[/quote]
اگه ضرورتي براي انجام ساير روشها وجود نداره، از همين روش استفاده كنيد.
مستندات و اطلاعات بشتر رو در docs.joomla.org مي تونيد بدست بياريد.
يا علي
جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.
-
-
پاسخ : پیاده سازی سیستم اعلام نمره
سلام.
همونطور که شما فرمودین برای شروع من از ماژول خود جوملا استفاده می کنم ، خب الان باید برم دنبال اینکه متوجه بشم چه تغییراتی رو انجام بدم برای اینکه اطلاعات رو از جدولی که من می خوام بخونه و تصورم اینه که واسه این کار فقط نباید روی کد ماژول لاگین متمرکز بشم ، درسته؟
می شه بگید دقیقا کجاها (چه افزونه هایی) رو بررسی کنم؟ آخه یکی از مشکلاتی که من با جوملا دارم اینه که وقتی می خوام برم سراغ یه تابع خاص تا متوجه بشم چیکار می کنه ، اینقدر باید به کلاس ها و توابع مختلف پرش کنم که هم تابع اصلی گم می شه ، هم من گیج! البته توقعی غیر از این هم از جوملا ندارم ، جوملایی که اینقدر قدرتمنده باید زیرساخت های پیچیده ای هم داشته باشه.
بی نهایت متشکرم.
جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.
-
-
پاسخ : پیاده سازی سیستم اعلام نمره
سلام.
توصیه می کنم به جای بررسی معکوس سورس سیستم، مستنداتی که تیم توسعه دهنده ارائه می کنه رو مطالعه کنید.
برای ورود نیازی به هیچ تغییری در ماژول ورود جوملا ندارید. کل فرآیند عضویت و ورود کاربر می تونه توسط جوملا انجام بشه.
شما فقط نیاز دارید با استفاده از API جوملا بررسی کنید که کاربر وارد شده یا خیر و در صورت نیاز دسترسی کاربر وارد شده رو بررسی کنید.
برای اینکار نیاز به آشنایی با فریم ورک جوملا دارید و ما هم هر توضیحی که در این رابطه بتونم بدیم، مبتنی بر مستندات خود توسعه دهنده خواهد بود.
بنابراین توصیه می کنم حتما مستندات جوملا (docs.joomla.org) و API جوملا (api.joomla.org) رو مطالعه کنید.
اگر نتونستید با جستجو در این منابع به جواب برسید، یا به مشکلی برخورد کردید که راه حلش رو در این منابع پیدا نکردید، مطرح کنید تا راهنمایی کنیم.
یا علی
جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.
-
-
پاسخ : پیاده سازی سیستم اعلام نمره
دقیقا حق با شماست ، اما باید اضافه کنم برای شروع ، در کنار مطالعه منابعی که معرفی کردین ، نیاز به کسی که تجربه ساخت افزونه واسه جوملا داره هم احساس می شه ، به ویژه برای افرادی مثل من که تا الان اگه تو پروژه ای هم سهیم بودیم زیر نظر اساتید مربوطه آموزش می دیدیم و مطابق اوامر اونا عمل می کردیم،یعنی یه جورایی درس پس دادن بوده.
من تعداد کمی از مستنداتی که گفتین رو خوندم قبلا و مثل اینکه چاره ای نیست مابقیش رو هم باید بخونم دیگه .
[quote author=سعید link=topic=29779.msg151229#msg151229 date=1289718432]
برای ورود نیازی به هیچ تغییری در ماژول ورود جوملا ندارید. کل فرآیند عضویت و ورود کاربر می تونه توسط جوملا انجام بشه
شما فقط نیاز دارید با استفاده از API جوملا بررسی کنید که کاربر وارد شده یا خیر و در صورت نیاز دسترسی کاربر وارد شده رو بررسی کنید.
[/quote]
کاربران مورد نظر این کامپوننت ،جدای از کاربران خود جوملا هستند ، یعنی ثبت نام اونا توسط مدیر از طریق کامپوننت بخش مدیریت و در جدولی غیر از جدول users انجام می شه ، با این وجود آیا نیازی به تغییر نیست؟
جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.
-
-
پاسخ : پیاده سازی سیستم اعلام نمره
سلام.
[quote author=yal link=topic=29779.msg151230#msg151230 date=1289720353]
نیاز به کسی که تجربه ساخت افزونه واسه جوملا داره هم احساس می شه ، به ویژه برای افرادی مثل من که تا الان اگه تو پروژه ای هم سهیم بودیم زیر نظر اساتید مربوطه آموزش می دیدیم و مطابق اوامر اونا عمل می کردیم
[/quote]
در حقیقت دلیل قسمت دوم، چیزی بوده که در قسمت اول مطرح کردید.
[quote author=yal link=topic=29779.msg151230#msg151230 date=1289720353]
کاربران مورد نظر این کامپوننت ،جدای از کاربران خود جوملا هستند ، یعنی ثبت نام اونا توسط مدیر از طریق کامپوننت بخش مدیریت و در جدولی غیر از جدول users انجام می شه ، با این وجود آیا نیازی به تغییر نیست؟
[/quote]
الزامی به جدا کردن کاربران این سیستم از کاربران جوملا نیست.
می تونید از ثبت نام خود جوملا استفاده کنید و اطلاعات بیشتر در مورد کاربران (از جمله دسترسی یا ...) رو در جدول دیگه ای ذخیره کنید و در این جدول از یک کلید خارجی استفاده کنید. بطوریکه موقع تعریف کاربران مجاز در جدول موردنظر شما، مشخص باشه که این کاربر متناظر با یکی از کاربران استاندارد جوملا هست.
سپس برای ورود از فرم ورود خود جوملا استفاده کنید و موقع ارائه قسمت های لازم که نیاز به دسترسی خاص یا اطلاعات بیشتر داره، اطلاعات مورد نظر یا سطح دسترسی رو از جدولی که به این منظور درنظر گرفته شده دریافت کنید.
برای کار با جدول موردنظر باید یک model تعریف کنید.
یا علی
جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.
-
علاقه مندی ها (Bookmarks)