Форумы / National / Russian / Сборка «Фриланс-биржа» / Только для PRO

yourmaze
#1 06.05.2016 03:26

Здравствуйте! Такая задача: для заказчиков при добавлении проекта нужно запретить ставить метку "Только для PRO". И сделать так, что на проекты могут отвечать фрилансеры только с PRO аккаунтом. Но возникла проблема, я никак не могу найти где же обрабатывается "Только для PRO" в php файлах.

Roffun
#2 06.05.2016 13:07

Здесь можно обойтись и без php файлов. Для этого есть соответствующие условия, добавляются в tpl файлы.

Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
yourmaze
#3 07.05.2016 05:45

Спасибо за ответ, но можно чуть подробнее? Какие условия? Я так понимаю это проверка на PRO аккаунт. А какое именно условие и в каком файле

Roffun
#4 07.05.2016 10:21

Там есть несколько условий, одно - это если у пользователя pro, он видит то что скрыто в условии, второе - если у вас есть pro, то пользователи видят что-то, что есть у вас, например иконка pro.

<!-- IF {PHP.usr.isadmin} OR {PHP.usr.id} == {PHP.item.item_userid} OR {PHP|cot_getuserpro()} -->
информация только для про, админов и автора проекта
<!-- ELSE -->
Данные доступны только для пользователей с PRO-аккаунтом!
<!-- ENDIF -->

Также посмотрите в самом tpl файле проекта, там есть например условие вывода иконки если у пользователя есть про:

			<!-- IF {PRJ_OWNER_ISPRO} -->
			<span class="label label-important">PRO</span> 
			<!-- ENDIF -->

условие выводимое если плагин paypro включен и отмечен галочкой для про

<!-- IF {PHP.cot_plugins_active.paypro} AND {PRJ_FORPRO} -->
<div class="pull-right margintop10"><span class="label label-important">{PHP.L.paypro_forpro}</span></div>
<!-- ENDIF -->

Или в файле редактирования проекта чекбокс только для про выводится:

			<!-- IF {PHP.cot_plugins_active.paypro} -->
			<tr>
				<td>{PHP.L.paypro_forpro}:</td>
				<td>
					{PRJEDIT_FORM_FORPRO}
				</td>
			</tr>
			<!-- ENDIF -->

Вот используя эти условия можно сделать то что вы хотите, если знаете как с этим работать. Добавляете к ним проверку на группу, и т. д.

Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
yourmaze
#5 10.05.2016 08:07

Да, спасибо. Сработало)

svitlo
#6 28.06.2016 11:45

похожий вопрос) с этим как бы понятно а вот как вывести кнопку например для заказов что они для всех? вот кнопку только для про я нашол и в коробочной версии а как прописать условие для всех? что бы когда акаунт только для про для всех исчезал значек?? 

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

Почему когда я прописываю 

            <!-- IF {PRJ_OWNER_ISPRO} -->
            <span class="label label-important">PRO</span> 
            <!-- ENDIF -->

то получаю вот такую ошибку? 

Fatal error: Uncaught exception 'Exception' with message 'Logical block &lt;!-- IF {PRJ_OWNER_ISPRO} --&gt; not closed' in /home/u101595745/public_html/system/cotemplate.php:803 Stack trace: #0 /home/u101595745/public_html/system/cotemplate.php(598): Cotpl_block->compile('<div class="uk-...', Array, Array, Array) #1 /home/u101595745/public_html/system/cotemplate.php(307): Cotpl_block->__construct('<div class="uk-...', Array, Array) #2 [internal function]: XTemplate->restart_root_blocks(Array) #3 /home/u101595745/public_html/system/cotemplate.php(390): preg_replace_callback('`<!--\\s*BEGIN:\\...', Array, '<!-- BEGIN: MAI...') #4 /home/u101595745/public_html/system/cotemplate.php(336): XTemplate->compile('<!-- BEGIN: MAI...') #5 /home/u101595745/public_html/system/cotemplate.php(88): XTemplate->restart('themes/bootlanc...') #6 /home/u101595745/public_html/modules/projects/inc/projects.main.php(88): XTemplate->__construct('themes/bootlanc...') #7 /home/u101595745/public_html/modules/projects/projects.php(33): require_once( in /home/u101595745/public_html/system/cotemplate.php on line 803

структуру делаю такую же как и в дефолтном шаблоне... в чем проблема?

Отредактировано: svitlo (28.06.2016 21:44, 7 лет назад)
Macik
#7 29.06.2016 14:04

Шаблонизатору что-то не нравится в синтаксисе управляющей конструкции. Проверьте правильность написания, необходимые пробелы вокруг операторов и тегов, правильость закрытия конструкции `-->` и соблюдение парности открывающих и закрывающих элементов «IF / ENDIF».

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
svitlo
#8 29.06.2016 18:33

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

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

И попутно аналогичный вопрос)) как правильно прописать что проект для всех)) что бы когда нет метки только для про - было показано что проект для всех

<!-- IF {PHP.PRJ_FOPUBLIC} -->
 <p><span class="uk-badge uk-badge-success">{PHP.L.Public}</span></p>
<!-- ENDIF -->

такой вариант не катит( как это сделать правильно*?

Для всех

Отредактировано: svitlo (29.06.2016 18:49, 7 лет назад)
Macik
#9 30.06.2016 16:57

Предположу, что можно инвертировать условие из поста выше (т.е. выводить блок если у проекта нет метки PRO). Делается это установкой оператора НЕ `!` (в виде восклицателього знака):
`<!-- IF !{PRJ_OWNER_ISPRO} -->`

Подробнее об операторах...

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F