function createPathByTokens($path, array $names) { if (strpos($path, '|') === false) { return $path; } $path = str_replace('|', DS, $path); foreach ($names as $id => $name) { $is_array = 'STRING'; if (is_array(JRequest::getVar('cb_' . $id, ''))) { $is_array = 'ARRAY'; } $value = JRequest::getVar('cb_' . $id, '', 'POST', $is_array, JREQUEST_ALLOWRAW); if ($is_array == 'ARRAY' && count($value)) { $arrvals = array(); foreach ($value as $val) { if ($val != 'cbGroupMark') { $arrvals[] = $val; } } $value = implode(DS, $arrvals); } if (trim($value) == '') { $value = '_empty_'; } $path = str_replace('{' . strtolower($name) . ':value}', $value, $path); } $path = str_replace('{userid}', JFactory::getUser()->get('id', 0), $path); $path = str_replace('{username}', JFactory::getUser()->get('username', 'anonymous') . '_' . JFactory::getUser()->get('id', 0), $path); $path = str_replace('{name}', JFactory::getUser()->get('name', 'Anonymous') . '_' . JFactory::getUser()->get('id', 0), $path); $_now = JFactory::getDate(); jimport('joomla.version'); $version = new JVersion(); if (version_compare($version->getShortVersion(), '3.0', '>=')) { $path = str_replace('{date}', $_now->toSql(), $path); $path = str_replace('{time}', $_now->format('H:i:s'), $path); $path = str_replace('{date}', $_now->toSql(), $path); $path = str_replace('{datetime}', $_now->format('Y-m-d H:i:s'), $path); } else { $path = str_replace('{date}', $_now->toMySQL(), $path); $path = str_replace('{time}', $_now->toFormat('H:i:s'), $path); $path = str_replace('{date}', $_now->toMySQL(), $path); $path = str_replace('{datetime}', $_now->toFormat('Y-m-d H:i:s'), $path); } $endpath = contentbuilder::makeSafeFolder($path); $parts = explode(DS, $endpath); $inner_path = ''; foreach ($parts as $part) { if (!JFolder::exists($inner_path . $part)) { $inner_path .= DS; } JFolder::create($inner_path . $part); $inner_path .= $part; } return $endpath; }
function cbCreatePathByTokens($path, array $rows) { if (strpos(strtolower($path), '{cbsite}') === 0) { $path = str_replace(array('{cbsite}', '{CBSite}'), array(JPATH_SITE, JPATH_SITE), $path); } if (strpos($path, '|') === false) { return $path; } $path = str_replace('|', DS, $path); foreach ($rows as $row) { $value = JRequest::getVar('ff_nm_' . $row->name, array(), 'POST', 'ARRAY', JREQUEST_ALLOWRAW); $value = implode(DS, $value); if (trim($value) == '') { $value = '_empty_'; } $path = str_replace('{' . strtolower($row->name) . ':value}', trim($value), $path); } $path = str_replace('{userid}', JFactory::getUser()->get('id', 0), $path); $path = str_replace('{username}', JFactory::getUser()->get('username', 'anonymous') . '_' . JFactory::getUser()->get('id', 0), $path); $path = str_replace('{name}', JFactory::getUser()->get('name', 'Anonymous') . '_' . JFactory::getUser()->get('id', 0), $path); jimport('joomla.version'); $version = new JVersion(); $is3 = false; if (version_compare($version->getShortVersion(), '3.0', '>=')) { $is3 = true; } $_now = JFactory::getDate(); $path = str_replace('{date}', $is3 ? $_now->toSql() : $_now->toMySQL(), $path); $path = str_replace('{time}', $is3 ? $_now->format('H:i:s') : $_now->toFormat('H:i:s'), $path); $path = str_replace('{date}', $is3 ? $_now->toSql() : $_now->toMySQL(), $path); $path = str_replace('{datetime}', $is3 ? $_now->format('Y-m-d H:i:s') : $_now->toFormat('Y-m-d H:i:s'), $path); $endpath = contentbuilder::makeSafeFolder($path); $parts = explode(DS, $endpath); $inner_path = ''; foreach ($parts as $part) { if (!JFolder::exists($inner_path . $part)) { $inner_path .= DS; } JFolder::create($inner_path . $part); $inner_path .= $part; } return $endpath; }
function store() { if (JRequest::getInt('type_change', 0)) { $this->_db->setQuery("Update #__contentbuilder_elements Set `type`=" . $this->_db->Quote(JRequest::getCmd('type_selection', '')) . " Where id = " . $this->_element_id); $this->_db->query(); return 1; } $query = ''; $plugins = contentbuilder::getFormElementsPlugins(); $type = JRequest::getCmd('field_type', ''); switch ($type) { case in_array(JRequest::getCmd('field_type', ''), contentbuilder::getFormElementsPlugins()): $hint = JRequest::getVar('hint', '', 'POST', 'STRING', JREQUEST_ALLOWHTML); $removables = array(); $plgs = CBPluginHelper::importPlugin('contentbuilder_form_elements', JRequest::getCmd('field_type', '')); $removables = array_merge($removables, $plgs); $dispatcher = JDispatcher::getInstance(); $results = $dispatcher->trigger('onSettingsStore', array()); if (count($results)) { $results = $results[0]; } foreach ($removables as $removable) { $dispatcher->detach($removable); } $the_item = $results; $query = " `options`='" . base64_encode(serialize($the_item['options'])) . "', `type`=" . $this->_db->Quote(JRequest::getCmd('field_type', '')) . ", `change_type`=" . $this->_db->Quote(JRequest::getCmd('field_type', '')) . ", `hint`=" . $this->_db->Quote($hint) . ", `default_value`=" . $this->_db->Quote($the_item['default_value']) . " "; break; case '': case 'text': $length = JRequest::getVar('length', ''); $maxlength = JRequest::getInt('maxlength', ''); $password = JRequest::getInt('password', 0); $readonly = JRequest::getInt('readonly', 0); $default_value = JRequest::getVar('default_value', ''); $allow_raw = JRequest::getInt('allow_encoding', 0) == 2 ? true : false; // 0 = filter on, 1 = allow html, 2 = allow raw $allow_html = JRequest::getInt('allow_encoding', 0) == 1 ? true : false; $hint = JRequest::getVar('hint', '', 'POST', 'STRING', JREQUEST_ALLOWHTML); $options = new stdClass(); $options->length = $length; $options->maxlength = $maxlength; $options->password = $password; $options->readonly = $readonly; $options->allow_raw = $allow_raw; $options->allow_html = $allow_html; $query = " `options`='" . base64_encode(serialize($options)) . "', `type`='text', `change_type`='text', `hint`=" . $this->_db->Quote($hint) . ", `default_value`=" . $this->_db->Quote($default_value) . " "; break; case 'textarea': $maxlength = JRequest::getInt('maxlength', ''); $width = JRequest::getVar('width', ''); $height = JRequest::getVar('height', ''); $default_value = JRequest::getVar('default_value', ''); $readonly = JRequest::getInt('readonly', 0); $allow_raw = JRequest::getInt('allow_encoding', 0) == 2 ? true : false; // 0 = filter on, 1 = allow html, 2 = allow raw $allow_html = JRequest::getInt('allow_encoding', 0) == 1 ? true : false; $hint = JRequest::getVar('hint', '', 'POST', 'STRING', JREQUEST_ALLOWHTML); $options = new stdClass(); $options->maxlength = $maxlength; $options->width = $width; $options->height = $height; $options->readonly = $readonly; $options->allow_raw = $allow_raw; $options->allow_html = $allow_html; $query = " `options`='" . base64_encode(serialize($options)) . "', `type`='textarea', `change_type`='textarea', `hint`=" . $this->_db->Quote($hint) . ", `default_value`=" . $this->_db->Quote($default_value) . " "; break; case 'checkboxgroup': case 'radiogroup': case 'select': $seperator = ','; //JRequest::getVar('seperator',','); $default_value = implode($seperator, JRequest::getVar('default_value', array())); $allow_raw = JRequest::getInt('allow_encoding', 0) == 2 ? true : false; // 0 = filter on, 1 = allow html, 2 = allow raw $allow_html = JRequest::getInt('allow_encoding', 0) == 1 ? true : false; $hint = JRequest::getVar('hint', '', 'POST', 'STRING', JREQUEST_ALLOWHTML); $options = new stdClass(); $options->seperator = $seperator; $options->allow_raw = $allow_raw; $options->allow_html = $allow_html; if ($type == 'select') { $multi = JRequest::getInt('multiple', 0); $options->multiple = $multi; $options->length = JRequest::getVar('length', ''); } if ($type == 'checkboxgroup' || $type == 'radiogroup') { $options->horizontal = JRequest::getBool('horizontal', 0); $options->horizontal_length = JRequest::getVar('horizontal_length', ''); } $query = " `options`='" . base64_encode(serialize($options)) . "', `type`='" . $type . "', `change_type`='" . $type . "', `hint`=" . $this->_db->Quote($hint) . ", `default_value`=" . $this->_db->Quote($default_value) . " "; break; case 'upload': jimport('joomla.filesystem.file'); jimport('joomla.filesystem.folder'); $this->_db->setQuery("Select upload_directory, protect_upload_directory From #__contentbuilder_forms Where id = " . $this->_id); $setup = $this->_db->loadAssoc(); // rel check for setup $tokens = ''; $upl_ex = explode('|', $setup['upload_directory']); $setup['upload_directory'] = $upl_ex[0]; $upl_ex2 = explode('|', trim(JRequest::getVar('upload_directory', ''))); JRequest::setVar('upload_directory', $upl_ex2[0]); $is_relative = strpos(strtolower($setup['upload_directory']), '{cbsite}') === 0; $tmp_upload_directory = $setup['upload_directory']; $upload_directory = $is_relative ? str_replace(array('{CBSite}', '{cbsite}'), JPATH_SITE, $setup['upload_directory']) : $setup['upload_directory']; // rel check for element options $is_opt_relative = strpos(strtolower(trim(JRequest::getVar('upload_directory', ''))), '{cbsite}') === 0; $tmp_opt_upload_directory = trim(JRequest::getVar('upload_directory', '')); JRequest::setVar('upload_directory', $is_relative ? str_replace(array('{CBSite}', '{cbsite}'), JPATH_SITE, trim(JRequest::getVar('upload_directory', ''))) : trim(JRequest::getVar('upload_directory', ''))); $protect = $setup['protect_upload_directory']; if (!trim(JRequest::getVar('upload_directory', '')) && !JFolder::exists($upload_directory)) { if (!JFolder::exists(JPATH_SITE . DS . 'media' . DS . 'contentbuilder')) { JFolder::create(JPATH_SITE . DS . 'media' . DS . 'contentbuilder'); JFile::write(JPATH_SITE . DS . 'media' . DS . 'contentbuilder' . DS . 'index.html', $def = ''); } if (!JFolder::exists(JPATH_SITE . DS . 'media' . DS . 'contentbuilder' . DS . 'upload')) { JFolder::create(JPATH_SITE . DS . 'media' . DS . 'contentbuilder' . DS . 'upload'); JFile::write(JPATH_SITE . DS . 'media' . DS . 'contentbuilder' . DS . 'upload' . DS . 'index.html', $def = ''); } $upload_directory = JPATH_SITE . DS . 'media' . DS . 'contentbuilder' . DS . 'upload'; if ($is_opt_relative) { $is_relative = 1; $tmp_upload_directory = '{CBSite}' . DS . 'media' . DS . 'contentbuilder' . DS . 'upload'; } if (isset($upl_ex[1])) { $tokens = '|' . $upl_ex[1]; } JFactory::getApplication()->enqueueMessage(JText::_('COM_CONTENTBUILDER_FALLBACK_UPLOAD_CREATED') . ' (' . DS . 'media' . DS . 'contentbuilder' . DS . 'upload' . ')', 'warning'); } else { if (trim(JRequest::getVar('upload_directory', '')) != '' && !JFolder::exists(contentbuilder::makeSafeFolder(JRequest::getVar('upload_directory', '')))) { $upload_directory = contentbuilder::makeSafeFolder(JRequest::getVar('upload_directory', '')); JFolder::create($upload_directory); JFile::write($upload_directory . DS . 'index.html', $def = ''); if ($is_opt_relative) { $is_relative = 1; $tmp_upload_directory = $tmp_opt_upload_directory; } if (isset($upl_ex2[1])) { $tokens = '|' . $upl_ex2[1]; } JFactory::getApplication()->enqueueMessage(JText::_('COM_CONTENTBUILDER_FALLBACK_UPLOAD_CREATED') . ' (' . $upload_directory . ')', 'warning'); } else { if (trim(JRequest::getVar('upload_directory', '')) != '' && JFolder::exists(contentbuilder::makeSafeFolder(JRequest::getVar('upload_directory', '')))) { $upload_directory = contentbuilder::makeSafeFolder(JRequest::getVar('upload_directory', '')); if ($is_opt_relative) { $is_relative = 1; $tmp_upload_directory = $tmp_opt_upload_directory; } if (isset($upl_ex2[1])) { $tokens = '|' . $upl_ex2[1]; } } else { if (isset($upl_ex[1])) { $tokens = '|' . $upl_ex[1]; } } } } if ($protect && JFolder::exists($upload_directory)) { JFile::write(contentbuilder::makeSafeFolder($upload_directory) . DS . '.htaccess', $def = 'deny from all'); } else { if (!$protect && JFolder::exists($upload_directory)) { if (JFile::exists(contentbuilder::makeSafeFolder($upload_directory) . DS . '.htaccess')) { JFile::delete(contentbuilder::makeSafeFolder($upload_directory) . DS . '.htaccess'); } } } $default_value = JRequest::getVar('default_value', ''); $hint = JRequest::getVar('hint', '', 'POST', 'STRING', JREQUEST_ALLOWHTML); $options = new stdClass(); $options->upload_directory = JFolder::exists($upload_directory) ? ($is_relative ? $tmp_upload_directory : $upload_directory) . $tokens : ''; $options->allowed_file_extensions = JRequest::getVar('allowed_file_extensions', ''); $options->max_filesize = JRequest::getVar('max_filesize', ''); $query = " `options`='" . base64_encode(serialize($options)) . "', `type`='" . $type . "', `change_type`='" . $type . "', `hint`=" . $this->_db->Quote($hint) . ", `default_value`=" . $this->_db->Quote($default_value) . " "; break; case 'captcha': $default_value = JRequest::getVar('default_value', ''); $hint = JRequest::getVar('hint', '', 'POST', 'STRING', JREQUEST_ALLOWHTML); $options = new stdClass(); $query = " `options`='" . base64_encode(serialize($options)) . "', `type`='" . $type . "', `change_type`='" . $type . "', `hint`=" . $this->_db->Quote($hint) . ", `default_value`=" . $this->_db->Quote($default_value) . " "; break; case 'calendar': $length = JRequest::getVar('length', ''); $format = JRequest::getVar('format', ''); $transfer_format = JRequest::getVar('transfer_format', ''); $maxlength = JRequest::getInt('maxlength', ''); $readonly = JRequest::getInt('readonly', 0); $default_value = JRequest::getVar('default_value', ''); $hint = JRequest::getVar('hint', '', 'POST', 'STRING', JREQUEST_ALLOWHTML); $options = new stdClass(); $options->length = $length; $options->maxlength = $maxlength; $options->readonly = $readonly; $options->format = $format; $options->transfer_format = $transfer_format; $query = " `options`='" . base64_encode(serialize($options)) . "', `type`='calendar', `change_type`='calendar', `hint`=" . $this->_db->Quote($hint) . ", `default_value`=" . $this->_db->Quote($default_value) . " "; break; case 'hidden': $allow_raw = JRequest::getInt('allow_encoding', 0) == 2 ? true : false; // 0 = filter on, 1 = allow html, 2 = allow raw $allow_html = JRequest::getInt('allow_encoding', 0) == 1 ? true : false; $default_value = JRequest::getVar('default_value', ''); $hint = ''; $options = new stdClass(); $options->allow_raw = $allow_raw; $options->allow_html = $allow_html; $query = " `options`='" . base64_encode(serialize($options)) . "', `type`='" . $type . "', `change_type`='" . $type . "', `hint`=" . $this->_db->Quote($hint) . ", `default_value`=" . $this->_db->Quote($default_value) . " "; break; } if ($query) { $custom_init_script = JRequest::getVar('custom_init_script', '', 'POST', 'STRING', JREQUEST_ALLOWRAW); $custom_action_script = JRequest::getVar('custom_action_script', '', 'POST', 'STRING', JREQUEST_ALLOWRAW); $custom_validation_script = JRequest::getVar('custom_validation_script', '', 'POST', 'STRING', JREQUEST_ALLOWRAW); $validation_message = JRequest::getVar('validation_message', ''); $validations = JRequest::getVar('validations', array()); $other = " `validations`=" . $this->_db->Quote(implode(',', $validations)) . ", "; $other .= " `custom_init_script`=" . $this->_db->Quote($custom_init_script) . ", "; $other .= " `custom_action_script`=" . $this->_db->Quote($custom_action_script) . ", "; $other .= " `custom_validation_script`=" . $this->_db->Quote($custom_validation_script) . ", "; $other .= " `validation_message`=" . $this->_db->Quote($validation_message) . ", "; $this->_db->setQuery("Update #__contentbuilder_elements Set {$other} {$query} Where id = " . $this->_element_id); $this->_db->query(); return true; } return false; }
function store() { $db = JFactory::getDBO(); $row = $this->getTable(); $form = $this->getForm(); $form_id = 0; $data = JRequest::get('post'); $data['details_template'] = JRequest::getVar('details_template', '', 'POST', 'STRING', JREQUEST_ALLOWRAW); $data['editable_template'] = JRequest::getVar('editable_template', '', 'POST', 'STRING', JREQUEST_ALLOWRAW); $data['details_prepare'] = JRequest::getVar('details_prepare', '', 'POST', 'STRING', JREQUEST_ALLOWRAW); $data['editable_prepare'] = JRequest::getVar('editable_prepare', '', 'POST', 'STRING', JREQUEST_ALLOWRAW); $data['intro_text'] = JRequest::getVar('intro_text', '', 'POST', 'STRING', JREQUEST_ALLOWHTML); $data['editable'] = JRequest::getVar('editable', '', 'POST', 'STRING', JREQUEST_ALLOWHTML); $data['email_admin_template'] = JRequest::getVar('email_admin_template', '', 'POST', 'STRING', JREQUEST_ALLOWRAW); $data['email_template'] = JRequest::getVar('email_template', '', 'POST', 'STRING', JREQUEST_ALLOWRAW); #### SETTINGS $data['create_articles'] = JRequest::getInt('create_articles', 0); $data['protect_upload_directory'] = JRequest::getInt('protect_upload_directory', 0); //$data['upload_directory'] = JPATH_SITE . DS . 'media/contentbuilder/upload'; //$data['protect_upload_directory'] = 1; jimport('joomla.filesystem.file'); jimport('joomla.filesystem.folder'); // determine if it contains a replacement $tokens = ''; $upl_ex = explode('|', $data['upload_directory']); $data['upload_directory'] = $upl_ex[0]; $is_relative = strpos(strtolower($data['upload_directory']), '{cbsite}') === 0; $tmp_upload_directory = $data['upload_directory']; $upload_directory = $is_relative ? str_replace(array('{CBSite}', '{cbsite}'), JPATH_SITE, $data['upload_directory']) : $data['upload_directory']; $data['upload_directory'] = $upload_directory; $protect = $data['protect_upload_directory']; // if not exissting, we create the fallback directory if (!JFolder::exists($upload_directory)) { if (!JFolder::exists(JPATH_SITE . DS . 'media' . DS . 'contentbuilder')) { JFolder::create(JPATH_SITE . DS . 'media' . DS . 'contentbuilder'); JFile::write(JPATH_SITE . DS . 'media' . DS . 'contentbuilder' . DS . 'index.html', $def = ''); } if (!JFolder::exists(JPATH_SITE . DS . 'media' . DS . 'contentbuilder' . DS . 'upload')) { JFolder::create(JPATH_SITE . DS . 'media' . DS . 'contentbuilder' . DS . 'upload'); JFile::write(JPATH_SITE . DS . 'media' . DS . 'contentbuilder' . DS . 'upload' . DS . 'index.html', $def = ''); if ($protect) { JFile::write(JPATH_SITE . DS . 'media' . DS . 'contentbuilder' . DS . 'upload' . DS . '.htaccess', $def = 'deny from all'); } } $data['upload_directory'] = JPATH_SITE . DS . 'media' . DS . 'contentbuilder' . DS . 'upload'; if ($is_relative) { $tmp_upload_directory = '{CBSite}' . DS . 'media' . DS . 'contentbuilder' . DS . 'upload'; } JFactory::getApplication()->enqueueMessage(JText::_('COM_CONTENTBUILDER_FALLBACK_UPLOAD_CREATED') . ' (' . DS . 'media' . DS . 'contentbuilder' . DS . 'upload' . ')', 'warning'); } if (isset($upl_ex[1])) { $tokens = '|' . $upl_ex[1]; } if ($data['protect_upload_directory'] && JFolder::exists(contentbuilder::makeSafeFolder($data['upload_directory']))) { if (!JFile::exists(contentbuilder::makeSafeFolder($data['upload_directory']) . DS . 'index.html')) { JFile::write(contentbuilder::makeSafeFolder($data['upload_directory']) . DS . 'index.html', $def = ''); } } if ($data['protect_upload_directory'] && JFolder::exists(contentbuilder::makeSafeFolder($data['upload_directory']))) { if (!JFile::exists(contentbuilder::makeSafeFolder($data['upload_directory']) . DS . '.htaccess')) { JFile::write(contentbuilder::makeSafeFolder($data['upload_directory']) . DS . '.htaccess', $def = 'deny from all'); } } else { if (JFile::exists(contentbuilder::makeSafeFolder($data['upload_directory']) . DS . '.htaccess')) { JFile::delete(contentbuilder::makeSafeFolder($data['upload_directory']) . DS . '.htaccess'); } } // reverting back to possibly including cbsite replacement $data['upload_directory'] = $tmp_upload_directory . $tokens; #### USERS $data['verification_required_view'] = JRequest::getInt('verification_required_view', 0); $data['verification_required_new'] = JRequest::getInt('verification_required_new', 0); $data['verification_required_edit'] = JRequest::getInt('verification_required_edit', 0); #### MISC $data['show_all_languages_fe'] = JRequest::getInt('show_all_languages_fe', 0); if (!$data['show_all_languages_fe'] && !$data['default_lang_code_ignore']) { JFactory::getApplication()->enqueueMessage(JText::_('COM_CONTENTBUILDER_LANGUAGE_WARNING'), 'warning'); } #### PERMISSIONS $gmap = array(); $config = array(); $config['permissions'] = array(); $config['permissions_fe'] = array(); $config['own'] = array(); $config['own_fe'] = array(); // backend if (isset($data['own']) && isset($data['own']['view']) && intval($data['own']['view']) == 1) { $config['own']['view'] = true; } if (isset($data['own']) && isset($data['own']['edit']) && intval($data['own']['edit']) == 1) { $config['own']['edit'] = true; } if (isset($data['own']) && isset($data['own']['delete']) && intval($data['own']['delete']) == 1) { $config['own']['delete'] = true; } if (isset($data['own']) && isset($data['own']['state']) && intval($data['own']['state']) == 1) { $config['own']['state'] = true; } if (isset($data['own']) && isset($data['own']['publish']) && intval($data['own']['publish']) == 1) { $config['own']['publish'] = true; } if (isset($data['own']) && isset($data['own']['fullarticle']) && intval($data['own']['fullarticle']) == 1) { $config['own']['fullarticle'] = true; } if (isset($data['own']) && isset($data['own']['listaccess']) && intval($data['own']['listaccess']) == 1) { $config['own']['listaccess'] = true; } if (isset($data['own']) && isset($data['own']['new']) && intval($data['own']['new']) == 1) { $config['own']['new'] = true; } if (isset($data['own']) && isset($data['own']['language']) && intval($data['own']['language']) == 1) { $config['own']['language'] = true; } if (isset($data['own']) && isset($data['own']['rating']) && intval($data['own']['rating']) == 1) { $config['own']['rating'] = true; } // frontend if (isset($data['own_fe']) && isset($data['own_fe']['view']) && intval($data['own_fe']['view']) == 1) { $config['own_fe']['view'] = true; } if (isset($data['own_fe']) && isset($data['own_fe']['edit']) && intval($data['own_fe']['edit']) == 1) { $config['own_fe']['edit'] = true; } if (isset($data['own_fe']) && isset($data['own_fe']['delete']) && intval($data['own_fe']['delete']) == 1) { $config['own_fe']['delete'] = true; } if (isset($data['own_fe']) && isset($data['own_fe']['state']) && intval($data['own_fe']['state']) == 1) { $config['own_fe']['state'] = true; } if (isset($data['own_fe']) && isset($data['own_fe']['publish']) && intval($data['own_fe']['publish']) == 1) { $config['own_fe']['publish'] = true; } if (isset($data['own_fe']) && isset($data['own_fe']['fullarticle']) && intval($data['own_fe']['fullarticle']) == 1) { $config['own_fe']['fullarticle'] = true; } if (isset($data['own_fe']) && isset($data['own_fe']['listaccess']) && intval($data['own_fe']['listaccess']) == 1) { $config['own_fe']['listaccess'] = true; } if (isset($data['own_fe']) && isset($data['own_fe']['new']) && intval($data['own_fe']['new']) == 1) { $config['own_fe']['new'] = true; } if (isset($data['own_fe']) && isset($data['own_fe']['language']) && intval($data['own_fe']['language']) == 1) { $config['own_fe']['language'] = true; } if (isset($data['own_fe']) && isset($data['own_fe']['rating']) && intval($data['own_fe']['rating']) == 1) { $config['own_fe']['rating'] = true; } jimport('joomla.version'); $version = new JVersion(); if (version_compare($version->getShortVersion(), '1.6', '<')) { $acl = JFactory::getACL(); $gmap = $acl->get_group_children_tree(null, 'USERS', false); } else { $db = JFactory::getDbo(); $query = 'SELECT CONCAT( REPEAT(\'..\', COUNT(parent.id) - 1), node.title) as text, node.id as value' . ' FROM #__usergroups AS node, #__usergroups AS parent' . ' WHERE node.lft BETWEEN parent.lft AND parent.rgt' . ' GROUP BY node.id' . ' ORDER BY node.lft'; $db->setQuery($query); $gmap = $db->loadObjectList(); } foreach ($gmap as $entry) { // backend if (isset($data['perms'][$entry->value]) && isset($data['perms'][$entry->value]['listaccess']) && intval($data['perms'][$entry->value]['listaccess']) == 1) { $config['permissions'][$entry->value]['listaccess'] = true; } if (isset($data['perms'][$entry->value]) && isset($data['perms'][$entry->value]['view']) && intval($data['perms'][$entry->value]['view']) == 1) { $config['permissions'][$entry->value]['view'] = true; } if (isset($data['perms'][$entry->value]) && isset($data['perms'][$entry->value]['new']) && intval($data['perms'][$entry->value]['new']) == 1) { $config['permissions'][$entry->value]['new'] = true; } if (isset($data['perms'][$entry->value]) && isset($data['perms'][$entry->value]['edit']) && intval($data['perms'][$entry->value]['edit']) == 1) { $config['permissions'][$entry->value]['edit'] = true; } if (isset($data['perms'][$entry->value]) && isset($data['perms'][$entry->value]['delete']) && intval($data['perms'][$entry->value]['delete']) == 1) { $config['permissions'][$entry->value]['delete'] = true; } if (isset($data['perms'][$entry->value]) && isset($data['perms'][$entry->value]['state']) && intval($data['perms'][$entry->value]['state']) == 1) { $config['permissions'][$entry->value]['state'] = true; } if (isset($data['perms'][$entry->value]) && isset($data['perms'][$entry->value]['publish']) && intval($data['perms'][$entry->value]['publish']) == 1) { $config['permissions'][$entry->value]['publish'] = true; } if (isset($data['perms'][$entry->value]) && isset($data['perms'][$entry->value]['fullarticle']) && intval($data['perms'][$entry->value]['fullarticle']) == 1) { $config['permissions'][$entry->value]['fullarticle'] = true; } if (isset($data['perms'][$entry->value]) && isset($data['perms'][$entry->value]['language']) && intval($data['perms'][$entry->value]['language']) == 1) { $config['permissions'][$entry->value]['language'] = true; } if (isset($data['perms'][$entry->value]) && isset($data['perms'][$entry->value]['rating']) && intval($data['perms'][$entry->value]['rating']) == 1) { $config['permissions'][$entry->value]['rating'] = true; } // frontend if (isset($data['perms_fe'][$entry->value]) && isset($data['perms_fe'][$entry->value]['listaccess']) && intval($data['perms_fe'][$entry->value]['listaccess']) == 1) { $config['permissions_fe'][$entry->value]['listaccess'] = true; } if (isset($data['perms_fe'][$entry->value]) && isset($data['perms_fe'][$entry->value]['view']) && intval($data['perms_fe'][$entry->value]['view']) == 1) { $config['permissions_fe'][$entry->value]['view'] = true; } if (isset($data['perms_fe'][$entry->value]) && isset($data['perms_fe'][$entry->value]['new']) && intval($data['perms_fe'][$entry->value]['new']) == 1) { $config['permissions_fe'][$entry->value]['new'] = true; } if (isset($data['perms_fe'][$entry->value]) && isset($data['perms_fe'][$entry->value]['edit']) && intval($data['perms_fe'][$entry->value]['edit']) == 1) { $config['permissions_fe'][$entry->value]['edit'] = true; } if (isset($data['perms_fe'][$entry->value]) && isset($data['perms_fe'][$entry->value]['delete']) && intval($data['perms_fe'][$entry->value]['delete']) == 1) { $config['permissions_fe'][$entry->value]['delete'] = true; } if (isset($data['perms_fe'][$entry->value]) && isset($data['perms_fe'][$entry->value]['state']) && intval($data['perms_fe'][$entry->value]['state']) == 1) { $config['permissions_fe'][$entry->value]['state'] = true; } if (isset($data['perms_fe'][$entry->value]) && isset($data['perms_fe'][$entry->value]['publish']) && intval($data['perms_fe'][$entry->value]['publish']) == 1) { $config['permissions_fe'][$entry->value]['publish'] = true; } if (isset($data['perms_fe'][$entry->value]) && isset($data['perms_fe'][$entry->value]['fullarticle']) && intval($data['perms_fe'][$entry->value]['fullarticle']) == 1) { $config['permissions_fe'][$entry->value]['fullarticle'] = true; } if (isset($data['perms_fe'][$entry->value]) && isset($data['perms_fe'][$entry->value]['language']) && intval($data['perms_fe'][$entry->value]['language']) == 1) { $config['permissions_fe'][$entry->value]['language'] = true; } if (isset($data['perms_fe'][$entry->value]) && isset($data['perms_fe'][$entry->value]['rating']) && intval($data['perms_fe'][$entry->value]['rating']) == 1) { $config['permissions_fe'][$entry->value]['rating'] = true; } } // remove perms if (isset($data['perms'])) { unset($data['perms']); } if (isset($data['perms_fe'])) { unset($data['perms_fe']); } if (isset($data['own'])) { unset($data['own']); } if (isset($data['own_fe'])) { unset($data['own_fe']); } ### PERMISSIONS END $list_states = $data['list_states']; unset($data['list_states']); $version = new JVersion(); if (version_compare($version->getShortVersion(), '1.6', '>=')) { $data['default_category'] = JRequest::getInt('sectioncategories', 0); } else { // Joomla 1.5 begin $sectioncategory = explode(':', JRequest::getVar('sectioncategories', '')); $data['default_section'] = intval($sectioncategory[0]); $data['default_category'] = intval(isset($sectioncategory[1]) ? $sectioncategory[1] : 0); // Joomla 1.5 end } $data['edit_by_type'] = JRequest::getInt('edit_by_type', 0); if ($data['edit_by_type'] && $data['type'] == 'com_breezingforms') { if (isset($data['type_name'])) { $data['editable_template'] = "{BreezingForms: " . $data['type_name'] . "}"; } } $data['act_as_registration'] = JRequest::getInt('act_as_registration', 0); if ($data['edit_by_type'] && $data['act_as_registration']) { $data['act_as_registration'] = 0; JFactory::getApplication()->enqueueMessage(JText::_('COM_CONTENTBUILDER_ACT_AS_REGISTRATION_WARNING'), 'warning'); } if ($data['act_as_registration'] && (!$data['registration_name_field'] || !$data['registration_username_field'] || !$data['registration_email_field'] || !$data['registration_email_repeat_field'] || !$data['registration_password_field'] || !$data['registration_password_repeat_field'])) { JFactory::getApplication()->enqueueMessage(JText::_('COM_CONTENTBUILDER_ACT_AS_REGISTRATION_MISSING_FIELDS_WARNING'), 'warning'); } $data['email_notifications'] = JRequest::getInt('email_notifications', 0); $data['limited_article_options'] = JRequest::getInt('limited_article_options', 0); $data['limited_article_options_fe'] = JRequest::getInt('limited_article_options_fe', 0); $data['own_only'] = JRequest::getInt('own_only', 0); $data['own_only_fe'] = JRequest::getInt('own_only_fe', 0); $data['config'] = base64_encode(serialize($config)); contentbuilder::createBackendMenuItem($form->id, $form->name, JRequest::getInt('display_in', 0)); if (JRequest::getBool('create_sample', false)) { $data['details_template'] .= contentbuilder::createDetailsSample($form->id, $form->form, $data['theme_plugin']); } if (JRequest::getBool('create_editable_sample', false)) { $data['editable_template'] .= contentbuilder::createEditableSample($form->id, $form->form, $data['theme_plugin']); } if (JRequest::getBool('email_admin_create_sample', false)) { $data['email_admin_template'] .= contentbuilder::createEmailSample($form->id, $form->form, JRequest::getBool('email_admin_html', false)); } if (JRequest::getBool('email_create_sample', false)) { $data['email_template'] .= contentbuilder::createEmailSample($form->id, $form->form, JRequest::getBool('email_html', false)); } if (!JRequest::getBool('show_filter', false)) { $data['show_filter'] = 0; } if (!JRequest::getBool('show_records_per_page', false)) { $data['show_records_per_page'] = 0; } if (!JRequest::getBool('metadata', false)) { $data['metadata'] = 0; } if (!JRequest::getBool('export_xls', false)) { $data['export_xls'] = 0; } if (!JRequest::getBool('print_button', false)) { $data['print_button'] = 0; } if (JRequest::getVar('tag', '') == '') { $data['tag'] = 'default'; } if ($form->form) { $data['title'] = $form->form->getPageTitle(); } $last_update = JFactory::getDate(); $last_update = CBCompat::toSql($last_update); $data['last_update'] = $last_update; if (!$row->bind($data)) { $this->setError($this->_db->getErrorMsg()); return false; } if (!$row->check()) { $this->setError($this->_db->getErrorMsg()); return false; } $form_id = 0; $storeRes = $row->store(); if (!$storeRes) { $this->setError($this->_db->getErrorMsg()); return false; } else { if (intval($data['id']) != 0) { $form_id = intval($data['id']); foreach ($list_states as $state_id => $item) { if (intval($state_id)) { $db->setQuery("Update #__contentbuilder_list_states Set published = " . $db->Quote(isset($item['published']) && $item['published'] ? 1 : 0) . ", `title` = " . $db->Quote(stripslashes(strip_tags($item['title']))) . ", color = " . $db->Quote(stripslashes(strip_tags($item['color']))) . ", action = " . $db->Quote($item['action']) . " Where form_id = {$form_id} And id = " . intval($state_id)); $db->query(); } } // FALLBACK IF SOMEHOW REMOVED FROM DATABASE if (count($list_states) < count($this->_default_list_states)) { $add_count = count($this->_default_list_states) - count($list_states); for ($i = 0; $i <= $add_count; $i++) { $db->setQuery("Insert Into #__contentbuilder_list_states (form_id,`title`,color,action) Values ({$form_id}," . $db->Quote('State') . "," . $db->Quote('FFFFFF') . "," . $db->Quote('') . ")"); $db->query(); } } } else { $form_id = $this->_db->insertid(); foreach ($list_states as $item) { $db->setQuery("Insert Into #__contentbuilder_list_states (form_id,`title`,color,action, published) Values ({$form_id}," . $db->Quote(stripslashes(strip_tags($item['title']))) . "," . $db->Quote($item['color']) . "," . $db->Quote($item['action']) . "," . $db->Quote(isset($item['published']) && $item['published'] ? 1 : 0) . ")"); $db->query(); } // FALLBACK IF SOMEHOW REMOVED FROM DATABASE if (count($list_states) < count($this->_default_list_states)) { $add_count = count($this->_default_list_states) - count($list_states); for ($i = 0; $i <= $add_count; $i++) { $db->setQuery("Insert Into #__contentbuilder_list_states (form_id,`title`,color,action) Values ({$form_id}," . $db->Quote('State') . "," . $db->Quote('FFFFFF') . "," . $db->Quote('') . ")"); $db->query(); } } } // is the list states empty? $db->setQuery("Select id From #__contentbuilder_list_states Where form_id = " . $form_id . " Limit 1"); $has_states = $db->loadResult(); if (!$has_states) { $add_count = count($this->_default_list_states); for ($i = 0; $i <= $add_count; $i++) { $db->setQuery("Insert Into #__contentbuilder_list_states (form_id,`title`,color,action) Values ({$form_id}," . $db->Quote('State') . "," . $db->Quote('FFFFFF') . "," . $db->Quote('') . ")"); $db->query(); } } } $row->reorder(); $item_wrapper = JRequest::getVar('itemWrapper', '', 'POST', 'ARRAY', JREQUEST_ALLOWRAW); $wordwrap = JRequest::getVar('itemWordwrap', array(), 'post', 'array'); $labels = JRequest::getVar('itemLabels', array(), 'post', 'array'); $order_types = JRequest::getVar('itemOrderTypes', array(), 'post', 'array'); JArrayHelper::toInteger($wordwrap); foreach ($item_wrapper as $elementId => $value) { $this->_db->setQuery("Update #__contentbuilder_elements Set `order_type` = " . $this->_db->Quote($order_types[$elementId]) . ", `label`= " . $this->_db->Quote($labels[$elementId]) . ", `wordwrap` = " . $this->_db->Quote($wordwrap[$elementId]) . ", `item_wrapper` = " . $this->_db->Quote(trim($value)) . " Where form_id = {$form_id} And id = " . $elementId); $this->_db->query(); } return $form_id; }