Forums / National / Russian / Модули и плагины / Расширение модуля "Опросы"

Kopusha
#47872 2024-03-14 07:18

Ой, я как то это все реализовал на стандартном модуле Polls + Page, без перделок экстраполем и версткой. Гляну как и поделюсь. Беда что я далеко от компа нынче, немножко занят тем что на аватарке.

Added 38 minutes later:

Собственно не без перделок вышло)

Тут в архиве дописанные файлики к модулю Polls

Далее в page.add.tpl можно либо привязать экстраполем уже созданный где то опрос указав его id либо прямо на этапе редактирования или создания page создать новы опрос

Нужно по идее из ссылки выше добавить в polls/inc/functions недостающие функции и в корень модуля - 5 файлов, обновить модуль. А код для page.add.tpl сейчас попробую тут кинуть.

 

Added 1 minute later:

page.tpl (просмотр страницы)

<!-- IF {PAGE_ATTACH_POLL} -->
{PAGE_ATTACH_POLL|cot_poll_single($this)}
<!-- ENDIF -->	
	
<!-- BEGIN: POLLS_VIEW -->
<div class="bg-white thepoll-100 unselectable mb-20" style="border-radius: 6px;padding: 20px 30px 20px 20px;">
<h3 class="category text-dark fw-400 fs-16 mb-10">
<i class="fas fa-poll fs-23 opacity09 text-bluer mr-5"></i>
{POLLS_TITLE}
</h3>
<hr>
{POLLS_FORM}
</div>
<!-- END: POLLS_VIEW -->

 

Added 3 minutes later:

page.add.tpl

Создание опроса

<!-- IF {PHP.usr.profile.user_maingrp} == 6 OR {PHP.usr.profile.user_maingrp} == 5 -->
	<div class="row pb-0">
		<div class="col-12">
			<div class="mb-20 mt-20">
			<a href="#collapsePoll" data-toggle="collapse" data-loading-text="loading" aria-expanded="false" aria-controls="collapsePoll" id="collapsePollToggle" style="border-color: transparent;background: rgba(158,158,158,.2);" class="mdl-button fs-15 pointer mr-10 unselectable"><i class="ico-category et-bargraph mr-10"></i>{PHP.L.addpoll}</a>
			</span>
			</div>			
		</div>
	</div>

<div class="thepoll bg-white collapse unselectable" style="border-radius: 6px;padding: 20px 50px 20px 20px;" id="collapsePoll">
<!-- BEGIN: POLL -->
<div class="table">
	<div class="row pt-30 pb-20">
		<div class="col-md-2 col-lg-2">
		<label class="form-control-label text-bluer pt-12 fw-400">{PHP.L.pollquest}: </label>
		</div>
		<div class="col-md-10 col-lg-10 fullwidth">
		{EDIT_POLL_IDFIELD}
		{EDIT_POLL_TEXT|cot_rc_modify($this, 'autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" class="form-control new-form fullwidth firstcapital"')}
		</div>
	</div>
							<script type="text/javascript" src="{PHP.cfg.modules_dir}/polls/js/polls.js"></script>
							<script type="text/javascript">
								var ansMax = {PHP.cfg.polls.max_options_polls};
							</script>
							
	<div class="row pt-0 pb-0">
		<div class="col-md-3 col-lg-2">
		<label class="form-control-label text-bluer pt-12 fw-400">{PHP.L.pollansw}: </label>
		</div>
		<div class="col-12 fullwidth">
		</div>
	</div>
<!-- BEGIN: OPTIONS -->
	<div class="row pt-0 pb-0 polloptiondiv">
		<div class="col-md-12 col-lg-10 col-xl-9 fullwidth">
		{EDIT_POLL_OPTION_TEXT|cot_rc_modify($this, 'autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" class="form-control new-form fullwidth firstcapital" style="width: calc(100% - 50px) !important;"')}
		<i name="deloption" type="button" class="las la-times fs-21 pointer deloption" style="display:none;border: none !important;position: absolute;top: 13px;right: 25px;"></i>
		</div>
	</div>
<!-- END: OPTIONS -->
<div class="row pb-0">
		<div class="col-12 unselectable">
		{EDIT_POLL_MULTIPLE}
		</div>
</div>

	<br>
	<input id="addoption" name="addoption" style="display:none" class="btn btn-success btn-sm" value="{PHP.L.Add}" type="button" />
	
</div>	
<!-- END: POLL -->
</div>
<!-- ENDIF -->	

Привязывание ранее созданного опроса

		<label class="form-control-label text-bluer pt-6 fw-400">{PHP.L.attach_poll_title}: </label>
		</div>
		<div class="col-md-9 col-lg-10 startday shortdate" style="max-width: 300px;">
		{PAGEADD_FORM_ATTACH_POLL|cot_rc_modify($this, 'style="max-width: 100px;" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" class="form-control new-form"')}
		</div>

PAGEADD_FORM_ATTACH_POLL видимо просто экстраполе для page.

 

Код работает для php.7.4 но естественно может служить только отправной точкой для вашего сайта, может не заработать "просто тыкнул и все."

Added 1 minute later:

PS что интересно - можно добавлять к стр сразу 2 опроса - один напрямую а второй "общий" созданный в модуле Опросы. Такая тогда стояла задача.

This post was edited by Kopusha (2024-03-14 08:03, 1 month ago)