Форумы / National / Russian / Сборка «Фриланс-биржа» / Подгрузить файл шаблона .tpl

ed.moriarti
#1 25.04.2020 20:47

Допустим в папке tpl модуля Folio расположено два файла, у которых разные коды

1) folio.add.tpl

2) folio.add2.tpl

Можно ли сформировать две ссылки, одна из которых открывала бы 1 файл, а вторая второй?

Добавлено 9 минут спустя:

ну имею ввиду чтобы в результате перехода на страницу добавления портфолио по 1-й и 2-й ссылке подгружались разные шаблоны

Отредактировано: ed.moriarti (25.04.2020 20:57, 3 года назад)
Dayver
#2 26.04.2020 01:18

Можно, допустим, в вашу ссылку 2 добавите параметр &type=second , а в файле modules\folio\inc\folio.add.php найдите строчку:

$mskin = cot_tplfile(array('folio', 'add', $structure['folio'][$ritem['item_cat']]['tpl']));

и замените ее такими:

$type = cot_import('type', 'G', 'ALP');

$mskin = cot_tplfile(array('folio', 'add'$type, $structure['folio'][$ritem['item_cat']]['tpl']));

тогда для ссылки 1, без параметра, будет работать folio.add.tpl, а с параметром, для ссылки 2, будет folio.add.second.tpl

Pavlo Tkachenko aka Dayver
ed.moriarti
#3 27.04.2020 22:05

Все получилось, только обнаружилась проблема.

Допустим если все поля для заполнения в folio.add.tpl  и в folio.add.second.tpl одинаковые, но в folio.add.second.tpl есть одно дополнительное экстраполе, которого нет в folio.add.tpl и это экстраполе обязательно для заполнения!

Однако, допустим, что пользователь не заполнил это экстраполе и нажал кнопку добавить. Следовательно должна вылететь ошибка что нужно дозаполнить экстраполе, но в этом случае редиректит на страницу folio.add.tpl

Вопрос: как сделать так чтоб в случае ошибки редиректило именно на тот шаблон который заполнялся юзверем?

Kopusha
#4 28.04.2020 06:19

Найти в add.php момент с редиректом и условием его поправить.

ed.moriarti
#5 28.04.2020 07:00

Найти то я может и найду, но товарищи, прастите великодушно, условие не пропишу ибо тяму не хватит в php.

Если нет желания помочь, я не огорчусь :)

Отредактировано: ed.moriarti (28.04.2020 07:06, 3 года назад)
Lipnitsky
#6 28.04.2020 08:49

Думаю с самого начала можно по другому

- есть необходимость добавлять проект 2 вариантами, это разные категории проектов?

- если да то создаётся add.first.tpl с одним функционалом и add.second.tpl с другим.

- если есть какие то проблемы с обязательным полем сделать его обязательным в тпл через js 

Dayver
#7 28.04.2020 10:18
#44661 Lipnitsky:

Думаю с самого начала можно по другому

Конечно можно задачу решить по всякому но

#44661 Lipnitsky:

- если есть какие то проблемы с обязательным полем сделать его обязательным в тпл через js 

делать так я бы не советовал в целях безопасности .... я конечно же не знаю о насколько критичном поле идет речь ... но перестарховываясь и думая что поле важное - проверки с его заполненостью или валидностью введенных данных делать всегда нужно на стороне сервера(пхп), а не клиента(js) в его браузере ... а то делая все тяп-ляп можно нарватся на ситуацию ... а потом еще и репутация движка страдает - хотя на самом деле движок не причастен к образованию таких дыр в безопасности.

Добавлено 2 минуты спустя:

#44658 ed.moriarti:

Допустим если все поля для заполнения в folio.add.tpl  и в folio.add.second.tpl одинаковые, но в folio.add.second.tpl есть одно дополнительное экстраполе, которого нет в folio.add.tpl и это экстраполе обязательно для заполнения!

Однако, допустим, что пользователь не заполнил это экстраполе и нажал кнопку добавить. Следовательно должна вылететь ошибка что нужно дозаполнить экстраполе, но в этом случае редиректит на страницу folio.add.tpl

Вопрос: как сделать так чтоб в случае ошибки редиректило именно на тот шаблон который заполнялся юзверем?

Тут стоит две задачи:

  1.  Настроить редирект по верному урлу и это не сложно.
  2. Учитывать для каждого типа добавления свой необходимый набор обязательных полей. Ведь создав экстраполе и указав его необходимым к заполнению оно становится таковым для всех типов страниц добавления, а значит нужно доработать это, но это уже сложнее чем задача 1

Добавлено 1 минуту спустя:

Решение для первой таково:

Строку которую я советовал выше

$type = cot_import('type', 'G', 'ALP');

перенести в начало файла modules\folio\inc\folio.add.php а потом кусок кода

else
	{
		cot_redirect(cot_url('folio', 'm=add&c='.$c, '', true));
	}

заменить на

	else
	{
		cot_redirect(cot_url('folio', 'm=add&c='.$c.($type ? '&type='.$type : ''), '', true));
	}

Для второй задачи действия постараюсь написать чуть позже как будет свободное время

Pavlo Tkachenko aka Dayver
Отредактировано: Dayver (28.04.2020 10:50, 3 года назад)
ed.moriarti
#8 28.04.2020 10:34

Возможно я делаю через одно место, но делаю так как проще мне, как позволяют навыки и знания. С каждыми разом я их пополняю. Вам спасибо за помощ!

Я реализую следующее:

категории одинаковые что в первом что во втором варианте, все одно и тоже в принципе!

просто в первом варианте добавляется и редактируется обычная работа в портфолио (как пример какой-то деятельности)

А во втором варианте это по сути та же  самая работа в портфолио, только некоторые формы которые нужно заполнить другие и заголовки другие. 
вобщем категории одни и теже, разница в отсутствии или присутствии нескольких экстраполей.

и у пользователя в результате складывается впечатление что там он добавляет работу в портфолио, а тут например тоже самое по сути но представлено в виде информации об акции или скидке.

 

в итоге суть вопроса в том чтобы при отправке формы в случае ошибки при заполнении одной страници не редиректило на другую страницу что корректировки данных, но уже получается с другими экстрлпалями.

Dayver
#9 28.04.2020 10:53

Перенес тему в соответствующий раздел. Просьба создавать темы касающиеся фриланс биржы в предназначеной ей ветке форума.

Pavlo Tkachenko aka Dayver