first commit
|
@ -0,0 +1,17 @@
|
||||||
|
{
|
||||||
|
"protocol": "ftp",
|
||||||
|
"host": "ftp.belankon.com",
|
||||||
|
"port": 21,
|
||||||
|
"user": " apotekpkl@belankon.com",
|
||||||
|
"pass": "pklapotek123",
|
||||||
|
"promptForPass": false,
|
||||||
|
"remote": "/",
|
||||||
|
"local": "",
|
||||||
|
"secure": false,
|
||||||
|
"secureOptions": null,
|
||||||
|
"connTimeout": 10000,
|
||||||
|
"pasvTimeout": 10000,
|
||||||
|
"keepalive": 10000,
|
||||||
|
"watch": [],
|
||||||
|
"watchTimeout": 500
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
RewriteEngine On
|
||||||
|
RewriteCond %{REQUEST_FILENAME} !-f
|
||||||
|
RewriteCond %{REQUEST_FILENAME} !-d
|
||||||
|
RewriteRule ^(.*)$ index.php/$1 [L]
|
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"cmake.configureOnOpen": true
|
||||||
|
}
|
After Width: | Height: | Size: 64 KiB |
After Width: | Height: | Size: 98 KiB |
After Width: | Height: | Size: 84 KiB |
After Width: | Height: | Size: 373 KiB |
After Width: | Height: | Size: 505 KiB |
After Width: | Height: | Size: 64 KiB |
After Width: | Height: | Size: 64 KiB |
After Width: | Height: | Size: 64 KiB |
After Width: | Height: | Size: 475 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 475 KiB |
After Width: | Height: | Size: 8.8 KiB |
After Width: | Height: | Size: 487 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 487 KiB |
After Width: | Height: | Size: 84 KiB |
After Width: | Height: | Size: 248 KiB |
After Width: | Height: | Size: 41 KiB |
After Width: | Height: | Size: 541 KiB |
After Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 2.7 KiB |
After Width: | Height: | Size: 2.7 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 7.5 KiB |
After Width: | Height: | Size: 7.5 KiB |
After Width: | Height: | Size: 7.5 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 16 KiB |
|
@ -0,0 +1,71 @@
|
||||||
|
plugins {
|
||||||
|
id "com.android.application"
|
||||||
|
id "kotlin-android"
|
||||||
|
id "com.google.gms.google-services"
|
||||||
|
id "dev.flutter.flutter-gradle-plugin"
|
||||||
|
}
|
||||||
|
|
||||||
|
def localProperties = new Properties()
|
||||||
|
def localPropertiesFile = rootProject.file('local.properties')
|
||||||
|
if (localPropertiesFile.exists()) {
|
||||||
|
localPropertiesFile.withReader('UTF-8') { reader ->
|
||||||
|
localProperties.load(reader)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
|
||||||
|
if (flutterVersionCode == null) {
|
||||||
|
flutterVersionCode = '1'
|
||||||
|
}
|
||||||
|
|
||||||
|
def flutterVersionName = localProperties.getProperty('flutter.versionName')
|
||||||
|
if (flutterVersionName == null) {
|
||||||
|
flutterVersionName = '1.0'
|
||||||
|
}
|
||||||
|
|
||||||
|
android {
|
||||||
|
namespace "com.example.piring_baru"
|
||||||
|
compileSdkVersion 34
|
||||||
|
ndkVersion flutter.ndkVersion
|
||||||
|
|
||||||
|
compileOptions {
|
||||||
|
sourceCompatibility JavaVersion.VERSION_1_8
|
||||||
|
targetCompatibility JavaVersion.VERSION_1_8
|
||||||
|
}
|
||||||
|
|
||||||
|
kotlinOptions {
|
||||||
|
jvmTarget = '1.8'
|
||||||
|
}
|
||||||
|
|
||||||
|
sourceSets {
|
||||||
|
main.java.srcDirs += 'src/main/kotlin'
|
||||||
|
}
|
||||||
|
|
||||||
|
defaultConfig {
|
||||||
|
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
|
||||||
|
applicationId "com.example.piring_baru"
|
||||||
|
// You can update the following values to match your application needs.
|
||||||
|
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
|
||||||
|
minSdkVersion 24
|
||||||
|
targetSdkVersion 34
|
||||||
|
versionCode flutterVersionCode.toInteger()
|
||||||
|
versionName flutterVersionName
|
||||||
|
}
|
||||||
|
|
||||||
|
buildTypes {
|
||||||
|
release {
|
||||||
|
// TODO: Add your own signing config for the release build.
|
||||||
|
// Signing with the debug keys for now, so `flutter run --release` works.
|
||||||
|
signingConfig signingConfigs.debug
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
flutter {
|
||||||
|
source '../..'
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
implementation(platform("com.google.firebase:firebase-bom:32.3.1"))
|
||||||
|
implementation 'com.google.firebase:firebase-messaging:23.0.1'
|
||||||
|
}
|
|
@ -0,0 +1,30 @@
|
||||||
|
{
|
||||||
|
"project_info": {
|
||||||
|
"project_number": "220117040868",
|
||||||
|
"firebase_url": "https://isipiringku-591ec-default-rtdb.firebaseio.com",
|
||||||
|
"project_id": "isipiringku-591ec",
|
||||||
|
"storage_bucket": "isipiringku-591ec.appspot.com"
|
||||||
|
},
|
||||||
|
"client": [
|
||||||
|
{
|
||||||
|
"client_info": {
|
||||||
|
"mobilesdk_app_id": "1:220117040868:android:de8af3f800a26174cc76f1",
|
||||||
|
"android_client_info": {
|
||||||
|
"package_name": "com.example.piring_baru"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"oauth_client": [],
|
||||||
|
"api_key": [
|
||||||
|
{
|
||||||
|
"current_key": "AIzaSyDgfNsJMuy6btNq86dN0S4jqlf9Sljd18w"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"services": {
|
||||||
|
"appinvite_service": {
|
||||||
|
"other_platform_oauth_client": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"configuration_version": "1"
|
||||||
|
}
|
|
@ -0,0 +1,34 @@
|
||||||
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<application
|
||||||
|
android:label="piring_baru"
|
||||||
|
android:name="${applicationName}"
|
||||||
|
android:icon="@mipmap/ic_launcher">
|
||||||
|
<activity
|
||||||
|
android:name=".MainActivity"
|
||||||
|
android:exported="true"
|
||||||
|
android:launchMode="singleTop"
|
||||||
|
android:theme="@style/LaunchTheme"
|
||||||
|
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
|
||||||
|
android:hardwareAccelerated="true"
|
||||||
|
android:windowSoftInputMode="adjustResize">
|
||||||
|
<!-- Specifies an Android theme to apply to this Activity as soon as
|
||||||
|
the Android process has started. This theme is visible to the user
|
||||||
|
while the Flutter UI initializes. After that, this theme continues
|
||||||
|
to determine the Window background behind the Flutter UI. -->
|
||||||
|
<meta-data
|
||||||
|
android:name="io.flutter.embedding.android.NormalTheme"
|
||||||
|
android:resource="@style/NormalTheme"
|
||||||
|
/>
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="android.intent.action.MAIN"/>
|
||||||
|
<category android:name="android.intent.category.LAUNCHER"/>
|
||||||
|
<action android:name="com.google.firebase.MESSAGING_EVENT" />
|
||||||
|
</intent-filter>
|
||||||
|
</activity>
|
||||||
|
<!-- Don't delete the meta-data below.
|
||||||
|
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
|
||||||
|
<meta-data
|
||||||
|
android:name="flutterEmbedding"
|
||||||
|
android:value="2" />
|
||||||
|
</application>
|
||||||
|
</manifest>
|
|
@ -0,0 +1,32 @@
|
||||||
|
buildscript {
|
||||||
|
ext.kotlin_version = '1.7.10'
|
||||||
|
repositories {
|
||||||
|
google()
|
||||||
|
mavenCentral()
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
classpath 'com.google.gms:google-services:4.4.0'
|
||||||
|
classpath 'com.android.tools.build:gradle:7.3.0'
|
||||||
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
allprojects {
|
||||||
|
repositories {
|
||||||
|
google()
|
||||||
|
mavenCentral()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
rootProject.buildDir = '../build'
|
||||||
|
subprojects {
|
||||||
|
project.buildDir = "${rootProject.buildDir}/${project.name}"
|
||||||
|
}
|
||||||
|
subprojects {
|
||||||
|
project.evaluationDependsOn(':app')
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.register("clean", Delete) {
|
||||||
|
delete rootProject.buildDir
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
distributionBase=GRADLE_USER_HOME
|
||||||
|
distributionPath=wrapper/dists
|
||||||
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
|
zipStorePath=wrapper/dists
|
||||||
|
distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip
|
|
@ -0,0 +1,4 @@
|
||||||
|
storePassword=solusindo
|
||||||
|
keyPassword=solusindo
|
||||||
|
keyAlias=upload
|
||||||
|
storeFile=C:/Users/fastabee/Pictures/piring/key/keystore.jks
|
|
@ -0,0 +1,6 @@
|
||||||
|
<IfModule authz_core_module>
|
||||||
|
Require all denied
|
||||||
|
</IfModule>
|
||||||
|
<IfModule !authz_core_module>
|
||||||
|
Deny from all
|
||||||
|
</IfModule>
|
|
@ -0,0 +1,11 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>403 Forbidden</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<p>Directory access is forbidden.</p>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,135 @@
|
||||||
|
<?php
|
||||||
|
defined('BASEPATH') or exit('No direct script access allowed');
|
||||||
|
|
||||||
|
/*
|
||||||
|
| -------------------------------------------------------------------
|
||||||
|
| AUTO-LOADER
|
||||||
|
| -------------------------------------------------------------------
|
||||||
|
| This file specifies which systems should be loaded by default.
|
||||||
|
|
|
||||||
|
| In order to keep the framework as light-weight as possible only the
|
||||||
|
| absolute minimal resources are loaded by default. For example,
|
||||||
|
| the database is not connected to automatically since no assumption
|
||||||
|
| is made regarding whether you intend to use it. This file lets
|
||||||
|
| you globally define which systems you would like loaded with every
|
||||||
|
| request.
|
||||||
|
|
|
||||||
|
| -------------------------------------------------------------------
|
||||||
|
| Instructions
|
||||||
|
| -------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| These are the things you can load automatically:
|
||||||
|
|
|
||||||
|
| 1. Packages
|
||||||
|
| 2. Libraries
|
||||||
|
| 3. Drivers
|
||||||
|
| 4. Helper files
|
||||||
|
| 5. Custom config files
|
||||||
|
| 6. Language files
|
||||||
|
| 7. Models
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
| -------------------------------------------------------------------
|
||||||
|
| Auto-load Packages
|
||||||
|
| -------------------------------------------------------------------
|
||||||
|
| Prototype:
|
||||||
|
|
|
||||||
|
| $autoload['packages'] = array(APPPATH.'third_party', '/usr/local/shared');
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$autoload['packages'] = array();
|
||||||
|
|
||||||
|
/*
|
||||||
|
| -------------------------------------------------------------------
|
||||||
|
| Auto-load Libraries
|
||||||
|
| -------------------------------------------------------------------
|
||||||
|
| These are the classes located in system/libraries/ or your
|
||||||
|
| application/libraries/ directory, with the addition of the
|
||||||
|
| 'database' library, which is somewhat of a special case.
|
||||||
|
|
|
||||||
|
| Prototype:
|
||||||
|
|
|
||||||
|
| $autoload['libraries'] = array('database', 'email', 'session');
|
||||||
|
|
|
||||||
|
| You can also supply an alternative library name to be assigned
|
||||||
|
| in the controller:
|
||||||
|
|
|
||||||
|
| $autoload['libraries'] = array('user_agent' => 'ua');
|
||||||
|
*/
|
||||||
|
$autoload['libraries'] = array('database', 'form_validation', 'session', 'notif', 'curl', 'Pdf');
|
||||||
|
|
||||||
|
/*
|
||||||
|
| -------------------------------------------------------------------
|
||||||
|
| Auto-load Drivers
|
||||||
|
| -------------------------------------------------------------------
|
||||||
|
| These classes are located in system/libraries/ or in your
|
||||||
|
| application/libraries/ directory, but are also placed inside their
|
||||||
|
| own subdirectory and they extend the CI_Driver_Library class. They
|
||||||
|
| offer multiple interchangeable driver options.
|
||||||
|
|
|
||||||
|
| Prototype:
|
||||||
|
|
|
||||||
|
| $autoload['drivers'] = array('cache');
|
||||||
|
|
|
||||||
|
| You can also supply an alternative property name to be assigned in
|
||||||
|
| the controller:
|
||||||
|
|
|
||||||
|
| $autoload['drivers'] = array('cache' => 'cch');
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$autoload['drivers'] = array();
|
||||||
|
|
||||||
|
/*
|
||||||
|
| -------------------------------------------------------------------
|
||||||
|
| Auto-load Helper Files
|
||||||
|
| -------------------------------------------------------------------
|
||||||
|
| Prototype:
|
||||||
|
|
|
||||||
|
| $autoload['helper'] = array('url', 'file');
|
||||||
|
*/
|
||||||
|
$autoload['helper'] = array('url', 'form', 'core', 'array');
|
||||||
|
|
||||||
|
/*
|
||||||
|
| -------------------------------------------------------------------
|
||||||
|
| Auto-load Config files
|
||||||
|
| -------------------------------------------------------------------
|
||||||
|
| Prototype:
|
||||||
|
|
|
||||||
|
| $autoload['config'] = array('config1', 'config2');
|
||||||
|
|
|
||||||
|
| NOTE: This item is intended for use ONLY if you have created custom
|
||||||
|
| config files. Otherwise, leave it blank.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$autoload['config'] = array();
|
||||||
|
|
||||||
|
/*
|
||||||
|
| -------------------------------------------------------------------
|
||||||
|
| Auto-load Language files
|
||||||
|
| -------------------------------------------------------------------
|
||||||
|
| Prototype:
|
||||||
|
|
|
||||||
|
| $autoload['language'] = array('lang1', 'lang2');
|
||||||
|
|
|
||||||
|
| NOTE: Do not include the "_lang" part of your file. For example
|
||||||
|
| "codeigniter_lang.php" would be referenced as array('codeigniter');
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$autoload['language'] = array();
|
||||||
|
|
||||||
|
/*
|
||||||
|
| -------------------------------------------------------------------
|
||||||
|
| Auto-load Models
|
||||||
|
| -------------------------------------------------------------------
|
||||||
|
| Prototype:
|
||||||
|
|
|
||||||
|
| $autoload['model'] = array('first_model', 'second_model');
|
||||||
|
|
|
||||||
|
| You can also supply an alternative model name to be assigned
|
||||||
|
| in the controller:
|
||||||
|
|
|
||||||
|
| $autoload['model'] = array('first_model' => 'first');
|
||||||
|
*/
|
||||||
|
$autoload['model'] = array('CoreUploadFoto', 'datatable', 'Core', 'ModelAPI/GetAPI','MNotif');
|
|
@ -0,0 +1,545 @@
|
||||||
|
<?php
|
||||||
|
defined('BASEPATH') or exit('No direct script access allowed');
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Base Site URL
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| URL to your CodeIgniter root. Typically this will be your base URL,
|
||||||
|
| WITH a trailing slash:
|
||||||
|
|
|
||||||
|
| http://example.com/
|
||||||
|
|
|
||||||
|
| WARNING: You MUST set this value!
|
||||||
|
|
|
||||||
|
| If it is not set, then CodeIgniter will try guess the protocol and path
|
||||||
|
| your installation, but due to security concerns the hostname will be set
|
||||||
|
| to $_SERVER['SERVER_ADDR'] if available, or localhost otherwise.
|
||||||
|
| The auto-detection mechanism exists only for convenience during
|
||||||
|
| development and MUST NOT be used in production!
|
||||||
|
|
|
||||||
|
| If you need to allow multiple domains, remember that this file is still
|
||||||
|
| a PHP script and you can easily do that on your own.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
$config['base_url'] = "http" . ((isset($_SERVER['HTTPS']) && !empty($_SERVER['HTTPS'])) ? "s" : "") . "://" . $_SERVER['HTTP_HOST'] . '/';
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Index File
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Typically this will be your index.php file, unless you've renamed it to
|
||||||
|
| something else. If you are using mod_rewrite to remove the page set this
|
||||||
|
| variable so that it is blank.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['index_page'] = 'index.php';
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| URI PROTOCOL
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| This item determines which server global should be used to retrieve the
|
||||||
|
| URI string. The default setting of 'REQUEST_URI' works for most servers.
|
||||||
|
| If your links do not seem to work, try one of the other delicious flavors:
|
||||||
|
|
|
||||||
|
| 'REQUEST_URI' Uses $_SERVER['REQUEST_URI']
|
||||||
|
| 'QUERY_STRING' Uses $_SERVER['QUERY_STRING']
|
||||||
|
| 'PATH_INFO' Uses $_SERVER['PATH_INFO']
|
||||||
|
|
|
||||||
|
| WARNING: If you set this to 'PATH_INFO', URIs will always be URL-decoded!
|
||||||
|
*/
|
||||||
|
$config['uri_protocol'] = 'REQUEST_URI';
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| URL suffix
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| This option allows you to add a suffix to all URLs generated by CodeIgniter.
|
||||||
|
| For more information please see the user guide:
|
||||||
|
|
|
||||||
|
| https://codeigniter.com/user_guide/general/urls.html
|
||||||
|
*/
|
||||||
|
$config['url_suffix'] = '';
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Default Language
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| This determines which set of language files should be used. Make sure
|
||||||
|
| there is an available translation if you intend to use something other
|
||||||
|
| than english.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['language'] = 'english';
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Default Character Set
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| This determines which character set is used by default in various methods
|
||||||
|
| that require a character set to be provided.
|
||||||
|
|
|
||||||
|
| See http://php.net/htmlspecialchars for a list of supported charsets.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['charset'] = 'UTF-8';
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Enable/Disable System Hooks
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| If you would like to use the 'hooks' feature you must enable it by
|
||||||
|
| setting this variable to TRUE (boolean). See the user guide for details.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['enable_hooks'] = FALSE;
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Class Extension Prefix
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| This item allows you to set the filename/classname prefix when extending
|
||||||
|
| native libraries. For more information please see the user guide:
|
||||||
|
|
|
||||||
|
| https://codeigniter.com/user_guide/general/core_classes.html
|
||||||
|
| https://codeigniter.com/user_guide/general/creating_libraries.html
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['subclass_prefix'] = 'MY_';
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Composer auto-loading
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Enabling this setting will tell CodeIgniter to look for a Composer
|
||||||
|
| package auto-loader script in application/vendor/autoload.php.
|
||||||
|
|
|
||||||
|
| $config['composer_autoload'] = TRUE;
|
||||||
|
|
|
||||||
|
| Or if you have your vendor/ directory located somewhere else, you
|
||||||
|
| can opt to set a specific path as well:
|
||||||
|
|
|
||||||
|
| $config['composer_autoload'] = '/path/to/vendor/autoload.php';
|
||||||
|
|
|
||||||
|
| For more information about Composer, please visit http://getcomposer.org/
|
||||||
|
|
|
||||||
|
| Note: This will NOT disable or override the CodeIgniter-specific
|
||||||
|
| autoloading (application/config/autoload.php)
|
||||||
|
*/
|
||||||
|
$config['composer_autoload'] = FALSE;
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Allowed URL Characters
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| This lets you specify which characters are permitted within your URLs.
|
||||||
|
| When someone tries to submit a URL with disallowed characters they will
|
||||||
|
| get a warning message.
|
||||||
|
|
|
||||||
|
| As a security measure you are STRONGLY encouraged to restrict URLs to
|
||||||
|
| as few characters as possible. By default only these are allowed: a-z 0-9~%.:_-
|
||||||
|
|
|
||||||
|
| Leave blank to allow all characters -- but only if you are insane.
|
||||||
|
|
|
||||||
|
| The configured value is actually a regular expression character group
|
||||||
|
| and it will be executed as: ! preg_match('/^[<permitted_uri_chars>]+$/i
|
||||||
|
|
|
||||||
|
| DO NOT CHANGE THIS UNLESS YOU FULLY UNDERSTAND THE REPERCUSSIONS!!
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Enable Query Strings
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| By default CodeIgniter uses search-engine friendly segment based URLs:
|
||||||
|
| example.com/who/what/where/
|
||||||
|
|
|
||||||
|
| You can optionally enable standard query string based URLs:
|
||||||
|
| example.com?who=me&what=something&where=here
|
||||||
|
|
|
||||||
|
| Options are: TRUE or FALSE (boolean)
|
||||||
|
|
|
||||||
|
| The other items let you set the query string 'words' that will
|
||||||
|
| invoke your controllers and its functions:
|
||||||
|
| example.com/index.php?c=controller&m=function
|
||||||
|
|
|
||||||
|
| Please note that some of the helpers won't work as expected when
|
||||||
|
| this feature is enabled, since CodeIgniter is designed primarily to
|
||||||
|
| use segment based URLs.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['enable_query_strings'] = FALSE;
|
||||||
|
$config['controller_trigger'] = 'c';
|
||||||
|
$config['function_trigger'] = 'm';
|
||||||
|
$config['directory_trigger'] = 'd';
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Allow $_GET array
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| By default CodeIgniter enables access to the $_GET array. If for some
|
||||||
|
| reason you would like to disable it, set 'allow_get_array' to FALSE.
|
||||||
|
|
|
||||||
|
| WARNING: This feature is DEPRECATED and currently available only
|
||||||
|
| for backwards compatibility purposes!
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['allow_get_array'] = TRUE;
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Error Logging Threshold
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| You can enable error logging by setting a threshold over zero. The
|
||||||
|
| threshold determines what gets logged. Threshold options are:
|
||||||
|
|
|
||||||
|
| 0 = Disables logging, Error logging TURNED OFF
|
||||||
|
| 1 = Error Messages (including PHP errors)
|
||||||
|
| 2 = Debug Messages
|
||||||
|
| 3 = Informational Messages
|
||||||
|
| 4 = All Messages
|
||||||
|
|
|
||||||
|
| You can also pass an array with threshold levels to show individual error types
|
||||||
|
|
|
||||||
|
| array(2) = Debug Messages, without Error Messages
|
||||||
|
|
|
||||||
|
| For a live site you'll usually only enable Errors (1) to be logged otherwise
|
||||||
|
| your log files will fill up very fast.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['log_threshold'] = 0;
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Error Logging Directory Path
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Leave this BLANK unless you would like to set something other than the default
|
||||||
|
| application/logs/ directory. Use a full server path with trailing slash.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['log_path'] = '';
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Log File Extension
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| The default filename extension for log files. The default 'php' allows for
|
||||||
|
| protecting the log files via basic scripting, when they are to be stored
|
||||||
|
| under a publicly accessible directory.
|
||||||
|
|
|
||||||
|
| Note: Leaving it blank will default to 'php'.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['log_file_extension'] = '';
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Log File Permissions
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| The file system permissions to be applied on newly created log files.
|
||||||
|
|
|
||||||
|
| IMPORTANT: This MUST be an integer (no quotes) and you MUST use octal
|
||||||
|
| integer notation (i.e. 0700, 0644, etc.)
|
||||||
|
*/
|
||||||
|
$config['log_file_permissions'] = 0644;
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Date Format for Logs
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Each item that is logged has an associated date. You can use PHP date
|
||||||
|
| codes to set your own date formatting
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['log_date_format'] = 'Y-m-d H:i:s';
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Error Views Directory Path
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Leave this BLANK unless you would like to set something other than the default
|
||||||
|
| application/views/errors/ directory. Use a full server path with trailing slash.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['error_views_path'] = '';
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Cache Directory Path
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Leave this BLANK unless you would like to set something other than the default
|
||||||
|
| application/cache/ directory. Use a full server path with trailing slash.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['cache_path'] = '';
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Cache Include Query String
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Whether to take the URL query string into consideration when generating
|
||||||
|
| output cache files. Valid options are:
|
||||||
|
|
|
||||||
|
| FALSE = Disabled
|
||||||
|
| TRUE = Enabled, take all query parameters into account.
|
||||||
|
| Please be aware that this may result in numerous cache
|
||||||
|
| files generated for the same page over and over again.
|
||||||
|
| array('q') = Enabled, but only take into account the specified list
|
||||||
|
| of query parameters.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['cache_query_string'] = FALSE;
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Encryption Key
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| If you use the Encryption class, you must set an encryption key.
|
||||||
|
| See the user guide for more info.
|
||||||
|
|
|
||||||
|
| https://codeigniter.com/user_guide/libraries/encryption.html
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['encryption_key'] = '';
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Session Variables
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| 'sess_driver'
|
||||||
|
|
|
||||||
|
| The storage driver to use: files, database, redis, memcached
|
||||||
|
|
|
||||||
|
| 'sess_cookie_name'
|
||||||
|
|
|
||||||
|
| The session cookie name, must contain only [0-9a-z_-] characters
|
||||||
|
|
|
||||||
|
| 'sess_expiration'
|
||||||
|
|
|
||||||
|
| The number of SECONDS you want the session to last.
|
||||||
|
| Setting to 0 (zero) means expire when the browser is closed.
|
||||||
|
|
|
||||||
|
| 'sess_save_path'
|
||||||
|
|
|
||||||
|
| The location to save sessions to, driver dependent.
|
||||||
|
|
|
||||||
|
| For the 'files' driver, it's a path to a writable directory.
|
||||||
|
| WARNING: Only absolute paths are supported!
|
||||||
|
|
|
||||||
|
| For the 'database' driver, it's a table name.
|
||||||
|
| Please read up the manual for the format with other session drivers.
|
||||||
|
|
|
||||||
|
| IMPORTANT: You are REQUIRED to set a valid save path!
|
||||||
|
|
|
||||||
|
| 'sess_match_ip'
|
||||||
|
|
|
||||||
|
| Whether to match the user's IP address when reading the session data.
|
||||||
|
|
|
||||||
|
| WARNING: If you're using the database driver, don't forget to update
|
||||||
|
| your session table's PRIMARY KEY when changing this setting.
|
||||||
|
|
|
||||||
|
| 'sess_time_to_update'
|
||||||
|
|
|
||||||
|
| How many seconds between CI regenerating the session ID.
|
||||||
|
|
|
||||||
|
| 'sess_regenerate_destroy'
|
||||||
|
|
|
||||||
|
| Whether to destroy session data associated with the old session ID
|
||||||
|
| when auto-regenerating the session ID. When set to FALSE, the data
|
||||||
|
| will be later deleted by the garbage collector.
|
||||||
|
|
|
||||||
|
| Other session cookie settings are shared with the rest of the application,
|
||||||
|
| except for 'cookie_prefix' and 'cookie_httponly', which are ignored here.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['sess_driver'] = 'files';
|
||||||
|
$config['sess_cookie_name'] = 'ci_session';
|
||||||
|
$config['sess_expiration'] = 7200;
|
||||||
|
$config['sess_save_path'] = NULL;
|
||||||
|
$config['sess_match_ip'] = FALSE;
|
||||||
|
$config['sess_time_to_update'] = 300;
|
||||||
|
$config['sess_regenerate_destroy'] = FALSE;
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Cookie Related Variables
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| 'cookie_prefix' = Set a cookie name prefix if you need to avoid collisions
|
||||||
|
| 'cookie_domain' = Set to .your-domain.com for site-wide cookies
|
||||||
|
| 'cookie_path' = Typically will be a forward slash
|
||||||
|
| 'cookie_secure' = Cookie will only be set if a secure HTTPS connection exists.
|
||||||
|
| 'cookie_httponly' = Cookie will only be accessible via HTTP(S) (no javascript)
|
||||||
|
|
|
||||||
|
| Note: These settings (with the exception of 'cookie_prefix' and
|
||||||
|
| 'cookie_httponly') will also affect sessions.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['cookie_prefix'] = '';
|
||||||
|
$config['cookie_domain'] = '';
|
||||||
|
$config['cookie_path'] = '/';
|
||||||
|
$config['cookie_secure'] = FALSE;
|
||||||
|
$config['cookie_httponly'] = FALSE;
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Standardize newlines
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Determines whether to standardize newline characters in input data,
|
||||||
|
| meaning to replace \r\n, \r, \n occurrences with the PHP_EOL value.
|
||||||
|
|
|
||||||
|
| WARNING: This feature is DEPRECATED and currently available only
|
||||||
|
| for backwards compatibility purposes!
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['standardize_newlines'] = FALSE;
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Global XSS Filtering
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Determines whether the XSS filter is always active when GET, POST or
|
||||||
|
| COOKIE data is encountered
|
||||||
|
|
|
||||||
|
| WARNING: This feature is DEPRECATED and currently available only
|
||||||
|
| for backwards compatibility purposes!
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['global_xss_filtering'] = FALSE;
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Cross Site Request Forgery
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Enables a CSRF cookie token to be set. When set to TRUE, token will be
|
||||||
|
| checked on a submitted form. If you are accepting user data, it is strongly
|
||||||
|
| recommended CSRF protection be enabled.
|
||||||
|
|
|
||||||
|
| 'csrf_token_name' = The token name
|
||||||
|
| 'csrf_cookie_name' = The cookie name
|
||||||
|
| 'csrf_expire' = The number in seconds the token should expire.
|
||||||
|
| 'csrf_regenerate' = Regenerate token on every submission
|
||||||
|
| 'csrf_exclude_uris' = Array of URIs which ignore CSRF checks
|
||||||
|
*/
|
||||||
|
$config['csrf_protection'] = FALSE;
|
||||||
|
$config['csrf_token_name'] = 'csrf_test_name';
|
||||||
|
$config['csrf_cookie_name'] = 'csrf_cookie_name';
|
||||||
|
$config['csrf_expire'] = 7200;
|
||||||
|
$config['csrf_regenerate'] = TRUE;
|
||||||
|
$config['csrf_exclude_uris'] = array();
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Output Compression
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Enables Gzip output compression for faster page loads. When enabled,
|
||||||
|
| the output class will test whether your server supports Gzip.
|
||||||
|
| Even if it does, however, not all browsers support compression
|
||||||
|
| so enable only if you are reasonably sure your visitors can handle it.
|
||||||
|
|
|
||||||
|
| Only used if zlib.output_compression is turned off in your php.ini.
|
||||||
|
| Please do not use it together with httpd-level output compression.
|
||||||
|
|
|
||||||
|
| VERY IMPORTANT: If you are getting a blank page when compression is enabled it
|
||||||
|
| means you are prematurely outputting something to your browser. It could
|
||||||
|
| even be a line of whitespace at the end of one of your scripts. For
|
||||||
|
| compression to work, nothing can be sent before the output buffer is called
|
||||||
|
| by the output class. Do not 'echo' any values with compression enabled.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['compress_output'] = FALSE;
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Master Time Reference
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Options are 'local' or any PHP supported timezone. This preference tells
|
||||||
|
| the system whether to use your server's local time as the master 'now'
|
||||||
|
| reference, or convert it to the configured one timezone. See the 'date
|
||||||
|
| helper' page of the user guide for information regarding date handling.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['time_reference'] = 'local';
|
||||||
|
date_default_timezone_set("Asia/Jakarta");
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Rewrite PHP Short Tags
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| If your PHP installation does not have short tag support enabled CI
|
||||||
|
| can rewrite the tags on-the-fly, enabling you to utilize that syntax
|
||||||
|
| in your view files. Options are TRUE or FALSE (boolean)
|
||||||
|
|
|
||||||
|
| Note: You need to have eval() enabled for this to work.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['rewrite_short_tags'] = FALSE;
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Reverse Proxy IPs
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| If your server is behind a reverse proxy, you must whitelist the proxy
|
||||||
|
| IP addresses from which CodeIgniter should trust headers such as
|
||||||
|
| HTTP_X_FORWARDED_FOR and HTTP_CLIENT_IP in order to properly identify
|
||||||
|
| the visitor's IP address.
|
||||||
|
|
|
||||||
|
| You can use both an array or a comma-separated list of proxy addresses,
|
||||||
|
| as well as specifying whole subnets. Here are a few examples:
|
||||||
|
|
|
||||||
|
| Comma-separated: '10.0.1.200,192.168.5.0/24'
|
||||||
|
| Array: array('10.0.1.200', '192.168.5.0/24')
|
||||||
|
*/
|
||||||
|
$config['proxy_ips'] = '';
|
||||||
|
|
||||||
|
/* Setting Time */
|
||||||
|
date_default_timezone_set("Asia/Jakarta");
|
||||||
|
|
||||||
|
/* Responce defined */
|
||||||
|
$config['http_response_bad_request'] = '400';
|
||||||
|
$config['http_response_invalid_login'] = '403';
|
||||||
|
$config['http_response_unauthorized'] = '401';
|
||||||
|
$config['http_response_not_found'] = '404';
|
||||||
|
$config['http_response_ok'] = '200';
|
||||||
|
$config['http_response_ok_no_content'] = '204';
|
||||||
|
/* Responce defined */
|
||||||
|
|
||||||
|
/* DSN Value defined */
|
||||||
|
$config['oauth_db_host'] = 'localhost';
|
||||||
|
$config['oauth_db_database'] = 'esolusi2_isipiringku';
|
||||||
|
$config['oauth_db_username'] = 'esolusi2_isipiringku';
|
||||||
|
$config['oauth_db_password'] = 'rahasiapiringku';
|
||||||
|
|
||||||
|
/* End DSN Value defined */
|
|
@ -0,0 +1,85 @@
|
||||||
|
<?php
|
||||||
|
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Display Debug backtrace
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| If set to TRUE, a backtrace will be displayed along with php errors. If
|
||||||
|
| error_reporting is disabled, the backtrace will not display, regardless
|
||||||
|
| of this setting
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
defined('SHOW_DEBUG_BACKTRACE') OR define('SHOW_DEBUG_BACKTRACE', TRUE);
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| File and Directory Modes
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| These prefs are used when checking and setting modes when working
|
||||||
|
| with the file system. The defaults are fine on servers with proper
|
||||||
|
| security, but you may wish (or even need) to change the values in
|
||||||
|
| certain environments (Apache running a separate process for each
|
||||||
|
| user, PHP under CGI with Apache suEXEC, etc.). Octal values should
|
||||||
|
| always be used to set the mode correctly.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
defined('FILE_READ_MODE') OR define('FILE_READ_MODE', 0644);
|
||||||
|
defined('FILE_WRITE_MODE') OR define('FILE_WRITE_MODE', 0666);
|
||||||
|
defined('DIR_READ_MODE') OR define('DIR_READ_MODE', 0755);
|
||||||
|
defined('DIR_WRITE_MODE') OR define('DIR_WRITE_MODE', 0755);
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| File Stream Modes
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| These modes are used when working with fopen()/popen()
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
defined('FOPEN_READ') OR define('FOPEN_READ', 'rb');
|
||||||
|
defined('FOPEN_READ_WRITE') OR define('FOPEN_READ_WRITE', 'r+b');
|
||||||
|
defined('FOPEN_WRITE_CREATE_DESTRUCTIVE') OR define('FOPEN_WRITE_CREATE_DESTRUCTIVE', 'wb'); // truncates existing file data, use with care
|
||||||
|
defined('FOPEN_READ_WRITE_CREATE_DESTRUCTIVE') OR define('FOPEN_READ_WRITE_CREATE_DESTRUCTIVE', 'w+b'); // truncates existing file data, use with care
|
||||||
|
defined('FOPEN_WRITE_CREATE') OR define('FOPEN_WRITE_CREATE', 'ab');
|
||||||
|
defined('FOPEN_READ_WRITE_CREATE') OR define('FOPEN_READ_WRITE_CREATE', 'a+b');
|
||||||
|
defined('FOPEN_WRITE_CREATE_STRICT') OR define('FOPEN_WRITE_CREATE_STRICT', 'xb');
|
||||||
|
defined('FOPEN_READ_WRITE_CREATE_STRICT') OR define('FOPEN_READ_WRITE_CREATE_STRICT', 'x+b');
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Exit Status Codes
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Used to indicate the conditions under which the script is exit()ing.
|
||||||
|
| While there is no universal standard for error codes, there are some
|
||||||
|
| broad conventions. Three such conventions are mentioned below, for
|
||||||
|
| those who wish to make use of them. The CodeIgniter defaults were
|
||||||
|
| chosen for the least overlap with these conventions, while still
|
||||||
|
| leaving room for others to be defined in future versions and user
|
||||||
|
| applications.
|
||||||
|
|
|
||||||
|
| The three main conventions used for determining exit status codes
|
||||||
|
| are as follows:
|
||||||
|
|
|
||||||
|
| Standard C/C++ Library (stdlibc):
|
||||||
|
| http://www.gnu.org/software/libc/manual/html_node/Exit-Status.html
|
||||||
|
| (This link also contains other GNU-specific conventions)
|
||||||
|
| BSD sysexits.h:
|
||||||
|
| http://www.gsp.com/cgi-bin/man.cgi?section=3&topic=sysexits
|
||||||
|
| Bash scripting:
|
||||||
|
| http://tldp.org/LDP/abs/html/exitcodes.html
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
defined('EXIT_SUCCESS') OR define('EXIT_SUCCESS', 0); // no errors
|
||||||
|
defined('EXIT_ERROR') OR define('EXIT_ERROR', 1); // generic error
|
||||||
|
defined('EXIT_CONFIG') OR define('EXIT_CONFIG', 3); // configuration error
|
||||||
|
defined('EXIT_UNKNOWN_FILE') OR define('EXIT_UNKNOWN_FILE', 4); // file not found
|
||||||
|
defined('EXIT_UNKNOWN_CLASS') OR define('EXIT_UNKNOWN_CLASS', 5); // unknown class
|
||||||
|
defined('EXIT_UNKNOWN_METHOD') OR define('EXIT_UNKNOWN_METHOD', 6); // unknown class member
|
||||||
|
defined('EXIT_USER_INPUT') OR define('EXIT_USER_INPUT', 7); // invalid user input
|
||||||
|
defined('EXIT_DATABASE') OR define('EXIT_DATABASE', 8); // database error
|
||||||
|
defined('EXIT__AUTO_MIN') OR define('EXIT__AUTO_MIN', 9); // lowest automatically-assigned error code
|
||||||
|
defined('EXIT__AUTO_MAX') OR define('EXIT__AUTO_MAX', 125); // highest automatically-assigned error code
|
|
@ -0,0 +1,96 @@
|
||||||
|
<?php
|
||||||
|
defined('BASEPATH') or exit('No direct script access allowed');
|
||||||
|
|
||||||
|
/*
|
||||||
|
| -------------------------------------------------------------------
|
||||||
|
| DATABASE CONNECTIVITY SETTINGS
|
||||||
|
| -------------------------------------------------------------------
|
||||||
|
| This file will contain the settings needed to access your database.
|
||||||
|
|
|
||||||
|
| For complete instructions please consult the 'Database Connection'
|
||||||
|
| page of the User Guide.
|
||||||
|
|
|
||||||
|
| -------------------------------------------------------------------
|
||||||
|
| EXPLANATION OF VARIABLES
|
||||||
|
| -------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| ['dsn'] The full DSN string describe a connection to the database.
|
||||||
|
| ['hostname'] The hostname of your database server.
|
||||||
|
| ['username'] The username used to connect to the database
|
||||||
|
| ['password'] The password used to connect to the database
|
||||||
|
| ['database'] The name of the database you want to connect to
|
||||||
|
| ['dbdriver'] The database driver. e.g.: mysqli.
|
||||||
|
| Currently supported:
|
||||||
|
| cubrid, ibase, mssql, mysql, mysqli, oci8,
|
||||||
|
| odbc, pdo, postgre, sqlite, sqlite3, sqlsrv
|
||||||
|
| ['dbprefix'] You can add an optional prefix, which will be added
|
||||||
|
| to the table name when using the Query Builder class
|
||||||
|
| ['pconnect'] TRUE/FALSE - Whether to use a persistent connection
|
||||||
|
| ['db_debug'] TRUE/FALSE - Whether database errors should be displayed.
|
||||||
|
| ['cache_on'] TRUE/FALSE - Enables/disables query caching
|
||||||
|
| ['cachedir'] The path to the folder where cache files should be stored
|
||||||
|
| ['char_set'] The character set used in communicating with the database
|
||||||
|
| ['dbcollat'] The character collation used in communicating with the database
|
||||||
|
| NOTE: For MySQL and MySQLi databases, this setting is only used
|
||||||
|
| as a backup if your server is running PHP < 5.2.3 or MySQL < 5.0.7
|
||||||
|
| (and in table creation queries made with DB Forge).
|
||||||
|
| There is an incompatibility in PHP with mysql_real_escape_string() which
|
||||||
|
| can make your site vulnerable to SQL injection if you are using a
|
||||||
|
| multi-byte character set and are running versions lower than these.
|
||||||
|
| Sites using Latin-1 or UTF-8 database character set and collation are unaffected.
|
||||||
|
| ['swap_pre'] A default table prefix that should be swapped with the dbprefix
|
||||||
|
| ['encrypt'] Whether or not to use an encrypted connection.
|
||||||
|
|
|
||||||
|
| 'mysql' (deprecated), 'sqlsrv' and 'pdo/sqlsrv' drivers accept TRUE/FALSE
|
||||||
|
| 'mysqli' and 'pdo/mysql' drivers accept an array with the following options:
|
||||||
|
|
|
||||||
|
| 'ssl_key' - Path to the private key file
|
||||||
|
| 'ssl_cert' - Path to the public key certificate file
|
||||||
|
| 'ssl_ca' - Path to the certificate authority file
|
||||||
|
| 'ssl_capath' - Path to a directory containing trusted CA certificates in PEM format
|
||||||
|
| 'ssl_cipher' - List of *allowed* ciphers to be used for the encryption, separated by colons (':')
|
||||||
|
| 'ssl_verify' - TRUE/FALSE; Whether verify the server certificate or not ('mysqli' only)
|
||||||
|
|
|
||||||
|
| ['compress'] Whether or not to use client compression (MySQL only)
|
||||||
|
| ['stricton'] TRUE/FALSE - forces 'Strict Mode' connections
|
||||||
|
| - good for ensuring strict SQL while developing
|
||||||
|
| ['ssl_options'] Used to set various SSL options that can be used when making SSL connections.
|
||||||
|
| ['failover'] array - A array with 0 or more data for connections if the main should fail.
|
||||||
|
| ['save_queries'] TRUE/FALSE - Whether to "save" all executed queries.
|
||||||
|
| NOTE: Disabling this will also effectively disable both
|
||||||
|
| $this->db->last_query() and profiling of DB queries.
|
||||||
|
| When you run a query, with this setting set to TRUE (default),
|
||||||
|
| CodeIgniter will store the SQL statement for debugging purposes.
|
||||||
|
| However, this may cause high memory usage, especially if you run
|
||||||
|
| a lot of SQL queries ... disable this to avoid that problem.
|
||||||
|
|
|
||||||
|
| The $active_group variable lets you choose which connection group to
|
||||||
|
| make active. By default there is only one group (the 'default' group).
|
||||||
|
|
|
||||||
|
| The $query_builder variables lets you determine whether or not to load
|
||||||
|
| the query builder class.
|
||||||
|
*/
|
||||||
|
$active_group = 'default';
|
||||||
|
$query_builder = TRUE;
|
||||||
|
|
||||||
|
$db['default'] = array(
|
||||||
|
'dsn' => '',
|
||||||
|
'hostname' => 'localhost',
|
||||||
|
'username' => 'esolusi2_simbayistunting',
|
||||||
|
'password' => 'rahasiabayistunting',
|
||||||
|
'database' => 'esolusi2_simbayistunting',
|
||||||
|
'dbdriver' => 'mysqli',
|
||||||
|
'dbprefix' => '',
|
||||||
|
'pconnect' => FALSE,
|
||||||
|
'db_debug' => (ENVIRONMENT !== 'production'),
|
||||||
|
'cache_on' => FALSE,
|
||||||
|
'cachedir' => '',
|
||||||
|
'char_set' => 'utf8',
|
||||||
|
'dbcollat' => 'utf8_general_ci',
|
||||||
|
'swap_pre' => '',
|
||||||
|
'encrypt' => FALSE,
|
||||||
|
'compress' => FALSE,
|
||||||
|
'stricton' => FALSE,
|
||||||
|
'failover' => array(),
|
||||||
|
'save_queries' => TRUE
|
||||||
|
);
|
|
@ -0,0 +1,24 @@
|
||||||
|
<?php
|
||||||
|
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||||
|
|
||||||
|
$_doctypes = array(
|
||||||
|
'xhtml11' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">',
|
||||||
|
'xhtml1-strict' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">',
|
||||||
|
'xhtml1-trans' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">',
|
||||||
|
'xhtml1-frame' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">',
|
||||||
|
'xhtml-basic11' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">',
|
||||||
|
'html5' => '<!DOCTYPE html>',
|
||||||
|
'html4-strict' => '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">',
|
||||||
|
'html4-trans' => '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">',
|
||||||
|
'html4-frame' => '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">',
|
||||||
|
'mathml1' => '<!DOCTYPE math SYSTEM "http://www.w3.org/Math/DTD/mathml1/mathml.dtd">',
|
||||||
|
'mathml2' => '<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" "http://www.w3.org/Math/DTD/mathml2/mathml2.dtd">',
|
||||||
|
'svg10' => '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">',
|
||||||
|
'svg11' => '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">',
|
||||||
|
'svg11-basic' => '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Basic//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-basic.dtd">',
|
||||||
|
'svg11-tiny' => '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">',
|
||||||
|
'xhtml-math-svg-xh' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">',
|
||||||
|
'xhtml-math-svg-sh' => '<!DOCTYPE svg:svg PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">',
|
||||||
|
'xhtml-rdfa-1' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">',
|
||||||
|
'xhtml-rdfa-2' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.1//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-2.dtd">'
|
||||||
|
);
|
|
@ -0,0 +1,103 @@
|
||||||
|
<?php
|
||||||
|
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||||
|
|
||||||
|
/*
|
||||||
|
| -------------------------------------------------------------------
|
||||||
|
| Foreign Characters
|
||||||
|
| -------------------------------------------------------------------
|
||||||
|
| This file contains an array of foreign characters for transliteration
|
||||||
|
| conversion used by the Text helper
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$foreign_characters = array(
|
||||||
|
'/ä|æ|ǽ/' => 'ae',
|
||||||
|
'/ö|œ/' => 'oe',
|
||||||
|
'/ü/' => 'ue',
|
||||||
|
'/Ä/' => 'Ae',
|
||||||
|
'/Ü/' => 'Ue',
|
||||||
|
'/Ö/' => 'Oe',
|
||||||
|
'/À|Á|Â|Ã|Ä|Å|Ǻ|Ā|Ă|Ą|Ǎ|Α|Ά|Ả|Ạ|Ầ|Ẫ|Ẩ|Ậ|Ằ|Ắ|Ẵ|Ẳ|Ặ|А/' => 'A',
|
||||||
|
'/à|á|â|ã|å|ǻ|ā|ă|ą|ǎ|ª|α|ά|ả|ạ|ầ|ấ|ẫ|ẩ|ậ|ằ|ắ|ẵ|ẳ|ặ|а/' => 'a',
|
||||||
|
'/Б/' => 'B',
|
||||||
|
'/б/' => 'b',
|
||||||
|
'/Ç|Ć|Ĉ|Ċ|Č/' => 'C',
|
||||||
|
'/ç|ć|ĉ|ċ|č/' => 'c',
|
||||||
|
'/Д/' => 'D',
|
||||||
|
'/д/' => 'd',
|
||||||
|
'/Ð|Ď|Đ|Δ/' => 'Dj',
|
||||||
|
'/ð|ď|đ|δ/' => 'dj',
|
||||||
|
'/È|É|Ê|Ë|Ē|Ĕ|Ė|Ę|Ě|Ε|Έ|Ẽ|Ẻ|Ẹ|Ề|Ế|Ễ|Ể|Ệ|Е|Э/' => 'E',
|
||||||
|
'/è|é|ê|ë|ē|ĕ|ė|ę|ě|έ|ε|ẽ|ẻ|ẹ|ề|ế|ễ|ể|ệ|е|э/' => 'e',
|
||||||
|
'/Ф/' => 'F',
|
||||||
|
'/ф/' => 'f',
|
||||||
|
'/Ĝ|Ğ|Ġ|Ģ|Γ|Г|Ґ/' => 'G',
|
||||||
|
'/ĝ|ğ|ġ|ģ|γ|г|ґ/' => 'g',
|
||||||
|
'/Ĥ|Ħ/' => 'H',
|
||||||
|
'/ĥ|ħ/' => 'h',
|
||||||
|
'/Ì|Í|Î|Ï|Ĩ|Ī|Ĭ|Ǐ|Į|İ|Η|Ή|Ί|Ι|Ϊ|Ỉ|Ị|И|Ы/' => 'I',
|
||||||
|
'/ì|í|î|ï|ĩ|ī|ĭ|ǐ|į|ı|η|ή|ί|ι|ϊ|ỉ|ị|и|ы|ї/' => 'i',
|
||||||
|
'/Ĵ/' => 'J',
|
||||||
|
'/ĵ/' => 'j',
|
||||||
|
'/Ķ|Κ|К/' => 'K',
|
||||||
|
'/ķ|κ|к/' => 'k',
|
||||||
|
'/Ĺ|Ļ|Ľ|Ŀ|Ł|Λ|Л/' => 'L',
|
||||||
|
'/ĺ|ļ|ľ|ŀ|ł|λ|л/' => 'l',
|
||||||
|
'/М/' => 'M',
|
||||||
|
'/м/' => 'm',
|
||||||
|
'/Ñ|Ń|Ņ|Ň|Ν|Н/' => 'N',
|
||||||
|
'/ñ|ń|ņ|ň|ʼn|ν|н/' => 'n',
|
||||||
|
'/Ò|Ó|Ô|Õ|Ō|Ŏ|Ǒ|Ő|Ơ|Ø|Ǿ|Ο|Ό|Ω|Ώ|Ỏ|Ọ|Ồ|Ố|Ỗ|Ổ|Ộ|Ờ|Ớ|Ỡ|Ở|Ợ|О/' => 'O',
|
||||||
|
'/ò|ó|ô|õ|ō|ŏ|ǒ|ő|ơ|ø|ǿ|º|ο|ό|ω|ώ|ỏ|ọ|ồ|ố|ỗ|ổ|ộ|ờ|ớ|ỡ|ở|ợ|о/' => 'o',
|
||||||
|
'/П/' => 'P',
|
||||||
|
'/п/' => 'p',
|
||||||
|
'/Ŕ|Ŗ|Ř|Ρ|Р/' => 'R',
|
||||||
|
'/ŕ|ŗ|ř|ρ|р/' => 'r',
|
||||||
|
'/Ś|Ŝ|Ş|Ș|Š|Σ|С/' => 'S',
|
||||||
|
'/ś|ŝ|ş|ș|š|ſ|σ|ς|с/' => 's',
|
||||||
|
'/Ț|Ţ|Ť|Ŧ|τ|Т/' => 'T',
|
||||||
|
'/ț|ţ|ť|ŧ|т/' => 't',
|
||||||
|
'/Þ|þ/' => 'th',
|
||||||
|
'/Ù|Ú|Û|Ũ|Ū|Ŭ|Ů|Ű|Ų|Ư|Ǔ|Ǖ|Ǘ|Ǚ|Ǜ|Ũ|Ủ|Ụ|Ừ|Ứ|Ữ|Ử|Ự|У/' => 'U',
|
||||||
|
'/ù|ú|û|ũ|ū|ŭ|ů|ű|ų|ư|ǔ|ǖ|ǘ|ǚ|ǜ|υ|ύ|ϋ|ủ|ụ|ừ|ứ|ữ|ử|ự|у/' => 'u',
|
||||||
|
'/Ƴ|Ɏ|Ỵ|Ẏ|Ӳ|Ӯ|Ў|Ý|Ÿ|Ŷ|Υ|Ύ|Ϋ|Ỳ|Ỹ|Ỷ|Ỵ|Й/' => 'Y',
|
||||||
|
'/ẙ|ʏ|ƴ|ɏ|ỵ|ẏ|ӳ|ӯ|ў|ý|ÿ|ŷ|ỳ|ỹ|ỷ|ỵ|й/' => 'y',
|
||||||
|
'/В/' => 'V',
|
||||||
|
'/в/' => 'v',
|
||||||
|
'/Ŵ/' => 'W',
|
||||||
|
'/ŵ/' => 'w',
|
||||||
|
'/Ź|Ż|Ž|Ζ|З/' => 'Z',
|
||||||
|
'/ź|ż|ž|ζ|з/' => 'z',
|
||||||
|
'/Æ|Ǽ/' => 'AE',
|
||||||
|
'/ß/' => 'ss',
|
||||||
|
'/IJ/' => 'IJ',
|
||||||
|
'/ij/' => 'ij',
|
||||||
|
'/Œ/' => 'OE',
|
||||||
|
'/ƒ/' => 'f',
|
||||||
|
'/ξ/' => 'ks',
|
||||||
|
'/π/' => 'p',
|
||||||
|
'/β/' => 'v',
|
||||||
|
'/μ/' => 'm',
|
||||||
|
'/ψ/' => 'ps',
|
||||||
|
'/Ё/' => 'Yo',
|
||||||
|
'/ё/' => 'yo',
|
||||||
|
'/Є/' => 'Ye',
|
||||||
|
'/є/' => 'ye',
|
||||||
|
'/Ї/' => 'Yi',
|
||||||
|
'/Ж/' => 'Zh',
|
||||||
|
'/ж/' => 'zh',
|
||||||
|
'/Х/' => 'Kh',
|
||||||
|
'/х/' => 'kh',
|
||||||
|
'/Ц/' => 'Ts',
|
||||||
|
'/ц/' => 'ts',
|
||||||
|
'/Ч/' => 'Ch',
|
||||||
|
'/ч/' => 'ch',
|
||||||
|
'/Ш/' => 'Sh',
|
||||||
|
'/ш/' => 'sh',
|
||||||
|
'/Щ/' => 'Shch',
|
||||||
|
'/щ/' => 'shch',
|
||||||
|
'/Ъ|ъ|Ь|ь/' => '',
|
||||||
|
'/Ю/' => 'Yu',
|
||||||
|
'/ю/' => 'yu',
|
||||||
|
'/Я/' => 'Ya',
|
||||||
|
'/я/' => 'ya'
|
||||||
|
);
|
|
@ -0,0 +1,13 @@
|
||||||
|
<?php
|
||||||
|
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||||
|
|
||||||
|
/*
|
||||||
|
| -------------------------------------------------------------------------
|
||||||
|
| Hooks
|
||||||
|
| -------------------------------------------------------------------------
|
||||||
|
| This file lets you define "hooks" to extend CI without hacking the core
|
||||||
|
| files. Please see the user guide for info:
|
||||||
|
|
|
||||||
|
| https://codeigniter.com/user_guide/general/hooks.html
|
||||||
|
|
|
||||||
|
*/
|
|
@ -0,0 +1,11 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>403 Forbidden</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<p>Directory access is forbidden.</p>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,19 @@
|
||||||
|
<?php
|
||||||
|
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||||
|
|
||||||
|
/*
|
||||||
|
| -------------------------------------------------------------------------
|
||||||
|
| Memcached settings
|
||||||
|
| -------------------------------------------------------------------------
|
||||||
|
| Your Memcached servers can be specified below.
|
||||||
|
|
|
||||||
|
| See: https://codeigniter.com/user_guide/libraries/caching.html#memcached
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config = array(
|
||||||
|
'default' => array(
|
||||||
|
'hostname' => '127.0.0.1',
|
||||||
|
'port' => '11211',
|
||||||
|
'weight' => '1',
|
||||||
|
),
|
||||||
|
);
|
|
@ -0,0 +1,84 @@
|
||||||
|
<?php
|
||||||
|
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Enable/Disable Migrations
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Migrations are disabled by default for security reasons.
|
||||||
|
| You should enable migrations whenever you intend to do a schema migration
|
||||||
|
| and disable it back when you're done.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['migration_enabled'] = FALSE;
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Migration Type
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Migration file names may be based on a sequential identifier or on
|
||||||
|
| a timestamp. Options are:
|
||||||
|
|
|
||||||
|
| 'sequential' = Sequential migration naming (001_add_blog.php)
|
||||||
|
| 'timestamp' = Timestamp migration naming (20121031104401_add_blog.php)
|
||||||
|
| Use timestamp format YYYYMMDDHHIISS.
|
||||||
|
|
|
||||||
|
| Note: If this configuration value is missing the Migration library
|
||||||
|
| defaults to 'sequential' for backward compatibility with CI2.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['migration_type'] = 'timestamp';
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Migrations table
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| This is the name of the table that will store the current migrations state.
|
||||||
|
| When migrations runs it will store in a database table which migration
|
||||||
|
| level the system is at. It then compares the migration level in this
|
||||||
|
| table to the $config['migration_version'] if they are not the same it
|
||||||
|
| will migrate up. This must be set.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['migration_table'] = 'migrations';
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Auto Migrate To Latest
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| If this is set to TRUE when you load the migrations class and have
|
||||||
|
| $config['migration_enabled'] set to TRUE the system will auto migrate
|
||||||
|
| to your latest migration (whatever $config['migration_version'] is
|
||||||
|
| set to). This way you do not have to call migrations anywhere else
|
||||||
|
| in your code to have the latest migration.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['migration_auto_latest'] = FALSE;
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Migrations version
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| This is used to set migration version that the file system should be on.
|
||||||
|
| If you run $this->migration->current() this is the version that schema will
|
||||||
|
| be upgraded / downgraded to.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['migration_version'] = 0;
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Migrations Path
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Path to your migrations folder.
|
||||||
|
| Typically, it will be within your application path.
|
||||||
|
| Also, writing permission is required within the migrations path.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['migration_path'] = APPPATH.'migrations/';
|
|
@ -0,0 +1,184 @@
|
||||||
|
<?php
|
||||||
|
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||||
|
|
||||||
|
/*
|
||||||
|
| -------------------------------------------------------------------
|
||||||
|
| MIME TYPES
|
||||||
|
| -------------------------------------------------------------------
|
||||||
|
| This file contains an array of mime types. It is used by the
|
||||||
|
| Upload class to help identify allowed file types.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
return array(
|
||||||
|
'hqx' => array('application/mac-binhex40', 'application/mac-binhex', 'application/x-binhex40', 'application/x-mac-binhex40'),
|
||||||
|
'cpt' => 'application/mac-compactpro',
|
||||||
|
'csv' => array('text/x-comma-separated-values', 'text/comma-separated-values', 'application/octet-stream', 'application/vnd.ms-excel', 'application/x-csv', 'text/x-csv', 'text/csv', 'application/csv', 'application/excel', 'application/vnd.msexcel', 'text/plain'),
|
||||||
|
'bin' => array('application/macbinary', 'application/mac-binary', 'application/octet-stream', 'application/x-binary', 'application/x-macbinary'),
|
||||||
|
'dms' => 'application/octet-stream',
|
||||||
|
'lha' => 'application/octet-stream',
|
||||||
|
'lzh' => 'application/octet-stream',
|
||||||
|
'exe' => array('application/octet-stream', 'application/x-msdownload'),
|
||||||
|
'class' => 'application/octet-stream',
|
||||||
|
'psd' => array('application/x-photoshop', 'image/vnd.adobe.photoshop'),
|
||||||
|
'so' => 'application/octet-stream',
|
||||||
|
'sea' => 'application/octet-stream',
|
||||||
|
'dll' => 'application/octet-stream',
|
||||||
|
'oda' => 'application/oda',
|
||||||
|
'pdf' => array('application/pdf', 'application/force-download', 'application/x-download', 'binary/octet-stream'),
|
||||||
|
'ai' => array('application/pdf', 'application/postscript'),
|
||||||
|
'eps' => 'application/postscript',
|
||||||
|
'ps' => 'application/postscript',
|
||||||
|
'smi' => 'application/smil',
|
||||||
|
'smil' => 'application/smil',
|
||||||
|
'mif' => 'application/vnd.mif',
|
||||||
|
'xls' => array('application/vnd.ms-excel', 'application/msexcel', 'application/x-msexcel', 'application/x-ms-excel', 'application/x-excel', 'application/x-dos_ms_excel', 'application/xls', 'application/x-xls', 'application/excel', 'application/download', 'application/vnd.ms-office', 'application/msword'),
|
||||||
|
'ppt' => array('application/powerpoint', 'application/vnd.ms-powerpoint', 'application/vnd.ms-office', 'application/msword'),
|
||||||
|
'pptx' => array('application/vnd.openxmlformats-officedocument.presentationml.presentation', 'application/x-zip', 'application/zip'),
|
||||||
|
'wbxml' => 'application/wbxml',
|
||||||
|
'wmlc' => 'application/wmlc',
|
||||||
|
'dcr' => 'application/x-director',
|
||||||
|
'dir' => 'application/x-director',
|
||||||
|
'dxr' => 'application/x-director',
|
||||||
|
'dvi' => 'application/x-dvi',
|
||||||
|
'gtar' => 'application/x-gtar',
|
||||||
|
'gz' => 'application/x-gzip',
|
||||||
|
'gzip' => 'application/x-gzip',
|
||||||
|
'php' => array('application/x-httpd-php', 'application/php', 'application/x-php', 'text/php', 'text/x-php', 'application/x-httpd-php-source'),
|
||||||
|
'php4' => 'application/x-httpd-php',
|
||||||
|
'php3' => 'application/x-httpd-php',
|
||||||
|
'phtml' => 'application/x-httpd-php',
|
||||||
|
'phps' => 'application/x-httpd-php-source',
|
||||||
|
'js' => array('application/x-javascript', 'text/plain'),
|
||||||
|
'swf' => 'application/x-shockwave-flash',
|
||||||
|
'sit' => 'application/x-stuffit',
|
||||||
|
'tar' => 'application/x-tar',
|
||||||
|
'tgz' => array('application/x-tar', 'application/x-gzip-compressed'),
|
||||||
|
'z' => 'application/x-compress',
|
||||||
|
'xhtml' => 'application/xhtml+xml',
|
||||||
|
'xht' => 'application/xhtml+xml',
|
||||||
|
'zip' => array('application/x-zip', 'application/zip', 'application/x-zip-compressed', 'application/s-compressed', 'multipart/x-zip'),
|
||||||
|
'rar' => array('application/x-rar', 'application/rar', 'application/x-rar-compressed'),
|
||||||
|
'mid' => 'audio/midi',
|
||||||
|
'midi' => 'audio/midi',
|
||||||
|
'mpga' => 'audio/mpeg',
|
||||||
|
'mp2' => 'audio/mpeg',
|
||||||
|
'mp3' => array('audio/mpeg', 'audio/mpg', 'audio/mpeg3', 'audio/mp3'),
|
||||||
|
'aif' => array('audio/x-aiff', 'audio/aiff'),
|
||||||
|
'aiff' => array('audio/x-aiff', 'audio/aiff'),
|
||||||
|
'aifc' => 'audio/x-aiff',
|
||||||
|
'ram' => 'audio/x-pn-realaudio',
|
||||||
|
'rm' => 'audio/x-pn-realaudio',
|
||||||
|
'rpm' => 'audio/x-pn-realaudio-plugin',
|
||||||
|
'ra' => 'audio/x-realaudio',
|
||||||
|
'rv' => 'video/vnd.rn-realvideo',
|
||||||
|
'wav' => array('audio/x-wav', 'audio/wave', 'audio/wav'),
|
||||||
|
'bmp' => array('image/bmp', 'image/x-bmp', 'image/x-bitmap', 'image/x-xbitmap', 'image/x-win-bitmap', 'image/x-windows-bmp', 'image/ms-bmp', 'image/x-ms-bmp', 'application/bmp', 'application/x-bmp', 'application/x-win-bitmap'),
|
||||||
|
'gif' => 'image/gif',
|
||||||
|
'jpeg' => array('image/jpeg', 'image/pjpeg'),
|
||||||
|
'jpg' => array('image/jpeg', 'image/pjpeg'),
|
||||||
|
'jpe' => array('image/jpeg', 'image/pjpeg'),
|
||||||
|
'jp2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'),
|
||||||
|
'j2k' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'),
|
||||||
|
'jpf' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'),
|
||||||
|
'jpg2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'),
|
||||||
|
'jpx' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'),
|
||||||
|
'jpm' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'),
|
||||||
|
'mj2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'),
|
||||||
|
'mjp2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'),
|
||||||
|
'png' => array('image/png', 'image/x-png'),
|
||||||
|
'tiff' => 'image/tiff',
|
||||||
|
'tif' => 'image/tiff',
|
||||||
|
'css' => array('text/css', 'text/plain'),
|
||||||
|
'html' => array('text/html', 'text/plain'),
|
||||||
|
'htm' => array('text/html', 'text/plain'),
|
||||||
|
'shtml' => array('text/html', 'text/plain'),
|
||||||
|
'txt' => 'text/plain',
|
||||||
|
'text' => 'text/plain',
|
||||||
|
'log' => array('text/plain', 'text/x-log'),
|
||||||
|
'rtx' => 'text/richtext',
|
||||||
|
'rtf' => 'text/rtf',
|
||||||
|
'xml' => array('application/xml', 'text/xml', 'text/plain'),
|
||||||
|
'xsl' => array('application/xml', 'text/xsl', 'text/xml'),
|
||||||
|
'mpeg' => 'video/mpeg',
|
||||||
|
'mpg' => 'video/mpeg',
|
||||||
|
'mpe' => 'video/mpeg',
|
||||||
|
'qt' => 'video/quicktime',
|
||||||
|
'mov' => 'video/quicktime',
|
||||||
|
'avi' => array('video/x-msvideo', 'video/msvideo', 'video/avi', 'application/x-troff-msvideo'),
|
||||||
|
'movie' => 'video/x-sgi-movie',
|
||||||
|
'doc' => array('application/msword', 'application/vnd.ms-office'),
|
||||||
|
'docx' => array('application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/zip', 'application/msword', 'application/x-zip'),
|
||||||
|
'dot' => array('application/msword', 'application/vnd.ms-office'),
|
||||||
|
'dotx' => array('application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/zip', 'application/msword'),
|
||||||
|
'xlsx' => array('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/zip', 'application/vnd.ms-excel', 'application/msword', 'application/x-zip'),
|
||||||
|
'word' => array('application/msword', 'application/octet-stream'),
|
||||||
|
'xl' => 'application/excel',
|
||||||
|
'eml' => 'message/rfc822',
|
||||||
|
'json' => array('application/json', 'text/json'),
|
||||||
|
'pem' => array('application/x-x509-user-cert', 'application/x-pem-file', 'application/octet-stream'),
|
||||||
|
'p10' => array('application/x-pkcs10', 'application/pkcs10'),
|
||||||
|
'p12' => 'application/x-pkcs12',
|
||||||
|
'p7a' => 'application/x-pkcs7-signature',
|
||||||
|
'p7c' => array('application/pkcs7-mime', 'application/x-pkcs7-mime'),
|
||||||
|
'p7m' => array('application/pkcs7-mime', 'application/x-pkcs7-mime'),
|
||||||
|
'p7r' => 'application/x-pkcs7-certreqresp',
|
||||||
|
'p7s' => 'application/pkcs7-signature',
|
||||||
|
'crt' => array('application/x-x509-ca-cert', 'application/x-x509-user-cert', 'application/pkix-cert'),
|
||||||
|
'crl' => array('application/pkix-crl', 'application/pkcs-crl'),
|
||||||
|
'der' => 'application/x-x509-ca-cert',
|
||||||
|
'kdb' => 'application/octet-stream',
|
||||||
|
'pgp' => 'application/pgp',
|
||||||
|
'gpg' => 'application/gpg-keys',
|
||||||
|
'sst' => 'application/octet-stream',
|
||||||
|
'csr' => 'application/octet-stream',
|
||||||
|
'rsa' => 'application/x-pkcs7',
|
||||||
|
'cer' => array('application/pkix-cert', 'application/x-x509-ca-cert'),
|
||||||
|
'3g2' => 'video/3gpp2',
|
||||||
|
'3gp' => array('video/3gp', 'video/3gpp'),
|
||||||
|
'mp4' => 'video/mp4',
|
||||||
|
'm4a' => 'audio/x-m4a',
|
||||||
|
'f4v' => array('video/mp4', 'video/x-f4v'),
|
||||||
|
'flv' => 'video/x-flv',
|
||||||
|
'webm' => 'video/webm',
|
||||||
|
'aac' => 'audio/x-acc',
|
||||||
|
'm4u' => 'application/vnd.mpegurl',
|
||||||
|
'm3u' => 'text/plain',
|
||||||
|
'xspf' => 'application/xspf+xml',
|
||||||
|
'vlc' => 'application/videolan',
|
||||||
|
'wmv' => array('video/x-ms-wmv', 'video/x-ms-asf'),
|
||||||
|
'au' => 'audio/x-au',
|
||||||
|
'ac3' => 'audio/ac3',
|
||||||
|
'flac' => 'audio/x-flac',
|
||||||
|
'ogg' => array('audio/ogg', 'video/ogg', 'application/ogg'),
|
||||||
|
'kmz' => array('application/vnd.google-earth.kmz', 'application/zip', 'application/x-zip'),
|
||||||
|
'kml' => array('application/vnd.google-earth.kml+xml', 'application/xml', 'text/xml'),
|
||||||
|
'ics' => 'text/calendar',
|
||||||
|
'ical' => 'text/calendar',
|
||||||
|
'zsh' => 'text/x-scriptzsh',
|
||||||
|
'7z' => array('application/x-7z-compressed', 'application/x-compressed', 'application/x-zip-compressed', 'application/zip', 'multipart/x-zip'),
|
||||||
|
'7zip' => array('application/x-7z-compressed', 'application/x-compressed', 'application/x-zip-compressed', 'application/zip', 'multipart/x-zip'),
|
||||||
|
'cdr' => array('application/cdr', 'application/coreldraw', 'application/x-cdr', 'application/x-coreldraw', 'image/cdr', 'image/x-cdr', 'zz-application/zz-winassoc-cdr'),
|
||||||
|
'wma' => array('audio/x-ms-wma', 'video/x-ms-asf'),
|
||||||
|
'jar' => array('application/java-archive', 'application/x-java-application', 'application/x-jar', 'application/x-compressed'),
|
||||||
|
'svg' => array('image/svg+xml', 'application/xml', 'text/xml'),
|
||||||
|
'vcf' => 'text/x-vcard',
|
||||||
|
'srt' => array('text/srt', 'text/plain'),
|
||||||
|
'vtt' => array('text/vtt', 'text/plain'),
|
||||||
|
'ico' => array('image/x-icon', 'image/x-ico', 'image/vnd.microsoft.icon'),
|
||||||
|
'odc' => 'application/vnd.oasis.opendocument.chart',
|
||||||
|
'otc' => 'application/vnd.oasis.opendocument.chart-template',
|
||||||
|
'odf' => 'application/vnd.oasis.opendocument.formula',
|
||||||
|
'otf' => 'application/vnd.oasis.opendocument.formula-template',
|
||||||
|
'odg' => 'application/vnd.oasis.opendocument.graphics',
|
||||||
|
'otg' => 'application/vnd.oasis.opendocument.graphics-template',
|
||||||
|
'odi' => 'application/vnd.oasis.opendocument.image',
|
||||||
|
'oti' => 'application/vnd.oasis.opendocument.image-template',
|
||||||
|
'odp' => 'application/vnd.oasis.opendocument.presentation',
|
||||||
|
'otp' => 'application/vnd.oasis.opendocument.presentation-template',
|
||||||
|
'ods' => 'application/vnd.oasis.opendocument.spreadsheet',
|
||||||
|
'ots' => 'application/vnd.oasis.opendocument.spreadsheet-template',
|
||||||
|
'odt' => 'application/vnd.oasis.opendocument.text',
|
||||||
|
'odm' => 'application/vnd.oasis.opendocument.text-master',
|
||||||
|
'ott' => 'application/vnd.oasis.opendocument.text-template',
|
||||||
|
'oth' => 'application/vnd.oasis.opendocument.text-web'
|
||||||
|
);
|
|
@ -0,0 +1,14 @@
|
||||||
|
<?php
|
||||||
|
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||||
|
|
||||||
|
/*
|
||||||
|
| -------------------------------------------------------------------------
|
||||||
|
| Profiler Sections
|
||||||
|
| -------------------------------------------------------------------------
|
||||||
|
| This file lets you determine whether or not various sections of Profiler
|
||||||
|
| data are displayed when the Profiler is enabled.
|
||||||
|
| Please see the user guide for info:
|
||||||
|
|
|
||||||
|
| https://codeigniter.com/user_guide/general/profiling.html
|
||||||
|
|
|
||||||
|
*/
|
|
@ -0,0 +1,626 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
defined('BASEPATH') or exit('No direct script access allowed');
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| HTTP protocol
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Set to force the use of HTTPS for REST API calls
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['force_https'] = false;
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| REST Output Format
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| The default format of the response
|
||||||
|
|
|
||||||
|
| 'array': Array data structure
|
||||||
|
| 'csv': Comma separated file
|
||||||
|
| 'json': Uses json_encode(). Note: If a GET query string
|
||||||
|
| called 'callback' is passed, then jsonp will be returned
|
||||||
|
| 'html' HTML using the table library in CodeIgniter
|
||||||
|
| 'php': Uses var_export()
|
||||||
|
| 'serialized': Uses serialize()
|
||||||
|
| 'xml': Uses simplexml_load_string()
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['rest_default_format'] = 'json';
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| REST Supported Output Formats
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| The following setting contains a list of the supported/allowed formats.
|
||||||
|
| You may remove those formats that you don't want to use.
|
||||||
|
| If the default format $config['rest_default_format'] is missing within
|
||||||
|
| $config['rest_supported_formats'], it will be added silently during
|
||||||
|
| REST_Controller initialization.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['rest_supported_formats'] = [
|
||||||
|
'json',
|
||||||
|
'array',
|
||||||
|
'csv',
|
||||||
|
'html',
|
||||||
|
'jsonp',
|
||||||
|
'php',
|
||||||
|
'serialized',
|
||||||
|
'xml',
|
||||||
|
];
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| REST Status Field Name
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| The field name for the status inside the response
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['rest_status_field_name'] = 'status';
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| REST Message Field Name
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| The field name for the message inside the response
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['rest_message_field_name'] = 'error';
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Enable Emulate Request
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Should we enable emulation of the request (e.g. used in Mootools request)
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['enable_emulate_request'] = true;
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| REST Realm
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Name of the password protected REST API displayed on login dialogs
|
||||||
|
|
|
||||||
|
| e.g: My Secret REST API
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['rest_realm'] = 'REST API';
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| REST Login
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Set to specify the REST API requires to be logged in
|
||||||
|
|
|
||||||
|
| FALSE No login required
|
||||||
|
| 'basic' Unsecured login
|
||||||
|
| 'digest' More secured login
|
||||||
|
| 'session' Check for a PHP session variable. See 'auth_source' to set the
|
||||||
|
| authorization key
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['rest_auth'] = false;
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| REST Login Source
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Is login required and if so, the user store to use
|
||||||
|
|
|
||||||
|
| '' Use config based users or wildcard testing
|
||||||
|
| 'ldap' Use LDAP authentication
|
||||||
|
| 'library' Use a authentication library
|
||||||
|
|
|
||||||
|
| Note: If 'rest_auth' is set to 'session' then change 'auth_source' to the name of the session variable
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['auth_source'] = 'ldap';
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Allow Authentication and API Keys
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Where you wish to have Basic, Digest or Session login, but also want to use API Keys (for limiting
|
||||||
|
| requests etc), set to TRUE;
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['allow_auth_and_keys'] = true;
|
||||||
|
$config['strict_api_and_auth'] = true; // force the use of both api and auth before a valid api request is made
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| REST Login Class and Function
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| If library authentication is used define the class and function name
|
||||||
|
|
|
||||||
|
| The function should accept two parameters: class->function($username, $password)
|
||||||
|
| In other cases override the function _perform_library_auth in your controller
|
||||||
|
|
|
||||||
|
| For digest authentication the library function should return already a stored
|
||||||
|
| md5(username:restrealm:password) for that username
|
||||||
|
|
|
||||||
|
| e.g: md5('admin:REST API:1234') = '1e957ebc35631ab22d5bd6526bd14ea2'
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['auth_library_class'] = '';
|
||||||
|
$config['auth_library_function'] = '';
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Override auth types for specific class/method
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Set specific authentication types for methods within a class (controller)
|
||||||
|
|
|
||||||
|
| Set as many config entries as needed. Any methods not set will use the default 'rest_auth' config value.
|
||||||
|
|
|
||||||
|
| e.g:
|
||||||
|
|
|
||||||
|
| $config['auth_override_class_method']['deals']['view'] = 'none';
|
||||||
|
| $config['auth_override_class_method']['deals']['insert'] = 'digest';
|
||||||
|
| $config['auth_override_class_method']['accounts']['user'] = 'basic';
|
||||||
|
| $config['auth_override_class_method']['dashboard']['*'] = 'none|digest|basic';
|
||||||
|
|
|
||||||
|
| Here 'deals', 'accounts' and 'dashboard' are controller names, 'view', 'insert' and 'user' are methods within. An asterisk may also be used to specify an authentication method for an entire classes methods. Ex: $config['auth_override_class_method']['dashboard']['*'] = 'basic'; (NOTE: leave off the '_get' or '_post' from the end of the method name)
|
||||||
|
| Acceptable values are; 'none', 'digest' and 'basic'.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
// $config['auth_override_class_method']['deals']['view'] = 'none';
|
||||||
|
// $config['auth_override_class_method']['deals']['insert'] = 'digest';
|
||||||
|
// $config['auth_override_class_method']['accounts']['user'] = 'basic';
|
||||||
|
// $config['auth_override_class_method']['dashboard']['*'] = 'basic';
|
||||||
|
|
||||||
|
// ---Uncomment list line for the wildard unit test
|
||||||
|
// $config['auth_override_class_method']['wildcard_test_cases']['*'] = 'basic';
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Override auth types for specific 'class/method/HTTP method'
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| example:
|
||||||
|
|
|
||||||
|
| $config['auth_override_class_method_http']['deals']['view']['get'] = 'none';
|
||||||
|
| $config['auth_override_class_method_http']['deals']['insert']['post'] = 'none';
|
||||||
|
| $config['auth_override_class_method_http']['deals']['*']['options'] = 'none';
|
||||||
|
*/
|
||||||
|
|
||||||
|
// ---Uncomment list line for the wildard unit test
|
||||||
|
// $config['auth_override_class_method_http']['wildcard_test_cases']['*']['options'] = 'basic';
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| REST Login Usernames
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Array of usernames and passwords for login, if ldap is configured this is ignored
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['rest_valid_logins'] = ['admin' => '1234'];
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Global IP White-listing
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Limit connections to your REST server to White-listed IP addresses
|
||||||
|
|
|
||||||
|
| Usage:
|
||||||
|
| 1. Set to TRUE and select an auth option for extreme security (client's IP
|
||||||
|
| address must be in white-list and they must also log in)
|
||||||
|
| 2. Set to TRUE with auth set to FALSE to allow White-listed IPs access with no login
|
||||||
|
| 3. Set to FALSE but set 'auth_override_class_method' to 'white-list' to
|
||||||
|
| restrict certain methods to IPs in your white-list
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['rest_ip_whitelist_enabled'] = false;
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| REST Handle Exceptions
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Handle exceptions caused by the controller
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['rest_handle_exceptions'] = true;
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| REST IP White-list
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Limit connections to your REST server with a comma separated
|
||||||
|
| list of IP addresses
|
||||||
|
|
|
||||||
|
| e.g: '123.456.789.0, 987.654.32.1'
|
||||||
|
|
|
||||||
|
| 127.0.0.1 and 0.0.0.0 are allowed by default
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['rest_ip_whitelist'] = '';
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Global IP Blacklisting
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Prevent connections to the REST server from blacklisted IP addresses
|
||||||
|
|
|
||||||
|
| Usage:
|
||||||
|
| 1. Set to TRUE and add any IP address to 'rest_ip_blacklist'
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['rest_ip_blacklist_enabled'] = false;
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| REST IP Blacklist
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Prevent connections from the following IP addresses
|
||||||
|
|
|
||||||
|
| e.g: '123.456.789.0, 987.654.32.1'
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['rest_ip_blacklist'] = '';
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| REST Database Group
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Connect to a database group for keys, logging, etc. It will only connect
|
||||||
|
| if you have any of these features enabled
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['rest_database_group'] = 'default';
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| REST API Keys Table Name
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| The table name in your database that stores API keys
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['rest_keys_table'] = 'keys';
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| REST Enable Keys
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| When set to TRUE, the REST API will look for a column name called 'key'.
|
||||||
|
| If no key is provided, the request will result in an error. To override the
|
||||||
|
| column name see 'rest_key_column'
|
||||||
|
|
|
||||||
|
| Default table schema:
|
||||||
|
| CREATE TABLE `keys` (
|
||||||
|
| `id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
| `user_id` INT(11) NOT NULL,
|
||||||
|
| `key` VARCHAR(40) NOT NULL,
|
||||||
|
| `level` INT(2) NOT NULL,
|
||||||
|
| `ignore_limits` TINYINT(1) NOT NULL DEFAULT '0',
|
||||||
|
| `is_private_key` TINYINT(1) NOT NULL DEFAULT '0',
|
||||||
|
| `ip_addresses` TEXT NULL DEFAULT NULL,
|
||||||
|
| `date_created` INT(11) NOT NULL,
|
||||||
|
| PRIMARY KEY (`id`)
|
||||||
|
| ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['rest_enable_keys'] = false;
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| REST Table Key Column Name
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| If not using the default table schema in 'rest_enable_keys', specify the
|
||||||
|
| column name to match e.g. my_key
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['rest_key_column'] = 'key';
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| REST API Limits method
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Specify the method used to limit the API calls
|
||||||
|
|
|
||||||
|
| Available methods are :
|
||||||
|
| $config['rest_limits_method'] = 'IP_ADDRESS'; // Put a limit per ip address
|
||||||
|
| $config['rest_limits_method'] = 'API_KEY'; // Put a limit per api key
|
||||||
|
| $config['rest_limits_method'] = 'METHOD_NAME'; // Put a limit on method calls
|
||||||
|
| $config['rest_limits_method'] = 'ROUTED_URL'; // Put a limit on the routed URL
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['rest_limits_method'] = 'ROUTED_URL';
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| REST Key Length
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Length of the created keys. Check your default database schema on the
|
||||||
|
| maximum length allowed
|
||||||
|
|
|
||||||
|
| Note: The maximum length is 40
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['rest_key_length'] = 40;
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| REST API Key Variable
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Custom header to specify the API key
|
||||||
|
|
||||||
|
| Note: Custom headers with the X- prefix are deprecated as of
|
||||||
|
| 2012/06/12. See RFC 6648 specification for more details
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['rest_key_name'] = 'X-API-KEY';
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| REST Enable Logging
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| When set to TRUE, the REST API will log actions based on the column names 'key', 'date',
|
||||||
|
| 'time' and 'ip_address'. This is a general rule that can be overridden in the
|
||||||
|
| $this->method array for each controller
|
||||||
|
|
|
||||||
|
| Default table schema:
|
||||||
|
| CREATE TABLE `logs` (
|
||||||
|
| `id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
| `uri` VARCHAR(255) NOT NULL,
|
||||||
|
| `method` VARCHAR(6) NOT NULL,
|
||||||
|
| `params` TEXT DEFAULT NULL,
|
||||||
|
| `api_key` VARCHAR(40) NOT NULL,
|
||||||
|
| `ip_address` VARCHAR(45) NOT NULL,
|
||||||
|
| `time` INT(11) NOT NULL,
|
||||||
|
| `rtime` FLOAT DEFAULT NULL,
|
||||||
|
| `authorized` VARCHAR(1) NOT NULL,
|
||||||
|
| `response_code` smallint(3) DEFAULT '0',
|
||||||
|
| PRIMARY KEY (`id`)
|
||||||
|
| ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['rest_enable_logging'] = false;
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| REST API Logs Table Name
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| If not using the default table schema in 'rest_enable_logging', specify the
|
||||||
|
| table name to match e.g. my_logs
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['rest_logs_table'] = 'logs';
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| REST Method Access Control
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| When set to TRUE, the REST API will check the access table to see if
|
||||||
|
| the API key can access that controller. 'rest_enable_keys' must be enabled
|
||||||
|
| to use this
|
||||||
|
|
|
||||||
|
| Default table schema:
|
||||||
|
| CREATE TABLE `access` (
|
||||||
|
| `id` INT(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
| `key` VARCHAR(40) NOT NULL DEFAULT '',
|
||||||
|
| `all_access` TINYINT(1) NOT NULL DEFAULT '0',
|
||||||
|
| `controller` VARCHAR(50) NOT NULL DEFAULT '',
|
||||||
|
| `date_created` DATETIME DEFAULT NULL,
|
||||||
|
| `date_modified` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||||
|
| PRIMARY KEY (`id`)
|
||||||
|
| ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['rest_enable_access'] = false;
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| REST API Access Table Name
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| If not using the default table schema in 'rest_enable_access', specify the
|
||||||
|
| table name to match e.g. my_access
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['rest_access_table'] = 'access';
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| REST API Param Log Format
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| When set to TRUE, the REST API log parameters will be stored in the database as JSON
|
||||||
|
| Set to FALSE to log as serialized PHP
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['rest_logs_json_params'] = false;
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| REST Enable Limits
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| When set to TRUE, the REST API will count the number of uses of each method
|
||||||
|
| by an API key each hour. This is a general rule that can be overridden in the
|
||||||
|
| $this->method array in each controller
|
||||||
|
|
|
||||||
|
| Default table schema:
|
||||||
|
| CREATE TABLE `limits` (
|
||||||
|
| `id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
| `uri` VARCHAR(255) NOT NULL,
|
||||||
|
| `count` INT(10) NOT NULL,
|
||||||
|
| `hour_started` INT(11) NOT NULL,
|
||||||
|
| `api_key` VARCHAR(40) NOT NULL,
|
||||||
|
| PRIMARY KEY (`id`)
|
||||||
|
| ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
|
||||||
|
| To specify the limits within the controller's __construct() method, add per-method
|
||||||
|
| limits with:
|
||||||
|
|
|
||||||
|
| $this->methods['METHOD_NAME']['limit'] = [NUM_REQUESTS_PER_HOUR];
|
||||||
|
|
|
||||||
|
| See application/controllers/api/example.php for examples
|
||||||
|
*/
|
||||||
|
$config['rest_enable_limits'] = false;
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| REST API Limits Table Name
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| If not using the default table schema in 'rest_enable_limits', specify the
|
||||||
|
| table name to match e.g. my_limits
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['rest_limits_table'] = 'limits';
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| REST Ignore HTTP Accept
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Set to TRUE to ignore the HTTP Accept and speed up each request a little.
|
||||||
|
| Only do this if you are using the $this->rest_format or /format/xml in URLs
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['rest_ignore_http_accept'] = false;
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| REST AJAX Only
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Set to TRUE to allow AJAX requests only. Set to FALSE to accept HTTP requests
|
||||||
|
|
|
||||||
|
| Note: If set to TRUE and the request is not AJAX, a 505 response with the
|
||||||
|
| error message 'Only AJAX requests are accepted.' will be returned.
|
||||||
|
|
|
||||||
|
| Hint: This is good for production environments
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['rest_ajax_only'] = false;
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| REST Language File
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Language file to load from the language directory
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['rest_language'] = 'english';
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| CORS Check
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Set to TRUE to enable Cross-Origin Resource Sharing (CORS). Useful if you
|
||||||
|
| are hosting your API on a different domain from the application that
|
||||||
|
| will access it through a browser
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['check_cors'] = false;
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| CORS Allowable Headers
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| If using CORS checks, set the allowable headers here
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['allowed_cors_headers'] = [
|
||||||
|
'Origin',
|
||||||
|
'X-Requested-With',
|
||||||
|
'Content-Type',
|
||||||
|
'Accept',
|
||||||
|
'Access-Control-Request-Method',
|
||||||
|
];
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| CORS Allowable Methods
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| If using CORS checks, you can set the methods you want to be allowed
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['allowed_cors_methods'] = [
|
||||||
|
'GET',
|
||||||
|
'POST',
|
||||||
|
'OPTIONS',
|
||||||
|
'PUT',
|
||||||
|
'PATCH',
|
||||||
|
'DELETE',
|
||||||
|
];
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| CORS Allow Any Domain
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Set to TRUE to enable Cross-Origin Resource Sharing (CORS) from any
|
||||||
|
| source domain
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['allow_any_cors_domain'] = false;
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| CORS Allowable Domains
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Used if $config['check_cors'] is set to TRUE and $config['allow_any_cors_domain']
|
||||||
|
| is set to FALSE. Set all the allowable domains within the array
|
||||||
|
|
|
||||||
|
| e.g. $config['allowed_origins'] = ['http://www.example.com', 'https://spa.example.com']
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['allowed_cors_origins'] = [];
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| CORS Forced Headers
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| If using CORS checks, always include the headers and values specified here
|
||||||
|
| in the OPTIONS client preflight.
|
||||||
|
| Example:
|
||||||
|
| $config['forced_cors_headers'] = [
|
||||||
|
| 'Access-Control-Allow-Credentials' => 'true'
|
||||||
|
| ];
|
||||||
|
|
|
||||||
|
| Added because of how Sencha Ext JS framework requires the header
|
||||||
|
| Access-Control-Allow-Credentials to be set to true to allow the use of
|
||||||
|
| credentials in the REST Proxy.
|
||||||
|
| See documentation here:
|
||||||
|
| http://docs.sencha.com/extjs/6.5.2/classic/Ext.data.proxy.Rest.html#cfg-withCredentials
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$config['forced_cors_headers'] = [];
|
|
@ -0,0 +1,54 @@
|
||||||
|
<?php
|
||||||
|
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||||
|
|
||||||
|
/*
|
||||||
|
| -------------------------------------------------------------------------
|
||||||
|
| URI ROUTING
|
||||||
|
| -------------------------------------------------------------------------
|
||||||
|
| This file lets you re-map URI requests to specific controller functions.
|
||||||
|
|
|
||||||
|
| Typically there is a one-to-one relationship between a URL string
|
||||||
|
| and its corresponding controller class/method. The segments in a
|
||||||
|
| URL normally follow this pattern:
|
||||||
|
|
|
||||||
|
| example.com/class/method/id/
|
||||||
|
|
|
||||||
|
| In some instances, however, you may want to remap this relationship
|
||||||
|
| so that a different class/function is called than the one
|
||||||
|
| corresponding to the URL.
|
||||||
|
|
|
||||||
|
| Please see the user guide for complete details:
|
||||||
|
|
|
||||||
|
| https://codeigniter.com/user_guide/general/routing.html
|
||||||
|
|
|
||||||
|
| -------------------------------------------------------------------------
|
||||||
|
| RESERVED ROUTES
|
||||||
|
| -------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| There are three reserved routes:
|
||||||
|
|
|
||||||
|
| $route['default_controller'] = 'welcome';
|
||||||
|
|
|
||||||
|
| This route indicates which controller class should be loaded if the
|
||||||
|
| URI contains no data. In the above example, the "welcome" class
|
||||||
|
| would be loaded.
|
||||||
|
|
|
||||||
|
| $route['404_override'] = 'errors/page_missing';
|
||||||
|
|
|
||||||
|
| This route will tell the Router which controller/method to use if those
|
||||||
|
| provided in the URL cannot be matched to a valid route.
|
||||||
|
|
|
||||||
|
| $route['translate_uri_dashes'] = FALSE;
|
||||||
|
|
|
||||||
|
| This is not exactly a route, but allows you to automatically route
|
||||||
|
| controller and method names that contain dashes. '-' isn't a valid
|
||||||
|
| class or method name character, so it requires translation.
|
||||||
|
| When you set this option to TRUE, it will replace ALL dashes in the
|
||||||
|
| controller and method URI segments.
|
||||||
|
|
|
||||||
|
| Examples: my-controller/index -> my_controller/index
|
||||||
|
| my-controller/my-method -> my_controller/my_method
|
||||||
|
*/
|
||||||
|
$route['default_controller'] = 'login';
|
||||||
|
$route['404_override'] = '';
|
||||||
|
$route['translate_uri_dashes'] = FALSE;
|
|
@ -0,0 +1,64 @@
|
||||||
|
<?php
|
||||||
|
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||||
|
|
||||||
|
/*
|
||||||
|
| -------------------------------------------------------------------
|
||||||
|
| SMILEYS
|
||||||
|
| -------------------------------------------------------------------
|
||||||
|
| This file contains an array of smileys for use with the emoticon helper.
|
||||||
|
| Individual images can be used to replace multiple smileys. For example:
|
||||||
|
| :-) and :) use the same image replacement.
|
||||||
|
|
|
||||||
|
| Please see user guide for more info:
|
||||||
|
| https://codeigniter.com/user_guide/helpers/smiley_helper.html
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
$smileys = array(
|
||||||
|
|
||||||
|
// smiley image name width height alt
|
||||||
|
|
||||||
|
':-)' => array('grin.gif', '19', '19', 'grin'),
|
||||||
|
':lol:' => array('lol.gif', '19', '19', 'LOL'),
|
||||||
|
':cheese:' => array('cheese.gif', '19', '19', 'cheese'),
|
||||||
|
':)' => array('smile.gif', '19', '19', 'smile'),
|
||||||
|
';-)' => array('wink.gif', '19', '19', 'wink'),
|
||||||
|
';)' => array('wink.gif', '19', '19', 'wink'),
|
||||||
|
':smirk:' => array('smirk.gif', '19', '19', 'smirk'),
|
||||||
|
':roll:' => array('rolleyes.gif', '19', '19', 'rolleyes'),
|
||||||
|
':-S' => array('confused.gif', '19', '19', 'confused'),
|
||||||
|
':wow:' => array('surprise.gif', '19', '19', 'surprised'),
|
||||||
|
':bug:' => array('bigsurprise.gif', '19', '19', 'big surprise'),
|
||||||
|
':-P' => array('tongue_laugh.gif', '19', '19', 'tongue laugh'),
|
||||||
|
'%-P' => array('tongue_rolleye.gif', '19', '19', 'tongue rolleye'),
|
||||||
|
';-P' => array('tongue_wink.gif', '19', '19', 'tongue wink'),
|
||||||
|
':P' => array('raspberry.gif', '19', '19', 'raspberry'),
|
||||||
|
':blank:' => array('blank.gif', '19', '19', 'blank stare'),
|
||||||
|
':long:' => array('longface.gif', '19', '19', 'long face'),
|
||||||
|
':ohh:' => array('ohh.gif', '19', '19', 'ohh'),
|
||||||
|
':grrr:' => array('grrr.gif', '19', '19', 'grrr'),
|
||||||
|
':gulp:' => array('gulp.gif', '19', '19', 'gulp'),
|
||||||
|
'8-/' => array('ohoh.gif', '19', '19', 'oh oh'),
|
||||||
|
':down:' => array('downer.gif', '19', '19', 'downer'),
|
||||||
|
':red:' => array('embarrassed.gif', '19', '19', 'red face'),
|
||||||
|
':sick:' => array('sick.gif', '19', '19', 'sick'),
|
||||||
|
':shut:' => array('shuteye.gif', '19', '19', 'shut eye'),
|
||||||
|
':-/' => array('hmm.gif', '19', '19', 'hmmm'),
|
||||||
|
'>:(' => array('mad.gif', '19', '19', 'mad'),
|
||||||
|
':mad:' => array('mad.gif', '19', '19', 'mad'),
|
||||||
|
'>:-(' => array('angry.gif', '19', '19', 'angry'),
|
||||||
|
':angry:' => array('angry.gif', '19', '19', 'angry'),
|
||||||
|
':zip:' => array('zip.gif', '19', '19', 'zipper'),
|
||||||
|
':kiss:' => array('kiss.gif', '19', '19', 'kiss'),
|
||||||
|
':ahhh:' => array('shock.gif', '19', '19', 'shock'),
|
||||||
|
':coolsmile:' => array('shade_smile.gif', '19', '19', 'cool smile'),
|
||||||
|
':coolsmirk:' => array('shade_smirk.gif', '19', '19', 'cool smirk'),
|
||||||
|
':coolgrin:' => array('shade_grin.gif', '19', '19', 'cool grin'),
|
||||||
|
':coolhmm:' => array('shade_hmm.gif', '19', '19', 'cool hmm'),
|
||||||
|
':coolmad:' => array('shade_mad.gif', '19', '19', 'cool mad'),
|
||||||
|
':coolcheese:' => array('shade_cheese.gif', '19', '19', 'cool cheese'),
|
||||||
|
':vampire:' => array('vampire.gif', '19', '19', 'vampire'),
|
||||||
|
':snake:' => array('snake.gif', '19', '19', 'snake'),
|
||||||
|
':exclaim:' => array('exclaim.gif', '19', '19', 'exclaim'),
|
||||||
|
':question:' => array('question.gif', '19', '19', 'question')
|
||||||
|
|
||||||
|
);
|
|
@ -0,0 +1,214 @@
|
||||||
|
<?php
|
||||||
|
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||||
|
|
||||||
|
/*
|
||||||
|
| -------------------------------------------------------------------
|
||||||
|
| USER AGENT TYPES
|
||||||
|
| -------------------------------------------------------------------
|
||||||
|
| This file contains four arrays of user agent data. It is used by the
|
||||||
|
| User Agent Class to help identify browser, platform, robot, and
|
||||||
|
| mobile device data. The array keys are used to identify the device
|
||||||
|
| and the array values are used to set the actual name of the item.
|
||||||
|
*/
|
||||||
|
$platforms = array(
|
||||||
|
'windows nt 10.0' => 'Windows 10',
|
||||||
|
'windows nt 6.3' => 'Windows 8.1',
|
||||||
|
'windows nt 6.2' => 'Windows 8',
|
||||||
|
'windows nt 6.1' => 'Windows 7',
|
||||||
|
'windows nt 6.0' => 'Windows Vista',
|
||||||
|
'windows nt 5.2' => 'Windows 2003',
|
||||||
|
'windows nt 5.1' => 'Windows XP',
|
||||||
|
'windows nt 5.0' => 'Windows 2000',
|
||||||
|
'windows nt 4.0' => 'Windows NT 4.0',
|
||||||
|
'winnt4.0' => 'Windows NT 4.0',
|
||||||
|
'winnt 4.0' => 'Windows NT',
|
||||||
|
'winnt' => 'Windows NT',
|
||||||
|
'windows 98' => 'Windows 98',
|
||||||
|
'win98' => 'Windows 98',
|
||||||
|
'windows 95' => 'Windows 95',
|
||||||
|
'win95' => 'Windows 95',
|
||||||
|
'windows phone' => 'Windows Phone',
|
||||||
|
'windows' => 'Unknown Windows OS',
|
||||||
|
'android' => 'Android',
|
||||||
|
'blackberry' => 'BlackBerry',
|
||||||
|
'iphone' => 'iOS',
|
||||||
|
'ipad' => 'iOS',
|
||||||
|
'ipod' => 'iOS',
|
||||||
|
'os x' => 'Mac OS X',
|
||||||
|
'ppc mac' => 'Power PC Mac',
|
||||||
|
'freebsd' => 'FreeBSD',
|
||||||
|
'ppc' => 'Macintosh',
|
||||||
|
'linux' => 'Linux',
|
||||||
|
'debian' => 'Debian',
|
||||||
|
'sunos' => 'Sun Solaris',
|
||||||
|
'beos' => 'BeOS',
|
||||||
|
'apachebench' => 'ApacheBench',
|
||||||
|
'aix' => 'AIX',
|
||||||
|
'irix' => 'Irix',
|
||||||
|
'osf' => 'DEC OSF',
|
||||||
|
'hp-ux' => 'HP-UX',
|
||||||
|
'netbsd' => 'NetBSD',
|
||||||
|
'bsdi' => 'BSDi',
|
||||||
|
'openbsd' => 'OpenBSD',
|
||||||
|
'gnu' => 'GNU/Linux',
|
||||||
|
'unix' => 'Unknown Unix OS',
|
||||||
|
'symbian' => 'Symbian OS'
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
// The order of this array should NOT be changed. Many browsers return
|
||||||
|
// multiple browser types so we want to identify the sub-type first.
|
||||||
|
$browsers = array(
|
||||||
|
'OPR' => 'Opera',
|
||||||
|
'Flock' => 'Flock',
|
||||||
|
'Edge' => 'Edge',
|
||||||
|
'Chrome' => 'Chrome',
|
||||||
|
// Opera 10+ always reports Opera/9.80 and appends Version/<real version> to the user agent string
|
||||||
|
'Opera.*?Version' => 'Opera',
|
||||||
|
'Opera' => 'Opera',
|
||||||
|
'MSIE' => 'Internet Explorer',
|
||||||
|
'Internet Explorer' => 'Internet Explorer',
|
||||||
|
'Trident.* rv' => 'Internet Explorer',
|
||||||
|
'Shiira' => 'Shiira',
|
||||||
|
'Firefox' => 'Firefox',
|
||||||
|
'Chimera' => 'Chimera',
|
||||||
|
'Phoenix' => 'Phoenix',
|
||||||
|
'Firebird' => 'Firebird',
|
||||||
|
'Camino' => 'Camino',
|
||||||
|
'Netscape' => 'Netscape',
|
||||||
|
'OmniWeb' => 'OmniWeb',
|
||||||
|
'Safari' => 'Safari',
|
||||||
|
'Mozilla' => 'Mozilla',
|
||||||
|
'Konqueror' => 'Konqueror',
|
||||||
|
'icab' => 'iCab',
|
||||||
|
'Lynx' => 'Lynx',
|
||||||
|
'Links' => 'Links',
|
||||||
|
'hotjava' => 'HotJava',
|
||||||
|
'amaya' => 'Amaya',
|
||||||
|
'IBrowse' => 'IBrowse',
|
||||||
|
'Maxthon' => 'Maxthon',
|
||||||
|
'Ubuntu' => 'Ubuntu Web Browser'
|
||||||
|
);
|
||||||
|
|
||||||
|
$mobiles = array(
|
||||||
|
// legacy array, old values commented out
|
||||||
|
'mobileexplorer' => 'Mobile Explorer',
|
||||||
|
// 'openwave' => 'Open Wave',
|
||||||
|
// 'opera mini' => 'Opera Mini',
|
||||||
|
// 'operamini' => 'Opera Mini',
|
||||||
|
// 'elaine' => 'Palm',
|
||||||
|
'palmsource' => 'Palm',
|
||||||
|
// 'digital paths' => 'Palm',
|
||||||
|
// 'avantgo' => 'Avantgo',
|
||||||
|
// 'xiino' => 'Xiino',
|
||||||
|
'palmscape' => 'Palmscape',
|
||||||
|
// 'nokia' => 'Nokia',
|
||||||
|
// 'ericsson' => 'Ericsson',
|
||||||
|
// 'blackberry' => 'BlackBerry',
|
||||||
|
// 'motorola' => 'Motorola'
|
||||||
|
|
||||||
|
// Phones and Manufacturers
|
||||||
|
'motorola' => 'Motorola',
|
||||||
|
'nokia' => 'Nokia',
|
||||||
|
'palm' => 'Palm',
|
||||||
|
'iphone' => 'Apple iPhone',
|
||||||
|
'ipad' => 'iPad',
|
||||||
|
'ipod' => 'Apple iPod Touch',
|
||||||
|
'sony' => 'Sony Ericsson',
|
||||||
|
'ericsson' => 'Sony Ericsson',
|
||||||
|
'blackberry' => 'BlackBerry',
|
||||||
|
'cocoon' => 'O2 Cocoon',
|
||||||
|
'blazer' => 'Treo',
|
||||||
|
'lg' => 'LG',
|
||||||
|
'amoi' => 'Amoi',
|
||||||
|
'xda' => 'XDA',
|
||||||
|
'mda' => 'MDA',
|
||||||
|
'vario' => 'Vario',
|
||||||
|
'htc' => 'HTC',
|
||||||
|
'samsung' => 'Samsung',
|
||||||
|
'sharp' => 'Sharp',
|
||||||
|
'sie-' => 'Siemens',
|
||||||
|
'alcatel' => 'Alcatel',
|
||||||
|
'benq' => 'BenQ',
|
||||||
|
'ipaq' => 'HP iPaq',
|
||||||
|
'mot-' => 'Motorola',
|
||||||
|
'playstation portable' => 'PlayStation Portable',
|
||||||
|
'playstation 3' => 'PlayStation 3',
|
||||||
|
'playstation vita' => 'PlayStation Vita',
|
||||||
|
'hiptop' => 'Danger Hiptop',
|
||||||
|
'nec-' => 'NEC',
|
||||||
|
'panasonic' => 'Panasonic',
|
||||||
|
'philips' => 'Philips',
|
||||||
|
'sagem' => 'Sagem',
|
||||||
|
'sanyo' => 'Sanyo',
|
||||||
|
'spv' => 'SPV',
|
||||||
|
'zte' => 'ZTE',
|
||||||
|
'sendo' => 'Sendo',
|
||||||
|
'nintendo dsi' => 'Nintendo DSi',
|
||||||
|
'nintendo ds' => 'Nintendo DS',
|
||||||
|
'nintendo 3ds' => 'Nintendo 3DS',
|
||||||
|
'wii' => 'Nintendo Wii',
|
||||||
|
'open web' => 'Open Web',
|
||||||
|
'openweb' => 'OpenWeb',
|
||||||
|
|
||||||
|
// Operating Systems
|
||||||
|
'android' => 'Android',
|
||||||
|
'symbian' => 'Symbian',
|
||||||
|
'SymbianOS' => 'SymbianOS',
|
||||||
|
'elaine' => 'Palm',
|
||||||
|
'series60' => 'Symbian S60',
|
||||||
|
'windows ce' => 'Windows CE',
|
||||||
|
|
||||||
|
// Browsers
|
||||||
|
'obigo' => 'Obigo',
|
||||||
|
'netfront' => 'Netfront Browser',
|
||||||
|
'openwave' => 'Openwave Browser',
|
||||||
|
'mobilexplorer' => 'Mobile Explorer',
|
||||||
|
'operamini' => 'Opera Mini',
|
||||||
|
'opera mini' => 'Opera Mini',
|
||||||
|
'opera mobi' => 'Opera Mobile',
|
||||||
|
'fennec' => 'Firefox Mobile',
|
||||||
|
|
||||||
|
// Other
|
||||||
|
'digital paths' => 'Digital Paths',
|
||||||
|
'avantgo' => 'AvantGo',
|
||||||
|
'xiino' => 'Xiino',
|
||||||
|
'novarra' => 'Novarra Transcoder',
|
||||||
|
'vodafone' => 'Vodafone',
|
||||||
|
'docomo' => 'NTT DoCoMo',
|
||||||
|
'o2' => 'O2',
|
||||||
|
|
||||||
|
// Fallback
|
||||||
|
'mobile' => 'Generic Mobile',
|
||||||
|
'wireless' => 'Generic Mobile',
|
||||||
|
'j2me' => 'Generic Mobile',
|
||||||
|
'midp' => 'Generic Mobile',
|
||||||
|
'cldc' => 'Generic Mobile',
|
||||||
|
'up.link' => 'Generic Mobile',
|
||||||
|
'up.browser' => 'Generic Mobile',
|
||||||
|
'smartphone' => 'Generic Mobile',
|
||||||
|
'cellphone' => 'Generic Mobile'
|
||||||
|
);
|
||||||
|
|
||||||
|
// There are hundreds of bots but these are the most common.
|
||||||
|
$robots = array(
|
||||||
|
'googlebot' => 'Googlebot',
|
||||||
|
'msnbot' => 'MSNBot',
|
||||||
|
'baiduspider' => 'Baiduspider',
|
||||||
|
'bingbot' => 'Bing',
|
||||||
|
'slurp' => 'Inktomi Slurp',
|
||||||
|
'yahoo' => 'Yahoo',
|
||||||
|
'ask jeeves' => 'Ask Jeeves',
|
||||||
|
'fastcrawler' => 'FastCrawler',
|
||||||
|
'infoseek' => 'InfoSeek Robot 1.0',
|
||||||
|
'lycos' => 'Lycos',
|
||||||
|
'yandex' => 'YandexBot',
|
||||||
|
'mediapartners-google' => 'MediaPartners Google',
|
||||||
|
'CRAZYWEBCRAWLER' => 'Crazy Webcrawler',
|
||||||
|
'adsbot-google' => 'AdsBot Google',
|
||||||
|
'feedfetcher-google' => 'Feedfetcher Google',
|
||||||
|
'curious george' => 'Curious George',
|
||||||
|
'ia_archiver' => 'Alexa Crawler',
|
||||||
|
'MJ12bot' => 'Majestic-12',
|
||||||
|
'Uptimebot' => 'Uptimebot'
|
||||||
|
);
|
|
@ -0,0 +1,108 @@
|
||||||
|
<?php
|
||||||
|
defined('BASEPATH') or exit('No direct script access allowed');
|
||||||
|
|
||||||
|
class AKG extends CI_Controller
|
||||||
|
{
|
||||||
|
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
parent::__construct();
|
||||||
|
$this->load->model("ModelAKG");
|
||||||
|
}
|
||||||
|
|
||||||
|
function index()
|
||||||
|
{
|
||||||
|
$kalori = $this->ModelAKG->get_data();
|
||||||
|
$data = array(
|
||||||
|
'body' => 'AKG/list',
|
||||||
|
'kalori' => $kalori
|
||||||
|
);
|
||||||
|
$this->load->view("index", $data);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function input()
|
||||||
|
{
|
||||||
|
$kalori = $this->ModelAKG->get_data();
|
||||||
|
$data = array(
|
||||||
|
'body' => 'AKG/input',
|
||||||
|
'form' => 'AKG/form',
|
||||||
|
'kalori' => $kalori,
|
||||||
|
);
|
||||||
|
$this->load->view('index', $data);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function insert()
|
||||||
|
{
|
||||||
|
$data = array(
|
||||||
|
'awal' => $this->input->post('awal'),
|
||||||
|
'akhir' => $this->input->post('akhir'),
|
||||||
|
'jenis_kelamin' => $this->input->post('jenis_kelamin'),
|
||||||
|
'energi' => $this->input->post('energi'),
|
||||||
|
'karbohidrat' => $this->input->post('karbohidrat'),
|
||||||
|
'protein' => $this->input->post('protein'),
|
||||||
|
'lemak' => $this->input->post('lemak'),
|
||||||
|
'besi' => $this->input->post('besi'),
|
||||||
|
'vitamina' => $this->input->post('vitamina'),
|
||||||
|
'vitaminc' => $this->input->post('vitaminc'),
|
||||||
|
);
|
||||||
|
if ($this->db->insert("kalori", $data)) {
|
||||||
|
// $this->session->set_flashdata("notif", $this->Notif->berhasil("Berhasil Input Data"));
|
||||||
|
redirect(base_url() . "AKG");
|
||||||
|
} else {
|
||||||
|
$this->session->set_flashdata("notif", $this->Notif->gagal("gagal Input Data"));
|
||||||
|
redirect(base_url() . "AKG");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function edit()
|
||||||
|
{
|
||||||
|
$id = $this->uri->segment(3);
|
||||||
|
$kalori = $this->ModelAKG->get_data_edit($id);
|
||||||
|
$data = array(
|
||||||
|
'form' => 'AKG/form_edit',
|
||||||
|
'body' => 'AKG/edit',
|
||||||
|
'kalori' => $kalori,
|
||||||
|
);
|
||||||
|
$this->load->view('index', $data);
|
||||||
|
}
|
||||||
|
|
||||||
|
function update()
|
||||||
|
{
|
||||||
|
$id = $this->uri->segment(3);
|
||||||
|
$data = array(
|
||||||
|
'awal' => $this->input->post('awal'),
|
||||||
|
'akhir' => $this->input->post('akhir'),
|
||||||
|
'jenis_kelamin' => $this->input->post('jenis_kelamin'),
|
||||||
|
'energi' => $this->input->post('energi'),
|
||||||
|
'karbohidrat' => $this->input->post('karbohidrat'),
|
||||||
|
'protein' => $this->input->post('protein'),
|
||||||
|
'lemak' => $this->input->post('lemak'),
|
||||||
|
'besi' => $this->input->post('besi'),
|
||||||
|
'vitamina' => $this->input->post('vitamina'),
|
||||||
|
'vitaminc' => $this->input->post('vitaminc'),
|
||||||
|
);
|
||||||
|
$this->db->where("id_kalori", $id);
|
||||||
|
if ($this->db->update("kalori", $data)) {
|
||||||
|
// code...
|
||||||
|
// $this->session->set_flashdata("notif", $this->Notif->berhasil("Berhasil Input Data"));
|
||||||
|
redirect(base_url() . "AKG");
|
||||||
|
} else {
|
||||||
|
$this->session->set_flashdata("notif", $this->Notif->gagal("gagal Input Data"));
|
||||||
|
redirect(base_url() . "AKG");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function delete()
|
||||||
|
{
|
||||||
|
$id = $this->input->post("id_kalori");
|
||||||
|
$this->db->where_in("id_kalori", $id);
|
||||||
|
if ($this->db->delete("kalori")) {
|
||||||
|
// $this->session->set_flashdata("notif", $this->Notif->berhasil("Berhasil Input Data"));
|
||||||
|
redirect(base_url() . "AKG");
|
||||||
|
// code...
|
||||||
|
} else {
|
||||||
|
$this->session->set_flashdata("notif", $this->Notif->gagal("gagal Input Data"));
|
||||||
|
redirect(base_url() . "AKG");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,42 @@
|
||||||
|
<?php
|
||||||
|
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||||
|
|
||||||
|
class Analisis extends CI_Controller{
|
||||||
|
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
parent::__construct();
|
||||||
|
$this->load->model("ModelKonsumsi");
|
||||||
|
}
|
||||||
|
|
||||||
|
function index()
|
||||||
|
{
|
||||||
|
if (isset($_GET["start"]) && isset($_GET["end"])) { // jika ada parameter start dan end
|
||||||
|
$from = $this->input->get("start");
|
||||||
|
$till = $this->input->get("end");
|
||||||
|
$analisis = $this->ModelKonsumsi->get_analisis($from,$till);
|
||||||
|
} else { // jika tidak ada parameter start dan end maka ditampilkan semuanya
|
||||||
|
// butuh 3 data
|
||||||
|
$from = date("Y-m-d");
|
||||||
|
$till = date("Y-m-d");
|
||||||
|
$analisis = $this->ModelKonsumsi->get_analisis($from,$till);
|
||||||
|
}
|
||||||
|
$data = array(
|
||||||
|
'body' => 'Analisis/list',
|
||||||
|
'analisis' => $analisis
|
||||||
|
);
|
||||||
|
$this->load->view("index",$data);
|
||||||
|
}
|
||||||
|
public function cetak(){
|
||||||
|
$from = $this->input->post("tgl_mulai");
|
||||||
|
$till = $this->input->post("tgl_sampai");
|
||||||
|
$data = array(
|
||||||
|
'mulai' => date("d-m-Y",strtotime($from)),
|
||||||
|
'sampai' => date("d-m-Y",strtotime($till)),
|
||||||
|
'data' => $this->ModelAnalisis->get_data_darah2($from,$till)
|
||||||
|
|
||||||
|
);
|
||||||
|
$this->load->view("Analisis/cetak_analisis",$data);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,216 @@
|
||||||
|
<?php
|
||||||
|
defined('BASEPATH') or exit('No direct script access allowed');
|
||||||
|
|
||||||
|
class Artikel extends CI_Controller
|
||||||
|
{
|
||||||
|
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
parent::__construct();
|
||||||
|
$this->load->model("ModelArtikel");
|
||||||
|
}
|
||||||
|
|
||||||
|
function index()
|
||||||
|
{
|
||||||
|
$artikel = $this->ModelArtikel->get_data();
|
||||||
|
$data = array(
|
||||||
|
'body' => 'Artikel/list',
|
||||||
|
'artikel' => $artikel
|
||||||
|
);
|
||||||
|
$this->load->view('index', $data);
|
||||||
|
}
|
||||||
|
|
||||||
|
function view()
|
||||||
|
{
|
||||||
|
$id = $this->uri->segment(3);
|
||||||
|
$artikel = $this->ModelArtikel->get_data_edit($id);
|
||||||
|
$data = array(
|
||||||
|
'artikel' => $artikel,
|
||||||
|
);
|
||||||
|
$this->load->view('Artikel/view', $data);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function input()
|
||||||
|
{
|
||||||
|
$artikel = $this->ModelArtikel->get_data();
|
||||||
|
$data = array(
|
||||||
|
'body' => 'Artikel/input',
|
||||||
|
'form' => 'Artikel/form',
|
||||||
|
'artikel' => $artikel,
|
||||||
|
);
|
||||||
|
$this->load->view('index', $data);
|
||||||
|
}
|
||||||
|
public function insert()
|
||||||
|
{
|
||||||
|
$patch = "desain/artikel/";
|
||||||
|
$config['upload_path'] = "" . $patch;
|
||||||
|
$config['allowed_types'] = 'jpeg|jpg|png';
|
||||||
|
$config['max_size'] = 11240;
|
||||||
|
$this->upload->initialize($config);
|
||||||
|
$this->load->library('upload', $config);
|
||||||
|
if ($this->upload->do_upload('gambar_artikel')) {
|
||||||
|
$data = array(
|
||||||
|
'judul' => $this->input->post('judul'),
|
||||||
|
'tanggal' => date("Y-m-d"),
|
||||||
|
'penulis' => $this->input->post('penulis'),
|
||||||
|
'konten' => $this->input->post('konten'),
|
||||||
|
'gambar' => $patch . $this->upload->data()["file_name"],
|
||||||
|
'gambar_artikel' => "https://isipiringku.esolusindo.com/" . $patch . $this->upload->data()["file_name"],
|
||||||
|
);
|
||||||
|
if($this->db->insert("artikel", $data)){
|
||||||
|
$id = $this->db->insert_id();
|
||||||
|
$data = array(
|
||||||
|
'view' => "https://isipiringku.esolusindo.com/Artikel/view/" . $id
|
||||||
|
);
|
||||||
|
$this->db->where("id_artikel", $id);
|
||||||
|
$this->db->update("artikel", $data);
|
||||||
|
|
||||||
|
redirect(base_url() . "Artikel");
|
||||||
|
}
|
||||||
|
// $this->session->set_flashdata("notif", $this->Notif->berhasil("Berhasil Input Data"));
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$data = array(
|
||||||
|
'judul' => $this->input->post('judul'),
|
||||||
|
'tanggal' => date("Y-m-d"),
|
||||||
|
'penulis' => $this->input->post('penulis'),
|
||||||
|
'konten' => $this->input->post('konten'),
|
||||||
|
'gambar' => $patch . $this->upload->data()["file_name"],
|
||||||
|
'gambar_artikel' => "https://isipiringku.esolusindo.com/" . $patch . $this->upload->data()["file_name"],
|
||||||
|
'view' => "https://isipiringku.esolusindo.com/Artikel/view/" . $this->db->insert_id()
|
||||||
|
);
|
||||||
|
if ($this->db->insert("artikel", $data)) {
|
||||||
|
if($this->db->insert("artikel", $data)){
|
||||||
|
$id = $this->db->insert_id();
|
||||||
|
$data = array(
|
||||||
|
'view' => "https://isipiringku.esolusindo.com/Artikel/view/" . $id
|
||||||
|
);
|
||||||
|
$this->db->where("id_artikel", $id);
|
||||||
|
$this->db->update("artikel", $data);
|
||||||
|
}
|
||||||
|
// $this->session->set_flashdata("notif", $this->Notif->berhasil("Berhasil Input Data"));
|
||||||
|
redirect(base_url() . "Artikel");
|
||||||
|
} else {
|
||||||
|
$this->session->set_flashdata("notif", $this->Notif->gagal("gagal Input Data"));
|
||||||
|
redirect(base_url() . "Artikel");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function edit()
|
||||||
|
{
|
||||||
|
$id = $this->uri->segment(3);
|
||||||
|
$artikel = $this->ModelArtikel->get_data_edit($id);
|
||||||
|
$data = array(
|
||||||
|
'body' => 'Artikel/edit',
|
||||||
|
'form' => 'Artikel/form_edit',
|
||||||
|
'artikel' => $artikel,
|
||||||
|
);
|
||||||
|
$this->load->view('index', $data);
|
||||||
|
}
|
||||||
|
public function update()
|
||||||
|
{
|
||||||
|
$id = $this->uri->segment(3);
|
||||||
|
|
||||||
|
$patch = "desain/artikel/";
|
||||||
|
$config['upload_path'] = "./" . $patch;
|
||||||
|
$config['allowed_types'] = 'jpeg|jpg|png';
|
||||||
|
$config['max_size'] = 11240;
|
||||||
|
|
||||||
|
$this->upload->initialize($config);
|
||||||
|
$this->load->library('upload', $config);
|
||||||
|
if ($_FILES["gambar_artikel"]["name"] == null) {
|
||||||
|
$data = array(
|
||||||
|
'judul' => $this->input->post('judul'),
|
||||||
|
'tanggal' => date("Y-m-d"),
|
||||||
|
'penulis' => $this->input->post('penulis'),
|
||||||
|
'konten' => $this->input->post('konten'),
|
||||||
|
//'gambar_artikel' => $patch . $this->upload->data()["file_name"],
|
||||||
|
);
|
||||||
|
$this->db->where("id_artikel", $id);
|
||||||
|
if ($this->db->update("artikel", $data)) {
|
||||||
|
// $this->session->set_flashdata("notif", $this->Notif->berhasil("Berhasil Input Data"));
|
||||||
|
redirect(base_url() . "Artikel");
|
||||||
|
} else {
|
||||||
|
$this->session->set_flashdata("notif", $this->Notif->gagal("gagal Input Data"));
|
||||||
|
redirect(base_url() . "Artikel");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if ($this->upload->do_upload('gambar_artikel')) {
|
||||||
|
$data = array(
|
||||||
|
'judul' => $this->input->post('judul'),
|
||||||
|
'tanggal' => date("Y-m-d"),
|
||||||
|
'penulis' => $this->input->post('penulis'),
|
||||||
|
'konten' => $this->input->post('konten'),
|
||||||
|
'gambar' => $patch . $this->upload->data()["file_name"],
|
||||||
|
'gambar_artikel' => "https://isipiringku.esolusindo.com/" . $patch . $this->upload->data()["file_name"],
|
||||||
|
);
|
||||||
|
$this->db->where("id_artikel", $id);
|
||||||
|
$this->db->update("artikel", $data);
|
||||||
|
$artikel = $this->ModelArtikel->get_data_edit($id);
|
||||||
|
unlink('./'.$artikel['gambar']);
|
||||||
|
// $this->session->set_flashdata("notif", $this->Notif->berhasil("Berhasil Input Data"));
|
||||||
|
redirect(base_url() . "Artikel");
|
||||||
|
} else {
|
||||||
|
$data = array(
|
||||||
|
'judul' => $this->input->post('judul'),
|
||||||
|
'tanggal' => date("Y-m-d"),
|
||||||
|
'penulis' => $this->input->post('penulis'),
|
||||||
|
'konten' => $this->input->post('konten'),
|
||||||
|
'gambar_artikel' => "https://isipiringku.esolusindo.com/" . $patch . $this->upload->data()["file_name"],
|
||||||
|
);
|
||||||
|
$this->db->where("id_artikel", $id);
|
||||||
|
if ($this->db->update("artikel", $data)) {
|
||||||
|
// $this->session->set_flashdata("notif", $this->Notif->berhasil("Berhasil Input Data"));
|
||||||
|
redirect(base_url() . "Artikel");
|
||||||
|
} else {
|
||||||
|
$this->session->set_flashdata("notif", $this->Notif->gagal("gagal Input Data"));
|
||||||
|
redirect(base_url() . "Artikel");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function delete()
|
||||||
|
{
|
||||||
|
$id = $this->input->post("id_artikel");
|
||||||
|
$this->db->where_in("id_artikel", $id);
|
||||||
|
if ($this->db->delete("artikel")) {
|
||||||
|
//$this->session->set_flashdata("notif", $this->Notif->berhasil("Berhasil Input Data"));
|
||||||
|
redirect(base_url() . "Artikel");
|
||||||
|
// code...
|
||||||
|
} else {
|
||||||
|
$this->session->set_flashdata("notif", $this->Notif->gagal("gagal Input Data"));
|
||||||
|
redirect(base_url() . "Artikel");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// function upload_file($file)
|
||||||
|
// {
|
||||||
|
// $msg = "";
|
||||||
|
// $nama = "";
|
||||||
|
// $config['upload_path'] = './desain/artikel';
|
||||||
|
// $config['allowed_types'] = '*';
|
||||||
|
// $config['max_size'] = 11240;
|
||||||
|
// echo $_FILES[$file]["name"];
|
||||||
|
|
||||||
|
// if ($_FILES[$file]["name"]) {
|
||||||
|
// $this->load->library('upload', $config);
|
||||||
|
// if (!$this->upload->do_upload($file)) {
|
||||||
|
// $msg = $this->upload->display_errors();
|
||||||
|
// echo $msg;
|
||||||
|
// die();
|
||||||
|
// } else {
|
||||||
|
// $upload = $this->upload->data();
|
||||||
|
// $nama = $upload['file_name'];
|
||||||
|
// $msg = "Berhasil Upload " . $nama;
|
||||||
|
// }
|
||||||
|
// } else {
|
||||||
|
// $msg = "File Kosong";
|
||||||
|
// }
|
||||||
|
// return array(
|
||||||
|
// 'pesan' => $msg,
|
||||||
|
// 'nama' => $nama,
|
||||||
|
// 'link' => "desain/artikel/" . $nama
|
||||||
|
// );
|
||||||
|
// }
|
||||||
|
}
|
|
@ -0,0 +1,89 @@
|
||||||
|
<?php
|
||||||
|
defined('BASEPATH') or exit('No direct script access allowed');
|
||||||
|
|
||||||
|
class DataDesa extends CI_Controller
|
||||||
|
{
|
||||||
|
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
parent::__construct();
|
||||||
|
// $this->load->library('notif');
|
||||||
|
$this->load->model("ModelDataDesa");
|
||||||
|
}
|
||||||
|
|
||||||
|
function index()
|
||||||
|
{
|
||||||
|
$datadesa = $this->ModelDataDesa->get_data();
|
||||||
|
$data = array(
|
||||||
|
'body' => 'DataDesa/list',
|
||||||
|
'datadesa' => $datadesa
|
||||||
|
);
|
||||||
|
$this->load->view('index', $data);
|
||||||
|
}
|
||||||
|
public function input()
|
||||||
|
{
|
||||||
|
$datadesa = $this->ModelDataDesa->get_data();
|
||||||
|
$data = array(
|
||||||
|
'body' => 'DataDesa/input',
|
||||||
|
'form' => 'DataDesa/form',
|
||||||
|
'datadesa' => $datadesa,
|
||||||
|
);
|
||||||
|
$this->load->view('index', $data);
|
||||||
|
}
|
||||||
|
public function insert()
|
||||||
|
{
|
||||||
|
$data = array(
|
||||||
|
'nama_desa' => $this->input->post('nama_desa'),
|
||||||
|
);
|
||||||
|
if ($this->db->insert("data_desa", $data)) {
|
||||||
|
$this->session->set_flashdata("notif", $this->Notif->berhasil("Berhasil Input Data"));
|
||||||
|
redirect(base_url() . "DataDesa");
|
||||||
|
} else {
|
||||||
|
$this->session->set_flashdata("notif", $this->Notif->gagal("gagal Input Data"));
|
||||||
|
redirect(base_url() . "DataDesa");
|
||||||
|
}
|
||||||
|
// echo json_encode($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
function edit()
|
||||||
|
{
|
||||||
|
$id = $this->uri->segment(3);
|
||||||
|
$datadesa = $this->ModelDataDesa->get_data_edit($id);
|
||||||
|
$data = array(
|
||||||
|
'body' => 'DataDesa/edit',
|
||||||
|
'form' => 'DataDesa/form',
|
||||||
|
'datadesa' => $datadesa,
|
||||||
|
);
|
||||||
|
$this->load->view('index', $data);
|
||||||
|
}
|
||||||
|
function update()
|
||||||
|
{
|
||||||
|
$id = $this->uri->segment(3);
|
||||||
|
$data = array(
|
||||||
|
'nama_desa' => $this->input->post('nama_desa'),
|
||||||
|
);
|
||||||
|
$this->db->where("id_datadesa", $id);
|
||||||
|
if ($this->db->update("data_desa", $data)) {
|
||||||
|
// code...
|
||||||
|
$this->session->set_flashdata("notif", $this->Notif->berhasil("Berhasil Input Data"));
|
||||||
|
redirect(base_url() . "DataDesa");
|
||||||
|
} else {
|
||||||
|
$this->session->set_flashdata("notif", $this->Notif->gagal("gagal Input Data"));
|
||||||
|
redirect(base_url() . "DataDesa");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function delete()
|
||||||
|
{
|
||||||
|
$id = $this->input->post("id_datadesa");
|
||||||
|
$this->db->where_in("id_datadesa", $id);
|
||||||
|
if ($this->db->delete("data_desa")) {
|
||||||
|
$this->session->set_flashdata("notif", $this->Notif->berhasil("Berhasil Input Data"));
|
||||||
|
redirect(base_url() . "DataDesa");
|
||||||
|
// code...
|
||||||
|
} else {
|
||||||
|
$this->session->set_flashdata("notif", $this->Notif->gagal("gagal Input Data"));
|
||||||
|
redirect(base_url() . "DataDesa");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,91 @@
|
||||||
|
<?php
|
||||||
|
defined('BASEPATH') or exit('No direct script access allowed');
|
||||||
|
|
||||||
|
class DataKriteria extends CI_Controller
|
||||||
|
{
|
||||||
|
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
parent::__construct();
|
||||||
|
$this->load->model("ModelDataKriteria");
|
||||||
|
}
|
||||||
|
|
||||||
|
function index()
|
||||||
|
{
|
||||||
|
$datakriteria = $this->ModelDataKriteria->get_data();
|
||||||
|
$data = array(
|
||||||
|
'body' => 'DataKriteria/list',
|
||||||
|
'datakriteria' => $datakriteria
|
||||||
|
);
|
||||||
|
$this->load->view('index', $data);
|
||||||
|
}
|
||||||
|
public function input()
|
||||||
|
{
|
||||||
|
$datakriteria = $this->ModelDataKriteria->get_data();
|
||||||
|
$data = array(
|
||||||
|
'body' => 'DataKriteria/input',
|
||||||
|
'form' => 'DataKriteria/form',
|
||||||
|
'datakriteria' => $datakriteria,
|
||||||
|
);
|
||||||
|
$this->load->view('index', $data);
|
||||||
|
}
|
||||||
|
public function insert()
|
||||||
|
{
|
||||||
|
$data = array(
|
||||||
|
'kode_kriteria' => $this->input->post('kode_kriteria'),
|
||||||
|
'nama_kriteria' => $this->input->post('nama_kriteria'),
|
||||||
|
'nilai_kriteria' => $this->input->post('nilai_kriteria'),
|
||||||
|
);
|
||||||
|
if ($this->db->insert("data_kriteria", $data)) {
|
||||||
|
// $this->session->set_flashdata("notif", $this->Notif->berhasil("Berhasil Input Data"));
|
||||||
|
redirect(base_url() . "DataKriteria/input");
|
||||||
|
} else {
|
||||||
|
$this->session->set_flashdata("notif", $this->Notif->gagal("gagal Input Data"));
|
||||||
|
redirect(base_url() . "DataKriteria/input");
|
||||||
|
}
|
||||||
|
// echo json_encode($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
function edit(){
|
||||||
|
$id = $this->uri->segment(3);
|
||||||
|
$datakriteria = $this->ModelDataKriteria->get_data_edit($id);
|
||||||
|
$data = array(
|
||||||
|
'body' => 'DataKriteria/edit',
|
||||||
|
'form' => 'DataKriteria/form',
|
||||||
|
'datakriteria' => $datakriteria,
|
||||||
|
);
|
||||||
|
$this->load->view('index', $data);
|
||||||
|
}
|
||||||
|
function update()
|
||||||
|
{
|
||||||
|
$id = $this->uri->segment(3);
|
||||||
|
$data = array(
|
||||||
|
'kode_kriteria' => $this->input->post('kode_kriteria'),
|
||||||
|
'nama_kriteria' => $this->input->post('nama_kriteria'),
|
||||||
|
'nilai_kriteria' => $this->input->post('nilai_kriteria'),
|
||||||
|
);
|
||||||
|
$this->db->where("id_kriteria", $id);
|
||||||
|
if ($this->db->update("data_kriteria", $data)) {
|
||||||
|
// code...
|
||||||
|
// $this->session->set_flashdata("notif", $this->Notif->berhasil("Berhasil Input Data"));
|
||||||
|
redirect(base_url() . "DataKriteria");
|
||||||
|
} else {
|
||||||
|
$this->session->set_flashdata("notif", $this->Notif->gagal("gagal Input Data"));
|
||||||
|
redirect(base_url() . "DataKriteria");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function delete()
|
||||||
|
{
|
||||||
|
$id = $this->input->post("id_kriteria");
|
||||||
|
$this->db->where_in("id_kriteria", $id);
|
||||||
|
if ($this->db->delete("data_kriteria")) {
|
||||||
|
// $this->session->set_flashdata("notif", $this->Notif->berhasil("Berhasil Input Data"));
|
||||||
|
redirect(base_url() . "DataKrteria");
|
||||||
|
// code...
|
||||||
|
} else {
|
||||||
|
$this->session->set_flashdata("notif", $this->Notif->gagal("gagal Input Data"));
|
||||||
|
redirect(base_url() . "DataKrteria");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,164 @@
|
||||||
|
<?php
|
||||||
|
defined('BASEPATH') or exit('No direct script access allowed');
|
||||||
|
|
||||||
|
class DataStunting extends CI_Controller
|
||||||
|
{
|
||||||
|
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
parent::__construct();
|
||||||
|
// $this->load->library('notif');
|
||||||
|
$this->load->model("ModelDataStunting");
|
||||||
|
$this->load->model("ModelDataDesa");
|
||||||
|
$this->load->library('PHPExcel');
|
||||||
|
}
|
||||||
|
|
||||||
|
function index()
|
||||||
|
{
|
||||||
|
$stunting = $this->ModelDataStunting->get_data();
|
||||||
|
$data = array(
|
||||||
|
'body' => 'DataStunting/list',
|
||||||
|
'stunting' => $stunting
|
||||||
|
);
|
||||||
|
$this->load->view('index', $data);
|
||||||
|
}
|
||||||
|
public function input()
|
||||||
|
{
|
||||||
|
$stunting = $this->ModelDataStunting->get_data();
|
||||||
|
$desa = $this->ModelDataDesa->get_data();
|
||||||
|
$data = array(
|
||||||
|
'body' => 'DataStunting/input',
|
||||||
|
'form' => 'DataStunting/form',
|
||||||
|
'stunting' => $stunting,
|
||||||
|
'desa' => $desa,
|
||||||
|
);
|
||||||
|
$this->load->view('index', $data);
|
||||||
|
}
|
||||||
|
public function insert()
|
||||||
|
{
|
||||||
|
$data = array(
|
||||||
|
'id_desa' => $this->input->post('id_desa'),
|
||||||
|
'tahun' => $this->input->post('tahun'),
|
||||||
|
'total' => $this->input->post('total'),
|
||||||
|
);
|
||||||
|
if ($this->db->insert("stunting", $data)) {
|
||||||
|
$this->session->set_flashdata("notif", $this->MNotif->berhasil("Berhasil Input Data"));
|
||||||
|
redirect(base_url() . "DataStunting");
|
||||||
|
} else {
|
||||||
|
$this->session->set_flashdata("notif", $this->MNotif->gagal("gagal Input Data"));
|
||||||
|
redirect(base_url() . "DataStunting");
|
||||||
|
}
|
||||||
|
// echo json_encode($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
function edit()
|
||||||
|
{
|
||||||
|
$id = $this->uri->segment(3);
|
||||||
|
$stunting = $this->ModelDataStunting->get_data_edit($id);
|
||||||
|
$desa = $this->ModelDataDesa->get_data();
|
||||||
|
$data = array(
|
||||||
|
'body' => 'DataStunting/edit',
|
||||||
|
'form' => 'DataStunting/form',
|
||||||
|
'stunting' => $stunting,
|
||||||
|
'desa' => $desa,
|
||||||
|
);
|
||||||
|
$this->load->view('index', $data);
|
||||||
|
}
|
||||||
|
function update()
|
||||||
|
{
|
||||||
|
$id = $this->uri->segment(3);
|
||||||
|
$data = array(
|
||||||
|
'id_desa' => $this->input->post('id_desa'),
|
||||||
|
'tahun' => $this->input->post('tahun'),
|
||||||
|
'total' => $this->input->post('total'),
|
||||||
|
);
|
||||||
|
$this->db->where("id_stunting", $id);
|
||||||
|
if ($this->db->update("stunting", $data)) {
|
||||||
|
// code...
|
||||||
|
$this->session->set_flashdata("notif", $this->MNotif->berhasil("Berhasil Input Data"));
|
||||||
|
redirect(base_url() . "DataStunting");
|
||||||
|
} else {
|
||||||
|
$this->session->set_flashdata("notif", $this->MNotif->gagal("gagal Input Data"));
|
||||||
|
redirect(base_url() . "DataStunting");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function delete()
|
||||||
|
{
|
||||||
|
$id = $this->input->post("id_stunting");
|
||||||
|
$this->db->where_in("id_stunting", $id);
|
||||||
|
if ($this->db->delete("stunting")) {
|
||||||
|
$this->session->set_flashdata("notif", $this->MNotif->berhasil("Berhasil Input Data"));
|
||||||
|
redirect(base_url() . "DataStunting");
|
||||||
|
// code...
|
||||||
|
} else {
|
||||||
|
$this->session->set_flashdata("notif", $this->MNotif->gagal("gagal Input Data"));
|
||||||
|
redirect(base_url() . "DataStunting");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function import()
|
||||||
|
{
|
||||||
|
$data = array(
|
||||||
|
'body' => 'DataStunting/import',
|
||||||
|
);
|
||||||
|
$this->load->view('index', $data);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function proses_import_excel()
|
||||||
|
{
|
||||||
|
if (isset($_FILES["fileExcel"]["name"])) {
|
||||||
|
$path = $_FILES["fileExcel"]["tmp_name"];
|
||||||
|
$object = PHPExcel_IOFactory::load($path);
|
||||||
|
$dbxl_stunting = array();
|
||||||
|
$log = array();
|
||||||
|
foreach ($object->getWorksheetIterator() as $worksheet) {
|
||||||
|
$highestRow = $worksheet->getHighestRow();
|
||||||
|
$highestColumn = $worksheet->getHighestColumn();
|
||||||
|
for ($row = 4; $row <= $highestRow; $row++) {
|
||||||
|
$nama_desa = $worksheet->getCellByColumnAndRow(2, $row)->getValue();
|
||||||
|
$total = $worksheet->getCellByColumnAndRow(3, $row)->getValue();
|
||||||
|
$tahun = $worksheet->getCellByColumnAndRow(4, $row)->getValue();
|
||||||
|
|
||||||
|
// Panggil model untuk mendapatkan data desa berdasarkan nama_desa
|
||||||
|
$data_desa = $this->ModelDataDesa->get_desa_bynama($nama_desa);
|
||||||
|
|
||||||
|
// Debugging: Periksa nilai yang dikembalikan
|
||||||
|
// var_dump($data_desa);
|
||||||
|
|
||||||
|
if (is_array($data_desa) && isset($data_desa['id_desa'])) {
|
||||||
|
$id_desa = $data_desa['id_desa'];
|
||||||
|
|
||||||
|
$temp_db = array(
|
||||||
|
'id_desa' => $id_desa,
|
||||||
|
'total' => $total,
|
||||||
|
'tahun' => $tahun,
|
||||||
|
);
|
||||||
|
$cekData = $this->db->get_where("stunting", array("id_desa" => $id_desa, "tahun" => $tahun))->row_array();
|
||||||
|
if ($cekData) {
|
||||||
|
$this->db->where("id_stunting", $cekData['id_stunting']);
|
||||||
|
$this->db->update("stunting", $temp_db);
|
||||||
|
} else {
|
||||||
|
$dbxl_stunting[] = $temp_db;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$log[] = "Desa dengan nama '$nama_desa' tidak ditemukan di database.";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (sizeof($dbxl_stunting) > 0) {
|
||||||
|
$this->db->insert_batch("stunting", $dbxl_stunting);
|
||||||
|
}
|
||||||
|
echo json_encode(
|
||||||
|
array(
|
||||||
|
"db" => $dbxl_stunting,
|
||||||
|
"log" => $log
|
||||||
|
)
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
echo "Tidak ada file yang masuk";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,88 @@
|
||||||
|
<?php
|
||||||
|
defined('BASEPATH') or exit('No direct script access allowed');
|
||||||
|
|
||||||
|
class Desa extends CI_Controller
|
||||||
|
{
|
||||||
|
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
parent::__construct();
|
||||||
|
$this->load->model("ModelDesa");
|
||||||
|
}
|
||||||
|
|
||||||
|
function index()
|
||||||
|
{
|
||||||
|
$desa = $this->ModelDesa->get_data();
|
||||||
|
$data = array(
|
||||||
|
'body' => 'Desa/list',
|
||||||
|
'desa' => $desa
|
||||||
|
);
|
||||||
|
$this->load->view('index', $data);
|
||||||
|
}
|
||||||
|
public function input()
|
||||||
|
{
|
||||||
|
$desa = $this->ModelDesa->get_data();
|
||||||
|
$data = array(
|
||||||
|
'body' => 'Desa/input',
|
||||||
|
'form' => 'Desa/form',
|
||||||
|
'desa' => $desa,
|
||||||
|
);
|
||||||
|
$this->load->view('index', $data);
|
||||||
|
}
|
||||||
|
public function insert()
|
||||||
|
{
|
||||||
|
$data = array(
|
||||||
|
'nama_desa' => $this->input->post('nama_desa'),
|
||||||
|
);
|
||||||
|
if ($this->db->insert("desa", $data)) {
|
||||||
|
$this->session->set_flashdata("notif", $this->MNotif->berhasil("Berhasil Input Data"));
|
||||||
|
redirect(base_url() . "Desa");
|
||||||
|
} else {
|
||||||
|
$this->session->set_flashdata("notif", $this->MNotif->gagal("gagal Input Data"));
|
||||||
|
redirect(base_url() . "Desa");
|
||||||
|
}
|
||||||
|
// echo json_encode($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
function edit()
|
||||||
|
{
|
||||||
|
$id = $this->uri->segment(3);
|
||||||
|
$desa = $this->ModelDesa->get_data_edit($id);
|
||||||
|
$data = array(
|
||||||
|
'body' => 'Desa/edit',
|
||||||
|
'form' => 'Desa/form',
|
||||||
|
'desa' => $desa,
|
||||||
|
);
|
||||||
|
$this->load->view('index', $data);
|
||||||
|
}
|
||||||
|
function update()
|
||||||
|
{
|
||||||
|
$id = $this->uri->segment(3);
|
||||||
|
$data = array(
|
||||||
|
'nama_desa' => $this->input->post('nama_desa'),
|
||||||
|
);
|
||||||
|
$this->db->where("id_desa", $id);
|
||||||
|
if ($this->db->update("desa", $data)) {
|
||||||
|
// code...
|
||||||
|
$this->session->set_flashdata("notif", $this->MNotif->berhasil("Berhasil Input Data"));
|
||||||
|
redirect(base_url() . "Desa");
|
||||||
|
} else {
|
||||||
|
$this->session->set_flashdata("notif", $this->MNotif->gagal("gagal Input Data"));
|
||||||
|
redirect(base_url() . "Desa");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function delete()
|
||||||
|
{
|
||||||
|
$id = $this->input->post("id_desa");
|
||||||
|
$this->db->where_in("id_desa", $id);
|
||||||
|
if ($this->db->delete("desa")) {
|
||||||
|
$this->session->set_flashdata("notif", $this->MNotif->berhasil("Berhasil Hapus Data Desa"));
|
||||||
|
redirect(base_url() . "Desa");
|
||||||
|
// code...
|
||||||
|
} else {
|
||||||
|
$this->session->set_flashdata("notif", $this->MNotif->gagal("gagal Hapus Data Data"));
|
||||||
|
redirect(base_url() . "Desa");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,168 @@
|
||||||
|
<?php
|
||||||
|
defined('BASEPATH') or exit('No direct script access allowed');
|
||||||
|
|
||||||
|
class FAQ extends CI_Controller
|
||||||
|
{
|
||||||
|
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
parent::__construct();
|
||||||
|
$this->load->model("ModelPertanyaan");
|
||||||
|
$this->load->model("ModelJawaban");
|
||||||
|
}
|
||||||
|
|
||||||
|
function index()
|
||||||
|
{
|
||||||
|
$pertanyaan = $this->ModelPertanyaan->get_data();
|
||||||
|
// $jawaban = $this->ModelJawaban->get_data();
|
||||||
|
$data = array(
|
||||||
|
'body' => 'FAQ/list',
|
||||||
|
'pertanyaan' => $pertanyaan,
|
||||||
|
// 'jawaban' => $jawaban,
|
||||||
|
);
|
||||||
|
$this->load->view('index', $data);
|
||||||
|
}
|
||||||
|
public function input_pertanyaan()
|
||||||
|
{
|
||||||
|
$pertanyaan = $this->ModelPertanyaan->get_data();
|
||||||
|
$data = array(
|
||||||
|
'body' => 'FAQ/input',
|
||||||
|
'form' => 'FAQ/form',
|
||||||
|
'pertanyaan' => $pertanyaan,
|
||||||
|
);
|
||||||
|
$this->load->view('index', $data);
|
||||||
|
}
|
||||||
|
public function insert_pertanyaan()
|
||||||
|
{
|
||||||
|
$data = array(
|
||||||
|
'pertanyaan' => $this->input->post('pertanyaan'),
|
||||||
|
);
|
||||||
|
if ($this->db->insert("pertanyaan", $data)) {
|
||||||
|
// $this->session->set_flashdata("notif", $this->Notif->berhasil("Berhasil Input Data"));
|
||||||
|
redirect(base_url() . "FAQ");
|
||||||
|
} else {
|
||||||
|
$this->session->set_flashdata("notif", $this->Notif->gagal("gagal Input Data"));
|
||||||
|
redirect(base_url() . "FAQ");
|
||||||
|
}
|
||||||
|
// echo json_encode($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
function edit_pertanyaan(){
|
||||||
|
$id = $this->uri->segment(3);
|
||||||
|
$pertanyaan = $this->ModelPertanyaan->get_data_edit($id);
|
||||||
|
$data = array(
|
||||||
|
'body' => 'FAQ/edit',
|
||||||
|
'form' => 'FAQ/form',
|
||||||
|
'pertanyaan' => $pertanyaan,
|
||||||
|
);
|
||||||
|
$this->load->view('index', $data);
|
||||||
|
}
|
||||||
|
function update_pertanyaan()
|
||||||
|
{
|
||||||
|
$id = $this->uri->segment(3);
|
||||||
|
$data = array(
|
||||||
|
'pertanyaan' => $this->input->post('pertanyaan'),
|
||||||
|
);
|
||||||
|
$this->db->where("id_pertanyaan", $id);
|
||||||
|
if ($this->db->update("pertanyaan", $data)) {
|
||||||
|
// code...
|
||||||
|
// $this->session->set_flashdata("notif", $this->Notif->berhasil("Berhasil Input Data"));
|
||||||
|
redirect(base_url() . "FAQ");
|
||||||
|
} else {
|
||||||
|
$this->session->set_flashdata("notif", $this->Notif->gagal("gagal Input Data"));
|
||||||
|
redirect(base_url() . "FAQ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function delete_pertanyaan()
|
||||||
|
{
|
||||||
|
$id = $this->input->post("id_pertanyaan");
|
||||||
|
$this->db->where_in("id_pertanyaan", $id);
|
||||||
|
if ($this->db->delete("pertanyaan")) {
|
||||||
|
// $this->session->set_flashdata("notif", $this->Notif->berhasil("Berhasil Input Data"));
|
||||||
|
redirect(base_url() . "FAQ");
|
||||||
|
// code...
|
||||||
|
} else {
|
||||||
|
$this->session->set_flashdata("notif", $this->Notif->gagal("gagal Input Data"));
|
||||||
|
redirect(base_url() . "FAQ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function jawaban()
|
||||||
|
{
|
||||||
|
$jawaban = $this->ModelJawaban->get_jawaban_edit();
|
||||||
|
$data = array(
|
||||||
|
'body' => 'Jawaban/list',
|
||||||
|
'jawaban' => $jawaban,
|
||||||
|
);
|
||||||
|
$this->load->view('index', $data);
|
||||||
|
}
|
||||||
|
public function input_jawaban()
|
||||||
|
{
|
||||||
|
$pertanyaan = $this->ModelPertanyaan->get_data();
|
||||||
|
$data = array(
|
||||||
|
'body' => 'Jawaban/input',
|
||||||
|
'form' => 'Jawaban/form',
|
||||||
|
'pertanyaan' => $pertanyaan,
|
||||||
|
);
|
||||||
|
$this->load->view('index', $data);
|
||||||
|
}
|
||||||
|
public function insert_jawaban()
|
||||||
|
{
|
||||||
|
$data = array(
|
||||||
|
'id_pertanyaan' => $this->input->post('id_pertanyaan'),
|
||||||
|
'jawaban' => $this->input->post('jawaban'),
|
||||||
|
);
|
||||||
|
if ($this->db->insert("jawaban", $data)) {
|
||||||
|
// $this->session->set_flashdata("notif", $this->Notif->berhasil("Berhasil Input Data"));
|
||||||
|
redirect(base_url() . "FAQ/Jawaban");
|
||||||
|
} else {
|
||||||
|
$this->session->set_flashdata("notif", $this->Notif->gagal("gagal Input Data"));
|
||||||
|
redirect(base_url() . "FAQ/Jawaban");
|
||||||
|
}
|
||||||
|
// echo json_encode($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
function edit_jawaban(){
|
||||||
|
$id = $this->uri->segment(3);
|
||||||
|
$jawaban = $this->ModelJawaban->get_data_edit($id);
|
||||||
|
$pertanyaan = $this->ModelPertanyaan->get_data();
|
||||||
|
$data = array(
|
||||||
|
'body' => 'Jawaban/edit',
|
||||||
|
'form' => 'Jawaban/form',
|
||||||
|
'jawaban' => $jawaban,
|
||||||
|
'pertanyaan' => $pertanyaan,
|
||||||
|
);
|
||||||
|
$this->load->view('index', $data);
|
||||||
|
}
|
||||||
|
function update_jawaban()
|
||||||
|
{
|
||||||
|
$id = $this->uri->segment(3);
|
||||||
|
$data = array(
|
||||||
|
'jawaban' => $this->input->post('jawaban'),
|
||||||
|
);
|
||||||
|
$this->db->where("id_jawaban", $id);
|
||||||
|
if ($this->db->update("jawaban", $data)) {
|
||||||
|
// code...
|
||||||
|
// $this->session->set_flashdata("notif", $this->Notif->berhasil("Berhasil Input Data"));
|
||||||
|
redirect(base_url() . "FAQ/Jawaban");
|
||||||
|
} else {
|
||||||
|
$this->session->set_flashdata("notif", $this->Notif->gagal("gagal Input Data"));
|
||||||
|
redirect(base_url() . "FAQ/Jawaban");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function delete_jawaban()
|
||||||
|
{
|
||||||
|
$id = $this->input->post("id_jawaban");
|
||||||
|
$this->db->where_in("id_jawaban", $id);
|
||||||
|
if ($this->db->delete("jawaban")) {
|
||||||
|
// $this->session->set_flashdata("notif", $this->Notif->berhasil("Berhasil Input Data"));
|
||||||
|
redirect(base_url() . "FAQ/Jawaban");
|
||||||
|
// code...
|
||||||
|
} else {
|
||||||
|
$this->session->set_flashdata("notif", $this->Notif->gagal("gagal Input Data"));
|
||||||
|
redirect(base_url() . "FAQ/Jawaban");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,94 @@
|
||||||
|
<?php
|
||||||
|
defined('BASEPATH') or exit('No direct script access allowed');
|
||||||
|
|
||||||
|
class IMT extends CI_Controller
|
||||||
|
{
|
||||||
|
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
parent::__construct();
|
||||||
|
$this->load->model("ModelIMT");
|
||||||
|
}
|
||||||
|
|
||||||
|
function index()
|
||||||
|
{
|
||||||
|
$imt = $this->ModelIMT->get_data();
|
||||||
|
$data = array(
|
||||||
|
'body' => 'IMT/list',
|
||||||
|
'imt' => $imt
|
||||||
|
);
|
||||||
|
$this->load->view("index", $data);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function input()
|
||||||
|
{
|
||||||
|
$imt = $this->ModelIMT->get_data();
|
||||||
|
$data = array(
|
||||||
|
'body' => 'IMT/input',
|
||||||
|
'form' => 'IMT/form',
|
||||||
|
'imt' => $imt,
|
||||||
|
);
|
||||||
|
$this->load->view('index', $data);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function insert()
|
||||||
|
{
|
||||||
|
$data = array(
|
||||||
|
'klasifikasi' => $this->input->post('klasifikasi'),
|
||||||
|
'nilai_awal' => $this->input->post('nilai_awal'),
|
||||||
|
'nilai_akhir' => $this->input->post('nilai_akhir'),
|
||||||
|
);
|
||||||
|
if ($this->db->insert("imt", $data)) {
|
||||||
|
// $this->session->set_flashdata("notif", $this->Notif->berhasil("Berhasil Input Data"));
|
||||||
|
redirect(base_url() . "IMT");
|
||||||
|
} else {
|
||||||
|
$this->session->set_flashdata("notif", $this->Notif->gagal("gagal Input Data"));
|
||||||
|
redirect(base_url() . "IMT");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function edit()
|
||||||
|
{
|
||||||
|
$id = $this->uri->segment(3);
|
||||||
|
$imt = $this->ModelIMT->get_data_edit($id);
|
||||||
|
$data = array(
|
||||||
|
'form' => 'IMT/form_edit',
|
||||||
|
'body' => 'IMT/edit',
|
||||||
|
'imt' => $imt,
|
||||||
|
);
|
||||||
|
$this->load->view('index', $data);
|
||||||
|
}
|
||||||
|
|
||||||
|
function update()
|
||||||
|
{
|
||||||
|
$id = $this->uri->segment(3);
|
||||||
|
$data = array(
|
||||||
|
'klasifikasi' => $this->input->post('klasifikasi'),
|
||||||
|
'nilai_awal' => $this->input->post('nilai_awal'),
|
||||||
|
'nilai_akhir' => $this->input->post('nilai_akhir'),
|
||||||
|
);
|
||||||
|
$this->db->where("id_imt", $id);
|
||||||
|
if ($this->db->update("imt", $data)) {
|
||||||
|
// code...
|
||||||
|
// $this->session->set_flashdata("notif", $this->Notif->berhasil("Berhasil Input Data"));
|
||||||
|
redirect(base_url() . "IMT");
|
||||||
|
} else {
|
||||||
|
$this->session->set_flashdata("notif", $this->Notif->gagal("gagal Input Data"));
|
||||||
|
redirect(base_url() . "IMT");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function delete()
|
||||||
|
{
|
||||||
|
$id = $this->input->post("id_imt");
|
||||||
|
$this->db->where_in("id_imt", $id);
|
||||||
|
if ($this->db->delete("imt")) {
|
||||||
|
// $this->session->set_flashdata("notif", $this->Notif->berhasil("Berhasil Input Data"));
|
||||||
|
redirect(base_url() . "IMT");
|
||||||
|
// code...
|
||||||
|
} else {
|
||||||
|
$this->session->set_flashdata("notif", $this->Notif->gagal("gagal Input Data"));
|
||||||
|
redirect(base_url() . "IMT");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,104 @@
|
||||||
|
<?php
|
||||||
|
defined('BASEPATH') or exit('No direct script access allowed');
|
||||||
|
|
||||||
|
class Index extends CI_Controller
|
||||||
|
{
|
||||||
|
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
parent::__construct();
|
||||||
|
// $this->load->model("ModelUser");
|
||||||
|
// $this->load->model("ModelMakanan");
|
||||||
|
// $this->load->model("ModelArtikel");
|
||||||
|
$this->load->model("ModelDataDesa");
|
||||||
|
$this->load->model("ModelDataStunting");
|
||||||
|
}
|
||||||
|
|
||||||
|
function index()
|
||||||
|
{
|
||||||
|
$dataDesa = $this->ModelDataDesa->get_data();
|
||||||
|
$startYear = 2020;
|
||||||
|
$lastYear = 2024;
|
||||||
|
$alpha = 0.9;
|
||||||
|
$dataPerhitungan = array();
|
||||||
|
|
||||||
|
foreach ($dataDesa as $key => $value) {
|
||||||
|
$temp = array();
|
||||||
|
$temp['id_desa'] = $value->id_desa;
|
||||||
|
$temp['nama_desa'] = $value->nama_desa;
|
||||||
|
$temp['alpha'] = $alpha;
|
||||||
|
$min = PHP_INT_MAX;
|
||||||
|
$max = PHP_INT_MIN;
|
||||||
|
$errorSum = 0;
|
||||||
|
$errorCount = 0;
|
||||||
|
|
||||||
|
// Mengambil data aktual dan menentukan nilai min dan max
|
||||||
|
for ($i = $startYear; $i <= $lastYear; $i++) {
|
||||||
|
$aktual = 0;
|
||||||
|
if ($this->ModelDataStunting->getbyDesaTahun($temp['id_desa'], $i)) {
|
||||||
|
$aktual = (int) $this->ModelDataStunting->getbyDesaTahun($temp['id_desa'], $i)['total'];
|
||||||
|
}
|
||||||
|
$temp['aktual'][$i] = $aktual;
|
||||||
|
if ($aktual < $min) {
|
||||||
|
$min = $aktual;
|
||||||
|
}
|
||||||
|
if ($aktual > $max) {
|
||||||
|
$max = $aktual;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Menghitung normalisasi, peramalan SES, denormalisasi, dan MAPE
|
||||||
|
for ($i = $startYear; $i <= $lastYear; $i++) {
|
||||||
|
// Normalisasi
|
||||||
|
if (($max - $min) <= 0) {
|
||||||
|
$temp['normalisasi'][$i] = 0;
|
||||||
|
} else {
|
||||||
|
$temp['normalisasi'][$i] = ($temp['aktual'][$i] - $min) / ($max - $min);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Peramalan SES
|
||||||
|
if ($i == $startYear) {
|
||||||
|
$temp['peramalan'][$i] = $temp['normalisasi'][$i];
|
||||||
|
} else {
|
||||||
|
$temp['peramalan'][$i] = $alpha * $temp['normalisasi'][$i - 1] + (1 - $alpha) * $temp['peramalan'][$i - 1];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Denormalisasi
|
||||||
|
$temp['de_peramalan'][$i] = $temp['peramalan'][$i] * ($max - $min) + $min;
|
||||||
|
|
||||||
|
// Menghitung error untuk MAPE
|
||||||
|
if ($i > $startYear && $temp['aktual'][$i] > 0) {
|
||||||
|
$error = abs($temp['aktual'][$i] - $temp['de_peramalan'][$i]) / $temp['aktual'][$i] * 100;
|
||||||
|
$temp['error'][$i] = $error;
|
||||||
|
$errorSum += $error;
|
||||||
|
$errorCount++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Menghitung MAPE
|
||||||
|
if ($errorCount > 0) {
|
||||||
|
$temp['mape'] = round($errorSum / $errorCount, 2);
|
||||||
|
} else {
|
||||||
|
$temp['mape'] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
$temp['min'] = $min;
|
||||||
|
$temp['max'] = $max;
|
||||||
|
$temp['forecast'] = $alpha * $temp['normalisasi'][$lastYear] + (1 - $alpha) * $temp['peramalan'][$lastYear];
|
||||||
|
$temp['forecast'] = floor($temp['forecast'] * ($max - $min) + $min);
|
||||||
|
$dataPerhitungan[] = $temp;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Mengirim data ke view
|
||||||
|
$stunting = $this->ModelDataStunting->get_data();
|
||||||
|
$desa = $this->ModelDataDesa->get_data();
|
||||||
|
$data = array(
|
||||||
|
'body' => 'Home/dashboard',
|
||||||
|
'stunting' => $stunting,
|
||||||
|
'dataPerhitungan' => $dataPerhitungan,
|
||||||
|
'desa' => $desa,
|
||||||
|
);
|
||||||
|
$this->load->view('index', $data);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,86 @@
|
||||||
|
<?php
|
||||||
|
defined('BASEPATH') or exit('No direct script access allowed');
|
||||||
|
|
||||||
|
class Kategori extends CI_Controller
|
||||||
|
{
|
||||||
|
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
parent::__construct();
|
||||||
|
$this->load->model("ModelKategori");
|
||||||
|
}
|
||||||
|
|
||||||
|
function index()
|
||||||
|
{
|
||||||
|
$kategori = $this->ModelKategori->get_data();
|
||||||
|
$data = array(
|
||||||
|
'body' => 'Kategori/list',
|
||||||
|
'kategori' => $kategori
|
||||||
|
);
|
||||||
|
$this->load->view('index', $data);
|
||||||
|
}
|
||||||
|
public function input()
|
||||||
|
{
|
||||||
|
$kategori = $this->ModelKategori->get_data();
|
||||||
|
$data = array(
|
||||||
|
'body' => 'Kategori/input',
|
||||||
|
'form' => 'Kategori/form',
|
||||||
|
'kategori' => $kategori,
|
||||||
|
);
|
||||||
|
$this->load->view('index', $data);
|
||||||
|
}
|
||||||
|
public function insert()
|
||||||
|
{
|
||||||
|
$data = array(
|
||||||
|
'nama_kategori' => $this->input->post('nama_kategori'),
|
||||||
|
);
|
||||||
|
if ($this->db->insert("kategori", $data)) {
|
||||||
|
// $this->session->set_flashdata("notif", $this->Notif->berhasil("Berhasil Input Data"));
|
||||||
|
redirect(base_url() . "Kategori");
|
||||||
|
} else {
|
||||||
|
$this->session->set_flashdata("notif", $this->Notif->gagal("gagal Input Data"));
|
||||||
|
redirect(base_url() . "Kategori");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function edit(){
|
||||||
|
$id = $this->uri->segment(3);
|
||||||
|
$kategori = $this->ModelKategori->get_data_edit($id);
|
||||||
|
$data = array(
|
||||||
|
'body' => 'Kategori/edit',
|
||||||
|
'form' => 'Kategori/form',
|
||||||
|
'kategori' => $kategori,
|
||||||
|
);
|
||||||
|
$this->load->view('index', $data);
|
||||||
|
}
|
||||||
|
function update()
|
||||||
|
{
|
||||||
|
$id = $this->uri->segment(3);
|
||||||
|
$data = array(
|
||||||
|
'nama_kategori' => $this->input->post('nama_kategori'),
|
||||||
|
);
|
||||||
|
$this->db->where("id_kategori", $id);
|
||||||
|
if ($this->db->update("kategori", $data)) {
|
||||||
|
// code...
|
||||||
|
// $this->session->set_flashdata("notif", $this->Notif->berhasil("Berhasil Input Data"));
|
||||||
|
redirect(base_url() . "Kategori");
|
||||||
|
} else {
|
||||||
|
$this->session->set_flashdata("notif", $this->Notif->gagal("gagal Input Data"));
|
||||||
|
redirect(base_url() . "Kategori");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function delete()
|
||||||
|
{
|
||||||
|
$id = $this->input->post("id_kategori");
|
||||||
|
$this->db->where_in("id_kategori", $id);
|
||||||
|
if ($this->db->delete("kategori")) {
|
||||||
|
// $this->session->set_flashdata("notif", $this->Notif->berhasil("Berhasil Input Data"));
|
||||||
|
redirect(base_url() . "Kategori");
|
||||||
|
// code...
|
||||||
|
} else {
|
||||||
|
$this->session->set_flashdata("notif", $this->Notif->gagal("gagal Input Data"));
|
||||||
|
redirect(base_url() . "Kategori");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,49 @@
|
||||||
|
<?php
|
||||||
|
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||||
|
|
||||||
|
class LaporanDarah extends CI_Controller{
|
||||||
|
|
||||||
|
public $data_user = array();
|
||||||
|
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
parent::__construct();
|
||||||
|
$this->load->model("ModelDarah");
|
||||||
|
}
|
||||||
|
|
||||||
|
function index()
|
||||||
|
{
|
||||||
|
$darah = $this->ModelDarah->get_data();
|
||||||
|
$data = array(
|
||||||
|
'body' => 'Laporan/darah',
|
||||||
|
'darah' => $darah
|
||||||
|
);
|
||||||
|
$this->load->view("index",$data);
|
||||||
|
}
|
||||||
|
function searchLaporanDarah()
|
||||||
|
{
|
||||||
|
$bulan = $this->input->post("bulan");
|
||||||
|
$tahun = $this->input->post("tahun");
|
||||||
|
// $bulan = "10";
|
||||||
|
// $tahun = "2021";
|
||||||
|
$blnthn = date("Y-m", strtotime($tahun."-".$bulan."-01"));
|
||||||
|
$darah = $this->ModelDarah->get_data_darah2($bulan,$tahun);
|
||||||
|
$data = array(
|
||||||
|
'darah' => $darah,
|
||||||
|
);
|
||||||
|
$this->load->view('Laporan/darah_detail', $data);
|
||||||
|
}
|
||||||
|
public function cetak(){
|
||||||
|
$bulan = $this->input->post("bulan");
|
||||||
|
$tahun = $this->input->post("tahun");
|
||||||
|
$data = array(
|
||||||
|
'bulan' => $bulan,
|
||||||
|
'tahun' => $tahun,
|
||||||
|
'data' => $this->ModelDarah->get_data_darah2($bulan,$tahun)
|
||||||
|
|
||||||
|
);
|
||||||
|
$this->load->view("Laporan/cetak_darah",$data);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,42 @@
|
||||||
|
<?php
|
||||||
|
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||||
|
|
||||||
|
class LaporanGizi extends CI_Controller{
|
||||||
|
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
parent::__construct();
|
||||||
|
$this->load->model("ModelKonsumsi");
|
||||||
|
}
|
||||||
|
|
||||||
|
function index()
|
||||||
|
{
|
||||||
|
if (isset($_GET["start"]) && isset($_GET["end"])) { // jika ada parameter start dan end
|
||||||
|
$from = $this->input->get("start");
|
||||||
|
$till = $this->input->get("end");
|
||||||
|
$gizi = $this->ModelKonsumsi->get_status2($from,$till);
|
||||||
|
} else { // jika tidak ada parameter start dan end maka ditampilkan semuanya
|
||||||
|
// butuh 3 data
|
||||||
|
$from = date("Y-m-d");
|
||||||
|
$till = date("Y-m-d");
|
||||||
|
$gizi = $this->ModelKonsumsi->get_status2($from,$till);
|
||||||
|
}
|
||||||
|
$data = array(
|
||||||
|
'body' => 'Laporan/gizi',
|
||||||
|
'gizi' => $gizi
|
||||||
|
);
|
||||||
|
$this->load->view("index",$data);
|
||||||
|
}
|
||||||
|
public function cetak(){
|
||||||
|
$from = $this->input->post("start");
|
||||||
|
$till = $this->input->post("end");
|
||||||
|
$data = array(
|
||||||
|
'mulai' => date("d-m-Y",strtotime($from)),
|
||||||
|
'sampai' => date("d-m-Y",strtotime($till)),
|
||||||
|
'data' => $this->ModelKonsumsi->get_status2($from,$till)
|
||||||
|
|
||||||
|
);
|
||||||
|
$this->load->view("Laporan/cetak_gizi",$data);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,44 @@
|
||||||
|
<?php
|
||||||
|
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||||
|
|
||||||
|
class LaporanKonsumsi extends CI_Controller{
|
||||||
|
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
parent::__construct();
|
||||||
|
$this->load->model("ModelKonsumsi");
|
||||||
|
}
|
||||||
|
|
||||||
|
function index()
|
||||||
|
{
|
||||||
|
if (isset($_GET["start"]) && isset($_GET["end"])) { // jika ada parameter start dan end
|
||||||
|
$from = $this->input->get("start");
|
||||||
|
$till = $this->input->get("end");
|
||||||
|
$konsumsi = $this->ModelKonsumsi->get_data2($from,$till);
|
||||||
|
} else { // jika tidak ada parameter start dan end maka ditampilkan semuanya
|
||||||
|
// butuh 3 data
|
||||||
|
$from = date("Y-m-d");
|
||||||
|
$till = date("Y-m-d");
|
||||||
|
$konsumsi = $this->ModelKonsumsi->get_data2($from,$till);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$data = array(
|
||||||
|
'body' => 'Laporan/konsumsi',
|
||||||
|
'konsumsi' => $konsumsi
|
||||||
|
);
|
||||||
|
$this->load->view("index",$data);
|
||||||
|
}
|
||||||
|
public function cetak(){
|
||||||
|
$from = $this->input->post("start");
|
||||||
|
$till = $this->input->post("end");
|
||||||
|
$data = array(
|
||||||
|
'mulai' => date("d-m-Y",strtotime($from)),
|
||||||
|
'sampai' => date("d-m-Y",strtotime($till)),
|
||||||
|
'data' => $this->ModelKonsumsi->get_data2($from,$till)
|
||||||
|
|
||||||
|
);
|
||||||
|
$this->load->view("Laporan/cetak_konsumsi",$data);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,50 @@
|
||||||
|
<?php
|
||||||
|
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||||
|
|
||||||
|
class Login extends CI_Controller{
|
||||||
|
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
parent::__construct();
|
||||||
|
// $this->load->model("ModelUser");
|
||||||
|
}
|
||||||
|
|
||||||
|
function index()
|
||||||
|
{
|
||||||
|
$this->load->view('Login/login');
|
||||||
|
}
|
||||||
|
|
||||||
|
function cek_login(){
|
||||||
|
$username = $this->input->post("username");
|
||||||
|
$password = $this->input->post("password");
|
||||||
|
$cek = $this->db->get_where("user",array("username"=>$username));
|
||||||
|
if ($cek->num_rows()>0) {
|
||||||
|
$user = $cek->row_array();
|
||||||
|
$pw_valid = $user['password'];
|
||||||
|
|
||||||
|
if ($password==$pw_valid) {
|
||||||
|
$data_session = array(
|
||||||
|
'id_user' => $user['id_user'],
|
||||||
|
'nama' => $user['nama'],
|
||||||
|
'username' => $user['username'],
|
||||||
|
);
|
||||||
|
$this->session->set_userdata($data_session);
|
||||||
|
redirect(base_url()."Index");
|
||||||
|
} else {
|
||||||
|
// Password salah, tampilkan alert
|
||||||
|
echo "<script>alert('Password Anda Salah');</script>";
|
||||||
|
redirect(base_url()."Login");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$this->session->set_flashdata("salah_username", "Username Tidak Ditemukan");
|
||||||
|
redirect(base_url()."Login");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function logout(){
|
||||||
|
$data_session = array('iduser','user','username',);
|
||||||
|
$this->session->unset_userdata($data_session);
|
||||||
|
redirect(base_url()."Login");
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,111 @@
|
||||||
|
<?php
|
||||||
|
defined('BASEPATH') or exit('No direct script access allowed');
|
||||||
|
|
||||||
|
class Makanan extends CI_Controller
|
||||||
|
{
|
||||||
|
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
parent::__construct();
|
||||||
|
$this->load->model("ModelMakanan");
|
||||||
|
$this->load->model("ModelKategori");
|
||||||
|
}
|
||||||
|
|
||||||
|
function index()
|
||||||
|
{
|
||||||
|
$makanan = $this->ModelMakanan->get_data();
|
||||||
|
$data = array(
|
||||||
|
'body' => 'Makanan/list',
|
||||||
|
'makanan' => $makanan
|
||||||
|
);
|
||||||
|
$this->load->view('index', $data);
|
||||||
|
}
|
||||||
|
public function input()
|
||||||
|
{
|
||||||
|
$makanan = $this->ModelMakanan->get_data();
|
||||||
|
$kategori = $this->ModelKategori->get_data();
|
||||||
|
$data = array(
|
||||||
|
'body' => 'Makanan/input',
|
||||||
|
'form' => 'Makanan/form',
|
||||||
|
'makanan' => $makanan,
|
||||||
|
'kategori' => $kategori,
|
||||||
|
);
|
||||||
|
$this->load->view('index', $data);
|
||||||
|
}
|
||||||
|
public function insert()
|
||||||
|
{
|
||||||
|
$data = array(
|
||||||
|
'kategori' => $this->input->post('kategori'),
|
||||||
|
'nama_makanan' => $this->input->post('nama_makanan'),
|
||||||
|
'kuantitas' => $this->input->post('kuantitas'),
|
||||||
|
'besaran' => $this->input->post('besaran'),
|
||||||
|
'urt' => $this->input->post('urt'),
|
||||||
|
'energi' => $this->input->post('energi'),
|
||||||
|
'karbohidrat' => $this->input->post('karbohidrat'),
|
||||||
|
'protein' => $this->input->post('protein'),
|
||||||
|
'lemak' => $this->input->post('lemak'),
|
||||||
|
'besi' => $this->input->post('besi'),
|
||||||
|
'vitamina' => $this->input->post('vitamina'),
|
||||||
|
'vitaminc' => $this->input->post('vitaminc'),
|
||||||
|
);
|
||||||
|
if ($this->db->insert("bahan_makanan", $data)) {
|
||||||
|
// $this->session->set_flashdata("notif", $this->Notif->berhasil("Berhasil Input Data"));
|
||||||
|
redirect(base_url() . "Makanan");
|
||||||
|
} else {
|
||||||
|
$this->session->set_flashdata("notif", $this->Notif->gagal("gagal Input Data"));
|
||||||
|
redirect(base_url() . "Makanan");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function edit(){
|
||||||
|
$id = $this->uri->segment(3);
|
||||||
|
$makanan = $this->ModelMakanan->get_data_edit($id);
|
||||||
|
$kategori = $this->ModelKategori->get_data();
|
||||||
|
$data = array(
|
||||||
|
'body' => 'Makanan/edit',
|
||||||
|
'form' => 'Makanan/form_edit',
|
||||||
|
'makanan' => $makanan,
|
||||||
|
'kategori' => $kategori,
|
||||||
|
);
|
||||||
|
$this->load->view('index', $data);
|
||||||
|
}
|
||||||
|
function update()
|
||||||
|
{
|
||||||
|
$id = $this->uri->segment(3);
|
||||||
|
$data = array(
|
||||||
|
'kategori' => $this->input->post('kategori'),
|
||||||
|
'nama_makanan' => $this->input->post('nama_makanan'),
|
||||||
|
'kuantitas' => $this->input->post('kuantitas'),
|
||||||
|
'besaran' => $this->input->post('besaran'),
|
||||||
|
'urt' => $this->input->post('urt'),
|
||||||
|
'energi' => $this->input->post('energi'),
|
||||||
|
'karbohidrat' => $this->input->post('karbohidrat'),
|
||||||
|
'protein' => $this->input->post('protein'),
|
||||||
|
'lemak' => $this->input->post('lemak'),
|
||||||
|
'besi' => $this->input->post('besi'),
|
||||||
|
'vitamina' => $this->input->post('vitamina'),
|
||||||
|
'vitaminc' => $this->input->post('vitaminc'),
|
||||||
|
);
|
||||||
|
$this->db->where("id_makanan", $id);
|
||||||
|
if ($this->db->update("bahan_makanan", $data)) {
|
||||||
|
// $this->session->set_flashdata("notif", $this->Notif->berhasil("Berhasil Input Data"));
|
||||||
|
redirect(base_url() . "Makanan");
|
||||||
|
} else {
|
||||||
|
$this->session->set_flashdata("notif", $this->Notif->gagal("gagal Input Data"));
|
||||||
|
redirect(base_url() . "Makanan");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function delete()
|
||||||
|
{
|
||||||
|
$id = $this->input->post("id_makanan");
|
||||||
|
$this->db->where_in("id_makanan", $id);
|
||||||
|
if ($this->db->delete("bahan_makanan")) {
|
||||||
|
// $this->session->set_flashdata("notif", $this->Notif->berhasil("Berhasil Input Data"));
|
||||||
|
redirect(base_url() . "Makanan");
|
||||||
|
// code...
|
||||||
|
} else {
|
||||||
|
$this->session->set_flashdata("notif", $this->Notif->gagal("gagal Input Data"));
|
||||||
|
redirect(base_url() . "Makanan");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,87 @@
|
||||||
|
<?php
|
||||||
|
defined('BASEPATH') or exit('No direct script access allowed');
|
||||||
|
|
||||||
|
class Pertanyaan extends CI_Controller
|
||||||
|
{
|
||||||
|
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
parent::__construct();
|
||||||
|
$this->load->model("ModelPertanyaan");
|
||||||
|
}
|
||||||
|
|
||||||
|
function index()
|
||||||
|
{
|
||||||
|
$pertanyaan = $this->ModelPertanyaan->get_data();
|
||||||
|
$data = array(
|
||||||
|
'body' => 'Pertanyaan/list',
|
||||||
|
'pertanyaan' => $pertanyaan
|
||||||
|
);
|
||||||
|
$this->load->view('index', $data);
|
||||||
|
}
|
||||||
|
public function input()
|
||||||
|
{
|
||||||
|
$pertanyaan = $this->ModelPertanyaan->get_data();
|
||||||
|
$data = array(
|
||||||
|
'body' => 'Pertanyaan/input',
|
||||||
|
'form' => 'Pertanyaan/form',
|
||||||
|
'pertanyaan' => $pertanyaan,
|
||||||
|
);
|
||||||
|
$this->load->view('index', $data);
|
||||||
|
}
|
||||||
|
public function insert()
|
||||||
|
{
|
||||||
|
$data = array(
|
||||||
|
'pertanyaan' => $this->input->post('pertanyaan'),
|
||||||
|
);
|
||||||
|
if ($this->db->insert("pertanyaan", $data)) {
|
||||||
|
// $this->session->set_flashdata("notif", $this->Notif->berhasil("Berhasil Input Data"));
|
||||||
|
redirect(base_url() . "Pertanyaan");
|
||||||
|
} else {
|
||||||
|
$this->session->set_flashdata("notif", $this->Notif->gagal("gagal Input Data"));
|
||||||
|
redirect(base_url() . "Pertanyaan");
|
||||||
|
}
|
||||||
|
// echo json_encode($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
function edit(){
|
||||||
|
$id = $this->uri->segment(3);
|
||||||
|
$pertanyaan = $this->ModelPertanyaan->get_data_edit($id);
|
||||||
|
$data = array(
|
||||||
|
'body' => 'Pertanyaan/edit',
|
||||||
|
'form' => 'Pertanyaan/form',
|
||||||
|
'pertanyaan' => $pertanyaan,
|
||||||
|
);
|
||||||
|
$this->load->view('index', $data);
|
||||||
|
}
|
||||||
|
function update()
|
||||||
|
{
|
||||||
|
$id = $this->uri->segment(3);
|
||||||
|
$data = array(
|
||||||
|
'pertanyaan' => $this->input->post('pertanyaan'),
|
||||||
|
);
|
||||||
|
$this->db->where("id_pertanyaan", $id);
|
||||||
|
if ($this->db->update("pertanyaan", $data)) {
|
||||||
|
// code...
|
||||||
|
// $this->session->set_flashdata("notif", $this->Notif->berhasil("Berhasil Input Data"));
|
||||||
|
redirect(base_url() . "Pertanyaan");
|
||||||
|
} else {
|
||||||
|
$this->session->set_flashdata("notif", $this->Notif->gagal("gagal Input Data"));
|
||||||
|
redirect(base_url() . "Pertanyaan");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function delete()
|
||||||
|
{
|
||||||
|
$id = $this->input->post("id_pertanyaan");
|
||||||
|
$this->db->where_in("id_pertanyaan", $id);
|
||||||
|
if ($this->db->delete("pertanyaan")) {
|
||||||
|
// $this->session->set_flashdata("notif", $this->Notif->berhasil("Berhasil Input Data"));
|
||||||
|
redirect(base_url() . "Pertanyaan");
|
||||||
|
// code...
|
||||||
|
} else {
|
||||||
|
$this->session->set_flashdata("notif", $this->Notif->gagal("gagal Input Data"));
|
||||||
|
redirect(base_url() . "Pertanyaan");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
<?php
|
||||||
|
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||||
|
|
||||||
|
class Question extends CI_Controller {
|
||||||
|
public function __construct() {
|
||||||
|
parent::__construct();
|
||||||
|
$this->load->model('ModelPertanyaan');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function get_FAQ($id_user) {
|
||||||
|
$questions = $this->ModelPertanyaan->FAQ($id_user);
|
||||||
|
|
||||||
|
if (!empty($questions)) {
|
||||||
|
$this->output->set_output(json_encode($questions));
|
||||||
|
} else {
|
||||||
|
$this->output->set_output(json_encode(['message' => 'Tidak ada pertanyaan ditemukan untuk id_user ini.']));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,110 @@
|
||||||
|
<?php
|
||||||
|
defined('BASEPATH') or exit('No direct script access allowed');
|
||||||
|
|
||||||
|
class TabelPerhitungan extends CI_Controller
|
||||||
|
{
|
||||||
|
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
parent::__construct();
|
||||||
|
$this->load->model("ModelDataKriteria");
|
||||||
|
$this->load->model("ModelDataDesa");
|
||||||
|
$this->load->model("ModelDataStunting");
|
||||||
|
}
|
||||||
|
|
||||||
|
function index()
|
||||||
|
{
|
||||||
|
$stunting = $this->ModelDataStunting->get_data();
|
||||||
|
$data = array(
|
||||||
|
'body' => 'TabelPerhitungan/list',
|
||||||
|
'stunting' => $stunting
|
||||||
|
);
|
||||||
|
$this->load->view('index', $data);
|
||||||
|
}
|
||||||
|
|
||||||
|
function proseshitung()
|
||||||
|
{
|
||||||
|
$dataDesa = $this->ModelDataDesa->get_data();
|
||||||
|
$startYear = 2020;
|
||||||
|
$lastYear = 2024;
|
||||||
|
$alpha = 0.9;
|
||||||
|
$dataPerhitungan = array();
|
||||||
|
|
||||||
|
foreach ($dataDesa as $key => $value) {
|
||||||
|
$temp = array();
|
||||||
|
$temp['id_desa'] = $value->id_desa;
|
||||||
|
$temp['nama_desa'] = $value->nama_desa;
|
||||||
|
$temp['alpha'] = $alpha;
|
||||||
|
$min = PHP_INT_MAX;
|
||||||
|
$max = PHP_INT_MIN;
|
||||||
|
$errorSum = 0;
|
||||||
|
$errorCount = 0;
|
||||||
|
|
||||||
|
// Mengambil data aktual dan menentukan nilai min dan max
|
||||||
|
for ($i = $startYear; $i <= $lastYear; $i++) {
|
||||||
|
$aktual = 0;
|
||||||
|
if ($this->ModelDataStunting->getbyDesaTahun($temp['id_desa'], $i)) {
|
||||||
|
$aktual = (int) $this->ModelDataStunting->getbyDesaTahun($temp['id_desa'], $i)['total'];
|
||||||
|
}
|
||||||
|
$temp['aktual'][$i] = $aktual;
|
||||||
|
if ($aktual < $min) {
|
||||||
|
$min = $aktual;
|
||||||
|
}
|
||||||
|
if ($aktual > $max) {
|
||||||
|
$max = $aktual;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Menghitung normalisasi, peramalan SES, denormalisasi, dan MAPE
|
||||||
|
for ($i = $startYear; $i <= $lastYear; $i++) {
|
||||||
|
// Normalisasi
|
||||||
|
if (($max - $min) <= 0) {
|
||||||
|
$temp['normalisasi'][$i] = 0;
|
||||||
|
} else {
|
||||||
|
$temp['normalisasi'][$i] = ($temp['aktual'][$i] - $min) / ($max - $min);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Peramalan SES
|
||||||
|
if ($i == $startYear) {
|
||||||
|
$temp['peramalan'][$i] = $temp['normalisasi'][$i];
|
||||||
|
} else {
|
||||||
|
$temp['peramalan'][$i] = $alpha * $temp['normalisasi'][$i - 1] + (1 - $alpha) * $temp['peramalan'][$i - 1];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Denormalisasi
|
||||||
|
$temp['de_peramalan'][$i] = $temp['peramalan'][$i] * ($max - $min) + $min;
|
||||||
|
|
||||||
|
// Menghitung error untuk MAPE
|
||||||
|
if ($i > $startYear && $temp['aktual'][$i] > 0) {
|
||||||
|
$error = abs($temp['aktual'][$i] - $temp['de_peramalan'][$i]) / $temp['aktual'][$i] * 100;
|
||||||
|
$temp['error'][$i] = $error;
|
||||||
|
$errorSum += $error;
|
||||||
|
$errorCount++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Menghitung MAPE
|
||||||
|
if ($errorCount > 0) {
|
||||||
|
$temp['mape'] = round($errorSum / $errorCount, 2);
|
||||||
|
} else {
|
||||||
|
$temp['mape'] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
$temp['min'] = $min;
|
||||||
|
$temp['max'] = $max;
|
||||||
|
$temp['forecast'] = $alpha * $temp['normalisasi'][$lastYear] + (1 - $alpha) * $temp['peramalan'][$lastYear];
|
||||||
|
$temp['forecast'] = floor($temp['forecast'] * ($max - $min) + $min);
|
||||||
|
$dataPerhitungan[] = $temp;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Mengirim data ke view
|
||||||
|
$stunting = $this->ModelDataStunting->get_data();
|
||||||
|
$data = array(
|
||||||
|
'body' => 'TabelPerhitungan/list',
|
||||||
|
'stunting' => $stunting,
|
||||||
|
'dataPerhitungan' => $dataPerhitungan
|
||||||
|
);
|
||||||
|
$this->load->view('index', $data);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,148 @@
|
||||||
|
<?php
|
||||||
|
defined('BASEPATH') or exit('No direct script access allowed');
|
||||||
|
|
||||||
|
class User extends CI_Controller
|
||||||
|
{
|
||||||
|
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
parent::__construct();
|
||||||
|
$this->load->model("ModelUser");
|
||||||
|
}
|
||||||
|
|
||||||
|
function index()
|
||||||
|
{
|
||||||
|
$user = $this->ModelUser->get_alldata();
|
||||||
|
$data = array(
|
||||||
|
'body' => 'User/list',
|
||||||
|
'user' => $user
|
||||||
|
);
|
||||||
|
$this->load->view('index', $data);
|
||||||
|
}
|
||||||
|
function input()
|
||||||
|
{
|
||||||
|
|
||||||
|
$data = array(
|
||||||
|
'form' => 'User/form',
|
||||||
|
'body' => 'User/input',
|
||||||
|
'unit' => $this->ModelUser->get_alldata(),
|
||||||
|
);
|
||||||
|
$this->load->view('index', $data);
|
||||||
|
}
|
||||||
|
function edit(){
|
||||||
|
$id = $this->uri->segment(3);
|
||||||
|
$user = $this->ModelUser->get_data_edit($id);
|
||||||
|
// die(var_dump($id));
|
||||||
|
$data = array(
|
||||||
|
'form' => 'User/form_edit',
|
||||||
|
'body' => 'User/edit',
|
||||||
|
'user' => $user,
|
||||||
|
);
|
||||||
|
$this->load->view('index', $data);
|
||||||
|
}
|
||||||
|
function update()
|
||||||
|
{
|
||||||
|
$id = $this->uri->segment(3);
|
||||||
|
$username = $this->input->post("username");
|
||||||
|
$jabatan = $this->input->post("jabatan");
|
||||||
|
$password = $this->input->post("password");
|
||||||
|
$nama = $this->input->post('nama');
|
||||||
|
$tanggallahir = $this->input->post('tgl_lahir');
|
||||||
|
$tinggibadan = $this->input->post('tinggi_badan');
|
||||||
|
$beratbadan = $this->input->post('berat_badan');
|
||||||
|
$alamat = $this->input->post('alamat');
|
||||||
|
$kecamatan = $this->input->post('kecamatan');
|
||||||
|
$kabupaten = $this->input->post('kabupaten');
|
||||||
|
$provinsi = $this->input->post('provinsi');
|
||||||
|
$jeniskelamin = $this->input->post('jekel');
|
||||||
|
$notelepon = $this->input->post('no_telp');
|
||||||
|
$tanggaldaftar = date("Y-m-d");
|
||||||
|
$email = $this->input->post('email');
|
||||||
|
$umur = $this->input->post('umur');
|
||||||
|
$data = array(
|
||||||
|
'username' => $username,
|
||||||
|
'jabatan' => $jabatan,
|
||||||
|
'nama'=> $nama,
|
||||||
|
'tgl_lahir'=> $tanggallahir,
|
||||||
|
'tinggi_badan'=> $tinggibadan,
|
||||||
|
'berat_badan'=> $beratbadan,
|
||||||
|
'alamat'=> $alamat,
|
||||||
|
'kecamatan'=> $kecamatan,
|
||||||
|
'kabupaten' => $kabupaten,
|
||||||
|
'provinsi' => $provinsi,
|
||||||
|
'jekel'=> $jeniskelamin,
|
||||||
|
'no_telp'=> $notelepon,
|
||||||
|
'tgl_daftar'=> $tanggaldaftar,
|
||||||
|
'email'=> $email,
|
||||||
|
'umur'=> $umur,
|
||||||
|
);
|
||||||
|
if (!empty($pass)) {
|
||||||
|
$data['password']=password_hash($password,PASSWORD_DEFAULT,array("cost"=>10));
|
||||||
|
}
|
||||||
|
$this->db->where('id_user',$id);
|
||||||
|
if ($this->db->update('user',$data )){
|
||||||
|
// $this->session->set_flashdata('notif', $this->Notif->Berhasil('Berhasil Tersimpan'));
|
||||||
|
redirect('User');
|
||||||
|
}else{
|
||||||
|
$this->session->set_flashdata('notif', $this->Notif->gagal('Gagal Tersimpan'));
|
||||||
|
redirect('User/input');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function insert()
|
||||||
|
{
|
||||||
|
$username = $this->input->post("username");
|
||||||
|
$jabatan = $this->input->post("jabatan");
|
||||||
|
$password = $this->input->post("password");
|
||||||
|
$nama = $this->input->post('nama');
|
||||||
|
$tanggallahir = $this->input->post('tgl_lahir');
|
||||||
|
$tinggibadan = $this->input->post('tinggi_badan');
|
||||||
|
$beratbadan = $this->input->post('berat_badan');
|
||||||
|
$alamat = $this->input->post('alamat');
|
||||||
|
$kecamatan = $this->input->post('kecamatan');
|
||||||
|
$kabupaten = $this->input->post('kabupaten');
|
||||||
|
$provinsi = $this->input->post('provinsi');
|
||||||
|
$jeniskelamin = $this->input->post('jekel');
|
||||||
|
$notelepon = $this->input->post('no_telp');
|
||||||
|
$tanggaldaftar = date("Y-m-d");
|
||||||
|
$email = $this->input->post('email');
|
||||||
|
$umur = $this->input->post('umur');
|
||||||
|
$data = array(
|
||||||
|
'username' => $username,
|
||||||
|
'jabatan' => $jabatan,
|
||||||
|
'password' => password_hash($pass,PASSWORD_DEFAULT,array("cost"=>10)),
|
||||||
|
'nama'=> $nama,
|
||||||
|
'tgl_lahir'=>$tanggallahir,
|
||||||
|
'tinggi_badan'=> $tinggibadan,
|
||||||
|
'berat_badan'=> $beratbadan,
|
||||||
|
'alamat'=> $alamat,
|
||||||
|
'kecamatan'=> $kecamatan,
|
||||||
|
'kabupaten' => $kabupaten,
|
||||||
|
'provinsi' => $provinsi,
|
||||||
|
'jekel'=> $jeniskelamin,
|
||||||
|
'no_telp'=> $notelepon,
|
||||||
|
'tgl_daftar'=> $tanggaldaftar,
|
||||||
|
'email'=> $email,
|
||||||
|
'umur'=> $umur,
|
||||||
|
);
|
||||||
|
if ($this->db->insert('user',$data )){
|
||||||
|
// $this->session->set_flashdata('notif', $this->Notif->Berhasil('Berhasil Tersimpan'));
|
||||||
|
redirect('User');
|
||||||
|
}else{
|
||||||
|
$this->session->set_flashdata('notif', $this->Notif->gagal('Gagal Tersimpan'));
|
||||||
|
redirect('User/input');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function delete()
|
||||||
|
{
|
||||||
|
$id = $this->input->post("id_user");
|
||||||
|
$this->db->where_in("id_user",$id);
|
||||||
|
if ($delete = $this->db->delete('user')) {
|
||||||
|
// $this->session->set_flashdata('notif', $this->Notif->berhasil('Berhasil Hapus User'));
|
||||||
|
}else{
|
||||||
|
$this->session->set_flashdata('notif', $this->Notif->gagal('Gagal Hapus Data!!!'));
|
||||||
|
};
|
||||||
|
redirect('User');
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>403 Forbidden</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<p>Directory access is forbidden.</p>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,73 @@
|
||||||
|
<?php
|
||||||
|
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||||
|
|
||||||
|
class Controller extends CI_Controller {
|
||||||
|
|
||||||
|
/**
|
||||||
|
|
||||||
|
* @author Fendrik Nurul Jadid <fendrik1311@gmail.com>
|
||||||
|
|
||||||
|
* @since v.1.0
|
||||||
|
|
||||||
|
**/
|
||||||
|
|
||||||
|
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
parent::__construct();
|
||||||
|
// $this->load->library('Pdf');
|
||||||
|
//Codeigniter : Write Less Do More
|
||||||
|
// $akses = false;
|
||||||
|
// $link = $this->uri->segment(1)."/".$this->uri->segment(2);
|
||||||
|
// // $role = json_decode($_SESSION['role']);
|
||||||
|
// $data = $this->db->where_in("id_menu",$role)->get("menu")->result();
|
||||||
|
// foreach ($data as $value) {
|
||||||
|
// if ($value->url==$link) {
|
||||||
|
// $akses = true;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// if ($link=='/') {
|
||||||
|
// $akses=true;
|
||||||
|
// }
|
||||||
|
// // die(var_dump($link));
|
||||||
|
// if (!$akses) {
|
||||||
|
// // redirect(base_url()."permission/denied");
|
||||||
|
// }
|
||||||
|
|
||||||
|
$menu_utama = $this->Core->get_menu();
|
||||||
|
// die(var_dump($menu_utama));
|
||||||
|
// echo "<pre>";
|
||||||
|
// print_r($menu_utama);
|
||||||
|
// echo "</pre>";
|
||||||
|
// die();
|
||||||
|
|
||||||
|
$akses = false;
|
||||||
|
$link = strtolower($this->uri->segment(1));
|
||||||
|
$link2 = strtolower($this->uri->segment(2));
|
||||||
|
// $link3 = strtolower($this->uri->segment(3));
|
||||||
|
if ($link2!='') {
|
||||||
|
$link.="/".$link2;
|
||||||
|
}
|
||||||
|
if (!isset($_SESSION['iduser'])) {
|
||||||
|
redirect('user/login');
|
||||||
|
}
|
||||||
|
$data_user = $this->db->where("iduser",$_SESSION['iduser'])->get("user")->row();
|
||||||
|
$roles = json_decode($data_user->roles);
|
||||||
|
// die($roles);
|
||||||
|
$data = $this->db->where_in("idmenu",$roles)->get("menu")->result();
|
||||||
|
// die(var_dump($link));
|
||||||
|
foreach ($data as $value) {
|
||||||
|
if (strtolower($value->roles)==$link) {
|
||||||
|
$akses = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($link=='' || $link==null || empty($link)) {
|
||||||
|
$akses=true;
|
||||||
|
}
|
||||||
|
// die(var_dump($link));
|
||||||
|
if (!$akses) {
|
||||||
|
// redirect(base_url()."permission/denied");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
<?php (defined('BASEPATH')) OR exit('No direct script access allowed');
|
||||||
|
|
||||||
|
/* load the MX_Loader class */
|
||||||
|
require APPPATH."third_party/MX/Loader.php";
|
||||||
|
|
||||||
|
class MY_Loader extends MX_Loader {
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?php (defined('BASEPATH')) OR exit('No direct script access allowed');
|
||||||
|
|
||||||
|
/* load the MX_Router class */
|
||||||
|
require APPPATH."third_party/MX/Router.php";
|
||||||
|
|
||||||
|
class MY_Router extends MX_Router {}
|
|
@ -0,0 +1,11 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>403 Forbidden</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<p>Directory access is forbidden.</p>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,37 @@
|
||||||
|
<?php
|
||||||
|
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||||
|
require 'vendor/autoload.php';
|
||||||
|
|
||||||
|
function NamaApp()
|
||||||
|
{
|
||||||
|
return "BELANKON";
|
||||||
|
}
|
||||||
|
|
||||||
|
function Rupiah($data)
|
||||||
|
{
|
||||||
|
return "Rp ".number_format($data,0,".",".");
|
||||||
|
}
|
||||||
|
|
||||||
|
function Currency($data)
|
||||||
|
{
|
||||||
|
return "Rp ".number_format($data,0,".",".");
|
||||||
|
}
|
||||||
|
|
||||||
|
function SendPusher($channel, $event, $data)
|
||||||
|
{
|
||||||
|
$options = array(
|
||||||
|
'cluster' => 'ap1',
|
||||||
|
'useTLS' => true
|
||||||
|
);
|
||||||
|
|
||||||
|
$pusher = new Pusher\Pusher(
|
||||||
|
'cf71bfd79f32fe4a2aa5',
|
||||||
|
'4791da6198e20e516864',
|
||||||
|
'1184341',
|
||||||
|
$options
|
||||||
|
);
|
||||||
|
|
||||||
|
$pusher->trigger($channel, $event, $data);
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
|
@ -0,0 +1,11 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>403 Forbidden</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<p>Directory access is forbidden.</p>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,10 @@
|
||||||
|
<?php
|
||||||
|
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||||
|
require 'vendor/autoload.php';
|
||||||
|
|
||||||
|
function Curl()
|
||||||
|
{
|
||||||
|
return "BELANKON";
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
|
@ -0,0 +1,11 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>403 Forbidden</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<p>Directory access is forbidden.</p>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,11 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>403 Forbidden</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<p>Directory access is forbidden.</p>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,11 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>403 Forbidden</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<p>Directory access is forbidden.</p>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,18 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Bulgarian language
|
||||||
|
*/
|
||||||
|
|
||||||
|
$lang['text_rest_invalid_api_key'] = 'Невалиден API ключ %s';
|
||||||
|
$lang['text_rest_invalid_credentials'] = 'Невалидни данни за достъп';
|
||||||
|
$lang['text_rest_ip_denied'] = 'Отказан IP адрес';
|
||||||
|
$lang['text_rest_ip_unauthorized'] = 'Неоторизиран IP адрес';
|
||||||
|
$lang['text_rest_unauthorized'] = 'Неоторизиран достъп';
|
||||||
|
$lang['text_rest_ajax_only'] = 'Само AJAX заявки са разрешени';
|
||||||
|
$lang['text_rest_api_key_unauthorized'] = 'API ключът не е оторизиран зо достъп до заявения контролер';
|
||||||
|
$lang['text_rest_api_key_permissions'] = 'API ключът няма достатъчно права';
|
||||||
|
$lang['text_rest_api_key_time_limit'] = 'API ключът е изполван с превишаване на времевия лимит за този метод';
|
||||||
|
$lang['text_rest_ip_address_time_limit'] = 'За текущия IP адрес е превишен времевия лимит за изпълнение на метода';
|
||||||
|
$lang['text_rest_unknown_method'] = 'Неизвестен метод';
|
||||||
|
$lang['text_rest_unsupported'] = 'Неподдържан протокол';
|
|
@ -0,0 +1,11 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>403 Forbidden</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<p>Directory access is forbidden.</p>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,16 @@
|
||||||
|
<?php
|
||||||
|
/*
|
||||||
|
* Dutch language
|
||||||
|
*/
|
||||||
|
$lang['text_rest_invalid_api_key'] = 'Ongeldige API sleutel %s'; // %s is the REST API key
|
||||||
|
$lang['text_rest_invalid_credentials'] = 'Ongeldige gegevens';
|
||||||
|
$lang['text_rest_ip_denied'] = 'IP-adres geweigerd';
|
||||||
|
$lang['text_rest_ip_unauthorized'] = 'IP-adres niet toegestaan';
|
||||||
|
$lang['text_rest_unauthorized'] = 'Niet toegestaan';
|
||||||
|
$lang['text_rest_ajax_only'] = 'Alleen AJAX requests zijn toegestaan';
|
||||||
|
$lang['text_rest_api_key_unauthorized'] = 'De API sleutel heeft geen toegang tot de gevraagde informatie';
|
||||||
|
$lang['text_rest_api_key_permissions'] = 'De API sleutel heeft niet genoeg bevoegdheden';
|
||||||
|
$lang['text_rest_api_key_time_limit'] = 'De API sleutel heeft de tijdslimiet bereikt';
|
||||||
|
$lang['text_rest_ip_address_time_limit'] = 'Het IP-adres heeft de tijdslimiet bereikt';
|
||||||
|
$lang['text_rest_unknown_method'] = 'Onbekende actie';
|
||||||
|
$lang['text_rest_unsupported'] = 'Protocol wordt niet ondersteund';
|
|
@ -0,0 +1,11 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>403 Forbidden</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<p>Directory access is forbidden.</p>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|