/**
  * 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());
 }
Beispiel #7
0
     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();