رفتن به مطلب
محمدحسین میری

آموزش غیر ضروری کردن فیلد ایمیل ثبت نام جوملا 2.5

پست های پیشنهاد شده

درود فراوان به جومینایی های عزیز :002:

شاید بخواهید فیلد ایمیل در فرم ثبت نام رو از حالت ضروری در بیارید و غیر ضروری کنید
خوب موارد زیر رو دنبال کنید :

ابتدا وارد فایل registration.xml از مسیر زیر شوید :
 

JOOMLA\components\com_users\models\forms\registration.xml

بعد این دوتا رو کامنت می کنید :
 

<field name="email1" type="email"
			description="COM_USERS_REGISTER_EMAIL1_DESC"
			field="id"
			filter="string"
			label="COM_USERS_REGISTER_EMAIL1_LABEL"
			message="COM_USERS_REGISTER_EMAIL1_MESSAGE"
			required="true"
			size="30"
			unique="true"
			validate="email"
		/>

		<field name="email2" type="email"
			description="COM_USERS_REGISTER_EMAIL2_DESC"
			field="email1"
			filter="string"
			label="COM_USERS_REGISTER_EMAIL2_LABEL"
			message="COM_USERS_REGISTER_EMAIL2_MESSAGE"
			required="true"
			size="30"
			validate="equals"
		/>


بعد وارد فایل user.php در مسیر زیر شوید :
 

JOOMLA\libraries\joomla\database\table\user.php
 



بعد این تابع رو کامنت می کنید :
 

/*
// check for existing email
$query->clear();
$query->select($this->_db->quoteName('id'));
$query->from($this->_db->quoteName('#__users'));
$query->where($this->_db->quoteName('email') . ' = ' . $this->_db->quote($this->email));
$query->where($this->_db->quoteName('id') . ' != ' . (int) $this->id);
$this->_db->setQuery($query);
$xid = intval($this->_db->loadResult());
if ($xid && $xid != intval($this->id))
{
$this->setError(JText::_('JLIB_DATABASE_ERROR_EMAIL_INUSE'));
return false;
}

*/

 



بعد وارد فایل registration.php در مسیر زیر شوید :
 

JOOMLA\components\com_users\models\registration.php

بعد این بخش رو کامنت می کنید :
 

// Check for an error.
/*
if ($return !== true) {
$this->setError(JText::_('COM_USERS_REGISTRATION_SEND_MAIL_FAILED'));

// Send a system message to administrators receiving system mails
$db = JFactory::getDBO();
$q = "SELECT id
FROM #__users
WHERE block = 0
AND sendEmail = 1";
$db->setQuery($q);
$sendEmail = $db->loadColumn();
if (count($sendEmail) > 0) {
$jdate = new JDate();
// Build the query to add the messages
$q = "INSERT INTO ".$db->quoteName('#__messages')." (".$db->quoteName('user_id_from').
", ".$db->quoteName('user_id_to').", ".$db->quoteName('date_time').
", ".$db->quoteName('subject').", ".$db->quoteName('message').") VALUES ";
$messages = array();

foreach ($sendEmail as $userid) {
$messages[] = "(".$userid.", ".$userid.", '".$jdate->toSql()."', '".JText::_('COM_USERS_MAIL_SEND_FAILURE_SUBJECT')."', '".JText::sprintf('COM_USERS_MAIL_SEND_FAILURE_BODY', $return, $data['username'])."')";
}
$q .= implode(',', $messages);
$db->setQuery($q);
$db->query();
}
return false;
}
*/

 



بعد وارد مسیر زیر می شوید :
 

JOOMLA\libraries\phpmailer\language\phpmailer.lang-joomla.php

بعد خط زیر رو هم کامنت می کنید :
 

$PHPMAILER_LANG["provide_address"] = JText::_('PHPMAILER_PROVIDE_ADDRESS');
 



خوب تا الان بدون ایمیل می توانید ثبت نام کنید ولی یه پیغام می مونه که میگه :
 

شما حداقل باید یک آدرس ایمیل جهت دریافت وارد کنید
یا
You must provide at least one recipient email address

برای از بین بردنش باید وارد مسیر زیر شده :
 

JOOMLA\libraries\phpmailer\phpmailer.php

و خط زیر رو که بصورت bold شده حذف کنید :


'provide_address' => 'You must provide at least one recipient email address.',


این رو هم بگم که این کار اصولی نی ولی میشه چون خودم خیلی وقت پیش تو انجمن درخواست داده بودم بعد کلی تحقیق و آزمایش بدستش آوردم. یکی از راه های اصولی و خوب استفاده از cb می باشد.
امیدوارم به درد کسی بخوره
منتظر آموزش های بعدی بنده باشید

روز خوش و بدرود

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

درود فراوان به جومینایی های عزیز :002:

شاید بخواهید فیلد ایمیل در فرم ثبت نام رو از حالت ضروری در بیارید و غیر ضروری کنید

خوب موارد زیر رو دنبال کنید :

ابتدا وارد فایل registration.xml از مسیر زیر شوید :

 

JOOMLA\components\com_users\models\forms\registration.xml

بعد این دوتا رو کامنت می کنید :

 

<field name="email1" type="email"
			description="COM_USERS_REGISTER_EMAIL1_DESC"
			field="id"
			filter="string"
			label="COM_USERS_REGISTER_EMAIL1_LABEL"
			message="COM_USERS_REGISTER_EMAIL1_MESSAGE"
			required="true"
			size="30"
			unique="true"
			validate="email"
		/>

		<field name="email2" type="email"
			description="COM_USERS_REGISTER_EMAIL2_DESC"
			field="email1"
			filter="string"
			label="COM_USERS_REGISTER_EMAIL2_LABEL"
			message="COM_USERS_REGISTER_EMAIL2_MESSAGE"
			required="true"
			size="30"
			validate="equals"
		/>

بعد وارد فایل user.php در مسیر زیر شوید :

JOOMLA\libraries\joomla\database\table\user.php

بعد این تابع رو کامنت می کنید :

/*
// check for existing email
$query->clear();
$query->select($this->_db->quoteName('id'));
$query->from($this->_db->quoteName('#__users'));
$query->where($this->_db->quoteName('email') . ' = ' . $this->_db->quote($this->email));
$query->where($this->_db->quoteName('id') . ' != ' . (int) $this->id);
$this->_db->setQuery($query);
$xid = intval($this->_db->loadResult());
if ($xid && $xid != intval($this->id))
{
$this->setError(JText::_('JLIB_DATABASE_ERROR_EMAIL_INUSE'));
return false;
}

*/

بعد وارد فایل registration.php در مسیر زیر شوید :

 

JOOMLA\components\com_users\models\registration.php

بعد این بخش رو کامنت می کنید :

// Check for an error.
/*
if ($return !== true) {
$this->setError(JText::_('COM_USERS_REGISTRATION_SEND_MAIL_FAILED'));

// Send a system message to administrators receiving system mails
$db = JFactory::getDBO();
$q = "SELECT id
FROM #__users
WHERE block = 0
AND sendEmail = 1";
$db->setQuery($q);
$sendEmail = $db->loadColumn();
if (count($sendEmail) > 0) {
$jdate = new JDate();
// Build the query to add the messages
$q = "INSERT INTO ".$db->quoteName('#__messages')." (".$db->quoteName('user_id_from').
", ".$db->quoteName('user_id_to').", ".$db->quoteName('date_time').
", ".$db->quoteName('subject').", ".$db->quoteName('message').") VALUES ";
$messages = array();

foreach ($sendEmail as $userid) {
$messages[] = "(".$userid.", ".$userid.", '".$jdate->toSql()."', '".JText::_('COM_USERS_MAIL_SEND_FAILURE_SUBJECT')."', '".JText::sprintf('COM_USERS_MAIL_SEND_FAILURE_BODY', $return, $data['username'])."')";
}
$q .= implode(',', $messages);
$db->setQuery($q);
$db->query();
}
return false;
}
*/

بعد وارد مسیر زیر می شوید :

 

JOOMLA\libraries\phpmailer\language\phpmailer.lang-joomla.php

بعد خط زیر رو هم کامنت می کنید :

$PHPMAILER_LANG["provide_address"] = JText::_('PHPMAILER_PROVIDE_ADDRESS');

خوب تا الان بدون ایمیل می توانید ثبت نام کنید ولی یه پیغام می مونه که میگه :

 

شما حداقل باید یک آدرس ایمیل جهت دریافت وارد کنید
یا
You must provide at least one recipient email address

برای از بین بردنش باید وارد مسیر زیر شده :

 

JOOMLA\libraries\phpmailer\phpmailer.php

و خط زیر رو که بصورت bold شده حذف کنید :

'provide_address' => 'You must provide at least one recipient email address.',

این رو هم بگم که این کار اصولی نی ولی میشه چون خودم خیلی وقت پیش تو انجمن درخواست داده بودم بعد کلی تحقیق و آزمایش بدستش آوردم. یکی از راه های اصولی و خوب استفاده از cb می باشد.

امیدوارم به درد کسی بخوره

منتظر آموزش های بعدی بنده باشید

روز خوش و بدرود

 

سلام

وقتی میگید اصولی نیست یعنی چی؟!

یعنی ممکنه به سایت صدمه ای بزنه؟

یه سوال دیگه؟

توی آموزشی میگید این بخش رو کامنت کنید. منظورتان چیست؟ یعنی این کدها رو وارد فایل مربوطه کنیم ؟

با تشکر

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

باسلام

منظورشون از اصولی نیست احتمالا این هست که راه حل کامل و جامعی نیست

 

درضمن منظور از کامنت یعنی اینکه کدهای گفته شده رو غیرفعال کنید تا کار نکنند

یعنی آنها رو به حالت توضیحات خواندنی دربیارید

 

در php میتونید به صورت زیر کامنت گذاری کنید

 

/*

مطالب مربوطه

*/

 

یاعلی

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
ارسال شده در (ویرایش شده)

با سلام

دو راه برای ثبت نام یک کاربر وجود داره

یکی از طریق خود وب سایت

یکی از طریق مدیریت وب سایت

آیا این روش فرمی رو که در بخش مدیریت جوملا هست رو هم در بر میگیره؟

برای اینکه فرم موجود در بخش مدیریت جوملا رو هم محدود کرد باید چه کرد؟

 

همچنین در سطر ابتدایی این آموزش نوشته شده

بعد این دوتا رو کامنت می کنید :

 

اما منظور از این دوتا کدام دوتا هست؟!

چون کادر پایینش خالی از متنه

ویرایش شده توسط جوملا ، عشق مجازی من...

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

درود بر شما

 

تست نکردم اما برای ادمین مطمئنن کار نخواهد کرد

اون بخش هم ویرایش شد

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سوال:


به عنوان مثال من میخوام این رو کامنت کنم



<field name="email1" type="email"
description="COM_USERS_REGISTER_EMAIL1_DESC"
field="id"
filter="string"
label="COM_USERS_REGISTER_EMAIL1_LABEL"
message="COM_USERS_REGISTER_EMAIL1_MESSAGE"
required="true"
size="30"
unique="true"
validate="email"
/>

به صورت زیر عمل می کنم



*/
<field name="email1" type="email"
description="COM_USERS_REGISTER_EMAIL1_DESC"
field="id"
filter="string"
label="COM_USERS_REGISTER_EMAIL1_LABEL"
message="COM_USERS_REGISTER_EMAIL1_MESSAGE"
required="true"
size="30"
unique="true"
validate="email"
/>
/*

اما مگر نباید رنگش عوض شه و خاکستری شه؟


چون این اتفاق نمیفته.

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

درود بر شما

 

بدین صورت هست

/*

 

*/

 

اولی باید ابتدا اسلش بعد ستاره

دومی ابتدا ستاره بعد اسلش

 

سلام اگر قرار بر این باشد که بعد از کامنت کردن رنگش اوون خط ها در ویرایشگر کد cpanel خاکستری بشه

من با وجود راهنمایی که داشتید عمل کردم ولی رنگ عوض نمیشه

نمی دونم دیگه چه کنم؟!!!!!!!!

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام اگر قرار بر این باشد که بعد از کامنت کردن رنگش اوون خط ها در ویرایشگر کد cpanel خاکستری بشه

من با وجود راهنمایی که داشتید عمل کردم ولی رنگ عوض نمیشه

نمی دونم دیگه چه کنم؟!!!!!!!!

با سلام

دلیل اینکه کدهاتون بدرستی کامنت نشده اینه که شما از سیستم کامنت گذاری مخصوص php استفاده کردید

در فایلهای xml برای کامنت گذاری میبایست از سینتکس ها بصورت زیر استفاده کنید

<!--
Your XML Codes
-->

موفق و پیروز باشید

یا حق

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

با سلام

دلیل اینکه کدهاتون بدرستی کامنت نشده اینه که شما از سیستم کامنت گذاری مخصوص php استفاده کردید

در فایلهای xml برای کامنت گذاری میبایست از سینتکس ها بصورت زیر استفاده کنید

<!--
Your XML Codes
-->

موفق و پیروز باشید

یا حق

 

آقا خدا خیرت بده

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

تمام موارد گفته شده رو به دقت انجام دادم

ولی بعد از اینکه در این وب سایت  http://alborzbandargaz.ir  گزینه ثبت نام رو می زنم ، پیغام ارور زیر میاد

Parse error: syntax error, unexpected $end in /home/alborzb1/domains/alborzbandargaz.ir/public_html/main2/components/com_users/models/registration.php on line 518

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

با تشکر از آقای میری و دیگر دوستان

جهت این راه حل بسیار کاربردی

اگر بشود این راه حل رو برای قسمت مدیریت جوملا نیز پیاده سازی کرد خیلی عالی میشه

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
ارسال شده در (ویرایش شده)

با جایگزینی فایل registration.php مشکل حل شد.

 

موقع ثبت نام پیغام ارور میده

روش تایید گم شده است: password

 

http://www.alborzbandargaz.ir/main2/index.php/component/users/?view=registration

ویرایش شده توسط جوملا ، عشق مجازی من...

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام کسی نیست مشکل رو حل کنه؟


موقع ثبت نام پیغام ارور میده


روش تایید گم شده است: password


 


http://www.alborzban...ew=registration


 


حالا باید چه کرد ؟


 


 


به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

در صورت امکان زبان سایت را به انگلیسی تغییر دهید و متن انگلیسی ارور را قرار دهید

 

از صفحه مشخصات من در مدیریت جوملا

زبان سایت رو بر روی انگلیسی قرار میدم

اما باز هم به همین زبان ارور رو میگه

  • روش تایید گم شده است: password

 

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

از منوی مدیریت افزونه ها قسمت مدیریت زبان زبان سایت را روی انگلیسی قرار داده و متن انگلیسی ارور را قرار دهید.

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

درود بر شما

 

راستش اون موقع که برای جوملا 2.5 داشتم این کار رو میکردم و آموزشش رو نوشتم اکی بود و مشکلی نداشت البته فکر کنم روی نسخه های اولیه جوملا 2.5 بود

باز هم در اولین فرصتی که نصیبم شد مجدد نگاهی می اندازم و مجدد این کار رو انجام میدم و آموزش هم بروز می کنم

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
ارسال شده در (ویرایش شده)

از منوی مدیریت افزونه ها قسمت مدیریت زبان زبان سایت را روی انگلیسی قرار داده و متن انگلیسی ارور را قرار دهید.

 

انجام شد

پیغام ارور اینه :

  • Validation Rule missing: password

آقای قاسمی یه پ.خ فرستادم لطفا بررسی کنید

قضیه اینه که من بعد از اینکه انگلیسی کردم دیگه اصلا فارسی نمیشه

نمی دونم چه کنم

باستون دسترسی مدیریت سایت فرستادم

 

آقای قاسمی ظاهرا نمیشه باستون پیغام خصوصی فرستاد

چه کنم ؟

ویرایش شده توسط جوملا ، عشق مجازی من...

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید ارسال داشته باشید و بعد ثبت نام خود را در سایت کامل نمایید. اگر حساب کاربری در سایت دارید، جهت ارسال با حساب کاربری خود هم اکنون وارد سایت شوید

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.


×
×
  • افزودن...