File: /var/www/vhosts/creativefellows.nl/httpdocs/bu 19072024/includes/cassette.front.php
<?php
/**
* cassette frontend
*/
class cassetteFrontend extends config{
function entries($post_section=null,$post_category=null,$uid=null,$view_page=null,$search_array=null,$limit=null){
$start = ($view_page == null) ? 0 : ($view_page-1)*$this->items_per_page;
$limit_query = ($this->items_per_page != null && $limit == null) ? " LIMIT $start,$this->items_per_page" : ($limit == null ? null: " LIMIT 0,$limit");
$sectie_info = $this->q("secties","WHERE `naam` LIKE '".preg_replace("/( |-)/","%",esc($post_section))."%' AND `active` = '1'");
// sort
$sort = $this->get("secties","sectie_id",$sectie_info["sectie_id"],"sort");
switch($sort){
case 1;
$sort_query = "ORDER BY `created` DESC";
break;
case 2;
$sort_query = "ORDER BY `created` ASC";
break;
default;
$sort_query = "ORDER BY `position` ASC";
break;
}
if($uid != null){
$search = "WHERE `unique_id`='$uid'";
$uniqids = $this->data("unique_ids",$search);
}
elseif($post_category != null){
$category_info = $this->q("categories","WHERE `naam` LIKE '".preg_replace("/[^0-9a-zA-Z]/","_",esc($post_category))."%' AND `sectie_id`='".$sectie_info["sectie_id"]."' AND `active` = '1'");
$search = ($search_for == null) ? "ORDER BY unique_ids.position" : $search_for;
$query = "SELECT * FROM `entry_categories`,`unique_ids` WHERE `entry_categories`.`unique_id` = `unique_ids`.`unique_id` AND category_id = '".$category_info["category_id"]."' AND `status`='2' ".$search.$limit_query;
$uniqids = $this->toArray($query);
}
elseif($post_section != null){
$this->sectie_id = $sectie_info["sectie_id"];
// get unique ids
$search = $uid == null ? "WHERE `status` = '2' AND `sectie_id`='$this->sectie_id' $sort_query $limit_query" : "WHERE `unique_id`='$uid'";
$this->pagination = $this->countRecords("SELECT COUNT(*) as `count` FROM `unique_ids` WHERE `sectie_id` = '$this->sectie_id'");
$uniqids = $this->data("unique_ids",$search);
}
$html_arr = array();
foreach($uniqids as $id){
$table = "td_".$this->get("templates","template_id",$id["template_id"],"naam");
$fields = $this->templateFields($id["template_id"]);
$data = $this->data($table," WHERE entry_id = ".$id["entry_id"]." ORDER BY position ASC");
$ed = new entryData($fields,$data[0],$id["unique_id"],$id["template_id"],$id["sectie_id"]);
array_push($html_arr,$ed);
}
if($uid == null) return $html_arr;
else return $html_arr[0];
}
function countRecords($mysql){
$q = mysql_query($mysql) or die(mysql_error());
$r = mysql_fetch_assoc($q);
$page_count = ceil($r["count"] / $this->items_per_page);
return $pagination = ($page_count > 1) ? $page_count : false;
}
/* search entries */
function searchOld($table,$search_column_array,$search_values_array,$operator_array = array("LIKE"),$order_by=null){
$search = "WHERE ";
foreach($search_column_array as $i => $post_name){
$field_value = $search_values_array[$i];
$operator = $operator_array[$i];
$field_name = $post_name;
if($field_value == "") continue;
$search .= "`$field_name` $operator '".$field_value."' OR";
}
$search = substr($search,0,-3).$order_by;
$results = $this->data($table,$search);
$html_arr = array();
foreach($results as $entry){
$fields = $this->templateFields($entry["template_id"]);
$ed = new entryData($fields,$entry,$entry["unique_id"],$entry["template_id"]);
array_push($html_arr,$ed);
}
return $html_arr;
}
function search($table_arr,$search_column_array,$search_values,$pagination=1,$hidden_sections=null){
$search_columns = implode(",",$search_column_array);
$search = substr($search,0,-3);
$results_arr = array();
foreach($table_arr as $table){
//echo "SELECT *, MATCH ($search_columns) AGAINST ('$search_values') AS `relevance` FROM `$table` WHERE MATCH ($search_columns) AGAINST ('$search_values') GROUP BY page_id HAVING relevance > 0";
$rows = $this->toArray("SELECT *, MATCH ($search_columns) AGAINST ('$search_values') AS `relevance` FROM `$table` WHERE MATCH ($search_columns) AGAINST ('$search_values') GROUP BY page_id HAVING relevance > 0");
foreach ($rows as $row){
$results_arr[] = $row;
foreach ($row as $key => $value){
${$key}[] = $value;
}
}
}
array_multisort($relevance, SORT_DESC, $results_arr);
// result array
$html_arr = array();
$start = ($pagination-1) * $this->items_per_page;
$stop = $start+$this->items_per_page;
for ($i = $start; $i <= $stop; $i++) {
if($i >= count($results_arr)) continue;
$entry = $results_arr[$i];
// $uid_data = $this->get("unique_ids","unique_id",$entry["page_id"]);
// $fields = $this->templateFields($uid_data["template_id"]);
// $ed = new entryData($fields,$entry,$uid_data["unique_id"],$uid_data["template_id"]);
// $ed->score = $entry["relevance"];
if(!in_array($ed->sectie_id,$hidden_sections)) array_push($html_arr,$entry);
}
$this->searchCount = count($results_arr);
return $html_arr;
}
function get($table,$column,$value,$return=null,$search=null){
$query = "SELECT * FROM `$table` WHERE `$column` = '$value' $search";
$q = mysql_query($query) or die(mysql_error());
$r = mysql_fetch_assoc($q);
if($return != null) return $r[$return];
else return $r;
}
function q($table,$search){
$query = "SELECT * FROM `$table` $search";
$q = mysql_query($query) or die(mysql_error());
$r = mysql_fetch_assoc($q);
return $r;
}
function firstPage(){
$homepage = $this->q("secties","ORDER BY position ASC LIMIT 0,1");
return $homepage["naam"];
}
function templateFields($template_id,$subof=null){
$sub_query = ($subof != null) ? "AND sub_of=$subof" : "AND sub_of=0";
$query = "SELECT * FROM template_fields LEFT JOIN field_types ON template_fields.field_id=field_types.field_id WHERE template_id = $template_id $sub_query AND active=1 ORDER BY position ASC";
return $this->toArray($query);
}
function entriesInCategory($category_id,$show_max=null){
$start = ($view_page == null) ? 0 : ($view_page-1)*$this->items_per_page;
$limit_query = ($show_max != null) ? " LIMIT 0,$show_max" : "";
$html_arr = array();
if( !is_numeric($category_id) ){
$cat_info = $this->q("categories","WHERE `naam` LIKE '".preg_replace("/( |-)/","%",esc($category_id))."%' AND `active` = '1'");
$category_id = $cat_info["category_id"];
}
$query = "SELECT * FROM `entry_categories`,`unique_ids` WHERE `entry_categories`.`unique_id` = `unique_ids`.`unique_id` AND category_id = $category_id $limit_query";
$q = mysql_query($query);
while($id = mysql_fetch_assoc($q)){
$table = "td_".$this->get("templates","template_id",$id["template_id"],"naam");
$fields = $this->templateFields($id["template_id"]);
$data = $this->data($table," WHERE entry_id = ".$id["entry_id"]." ORDER BY position ASC");
$ed = new entryData($fields,$data[0],$id["unique_id"],$id["template_id"],$post_section,$post_category);
array_push($html_arr,$ed);
}
return $html_arr;
}
function getNavigation($positie_id,$sectie=null,$category_name=null,$show_category=false){
if($category_name != null){
$cat_info = $this->q("categories","WHERE `naam` LIKE '".preg_replace("/( |-)/","%",esc($category_name))."' AND `active` = '1'");
$cats = $this->toArray("SELECT * FROM `categories`, `entry_categories`,`entry_posities` WHERE `entry_categories`.`category_id` = `categories`.`category_id` AND `entry_categories`.`unique_id` = `entry_posities`.`unique_id` AND `categories`.`category_id` = ".$cat_info["category_id"]." AND `categories`.`active`='1' AND `zichtbaar` = '1' AND `entry_posities`.`positie_id` = '$positie_id' ORDER BY position ASC");
return $cats;
}
elseif($show_category == true){
$sectie_info = $this->q("secties","WHERE `naam` LIKE '".preg_replace("/( |-)/","%",esc($sectie))."' AND `active`='1'");
if(empty($sectie_info) || $sectie_info == "") return false;
// echo "SELECT * FROM `categories`, `entry_categories` WHERE `entry_categories`.`category_id` = `categories`.`category_id` AND categories.sectie_id = ".$sectie_info["sectie_id"]." AND `categories`.`active`='1' AND `categories`.`active`='1' AND `zichtbaar` = '1' GROUP BY entry_categories.category_id ORDER BY position ASC";
$cats = $this->toArray("SELECT * FROM `categories`, `entry_categories` WHERE `entry_categories`.`category_id` = `categories`.`category_id` AND categories.sectie_id = ".$sectie_info["sectie_id"]." AND `categories`.`active`='1' AND `categories`.`active`='1' AND `zichtbaar` = '1' GROUP BY entry_categories.category_id ORDER BY position ASC");
return $cats;
}
elseif($sectie == null){
$entries = $this->toArray("SELECT * FROM `unique_ids`,`entry_posities` WHERE `unique_ids`.`unique_id` = `entry_posities`.`unique_id` AND `entry_posities`.`positie_id` = '$positie_id' ORDER BY `unique_ids`.`position` ASC");
return $entries;
}else{
$sectie_id = $this->get("secties","naam",$sectie,"sectie_id");
$data = array();
// $data[] = $this->toArray("SELECT * FROM `categories` WHERE `sectie_id` = '".$sectie_id."' AND `active`='1' AND `zichtbaar` = '1' ORDER BY position ASC");
//echo "SELECT * FROM `unique_ids`,`entry_posities` WHERE `unique_ids`.`unique_id` = `entry_posities`.`unique_id` AND `unique_ids`.`sectie_id` = '$sectie_id' AND `entry_posities`.`positie_id` = '$positie_id' AND `status` = '2' ORDER BY `unique_ids`.`position` ASC";
$entries = $this->toArray("SELECT * FROM `unique_ids`,`entry_posities` WHERE `unique_ids`.`unique_id` = `entry_posities`.`unique_id` AND `unique_ids`.`sectie_id` = '$sectie_id' AND `entry_posities`.`positie_id` = '$positie_id' AND `status` = '2' ORDER BY `unique_ids`.`position` ASC");
$data[] = $entries;
return $data;
}
}
function fieldHTML($element,$value,$default_html=null,$css_class=null){
// $css_class = "";
if(empty($value)) return;
switch($element){
case "h1":
$html = '<div class="'.$css_class.'">';
$html .= '<header class="header-box">';
$html .= '<h1>'.stripslashes($value).'</h1>';
$html .= '</header>';
$html .= '</div>';
break;
case "text":
$html = '<div class="'.$css_class.'">';
$html .= '<h2>'.$value.'</h2>';
$html .= '</div>';
break;
case "image":
$html = '<div class="'.$css_class.'">';
$html .= '<figure class="article-image">'.$this->createImage($value[0],"h",600,220).'</figure>';
$html .= '</div>';
break;
case "cols":
if(empty($value)) return;
$count = count($value);
$width = "col6";
$html = "";
$html .= '<div class="col24"><div class="devider"></div></div>';
// $html .= '<div class="col24"><h3>Lees ook</h3></div>';
foreach($value as $link){
// $this->debug($link);
$html .= '<div class="'.$width.'">';
$html .= '<div class="dotted-box rounded">';
//$html .= '<figure>'.$this->createImage($data->foto[0],"bl",75,75).'</figure>';
$html .= '<div class="block-text float-fix">';
$html .= '<h3>'.$link[2].'</h3>';
$html .= '<p>'.$link[1].'<a class="read-more" href="'.$link[3].'">'.$bl->link_label.'</a></p>';
$html .= '</div>';
$html .= '</div>';
$html .= '</div>';
}
// $html .= '<div class="col24"><div class="devider"></div></div>';
break;
case "link":
$html .= '<a href="'.$value[0].'" class="'.$css_class.'">'.$value[1].'</a>';
break;
case "form":
$form = new cassetteForm($value);
// form fields
$fields = $form->getFields();
$html = '<div class="'.$css_class.'">';
$html .= "<form class='form' action='handle-form' $onsubmit id='form$e->formulier' method='post' enctype='multipart/form-data'><div>";
foreach($fields as $el){
$html .= $form->cassetteFormElement($el);
}
$html .= "</div></form>";
$html .= '<div class="feedback"></div>';
$html .= '</div>';
break;
default:
$html = '<div class="'.$css_class.'">';
$html .= '<section class="article-details">';
switch($element){
case "em":
$html .= '<p><em>'.$value.'</em></p>';
break;
case "share":
$html .= '<div class="social-share">'.$default_html.'</div>';
break;
default:
$html .= $value;
break;
}
$html .= '</section>';
$html .= '</div>';
break;
}
return $html;
}
function getBezorgKosten($selected_id=null,$total=null){
$config = $this->get("instellingen","id",1);
return $config["verzendkosten"];
}
function btwBedrag($bedrag){
return ($bedrag/121)*21;
}
function iDealAmount($bedrag){
return $bedrag*100;
}
function orderTotaal($bedrag){
$_SESSION[$this->company_short]["totaalbedrag"] = $this->iDealAmount($bedrag);
}
/*function createImage($img_url,$prefix,$width,$height,$resize_type=1,$class=null){
$prefix = preg_replace("/ /","_",$prefix);
$img_name = end(explode("/",$img_url));
$thumb_path = IMAGE_DIR."th/".$prefix."-".$img_name;
if(file_exists($thumb_path)) return '<img src="content/th/'.preg_replace("/ /","-",$prefix.'-'.$img_name).'" class="'.$class.'" />';
else return '<img src="image.php?prefix='.$prefix.'&path='.$img_url.'&w='.$width.'&h='.$height.'&type='.$resize_type.'&d='.IMAGE_FOLDER.'" class="'.$class.'" />';
}*/
function createImage($img_url,$prefix,$width,$height,$resize_type=1,$class=null,$alt=null){
$prefix = preg_replace("/ /","_",$prefix);
$img_name = end(explode("/",$img_url));
//$thumb_path = IMAGE_DIR.$prefix."-".$img_name;
// check img url op CMS URL
$pref_url = $this->imgURL.$prefix."-".$img_name;
$response = get_headers($pref_url, 1);
// thumb not found
if((strpos($response[0], "404") === false) && $this->save_images == true) return '<img src="content/'.IMAGE_FOLDER.'th/'.preg_replace("/ /","-",$prefix.'-'.$img_name).'" class="'.$class.'" alt="'.$alt.'" />';
else return '<img src="image.php?prefix='.$prefix.'&path='.$img_url.'&w='.$width.'&h='.$height.'&type='.$resize_type.'&d='.IMAGE_FOLDER.'" class="'.$class.'" alt="'.$alt.'" />';
}
function getLink($link_to_uid){
if($link_to_uid == "") return;
$query = "SELECT * FROM unique_ids,secties WHERE unique_ids.sectie_id = secties.sectie_id AND unique_id = $link_to_uid";
$q = mysql_query($query) or die(mysql_error());
$r = mysql_fetch_assoc($q);
$table = "td_".$this->get("templates","template_id",$r["template_id"],"naam");
$fields = $this->templateFields($r["template_id"]);
$entry_titel = $this->get($table,"entry_id",$r["entry_id"],$fields[0]["field_naam"]);
return $r["naam"]."/".$entry_titel."-".$link_to_uid;
}
function sectieInfo($sectie){
return $this->q("secties","LEFT JOIN `stramiens` ON secties.stramien = stramiens.stramien_id WHERE secties.naam LIKE '".preg_replace("/( |-)/","%",esc($sectie))."' AND `secties`.`active` = '1'");
}
}
class entryData extends config{
function __construct($fields,$data,$unique_id,$template_id,$sectie_id=null,$post_category=null){
$this->entry_id = $data["entry_id"];
$this->status = $data["status"];
$this->position = $data["position"];
$this->last_edit = $data["last_edit"];
$this->unique_id = $unique_id;
$this->template_id = $template_id;
$this->template = preg_replace("/ /","_",$this->get("templates","template_id",$template_id,"naam"));
$this->form_id = $data["form_id"];
$this->meta_title = $data["meta_title"];
$this->meta_desc = $data["meta_desc"];
$this->page_redirect= $data["page_redirect"];
$this->stramien_id = $data["stramien_id"];
$unique_data = $this->get("unique_ids","unique_id",$this->unique_id);
$this->sectie_id = $unique_data["sectie_id"];
$this->sectie = $this->get("secties","sectie_id",$this->sectie_id,"naam");
$this->entry_link = vl($this->sectie."/".preg_replace("/\//","",$data[$fields[0]["field_naam"]])."-".$this->unique_id);
$this->first_field = null;
// echo "<pre>";
// print_r($fields);
// echo "</pre>";
foreach($fields as $i => $f){
if($f["type"] == 1){
$field_user = preg_replace("/[^0-9a-zA-Z]/","_",strtolower($f["field_user"]));
if($i == null) $this->first_field = $field_user;
//echo $data[$f["field_naam"]];
$this->fieldHTML($field_user,$f["form_element"],$data[$f["field_naam"]]);
}else{
$this->fieldHTML($field_user,$f["form_element"],$f["template_field_id"]);
}
}
}
function fieldHtml($field_user,$element,$value){
$data = array();
$value = stripslashes($value);
switch($element){
case "shop";
$staffel_array = $this->data("prijzen_product","WHERE `unique_id` = '$this->unique_id'");
$html = '<div class="product-price">';
//$html .= '<h2>'.ucfirst($field_user).'</h2>';
// $html .= '<span class="price-label">Prijs</span><span class="dots">:</span>';
// $html .= '<span class="product-euros">';
// if($staffel_array[0]["van"] != 0) $html .= '<span class="product-euros vanprijs">'.$this->formatPrice($staffel_array[0]["van"]).'</span>';
// $html .= $this->formatPrice($staffel_array[0]["voor"]);
$html .= '<p><a class="bestellen-button rounded" href="winkelwagen?uid='.$this->unique_id.'">Bestellen</a></p>';
// $html .= '</span>';
$html .= '</div>';
$this->$field_user = $html;
$this->prijs_voor = $staffel_array[0]["voor"];
$this->prijs_van = $staffel_array[0]["van"];
break;
case "link":
case "cols":
if(trim($value) != ""){
$files = explode("|*|",$value);
$data = array();
foreach($files as $f){
$file_data = explode("|-|",$f);
// $cassette = new cassetteFrontend();
// $entry = $cassette->entries(null,null,$file_data[0]);
// $fieldName = $entry->first_field;
// $file_data[2] = $entry->$fieldName;
// $file_data[3] = $entry->entry_link;
array_push($data,$file_data);
}
}else $data = array();
$this->$field_user = $data;
break;
case "image":
$this->$field_user = explode("|*|",$value);
break;
case "files":
$files = explode("|*|",$value);
$data = array();
foreach($files as $f){
$file_data = explode("|-|",$f);
if($file_data[0] == "") continue;
if(end($file_data) == ""){
$parts = explode("/",preg_replace("/_/"," ",$file_data[0]));
$file_data[1] = end($parts);
}
array_push($data,$file_data);
}
$this->$field_user = $data;
break;
case "field_group":
$sub_query = ($subof != null) ? "AND sub_of=$subof" : "AND sub_of=0";
$query = "SELECT * FROM template_fields LEFT JOIN field_types ON template_fields.field_id=field_types.field_id WHERE sub_of = $value AND active=1 ORDER BY position ASC";
$test = $this->toArray($query);
break;
case "dragdrop";
$this->$field_user = "";
$sections = $this->pageContent($this->unique_id);
foreach($sections as $s){
$bg = $s["css"] != "" ? $s["css"].";" : "";
// if($s["fullpage"] == 1) $this->$field_user .= '<div class="clear colfix" style="'.$bg.'">';
// $this->$field_user .= preg_replace(array("/{section_htmlwrapper}/","/{style}/"),array($s["html"],$bg),$this->section_htmlwrapper);
// //$this->$field_user .= $s["html"];
// if($s["fullpage"] == 1) $this->$field_user .= '</div>';
if($s["fullpage"] == 1){
$this->$field_user .= '<section id="'. $s["element_id"] .'" class="'. $s["element_class"] .'">';
$this->$field_user .= $s["html"];//preg_replace('/<section(.*?)">(.*?)<\/section>/', '$1', $s["html"]);
$this->$field_user .= '</section>';
}
else $this->$field_user .= preg_replace(array("/{section_htmlwrapper}/","/{style}/","/{element-id}/","/{element-class}/"),array($s["html"],$bg,$s["element_id"],$s["element_class"]),$this->section_htmlwrapper);
}
break;
default:
$this->$field_user = $value;
break;
}
}
function pageContent($uid){
$q = "SELECT * FROM `page_section_content` WHERE `page_id` = '$uid' AND `status` = '1' ORDER BY `position` ASC";
return $this->toArray($q);
}
function data($table,$search){
$query = "SELECT * FROM `$table` $search";
return $this->toArray($query);
}
function toArray($query){
$d = array();
$q = mysql_query($query) or die(mysql_error().">>".$query);
while($r = mysql_fetch_assoc($q)){
array_push($d,$r);
}
return $d;
}
function formatPrice($str){
return "€ ".number_format($str,2,',','');
}
function get($table,$column,$value,$return=null){
$query = "SELECT * FROM `$table` WHERE `$column` = '$value'";
$q = mysql_query($query) or die(mysql_error());
$r = mysql_fetch_assoc($q);
if($return != null) return $r[$return];
else return $r;
}
}
class klantData{
function __construct($klant_id){
$this->klant_id = $klant_id;
$q = mysql_query("SELECT * FROM `klanten` WHERE `klant_id` = '$this->klant_id'");
$r = mysql_fetch_assoc($q);
foreach($r as $column => $value){
$this->$column = $value;
}
$this->naam_volledig = preg_replace('/\s+/', ' ',$this->voornaam." ".$this->tussenvoegsel." ".$this->achternaam);
}
}
class webWinkelData extends config{
function __construct($klant_id=null){
if($klant_id != null){
$this->klant_id = $klant_id;
$this->setClientData();
}
}
function getBestellingTotaal($sessiondata){
$total = 0;
foreach($sessiondata as $uid => $p){
$total = $total + $p["totaal"];
}
return $total;
}
function setClientData($klant_id = null){
if($klant_id != null) $this->klant_id = $klant_id;
$q = mysql_query("SELECT * FROM `klanten` WHERE `klant_id` = '$this->klant_id'");
$r = mysql_fetch_assoc($q);
$this->klantData = array();
foreach($r as $column => $value){
$this->klantData[$column] = $value;
}
$this->naam_volledig = preg_replace('/\s+/', ' ',$this->klantData["voornaam"]." ".$this->klantData["tussenvoegsel"]." ".$this->klantData["achternaam"]);
$bedrijfsnaam = ($this->klantData["bedrijfsnaam"] != "") ? $this->klantData["bedrijfsnaam"]."<br />tav " : null;
$this->userDBadres = $bedrijfsnaam.$this->naam_volledig."<br />".$this->klantData["straat"]." ".$this->klantData["huisnummer"]."<br />".$this->klantData["postcode"]." ".$this->klantData["plaats"]."<br />".$this->klantData["land"]."<br /><a href='".$this->klantData["email"]."' style='".$this->css_color."'>".$this->klantData["email"]."</a>";
}
function insertKlantinfo($post){
mysql_query("INSERT INTO `klanten` (`aanhef`,`voornaam`,`achternaam`,`bedrijfsnaam`,`telefoon`,`email`,`straat`,`huisnummer`,`postcode`,`plaats`,`land`) VALUES('".e($post["aanhef"])."','".e($post["voornaam"])."','".e($post["achternaam"])."','".e($post["bedrijfsnaam"])."','".e($post["telefoon"])."','".e($post["email"])."','".e($post["straat"])."','".e($post["huisnummer"])."','".e($post["postcode"])."','".e($post["plaats"])."','".e($post["land"])."')") or die(mysql_error());
$this->klant_id = mysql_insert_id();
// set client data
$this->setClientData();
return $this->klant_id;
} //$$_POST['betaalwijze'],1,1,$_POST["opmerkingen"],$bericht,$bestelling_betaald
function insertBestelling($user_id,$factuur_nr,$totaal,$bezorgkosten,$betaalwijze,$halenbezorgen,$voltooid,$opmerkingen,$html_email,$bestelling_betaald){
//$totaal = str_replace(",",".",$totaal);
mysql_query("INSERT INTO `bestellingen` (`klant_id`, `order_id`, `totaal`, `bezorgkosten`, `type_betaling`, `verzending`,`opmerkingen`,`voltooid`,`betaald`,`html`)
VALUES (".esc($user_id).", '".esc($factuur_nr)."','$totaal','".esc($bezorgkosten)."','".esc($betaalwijze)."', '".esc($halenbezorgen)."', '".esc($opmerkingen)."','$voltooid','$bestelling_betaald','".esc($html_email)."')") or die(mysql_error());
return mysql_insert_id();
}
function insertBestellingProducten($bestellijst,$bestelling_id){
foreach($bestellijst as $uid => $p){
$totaal = str_replace(",",".",$p["totaal"]);
mysql_query("INSERT INTO `bestellingen_producten` (`uid`, `bestelling_id`, `aantal`, `prijs`, `totaal`) VALUES ('".esc($p["uid"])."', '".esc($bestelling_id)."', '".esc($p["aantal"])."', '".esc($p["prijs"])."', '".$totaal."')") or die(mysql_error());
}
}
function updateBezorgAdres($bestelling_id,$tav_afleveradres,$straat_afleveradres,$huisnummer_afleveradres,$postcode_afleveradres,$plaats_afleveradres,$land_afleveradres){
mysql_query("UPDATE `bestellingen` SET `tav` = '".esc($tav_afleveradres)."',`straat` = '".esc($straat_afleveradres)."',`huisnummer` = '".esc($huisnummer_afleveradres)."',`postcode` = '".esc($postcode_afleveradres)."',`plaats` = '".esc($plaats_afleveradres)."',`land` = '".esc($land_afleveradres)."' WHERE `bestelling_id` = '".esc($bestelling_id)."'") or die("update error: ".mysql_error());
}
function insertAfleveradres($user_id,$afleveradres){
mysqL_query("INSERT INTO `bestellingen_afleveradressen` (`user_id`, `adres`) VALUES (".esc($user_id).", '".esc($afleveradres)."')");
}
function updateTransactieId($bestelling_id,$transactionID){
mysql_query("UPDATE `bestellingen` SET `ideal_trans_id` = '".esc($transactionID)."',`betaald` = '1' WHERE `bestelling_id` = ".esc($bestelling_id)) or die("update error: ".mysql_error());
}
function updateIdealStatus($transactionID){
mysql_query("UPDATE `bestellingen` SET `voltooid` = 1 WHERE `ideal_trans_id` = '".esc($transactionID)."'") or die("update error: ".mysql_error());
}
function updateHTML($bestelling_id,$html){
mysql_query("UPDATE `bestellingen` SET `html` = '".esc($html)."' WHERE `bestelling_id` = '".esc($bestelling_id)."'") or die("update error: ".mysql_error());
}
function getDBFactuurNummer($transactionID){
$q = mysql_query("SELECT * FROM `bestellingen` WHERE `ideal_trans_id` = '".esc($transactionID)."'");
$r = mysql_fetch_assoc($q);
return $r["order_id"];
}
function bestellingData($bestelling_id){
$q = mysql_query("SELECT * FROM `bestellingen` WHERE `bestelling_id` = '".esc($bestelling_id)."'");
$r = mysql_fetch_assoc($q);
return $r;
}
function getFactuurNummer(){
$q = mysql_query("SELECT * FROM `instellingen` LIMIT 0,1");
$r = mysql_fetch_assoc($q);
mysql_query("UPDATE `instellingen` SET `order_nummer`= ".($r["order_nummer"]+1)." WHERE `id` = ".$r["id"]) or die(mysql_error());
return $factuurnummer = $r["prefix_order_nummer"].sprintf('%05d',$r["order_nummer"]);
}
function bevestigAanmelding(){
// add email footer
$bericht .= $this->getEmailHeader();
// welkomstbericht email
$bericht .= "<tr><td colspan='4'>";
$bericht .= "<p>Beste ".$this->naam_volledig.",<br><br>";
$bericht .= "Wij heten u van harte welkom als klant bij Kidspel.</p>";
$bericht .= "<p><strong>Hieronder vindt u een overzicht van de ingevoerde gegevens op de website.</strong></p>";
$bericht .= "<p>U kunt direct beginnen met bestellen op <a href='http://www.kidsspel.nl' style='color:#D22229'>kidsspel.nl</a></p>";
$bericht .= "<p>Met vriendelijke groet,<br> Kidsspel</p>";
$bericht .= "</td></tr>";
$bericht .= "<tr><td colspan='4' style='border-bottom:solid 1px #d9d9d9;'> </td></tr>";
$bericht .= "<tr><td colspan='4' style='line-height:1px;'> </td></tr>";
$bericht .= "<tr><td colspan='4'>";
// loop registratie velden
$bericht .= "<table border='0' cellspacing='0' cellpadding='0' style='width:100%; font-size:12px;font-family:Helvetica,arial, sans-serif; color:#333;'>";
foreach($this->klantData as $column => $value){
if($column == "gebruiker_id" || $column == "datum_aanmelding") continue;
$label = ($column == "email") ? $column." (gebruikersnaam)": $column;
if($value != "") $bericht .= "<tr><td style='width:200px;height:20px;font-weight:bold;'>".ucfirst($label)."</td><td style='height:20px;'>$value</td></tr>";
}
$bericht .= "</table>";
$bericht .= "</td></tr>";
// add email footer
$bericht .= $this->getEmailFooter();
$verstuurd = $this->verstuurEmail($bericht,"Bevestiging aanmelding kidsspel.nl");
return $verstuurd;
}
function maakFactuur($emailBody){
// add email footer
$bericht = $this->getEmailHeader();
// email body toevoegen
$bericht .= "<tr><td colspan='4'>".$emailBody."</td></tr>";
// add email footer
$bericht .= $this->getEmailFooter();
return $bericht;
}
function verstuurEmail($bericht,$onderwerp,$user_email=null){
$data = $this->data("instellingen","WHERE `id`='1'");
$data = $data[0];
$d = date('l dS \of F Y h:i:s A');
$headers_consument = "From: ".$data["master_email"]."\n";
$headers_consument .= "Reply-To: ".$data["master_email"]."\n";
$headers_consument .= "Content-type: text/html; charset=UTF-8\n";
$headers_masteremail = "From: ".$data["master_email"]."\n";
$headers_masteremail .= "Reply-To: $user_email\n";
$headers_masteremail .= "Content-type: text/html; charset=UTF-8\n";
if($user_email != null) mail($user_email, $onderwerp, $bericht, $headers_consument);
if(mail($data["master_email"], $onderwerp, $bericht, $headers_masteremail)) return true;
else return false;
}
function getEmailFooter(){
$data = $this->data("instellingen","WHERE `id`='1'");
$data = $data[0];
//echo "<pre>";
//print_r($data);
//echo "</pre>";
$footer = "<tr><td colspan='4' style='border-bottom:solid 1px #d9d9d9;'> </td></tr>";
$footer .= "<tr><td colspan='4'> </td></tr>";
$footer .= "<tr><td colspan='4' style='width:260px;vertical-align:top;line-height:16px;'>";
$footer .= "<table border='0' cellspacing='0' cellpadding='3' style='width:100%; font-size:13px;font-family:Helvetica,arial, sans-serif; color:#333;'>";
$footer .= "<tr>";
$footer .= "<td style='width:300px;vertical-align:top;font-size:12px;'>
<strong>".$data["bedrijfsnaam"]."</strong><br />
".$data["adres"]."<br />
".$data["postcode_woonplaats"]."<br />
Telefoon ".$data["telefoon"]."</td>";
$footer .= "<td style='vertical-align:top;font-size:12px;'><br />Bank ".$data["bank"]."<br />IBAN ".$data["bank_iban"]."<br />BIC ".$data["bank_bic"]."</td>";
$footer .= "</tr>";
$footer .= "</table>";
$footer .= "</td></tr>";
$footer .= "<tr><td colspan='4'> </td></tr>";
$footer .= "<tr><td colspan='4'> </td></tr>";
$footer .= "</table>";
$footer .= "</body></html>";
return $footer;
}
function getEmailHeader(){
// echo "<pre>";
// print_r($this);
// echo "</pre>";
$this->initialize();
$header = "<html><head></head><body>";
$header .= "<table border='0' cellspacing='0' cellpadding='0' style='width:600px; font-size:13px;font-family:Helvetica,arial, sans-serif; color:#333;' align='center'>";
$header .= "<tr><td colspan='4'> </td></tr>";
$header .= "<tr><td colspan='4' style='border-bottom:solid 1px #d9d9d9;'><img src='".$this->base."logo_".$this->company_short.".png' alt='$this->company_short' /><br /><br /></td></tr>";
$header .= "<tr><td colspan='4'> </td></tr>";
return $header;
}
}
class cassetteForm extends config{
function __construct($formid){
$q = mysql_query("SELECT * FROM `forms` WHERE `form_id` = $formid");
$r = mysql_fetch_assoc($q);
$this->formid = $formid;
$this->unique_id = $r["unique_id"];
$this->eName = $r["form_name"];
$this->response = $r["form_response"];
$this->desc = $r["form_desc"];
$this->btn_label = $r["button_label"];
$this->handler = $r["custom_handler"] != "" ? $r["custom_handler"] : "handle-form";
$this->custom_form = isset($r["custom_form"]) ? $r["custom_form"] : null;
$this->showMsg = false;
}
function getFields(){
$elements = array();
$q = mysql_query("SELECT * FROM `form_elements` WHERE `unique_id`= '$this->unique_id' ORDER BY `position` ASC ");
while($r = mysql_fetch_assoc($q)){
$e = array();
$e["elementId"] = $r["form_element_id"];
$e["type"] = $r["field_id"];
$e["required"] = $r["value"];
if($e["required"] == 1) $this->showMsg = true;
$test = $this->getFormField($r['form_element_id'],$r['field_id'],$r["name"],$r["description"]);
foreach($test as $t => $v){
$e[$t] = $v;
}
array_push($elements,$e);
}
// add form id
array_push($elements,$this->addFormId());
// add a button
array_push($elements,$this->addButton());
// add required filling fields
if($this->showMsg == true) array_push($elements,$this->addMsg());
return $elements;
}
function addMsg(){
$d = array();
$d["type"] = "msg";
$d["name"] = "*) Verplicht invullen";
$d["desc"] = "";
return $d;
}
function addButton(){
$d = array();
$d["type"] = "submit";
$d["name"] = "";//$naam;
$d["desc"] = "";//$desc;
return $d;
}
function addFormId(){
$d = array();
$d["type"] = "hidden";
$d["name"] = "formid";
$d["desc"] = $this->formid;
return $d;
}
function getFormField($form_el_id,$field_id,$naam,$desc){
$d = array();
$elementName = str_replace(" ","",$form_el_id."-".$naam);
switch($field_id){
// input
case 1:
$d["type"] = "input";
$d["name"] = $naam;
$d["desc"] = $desc;
break;
case 37:
$d["type"] = "review";
$d["name"] = $naam;
$d["desc"] = $desc;
break;
case 38:
$d["type"] = "postdata";
$d["name"] = $naam;
$d["desc"] = $desc;
break;
//dropdown
case 28:
$d["type"] = "select";
$d["name"] = $naam;
$d["desc"] = $desc;
$o = array();
$q = mysql_query("SELECT * FROM form_elements_options WHERE form_element_id = $form_el_id ORDER BY form_option_id ASC");
while($r = mysql_fetch_assoc($q)){
array_push($o,$r['value']);
}
$d["options"] = $o;
break;
//radio
case 31:
$d["type"] = "radio";
$d["name"] = $naam;
$d["desc"] = $desc;
$o = array();
$q = mysql_query("SELECT * FROM form_elements_options WHERE form_element_id = $form_el_id ORDER BY form_option_id ASC");
while($r = mysql_fetch_assoc($q)){
array_push($o,$r['value']);
}
$d["options"] = $o;
break;
//checkbox
case 24:
$d["type"] = "checkbox";
$d["name"] = $naam;
$d["desc"] = $desc;
$o = array();
$q = mysql_query("SELECT * FROM form_elements_options WHERE form_element_id = $form_el_id");
while($r = mysql_fetch_assoc($q)){
array_push($o,$r['value']);
}
$d["options"] = $o;
break;
//multi text line
case 5:
$d["type"] = "textarea";
$d["name"] = $naam;
$d["desc"] = $desc;
break;
case 15:
$d["type"] = "deactivatedfield";
$d["name"] = $naam;
$d["desc"] = $desc;
break;
case 14:
$d["type"] = "datepicker";
$d["name"] = $naam;
$d["desc"] = $desc;
break;
case 16:
$d["type"] = "inactiveinput";
$d["name"] = $naam;
$d["desc"] = $desc;
break;
case 32:
$d["type"] = "tussenkop";
$d["name"] = $naam;
$d["desc"] = $desc;
break;
case 18:
case 60:
$d["type"] = "bijlage";
$d["name"] = $naam;
$d["desc"] = $desc;
break;
case 59:
$d["type"] = "geboortedatum";
$d["name"] = $naam;
$d["desc"] = $desc;
break;
}
$d["valueName"] = preg_replace("/ /","_",strtolower($form_el_id."_".$naam));
return $d;
}
function cassetteFormElement($array){
$hidefieldsets = array("submit","hidden","msg");
$type = $array["type"];
$name = $array["name"];
$desc = (trim($array["desc"]) != "" && $type != "postdata") ? $array["desc"] : $name;
$opts = (isset($array["options"])) ? $array["options"] : null ;
$eid = (isset($array["elementId"])) ? $array["elementId"] : null;
$req = (isset($array["required"]) && $array["required"] == 1) ? " required" : "";
$lbl = (isset($array["required"]) && $array["required"] == 1) ? " *" : "";
$inpName = $eid.preg_replace("/[^0-9a-zA-Z]/","",strtolower($name));
// return preg_replace("/[-]+/","-",preg_replace("/[^0-9a-zA-Z-#\/]/",'-', trim($valid)));
$el = "";
//echo $type;
switch($type){
case "input":
//$el .= "<legend>$desc $lbl</legend>";
$el .= "<label class='legend'>$desc $lbl</label>";
$el .= "<div class='input-wrapper'><input type='text' class='form-text$req' name='$inpName' id='$inpName' autocomplete='off' /></div>";
break;
case "postdata":
//$el .= "<legend>$desc $lbl</legend>";
$el .= "<label class='legend'>$desc $lbl</label>";
$el .= "<div class='input-wrapper'><input type='text' class='form-text$req' disabled='true' autocomplete='off' value='".$_REQUEST[$array["desc"]]."' /></div>";
$el .= "<input type='hidden' class='form-text$req' name='$inpName' autocomplete='off' value='".$_REQUEST[$array["desc"]]."' /></div>";
break;
case "inactiveinput":
//$el .= "<legend>$desc $lbl</legend>";
$el .= "<label class='legend'>$desc $lbl</label>";
$el .= "<input type='text' name='$inpName' class='$req' value='#value#'disabled />";
break;
case "deactivatedfield":
$el .= "<input type='hidden' name='$inpName' value='$desc'/>";
break;
case "datepicker":
//$el .= "<legend>$desc $lbl</legend>";
$el .= "<label class='legend'>$desc $lbl</label>";
$el .= "<div class='input-wrapper'><input type='text' name='$inpName' class='form-text calendar$req' autocomplete='off' /></div>";
break;
case "select":
//$el .= "<legend>$desc $lbl</legend>";
$el .= "<label class='legend'>$desc $lbl</label>";
$el .= "<div class='option-wrapper'><select type='text' name='$inpName' class='select'>";
foreach($opts as $o){
$el .= "<option value='".htmlentities($o)."'>".utf8_decode($o)."</option>";
}
$el .= "</select></div>";
break;
case "radio":
$verplicht = ($array["required"] == 1) ? " required" : "";
//$el .= "<legend>$desc $lbl</legend>";
$el .= "<label class='legend'>$desc $lbl</label>";
$el .= "<div class='block$verplicht' id='$inpName'>";
foreach($opts as $i => $o){
$checked = ($i == 0) ? " checked" : null;
$el .= "<span class='floatleft'><input type='radio' name='$inpName' value='$o' $checked /> <label>$o</label></span>";
}
$el .= "</div>";
break;
case "checkbox":
$verplicht = ($array["required"] == 1) ? " required" : "";
$el .= "<label class='legend'>$desc $lbl</label>";
$el .= "<div class='block$verplicht' id='$inpName'>";
foreach($opts as $o){
$el .= "<span class='floatleft'><input type='checkbox' name='".$inpName."[]' value='$o' /> <label>$o</label></span>";
}
$el .= "</div>";
break;
case "textarea":
//$el .= "<legend>$desc $lbl</legend>";
$el .= "<label class='legend'>$desc $lbl</label>";
$el .= "<div class='input-wrapper'><textarea class='form-text textarea$req' name='$inpName'></textarea></div>";
break;
case "submit":
$el .= "<div class='button-wrapper'><input type='submit' name='send' value='".$this->btn_label."' class='form-button' id='".preg_replace("/[^0-9a-zA-Z]/","",strtolower($this->btn_label))."' /></div>";
break;
case "hidden":
$el .= "<input type='hidden' name='$inpName' value='$desc'/>";
break;
case "msg":
$el .= "<div class='msg-wrapper'><p>$desc</p></div>";
break;
case "tussenkop":
$el .= "<label class='group'>$name</label>";
if($array["desc"]) $el .= "<p>".$array["desc"]."</p>";
break;
case "bijlage":
$el .= "<label class='legend'>$desc $lbl</label>";
$el .= "<div class='file-wrapper'><input type='file' class='form-text$req' name='$inpName' accept='image/*' /></div>";
break;
case "review":
$el .= "<label class='legend'>$desc $lbl</label>";
$el .= "<div class='rating' id='$inpName'>";
for($x = 1; $x <= 10; $x++){
$el .= "<span class='rate-item'>".$x."</span>";
}
$el .= "</div>";
$el .= "<input type='hidden' class='rating-count' name='$inpName' id='$inpName' value='0' />";
break;
case "geboortedatum":
//$el .= "<legend>$desc $lbl</legend>";
// $el .= "<label class='legend'>$desc $lbl</label>";
// $el .= "<div class='input-wrapper'><input type='text' class='form-text birthdate $req' name='$inpName' id='$inpName' autocomplete='off' value='dd-mm-yyyy' /></div>";
$el .= '<label class="legend">'.$desc.' '.$lbl.'</label>';
$el .= "<div class='block'>";
$el .= '<div class="input-wrapper date"><input type="text" name="'.$inpName.'-dd" class="form-text date" autocomplete="off" placeholder="dd" maxlength="2" value="dd" /></div>';
$el .= '<div class="input-wrapper date"><input type="text" name="'.$inpName.'-mm" class="form-text date" autocomplete="off" placeholder="mm" maxlength="2" value="mm" /></div>';
$el .= '<div class="input-wrapper date"><input type="text" name="'.$inpName.'-jjjj" class="form-text date" autocomplete="off" placeholder="jjjj" maxlength="4" value="yyyy" /></div>';
$el .= '</div>';
break;
}
if(!in_array($type,$hidefieldsets)) $data .= "<fieldset>";
$data .= $el;
if($type != "msg") $data .= "</fieldset>";
return $data;
}
}
?>