Joomla! България
Стари версии на Джумла! => Joomla! 3.x => Общи въпроси за Joomla! 3.x => Темата е започната от: vestoy в 13 Юли, 2014, 11:20:46
-
Здравейте!
Имам следния проблем:
В меню имам връзка към стандартния компонент com_contacts ==> единичен контакт, но този ед. контакт е зададен за достъп само за регистрирани потребители на сайта (Access = Registered) в компонента; докато в менюто линкът е Public. Идеята е да се допускат само регистрираните потребители до контактната форма.
В старите версии на J! (по-спец. 1.5.x.) при опит за отваряне на връзка (компонент, статия и пр.) със зададен Access = Registered, се извеждаше съобщение (напр. "Трябва първо да се идентифицирате"), след което се правеше redirect към компонента com_user ==> login, с което услужливо се подканяше посетителят да се логне или регистрира.
Тази реакция в J! 3.3.1. сега е доста занемарена, като специално за com_contact е задействана следната реакция (ред 294, файл: /components/com_contact/models/contact.php):
if (empty($result))
{
throw new Exception(JText::_('COM_CONTACT_ERROR_CONTACT_NOT_FOUND'), 404);
}
А това води до:
exception 'Exception' with message 'Контактът не е намерен' in /home/.../.../components/com_contact/models/contact.php:296 Stack trace: #0 /home/.../.../components/com_contact/models/contact.php(230): ContactModelContact->getContactQuery(1) #1 /home/.../.../libraries/legacy/view/legacy.php(398): ContactModelContact->getItem() #2 /home/.../.../components/com_contact/views/contact/view.html.php(43): JViewLegacy->get('Item') #3 /home/.../.../libraries/legacy/controller/legacy.php(685): ContactViewContact->display() #4 /home/.../.../components/com_contact/controller.php(41): JControllerLegacy->display(true, Array) #5 /home/.../.../libraries/legacy/controller/legacy.php(722): ContactController->display() #6 /home/.../.../components/com_contact/contact.php(15): JControllerLegacy->execute(NULL) #7 /home/.../.../libraries/cms/component/helper.php(352): require_once('/home/seea/wwwd...') #8 /home/.../.../libraries/cms/component/helper.php(332): JComponentHelper::executeComponent('/home/seea/wwwd...') #9 /home/.../.../libraries/cms/application/site.php(178): JComponentHelper::renderComponent('com_contact') #10 /home/.../.../libraries/cms/application/site.php(224): JApplicationSite->dispatch() #11 /home/.../.../libraries/cms/application/cms.php(245): JApplicationSite->doExecute() #12 /home/.../.../index.php(40): JApplicationCms->execute() #13 {main}
на екрана >:(
Подобна е реакцията и при опит да се покаже статия, която е публикувана само за регистрирани потребители - извежда се стандартното съобщение "Нямате права, за да видите този ресурс." и без какъвто и да е redirect към login на com_users.
Има ли начин да се "override"-не тази реакция в двата компонента (както и в други, имащи подобна "твърда" реакция) в самия шаблон (напр. в html/com_conatct/ и съотв. в html/com_content/ на шаблона), за да не се пипа стандартния код на J! 3.x. или може би има други решения?
Балгодаря предварително!