/** * Display our CMC fields at the registration * * @param object $tab - The tab * @param JUser $user - The user * @param object $ui - The UI * @param object $postdata - The postdata * * @return string */ public function getDisplayRegistration($tab, $user, $ui, $postdata) { JHtml::_('stylesheet', JURI::root() . 'media/mod_cmc/css/cmc.css'); CompojoomHtmlBehavior::jquery(); $plugin = GetCmcTab::getPlugin(); $listid = $plugin->params->get('listid', ""); $interests = $plugin->params->get('interests', ''); $fields = $plugin->params->get('fields', ''); // Create the xml for JForm $builder = CmcHelperXmlbuilder::getInstance($plugin->params); // Load JS & Co JFactory::getDocument()->addScriptDeclaration("\n\t\t\tjQuery(document).ready(function(){\n\t\t\t\tvar \$ = jQuery;\n\n\t\t\t\t\$('#cmc_check_newsletter').on('click', function() {\n\t\t\t\t\tif(\$(this).prop('checked'))\n\t\t\t\t\t{\n\t\t\t\t\t\t\$('input.cmc_req').addClass('required');\n\t\t\t\t\t\t\$('#cmc_newsletter').show();\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\t\$('input.cmc_req').removeClass('required');\n\t\t\t\t\t\t\$('#cmc_newsletter').hide();\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t\$('#cmc_newsletter').hide();\n\t\t\t});\n\t\t"); // We have to set the fields / interests manually for cb because they are no array! See explode if (!empty($fields)) { $fields = explode("|*|", $plugin->params->get('fields', '')); $builder->fields = $fields; } if (!empty($interests)) { $interests = explode("|*|", $plugin->params->get('interests', '')); $builder->interests = $interests; } $xml = $builder->build(); $form = new JForm('myform'); $form->addFieldPath(JPATH_ADMINISTRATOR . '/components/com_cmc/models/fields'); $form->load($xml); $fieldsets = $form->getFieldsets(); $ret = '<div class="cbFieldsContentsTab">'; $ret .= '<div class="sectiontableentry1 cbft_predefined cbtt_input form-group cb_form_line clearfix">'; $ret .= '<label for="name" id="cblabname" class="control-label col-sm-3">' . JText::_('PLG_CMCCB_SUBSCRIPTION') . '</label>'; $ret .= '<div class="cb_field col-sm-9">'; $ret .= '<input type="checkbox" name="cmc[newsletter]" id="cmc_check_newsletter" value="1" /> '; $ret .= '<label for="cmc_check_newsletter" id="cmc_newsletter_lbl">' . JText::_('PLG_CMCCB_NEWSLETTER') . '</label>'; $ret .= "</div>\n"; $ret .= "</div>"; $ret .= "<div id='cmc_td_newsletter' style='' class=\"cbFieldsContentsTab\">\n"; $ret .= "<div id=\"cmc_newsletter\" style=\"display: block;\">\n"; // Render Content foreach ($fieldsets as $key => $value) { if ($key != "cmc") { $ret .= '<div class="sectiontableentry1 cbft_predefined cbtt_input form-group cb_form_line clearfix">'; $ret .= '<label class="col-sm-12">' . JText::_($value->label) . '</label>'; $ret .= '</div>'; $fields = $form->getFieldset($key); foreach ($fields as $field) { $ret .= '<div class="sectiontableentry1 cbft_predefined cbtt_input form-group cb_form_line clearfix">'; $ret .= '<div class="control-label col-sm-3">' . $field->label . '</div>'; $ret .= '<div class="cb_field col-sm-9">'; $ret .= $field->input; $ret .= '</div>'; $ret .= '</div>'; } } } $ret .= '<input type="hidden" name="cmc[listid]" id="cmc_listid" value="' . $listid . '" />'; // End open tables / divs $ret .= "</div>\n"; $ret .= "</div>\n"; return $ret; }
/** * Manupulates the registration form * * @param string &$data - registration form data * * @return mixed */ public function onUserRegisterFormDisplay(&$data) { // Load the funky stuff CompojoomHtmlBehavior::jquery(); JHtml::stylesheet('media/plg_community_cmc/css/style.css'); JHtml::script('media/plg_community_cmc/js/cmc.js'); // Create the xml for JForm $builder = CmcHelperXmlbuilder::getInstance($this->params); $xml = $builder->build(); $form = new JForm('myform'); $form->addFieldPath(JPATH_ADMINISTRATOR . '/components/com_cmc/models/fields'); $form->load($xml); $displayData = new stdClass(); $displayData->form = $form; $layout = new CompojoomLayoutFile('newsletter.form', JPATH_BASE . '/plugins/community/cmc/layouts'); $html = $layout->render($displayData); $pos = strrpos($data, '<div class="joms-form__group">'); $data = substr($data, 0, $pos) . $html . substr($data, $pos); }
/** * @author Yves Hoppe - compojoom.com * @date 29.06.2015 * * @copyright Copyright (C) 2008 - 2015 compojoom.com . All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ defined('_JEXEC') or die('Restricted access'); // Don't load module if user is subscribed in this template! if ($status->status == 'subscribed') { return; } $moduleId = $module->id; if ($params->get('jquery', 1)) { CompojoomHtmlBehavior::jquery(); } JHtml::_('behavior.formvalidation'); // Load JS JHtml::script('media/mod_cmc/js/cmc.js'); JHtml::script('media/mod_cmc/js/floating.jquery.js'); // Load css JHtml::_('stylesheet', 'media/mod_cmc/css/cmc.css'); JHtml::_('stylesheet', 'media/mod_cmc/css/floating.css'); if ($params->get('bootstrap_form', 1)) { JHtml::_('stylesheet', 'media/mod_cmc/css/bootstrap-form.css'); } $document = JFactory::getDocument(); // Get CSS depending on signup_position param $pos = $params->get('signup_position', 'right'); $script = 'jQuery(document).ready(function() {
/** * Subscribe a user to our list * * @param JForm $form - the user form * @param array $data - the user data * * @return bool * * @throws Exception */ public function subscribe($form, $data) { $needToValidate = true; $input = JFactory::getApplication()->input; $task = $input->get('task'); if (in_array($task, array('register', 'apply', 'save'))) { $requestData = JFactory::getApplication()->input->get('jform', array(), 'array'); $needToValidate = isset($requestData['cmc']) && isset($requestData['cmc']['newsletter']); } if ($needToValidate) { $lang = JFactory::getLanguage(); $lang->load('plg_user_cmc', JPATH_ADMINISTRATOR); CompojoomHtmlBehavior::jquery(); JHtml::script('media/plg_user_cmc/js/cmc.js'); $renderer = CmcHelperXmlbuilder::getInstance($this->params); // Render Content $html = $renderer->build(); // Inject fields into the form $form->load($html, false); } return true; }