/** * shows the details of the entry as pdf * * @return string pdf-string */ private function topdf() { // check cid and pid given if ($this->get('cid') !== false && $this->get('pid') !== false) { // check cid and pid exists if (Calendar::check_id($this->get('cid')) && Preset::check_preset($this->get('pid'), 'calendar')) { // check if announcement has values if (Calendar::check_ann_value($this->get('cid'))) { // prepare return $return = ''; // get preset $preset = new Preset($this->get('pid'), 'calendar', $this->get('cid')); // smarty $sA = new JudoIntranetSmarty(); // get calendar $calendar = new Calendar($this->get('cid')); // prepare marker-array $announcement = array('version' => date('dmy')); // add calendar-fields to array $calendar->add_marks($announcement); // add field-names and -values to array $preset->add_marks($announcement); // smarty $sA->assign('a', $announcement); // check marks in values foreach ($announcement as $k => $v) { if (preg_match('/\\{\\$a\\..*\\}/U', $v)) { $announcement[$k] = $sA->fetch('string:' . $v); } } // smarty $sA->assign('a', $announcement); $pdf_out = $sA->fetch($preset->get_path()); // get HTML2PDF-object $pdf = new HTML2PDF('P', 'A4', 'de', true, 'UTF-8', array(0, 0, 0, 0)); // convert $pdf->writeHTML($pdf_out, false); // output $pdf_filename = $this->replace_umlaute(html_entity_decode($sA->fetch('string:' . $preset->get_filename()), ENT_XHTML, 'ISO-8859-1')); $pdf->Output($pdf_filename, 'D'); // return return $return; } else { // error $errno = $GLOBALS['Error']->error_raised('AnnNotExists', 'entry:' . $this->get('cid') . '|' . $this->get('pid'), $this->get('cid') . '|' . $this->get('pid')); $GLOBALS['Error']->handle_error($errno); return $GLOBALS['Error']->to_html($errno); } } else { // error $errno = $GLOBALS['Error']->error_raised('WrongParams', 'entry:cid_or_pid', 'cid_or_pid'); $GLOBALS['Error']->handle_error($errno); return $GLOBALS['Error']->to_html($errno); } } else { // error $errno = $GLOBALS['Error']->error_raised('MissingParams', 'entry:cid_or_pid', 'cid_or_pid'); $GLOBALS['Error']->handle_error($errno); return $GLOBALS['Error']->to_html($errno); } }
/** * read_preset_form generates a quickform-object to choose the announcement-preset, * if validated redirect to announcement.php?id=new&cid=$id * * @param object $calendar the actual calendarentry * @return object quickform-object to choose the preset, if validated redirect to new announcement */ private function read_preset_form(&$calendar) { // check sort or from/to $sort = $from = $to = ''; if ($this->get('sort') !== false) { $sort = "&sort=" . $this->get('sort'); } if ($this->get('from') !== false) { $from = "&from=" . $this->get('from'); } if ($this->get('to') !== false) { $to = "&to=" . $this->get('to'); } // form-object $form = new HTML_QuickForm2('choose_preset_' . $calendar->get_id(), 'post', array('name' => 'choose_preset_' . $calendar->get_id(), 'action' => 'calendar.php?id=listall' . $sort . $from . $to)); // add selectfield $select = $form->addSelect('preset', array()); $options = array(0 => parent::lang('class.CalendarView#read_preset_form#select#choosePreset')); $options = $options + Preset::read_all_presets('calendar'); $select->loadOptions($options); $select->addRule('callback', parent::lang('class.CalendarView#read_preset_form#rule#select'), array($this, 'callback_check_select')); // add submit $submit = $form->addSubmit('submit', array('value' => parent::lang('class.CalendarView#read_preset_form#select#submit'))); // validate if ($form->validate()) { // get data $data = $form->getValue(); // insert preset_id in calendar-entry $update = array('preset_id' => $data['preset']); $calendar->update($update); $calendar->write_db('update'); // redirect to listall header('Location: calendar.php?id=listall' . $sort . $from . $to); exit; } else { return $form; } }
/** * edit returns the protocoltext as html-string for the edit page * * @param int $pid entry-id for protocol * @return string html-string with the protocoltext */ private function edit($pid) { // check rights if (Rights::check_rights($pid, 'protocol', true)) { // pagecaption $this->tpl->assign('pagecaption', parent::lang('class.ProtocolView#page#caption#edit')); // get protocol-object $protocol = new Protocol($pid); // smarty-templates $sD = new JudoIntranetSmarty(); // get rights $pRights = $protocol->get_rights()->get_rights(); // check public access $kPublicAccess = array_search(0, $pRights); $publicAccess = false; if ($kPublicAccess !== false) { $publicAccess = true; unset($pRights[$kPublicAccess]); } // formular $form = new HTML_QuickForm2('editProtocol', 'post', array('name' => 'editProtocol', 'action' => 'protocol.php?id=edit&pid=' . $pid)); // get correction status and correctors $correctable = $protocol->get_correctable(false); $datasource = array('date' => $protocol->get_date('Y-m-d'), 'type' => $protocol->get_type('i'), 'location' => $protocol->get_location(), 'member0' => $protocol->get_member(false, 0), 'member1' => $protocol->get_member(false, 1), 'member2' => $protocol->get_member(false, 2), 'protocol' => $protocol->get_protocol(), 'preset' => $protocol->get_preset()->get_id(), 'recorder' => $protocol->get_recorder(), 'correction' => $correctable['status'], 'correctors' => $correctable['correctors']); // add public access if ($publicAccess) { $datasource['public'] = 1; } // add datasource $form->addDataSource(new HTML_QuickForm2_DataSource_Array($datasource)); // renderer $renderer = HTML_QuickForm2_Renderer::factory('default'); $renderer->setOption('required_note', parent::lang('class.ProtocolView#entry#form#requiredNote')); // elements // correction // radio $radio0 = $form->addElement('radio', 'correction', array('value' => 0)); $radio0->setContent(parent::lang('class.ProtocolView#entry#form#correctionInWork')); $radio0->setLabel(parent::lang('class.ProtocolView#entry#form#correction') . ':'); $radio1 = $form->addElement('radio', 'correction', array('value' => 1)); $radio1->setContent(parent::lang('class.ProtocolView#entry#form#correctionCorrect')); $radio2 = $form->addElement('radio', 'correction', array('value' => 2)); $radio2->setContent(parent::lang('class.ProtocolView#entry#form#correctionFinished')); // select correctors // get all users and put id and name to options $users = $_SESSION['user']->return_all_users(array($_SESSION['user']->get_userinfo('username'))); $options = array(); foreach ($users as $user) { $options[$user->get_userinfo('id')] = $user->get_userinfo('name'); } $correctors = $form->addElement('select', 'correctors', array('multiple' => 'multiple', 'size' => 5)); $correctors->setLabel(parent::lang('class.ProtocolView#entry#form#correctors') . ':'); $correctors->loadOptions($options); // preset $options = array(0 => '--') + Preset::read_all_presets('protocol'); $preset = $form->addElement('select', 'preset'); $preset->setLabel(parent::lang('class.ProtocolView#entry#form#preset') . ':'); $preset->loadOptions($options); $preset->addRule('required', parent::lang('class.ProtocolView#entry#rule#required.preset')); $preset->addRule('callback', parent::lang('class.ProtocolView#entry#rule#check.select'), array($this, 'callback_check_select')); // date $date = $form->addElement('text', 'date', array()); $date->setLabel(parent::lang('class.ProtocolView#entry#form#date') . ':'); // rule $date->addRule('required', parent::lang('class.ProtocolView#entry#rule#required.date')); $date->addRule('callback', parent::lang('class.ProtocolView#entry#rule#check.date'), array($this, 'callback_check_date')); // add jquery-datepicker // smarty $sD->assign('elementid', 'date-0'); $sD->assign('dateFormat', 'yy-mm-dd'); $sD->assign('dateValue', $protocol->get_date('y-m-d')); $this->add_jquery($sD->fetch('smarty.js-datepicker.tpl')); // type $options = array_merge(array(0 => '--'), Protocol::return_types()); $type = $form->addElement('select', 'type'); $type->setLabel(parent::lang('class.ProtocolView#entry#form#type') . ':'); $type->loadOptions($options); $type->addRule('required', parent::lang('class.ProtocolView#entry#rule#required.type')); $type->addRule('callback', parent::lang('class.ProtocolView#entry#rule#check.select'), array($this, 'callback_check_select')); // location $location = $form->addElement('text', 'location'); $location->setLabel(parent::lang('class.ProtocolView#entry#form#location') . ':'); $location->addRule('required', parent::lang('class.ProtocolView#entry#rule#required.location')); $location->addRule('regex', parent::lang('class.ProtocolView#entry#rule#regexp.allowedChars') . ' [' . $_SESSION['GC']->get_config('name.desc') . ']', $_SESSION['GC']->get_config('name.regexp')); // member0 $member = $form->addElement('text', 'member0'); $member->setLabel(parent::lang('class.ProtocolView#entry#form#member0') . ':'); $member->addRule('regex', parent::lang('class.ProtocolView#entry#rule#regexp.allowedChars') . ' [' . $_SESSION['GC']->get_config('text.desc') . ']', $_SESSION['GC']->get_config('text.regexp')); // member1 $member = $form->addElement('text', 'member1'); $member->setLabel(parent::lang('class.ProtocolView#entry#form#member1') . ':'); $member->addRule('regex', parent::lang('class.ProtocolView#entry#rule#regexp.allowedChars') . ' [' . $_SESSION['GC']->get_config('text.desc') . ']', $_SESSION['GC']->get_config('text.regexp')); // member2 $member = $form->addElement('text', 'member2'); $member->setLabel(parent::lang('class.ProtocolView#entry#form#member2') . ':'); $member->addRule('regex', parent::lang('class.ProtocolView#entry#rule#regexp.allowedChars') . ' [' . $_SESSION['GC']->get_config('text.desc') . ']', $_SESSION['GC']->get_config('text.regexp')); // recorder $recorder = $form->addElement('text', 'recorder'); $recorder->setLabel(parent::lang('class.ProtocolView#entry#form#recorder') . ':'); $recorder->addRule('required', parent::lang('class.ProtocolView#entry#rule#required.recorder')); $recorder->addRule('regex', parent::lang('class.ProtocolView#entry#rule#regexp.allowedChars') . ' [' . $_SESSION['GC']->get_config('name.desc') . ']', $_SESSION['GC']->get_config('name.regexp')); // protocol text $protocolTA = $form->addElement('textarea', 'protocol'); $protocolTA->setLabel(parent::lang('class.ProtocolView#entry#form#protocol') . ':'); $protocolTA->addRule('regex', parent::lang('class.ProtocolView#entry#rule#regexp.allowedChars') . ' [' . $_SESSION['GC']->get_config('textarea.desc') . ']', $_SESSION['GC']->get_config('textarea.regexp')); // js tiny_mce $tmce = array('element' => 'protocol-0', 'css' => 'templates/protocols/tmce_' . $protocol->get_preset()->get_path() . '.css', 'transitem' => parent::lang('class.ProtocolView#new_entry#tmce#item'), 'transdecision' => parent::lang('class.ProtocolView#new_entry#tmce#decision')); // smarty $this->tpl->assign('tmce', $tmce); // checkbox public $public = $form->addElement('checkbox', 'public'); $public->setLabel(parent::lang('class.ProtocolView#entry#form#public') . ':'); // submit-button $form->addElement('submit', 'submit', array('value' => parent::lang('class.ProtocolView#entry#form#submitButton'))); // validate if ($form->validate()) { // get form data $data = $form->getValue(); // set owner $data['owner'] = $protocol->get_owner(); // check $data['rights'] if (!isset($data['rights'])) { $data['rights'] = array(); } // merge with own groups, add admin $data['rights'] = array_merge($data['rights'], $_SESSION['user']->get_groups(), array(1)); // add public access $kPublicAccess = array_search(0, $data['rights']); if ($kPublicAccess === false && isset($data['public']) && $data['public'] == 1) { $data['rights'][] = 0; } elseif ($kPublicAccess !== false && !isset($data['public'])) { unset($data['rights'][$kPublicAccess]); } if (!isset($data['correctors'])) { $data['correctors'] = array(); } // get user and put to update $correctionString = $data['correction'] . '|'; foreach ($data['correctors'] as $userid) { $correctionString .= $userid . ','; } if (count($data['correctors']) > 0) { $correctionString = substr($correctionString, 0, -1); } $protocolUpdate = array('date' => $data['date'], 'type' => $data['type'], 'location' => $data['location'], 'member' => $data['member0'] . '|' . $data['member1'] . '|' . $data['member2'], 'protocol' => $data['protocol'], 'preset' => new Preset($data['preset'], 'protocol', $protocol->get_id()), 'recorder' => $data['recorder'], 'correctable' => $correctionString, 'rights' => $data['rights'], 'owner' => $data['owner'], 'valid' => 1); // update protocol $protocol->update($protocolUpdate); // write to db $protocol->writeDb('update'); // smarty $sCD = new JudoIntranetSmarty(); $sCD->assign('data', $protocol->details()); return $sCD->fetch('smarty.protocol.details.tpl'); } else { return $form->render($renderer); } } else { // error $errno = $GLOBALS['Error']->error_raised('NotAuthorized', 'entry:' . $this->get('id'), $this->get('id')); $GLOBALS['Error']->handle_error($errno); return $GLOBALS['Error']->to_html($errno); } }
public static function EditPkg($pkgid) { $xtpl = self::$xtpl; $pkg = Package::getInstance(); $preset = Preset::getInstance(); $xtpl->assign('PRODUCTSCURR', 'current'); $xtpl->assign('PKGMANAGECURR', 'current'); if (!is_numeric($pkgid)) { $xtpl->assign('ATTENTIONMSG', 'Package ID is not set'); $xtpl->parse('main.attention'); } else { $pkgdata = $pkg->FetchData($pkgid); $presets = $preset->GetButch('', "`status` = '1'"); for ($i = 0; $i < count($presets); $i++) { if ($pkgdata['presetid'] == $presets[$i]['id']) { $xtpl->assign('DEFAULT', 'selected="selected"'); } else { $xtpl->assign('DEFAULT', ''); } $xtpl->assign('PRESET', $presets[$i]); $xtpl->parse('main.editpkg.preset'); } $xtpl->assign('PKG', $pkgdata); $xtpl->assign('DEF' . $pkgdata['paytype'], 'selected="selected"'); $xtpl->parse('main.editpkg'); } $xtpl->parse('main'); $xtpl->out('main'); }
public function FindModuleID($by = 'orderid') { switch ($by) { case 'orderid': if (!is_numeric($this->orderid)) { throw new Exception("Order ID is not set or set not correctly"); } else { $order = $this->FetchData($this->orderid); //var_dump($order); if (isset($order['productid'])) { $pkg = Package::getInstance()->FetchData($order['productid']); if (!isset($pkg['presetid'])) { return false; } $preset = Preset::getInstance()->FetchData($pkg['presetid']); if (is_array($pkg) && is_array($preset)) { $sg = ServerGroups::getInstance(); $sgdata = $sg->FetchData($preset['groupid']); return $sgdata['moduleid']; } else { return false; } } else { return false; } } break; case 'pkgid': if (!is_numeric($this->pkgid)) { throw new Exception("Package ID is not set or set incorrectly"); } else { $presetid = Package::getInstance()->FetchData($this->pkgid)->presetid; $sg = ServerGroups::getInstance(); $sg->id = Preset::getInstance()->FetchData($presetid)->groupid; return $sg->FetchData()->moduleid; } break; default: return false; } }
public function Create($orderid) { $order = Order::getInstance(); $sm = ServerModule::getInstance(); $preset = Preset::getInstance(); $order->orderid = $orderid; $orderdata = $order->FetchData($orderid); $pkg = Package::getInstance()->FetchData($orderdata['productid']); $preset->presetid = $pkg['presetid']; $sm->id = $order->FindModuleID(); $presetdata = $preset->FetchData($preset->presetid); if (!is_array($orderdata['accessdata'])) { $orderdata['accessdata'] = serialize($this->FillCreateArray($sm->getArray('Create'), $orderdata['accountid'])); $order->Update('accessdata', $orderdata['accessdata'], $orderid); } if (!is_numeric($orderdata['serverid']) || $orderdata['serverid'] == '-1') { $serverdata = $this->selectServerFromGroup($presetdata['groupid']); $order->Update('serverid', $serverdata['ServerID'], $orderid); } else { $server = Server::getInstance(); $serverdata = $server->FetchData($orderdata['serverid']); } if (strlen($serverdata['accessdata']) < 5) { throw new Exception("Server #" . $orderdata['serverid'] . " is not configured"); } return $sm->CreateService(unserialize($serverdata['accessdata']), unserialize($orderdata['accessdata']), $preset->getOptions()); }
break; case 'updatecustomer': $user = User::getInstance(); if (isset($_POST['password'])) { $_POST['password'] = md5($_POST['password']); } try { $user->BatchUpdate($_POST, $_POST['userid']); } catch (Exception $e) { Page::$messages[] = array('type' => 'attention', nl2br("Fatal error catched: " . $e)); Page::message(); } Page::EditCustomer($_POST['userid']); break; case 'delpres': $pres = Preset::getInstance(); try { $pres->Delete($_REQUEST['presid']); } catch (Exception $e) { Page::$messages[] = array('type' => 'attention', nl2br("Fatal error catched: " . $e)); Page::message(); } Page::Presets(); break; case 'updateservergroup': $sg = ServerGroups::getInstance(); try { $sg->BatchUpdate($_POST, $_POST['groupid']); } catch (Exception $e) { Page::$messages[] = array('type' => 'attention', nl2br("Fatal error catched: " . $e)); Page::message();