• 1

Read this first!

We do not monitor these forums. The forum is provided to exchange information and experience with other users ONLY. Forum responses are not guaranteed.

However, please submit a ticket if you have an active subscription and wish to receive support. Our ticketing system is the only way of getting in touch with RSJoomla! and receiving the official RSJoomla! Customer Support.

For more information, the Support Policy is located here.

Thank you!

TOPIC: Display multiple tickets pull-down as list

Display multiple tickets pull-down as list 7 years 10 months ago #35288

  • rakeshy
  • rakeshy's Avatar
  • OFFLINE
  • Expert Boarder
  • Posts: 94
  • Thank you received: 3
After emailing clients countless times with a screenshot explaining people how to use a pull-down to add different tickets. I am getting pretty frustrated. :sick:

Could somebody PLEASE help me displaying the pull-down bar (containing multiple tickets), to a simple list view, using RSform? Each with a box in front for the amount of tickets.

From RSjoomla there is no help possible, since they have other priorities.

Somebody must have done this by now, can't be the only one having this issue with users.
Last Edit: 7 years 10 months ago by rakeshy.
The administrator has disabled public write access.

Display multiple tickets pull-down as list 7 years 10 months ago #35292

  • jami
  • jami's Avatar
  • OFFLINE
  • Junior Boarder
  • Posts: 34
  • Thank you received: 4
You would have to know PHP and HTML and go in and modify the code. If you're comfortable doing that, it would be in the file
/plugins/system/rsfprseventspro/rsfprseventspro.php

(be sure to make a backup copy of the original before you mess with anything! :) )

I believe it would be in the section "//After the creation of the component body" around line 257

any updates to the plugin later would overwrite your customizations.
Last Edit: 7 years 10 months ago by jami.
The administrator has disabled public write access.

Display multiple tickets pull-down as list 7 years 10 months ago #35295

  • rakeshy
  • rakeshy's Avatar
  • OFFLINE
  • Expert Boarder
  • Posts: 94
  • Thank you received: 3
My knowledge of php is not sufficient I'm affraid.
The administrator has disabled public write access.

Display multiple tickets pull-down as list 5 years 11 months ago #38139

  • rakeshy
  • rakeshy's Avatar
  • OFFLINE
  • Expert Boarder
  • Posts: 94
  • Thank you received: 3
Managed to create this together with a php programmer. It works so much better for my clients.


Hopefully you (RSjoomla) will create something similar to this.
Last Edit: 5 years 11 months ago by rakeshy.
The administrator has disabled public write access.

Display multiple tickets pull-down as list 5 years 11 months ago #38175

  • jami
  • jami's Avatar
  • OFFLINE
  • Junior Boarder
  • Posts: 34
  • Thank you received: 4
that is awesome! can you share the code? :)
The administrator has disabled public write access.

Display multiple tickets pull-down as list 5 years 1 month ago #38928

  • gurdip
  • gurdip's Avatar
  • OFFLINE
  • Fresh Boarder
  • Posts: 14
  • Thank you received: 1
Hi Rakeshy,

I have an urgent need to rework how the tickets display - like what your php programmer managed to do for your site.

Mind sharing his contact with me? I'd be most appreciative. Thanks.

Gurdip
The administrator has disabled public write access.

Display multiple tickets pull-down as list 5 years 1 month ago #38929

  • rakeshy
  • rakeshy's Avatar
  • OFFLINE
  • Expert Boarder
  • Posts: 94
  • Thank you received: 3
Don't see anything new coming from RSjoomla to address this. So I decided to share my code. I've been perfecting it the last 10 months for my needs. It looks simple but I have put quite some work in it. Follow the three steps below.

1. Create a new .php file inside your template html (template override) called subscribe.php
path: templates/YourTemplate/html/com_rseventspro/rseventspro/subscribe.php
<?php
 
/**
 
* @package RSEvents!Pro
 
* @copyright (C) 2015 www.rsjoomla.com
 
* @license GPL, http://www.gnu.org/copyleft/gpl.html
 
*/
 
defined( '_JEXEC' ) or die( 'Restricted access' ); 
 
JText::script('COM_RSEVENTSPRO_TICKETS'); 
 
JText::script('COM_RSEVENTSPRO_SEATS');
 
JHtml::_('behavior.modal','.rs_modal');
 
$modal = $this->config->modal == 1 || $this->config->modal == 2; ?>
 
 
 
<script type="text/javascript">
 
	<?php if ($this->event->max_tickets) { ?>var maxtickets = parseInt(<?php echo $this->event->max_tickets_amount; ?>);<?php echo "\n"; } ?>
 
	<?php if ($this->event->max_tickets) { ?>var usedtickets = parseInt(<?php echo rseventsproHelper::getUsedTickets($this->event->id); ?>);<?php echo "\n"; } ?>
 
	var multitickets = <?php echo rseventsproHelper::getConfig('multi_tickets','int').";\n"; ?>
 
	var smessage = new Array();
 
	smessage[0] = '<?php echo JText::_('COM_RSEVENTSPRO_SUBSCRIBER_MESSAGE_NAME',true); ?>';
 
	smessage[1] = '<?php echo JText::_('COM_RSEVENTSPRO_SUBSCRIBER_MESSAGE_EMAIL',true); ?>';
 
	smessage[2] = '<?php echo JText::_('COM_RSEVENTSPRO_SUBSCRIBER_REMOVE_TICKET',true); ?>';
 
	smessage[3] = '<?php echo JText::_('COM_RSEVENTSPRO_SUBSCRIBER_NO_TICKETS_SELECTED',true); ?>';
 
	smessage[4] = '<?php echo JText::_('COM_RSEVENTSPRO_SUBSCRIBER_INVALID_EMAIL_ADDRESS',true); ?>';
 
	smessage[5] = '<?php echo JText::_('COM_RSEVENTSPRO_SUBSCRIBER_NO_MORE_TICKETS',true); ?>';
 
	smessage[6] = '<?php echo JText::_('COM_RSEVENTSPRO_SUBSCRIBER_NO_MORE_TICKETS_ALLOWED',true); ?>';
 
	smessage[7] = '<?php echo JText::_('COM_RSEVENTSPRO_SUBSCRIBER_SINGLE_TICKET',true); ?>';
 
 
 
	function RSopenModal() {
 
		var dialogHeight = <?php echo rseventsproHelper::getConfig('seats_height','int','800'); ?>;
 
		var dialogWidth  = <?php echo rseventsproHelper::getConfig('seats_width','int','1280'); ?>;
 
 
 
		<?php if ($modal) { ?>
 
		if (window.showModalDialog) {
 
			window.showModalDialog('<?php echo rseventsproHelper::route('index.php?option=com_rseventspro&layout=tickets&tmpl=component&id='.rseventsproHelper::sef($this->event->id,$this->event->name)); ?>', window, "dialogHeight:"+dialogHeight+"px; dialogWidth:"+dialogWidth+"px;");
 
		} else {
 
			window.open('<?php echo rseventsproHelper::route('index.php?option=com_rseventspro&layout=tickets&tmpl=component&id='.rseventsproHelper::sef($this->event->id,$this->event->name)); ?>', 'seatswindow','status=0,toolbar=0,width='+dialogWidth+',height='+dialogHeight);
 
		}
 
		<?php } else { ?>
 
		SqueezeBox.open('<?php echo rseventsproHelper::route('index.php?option=com_rseventspro&layout=tickets&tmpl=component&id='.rseventsproHelper::sef($this->event->id,$this->event->name)); ?>', {
 
			handler: 'iframe',
 
			size: {
 
				x:dialogWidth,
 
				y:dialogHeight
 
			},
 
			onClose: function() {
 
				<?php echo $this->event->form == 0 ? 'rsepro_multi_seats_total();' : 'rsepro_update_total();'; ?>
 
			}
 
		});
 
		<?php } ?>
 
	}
 
</script>
 
 
 
<?php if ($modal) { ?>
 
<style type="text/css">
 
.rs_subscribe { margin-left: 50px; margin-top: 50px; }
 
</style>
 
<?php } ?>
 
 
 
<?php if ($this->event->form != 0 && $this->form) { ?>
 
<div class="rs_subscribe">
 
	<span style="clear:both;display:block;"></span>
 
	<?php echo rseventsproHelper::loadRSForm($this->event->form); ?>
 
	<?php if (!empty($this->tickets) && !$this->thankyou) { ?><script type="text/javascript"><?php if ($this->event->ticketsconfig) { ?>rsepro_update_total();<?php } else { ?>rs_get_ticket(jQuery('#RSEProTickets').val());<?php } ?></script><?php } ?>
 
</div>
 
<?php } else { ?>
 
<form action="<?php echo rseventsproHelper::route('index.php?option=com_rseventspro&layout=subscribe'); ?>" method="post" name="adminForm" id="adminForm" class="form-horizontal">
 
<div class="rs_subscribe">
 
	<h1><?php echo JText::sprintf('COM_RSEVENTSPRO_SUBSCRIBER_JOIN',$this->event->name); ?></h1>
 
 
 
	<div class="control-group">
 
		<div class="control-label">
 
			<label for="name"><?php echo JText::_('COM_RSEVENTSPRO_SUBSCRIBER_NAME'); ?></label>
 
		</div>
 
		<div class="controls">
 
			<input type="text" name="name" id="name" value="<?php echo rseventsproHelper::getUser($this->user->get('id')); ?>" size="40" class="input-large" />
 
		</div>
 
	</div>
 
 
 
	<div class="control-group">
 
		<div class="control-label">
 
			<label for="email"><?php echo JText::_('COM_RSEVENTSPRO_SUBSCRIBER_EMAIL'); ?></label>
 
		</div>
 
		<div class="controls">
 
			<input type="text" name="email" id="email" value="<?php echo $this->user->get('email'); ?>" size="40" class="input-large" />
 
		</div>
 
	</div>
 
 
 
	<?php if (!empty($this->tickets)) { ?>
 
 
 
	<?php if ($this->event->ticketsconfig) { ?>
 
	<div class="control-group">
 
		<div class="control-label">
 
			<label>&nbsp;</label>
 
		</div>
 
		<div class="controls">
 
			<a href="javascript:void(0);" onclick="RSopenModal();">
 
				<i class="fa fa-shopping-cart"></i> <span id="rsepro_cart"><?php echo JText::_('COM_RSEVENTSPRO_SELECT_TICKETS'); ?></span>
 
			</a>
 
		</div>
 
	</div>
 
 
 
	<?php } else { ?>
 
 
 
	<div class="control-group">
 
		<div class="control-label">
 
			<label for="ticket"><?php echo JText::_('COM_RSEVENTSPRO_SUBSCRIBER_SELECT_TICKETS'); ?></label>
 
		</div>
 
		<div class="controls"><div class="combine">
 
			<input type="text" id="numberinp" name="numberinp" value="1" size="3" style="display: none;" onkeyup="<?php echo $this->js; ?>" class="input-mini" />
 
			<select name="number" id="number" class="input-mini" onchange="<?php echo $this->js; ?>"><option value="1">1</option></select>
 
			<select name="ticket" id="ticket" onchange="<?php echo $this->js; ?>" size="1" class="input-large">
 
				<?php echo JHtml::_('select.options', $this->tickets); ?>
 
			</select>
 
			<img id="rs_loader" src="<?php echo JURI::root(); ?>components/com_rseventspro/assets/images/loader.gif" alt="" style="vertical-align: middle; display: none;" />
 
			<?php if ($this->config->multi_tickets) { ?>
 
			<a href="javascript:void(0);" onclick="rsepro_add_multiple_tickets();"><?php echo JText::_('COM_RSEVENTSPRO_SUBSCRIBER_ADD_TICKET'); ?></a>
 
			<?php } ?>
 
		</div>
 
		</div>
 
	</div>
 
 
 
	<?php } ?>
 
 
 
	<?php if ($this->payment && $this->payments) { ?>
 
 
 
	<div class="control-group" id="rsepro_payment">
 
		<div class="control-label">
 
			<label for="payment"><?php echo JText::_('COM_RSEVENTSPRO_SUBSCRIBER_PAYMENT_METHOD'); ?></label>
 
		</div>
 
		<div class="controls">
 
			<?php echo $this->lists['payments']; ?>
 
		</div>
 
	</div>
 
 
 
	<?php if ($this->event->discounts) { ?>
 
 
 
	<div class="control-group">
 
		<div class="control-label">
 
			<label for="coupon"><?php echo JText::_('COM_RSEVENTSPRO_SUBSCRIBER_PAYMENT_COUPON'); ?></label>
 
		</div>
 
		<div class="controls">
 
			<input type="text" name="coupon" id="coupon" value="" size="40" class="input-large" onkeyup="<?php echo $this->updatefunction; ?>" />
 
			<a href="javascript:void(0)" onclick="rse_verify_coupon(<?php echo $this->event->id; ?>,document.getElementById('coupon').value)">
 
				<i class="fa fa-refresh"></i>
 
			</a>
 
		</div>
 
	</div>
 
 
 
	<?php } ?>
 
 
 
	<?php } ?>
 
 
 
	<table class="table table-striped table-condensed" id="rsepro-cart-details">
 
 
 
		<tr class="rsepro-cart-options" id="rsepro-cart-discount" style="display: none;">
 
			<td>
 
				<strong><?php echo JText::_('COM_RSEVENTSPRO_GLOBAL_DISCOUNT'); ?></strong>
 
				<span></span>
 
			</td>
 
			<td></td>
 
			<td>&nbsp;</td>
 
		</tr>
 
		<tr class="rsepro-cart-options" id="rsepro-cart-latefee" style="display: none;">
 
			<td>
 
				<strong><?php echo JText::_('COM_RSEVENTSPRO_GLOBAL_LATE_FEE'); ?></strong>
 
			</td>
 
			<td></td>
 
			<td>&nbsp;</td>
 
		</tr>
 
		<tr class="rsepro-cart-options" id="rsepro-cart-earlybooking" style="display: none;">
 
			<td>
 
				<strong><?php echo JText::_('COM_RSEVENTSPRO_GLOBAL_EARLY_FEE'); ?></strong>
 
			</td>
 
			<td></td>
 
			<td>&nbsp;</td>
 
		</tr>
 
		<tr class="rsepro-cart-options" id="rsepro-cart-tax" style="display: none;">
 
			<td>
 
				<strong><?php echo JText::_('COM_RSEVENTSPRO_GLOBAL_TAX'); ?></strong>
 
			</td>
 
			<td></td>
 
			<td>&nbsp;</td>
 
		</tr>
 
		<tr class="rsepro-cart-options" id="rsepro-cart-total">
 
			<td>
 
				<strong><?php echo JText::_('COM_RSEVENTSPRO_GLOBAL_TOTAL'); ?></strong>
 
			</td>
 
			<td><?php echo rseventsproHelper::currency(0); ?></td>
 
			<td>&nbsp;</td>
 
		</tr>
 
	</table>
 
 
 
	<?php } ?>	
 
 
 
	<hr />
 
 
 
	<div class="control-group">
 
		<div class="controls">
 
			<button type="submit" class="button btn btn-primary" onclick="return rsepro_validate_subscription();"><?php echo JText::_('COM_RSEVENTSPRO_GLOBAL_SAVE'); ?></button> <?php echo JText::_('COM_RSEVENTSPRO_GLOBAL_OR'); ?> 
 
			<?php echo rseventsproHelper::redirect(false,JText::_('COM_RSEVENTSPRO_GLOBAL_CANCEL'),rseventsproHelper::route('index.php?option=com_rseventspro&layout=show&id='.rseventsproHelper::sef($this->event->id,$this->event->name),false,rseventsproHelper::itemid($this->event->id))); ?>
 
		</div>
 
	</div>
 
 
 
</div>
 
 
 
	<?php echo JHTML::_('form.token')."\n"; ?>
 
	<input type="hidden" name="option" value="com_rseventspro" />
 
	<input type="hidden" name="task" value="rseventspro.subscribe" />
 
	<input type="hidden" name="from" id="from" value="" />
 
	<input type="hidden" name="id" value="<?php echo $this->event->id; ?>" />
 
	<input type="hidden" name="tmpl" value="component" />
 
</form>
 
<?php if (!empty($this->tickets) && !$this->event->ticketsconfig) { ?>
 
<script type="text/javascript">
 
jQuery(document).ready(function() {
 
	<?php echo $this->js; ?>
 
});
 
</script>
 
<?php } ?>
 
<?php } ?>
 
 
 
<span id="eventID" style="display:none;"><?php echo $this->event->id; ?></span>
 
<script type="text/javascript">
 
 
 
function rs_get_ticket_list(){
 
		checkboxelem="";
 
		jQuery('#RSEProTickets > option').each(function() {
 
		 checkboxelem+='<div><label class="chk-container">'+jQuery(this).text()+'<input type="checkbox"  value="'+jQuery(this).val()+'"  class="chk chk'+jQuery(this).val()+'"  name="arc"><span class="checkmark"></span></label> </div>';
 
 
		});
		checkboxelem='<div id="RSEProTickets_rd_list">'+checkboxelem+'</div>';
		//	alert(checkboxelem);
		jQuery( checkboxelem ).insertBefore(  '#RSEProTickets'  );
 
		//alert(jQuery("#RSEProTickets_rd_list" ).find(".chk").length)
		jQuery("#RSEProTickets_rd_list" ).find(".chk").on("click",function(){
			//alert(jQuery(this ).val())
			val=jQuery(this).val()
			if(jQuery(this).is(":checked")){
				jQuery('#RSEProTickets').val(jQuery(this).val());
				 rs_get_ticket(jQuery(this).val());
 
				rs_add_ticket();
				//content_elem=jQuery("#tickets").find('#content'+val)
				// alert(content_elem.length);
				 jQuery("#tickets").find('#content'+val).find("a").remove();
				  jQuery("#tickets").find('#content'+val).find("br").remove();
				  jQuery("#tickets").find('#content'+val).prepend('<button  type="button"  onclick="jQuery(\'#RSEProTickets\').val('+jQuery(this).val()+');rs_add_ticket()" class=" btn btn-xs btn-info btn-plus-minus"><i class="fa fa-plus"></i></button> '); 
				 jQuery("#tickets").find('#content'+val).append('<button type="button" onclick="jQuery(\'.chk'+val+'\').prop( \'checked\',false );rs_remove_ticket(\''+jQuery(this).val()+'\')" class=" btn btn-xs btn-danger btn-plus-minus"><i class="fa fa-trash"></i></button><div></div>')
 
			 }else{
			   rs_remove_ticket(jQuery(this).val())
 
			 }
		})
 
	}
 
window.onload = function(){
 
 
 rs_add_ticket();
jQuery('#RSEProTickets').hide();
jQuery('#RSEProTickets').next().hide();
val=jQuery('#RSEProTickets').val();
 
 jQuery('.chk'+val).prop( 'checked',true );
 jQuery("#tickets").find('#content'+val).find("a").remove();
 jQuery("#tickets").find('#content'+val).find("br").remove();	
 
  jQuery("#tickets").find('#content'+val).append('<button type="button" onclick="jQuery(\'.chk'+val+'\').prop( \'checked\',false );rs_remove_ticket(\''+val+'\')" class=" btn btn-xs btn-danger btn-plus-minus"><i class="fa fa-trash"></i></button><div></div>');
  jQuery("#tickets").find('#content'+val).prepend('<button  type="button"  onclick="jQuery(\'#RSEProTickets\').val('+val+');rs_add_ticket()" class=" btn btn-xs btn-info btn-plus-minus"><i class="fa fa-plus"></i></button> ');
 
};
 
jQuery(document).ready(function() {
 
 
 
 
 rs_get_ticket_list();
 
 
 
 
 
})
 
</script>


Check it the form works!
If not you need to comment out line 9 like this:
//JHtml::_('behavior.modal','.rs_modal');

As an extra option I have added the auto select first ticket option.
This means, that the Denied Subcription Email is triggered if somebody decides not to finish the order.
Email "Subscription unfinished" is then sent.
You can disable this email in RSevents Pro>emails>Denied Subcription Email>Enable Email >No



2. Add a new custom css file/code to your template: custom.css or add this code at the bottom of template.css in your css templates folder.
/* The container */
.chk-container {
 
    position: relative;
    padding-left: 35px;
    margin-bottom: 12px;
    cursor: pointer;
 
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}
 
/* Hide the browser's default checkbox */
.chk-container input {
    position: absolute;
    opacity: 0;
    cursor: pointer;
}
 
/* Create a custom checkbox */
.checkmark {
    position: absolute;
    top: 0;
    left: 0;
    height: 25px;
    width: 25px;
    background-color: #eee;
}
 
/* On mouse-over, add a grey background color */
.chk-container:hover input ~ .checkmark {
    background-color: #ccc;
}
 
/* When the checkbox is checked, add a blue background */
.chk-container input:checked ~ .checkmark {
    background-color: #2196F3;
}
 
/* Create the checkmark/indicator (hidden when not checked) */
.checkmark:after {
    content: "";
    position: absolute;
    display: none;
}
 
/* Show the checkmark when checked */
.chk-container input:checked ~ .checkmark:after {
    display: block;
}
 
/* Style the checkmark/indicator */
.chk-container .checkmark:after {
    left: 9px;
    top: 5px;
    width: 5px;
    height: 10px;
    border: solid white;
    border-width: 0 3px 3px 0;
    -webkit-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    transform: rotate(45deg);
}
 
 
 /* Style buttons */
.btn-plus-minus {
   margin-bottom:10px;
}


3. Creating nicer custom css settings
If you are using RSform for the form display. Then you can also add custom CSS at Components>RSform>yourform>Form Properties>CSS & Javascript>CSS field

By adding this CSS code
<style type="text/css">
h2 {text-align:left;padding-left: 157px;}
label.control-label {font-weight:bold !important;}
#numberinp, #number{width: 70px;}
span#paymentinfo {color:#0a9af7;font-weight:bold;}
#grandtotalcontainer {font-weight:bold;}
#grandtotal {font-size:16pt;}
.rsform-checkbox {margin-right:7px;}
input#RSEProCoupon {padding-top:4px !important;padding-bottom:4px !important;}
</style>


Enjoy!
Last Edit: 5 years 1 month ago by rakeshy.
The administrator has disabled public write access.
The following user(s) said Thank You: gurdip

Display multiple tickets pull-down as list 5 years 1 month ago #38930

  • gurdip
  • gurdip's Avatar
  • OFFLINE
  • Fresh Boarder
  • Posts: 14
  • Thank you received: 1
Rakeshy,

Thank you for your generosity.

I did exactly as you suggested, my modal ticket no longer appears, however I don't see my tickets listed like yours do.



Do you know what could be the issue?

This is my website url:
mediagenesis.org/felicita/trade-delegate...lian-wines-road-show

Do you use other RSJoomla plugins along with your solution?

Mine is an RSEvents / RSForm integration.
Last Edit: 5 years 1 month ago by gurdip.
The administrator has disabled public write access.

Display multiple tickets pull-down as list 5 years 1 month ago #38931

  • rakeshy
  • rakeshy's Avatar
  • OFFLINE
  • Expert Boarder
  • Posts: 94
  • Thank you received: 3
Are you using RSevents Pro and using the form from RSform?
This is what my solution is for, for the use of multiple tickets of RSevents.
Also 'Enable tickets configuration' at Event Registration needs to be disabled.
Last Edit: 5 years 1 month ago by rakeshy.
The administrator has disabled public write access.

Display multiple tickets pull-down as list 5 years 1 month ago #38933

  • gurdip
  • gurdip's Avatar
  • OFFLINE
  • Fresh Boarder
  • Posts: 14
  • Thank you received: 1
Hi Rakeshy,

Disabling the setting did it! Thanks! Only some css to be adjusted and yet to test. Much appreciated :)
The administrator has disabled public write access.

Display multiple tickets pull-down as list 5 years 1 month ago #38939

  • rakeshy
  • rakeshy's Avatar
  • OFFLINE
  • Expert Boarder
  • Posts: 94
  • Thank you received: 3
Your welcome, I know exactly how much this is needed.
The administrator has disabled public write access.
The following user(s) said Thank You: gurdip

Display multiple tickets pull-down as list 1 year 4 weeks ago #42678

  • rakeshy
  • rakeshy's Avatar
  • OFFLINE
  • Expert Boarder
  • Posts: 94
  • Thank you received: 3
Since RSevents has been updated for Joomla 4, you need recreate the subscribe.php in your template override folder.
Or you will get a 500 Behavior::Modal error

Simply grab the new subscribe.php file from: components/com_rseventspro/views/rseventspro/tmpl/subscribe.php
Copy it to your desktop and add the code below at the bottom of the php file.
Add the file to your template override folder: html/com_rseventspro/rseventspro/subscribe.php

<script type="text/javascript">
 
function rs_get_ticket_list(){
 
		checkboxelem="";
 
		jQuery('#RSEProTickets > option').each(function() {
 
		 checkboxelem+='<div><label class="chk-container">'+jQuery(this).text()+'<input type="checkbox"  value="'+jQuery(this).val()+'"  class="chk chk'+jQuery(this).val()+'"  name="arc"><span class="checkmark"></span></label> </div>';
 
 
		});
		checkboxelem='<div id="RSEProTickets_rd_list">'+checkboxelem+'</div>';
		//	alert(checkboxelem);
		jQuery( checkboxelem ).insertBefore(  '#RSEProTickets'  );
 
		//alert(jQuery("#RSEProTickets_rd_list" ).find(".chk").length)
		jQuery("#RSEProTickets_rd_list" ).find(".chk").on("click",function(){
			//alert(jQuery(this ).val())
			val=jQuery(this).val()
			if(jQuery(this).is(":checked")){
				jQuery('#RSEProTickets').val(jQuery(this).val());
				 rs_get_ticket(jQuery(this).val());
 
				rs_add_ticket();
				//content_elem=jQuery("#tickets").find('#content'+val)
				// alert(content_elem.length);
				 jQuery("#tickets").find('#content'+val).find("a").remove();
				  jQuery("#tickets").find('#content'+val).find("br").remove();
				  jQuery("#tickets").find('#content'+val).prepend('<button  type="button"  onclick="jQuery(\'#RSEProTickets\').val('+jQuery(this).val()+');rs_add_ticket()" class=" btn btn-xs btn-info btn-plus-minus"><i class="fa fa-plus"></i></button> '); 
				 jQuery("#tickets").find('#content'+val).append('<button type="button" onclick="jQuery(\'.chk'+val+'\').prop( \'checked\',false );rs_remove_ticket(\''+jQuery(this).val()+'\')" class=" btn btn-xs btn-danger btn-plus-minus"><i class="fa fa-trash"></i></button><div></div>')
 
			 }else{
			   rs_remove_ticket(jQuery(this).val())
 
			 }
		})
 
	}
 
window.onload = function(){
 
 
 rs_add_ticket();
jQuery('#RSEProTickets').hide();
jQuery('#RSEProTickets').next().hide();
val=jQuery('#RSEProTickets').val();
 
 jQuery('.chk'+val).prop( 'checked',true );
 jQuery("#tickets").find('#content'+val).find("a").remove();
 jQuery("#tickets").find('#content'+val).find("br").remove();	
 
  jQuery("#tickets").find('#content'+val).append('<button type="button" onclick="jQuery(\'.chk'+val+'\').prop( \'checked\',false );rs_remove_ticket(\''+val+'\')" class=" btn btn-xs btn-danger btn-plus-minus"><i class="fa fa-trash"></i></button><div></div>');
  jQuery("#tickets").find('#content'+val).prepend('<button  type="button"  onclick="jQuery(\'#RSEProTickets\').val('+val+');rs_add_ticket()" class=" btn btn-xs btn-info btn-plus-minus"><i class="fa fa-plus"></i></button> ');
 
};
 
jQuery(document).ready(function() {
rs_get_ticket_list(); 
})
 
</script>

add CSS code for styling as seen above
Last Edit: 1 year 4 weeks ago by rakeshy.
The administrator has disabled public write access.

Display multiple tickets pull-down as list 1 year 4 weeks ago #42679

  • rakeshy
  • rakeshy's Avatar
  • OFFLINE
  • Expert Boarder
  • Posts: 94
  • Thank you received: 3
Here also a nice CSS addition, creating a separation between the checkboxes and the selected items
#RSEProTickets_rd_list {padding: 0px 0px 30px 0px;border-bottom: 4px dashed #000000;text-align:left;margin-right:auto;}
span#tickets {line-height: 2.8;}
Last Edit: 1 year 4 weeks ago by rakeshy.
The administrator has disabled public write access.

Display multiple tickets pull-down as list 11 months 3 weeks ago #42754

  • rakeshy
  • rakeshy's Avatar
  • OFFLINE
  • Expert Boarder
  • Posts: 94
  • Thank you received: 3
To make it more easy for you, here is my latest updates on the codes with the RSform Layout Bootstrap 5.1.3 version

Create this subscribe.php file and add it to your template folder inside html>com_rseventspro>rseventspro directories
<?php
/**
* @package RSEvents!Pro
* @copyright (C) 2020 www.rsjoomla.com
* @license GPL, http://www.gnu.org/copyleft/gpl.html
*/
defined( '_JEXEC' ) or die( 'Restricted access' ); 
JText::script('COM_RSEVENTSPRO_TICKETS'); 
JText::script('COM_RSEVENTSPRO_SEATS');
JText::script('ERROR'); ?>
 
<script type="text/javascript">
	var rseproTypingTimer;
 
	jQuery(document).ready(function() {
		jQuery('#coupon').keyup(function(){
			clearTimeout(rseproTypingTimer);
 
			if (jQuery('#coupon').val()) {
				rseproTypingTimer = setTimeout(function() {
				<?php echo $this->updatefunction; ?>
				}, 500);
			}
		});
	});
 
	<?php if ($this->event->tickets_amount) { ?>var ticketsamount = parseInt(<?php echo $this->event->tickets_amount; ?>);<?php echo "\n"; } ?>
	<?php if ($this->event->max_tickets) { ?>var maxtickets = parseInt(<?php echo $this->event->max_tickets_amount; ?>);<?php echo "\n"; } ?>
	<?php if ($this->event->max_tickets) { ?>var usedtickets = parseInt(<?php echo rseventsproHelper::getUsedTickets($this->event->id); ?>);<?php echo "\n"; } ?>
	var multitickets = <?php echo rseventsproHelper::getConfig('multi_tickets','int').";\n"; ?>
	var smessage = new Array();
	smessage[0] = '<?php echo JText::_('COM_RSEVENTSPRO_SUBSCRIBER_MESSAGE_NAME',true); ?>';
	smessage[1] = '<?php echo JText::_('COM_RSEVENTSPRO_SUBSCRIBER_MESSAGE_EMAIL',true); ?>';
	smessage[2] = '<?php echo JText::_('COM_RSEVENTSPRO_SUBSCRIBER_REMOVE_TICKET',true); ?>';
	smessage[3] = '<?php echo JText::_('COM_RSEVENTSPRO_SUBSCRIBER_NO_TICKETS_SELECTED',true); ?>';
	smessage[4] = '<?php echo JText::_('COM_RSEVENTSPRO_SUBSCRIBER_INVALID_EMAIL_ADDRESS',true); ?>';
	smessage[5] = '<?php echo JText::_('COM_RSEVENTSPRO_SUBSCRIBER_NO_MORE_TICKETS',true); ?>';
	smessage[6] = '<?php echo JText::_('COM_RSEVENTSPRO_SUBSCRIBER_NO_MORE_TICKETS_ALLOWED',true); ?>';
	smessage[7] = '<?php echo JText::_('COM_RSEVENTSPRO_SUBSCRIBER_SINGLE_TICKET',true); ?>';
	smessage[8] = '<?php echo JText::_('COM_RSEVENTSPRO_CONSENT_INFO',true); ?>';
	smessage[9] = '<?php echo JText::_('COM_RSEVENTSPRO_SUBSCRIBER_MAX_TICKETS',true); ?>';
	smessage[10] = '<?php echo JText::_('COM_RSEVENTSPRO_SUBSCRIBER_CAPTCHA_ERROR',true); ?>';
 
	function RSopenModal() {
		var dialogHeight = <?php echo rseventsproHelper::getConfig('seats_height','int','800'); ?>;
		var dialogWidth  = <?php echo rseventsproHelper::getConfig('seats_width','int','1280'); ?>;
 
		<?php if ($this->config->modal == 1) { ?>
		if (window.showModalDialog) {
			window.showModalDialog('<?php echo rseventsproHelper::route('index.php?option=com_rseventspro&layout=tickets&tmpl=component&id='.rseventsproHelper::sef($this->event->id,$this->event->name)); ?>', window, "dialogHeight:"+dialogHeight+"px; dialogWidth:"+dialogWidth+"px;");
		} else {
			window.open('<?php echo rseventsproHelper::route('index.php?option=com_rseventspro&layout=tickets&tmpl=component&id='.rseventsproHelper::sef($this->event->id,$this->event->name)); ?>', 'seatswindow','status=0,toolbar=0,width='+dialogWidth+',height='+dialogHeight);
		}
		<?php } else { ?>
		<?php if ($this->config->modaltype == 1) { ?>
		jQuery('#rseTicketsModal').on('hide.bs.modal', function () {
			<?php echo $this->event->form == 0 ? 'rsepro_multi_seats_total();' : 'rsepro_update_total();'; ?>
		});
		jQuery('#rseTicketsModal').modal('show');
		<?php } else { ?>
		jQuery.colorbox({href: '<?php echo rseventsproHelper::route('index.php?option=com_rseventspro&layout=tickets&tmpl=component&id='.rseventsproHelper::sef($this->event->id,$this->event->name)); ?>', iframe:true, innerWidth: '<?php echo rseventsproHelper::getConfig('seats_width','int','1280'); ?>', innerHeight: '<?php echo rseventsproHelper::getConfig('seats_height','int','800'); ?>', maxWidth:'95%', maxHeight:'95%', onClosed: function() { <?php echo $this->event->form == 0 ? 'rsepro_multi_seats_total();' : 'rsepro_update_total();'; ?> }});
		<?php } ?>
		<?php } ?>
	}
</script>
 
<?php if ($this->config->modal == 1) { ?><style type="text/css">.rs_subscribe { margin-left: 50px; margin-top: 50px; }</style><?php } ?>
 
<?php if ($this->event->form != 0 && $this->form) { ?>
<div class="rs_subscribe">
	<span style="clear:both;display:block;"></span>
	<?php echo rseventsproHelper::loadRSForm($this->event->form); ?>
	<?php if (!empty($this->tickets) && !$this->thankyou) { ?><script type="text/javascript"><?php if ($this->event->ticketsconfig) { ?>rsepro_update_total();<?php } else { ?>rs_get_ticket(jQuery('#RSEProTickets').val());<?php } ?></script><?php } ?>
</div>
<?php } else { ?>
<form action="<?php echo rseventsproHelper::route('index.php?option=com_rseventspro&layout=subscribe'); ?>" method="post" name="subscribeForm" id="subscribeForm" class="rsepro-horizontal form-horizontal" autocomplete="off">
<div class="rs_subscribe">
	<h1><?php echo JText::sprintf('COM_RSEVENTSPRO_SUBSCRIBER_JOIN',$this->event->name); ?></h1>
 
	<?php echo RSEventsproAdapterGrid::renderField('<label for="name">'.JText::_('COM_RSEVENTSPRO_SUBSCRIBER_NAME').'</label>', '<input type="text" name="name" id="name" value="'.rseventsproHelper::getUser($this->user->get('id')).'" size="40" class="input-large form-control" />'); ?>
	<?php echo RSEventsproAdapterGrid::renderField('<label for="email">'.JText::_('COM_RSEVENTSPRO_SUBSCRIBER_EMAIL').'</label>', '<input type="text" name="email" id="email" value="'.$this->user->get('email').'" size="40" class="input-large form-control" />'); ?>
 
	<?php if (!empty($this->tickets)) { ?>
 
	<?php if ($this->event->ticketsconfig) { ?>
	<?php echo RSEventsproAdapterGrid::renderField('', '<a href="javascript:void(0);" onclick="RSopenModal();"><i class="fa fa-shopping-cart"></i> <span id="rsepro_cart">'.JText::_('COM_RSEVENTSPRO_SELECT_TICKETS').'</span></a>'); ?>
	<?php } else { ?>
	<?php $input = '<select name="ticket" id="ticket" onchange="'.$this->js.'" size="1" class="input-large custom-select">'.JHtml::_('select.options', $this->tickets).'</select>'; ?>
	<?php $prepend = '<input type="text" id="numberinp" name="numberinp" value="1" size="3" style="display: none;" onkeyup="'.$this->js.'" class="input-mini form-control" /><select name="number" id="number" class="input-mini custom-select" onchange="'.$this->js.'"><option value="1">1</option></select>'; ?>
	<?php $append = $this->config->multi_tickets ? '<a href="javascript:void(0);" onclick="rsepro_add_multiple_tickets();">'.JHtml::image('com_rseventspro/loader.gif', '', array('id' => 'rs_loader', 'style' => 'vertical-align: middle; display: none;'), true).JText::_('COM_RSEVENTSPRO_SUBSCRIBER_ADD_TICKET').'</a>' : null; ?>
	<?php echo RSEventsproAdapterGrid::renderField(JText::_('COM_RSEVENTSPRO_SUBSCRIBER_SELECT_TICKETS'), RSEventsproAdapterGrid::inputGroup($input, $prepend, $append)); ?>
	<?php } ?>
 
	<?php if ($this->payment && $this->payments) { ?>
	<?php echo RSEventsproAdapterGrid::renderField('<label for="payment">'.JText::_('COM_RSEVENTSPRO_SUBSCRIBER_PAYMENT_METHOD').'</label>', $this->lists['payments']); ?>
	<?php if ($this->event->discounts) { ?>
	<?php echo RSEventsproAdapterGrid::renderField('<label for="coupon">'.JText::_('COM_RSEVENTSPRO_SUBSCRIBER_PAYMENT_COUPON').'</label>', RSEventsproAdapterGrid::inputGroup('<input type="text" name="coupon" id="coupon" value="" size="40" class="input-large form-control" />', null, '<a href="javascript:void(0)" onclick="rse_verify_coupon('.$this->event->id.',document.getElementById(\'coupon\').value)"><i class="fa fa-refresh"></i></a>')); ?>
	<?php } ?>
	<?php } ?>
 
	<?php if (in_array(2,$this->captcha_use)) { ?>
	<div class="control-group" id="rsepro_subscribe_captcha_block">
		<div class="control-label">&nbsp;</div>
		<?php if ($this->config->captcha == 1) { ?>
		<div class="controls">
			<img id="rsepro_subscribe_captcha" src="<?php echo rseventsproHelper::route('index.php?option=com_rseventspro&task=captcha&tmpl=component&rand='.rand(),false); ?>" onclick="reloadSubscribeCaptcha()" />
			<span class="explain">
				<?php echo JText::_('COM_RSEVENTSPRO_CAPTCHA_TEXT'); ?> <?php echo JText::_('COM_RSEVENTSPRO_CAPTCHA_RELOAD'); ?>
			</span>
			<input type="text" id="rsepro_subscribe_secret" name="secret" value="" class="input-large form-control" />
		</div>
		<?php } elseif ($this->config->captcha == 2) { ?>
		<div class="controls">
			<div id="rse-g-recaptcha"></div>
		</div>
		<?php } elseif ($this->config->captcha == 3) { ?>
		<div class="controls">
			<div id="h-captcha-subscribe"></div>
		</div>
		<?php } ?>
	</div>
	<?php } ?>
 
	<table class="table table-striped table-condensed" id="rsepro-cart-details">
 
		<tr class="rsepro-cart-options" id="rsepro-cart-discount" style="display: none;">
			<td>
				<strong><?php echo JText::_('COM_RSEVENTSPRO_GLOBAL_DISCOUNT'); ?></strong>
				<span></span>
			</td>
			<td></td>
			<td>&nbsp;</td>
		</tr>
		<tr class="rsepro-cart-options" id="rsepro-cart-latefee" style="display: none;">
			<td>
				<strong><?php echo JText::_('COM_RSEVENTSPRO_GLOBAL_LATE_FEE'); ?></strong>
			</td>
			<td></td>
			<td>&nbsp;</td>
		</tr>
		<tr class="rsepro-cart-options" id="rsepro-cart-earlybooking" style="display: none;">
			<td>
				<strong><?php echo JText::_('COM_RSEVENTSPRO_GLOBAL_EARLY_FEE'); ?></strong>
			</td>
			<td></td>
			<td>&nbsp;</td>
		</tr>
		<tr class="rsepro-cart-options" id="rsepro-cart-tax" style="display: none;">
			<td>
				<strong><?php echo JText::_('COM_RSEVENTSPRO_GLOBAL_TAX'); ?></strong>
			</td>
			<td></td>
			<td>&nbsp;</td>
		</tr>
		<tr class="rsepro-cart-options" id="rsepro-cart-total">
			<td>
				<strong><?php echo JText::_('COM_RSEVENTSPRO_GLOBAL_TOTAL'); ?></strong>
			</td>
			<td><?php echo rseventsproHelper::currency(0); ?></td>
			<td>&nbsp;</td>
		</tr>
	</table>
 
	<?php } else { ?>
	<?php if (in_array(2,$this->captcha_use)) { ?>
	<div class="control-group" id="rsepro_subscribe_captcha_block">
		<div class="control-label">&nbsp;</div>
		<?php if ($this->config->captcha == 1) { ?>
		<div class="controls">
			<img id="rsepro_subscribe_captcha" src="<?php echo rseventsproHelper::route('index.php?option=com_rseventspro&task=captcha&tmpl=component&rand='.rand(),false); ?>" onclick="reloadSubscribeCaptcha()" />
			<span class="explain">
				<?php echo JText::_('COM_RSEVENTSPRO_CAPTCHA_TEXT'); ?> <?php echo JText::_('COM_RSEVENTSPRO_CAPTCHA_RELOAD'); ?>
			</span>
			<input type="text" id="rsepro_subscribe_secret" name="secret" value="" class="input-large form-control" />
		</div>
		<?php } elseif ($this->config->captcha == 2) { ?>
		<div class="controls">
			<div id="rse-g-recaptcha"></div>
		</div>
		<?php } elseif ($this->config->captcha == 3) { ?>
		<div class="controls">
			<div id="h-captcha-subscribe"></div>
		</div>
		<?php } ?>
	</div>
	<?php } ?>
	<?php } ?>	
 
	<?php if (rseventsproHelper::getConfig('consent','int','1')) { ?>
	<div class="control-group">
		<div class="controls">
			<label class="checkbox inline">
				<input type="checkbox" name="consent" id="consent" value="1" /> <?php echo JText::_('COM_RSEVENTSPRO_CONSENT'); ?>
			</label>
		</div>
	</div>
	<?php } ?>
 
	<hr />
 
	<div class="control-group">
		<div class="controls">
			<button id="subscribeBtn" type="submit" class="button btn btn-primary" onclick="return rsepro_validate_subscription();"><?php echo JText::_('COM_RSEVENTSPRO_GLOBAL_SAVE'); ?></button> <?php echo JText::_('COM_RSEVENTSPRO_GLOBAL_OR'); ?> 
			<?php echo rseventsproHelper::redirect(false,JText::_('COM_RSEVENTSPRO_GLOBAL_CANCEL'),rseventsproHelper::route('index.php?option=com_rseventspro&layout=show&id='.rseventsproHelper::sef($this->event->id,$this->event->name),false,rseventsproHelper::itemid($this->event->id))); ?>
		</div>
	</div>
 
</div>
 
	<?php echo JHTML::_('form.token')."\n"; ?>
	<input type="hidden" name="option" value="com_rseventspro" />
	<input type="hidden" name="task" value="rseventspro.subscribe" />
	<input type="hidden" name="from" id="from" value="" />
	<input type="hidden" name="id" value="<?php echo $this->event->id; ?>" />
	<input type="hidden" name="tmpl" value="component" />
</form>
<?php if (!empty($this->tickets) && !$this->event->ticketsconfig) { ?>
<script type="text/javascript">
jQuery(document).ready(function() {
	<?php echo $this->js; ?>
});
</script>
<?php } ?>
<?php } ?>
 
<span id="eventID" style="display:none;"><?php echo $this->event->id; ?></span>
<?php if ($this->config->modaltype == 1) echo JHtml::_('bootstrap.renderModal', 'rseTicketsModal', array('title' => JText::_('COM_RSEVENTSPRO_SELECT_TICKETS'), 'url' => rseventsproHelper::route('index.php?option=com_rseventspro&layout=tickets&tmpl=component&id='.rseventsproHelper::sef($this->event->id,$this->event->name)), 'bodyHeight' => 70, 'width' => rseventsproHelper::getConfig('seats_width','int','1280'), 'height' => rseventsproHelper::getConfig('seats_height','int','800') )); ?>
 
<script type="text/javascript">
 
function rs_get_ticket_list(){
 
		checkboxelem="";
 
		jQuery('#RSEProTickets > option').each(function() {
 
		 checkboxelem+='<div><label class="chk-container">'+jQuery(this).text()+'<input type="checkbox"  value="'+jQuery(this).val()+'"  class="chk chk'+jQuery(this).val()+'"  name="arc"><span class="checkmark"></span></label> </div>';
 
 
		});
		checkboxelem='<div id="RSEProTickets_rd_list">'+checkboxelem+'</div>';
		//	alert(checkboxelem);
		jQuery( checkboxelem ).insertBefore(  '#RSEProTickets'  );
 
		//alert(jQuery("#RSEProTickets_rd_list" ).find(".chk").length)
		jQuery("#RSEProTickets_rd_list" ).find(".chk").on("click",function(){
			//alert(jQuery(this ).val())
			val=jQuery(this).val()
			if(jQuery(this).is(":checked")){
				jQuery('#RSEProTickets').val(jQuery(this).val());
				 rs_get_ticket(jQuery(this).val());
 
				rs_add_ticket();
				//content_elem=jQuery("#tickets").find('#content'+val)
				// alert(content_elem.length);
				 jQuery("#tickets").find('#content'+val).find("a").remove();
				  jQuery("#tickets").find('#content'+val).find("br").remove();
				  jQuery("#tickets").find('#content'+val).prepend('<button  type="button"  onclick="jQuery(\'#RSEProTickets\').val('+jQuery(this).val()+');rs_add_ticket()" class=" btn btn-xs btn-info btn-plus-minus"><i class="fa fa-plus"></i></button> '); 
				 jQuery("#tickets").find('#content'+val).append('<button type="button" onclick="jQuery(\'.chk'+val+'\').prop( \'checked\',false );rs_remove_ticket(\''+jQuery(this).val()+'\')" class=" btn btn-xs btn-danger btn-plus-minus"><i class="fa fa-trash"></i></button><div></div>')
 
			 }else{
			   rs_remove_ticket(jQuery(this).val())
 
			 }
		})
 
	}
 
window.onload = function(){
 
 
 rs_add_ticket();
jQuery('#RSEProTickets').hide();
jQuery('#RSEProTickets').next().hide();
val=jQuery('#RSEProTickets').val();
 
 jQuery('.chk'+val).prop( 'checked',true );
 jQuery("#tickets").find('#content'+val).find("a").remove();
 jQuery("#tickets").find('#content'+val).find("br").remove();	
 
  jQuery("#tickets").find('#content'+val).append('<button type="button" onclick="jQuery(\'.chk'+val+'\').prop( \'checked\',false );rs_remove_ticket(\''+val+'\')" class=" btn btn-xs btn-danger btn-plus-minus"><i class="fa fa-trash"></i></button><div></div>');
  jQuery("#tickets").find('#content'+val).prepend('<button  type="button"  onclick="jQuery(\'#RSEProTickets\').val('+val+');rs_add_ticket()" class=" btn btn-xs btn-info btn-plus-minus"><i class="fa fa-plus"></i></button> ');
 
};
 
jQuery(document).ready(function() {
rs_get_ticket_list(); 
})
 
</script>

Create this custom.css file and add it to the Template css folder:
/* The container */
.chk-container {
 
    position: relative;
    padding-left: 35px;
    margin-bottom: 12px;
    cursor: pointer;
 
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}
 
/* Hide the browser's default checkbox */
.chk-container input {
    position: absolute;
    opacity: 0;
    cursor: pointer;
}
 
/* Create a custom checkbox */
.checkmark {
    position: absolute;
    top: 7px;
    left: 0;
    height: 25px;
    width: 25px;
  	border-radius:5px;
    background-color: #5a3a00;
}
 
/* On mouse-over, add a grey background color */
.chk-container input ~ .checkmark {
    background-color: #c29b5c;
}
 
/* When the checkbox is checked, add a blue background */
.chk-container input:checked ~ .checkmark {
    background-color: #2196F3;
}
 
/* Create the checkmark/indicator (hidden when not checked) */
.checkmark:after {
    content: "";
    position: absolute;
    display: none;
}
 
/* Show the checkmark when checked */
.chk-container input:checked ~ .checkmark:after {
    display: block;
}
 
/* Style the checkmark/indicator */
.chk-container .checkmark:after {
    left: 8px;
    top: 3px;
    width: 8px;
    height: 16px;
    border: solid white;
    border-width: 0 3px 3px 0;
    -webkit-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    transform: rotate(45deg);
}
 
 
 /* Style buttons */
.btn-plus-minus {
   margin-bottom:1px;
   margin-right:10px;
   margin-left:10px;
    padding-bottom: 3px;
    padding-top: 9px;
}
 
/* Remove standard RSform pulldown */
#RSEProTickets, .rseventspro-add-ticket-button {visibility: hidden;height:0px;}

Change checkbox colors to your own template inside the custom.css file.

Note: The first ticket is automatically selected from the ticketlist

Good luck with it!
Last Edit: 11 months 3 weeks ago by rakeshy.
The administrator has disabled public write access.

Display multiple tickets pull-down as list 11 months 2 weeks ago #42770

  • rakeshy
  • rakeshy's Avatar
  • OFFLINE
  • Expert Boarder
  • Posts: 94
  • Thank you received: 3
If you do not like the first ticket to be selected automatically, simply remove this part at the bottom of the php file
window.onload = function(){
 
 
 rs_add_ticket();
jQuery('#RSEProTickets').hide();
jQuery('#RSEProTickets').next().hide();
val=jQuery('#RSEProTickets').val();
 
 jQuery('.chk'+val).prop( 'checked',true );
 jQuery("#tickets").find('#content'+val).find("a").remove();
 jQuery("#tickets").find('#content'+val).find("br").remove();	
 
  jQuery("#tickets").find('#content'+val).append('<button type="button" onclick="jQuery(\'.chk'+val+'\').prop( \'checked\',false );rs_remove_ticket(\''+val+'\')" class=" btn btn-xs btn-danger btn-plus-minus"><i class="fa fa-trash"></i></button><div></div>');
  jQuery("#tickets").find('#content'+val).prepend('<button  type="button"  onclick="jQuery(\'#RSEProTickets\').val('+val+');rs_add_ticket()" class=" btn btn-xs btn-info btn-plus-minus"><i class="fa fa-plus"></i></button> ');
 
};
The administrator has disabled public write access.
The following user(s) said Thank You: gregs

Display multiple tickets pull-down as list 11 months 2 weeks ago #42771

  • rakeshy
  • rakeshy's Avatar
  • OFFLINE
  • Expert Boarder
  • Posts: 94
  • Thank you received: 3
I don't need to have the ticket amount box added. So I am using the css code to remove that box.

Add this to your RSform css
select#number, #numberinp {width:0px;padding:0;visibility:hidden;}

Within the <style type="text/css"> CSS code </style>
Last Edit: 11 months 2 weeks ago by rakeshy.
The administrator has disabled public write access.

Display multiple tickets pull-down as list 10 months 4 weeks ago #42791

  • aalisg
  • aalisg's Avatar
  • OFFLINE
  • Fresh Boarder
  • Posts: 8
  • Thank you received: 1
Hello Rakeshy and others people in this thread,

First I would like to thank you very much for this amazing component hack/override: it is a fantastic work!

I am trying to use your RSEvents! Pro component override and I was wondering if you could help with some functionalities and improvements I would like to add to your code.

First thing is I want to hide the price of each ticket on the form frontend, as the tickets of my event are free it seems like an unecessary and confusing displayed information.

Regards,
The administrator has disabled public write access.

Display multiple tickets pull-down as list 8 months 2 days ago #42913

  • rakeshy
  • rakeshy's Avatar
  • OFFLINE
  • Expert Boarder
  • Posts: 94
  • Thank you received: 3
Hi aalisg,

Your question is not really related to this topic, but my best guess would be to go to the RSevents settings page and add this to the Payments tab> Payment Mask:
&nbsp;
Since it doesn't allow an empty field, you can choose to add the word "free" as well.

This is a setting for all the events of course. Hope that this is the case, otherwise different solution is needed.
Like adding "<span class="price">%c %p" to the field and using this within the form css settings of the required RSform:
.price {visibility: hidden;}

Good luck!
Last Edit: 8 months 2 days ago by rakeshy.
The administrator has disabled public write access.

Display multiple tickets pull-down as list 2 months 2 weeks ago #43238

  • aalisg
  • aalisg's Avatar
  • OFFLINE
  • Fresh Boarder
  • Posts: 8
  • Thank you received: 1
Hello @rakeshy I hope you coding for CheckIN is going well,

I am creating a ticketing system and I would like the 5 possible tickets per user for an event to be pre-selected and locked (a user can not unselect any of them). Do you know a way to do so?

Regards,
Last Edit: 2 months 2 weeks ago by aalisg. Reason: Typo
The administrator has disabled public write access.
  • 1

Read this first!

We do not monitor these forums. The forum is provided to exchange information and experience with other users ONLY. Forum responses are not guaranteed.

However, please submit a ticket if you have an active subscription and wish to receive support. Our ticketing system is the only way of getting in touch with RSJoomla! and receiving the official RSJoomla! Customer Support.

For more information, the Support Policy is located here.

Thank you!