پیاده سازی سیستم اعلام نمره
سلام
همین اول کار یه خواهش دارم از دوستانی که لطف می کنن و راهنمایی می کنن ، اونم اینه که لطفا صبور و شکیبا باشید ، شاید بگید این کاریه که من باید بکنم اما من خواهش می کنم شما هم در برابر من و سوالات ابتداییم صبوری به خرج بدید ، من خیلی خیلی مبتدی ام و شاید با سوالاتم آزارتون بدم، یه خواهش دیگه اینکه لطفا توضیحاتتون هم طوری بگید که یه آدم مبتدی متوجه بشه.
تو دو خط چقدر گفتم مبتدی!!!
حالا شرح پروژه
من تو یه تاپیک دیگه هم گفتم ، اما به توصیه آقای مهدی که گفتن تاپیک جدید بزنم ، اینجا هم می گم که دوستانی که اون تاپیک رو ندیدن و احیانا می تونن به من کمک کنن در جریان باشن.
یه پروژه هست به نام "سیستم اعلام نمره "که از دو بخش تشکیل شده :
1- یه کامپوننت برای بخش مدیریت جوملا که تقریبا ساختار اصلیش تموم شده ، اما یه کم خورده کاری داره هنوز.
2-یه کامپوننت برای بخش سایت که قصد دارم با کمک شما دوستان عزیز شروعش کنم.
این سیستم اعلام نمره سلیقه ای طراحی شده و هدف اصلی من از کار کردن این پروژه یاد گرفتن ساخت افزونه واسه جوملا بوده و هست.
امکاناتی که بخش دوم این سیستم داره(بخشی که دانشجوها باید باهاش کار کنن) رو عرض می کنم خدمتتون:
1-لاگین به سیستم از طریق شماره دانشجویی و پسوردی که قبلا توسط استاد براشون تعریف شده.
2-ویرایش پروفایل
3-مشاهده نمرات
4-در صورت نیاز ، اعتراض به نمره و پیگیری اون
5-مشاهده وضعیت حضور و غیابشون در طول ترم
پست اول رو می ذارم واسه شرح پروژه و تو هر کدوم از پست های بعدی دونه دونه سوالامو می پرسم.
راستی من دنبال اضافه کردن تعداد پست هام نیستم اگه سوالامو دونه دونه می پرسم برای راحتی کاره،اگه ممکنه پست ها رو ادغام نکنید ولی بازم اگه صلاح دونستید این کار رو انجام بدید حرفی نیست،من تابع مقرراتم.
ممنون از لطف همه دوستانی که تو رسیدن به هدفم به من کمک می کنن.
پاینده باشید
پاسخ : پیاده سازی سیستم اعلام نمره
من تا الان برای اجرای کامپوننت بخش مدیریت (کامپوننتی که نوشته شده تا الان) ، توی نوار آدرس مرورگر پارامتر آپشن رو با نام کامپوننت مقدار دهی می کردم تا به کنترل پنل کامپوننت وارد بشم، اما قطعا بعد از تکمیل این سیستم ، نباید اینجوری باشه ، باید عنوان کامپوننت توی منوی بخش مدیریت ظاهر بشه ، فکر می کنم اینو باید توی فایل xml که برای کامپوننت می سازم تعیین کنم.
حالا سوالم اینه که :
این فایل xml رو الان بسازم یا نه صبر کنم بخش دوم پروژه هم تموم بشه بعد بسازمش؟
منظورم اینه که این سیستم که از دو تا کامپوننت ساخته شده یه فایل xml داره یا نه واسه هر کامپوننت یکی لازمه!
پاسخ : پیاده سازی سیستم اعلام نمره
سلام
شما میتونید فایل xml را بسازید
و در مرحله بعدی گسترشش بدید.
یا علی
پاسخ : پیاده سازی سیستم اعلام نمره
سلام
خب پس می ریم سراغ فایل xml
با توجه به نمونه ای که اینجا >> docs.joomla.org/Components:xml_installfile در دسترس هست و من اونو تو این پست می ذارم با بخش هایی که یه فایل xml نیاز داره آشنا می شیم.
من چیزی که خودم متوجه شدم از این نمونه رو اینجا می نویسم ، لطفا دوستان بررسی کنید که درست متوجه شدم یا نه؟
البته خودشم توضیح داده ، ولی برای گرفتن تائیدیه از دوستان مطرح می کنم!!!
کد:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE install SYSTEM "[مهمان/کاربر گرامی برای دیدن لینک ها ابتدا باید عضو سایت شوید و لاگین کنید برای ثبت نام اینجا کلیک کنید]
<install type="component" version="1.5.0">
<name>Hello World</name>
<creationDate>2007-01-17</creationDate>
<author>John Doe</author>
<authorEmail>john.doe@example.org</authorEmail>
<authorUrl>[مهمان/کاربر گرامی برای دیدن لینک ها ابتدا باید عضو سایت شوید و لاگین کنید برای ثبت نام اینجا کلیک کنید]
<copyright>Copyright Info</copyright>
<license>License Info with link</license>
<version>1.0.1</version>
<releaseDate>2010-05-14</releaseDate>
<releaseType>Major update</releaseType>
<downloadUrl>[مهمان/کاربر گرامی برای دیدن لینک ها ابتدا باید عضو سایت شوید و لاگین کنید برای ثبت نام اینجا کلیک کنید]
<description>Description of the component ...</description>
این قسمت که مربوط می شه به خصوصیات خود کامپوننت ، همونطور که از اسم تگ ها هم معلومه خصوصیاتی مثل نام کامپوننت،تاریخ ایجاد،نام ناشر،ایمیل ناشر،آدرس سایت ناشر،کپی رایت،لایسنس،ورژن کامپوننت،تاریخ ثبت،نوع ثبت،لینک دانلود و توضیحات. اونطوری که گفته به جز نام کامپوننت ، بقیه پارامترهای این بخش اختیاری هستن.
کد:
<!-- Custom Install Script to execute -->
<!-- Note: This will be copied from the root of the installation package to the administrator directory automatically -->
<installfile>install.helloworld.php</installfile>
<!-- Custom Uninstall Script to execute -->
<!-- Note: This will be copied from the root of the installation package to the administrator directory automatically -->
<uninstallfile>uninstall.helloworld.php</uninstallfile>
این قسمت رو من نمی دونم چیه! لطفا راهنمایی کنید.
کد:
<!-- Install Database Section -->
<install>
<sql>
<file driver="mysql" charset="utf8">install.mysql.utf8.sql</file>
<file driver="mysql">install.mysql.nonutf8.sql</file>
</sql>
</install>
<!-- Uninstall Database Section -->
<uninstall>
<sql>
<file driver="mysql" charset="utf8">uninstall.mysql.utf8.sql</file>
<file driver="mysql">uninstall.mysql.nonutf8.sql</file>
</sql>
</uninstall>
تو این قسمت فایلهای حاوی دستورات sql مربوط به ساخت(install) و حذف(unistall) جداول مربوط به این کامپوننت که باید توی دیتابیس جوملا اضافه یا حذف بشن قرار می گیره.
حالا سوال :
چرا واسه هر کدوم 2 تا فایل هست؟ اولی charset رو ست کرده و دومی نه؟
این دوتا فایل چه فرقی دارن با هم ؟
و اینکه هر کدوم از این فایل ها باید توی روت کامپوننت باشن؟دقیقا کجا باید قرار بگیرن؟
کد:
<!-- Site Main File Copy Section -->
<files>
<filename>index.html</filename>
<filename>helloworld.php</filename>
<folder>views</folder>
</files>
فکر کنم اینجا باید ریز تمام فایل ها و فولدر های مربوط به بخش نانوشته کامپوننت من قرار بگیره ، یعنی اون بخشی از کامپوننت که مربوط به بخش سایت هست،درسته؟
کد:
<!-- Site Main Language File Copy Section -->
<languages>
<language tag="en-GB">en-GB.com_test.ini</language>
<language tag="de-DE">de-DE.com_test.ini</language>
<language tag="nl-NL">nl-NL.com_test.ini</language>
</languages>
<!-- Site Main Media File Copy Section -->
<media destination="com_helloworld">
<filename>image.png</filename>
<filename>flash.swf</filename>
</media>
تو این قسمت فایل های زبان و مدیا برای بخش سایت،نه مدیریت!،معرفی می شن.
کد:
<administration>
<!-- Administration Menu Section -->
<!-- Name to display at the component menu. Should be the same as the extension commercial name -->
<menu img="components/com_helloworld/images/helloworld_icon.png">Hello World</menu>
<submenu>
<!-- Note that all & must be escaped to &amp; for the file to be valid XML and be parsed by the installer -->
<menu link="option=com_helloworld&amp;controller=config">Configuration</menu>
<!-- Instead of link you can specify individual link attributes -->
<menu img="icon" task="hello" controller="z" view="a" layout="b" sub="c">Hello Again!</menu>
<menu view="test" layout="foo">Testing Foo Layout</menu>
</submenu>
از اینجا به بعد دیگه مربوط می شه به بخش مدیریت !
نامی که قراره توی منوی مدیریت نمایش داده بشه به همراه زیرمنوهای احتمالی اینجا معرفی می شن. توی زیرمنوها می تونیم به جای اینکه به صفحه خاصی لینک بدیم ، مستقیما تعیین کنیم تسک خاصی اجرا بشه.
کد:
<!-- Administration Main File Copy Section -->
<!-- Note the folder attribute: This attribute describes the folder
to copy FROM in the package to install therefore files copied
in this section are copied from /admin/ in the package -->
<files folder="admin">
<filename>index.html</filename>
<filename>admin.helloworld.php</filename>
</files>
<!-- Administration Language File Copy Section -->
<languages folder="admin">
<language tag="en-GB">en-GB.com_helloworld.ini</language>
<language tag="de-DE">de-DE.com_helloworld.ini</language>
<language tag="nl-NL">nl-NL.com_helloworld.ini</language>
</languages>
<!-- Administration Main Media File Copy Section -->
<media folder="admin" destination="com_helloworld">
<filename>admin-image.png</filename>
<filename>admin-flash.swf</filename>
</media>
</administration>
</install>
تو قسمت آخر هم مشابه قسمت سایت ، که یه خورده بالاتر گفتم ، باید ریز فایل ها و فولدرهایی که کامپوننت تو بخش مدیریت داره و همینطور فایل های زبان و مدیا رو معرفی کنیم.
پایان
دوستان بازم می گم من تجربه ام خیلی کمه اگه جایی رو کم یا اشتباه گفتم لطفا اصلاح کنید.
من بعد از دریافت توضیح در مورد قسمت هایی از این پست که قرمز رنگ نشون داده شدن می رم که این فایل رو بسازم ، منتظرم ...
ممنون
** فاصله های اضافی حذف شد.
پاسخ : پیاده سازی سیستم اعلام نمره
سلام
[quote author=yal link=topic=29779.msg148758#msg148758 date=1286386242]
کد:
<!-- Custom Install Script to execute -->
<!-- Note: This will be copied from the root of the installation package to the administrator directory automatically -->
<installfile>install.helloworld.php</installfile>
<!-- Custom Uninstall Script to execute -->
<!-- Note: This will be copied from the root of the installation package to the administrator directory automatically -->
<uninstallfile>uninstall.helloworld.php</uninstallfile>
این قسمت رو من نمی دونم چیه! لطفا راهنمایی کنید.
[/quote]
این قسمت مربوط به اسکریپتی هست که هنگام نصب یا حذف کامپوننت اجرا خواهد شد.
[quote author=yal link=topic=29779.msg148758#msg148758 date=1286386242]
چرا واسه هر کدوم 2 تا فایل هست؟ اولی charset رو ست کرده و دومی نه؟
این دوتا فایل چه فرقی دارن با هم ؟
و اینکه هر کدوم از این فایل ها باید توی روت کامپوننت باشن؟دقیقا کجا باید قرار بگیرن؟
[/quote]
در خصیصه charset مجموعه کاراکتر مورد استفاده قرار می گیره. تنها مجموعه کاراکتر قابل قبول در این قسمت utf8 هست!
درصورتی که می خواید فایل نصب رو برای دیتابیس های غیر uft8 بسازید، این خصیصه (charset) رو کلا باید حذف کنید.
[quote author=yal link=topic=29779.msg148758#msg148758 date=1286386242]
فکر کنم اینجا باید ریز تمام فایل ها و فولدر های مربوط به بخش نانوشته کامپوننت من قرار بگیره ، یعنی اون بخشی از کامپوننت که مربوط به بخش سایت هست،درسته؟
[/quote]
این قسمت مربوط به فهرست فایل های بخش کاربری کامپوننت هست.
یا علی
پاسخ : پیاده سازی سیستم اعلام نمره
سلام
[quote author=سعید link=topic=29779.msg148788#msg148788 date=1286400132]
این قسمت مربوط به اسکریپتی هست که هنگام نصب یا حذف کامپوننت اجرا خواهد شد.
[/quote]
می شه بیشتر توضیح بدین؟
آیا وجود این اسکریپت که می گین برای همه کامپوننت ها الزامیه؟
کلا محتواش چیه؟
[quote author=سعید link=topic=29779.msg148788#msg148788 date=1286400132]
در خصیصه charset مجموعه کاراکتر مورد استفاده قرار می گیره. تنها مجموعه کاراکتر قابل قبول در این قسمت utf8 هست!
درصورتی که می خواید فایل نصب رو برای دیتابیس های غیر uft8 بسازید، این خصیصه (charset) رو کلا باید حذف کنید.
[/quote]
پس من برای کامپوننتم چه برای نصب و چه برای حذف جداول باید از تگ اول که کاراکترست رو تعیین کرده استفاده کنم،درسته؟
اینو هم بگین که هر کدوم از این فایل ها (install.mysql.utf8.sql و ...unistall) دقیقا کجا باید قرار بگیرن؟
ممنون
پاسخ : پیاده سازی سیستم اعلام نمره
[quote author=yal link=topic=29779.msg148809#msg148809 date=1286438745]
می شه بیشتر توضیح بدین؟
آیا وجود این اسکریپت که می گین برای همه کامپوننت ها الزامیه؟
کلا محتواش چیه؟
[/quote]
سلام.
ممکنه بعد از نصب، علاوه بر کارهایی که از در فایل xml مشخص می کنید و بصورت اتوماتیک انجام میشه، نیاز به تغییراتی در فایلهای کامپوننت یا دیتابیس یا ... داشته باشید.
یا اینکه موقع حذف کامپوننت، این تغییرات به حالت اولیه برگرده.
دراینصورت می تونید کدی بنویسید که تغییرات موردنظر رو انجام بده و کد رو در یک فایل ذخیره کنید. این تگ اون فایل رو مشخص می کنه که موقع نصب یا حذف اجرا میشه.
الزامی برای اجرای یک اسکریپت موقع نصب یا حذف نیست.
[quote author=yal link=topic=29779.msg148809#msg148809 date=1286438745]
پس من برای کامپوننتم چه برای نصب و چه برای حذف جداول باید از تگ اول که کاراکترست رو تعیین کرده استفاده کنم،درسته؟
[/quote]
پاسخ قبلی رو مجددا مطالعه کنید :)
[quote author=yal link=topic=29779.msg148809#msg148809 date=1286438745]
اینو هم بگین که هر کدوم از این فایل ها (install.mysql.utf8.sql و ...unistall) دقیقا کجا باید قرار بگیرن؟
[/quote]
فایل ها در داخل بسته نصب کامپوننت قرار می گیرند.
یا علی
پاسخ : پیاده سازی سیستم اعلام نمره
یه نکته : من تو پست اول از دوستانی که لطف می کنن و پاسخ می دن تقاضا کردم که در برابر من و سوالاتم که ممکنه باعث آزارشون بشه صبوری به خرج بدن.
در مورد اسکریپت ، منظور شما از کد ، همون دستورات sql هست؟
پاسخ : پیاده سازی سیستم اعلام نمره
سلام.
ما در این انجمن برای راهنمایی کاربران جمع شدیم و تا جایی که در توانمون باشه و قوانین اجازه بده سعیمون این هست به کاربران کمک کنیم.
[quote author=yal link=topic=29779.msg148818#msg148818 date=1286443770]
در مورد اسکریپت ، منظور شما از کد ، همون دستورات sql هست؟
[/quote]
سلام. خیر. منظور پاسخ به این سوال شما بود:
[quote author=سعید link=topic=29779.msg148788#msg148788 date=1286400132]
[quote author=yal link=topic=29779.msg148758#msg148758 date=1286386242]
کد:
<!-- Custom Install Script to execute -->
<!-- Note: This will be copied from the root of the installation package to the administrator directory automatically -->
<installfile>install.helloworld.php</installfile>
<!-- Custom Uninstall Script to execute -->
<!-- Note: This will be copied from the root of the installation package to the administrator directory automatically -->
<uninstallfile>uninstall.helloworld.php</uninstallfile>
این قسمت رو من نمی دونم چیه! لطفا راهنمایی کنید.
[/quote]
این قسمت مربوط به اسکریپتی هست که هنگام نصب یا حذف کامپوننت اجرا خواهد شد.
[/quote]
همونطور که از اسم فایل مشخصه، این یک اسکرپیت PHP هست که البته در این اسکریپت php ، می تونید دستوری بنویسید که یک پرس و جوی MySQL رو هم اجرا کنه.
یا علی
پاسخ : پیاده سازی سیستم اعلام نمره
خب حالا می خوام فایل xml رو بسازم.
کامپوننت بخش مدیریت این پروژه یه ساختار داره که مثلا اینجوریه :
com_name
controllers
c-1.php
.
models
m-1.php
.
views
v-1.php
.
index.php
admin.name.php
.
اما برای ساخت فایل xml که باید هر دو قسمت مدیریت و کاربری تفکیک شده باشن ، فکر کنم باید یه فولدر بسازم به نام کامپوننت با این ساختار :
com_name
admin
تو این قسمت محتوای com_name که چند خط بالاتر گفتم رو کپی کنم (کامپوننت بخش مدیریت)
site
تو این قسمت هم کامپوننتی که قراره واسه بخش کاربری نوشته بشه
و فایل xml رو هم بذارم توی این فولدر جدید که محتواش 2 تا فولدره به نام های admin و site .
درسته؟
راستی اسم فایل xml همنام با خود کامپوننته مثلا name.xml ؟
هیچ واژه اضافه ای نداره؟
پاسخ : پیاده سازی سیستم اعلام نمره
سلام ، روز بخیر
من یه کامپوننت پیدا کردم،واسه من جدیده اما شاید واسه شما جدید نباشه.
به هر حال من اینجا معرفیش می کنم:
اسمش هست 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 چی باید قرار بگیره؟
آیا برای همه کامپوننت ها الزامیه؟
ممنون
پاسخ : پیاده سازی سیستم اعلام نمره
سلام ، شب بخیر
من یه دو روز نتونستم بیام به انجمن سر بزنم !
با توجه به اینکه تو قوانین این انجمن اومده که از برنامه نویسی پشتیبانی نمی کنه اما من جواب چندتا از سوالامو گرفتم و همینجا وظیفه خودم می دونم از دو دوست خوبی که لطف کردن و با پست هاشون راهنمای من بودن تشکر کنم (جناب سعید و جناب محسنی - 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 تعریف کنید.
یا علی