452 lines
No EOL
15 KiB
PHP
452 lines
No EOL
15 KiB
PHP
<?php
|
|
namespace App\Services;
|
|
|
|
use App\Models\Attribute;
|
|
use App\Models\Category;
|
|
use App\Models\Country;
|
|
use App\Models\Ingredient;
|
|
use App\Models\Product;
|
|
use App\Models\ShippingCountry;
|
|
use App\Models\ShoppingUser;
|
|
use App\Models\UserLevel;
|
|
use App\User;
|
|
|
|
class HTMLHelper
|
|
{
|
|
|
|
|
|
private static $months = [
|
|
1 => 'Januar',
|
|
2 => 'Februar',
|
|
3 => 'März',
|
|
4 => 'April',
|
|
5 => 'Mai',
|
|
6 => 'Juni',
|
|
7 => 'Juli',
|
|
8 => 'August',
|
|
9 => 'September',
|
|
10 => 'Oktober',
|
|
11 => 'November',
|
|
12 => 'Dezember',
|
|
];
|
|
|
|
|
|
private static $roles = [
|
|
0 => 'Kunde',
|
|
1 => 'Redakteur',
|
|
7 => 'Admin',
|
|
8 => 'SuperAdmin',
|
|
9 => 'SySAdmin',
|
|
//10 => "API",
|
|
];
|
|
|
|
|
|
public static function getMonth($i){
|
|
return self::$months[intval($i)];
|
|
}
|
|
|
|
public static function getRoleLabel($role_id = 0){
|
|
return '<span class="badge badge-pill '.self::getLabel($role_id).'">'.self::$roles[$role_id].'</span>';
|
|
}
|
|
|
|
public static function getLabel($id){
|
|
switch ($id) {
|
|
case 0:
|
|
return 'badge-default';
|
|
break;
|
|
case 1:
|
|
return 'badge-warning';
|
|
break;
|
|
case 7:
|
|
return 'badge-primary';
|
|
break;
|
|
case 8:
|
|
return 'badge-primary';
|
|
break;
|
|
case 9:
|
|
return 'badge-danger';
|
|
break;
|
|
case 10:
|
|
return 'badge-danger';
|
|
break;
|
|
}
|
|
|
|
}
|
|
|
|
public static function getCustomListOf($name, $select){
|
|
$ret = "";
|
|
if($name === 'day'){
|
|
$start = 1;
|
|
$end = 31;
|
|
$values = range($start, $end);
|
|
$ret = '<option value="">'.__('Tag').'</option>\n';
|
|
foreach ($values as $value){
|
|
$attr = ($value == $select) ? 'selected="selected"' : '';
|
|
$ret .= '<option value="'.$value.'" '.$attr.'>'.$value.'</option>\n';
|
|
}
|
|
}
|
|
if($name === 'month'){
|
|
$ret = '<option value="">'.__('Monat').'</option>\n';
|
|
foreach (self::$months as $key=>$value){
|
|
$attr = ($key == $select) ? 'selected="selected"' : '';
|
|
$ret .= '<option value="'.$key.'" '.$attr.'>'.$value.'</option>\n';
|
|
}
|
|
}
|
|
if($name === 'year'){
|
|
$start = date("Y", strtotime("-5 years", time()));
|
|
$end = date("Y", strtotime("-90 years", time()));
|
|
$values = range($start, $end);
|
|
$ret = '<option value="">'.__('Jahr').'</option>\n';
|
|
foreach ($values as $value){
|
|
$attr = ($value == $select) ? 'selected="selected"' : '';
|
|
$ret .= '<option value="'.$value.'" '.$attr.'>'.$value.'</option>\n';
|
|
}
|
|
}
|
|
|
|
return $ret;
|
|
|
|
}
|
|
public static function setContentReadMore($content){
|
|
|
|
$sep = '##mehr lesen##';
|
|
if(strpos($content, $sep) !== false){
|
|
$name = 'collapse_'.random_int(1000, 10000);
|
|
$split = explode($sep, $content);
|
|
$first = isset($split[0]) ? $split[0] : "";
|
|
$text = isset($split[1]) ? $split[1] : "";
|
|
|
|
$content = $first;
|
|
$content .= '<br><a class="btn btn-primary btn-sm mt-2 collapsed" data-toggle="collapse" href="#'.$name.'" role="button" aria-expanded="false" aria-controls="'.$name.'">
|
|
<span class="if-collapsed">'.__('mehr lesen').'</span>
|
|
<span class="if-not-collapsed">'.__('weniger lesen').'</span>
|
|
</a>';
|
|
$content .= '<div class="collapse" id="'.$name.'">
|
|
<div class="card card-body pt-0">
|
|
'.$text.'
|
|
</div>
|
|
</div>';
|
|
}
|
|
return $content;
|
|
}
|
|
|
|
public static function getRolesOptions(){
|
|
$ret = "";
|
|
foreach (self::$roles as $role_id => $value){
|
|
$ret .= '<option value="'.$role_id.'">'.$value.'</option>\n';
|
|
}
|
|
return $ret;
|
|
}
|
|
|
|
public static function getYearSelectOptions(){
|
|
$start = date("Y", strtotime("-5 years", time()));
|
|
$end = date("Y", strtotime("+1 years", time()));
|
|
$values = range($start, $end);
|
|
$now = date("Y", time());
|
|
$ret = "";
|
|
foreach ($values as $value){
|
|
$attr = ($value == $now) ? 'selected="selected"' : '';
|
|
$ret .= '<option value="'.$value.'" '.$attr.'>'.$value.'</option>\n';
|
|
}
|
|
return $ret;
|
|
}
|
|
|
|
public static function getAttributesWithoutParents($id = false, $sameId = false, $all = true){
|
|
$values = Attribute::where('parent_id', null)->get();
|
|
$ret = "";
|
|
if($all){
|
|
$ret .= '<option value="">'.__('no').'</option>\n';
|
|
}
|
|
foreach ($values as $value){
|
|
if($sameId == $value->id){
|
|
continue;
|
|
}
|
|
$attr = ($value->id == $id) ? 'selected="selected"' : '';
|
|
$ret .= '<option value="'.$value->id.'" '.$attr.'>'.$value->name.'</option>\n';
|
|
}
|
|
return $ret;
|
|
}
|
|
|
|
public static function getCategoriesWithoutParents($id = false, $sameId = false, $all = true){
|
|
$values = Category::where('parent_id', null)->get();
|
|
$ret = "";
|
|
if($all){
|
|
$ret .= '<option value="">'.__('no').'</option>\n';
|
|
}
|
|
foreach ($values as $value){
|
|
if($sameId == $value->id){
|
|
continue;
|
|
}
|
|
$attr = ($value->id == $id) ? 'selected="selected"' : '';
|
|
$ret .= '<option value="'.$value->id.'" '.$attr.'>'.$value->name.'</option>\n';
|
|
}
|
|
return $ret;
|
|
}
|
|
|
|
public static function getProductsOptions($ids = array(), $all = true){
|
|
if($ids == null){
|
|
$ids = array();
|
|
}
|
|
$values = Product::where('active', 1)->get();
|
|
$ret = "";
|
|
if($all){
|
|
$ret .= '<option value="">'.__('no').'</option>\n';
|
|
}
|
|
foreach ($values as $value){
|
|
$attr = in_array($value->id, $ids) ? 'selected="selected"' : '';
|
|
$ret .= '<option value="'.$value->id.'" '.$attr.'>'.$value->name.'</option>\n';
|
|
}
|
|
return $ret;
|
|
}
|
|
|
|
public static function getCategoriesOptions($ids = array(), $all = true){
|
|
$values = Category::where('active', 1)->get();
|
|
$ret = "";
|
|
if($all){
|
|
$ret .= '<option value="">'.__('no').'</option>\n';
|
|
}
|
|
foreach ($values as $value){
|
|
$attr = in_array($value->id, $ids) ? 'selected="selected"' : '';
|
|
$ret .= '<option value="'.$value->id.'" '.$attr.'>'.$value->name.'</option>\n';
|
|
}
|
|
return $ret;
|
|
}
|
|
|
|
public static function getCategoriesOptionsByShowOn($ids = array(), $all = false, $show_on = []){
|
|
$values = Category::where('active', true)->whereJsonContains('show_on', $show_on)->orderBy('pos', 'ASC')->get();
|
|
$ret = "";
|
|
if($all){
|
|
$ret .= '<option value="">'.$all.'</option>\n';
|
|
}
|
|
foreach ($values as $value){
|
|
$attr = in_array($value->id, $ids) ? 'selected="selected"' : '';
|
|
$ret .= '<option value="'.$value->id.'" '.$attr.'>'.$value->name.'</option>\n';
|
|
}
|
|
return $ret;
|
|
}
|
|
|
|
public static function getProductIngredientsOptions($has_ids = array(), $all = true){
|
|
$values = Ingredient::where('active', 1)->get();
|
|
$ret = "";
|
|
$attr = "";
|
|
foreach ($values as $value){
|
|
if(!in_array($value->id, $has_ids)){
|
|
$ret .= '<option value="'.$value->id.'" '.$attr.'>'.$value->name.'</option>\n';
|
|
}
|
|
}
|
|
return $ret;
|
|
}
|
|
|
|
public static function getAttributesOptions($ids = array(), $all = true){
|
|
$values = Attribute::where('active', 1)->get();
|
|
$ret = "";
|
|
if($all){
|
|
$ret .= '<option value="">'.__('no').'</option>\n';
|
|
}
|
|
foreach ($values as $value){
|
|
$attr = in_array($value->id, $ids) ? 'selected="selected"' : '';
|
|
$ret .= '<option value="'.$value->id.'" '.$attr.'>'.$value->name.'</option>\n';
|
|
}
|
|
return $ret;
|
|
}
|
|
|
|
public static function getUserLevelOptions($id = false, $all = true){
|
|
$values = UserLevel::where('active', 1)->get();
|
|
$ret = "";
|
|
if($all){
|
|
$ret .= '<option value="">'.__('no').'</option>\n';
|
|
}
|
|
foreach ($values as $value){
|
|
$attr = ($value->id == $id) ? 'selected="selected"' : '';
|
|
$ret .= '<option value="'.$value->id.'" '.$attr.'>'.$value->name.'</option>\n';
|
|
}
|
|
return $ret;
|
|
}
|
|
|
|
|
|
public static function getCompanyOptions($company){
|
|
$options = array(1 => __('business'), 0 => __('private'), );
|
|
$ret = "";
|
|
foreach ($options as $id => $value){
|
|
$attr = ($id == $company) ? 'selected="selected"' : '';
|
|
$ret .= '<option value="'.$id.'" '.$attr.'>'.$value.'</option>\n';
|
|
}
|
|
return $ret;
|
|
}
|
|
|
|
public static function getContriesWithMore($id, $all=true){#
|
|
$values = Country::all();
|
|
$counter = 1;
|
|
$ret = "";
|
|
if($all){
|
|
$ret .= '<option value="">'.__('please select').'</option>\n';
|
|
|
|
}
|
|
foreach ($values as $value){
|
|
if( $counter == 7){
|
|
$ret .= '<optgroup label="'.__('further countrie').'">';
|
|
}
|
|
$attr = ($value->id == $id) ? 'selected="selected"' : '';
|
|
$ret .= '<option value="'.$value->id.'" '.$attr.'>'.$value->getLocated().'</option>\n';
|
|
|
|
$counter ++;
|
|
}
|
|
$ret .= '</optgroup>';
|
|
return $ret;
|
|
}
|
|
|
|
public static function getContriesCodes($id, $all=true){#
|
|
$values = Country::all();
|
|
$counter = 1;
|
|
$ret = "";
|
|
if($all){
|
|
$ret .= '<option value="">'.__('please select').'</option>\n';
|
|
|
|
}
|
|
foreach ($values as $value){
|
|
|
|
if(!$value->phone) continue;
|
|
if( $counter == 7){
|
|
$ret .= '<optgroup label="'.__('further countrie').'">';
|
|
}
|
|
$attr = ($value->id == $id) ? 'selected="selected"' : '';
|
|
$ret .= '<option value="'.$value->id.'" '.$attr.'>'.$value->phone.'('.$value->getLocated().')</option>\n';
|
|
|
|
$counter ++;
|
|
}
|
|
$ret .= '</optgroup>';
|
|
return $ret;
|
|
}
|
|
|
|
public static function getCountriesWithoutUsedShippings($all=true){#
|
|
$values = Country::all();
|
|
$country_ids = ShippingCountry::all()->pluck('country_id')->toArray();
|
|
$ret = "";
|
|
if($all){
|
|
$ret .= '<option value="">'.__('please select').'</option>\n';
|
|
}
|
|
foreach ($values as $value){
|
|
if(!in_array($value->id, $country_ids)){
|
|
$ret .= '<option value="'.$value->id.'">'.$value->getLocated().'</option>\n';
|
|
}
|
|
}
|
|
return $ret;
|
|
}
|
|
|
|
public static function getCountryNameFormShipping($id){
|
|
$value = ShippingCountry::find($id);
|
|
if($value){
|
|
return $value->country->getLocated();
|
|
}
|
|
return "not defined";
|
|
}
|
|
|
|
public static function getCountriesForShipping($id, $all=false, $shipping_for = false){#
|
|
$values = ShippingCountry::all();
|
|
|
|
if($shipping_for){
|
|
$temp = [];
|
|
foreach($values as $value){
|
|
if($shipping = $value->shipping){
|
|
if($shipping->getShippingPricesFirstBy($shipping_for)){
|
|
$temp[] = $value;
|
|
}
|
|
}
|
|
}
|
|
$values = $temp;
|
|
}
|
|
$ret = "";
|
|
if($all){
|
|
$ret .= '<option value="">'.__('please select').'</option>\n';
|
|
}
|
|
foreach ($values as $value){
|
|
$attr = ($value->id == $id) ? 'selected="selected"' : '';
|
|
$ret .= '<option value="'.$value->id.'" '.$attr.'>'.$value->country->getLocated().'</option>\n';
|
|
|
|
}
|
|
return $ret;
|
|
}
|
|
|
|
public static function getSalutation($id){
|
|
$values = array('mr' => __('MR'), 'ms' => __('MS'));
|
|
$ret = "";
|
|
$ret .= '<option value="">'.__('please select').'</option>\n';
|
|
foreach ($values as $key => $value){
|
|
$attr = ($key == $id) ? 'selected="selected"' : '';
|
|
$ret .= '<option value="'.$key.'" '.$attr.'>'.$value.'</option>\n';
|
|
}
|
|
return $ret;
|
|
}
|
|
|
|
public static function getSalutationLang($id){
|
|
$values = array('mr' => __('MR'), 'ms' => __('MS'));
|
|
return (!empty($values[$id]) ? $values[$id] : '');
|
|
}
|
|
|
|
public static function getTaxSaleOptions($id){
|
|
$values = array('1' => __('taxable_sales_1'), '2' => __('taxable_sales_2'));
|
|
$ret = "";
|
|
$ret .= '<option value="">'.__('please select').'</option>\n';
|
|
foreach ($values as $key => $value){
|
|
$attr = ($key == $id) ? 'selected="selected"' : '';
|
|
$ret .= '<option value="'.$key.'" '.$attr.'>'.$value.'</option>\n';
|
|
}
|
|
return $ret;
|
|
}
|
|
|
|
public static function getMembersOptions($id, $all=false){
|
|
$values = User::where('active', '=', true)->where('blocked', '=', false)->where('payment_account', '>=', now())->get();
|
|
$ret = "";
|
|
if($all){
|
|
$ret .= '<option value="">'.__('please select').'</option>\n';
|
|
}
|
|
foreach ($values as $value){
|
|
$attr = ($value->id == $id) ? 'selected="selected"' : '';
|
|
$to="";
|
|
if($value->account){
|
|
$to = $value->account->first_name." ".$value->account->last_name." | ";
|
|
}
|
|
$ret .= '<option value="'.$value->id.'" '.$attr.'>'.$to.$value->email.' #'.$value->account->m_account.'</option>\n';
|
|
|
|
}
|
|
return $ret;
|
|
}
|
|
|
|
public static function getUserCustomerOptions($id, $all=false){
|
|
$values = ShoppingUser::select(['id', 'billing_firstname', 'billing_lastname', 'billing_email', 'number'])
|
|
->where('shopping_users.member_id', '=', \Auth::user()->id)->get();
|
|
$ret = "";
|
|
if($all){
|
|
$ret .= '<option value="">'.__('please select').'</option>\n';
|
|
}
|
|
foreach ($values as $value){
|
|
$attr = ($value->id == $id) ? 'selected="selected"' : '';
|
|
$to = $value->billing_firstname." ".$value->billing_lastname." | ".$value->billing_email;
|
|
$ret .= '<option value="'.$value->id.'" '.$attr.'>'.$to.' #'.$value->account->m_account.'</option>\n';
|
|
|
|
}
|
|
return $ret;
|
|
}
|
|
|
|
public static function getAnyOptions($id, $options = [], $all=true){#
|
|
$ret = "";
|
|
if($all){
|
|
$ret .= '<option value="">'.__('please select').'</option>\n';
|
|
}
|
|
foreach ($options as $key=>$value){
|
|
$attr = ($key == $id) ? 'selected="selected"' : '';
|
|
$ret .= '<option value="'.$key.'" '.$attr.'>'.$value.'</option>\n';
|
|
}
|
|
return $ret;
|
|
}
|
|
|
|
public static function getOptionRange($select, $from=1, $to=50){
|
|
$values = range($from, $to);
|
|
$ret = "";
|
|
foreach ($values as $value){
|
|
$attr = ($value == $select) ? 'selected="selected"' : '';
|
|
$ret .= '<option value="'.$value.'" '.$attr.'>'.$value.'</option>\n';
|
|
}
|
|
return $ret;
|
|
|
|
}
|
|
} |