<?php use App\Helpers\BibClass; use App\Http\Controllers\NepaliDictonary\DictonaryController; use App\Models\Log\ActivityLog; use App\Models\Log\ErrorLog; use App\Models\Log\OperationLog; use Illuminate\Support\Facades\App; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Schema; use Illuminate\Support\Str; function pre($object, $die = false) { echo "<pre>"; print_r($object); echo "</pre>"; if ($die) die; } function label($text, $echo = true) { $text = strtoupper($text); if ($echo) { echo $text; } else { return $text; } } function template($filepath) { $filepath = env("APP_URL") . '/' . env("CLIENT_PATH") . '/' . $filepath; // $filepath=str_replace('\\','/',env("APP_URL")."/layout/".$filepath); echo $filepath; // return } function landingtemplate($filepath) { $filepath = env("APP_URL") . '/' . env("CLIENT_PATH") . '/landing/' . $filepath; // $filepath=str_replace('\\','/',env("APP_URL")."/layout/".$filepath); echo $filepath; // return } if (!function_exists('N2')) { function N2($N) { return number_format($N, 2, '.', ','); } } if (!function_exists('slugify')) { function slugify($text, $tableName = null) { // Generate the initial slug from the text $slug = preg_replace('/[^a-zA-Z0-9\-]/', '-', $text); $slug = preg_replace('/-+/', '-', $slug); $slug = trim($slug, '-'); $slug = strtolower($slug); // If the table name is provided, check for uniqueness and modify the slug if needed if ($tableName) { $originalSlug = $slug; $count = 1; while (isSlugExists($tableName, $slug)) { $slug = $originalSlug . '-' . $count; $count++; } } return $slug; } } if (!function_exists('isSlugExists')) { function isSlugExists($tableName, $slug) { $aliasField = 'alias'; $count = DB::table($tableName) ->where($aliasField, $slug) ->count(); return $count > 0; } } function createButton($class = "", $type = "submit", $display = "Submit", $url = "") { if (!$url): ?> <button class="btn <?php echo $class; ?>" type="<?php echo ($display == "Submit") ? $display : $type; ?>"> <?php echo label($display) ?> </button> <?php else: ?> <a class="btn <?php echo $class; ?>" href="<?php echo $url; ?>"> <?php echo label($display) ?> </a> <?php endif; } function createText($name, $id, $display, $class = "", $value = "", $placeHolder = "", $readonly = "", $required = "") { ?> <?php if ($display != ""): ?><label for="<?php echo $id; ?>" class="form-label col-form-label"> <?php echo label($display); ?> </label> <?php endif; ?> <div class="form-control-wrap"> <input type="text" id="<?php echo $id; ?>" <?php echo $readonly; ?> placeholder="<?php echo $placeHolder; ?>" name="<?php echo $name; ?>" class="form-control <?php echo $class; ?>" value="<?php echo $value; ?>" <?php if ($required != ""): ?>required<?php endif; ?>> </div> <p id='error_<?php echo $name; ?>' class='text-danger custom-error'></p> <?php } /** * $tableName = Name of table * $pk = primary key of table * $name = table select column name * $class = extra class * $data = Existing data or for edit case showing selected data * $display = Displaying name or showing label name. */ function getSelectForForeignColumn($tableName, $pk, $name, $class = "form-control", $data = null, $display = null, $customColumnName = null) { $tableName = strtolower(trim($tableName)); $pk = trim($pk); $name = trim($name); $class = trim($class); $systems = DB::table($tableName)->where('status', '<>', -1)->orderBy($pk, 'asc')->pluck($name, $pk); $customColumnName = !empty($customColumnName) ? $customColumnName : $pk; //if we pass column name other then primary key. customCreateSelect($pk, $pk, $class, $display ?? $name, $systems, ($data) ? $data->$customColumnName : null); } function customCreateSelect($name, $id, $class = "form-control", $display = '', $values = array(), $defaultValue = '') { $disabled = (in_array("DISABLED", explode(" ", strtoupper($class)))) ? "Disabled" : false; $required = (in_array("REQUIRED", explode(" ", strtoupper($class)))) ? "Required" : false; ?><label for="<?php echo $id; ?>" class="form-label col-form-label"> <?php echo label($display); ?> </label> <?php if ($disabled): ?> <input type="hidden" name="<?php echo $name; ?>" value="<?php echo $defaultValue; ?>" /> <?php endif; ?> <select class="form-select <?php echo $class ?>" name="<?php echo $name; ?>" data-search="true" id="<?php echo $name; ?>" aria-label="Default select example" <?php echo ($disabled) ? "Disabled" : ""; ?> <?php echo ($required) ? "Required" : ""; ?>> <option value=""> <?php label("Select Option"); ?> </option> <?php foreach ($values as $key => $value) { ?> <option value="<?= $key ?>" <?php echo $defaultValue == $key ? 'selected' : '' ?>> <?= $value ?> </option> <?php } ?> </select> <p id='error_<?php echo $name; ?>' class='text-danger custom-error'></p> <?php } function createCustomSelectFromArray($Array, $displayTextForLabel, $HTMLElementName, $defaultValueSelected = '', $additionalClass = "form-control") { $disabled = (in_array("DISABLED", explode(" ", strtoupper($additionalClass)))) ? "Disabled" : false; $required = (in_array("REQUIRED", explode(" ", strtoupper($additionalClass)))) ? "Required" : false; ?> <label for="<?php echo $HTMLElementName; ?>" class="form-label col-form-label"> <?php echo label($displayTextForLabel); ?> </label> <?php if ($disabled): ?> <input type="hidden" name="<?php echo $HTMLElementName; ?>" value="<?php echo $defaultValueSelected; ?>" /> <?php endif; ?> <select class="form-select <?php echo $additionalClass ?>" name="<?php echo $HTMLElementName; ?>" data-search="true" id="<?php echo $HTMLElementName; ?>" aria-label="Default select example" <?php echo ($disabled) ? "Disabled" : ""; ?> <?php echo ($required) ? "Required" : ""; ?>> <option <?php if ($required): ?>value="-1" <?php endif; ?>> <?php label("Select Option"); ?> </option> <?php foreach ($Array as $option): ?> <option value="<?php echo $option['value']; ?>" <?php echo $defaultValueSelected == $option['value'] ? 'selected' : ''; ?>> <?php echo $option['display']; ?> </option> <?php endforeach; ?> </select> <p id='error_<?php echo $HTMLElementName; ?>' class='text-danger custom-error'></p> <?php } function createCustomSelect($tableName, $fieldNameToDisplay, $fieldNameForValue, $defaultValueSelected, $displayTextForLabel, $HTMLElementName, $additionalClass = "form-control", $defaultCondition = null, $extra = null) { // Supply conditions as $defaultCondition = "column_name = 'value'"; $tableName = strtolower(trim($tableName)); $fieldNameToDisplay = trim($fieldNameToDisplay); $fieldNameForValue = trim($fieldNameForValue); $additionalClass = trim($additionalClass); $query = DB::table(DB::raw("`$tableName`"))->where('status', '<>', -1); if ($defaultCondition) { $query->whereRaw($defaultCondition); } $systems = $query->orderBy($fieldNameForValue, 'asc')->pluck($fieldNameToDisplay, $fieldNameForValue); ?> <?php if ($displayTextForLabel != ''): ?><label class="form-label col-form-label"> <?php echo label($displayTextForLabel); ?> </label> <?php endif; ?> <select class="form-select <?php echo $additionalClass; ?>" name="<?php echo $HTMLElementName; ?>" id="<?php echo $HTMLElementName; ?>" data-search="true" aria-label="" <?php if (stripos($additionalClass, 'required') !== false) { echo "REQUIRED"; } ?> <?php if (stripos($additionalClass, 'readonly') !== false) { echo "DISABLED"; } ?> <?php echo $extra; ?>> <?php if (stripos($additionalClass, 'required') !== false) { ?> <option value=""> <?php label("Select Option"); ?> </option> <?php } else { ?> <option value="0"> <?php label("Select Option"); ?> </option> <?php } ?> <?php foreach ($systems as $key => $value) { ?> <option value="<?= $key ?>" <?php echo $defaultValueSelected == $key ? 'selected' : '' ?>> <?= $value ?> </option> <?php } ?> </select> <p id='error_<?php echo $fieldNameForValue; ?>' class='text-danger custom-error'></p> <?php } function createImageInput($name, $display = "", $class = "", $default = "") { ?> <div class="input-group"> <span class="input-group-btn"> <a id="<?php echo $name; ?>" data-input="<?php echo $name; ?>_url" data-preview="<?php echo $name; ?>holder" class="btn btn-primary"> <i class="fa fa-picture-o"></i> <?php echo ($display != "") ? $display : "Upload"; ?> </a> </span> <input id="<?php echo $name; ?>_url" class="form-control lfm <?php echo $class; ?>" type="text" name="<?php echo $name; ?>" <?php if ($default != ""): ?> value="<?php echo env("APP_URL") . "/" . $default; ?>" <?php endif; ?> multiple> </div> <div id="<?php echo $name; ?>holder" style="margin-top:15px;max-height:80px;overflow:hidden;"> <?php if ($default != ""): ?> <img src="<?php echo env("APP_URL") . "/" . $default; ?>" style="height: 5rem" /> <?php endif; ?> </div> <?php collectScripts(function () use ($name) { ?> <script> lfm('<?php echo $name; ?>', 'image', { prefix: '<?php echo env("APP_URL"); ?>/files' }); </script> <?php }); } function createMultiImageInput($name, $display = "", $class = "", $default = "") { ?> <div class="input-group"> <span class="input-group-btn"> <a id="<?php echo $name; ?>" data-input="<?php echo $name; ?>_url" data-preview="<?php echo $name; ?>holder" class="btn btn-primary"> <i class="fa fa-picture-o"></i> <?php echo ($display != "") ? $display : "Choose Photo"; ?> </a> </span> <input id="<?php echo $name; ?>_url" class="form-control lfm <?php echo $class; ?>" type="text" name="<?php echo $name; ?>" <?php if ($default != ""): ?> value="<?php echo env("APP_URL") . "/" . $default; ?>" <?php endif; ?> multiple> </div> <div id="<?php echo $name; ?>holder" style="margin-top:15px;max-height:80px;overflow:hidden;"> <?php if ($default != ""): ?> <img src="<?php echo env("APP_URL") . "/" . $default; ?>" style="height: 5rem" /> <?php endif; ?> </div> <?php collectScripts(function () use ($name) { ?> <script> lfm('<?php echo $name; ?>', 'image', { prefix: '<?php echo env("APP_URL"); ?>/files', type: 'file', multi_selection: true }); </script> <?php }); } function site_url($url = "") { return env("APP_URL") . "/" . trim($url, "/"); } function base_url($url = "") { return env("APP_URL") . "/" . trim($url, "/"); } function showImageThumb($url) { ?> <div style="max-height:40px;overflow:hidden"> <?php if ($url != ""): ?> <img src="<?php echo env("APP_URL") . "/" . $url; ?>" style="height: 40px;" class="img-fluid" /> <?php endif; ?> </div> <?php } function getFieldData($tableName, $returnField, $referenceFieldName, $referenceValue) { $tableName = strtolower(trim($tableName)); $returnField = trim($returnField); $referenceFieldName = trim($referenceFieldName); $query = DB::table(DB::raw("`$tableName`"))->where($referenceFieldName, $referenceValue); $fieldData = ($query->value($returnField)) ? $query->value($returnField) : "N/A"; return $fieldData; } function createErrorParagraph($name, $class = null) { echo "<p id='error_$name' class='text-danger custom-error $class'></p>"; } function createActivityLog($controllerName, $methodName, $activity) { $user_id = (auth()->user()) ? auth()->user()->id : "0"; ActivityLog::create([ 'user_id' => $user_id, 'controllerName' => $controllerName, 'methodName' => $methodName, 'actionUrl' => request()->fullUrl(), 'activity' => $activity, ]); } function getOperationNumber() { $startNumber = date('YmdHis') . rand(1000, 9999); $isExists = OperationLog::where('operation_end_no', $startNumber)->first(); while ($isExists) { $startNumber = date('YmdHis') . rand(1000, 9999); $isExists = OperationLog::where('operation_end_no', $startNumber)->first(); } return $startNumber; } function createOperationLog($startOperationNumber, $endOperationNumber, $modelName, $modelId, $operationName, $previousValues, $newValues) { $operationId = getOperationNumber(); $user_id = (auth()->user()) ? auth()->user()->id : "0"; OperationLog::create([ 'user_id' => $user_id, 'operation_start_no' => $startOperationNumber, 'operation_end_no' => $endOperationNumber, 'model_name' => $modelName, 'model_id' => $modelId, 'operation_name' => $operationName, 'previous_values' => $previousValues ? json_encode($previousValues) : null, 'new_values' => $newValues ? json_encode($newValues) : null, ]); } function createErrorLog($controllerName, $methodName, $errors) { $user_id = (auth()->user()) ? auth()->user()->id : "0"; ErrorLog::create([ 'user_id' => $user_id, 'controller_name' => $controllerName, 'method_name' => $methodName, 'errors' => $errors, ]); } function createDate($name, $display = "", $class = "datepicker", $default = "") { ?> <div class="form-group"> <label for="<?php echo $name; ?>" class="form-label col-form-label"> <?php echo label($display); ?> </label> <div class="form-control-wrap"> <input type="text" name="<?php echo $name; ?>" id="<?php echo $name; ?>" class="form-control datepicker<?php echo $class; ?>" value="<?php echo $default; ?>" /> </div> </div> <?php } function createPassword($name, $display = "", $class = "password", $default = "") { ?> <div class="form-group"> <label for="<?php echo $name; ?>" class="form-label col-form-label"> <?php echo label($display); ?> </label> <div class="form-control-wrap"> <input type="password" name="<?php echo $name; ?>" id="<?php echo $name; ?>" class="form-control <?php echo $class; ?>" value="<?php echo $default; ?>" /> </div> </div> <?php } function createTextArea($name, $class = "", $display = "", $default = "", $row = "") { $hasCkeditorClassic = strpos($class, 'ckeditor-classic') !== false; $uploadUrlAttribute = $hasCkeditorClassic ? ' data-upload-url="' . route('upload') . '"' : ''; ?> <div class="form-group"> <label for="<?php echo $name; ?>" class="form-label col-form-label"> <?php echo label($display); ?> </label> <div class="form-control-wrap"> <textarea class="form-control text-area <?php echo $class; ?>" name="<?php echo $name; ?>" id="<?php echo $name; ?>" rows="<?php echo $row; ?>" <?php echo $uploadUrlAttribute; ?>><?php if (isset($default)) { echo ($default); } ?></textarea> </div> </div> <?php } function createPlainTextArea($name, $class = "", $display = "", $default = "", $row = "") { ?> <div class="form-group"> <label for="<?php echo $name; ?>" class="form-label col-form-label"> <?php echo label($display); ?> </label> <div class="form-control-wrap"> <textarea class="form-control text-area <?php echo $class; ?>" name="<?php echo $name; ?>" id="<?php echo $name; ?>" rows="<?php echo $row; ?>"><?php if (isset($default)) { echo ($default); } ?></textarea> </div> </div> <?php } function getDisplayOrder($tableName) { // echo $tableName;die; $maxDisplayOrder = DB::select("select max(display_order) as display_order from $tableName")[0]->display_order; $nextDisplayOrder = $maxDisplayOrder + 1; return $nextDisplayOrder; } function getAlias($textField, $tableName) { $maxDisplayOrder = DB::select("select max(display_order) as display_order from $tableName")[0]->display_order; $nextDisplayOrder = $maxDisplayOrder + 1; return $nextDisplayOrder; } if (!function_exists('myDate')) { function myDate($originalDate) { return date("F d Y", strtotime($originalDate)); } } if (!function_exists('dbDate')) { function dbDate($date) { return date("Y-m-d", strtotime($date)); } } if (!function_exists('myTime')) { function myTime($originalDate) { return date("g:i A", strtotime($originalDate)); } } if (!function_exists('myDateTime')) { function myDateTime($originalDate) { return date("F d Y g:i A", strtotime($originalDate)); } } if (!function_exists('myDaysDiff')) { function myDaysDiff($fromDate, $toDate) { $fromDate = strtotime($fromDate); $toDate = strtotime($toDate); $datediff = $toDate - $fromDate; return round($datediff / (60 * 60 * 24)); } } if (!function_exists('firstDayOfNepaliMonth')) { function firstDayOfNepaliMonth($engDate = "") { $engDate = ($engDate != "") ? $engDate : date("Y-m-d"); $NepaliDate = NepaliDate($engDate); $nD = explode("-", $NepaliDate); $Day = '1'; $Month = $nD[1]; $Year = $nD[0]; $t = "select bs_date from tbl_nepengcalendar where bs_date='" . $Year . "-" . $Month . "-" . $Day . "'"; return DB::select($t)[0]->bs_date; } } if (!function_exists('firstDayOfNepaliMonth1')) { function firstDayOfNepaliMonth1($engDate = "") { $engDate = ($engDate != "") ? $engDate : date("Y-m-d"); $NepaliDate = NepaliDate($engDate); $nD = explode("-", $NepaliDate); $Day = '1'; $Month = ($nD[1] < 10) ? '0' . $nD[1] : $nD[1]; $Year = $nD[0]; $t = "select ad_date from tbl_nepengcalendar where bs_date='" . $Year . "-" . $Month . "-" . $Day . "'"; return DB::select($t)[0]->ad_date; } } if (!function_exists('lastDayOfNepaliMonth')) { function lastDayOfNepaliMonth($engDate = "") { $engDate = ($engDate != "") ? $engDate : date("Y-m-d"); $NepaliDate = NepaliDate1($engDate); $nD = explode("-", $NepaliDate); $Day = '1'; $Month = $nD[1]; $Year = $nD[0]; $t = "select ad_date from tbl_nepengcalendar where bs_date like '" . $Year . "-" . $Month . "-%' order by ad_date"; $dates = DB::select($t); $date = end($dates); return $date->ad_date; } } if (!function_exists('EnglishDate')) { function EnglishDate($NepaliYear, $NepaliMonth, $NepaliDay) { if ($NepaliMonth < 10) { $NepaliMonth = "0" . $NepaliMonth; } $bs_date = $NepaliYear . "-" . $NepaliMonth . "-" . $NepaliDay; $t = "select ad_date from tbl_nepengcalendar where bs_date='$bs_date'"; $q = DB::select($t); return $q[0]->ad_date; } } if (!function_exists('Today')) { function Today() { return date("Y-m-d"); } } if (!function_exists('NepaliToEnglishDate')) { function NepaliToEnglishDate($NepaliDate) { $NepaliDate = trim($NepaliDate); if (trim($NepaliDate) == "") { return date("Y-m-d"); } $NepaliDate = explode("-", $NepaliDate); $NepaliMonth = intval($NepaliDate[1]); $NepaliYear = intval($NepaliDate[0]); $NepaliDay = intval($NepaliDate[2]); if ($NepaliMonth < 10) { $NepaliMonth = "0" . $NepaliMonth; } $bs_date = $NepaliYear . "-" . $NepaliMonth . "-" . $NepaliDay; $t = "select ad_date from tbl_nepengcalendar where bs_date='$bs_date'"; $q = DB::select($t); return $q[0]->ad_date; } } if (!function_exists('NepaliDate')) { function NepaliDate($engDate = "") { $engDate = ($engDate != "") ? $engDate : date("Y-m-d"); if ($engDate != "0000-00-00") { // return str_replace("-0", "-", DB::table('tbl_nepengcalendar')->where('ad_date', $engDate)->first()->bs_date); $result = DB::table('tbl_nepengcalendar')->where('ad_date', $engDate)->first(); if ($result) { $bsDate = $result->bs_date; $convertedDate = convertNumbersToUnicode(str_replace("-", "-", $bsDate)); return $convertedDate; } else { // Handle the case when the query result is null return null; } } else { return ""; } } } function convertNumbersToUnicode($number = "2080-10-13") { $unicodeDigits = [ '0' => '०', '1' => '१', '2' => '२', '3' => '३', '4' => '४', '5' => '५', '6' => '६', '7' => '७', '8' => '८', '9' => '९', ]; $converted = ''; $digits = str_split((string) $number); foreach ($digits as $digit) { if (isset($unicodeDigits[$digit])) { $converted .= $unicodeDigits[$digit]; } elseif ($digit === '-') { $converted .= '-'; } else { $converted .= $digit; } } //dd($converted); return $converted; } if (!function_exists('NepaliMonth')) { function NepaliMonth($engDate = "") { $NepaliDate = NepaliDate($engDate); $nD = explode("-", $NepaliDate); $Month = $nD[1]; return intval($Month); } } if (!function_exists('NepaliYear')) { function NepaliYear($engDate = "") { $NepaliDate = NepaliDate($engDate); $nD = explode("-", $NepaliDate); $Year = $nD[0]; return intval($Year); } } if (!function_exists('NepaliMonthNameByNumber')) { function NepaliMonthNameByNumber($number) { $MonthNames = array( "Baisakh", "Jestha", "Ashad", "Shrawan", "Bhadra", "Asoj", "Kartik", "Mangsir", "Poush", "Magh", "Falgun", "Chaitra" ); return $MonthNames[$number - 1]; } } if (!function_exists('NepaliMonthName')) { function NepaliMonthName($engDate = "") { $Month = NepaliMonth($engDate); $MonthNames = array( "Baisakh", "Jestha", "Ashad", "Shrawan", "Bhadra", "Asoj", "Kartik", "Mangsir", "Poush", "Magh", "Falgun", "Chaitra" ); return $MonthNames[$Month - 1]; } } if (!function_exists('N2')) { function N2($N) { return number_format($N, 2, '.', ','); } } function collectScripts(callable $callback) { ob_start(); $callback(); $script = ob_get_clean(); if (!empty($script)) { pushScriptToFooter($script); } } function pushScriptToFooter($script) { if (!isset($GLOBALS['scripts'])) { $GLOBALS['scripts'] = []; } $GLOBALS['scripts'][] = $script; } function sectionHeader($text, $sectiontitle = null) { $texts = explode(" ", $text); ?> <div class="row text-center intro"> <div class="col-12"> <?php if ($sectiontitle): ?> <span class="pre-title"> <?php echo $sectiontitle; ?> </span> <?php endif; ?> <h2 class="ylw-clr"> <?php echo $texts[0]; unset($texts[0]); ?> <span class="featured"><span> <?php echo implode(" ", $texts); ?> </span></span> </h2> </div> </div> <?php } if (!function_exists('replace_img_src')) { function replace_img_src($content) { return preg_replace( '/src="storage(\/[^"]*)"/', 'src="' . site_url() . 'storage$1"', $content ); } } function processForShortcode($content) { $content = replace_img_src($content); return preg_replace_callback('/\[([\w_]+)([^]]*)\]/', function ($matches) { $shortcodeName = $matches[1]; $shortcodeAttributes = []; $mandatoryAttributes = ['alias', 'css', 'title']; preg_match_all('/\s*(\w+)\s*=\s*(?:"([^"]*)"|\'([^\']*)\'|([^"\'][^\s]*))/', $matches[2], $attrMatches, PREG_SET_ORDER); foreach ($attrMatches as $attrMatch) { $attrName = $attrMatch[1]; $attrValue = $attrMatch[2] ?: ($attrMatch[3] ?: $attrMatch[4]); // Use non-empty capture group as the attribute value $attrValue = trim($attrValue, "\"'"); // Remove both single and double quotes from the attribute value $shortcodeAttributes[$attrName] = $attrValue; } // Fill in missing mandatory attributes with empty strings foreach ($mandatoryAttributes as $attribute) { if (!isset($shortcodeAttributes[$attribute])) { $shortcodeAttributes[$attribute] = ''; } } return view("shortcodes." . $shortcodeName, $shortcodeAttributes); }, $content); } function createCustomCheckboxes($tableName, $labelColumn, $valueColumn, $selectedValue = null, $extraAttributes = "", $name = "", $inputType = "checkbox", $condition = "") { // Your implementation logic goes here // Example: Fetching data from the database $options = DB::table($tableName) ->whereRaw($condition) ->get(); // Example: Creating checkboxes foreach ($options as $option) { $isChecked = ($option->$valueColumn == $selectedValue) ? 'checked' : ''; echo " <div class='form-check mb-0 '><input class='form-check-input' type='$inputType' name='$name' id='valuefor$name".$option->{$valueColumn}."' value='".$option->{$valueColumn}."' $isChecked $extraAttributes> <label class='form-check-label' for='valuefor$name".$option->{$valueColumn}."' > {$option->$labelColumn} </label> </div>"; } }