"; } } } /** * Stammt eigentlich aus dem alternativen url_helper. * Fügt die Messages und Errors aus $ci->data["messages"] und $ci->data["errors"] in die Session-Flashvariablen ein, * damit sie nach dem Redirect abgefragt werden können. * Falls bereits Ausgaben gesendet wurden, erscheint eine Meldung mit dem Link und ein Javascript mit einer automatischen Weiterleitung (just in case...) * * * @param unknown_type $uri * @param unknown_type $method * @param unknown_type $http_response_code */ function redirect($uri = '', $method = 'location', $http_response_code = 302) { $CI =& get_instance(); if (isset($CI->data["messages"]) && !empty($CI->data["messages"])) $CI->session->set_flashdata("messages", $CI->data["messages"]); if (isset($CI->data["errors"]) && !empty($CI->data["errors"])) $CI->session->set_flashdata("errors", $CI->data["errors"]); if ( ! preg_match('#^https?://#i', $uri)) { $uri = base_url().$uri; } // die($uri); if (headers_sent()) { print "

Headerdata has already been sent. This is no serious error. Just click here to continue: $uri"; print " "; } else { switch($method) { case 'refresh' : header("Refresh:0;url=".$uri); break; default : header("Location: ".$uri, TRUE, $http_response_code); break; } } exit; } /** * Entspricht die aktuelle IP-Adresse dem abzufragneden Parameter? * * @param unknown_type $ip * @return unknown */ function is_ip($ip) { return $_SERVER['REMOTE_ADDR']==$ip; } /** * Liefert das Land zu einer IP-Adresse * Provider 0 = getPos.de, Provider 1 = geobytes, 2=ipadressapi.com * * @param unknown_type $ip * @param unknown_type $provider * @param unknown_type $return_all * @return unknown */ function country_fromip($ip, $provider = 0, $return_all=false, &$debug = array()) { $return = false; // print "Testing: $ip"; if ($_SERVER['HTTP_HOST']=="pmserver") $ip = "95.88.142.69"; // Deutschland if ($_SERVER['REMOTE_ADDR']=="95.88.142.69") { // $ip = "295.88.142.69"; // Deutschland // $ip = "213.164.6.215"; // Österreich // $ip = "78.30.177.253"; // Serbien // $ip = "87.119.200.235"; // Schweiz // $ip = "222.108.40.148"; // Südkorea // $ip = "122.35.116.50"; // KR // $ip = "82.212.72.28"; // JO // $ip = "213.254.223.69"; // GR // $ip = "194.153.110.160"; // FRankreich // $ip = "62.72.121.183"; // Belgien // $ip = "98.129.126.138"; // US // return "SG"; // return "JO"; } /** * Methode: getPos */ if ($provider===0) { $url = "http://services.getpos.de/ip2loc.asmx/GetIPCountry?UserName=pixelmechanics&Password=20pm10&IPAddress=$ip"; $url = "http://services.getpos.de/clientObject.asmx/IPLocation?AccessId=5b4c4023-7543-43f2-b955-ca405133262e&IPAddress=$ip"; $tags = file_get_contents($url); $tags = html_entity_decode($tags); $xml = simplexml_load_string($tags); $debug["getPos"] = array($url); $code = $xml->Returncode.""; if (((int)$xml->Returncode."")==200) { $return = $xml->Countrycode.""; if ($return_all) $return = $xml; // ->getPos } else { if ($return_all) $return = $xml; // ->getPos $provider = 1; } $debug["getPos"][] = htmlspecialchars($tags); } /** * Methode: getPos2 */ if ($provider===0.5) { $url = "http://services.getpos.de/ip2loc.asmx/GetIPCountry?UserName=pixelmechanics&Password=20pm10&IPAddress=$ip"; $tags = file_get_contents($url); $tags = html_entity_decode($tags); $xml = simplexml_load_string($tags); $debug["getPos"] = array($url); if ($xml->getpos->returncode==104) { if ($return_all) $return = $xml; // ->getPos $provider = 1; } else { $cc = $xml->getpos->country->code.""; $return = $cc; if ($return_all) $return = $xml; // ->getPos } $debug["getPos"][] = htmlspecialchars($tags); } /** * METHODE http://www.hostip.info/use.html * @return: zu testen */ if ($provider===1) { $debug[] = "


"; $url = "http://api.hostip.info/get_html.php?ip=$ip"; $url = "http://api.hostip.info/?ip=$ip"; // $data = file_get_contents($url); $curl = curl_init () or die ('curl_init() failed'); curl_setopt ($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt ($curl, CURLOPT_TIMEOUT, 5); curl_setopt ($curl, CURLOPT_URL, $url); $data = curl_exec ($curl); curl_close ($curl); // $data = html_entity_decode($data); $xml = simplexml_load_string($data); $output = explode("", $data); $output = explode("", $output[1]); $output[0] = $output[0].""; $debug["hostIP.info"] = array($url); if ($output[0]=="XX" || $output[0]=="EU") { $debug["hostIP.info"][] = "NICHT FUNKTIONIERT"; $provider = 2; } else { $return = $output[0]; if ($return_all) $return = htmlspecialchars($data); } $debug["hostIP.info"][] = htmlspecialchars($data); } /** * METHODE geobytes * @return: hat bisher noch kein Ergebnis geliefert */ if ($provider===2) { $debug[] = "
"; $url = "http://www.geobytes.com/IpLocator.htm?GetLocation&template=php3.txt&IpAddress=".$ip; $tags = get_meta_tags($url); $debug["geobytes"] = array($url); if (isset($tags["regioncode"])) { $return = $tags["regioncode"]; if ($return_all) $return = $tags; } else { $provider = 3; } $debug["geobytes"][] = htmlspecialchars($tags); } /** * METHODE http://www.ipaddressapi.com/ * @return: zu testen */ if ($provider===3) { $debug[] = "
"; $url = "http://www.ipaddressapi.com/l/14d9eb5dc94952a10fc4125e53b87a014fbcc630bc43?h=$ip"; // $data = file_get_contents($url); $curl = curl_init () or die ('curl_init() failed'); curl_setopt ($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt ($curl, CURLOPT_TIMEOUT, 5); curl_setopt ($curl, CURLOPT_URL, $url); $data = curl_exec ($curl); curl_close ($curl); $debug["ipaddressapi.com"] = array($url); if ($data === false || $data === '') { // $debug[] = ($data); } else { $fields = explode (',', str_replace('"', '', $data)); // parse result into array if ($return_all) { $fields["url"] = $url; $return = $fields; } else { // $debug[] = ($fields); // $return = $fields[2]; } } $debug["ipaddressapi.com"][] = htmlspecialchars($data); } if ($return==false && (strpos($_SERVER["PHP_SELF"], "/cron/")===0) ) { $text = implode("\n", $debug); $text .= print_r($_SERVER, 1); $text .= print_r($_COOKIE, 1); @mail("rh@pixelmechanics.de", "Ländererkennung FEHLER Stabilo Boss-Wanted", $text); $return = "PM"; } return $return; } /** * VON http://stackoverflow.com/questions/11/how-do-i-calculate-relative-time * Konvertiert ein Datum zu "vor ... Tagen/Minuten/Monaten/..." * */ define("SECOND", 1); define("MINUTE", 60 * SECOND); define("HOUR", 60 * MINUTE); define("DAY", 24 * HOUR); define("MONTH", 30 * DAY); function relativeTime($time) { $delta = time() - $time; if ($delta < 1 * MINUTE) { return $delta == 1 ? "one second" : $delta . " seconds "; } if ($delta < 2 * MINUTE) { return "a minute"; } if ($delta < 45 * MINUTE) { return floor($delta / MINUTE) . " minutes"; } if ($delta < 90 * MINUTE) { return "an hour"; } if ($delta < 24 * HOUR) { return floor($delta / HOUR) . " hours"; } if ($delta < 48 * HOUR) { return "one day"; } if ($delta < 30 * DAY) { return floor($delta / DAY) . " days"; } if ($delta < 12 * MONTH) { $months = floor($delta / DAY / 30); return $months <= 1 ? "one month" : $months . " months"; } else { $years = floor($delta / DAY / 365); return $years <= 1 ? "one year" : $years . " years"; } } function timesince($original, $ci = null) { // array of time period chunks $chunks = array( array(60 * 60 * 24 * 365 , 'Jahr', "Jahre"), array(60 * 60 * 24 * 30 , 'Monat', "Monate"), array(60 * 60 * 24 * 7, 'Woche', "Wochen"), array(60 * 60 * 24 , 'Tag', "Tage"), array(60 * 60 , 'Stunde', "Stunden"), array(60 , 'Minute', "Minuten"), ); $today = time(); /* Current unix time */ $since = $today - $original; /* if($since > 604800) { $print = date("M jS", $original); if($since > 31536000) { $print .= ", " . date("Y", $original); } return $print; } */ // $j saves performing the count function each time around the loop for ($i = 0, $j = count($chunks); $i < $j; $i++) { $seconds = $chunks[$i][0]; if (isset($ci)) { // Lädt die Texte aus den Sprachdateien für die Übersetzung $name = $ci->lang->line($chunks[$i][1]); $names = $ci->lang->line($chunks[$i][2]); } else { $name = $chunks[$i][1]; $names = $chunks[$i][2]; } // finding the biggest chunk (if the chunk fits, break) if (($count = floor($since / $seconds)) != 0) { break; } } $print = ($count == 1) ? '1 '.$name : "$count $names"; return $print; } /** * Verzeichnis rekursiv löschen ( inkl. Dateien ) **/ function rrmdir($dir) { foreach(glob($dir . '/*') as $file) { if(is_dir($file)) rrmdir($file); else unlink($file); } rmdir($dir); } /** * Browsersprache ermitteln anhand der Einstellungen von $_SERVER['HTTP_ACCEPT_LANGUAGE'] * von http://aktuell.de.selfhtml.org/artikel/php/httpsprache/ */ function lang_getfrombrowser ($allowed_languages, $default_language, $lang_variable = null, $strict_mode = true) { // $_SERVER['HTTP_ACCEPT_LANGUAGE'] verwenden, wenn keine Sprachvariable mitgegeben wurde if ($lang_variable === null) { $lang_variable = $_SERVER['HTTP_ACCEPT_LANGUAGE']; } // preprint($lang_variable); // wurde irgendwelche Information mitgeschickt? if (empty($lang_variable)) { // Nein? => Standardsprache zurückgeben return $default_language; } // Den Header auftrennen $accepted_languages = preg_split('/,\s*/', $lang_variable); // Die Standardwerte einstellen $current_lang = $default_language; $current_q = 0; // Nun alle mitgegebenen Sprachen abarbeiten foreach ($accepted_languages as $accepted_language) { // Alle Infos über diese Sprache rausholen $res = preg_match ('/^([a-z]{1,8}(?:-[a-z]{1,8})*)'. '(?:;\s*q=(0(?:\.[0-9]{1,3})?|1(?:\.0{1,3})?))?$/i', $accepted_language, $matches); // war die Syntax gültig? if (!$res) { // Nein? Dann ignorieren continue; } // Sprachcode holen und dann sofort in die Einzelteile trennen $lang_code = explode ('-', $matches[1]); // preprint($lang_code); // Wurde eine Qualität mitgegeben? if (isset($matches[2])) { // die Qualität benutzen $lang_quality = (float)$matches[2]; } else { // Kompabilitätsmodus: Qualität 1 annehmen $lang_quality = 1.0; } // Bis der Sprachcode leer ist... while (count ($lang_code)) { // mal sehen, ob der Sprachcode angeboten wird if (in_array (strtolower (join ('-', $lang_code)), $allowed_languages)) { // Qualität anschauen if ($lang_quality > $current_q) { // diese Sprache verwenden $current_lang = strtolower (join ('-', $lang_code)); $current_q = $lang_quality; // Hier die innere while-Schleife verlassen break; } } // Wenn wir im strengen Modus sind, die Sprache nicht versuchen zu minimalisieren if ($strict_mode) { // innere While-Schleife aufbrechen break; } // den rechtesten Teil des Sprachcodes abschneiden array_pop ($lang_code); } } // die gefundene Sprache zurückgeben return $current_lang; } // /Browsersprache ermitteln /** * Erzeugt ein zufälliges Passwort nach einem bestimmten Schema * * @param INT $length * @param INT $strength * @return String */ function generatePassword($length=9, $strength=0) { $vowels = 'aeuy'; $consonants = 'bdghjmnpqrstvz'; if ($strength % 1 === 0) { $consonants .= 'BDGHJLMNPQRSTVWXZ'; } if ($strength % 2 === 0) { $vowels .= "AEUY"; } if ($strength % 4 === 0) { $consonants .= '23456789'; } if ($strength % 8 === 0) { $consonants .= '.-_@#%'; } $password = ''; $alt = time() % 2; for ($i = 0; $i < $length; $i++) { if ($alt == 1) { $password .= $consonants[(rand() % strlen($consonants))]; $alt = 0; } else { $password .= $vowels[(rand() % strlen($vowels))]; $alt = 1; } } return $password; } /** * Arrays HTML-Formatiert ausgeben * * @param unknown_type $s * @param unknown_type $ret * @return unknown */ function preprint($s, $ret=false){ $return = "
".print_r($s, 1)."
"; if ($ret===false) print $return; else return $ret; } /** * Wenn Parameter 1 leer ist, wird Parameter 2 ausgegeben * * @param unknown_type $string * @param unknown_type $alt * @param unknown_type $return * @return unknown */ function emptyPrint($string, $alt, $return=false){ if (empty($string)) $return = $alt; else $return = $string; if ($return===false) print $return; else return $return; } /** * zB POST-Daten absichern. trim(htmlspecialchars()) * * @param unknown_type $s * @return unknown */ function secure($s){ return trim(htmlspecialchars($s)); } /** * Liefert den benutzten Browser zurück: IE, IE7, Firefox, Safari, usw * von http://www.php.net/manual/de/function.get-browser.php#101125 */ function getBrowser() { $u_agent = $_SERVER['HTTP_USER_AGENT']; $bname = 'Unknown'; $platform = 'Unknown'; $version= ""; //First get the platform? if (preg_match('/linux/i', $u_agent)) { $platform = 'linux'; } elseif (preg_match('/macintosh|mac os x/i', $u_agent)) { $platform = 'mac'; } elseif (preg_match('/windows|win32/i', $u_agent)) { $platform = 'windows'; } // Next get the name of the useragent yes seperately and for good reason if(preg_match('/MSIE/i',$u_agent) && !preg_match('/Opera/i',$u_agent)) { $bname = 'Internet Explorer'; $ub = "MSIE"; } elseif(preg_match('/Firefox/i',$u_agent)) { $bname = 'Mozilla Firefox'; $ub = "Firefox"; } elseif(preg_match('/Chrome/i',$u_agent)) { $bname = 'Google Chrome'; $ub = "Chrome"; } elseif(preg_match('/Safari/i',$u_agent)) { $bname = 'Apple Safari'; $ub = "Safari"; } elseif(preg_match('/Opera/i',$u_agent)) { $bname = 'Opera'; $ub = "Opera"; } elseif(preg_match('/Netscape/i',$u_agent)) { $bname = 'Netscape'; $ub = "Netscape"; } // finally get the correct version number $known = array('Version', $ub, 'other'); $pattern = '#(?' . join('|', $known) . ')[/ ]+(?[0-9.|a-zA-Z.]*)#'; if (!preg_match_all($pattern, $u_agent, $matches)) { // we have no matching number just continue } // see how many we have $i = count($matches['browser']); if ($i != 1) { //we will have two since we are not using 'other' argument yet //see if version is before or after the name if (strripos($u_agent,"Version") < strripos($u_agent,$ub)){ $version= $matches['version'][0]; } else { $version= $matches['version'][1]; } } else { $version= $matches['version'][0]; } // check if we have a number if ($version==null || $version=="") {$version="?";} return array( 'userAgent' => $u_agent, 'name' => $bname, 'version' => $version, 'platform' => $platform, 'pattern' => $pattern ); } "; } /** * Wenn möglich wird $s in das Format hh:mm konvertiert */ function convert_to_time($s){ if (is_time($s)) { // h:mm oder hh:mm $return = $s; } elseif (is_float($s)) { // Wandelt x.y in hh:mm um. $vorne = intval($s); $hinten = ($s - $vorne)*60; $return = "$vorne:$hinten"; } elseif ($s >= 0 && $s <=24) { // ganze Zahl von 0 bis 24 $return = str_pad(intval($s), 2, "0", STR_PAD_LEFT).":00"; } elseif (preg_match("/^[0-9]{4}$/", $s)) { // Vierstellige Zahl $return = substr($s, 0, 2).":".substr($s, -2); } else return "00:00"; // damit wenigstens das korrekte Format zurückgegeben wird return $return; } /** * Wandelt hh:mm in x.y um (mit Konvertierung von 60stel zu 100stel) * * @param TIME $time * @return Float */ function convert_time_to_float($time){ if (!is_time($time)) return false; $zeit = explode(":", $time); return $zeit[0]+($zeit[1]/60); } /** * Wandelt hh:mm in array(hh, mm) um. * * @param TIME $time * @return Array */ function convert_time_to_array($time){ if (!is_time($time)) return false; return explode(":", $time); } /** * Wandelt hh:mm in Sekunden um. Praktisch, um diese auf einen Timestamp zu addieren * * @param unknown_type $time * @return unknown */ function convert_time_to_seconds($time){ if (!is_time($time)) return false; $time = convert_time_to_array($time); $hours = $time[0]; $mins = $time[1]; $seconds = ($mins*60) + ($hours*60*60); return $seconds; } function calc_time ($time1, $time2, $mode="plus") { if (!is_time($time1) || !is_time($time2)) return false; $time1 = convert_time_to_float($time1); $time2 = convert_time_to_float($time2); switch ($mode){ case "plus": $return = $time1+$time2; break; case "minus": $return = $time1-$time2; break; } return convert_to_time($return); } function _is_ausnahme_today($ausnahme, $day, $month, $year) { // preprint($ausnahme); if (empty($ausnahme[von_datum])) $vonAusn = 0; else $vonAusn = convert_datum_to_timestamp($ausnahme[von_datum]); if (empty($ausnahme[bis_datum])) { if ($ausnahme[typ] == "regelmaessig") $bisAusn = 9999999999; // Weeeit in der zukunft else $bisAusn = $vonAusn+2; } else $bisAusn = convert_datum_to_timestamp($ausnahme[bis_datum]); $dayTS = mktime(0,0,0,$month, $day, $year); $return = ($vonAusn <= $dayTS && $dayTS <= $bisAusn); /** / $d = "d.m.Y"; print date($d, $vonAusn)."
"; print date($d, $dayTS)."
"; print date($d, $bisAusn)."
"; print $ausnahme[title]." - "; if ($return) print "Ja!

"; else print "NEIN

"; /**/ return $return; } /*************************** Führt die Berechnungen durch ****************************/ function calc_oeffnungszeit($oeffnungszeit, $ausnahme_zeit, $modus) { // int (0=false, 1=array(array(dec, dec)), 2=array(array(zeitspanne)), 3= array(dec,dec), 4=array(zeitspanne), 5= dec, 6=hh:mm - hh:mm $typeof = typeof_zeit($oeffnungszeit); switch ($typeof){ case 1: $newoz = array(); foreach($oeffnungszeit as $oz){ $erg = timerange_calc($oz, $ausnahme_zeit, $modus); $newoz = array_merge($newoz, $erg); // $newoz = $newoz + $erg); } break; case 2: $newoz = array(); foreach($oeffnungszeit as $oz){ $erg = timerange_calc($oz, $ausnahme_zeit, $modus); $newoz = array_merge($newoz, $erg); // $newoz = $newoz + $erg); } break; case 3: $newoz = timerange_calc($oeffnungszeit, $ausnahme_zeit, $modus); break; case 4: $newoz = timerange_calc($oeffnungszeit, $ausnahme_zeit, $modus); break; } return $newoz; } /** * Berechnet den Unterschied 2er Zeitspannen. Eine Zeitspanne wird so geschrieben: "hh:mm - hh:mm" * * @param Zeitspanne $zeitspanne1_org * @param Zeitspanne $zeitspanne2_org * @param "offen" || "geschlossen" $modus * @return array(Zeitspanne) | array(array(Zeitspannen)) */ function timerange_calc($zeitspanne1_org, $zeitspanne2_org, $modus) { if (is_zeitspanne($zeitspanne1_org)) { $zeitspanne1 = explode(" - ", $zeitspanne1_org); // $zeitspanne1 = array("08:00", "18:00") $start1 = time_to_decimal($zeitspanne1[0]); $end1 = time_to_decimal($zeitspanne1[1]); // $zeitspanne1 = array(8, 18) } else { $start1 = $zeitspanne1_org[0]; $end1 = $zeitspanne1_org[1]; } if (is_zeitspanne($zeitspanne2_org)) { $zeitspanne2 = explode(" - ", $zeitspanne2_org); // $zeitspanne2 = array("18:00", "20:00") $start2 = time_to_decimal($zeitspanne2[0]); $end2 = time_to_decimal($zeitspanne2[1]); // $zeitspanne2 = array(18, 20) } else { $start2 = $zeitspanne2_org[0]; $end2 = $zeitspanne2_org[1]; } switch ($modus){ case "offen": /* Alte Variante: Eine Öffnungszeit wird mit der Ausnahme addiert. if ($start2 <= $start1) { // Start der Ausnahme ist gleich oder vor Start der Öffnungszeit if ($end2 < $start1) { // Ende der Ausnahme liegt vor Beginn der Öffungszeit $return = array(array(decimal_to_time($start2), decimal_to_time($end2), array(decimal_to_time($start1), decimal_to_time($end1)))); } elseif ($end2 <= $end1){ // Ende der Ausnahme liegt in oder am Ende der Öffungszeit $return = array(decimal_to_time($start2), decimal_to_time($end1)); } else $return = array (decimal_to_time($start2), decimal_to_time($end2)); // Ende der Ausnahme geht über die Öffnungszeit hinaus } elseif ($start2 <= $end1) { // Start der Ausnahme liegt innerhalb oder am Ende der Öffnungszeit if ($end2 > $end1) $return = array(decimal_to_time($start1), decimal_to_time($end2)); // Ende der Ausnahme geht über Ende der ÖZ hinaus else $return = array(decimal_to_time($start1), decimal_to_time($end1)); // Ende der Ausnahme liegt in der Öffungszeit } elseif ($start2 > $end1) { // Zwischen ÖZ und Ausnahme liegt eine Pause $return = array(array(decimal_to_time($start1), decimal_to_time($end1)), array(decimal_to_time($start2), decimal_to_time($end2))); } */ /* Neue Variante: Eine Plus-Ausnahme ist die neue Öffnungszeit*/ $return = array(array($start2, $end2)); break; case "geschlossen": // print "start1 = $start1, end1 = $end1
Start2 = $start2, end2 = $end2
"; if ($end2 <= $start1) { // Die Ausname liegt vor der Öffnungszeit // print "1"; $return = array(array($start1, $end1)); } elseif ($end2 > $start1 && $start2 <= $start1 && $end2 < $end1) { // Die Ausnahme verschiebt den Anfang der Öffnungs // print "2"; $return = array(array($end2, $end1)); } elseif (($start2 <= $start1 && $end2 >= $end1) || $zeitspanne2_org=="ganztaegig") { // Die Ausnahme betrifft die gesamte ÖZ // print "3"; $return = array(array()); } elseif ($end2 < $end1 && $start2 > $start1) { // Die Ausnahme liegt mitten in der Öffnungszeit // print "4"; $return = array(array(($start1), ($start2)), array(($end2), ($end1)) ); } elseif ($end2 >= $end1 && $start2 > $start1 && $start2 < $end1) { // Die Ausnahme beschneidet die ÖZ hinten // print "5"; $return = array(array($start1, $start2)); } else { // print "6"; $return = array(array($start1, $end1)); } break; } // preprint($return); print "
"; return $return; } /** * Wandelt "hh:mm - hh:mm" in ein Array von Float um: (x.y, a.b) * * @param Zeitspanne $timespan * @return array */ function zeitspanne_to_decimal_array($timespan){ $output = explode(" - ", $timespan); $start = time_to_decimal($output[0]); $end = time_to_decimal($output[1]); return array($start, $end); } /** * Wandelt hh:mm in den Dezimalwert um. zB 20:15 -> 20,25 * * @param Time $time * @return Float */ function time_to_decimal($time){ $output = explode(":", $time); return $output[0]+($output[1]/60); } /** * Wandelt x,y zurück in den Zeitwert. ZB 20,25 -> 20:15 * * @param Float $dec * @return Time */ function decimal_to_time($dec){ $vorne = intval($dec); $vorne = str_pad($vorne, 2, "0", STR_PAD_LEFT); if (is_float($dec)) { $hinten = ($dec-$vorne)*60; $hinten = str_pad($hinten, 2, "0", STR_PAD_RIGHT); } else $hinten = "00"; return $vorne.":".$hinten; } /** * Prüft, ob die Eingabe vom Muster array(array("hh", "mm"), array("hh", "mm"), usw) ist. * * @param String $input * @return int (0=false, 1=array(array(dec, dec)), 2=arra(array(zeitspanne)), 3= array(dec,dec), 4=array(zeitspanne), 5= dec, 6=hh:mm - hh:mm */ function typeof_zeit($input){ if (is_array($input)){ if (is_array($input[0])){ if (is_zeitspanne($input[0][0]." - ".$input[0][1])) return 2; elseif (is_float($input[0][0]) || is_int($input[0][0])) return 1; else return 0; } elseif (is_zeitspanne($input[0])) return 4; elseif (is_float($input[0]) || is_int($input[0])) return 3; else return 0; } elseif (is_zeitspanne($input)) return 6; elseif (is_float($input) || is_int($input)) return 5; else return 0; } ?> 35, // in Prozent "finanzierungspotenzial" => 35, "gesameinschaetzung" => 30 ); $max_points = 3; $return = 0; $return_fields = array(); foreach ($gewichtung as $id => $faktor) { $juror_wertung = $bewertung[$id]; // Wie hat der Juror das Feld bewertet $ergebnis = $faktor * ($juror_wertung / $max_points); $return_fields[$id] = $ergebnis; $return += $ergebnis; } if ($get_only_fieldid!=="") $return = $return_fields[$get_only_fieldid]; // Falls nur das Ergebniss dieses einen Feldes zurück geliefert werden soll (zB "wachstumspotenzial") return round($return, 2); } /** * Berechnet das Ergebnis einer Bewertung durch den Juror in Prozent. */ function calc_bewertung_busin($bewertung, $phase, $get_only_fieldid="") { $gewichtung = array(1, 2, 3); // Verschiedene Gewichtung pro Phase // Gewichtungen für Phase 1 $gewichtung[1] = array("ex_sum_interesse" => 5, // in Prozent "ex_sum_aspekte" => 10, "kundennutzen" => 20, "dif_im_wettbewerb" => 15, "markt" => 13, "wettbewerb" => 7, "gesamteindruck" => 30 ); // Gewichtungen für Phase 2 $gewichtung[2] = array("ex_sum_interesse" => 3, // in Prozent "ex_sum_aspekte" => 7, "kundennutzen" => 15, "dif_im_wettbewerb" => 10, "markt" => 10, "wettbewerb" => 5, "marketing_vertrieb" => 10, "organisation" => 5, "chancen_risiken" => 5, "gesamteindruck" => 30, ); // Gewichtungen für Phase 3 $gewichtung[3] = array("ex_sum_interesse" => 2, // in Prozent "ex_sum_aspekte" => 3, "kundennutzen" => 10, "dif_im_wettbewerb" => 5, "markt" => 7, "wettbewerb" => 3, "marketing_vertrieb" => 5, "organisation" => 5, "chancen_risiken" => 5, "unternehmerteam" => 10, "realisierungsplan" => 5, "finanzierung_inhaltlich" => 5, "finanzierung_formal" => 5, "gesamteindruck" => 30, ); $max_points = 10; // Für jede Frage gibt es immer max 10 Punkte $use_gewichtung = $gewichtung[$phase]; $return = 0; $return_fields = array(); foreach ($use_gewichtung as $id => $faktor) { $juror_wertung = $bewertung[$id]; // Wie hat der Juror das Feld bewertet //echo 'faktor: '.$faktor.' || wertung: '.$juror_wertung.'
'; $ergebnis = $faktor * ($juror_wertung / $max_points); $return_fields[$id] = $ergebnis; $return += $ergebnis; } if ($get_only_fieldid!=="") $return = $return_fields[$get_only_fieldid]; // Falls nur das Ergebniss dieses einen Feldes zurück geliefert werden soll (zB "wachstumspotenzial") return round($return, 2); } ?> Error

An Error Was Encountered

No database connection settings were found in the database config file.

Click here to continue