new pisilinux web sites
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
<?php return
|
||||
[
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| User
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Includes configurations for the User library.
|
||||
|
|
||||
| encode: When the user is registered in, the algorithm to encrypt the
|
||||
| password is set.
|
||||
|
|
||||
| spectator: Allows navigation of other users' accounts.
|
||||
|
|
||||
| matching: It specifies which tables and columns the User class will use.
|
||||
|
|
||||
| joining: This setting is used if the users table consists of joined
|
||||
| tables.
|
||||
|
|
||||
| emailSenderInfo: This is to specify the sender name and email
|
||||
| information of the e-mail to be sent during the activation process or
|
||||
| password forgotten operations.
|
||||
|
|
||||
*/
|
||||
|
||||
'encode' => 'super',
|
||||
'spectator' => '',
|
||||
'matching' =>
|
||||
[
|
||||
'table' => '',
|
||||
'columns' =>
|
||||
[
|
||||
'username' => '', # Required
|
||||
'password' => '', # Required
|
||||
'email' => '', # Relative
|
||||
'active' => '', # Relative
|
||||
'banned' => '', # Relative
|
||||
'activation' => '', # Relative
|
||||
'verification' => '', # Relative
|
||||
'otherLogin' => [] # Relative
|
||||
]
|
||||
],
|
||||
'joining' =>
|
||||
[
|
||||
'column' => '',
|
||||
'tables' => []
|
||||
],
|
||||
'emailSenderInfo' =>
|
||||
[
|
||||
'name' => '',
|
||||
'mail' => ''
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Permission
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Includes configurations for the Permission library.
|
||||
|
|
||||
| method : It is used to set which id value will use which method of sending.
|
||||
| page : It is used to set which id value will use which page.
|
||||
| process: It is used to set which id value will use which object.
|
||||
|
|
||||
| Example Usage
|
||||
|
|
||||
| [
|
||||
| '1' => 'any',
|
||||
| '2' => ['noperm' => ['delete', 'update']],
|
||||
| '3' => ['perm' => ['delete', 'update']],
|
||||
| '4' => ['noperm' => ['delete', 'update', 'add']],
|
||||
| '5' => 'all'
|
||||
| ]
|
||||
|
|
||||
*/
|
||||
|
||||
'method' => [],
|
||||
'page' => [],
|
||||
'process' => []
|
||||
];
|
||||
@@ -0,0 +1,26 @@
|
||||
<?php return
|
||||
[
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Cryto
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Sets the predefined driver for the Crypto library.
|
||||
|
|
||||
| Options: openssl, mcrypt, hash, phash, mhash
|
||||
|
|
||||
*/
|
||||
|
||||
'driver' => 'openssl',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Encode
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Sets which encryption algorithm will use the Encode class methods by default.
|
||||
|
|
||||
*/
|
||||
|
||||
'type' => 'md5'
|
||||
];
|
||||
@@ -0,0 +1,21 @@
|
||||
<?php return
|
||||
[
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| File
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| It contains several settings for the File library.
|
||||
|
|
||||
| realPath: The methods of the File class specify whether to access
|
||||
| the file relative to the absolute path or not.
|
||||
| parentDirectoryAccess: Set whether to allow parent directory(../) access.
|
||||
|
|
||||
*/
|
||||
|
||||
'file' =>
|
||||
[
|
||||
'realPath' => true,
|
||||
'parentDirectoryAccess' => false
|
||||
]
|
||||
];
|
||||
@@ -0,0 +1,154 @@
|
||||
<?php return
|
||||
[
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Head Page
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| It is specified in which view the html codes in the [head] tags will be
|
||||
| placed.
|
||||
|
|
||||
*/
|
||||
|
||||
'headPage' => '', # string or array
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Head Page
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| It is specified in which view the html codes in the [body] tags will be
|
||||
| placed.
|
||||
|
|
||||
*/
|
||||
|
||||
'bodyPage' => '',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Document Type
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The type of document to use.
|
||||
|
|
||||
| Types: html5 , html4Frameset , html4Transitional , html4Strict
|
||||
| xhtml11, xhtml1Frameset, xhtml1Transitional, xhtml1Strict
|
||||
|
|
||||
*/
|
||||
|
||||
'docType' => 'html5',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Title
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Edit the [title] tag.
|
||||
|
|
||||
*/
|
||||
|
||||
'title' => '',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Content
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The language and charset of your content.
|
||||
|
|
||||
*/
|
||||
|
||||
'content' =>
|
||||
[
|
||||
'language' => 'tr',
|
||||
'charset' => ['utf-8']
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Resources
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The settings below are just like using the
|
||||
| Import::theme/plugin/font/style/script() method.
|
||||
|
|
||||
*/
|
||||
|
||||
'theme' =>
|
||||
[
|
||||
'name' => [],
|
||||
'recursive' => false
|
||||
],
|
||||
|
||||
'plugin' =>
|
||||
[
|
||||
'name' => '',
|
||||
'recursive' => false
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Browser Icon
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The browser icon to be used.
|
||||
|
|
||||
*/
|
||||
|
||||
'browserIcon' => '',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Background Image
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The background image to be used.
|
||||
|
|
||||
*/
|
||||
|
||||
'backgroundImage' => '',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Attributes
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Adds a property value pair to the [html], [head] and [body] tags.
|
||||
|
|
||||
| ['id' => 'body', 'name' => 'Body'] <body id="body" name="Body">
|
||||
|
|
||||
*/
|
||||
|
||||
'attributes' =>
|
||||
[
|
||||
'html' => [],
|
||||
'head' => [],
|
||||
'body' => []
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Meta
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Used to edit meta tags.
|
||||
|
|
||||
*/
|
||||
|
||||
'meta' =>
|
||||
[
|
||||
'name:description' => '',
|
||||
'name:author' => '',
|
||||
'name:designer' => '',
|
||||
'name:distribution' => '',
|
||||
'name:keywords' => '',
|
||||
'name:abstract' => '',
|
||||
'name:copyright' => '',
|
||||
'name:expires' => '',
|
||||
'name:pragma' => '',
|
||||
'name:revisit-after' => '',
|
||||
'http:cache-control' => '',
|
||||
'http:refresh' => '',
|
||||
'name:robots' => []
|
||||
]
|
||||
];
|
||||
@@ -0,0 +1,169 @@
|
||||
<?php return
|
||||
[
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Project Language
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| It is used to change the system's error output or the language used in
|
||||
| language libraries.
|
||||
|
|
||||
*/
|
||||
|
||||
'language' => 'tr',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Timezone
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Sets the region for the time zone.
|
||||
|
|
||||
*/
|
||||
|
||||
'timezone' => 'Europe/Istanbul',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Set Locale
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Local settings for time zone.
|
||||
|
|
||||
| charset : Sets the date and time character set.
|
||||
| language: Sets the date and time language.
|
||||
|
|
||||
*/
|
||||
|
||||
'locale' =>
|
||||
[
|
||||
'charset' => 'en_US.UTF-8',
|
||||
'language' => 'english',
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Mode
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The project mode. It is recommended to arrange the publication when the
|
||||
| project is posted.
|
||||
|
|
||||
| Options: publication, restoration, development
|
||||
|
|
||||
*/
|
||||
|
||||
'mode' => 'development',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Key
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Project specific encryption key. Affects the Encode::super() method.
|
||||
|
|
||||
*/
|
||||
|
||||
'key' => ZN\In::secretProjectKey('!E;gk86H(-J>F6mq3b_3=h*'),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Benchmark
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| A table with a set of data is displayed in the lower right corner of the
|
||||
| screen.
|
||||
|
|
||||
*/
|
||||
|
||||
'benchmark' => false,
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Log
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Includes settings related to log recording.
|
||||
|
|
||||
| createFile: Starts the logging process.
|
||||
| fileTime: How long it will be stored is specified.
|
||||
|
|
||||
*/
|
||||
|
||||
'log' =>
|
||||
[
|
||||
'createFile' => false,
|
||||
'fileTime' => '30 day'
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Header
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| HTTP headers to be sent.
|
||||
|
|
||||
*/
|
||||
|
||||
'headers' =>
|
||||
[
|
||||
'content-type: text/html; charset=utf-8'
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Error Reporting
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Includes error reporting settings.
|
||||
|
|
||||
*/
|
||||
|
||||
'errorReporting' => E_ALL,
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Escape Errors
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Error numbers for which the error indication is to be prevented.
|
||||
|
|
||||
*/
|
||||
|
||||
'escapeErrors' => [],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Exit Errors
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| It is specified which error numbers will stop the code stream.
|
||||
|
|
||||
*/
|
||||
|
||||
'exitErrors' => [0, 2],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Restoration
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| For maintenance, the mode setting must be set to restoration.
|
||||
|
|
||||
| machinesIP: The IP addresses to be unaffected by restoration are
|
||||
| specified.
|
||||
|
|
||||
| pages: It is specified on which pages the restoration will be done.
|
||||
|
|
||||
| routePage: If a request is made to the restored pages, it will be
|
||||
| indicated where it will be directed.
|
||||
|
|
||||
*/
|
||||
|
||||
'restoration' =>
|
||||
[
|
||||
'machinesIP' => ['127.0.0.1'],
|
||||
'pages' => [],
|
||||
'routePage' => ''
|
||||
]
|
||||
];
|
||||
@@ -0,0 +1,78 @@
|
||||
<?php return
|
||||
[
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Open Controller
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Default boot controller.
|
||||
|
|
||||
*/
|
||||
|
||||
'openController' => 'Home',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Open Function
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| It is the default method of operation of the controller.
|
||||
|
|
||||
*/
|
||||
|
||||
'openFunction' => 'main',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Show 404
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Forwards the invalid request to the specified URI.
|
||||
|
|
||||
*/
|
||||
|
||||
'show404' => 'show404',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Request Methods
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Which URI specifies which request methods are valid or invalid.
|
||||
|
|
||||
*/
|
||||
|
||||
'requestMethods' =>
|
||||
[
|
||||
'page' => '',
|
||||
'disallowMethods' => [],
|
||||
'allowMethods' => []
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Pattern Type
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Regex type for route.
|
||||
|
|
||||
*/
|
||||
|
||||
'patternType' => 'classic',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Change URI
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Used to create a route. ['new regex' => 'old uri']
|
||||
|
|
||||
*/
|
||||
|
||||
'changeUri' => [
|
||||
|
||||
|
||||
|
||||
|
||||
]
|
||||
];
|
||||
@@ -0,0 +1,88 @@
|
||||
<?php return
|
||||
[
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Constructor Controllers
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Controllers that will run before the system and before the controllers.
|
||||
|
|
||||
| Example:
|
||||
| [
|
||||
| 'starting/starting:main', 'starting:otherMethod',
|
||||
| 'otherController/otherController:main', 'otherController:otherMethod'
|
||||
| ]
|
||||
|
|
||||
*/
|
||||
|
||||
'constructors' => ['Initialize'],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Destructor Controllers
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| It is the controllers that will go into the circuit after the
|
||||
| controllers work.
|
||||
|
|
||||
*/
|
||||
|
||||
'destructors' => [],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Extract View Data
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| It sends data to the controllers working under it with the View library.
|
||||
| Sent data is accessed with [$this] object.
|
||||
|
|
||||
*/
|
||||
|
||||
'extractViewData' => false,
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Ajax Code Continue
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| After Ajax operations, it is specified whether the code will continue to
|
||||
| flow. If you get unexpected output on ajax requests, set this value to
|
||||
| false.
|
||||
|
|
||||
*/
|
||||
|
||||
'ajaxCodeContinue' => false,
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| View Name Type
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| If the views are created in a certain standard, they are automatically
|
||||
| loaded by the controllers. There are 2 options for this;
|
||||
|
|
||||
| directory: Views/controllerName/methodName.php
|
||||
|
|
||||
| file: Views/controllerName-methodName.php
|
||||
|
|
||||
*/
|
||||
|
||||
'viewNameType' => 'directory',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Autoload
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Allows the files in the Starting/Autoload/ folder to be installed
|
||||
| automatically.
|
||||
|
|
||||
*/
|
||||
|
||||
'autoload' =>
|
||||
[
|
||||
'status' => true,
|
||||
'recursive' => false
|
||||
]
|
||||
];
|
||||
@@ -0,0 +1,108 @@
|
||||
<?php return
|
||||
[
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Cookie
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Contains settings related to cookies.
|
||||
| Configures the parameters of the setcookie function.
|
||||
|
|
||||
| encode: The cookie keys are set to which algorithm to encrypt.
|
||||
|
|
||||
*/
|
||||
|
||||
'cookie' =>
|
||||
[
|
||||
'encode' => '',
|
||||
'regenerate' => true,
|
||||
'time' => 604800,
|
||||
'path' => '/',
|
||||
'domain' => '',
|
||||
'secure' => false,
|
||||
'httpOnly' => false
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Session
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Contains settings related to session.
|
||||
|
|
||||
| encode: The cookie keys are set to which algorithm to encrypt.
|
||||
|
|
||||
*/
|
||||
|
||||
'session' =>
|
||||
[
|
||||
'encode' => 'super',
|
||||
'regenerate' => true,
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Shopping
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Contains settings related to shopping.
|
||||
|
|
||||
| driver: It is specified in which structure the cart information will be
|
||||
| stored.
|
||||
|
|
||||
*/
|
||||
|
||||
'shopping' =>
|
||||
[
|
||||
'driver' => 'session'
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Compression
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Contains settings related to compression.
|
||||
|
|
||||
| driver: It is specified which drive to compress.
|
||||
|
|
||||
*/
|
||||
|
||||
'compression' =>
|
||||
[
|
||||
'driver' => 'gz'
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Cache
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Includes configurations for the Cache library.
|
||||
|
|
||||
| drivers : apc, memcache, wincache, file, redis
|
||||
| driverSettings: Configurations by driver
|
||||
|
|
||||
*/
|
||||
|
||||
'cache' =>
|
||||
[
|
||||
'driver' => 'file',
|
||||
'driverSettings' =>
|
||||
[
|
||||
'memcache' =>
|
||||
[
|
||||
'host' => '127.0.0.1',
|
||||
'port' => '11211',
|
||||
'weight' => '1',
|
||||
],
|
||||
'redis' =>
|
||||
[
|
||||
'password' => NULL,
|
||||
'host' => '127.0.0.1',
|
||||
'port' => 6379,
|
||||
'timeout' => 0
|
||||
]
|
||||
]
|
||||
]
|
||||
];
|
||||
@@ -0,0 +1,202 @@
|
||||
<?php return
|
||||
[
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Wizard
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The template wizard specifies what to compile.
|
||||
|
|
||||
*/
|
||||
|
||||
'wizard' =>
|
||||
[
|
||||
'keywords' => true,
|
||||
'printable' => true,
|
||||
'functions' => true,
|
||||
'comments' => true,
|
||||
'tags' => true,
|
||||
'jsdata' => true,
|
||||
'callableJS' => true,
|
||||
'html' => false
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Pagination
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Includes default settings for the paging view.
|
||||
|
|
||||
*/
|
||||
|
||||
'pagination' =>
|
||||
[
|
||||
'prevName' => '«',
|
||||
'nextName' => '»',
|
||||
'firstName' => '««',
|
||||
'lastName' => '»»',
|
||||
'totalRows' => 10,
|
||||
'start' => NULL,
|
||||
'limit' => 10,
|
||||
'countLinks' => 10,
|
||||
'type' => 'classic', # classic, ajax
|
||||
'output' => 'bootstrap', # classic, bootstrap
|
||||
'class' =>
|
||||
[
|
||||
'current' => 'active',
|
||||
'links' => '',
|
||||
'prev' => '',
|
||||
'next' => '',
|
||||
'last' => '',
|
||||
'first' => ''
|
||||
],
|
||||
'style' =>
|
||||
[
|
||||
'current' => '',
|
||||
'links' => '',
|
||||
'prev' => '',
|
||||
'next' => '',
|
||||
'last' => '',
|
||||
'first' => ''
|
||||
]
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Captcha
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Includes default settings for the captcha.
|
||||
|
|
||||
*/
|
||||
|
||||
'captcha' =>
|
||||
[
|
||||
'text' =>
|
||||
[
|
||||
'type' => 'alnum',
|
||||
'length' => 6,
|
||||
'color' => '85|85|85',
|
||||
'size' => 10,
|
||||
'x' => 100,
|
||||
'y' => 18,
|
||||
'angle' => 0,
|
||||
'ttf' => []
|
||||
],
|
||||
'background' =>
|
||||
[
|
||||
'color' => '240|240|240',
|
||||
'image' => []
|
||||
],
|
||||
'border' =>
|
||||
[
|
||||
'status' => true,
|
||||
'color' => '220|220|220'
|
||||
],
|
||||
'size' =>
|
||||
[
|
||||
'width' => 254,
|
||||
'height' => 52
|
||||
],
|
||||
'grid' =>
|
||||
[
|
||||
'status' => false,
|
||||
'color' => '220|220|220',
|
||||
'spaceX' => 12,
|
||||
'spaceY' => 4
|
||||
]
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Datagrid
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Includes default settings for the datagrids.
|
||||
|
|
||||
*/
|
||||
|
||||
'dbgrid' =>
|
||||
[
|
||||
'styleElement' =>
|
||||
[
|
||||
'#DBGRID_TABLE tr:nth-child(even)' => ['background' => '#E6F9FF'],
|
||||
'#DBGRID_TABLE tr:nth-child(odd)' => ['background' => '#FFF']
|
||||
],
|
||||
'attributes' =>
|
||||
[
|
||||
'table' => ['width' => '100%', 'cellspacing' => 0, 'cellpadding' => 10, 'style' => 'margin-top:15px; margin-bottom:15px; border:solid 1px #ddd; font-family:Arial; color:#888; font-size:14px;'],
|
||||
'editTables' => ['style' => 'font-family:Arial; color:#888; font-size:14px;'],
|
||||
'columns' => ['height' => 75, 'style' => 'text-decoration:none; color:#0085B2'],
|
||||
'search' => ['style' => 'height:34px; color:#0085B2; border:solid 1px #0085B2; text-indent:10px'],
|
||||
'add' => ['style' => 'height:34px; color:#0085B2; background:none; border:solid 1px #0085B2; cursor:pointer'],
|
||||
'deleteSelected'=> ['style' => 'height:34px; color:#0085B2; background:none; border:solid 1px #0085B2; cursor:pointer'],
|
||||
'deleteAll' => ['style' => 'height:34px; color:#0085B2; background:none; border:solid 1px #0085B2; cursor:pointer'],
|
||||
'save' => ['style' => 'height:34px; color:#0085B2; background:none; border:solid 1px #0085B2; cursor:pointer'],
|
||||
'update' => ['style' => 'height:34px; color:#0085B2; background:none; border:solid 1px #0085B2; cursor:pointer'],
|
||||
'delete' => ['style' => 'height:34px; color:#0085B2; background:none; border:solid 1px #0085B2; cursor:pointer'],
|
||||
'edit' => ['style' => 'height:34px; color:#0085B2; background:none; border:solid 1px #0085B2; cursor:pointer'],
|
||||
'listTables' => [],
|
||||
'inputs' =>
|
||||
[
|
||||
'text' => ['style' => 'height:34px; color:#0085B2; border:solid 1px #0085B2; text-indent:10px'],
|
||||
'textarea' => ['style' => 'height:120px; width:290px; color:#0085B2; border:solid 1px #0085B2; text-indent:10px'],
|
||||
'radio' => [],
|
||||
'checkbox' => [],
|
||||
'select' => []
|
||||
]
|
||||
],
|
||||
'pagination' =>
|
||||
[
|
||||
'style' =>
|
||||
[
|
||||
'links' => 'color:#0085B2;width:30px; height:30px;text-align:center;padding-top:4px;display:inline-block;background:white;border:solid 1px #ddd;border-radius: 4px;-webkit-border-radius: 4px;-moz-border-radius: 4px;text-decoration:none;',
|
||||
'current' => 'font-weight:bold;'
|
||||
]
|
||||
]
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| ML Grid
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| It edits the table created by the ML::table() method.
|
||||
|
|
||||
| styleElement: Used to give built-in style to the table.
|
||||
| attributes : Used to add attributes to objects in the table.
|
||||
| pagination : It arranges the pagination bar on the table.
|
||||
|
|
||||
*/
|
||||
|
||||
'mlgrid' =>
|
||||
[
|
||||
'styleElement' =>
|
||||
[
|
||||
#'#ML_TABLE tr:nth-child(even)' => ['background' => '#E6F9FF'],
|
||||
#'#ML_TABLE tr:nth-child(odd)' => ['background' => '#FFF']
|
||||
],
|
||||
'attributes' =>
|
||||
[
|
||||
'table' => ['class' => 'table table-bordered table-hover table-striped'],
|
||||
'add' => ['style' => 'height:30px; color:#0085B2; background:none; border:solid 1px #ccc; cursor:pointer; border-radius:4px'],
|
||||
'update' => ['style' => 'height:30px; color:#0085B2; background:none; border:solid 1px #ccc; cursor:pointer; border-radius:4px'],
|
||||
'delete' => ['style' => 'height:30px; color:#0085B2; background:none; border:solid 1px #ccc; cursor:pointer; border-radius:4px'],
|
||||
'clear' => ['style' => 'height:30px; color:#0085B2; background:none; border:solid 1px #ccc; cursor:pointer; border-radius:4px'],
|
||||
'textbox' => ['style' => 'height:30px; color:#0085B2; border:solid 1px #ccc; text-indent:10px; border-radius:4px']
|
||||
],
|
||||
'pagination' =>
|
||||
[
|
||||
'style' =>
|
||||
[
|
||||
'links' => 'color:#0085B2; width:30px; height:30px; text-align:center; padding-top:4px;
|
||||
display:inline-block; background:white; border:solid 1px #ddd; border-radius: 4px;
|
||||
-webkit-border-radius: 4px; -moz-border-radius: 4px;text-decoration:none;',
|
||||
|
||||
'current' => 'font-weight:bold;'
|
||||
],
|
||||
'class' => []
|
||||
]
|
||||
]
|
||||
];
|
||||
@@ -0,0 +1,9 @@
|
||||
<?php namespace Project\Controllers;
|
||||
|
||||
class Home extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
echo 'Backend Home';
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
namespace Project\Controllers;
|
||||
|
||||
class Initialize extends Controller
|
||||
{
|
||||
/**
|
||||
* The codes to run at startup.
|
||||
* It enters the circuit before all controllers.
|
||||
* You can change this setting in Config/Starting.php file.
|
||||
*/
|
||||
public function main()
|
||||
{
|
||||
# The theme is activated.
|
||||
# Location: Resources/Themes/Default/
|
||||
Theme::active('pisiV2/');
|
||||
|
||||
# The current settings are being configured.
|
||||
Masterpage::headPage('Assets/head')
|
||||
->bodyPage('Assets/body');
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
#----------------------------------------------------------------------
|
||||
# This file automatically created and updated
|
||||
#----------------------------------------------------------------------
|
||||
$classMap['classes']['project\commands\db_backups'] = 'Projects/Frontend/Commands/Db_backups.php';
|
||||
$classMap['classes']['blog_model'] = 'Projects/Frontend/Models/blog_model.php';
|
||||
$classMap['classes']['bugs_model'] = 'Projects/Frontend/Models/bugs_model.php';
|
||||
$classMap['classes']['forum_model'] = 'Projects/Frontend/Models/forum_model.php';
|
||||
$classMap['classes']['main_model'] = 'Projects/Frontend/Models/main_model.php';
|
||||
$classMap['classes']['questionanswer_model'] = 'Projects/Frontend/Models/questionanswer_model.php';
|
||||
$classMap['classes']['sss_model'] = 'Projects/Frontend/Models/sss_model.php';
|
||||
$classMap['classes']['user_model'] = 'Projects/Frontend/Models/user_model.php';
|
||||
$classMap['classes']['wiki_model'] = 'Projects/Frontend/Models/wiki_model.php';
|
||||
$classMap['namespaces']['project\commands\db_backups'] = 'db_backups';
|
||||
$classMap['classes']['project\controllers\home'] = 'Projects/Backend/Controllers/Home.php';
|
||||
$classMap['namespaces']['project\controllers\home'] = 'home';
|
||||
$classMap['classes']['project\controllers\initialize'] = 'Projects/Backend/Controllers/Initialize.php';
|
||||
$classMap['namespaces']['project\controllers\initialize'] = 'initialize';
|
||||
@@ -0,0 +1,12 @@
|
||||
<?php namespace Project\Controllers;
|
||||
use URI,DB,Cookie,URL,Method;
|
||||
|
||||
class category extends Controller{
|
||||
function main(){
|
||||
$id = explode('-',URI::get('category'));
|
||||
$id = $id['0'];
|
||||
view::id($id);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
<?php namespace Project\Controllers;
|
||||
use URI,DB,Cookie,URL,Method;
|
||||
|
||||
class content extends Controller{
|
||||
function main(){
|
||||
$id = explode('-',URI::get('content'));
|
||||
$id = $id['0'];
|
||||
|
||||
$row = contentRow($id);
|
||||
if (!$row) {
|
||||
return Masterpage::error404();
|
||||
}
|
||||
|
||||
if (Cookie::select('contentid') != $id) {
|
||||
$hits = $row->hits + 1;
|
||||
DB::where('id', $id)->update('content',['hits' => $hits]);
|
||||
Cookie::time(60 * 60 * 24)->insert('contentid',$id);
|
||||
}
|
||||
|
||||
Masterpage::title($row->title);
|
||||
Masterpage::meta
|
||||
([
|
||||
'name:description' => $row->keywords,
|
||||
'name:keywords' => $row->label
|
||||
]);
|
||||
|
||||
define('TITLE',$row->title);
|
||||
define('LINK',URL::base("content/$id-".$row->title_seo));
|
||||
define('DESC',$row->keywords);
|
||||
define('IMG',content_image($row->content));
|
||||
|
||||
view::id($id);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
<?php namespace Project\Controllers;
|
||||
use URI,DB,Cookie,URL,Method;
|
||||
|
||||
class home extends Controller{
|
||||
|
||||
function main(){
|
||||
Cookie::insert('returnlink', '');
|
||||
if (Method::post('lang')) {
|
||||
$bloglist = contentListAdmin(Method::post('lang'));
|
||||
}else{
|
||||
$bloglist = contentListAdmin('tr');
|
||||
}
|
||||
view::bloglist($bloglist);
|
||||
}
|
||||
|
||||
function category(){
|
||||
$id = explode('-',URI::get('category'));
|
||||
$id = $id['0'];
|
||||
view::id($id);
|
||||
}
|
||||
|
||||
function content(){
|
||||
$id = explode('-',URI::get('content'));
|
||||
$id = $id['0'];
|
||||
|
||||
$row = contentRow($id);
|
||||
if (!$row) {
|
||||
return Masterpage::error404();
|
||||
}
|
||||
|
||||
if (Cookie::select('contentid') != $id) {
|
||||
$hits = $row->hits + 1;
|
||||
DB::where('id', $id)->update('content',['hits' => $hits]);
|
||||
Cookie::time(60 * 60 * 24)->insert('contentid',$id);
|
||||
}
|
||||
|
||||
Masterpage::title($row->title);
|
||||
Masterpage::meta
|
||||
([
|
||||
'name:description' => $row->keywords,
|
||||
'name:keywords' => $row->label
|
||||
]);
|
||||
|
||||
define('TITLE',$row->title);
|
||||
define('LINK',URL::base("content/$id-".$row->title_seo));
|
||||
define('DESC',$row->keywords);
|
||||
define('IMG',content_image($row->content));
|
||||
|
||||
view::id($id);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
<?php
|
||||
namespace Project\Controllers;
|
||||
|
||||
class Initialize extends Controller
|
||||
{
|
||||
public function main()
|
||||
{
|
||||
Theme::active('pisiV4/');
|
||||
|
||||
Masterpage::headPage('Assets/head')
|
||||
->bodyPage('Assets/body')
|
||||
->container(true);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
<div class="container main pt-5">
|
||||
<nav aria-label="breadcrumb" class="mb-4">
|
||||
<ol class="breadcrumb blog-breadcrumb">
|
||||
<li class="breadcrumb-item"><a href="{{URL::base()}}">{{lang('menu','home')}}</a></li>
|
||||
<li class="breadcrumb-item active">
|
||||
{{contentCategoryRow($id)->name}}
|
||||
</li>
|
||||
</ol>
|
||||
</nav>
|
||||
<div class="row">
|
||||
<div class="col-9">
|
||||
@foreach (blogCategory($id)->result() as $key)
|
||||
<div class="blog-post">
|
||||
<div class="glass-card p-3" onclick="window.location='{{URL::base()}}content/{{$key->id}}-{{$key->title_seo}}.html'">
|
||||
<div class="row g-0">
|
||||
<div class="col-lg-4">
|
||||
<a href="{{URL::base()}}content/{{$key->id}}-{{$key->title_seo}}.html" class="d-block w-100 h-100">
|
||||
<img src="{{ content_image($key->content) }}" alt="{{$key->title}}" class="img-fluid rounded-3">
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-lg-8 d-flex">
|
||||
<div class="px-0 px-lg-3 pt-3 pt-lg-0 d-flex flex-column w-100">
|
||||
<h5 class="blog-post-title">
|
||||
<a href="{{URL::base()}}content/{{$key->id}}-{{$key->title_seo}}.html">
|
||||
{{$key->title}}
|
||||
</a>
|
||||
</h5>
|
||||
<div class="blog-post-excerpt">
|
||||
{{kelimebol($key->content,200)}}
|
||||
</div>
|
||||
<div class="blog-post-meta">
|
||||
<i class="fas fa-user-edit"></i>
|
||||
<span>{{editor($key->editor)}}</span>
|
||||
<span class="mx-1">|</span>
|
||||
<i class="fas fa-calendar-alt"></i>
|
||||
<span>{{tcevir($key->create_date)}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
<div class="col-3">
|
||||
@view('Home/right')
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,44 @@
|
||||
<div class="container pt-5 main">
|
||||
<div class="row">
|
||||
<div class="col-lg-9">
|
||||
<div class="glass-card p-4 p-md-5">
|
||||
<h1 class="blog-content-title">{{contentRow($id)->title}}</h1>
|
||||
|
||||
<div class="blog-content-meta">
|
||||
<div class="avatar avatar-md" style="background-image: url({{ avatar1(contentRow($id)->editor) }})"></div>
|
||||
<div>
|
||||
<a href="#" class="blog-content-author">{{editor(contentRow($id)->editor)}}</a>
|
||||
<span class="blog-content-info">
|
||||
<i class="far fa-calendar me-1"></i>{{tcevir(contentRow($id)->create_date)}}
|
||||
<span class="mx-2">·</span>
|
||||
<i class="far fa-eye me-1"></i>{{contentRow($id)->hits}} okuma
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr class="blog-divider">
|
||||
|
||||
<div class="blog-content-body">
|
||||
{{contentRow($id)->content}}
|
||||
</div>
|
||||
|
||||
<hr class="blog-divider">
|
||||
|
||||
<div class="blog-share">
|
||||
<span class="blog-share-label">Paylaşın:</span>
|
||||
<div class="d-flex flex-wrap gap-2">
|
||||
<a href="https://www.facebook.com/sharer/sharer.php?u={{LINK}}" target="_blank" rel="noopener noreferrer" class="blog-share-link facebook" aria-label="Facebook"><i class="fab fa-facebook-f"></i></a>
|
||||
<a href="https://twitter.com/intent/tweet?url={{LINK}}" target="_blank" rel="noopener noreferrer" class="blog-share-link twitter" aria-label="X"><i class="fab fa-twitter"></i></a>
|
||||
<a href="https://www.linkedin.com/sharing/share-offsite/?url={{LINK}}" target="_blank" rel="noopener noreferrer" class="blog-share-link linkedin" aria-label="LinkedIn"><i class="fab fa-linkedin-in"></i></a>
|
||||
<a href="https://api.whatsapp.com/send?text={{LINK}}" target="_blank" rel="noopener noreferrer" class="blog-share-link whatsapp" aria-label="WhatsApp"><i class="fab fa-whatsapp"></i></a>
|
||||
<a href="https://t.me/share/url?url={{LINK}}" target="_blank" rel="noopener noreferrer" class="blog-share-link telegram" aria-label="Telegram"><i class="fab fa-telegram-plane"></i></a>
|
||||
<a href="https://reddit.com/submit?url={{LINK}}" target="_blank" rel="noopener noreferrer" class="blog-share-link reddit" aria-label="Reddit"><i class="fab fa-reddit-alien"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
@view('Home/right')
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,49 @@
|
||||
<div class="container main pt-5">
|
||||
<nav aria-label="breadcrumb" class="mb-4">
|
||||
<ol class="breadcrumb blog-breadcrumb">
|
||||
<li class="breadcrumb-item"><a href="{{URL::base()}}">{{lang('menu','home')}}</a></li>
|
||||
<li class="breadcrumb-item active">
|
||||
{{contentCategoryRow($id)->name}}
|
||||
</li>
|
||||
</ol>
|
||||
</nav>
|
||||
<div class="row">
|
||||
<div class="col-9">
|
||||
@foreach (blogCategory($id)->result() as $key)
|
||||
<div class="blog-post">
|
||||
<div class="glass-card p-3" onclick="window.location='{{URL::base()}}content/{{$key->id}}-{{$key->title_seo}}.html'">
|
||||
<div class="row g-0">
|
||||
<div class="col-lg-4">
|
||||
<a href="{{URL::base()}}content/{{$key->id}}-{{$key->title_seo}}.html" class="d-block w-100 h-100">
|
||||
<img src="{{ content_image($key->content) }}" alt="{{$key->title}}" class="img-fluid rounded-3">
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-lg-8 d-flex">
|
||||
<div class="px-0 px-lg-3 pt-3 pt-lg-0 d-flex flex-column w-100">
|
||||
<h5 class="blog-post-title">
|
||||
<a href="{{URL::base()}}content/{{$key->id}}-{{$key->title_seo}}.html">
|
||||
{{$key->title}}
|
||||
</a>
|
||||
</h5>
|
||||
<div class="blog-post-excerpt">
|
||||
{{kelimebol($key->content,200)}}
|
||||
</div>
|
||||
<div class="blog-post-meta">
|
||||
<i class="fas fa-user-edit"></i>
|
||||
<span>{{editor($key->editor)}}</span>
|
||||
<span class="mx-1">|</span>
|
||||
<i class="fas fa-calendar-alt"></i>
|
||||
<span>{{tcevir($key->create_date)}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
<div class="col-3">
|
||||
@view('Home/right')
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,50 @@
|
||||
<div class="container main pt-5">
|
||||
<div class="row">
|
||||
<div class="col-9">
|
||||
@foreach (content_list()->result() as $key)
|
||||
<div class="blog-post">
|
||||
<div class="glass-card p-3" onclick="window.location='{{URL::base()}}content/{{$key->id}}-{{$key->title_seo}}.html'">
|
||||
<div class="row g-0">
|
||||
<div class="col-md-4">
|
||||
<a href="{{URL::base()}}content/{{$key->id}}-{{$key->title_seo}}.html" class="d-block w-100 h-100">
|
||||
<img src="{{ content_image($key->content) }}" alt="{{$key->title}}" class="img-fluid rounded-3">
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-md-8 d-flex">
|
||||
<div class="px-0 px-md-3 pt-3 pt-md-0 d-flex flex-column w-100">
|
||||
<h5 class="blog-post-title">
|
||||
<a href="{{URL::base()}}content/{{$key->id}}-{{$key->title_seo}}.html">
|
||||
{{$key->title}}
|
||||
</a>
|
||||
</h5>
|
||||
<div class="blog-post-excerpt">
|
||||
{{kelimebol($key->content,200)}}
|
||||
</div>
|
||||
<div class="blog-post-meta">
|
||||
<i class="fas fa-user-edit"></i>
|
||||
<span>{{editor($key->editor)}}</span>
|
||||
<span class="mx-1">|</span>
|
||||
<i class="fas fa-calendar-alt"></i>
|
||||
<span>{{tcevir($key->create_date)}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
<div class="col-3">
|
||||
@view('Home/right')
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-4 d-flex justify-content-center">
|
||||
{{content_list()->pagination(NULL,
|
||||
[
|
||||
'style' =>
|
||||
[
|
||||
'current' => 'color:var(--primary)'
|
||||
]
|
||||
]);}}
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,23 @@
|
||||
<div class="glass-card p-3 mb-3">
|
||||
<h5 class="d-flex align-items-center mb-3 blog-categories-heading">
|
||||
<i class="fas fa-folder-tree me-2"></i> Kategoriler
|
||||
</h5>
|
||||
<div class="list-group list-group-flush blog-categories-list">
|
||||
@foreach (content_category() as $key)
|
||||
<div class="list-group-item p-0">
|
||||
<a href="{{URL::base()}}category/{{$key->id}}-{{$key->name_seo}}"
|
||||
class="blog-category-link">
|
||||
<i class="fas fa-tag"></i>
|
||||
<span>{{$key->name}}</span>
|
||||
<span class="badge rounded-pill blog-category-badge">0</span>
|
||||
</a>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
<div class="glass-card p-3 text-center">
|
||||
<a href="https://www.turhost.com/sunucu/bulut-sunucu" target="_blank" class="d-block">
|
||||
<img src="{{URL::base()}}img/sponsor/cloud-server-turhost-banner-350x250px.png" alt="cloud server turhost banner" class="img-fluid rounded-3">
|
||||
</a>
|
||||
<p class="small mt-2 mb-0 sponsor-label">Sponsor</p>
|
||||
</div>
|
||||
@@ -0,0 +1,14 @@
|
||||
<?php
|
||||
#----------------------------------------------------------------------
|
||||
# This file automatically created and updated
|
||||
#----------------------------------------------------------------------
|
||||
$classMap['classes']['project\commands\db_backups'] = 'Projects/Frontend/Commands/Db_backups.php';
|
||||
$classMap['classes']['project\controllers\home'] = 'Projects/Blog/Controllers/Home.php';
|
||||
$classMap['classes']['project\controllers\initialize'] = 'Projects/Blog/Controllers/Initialize.php';
|
||||
$classMap['namespaces']['project\commands\db_backups'] = 'db_backups';
|
||||
$classMap['namespaces']['project\controllers\home'] = 'home';
|
||||
$classMap['namespaces']['project\controllers\initialize'] = 'initialize';
|
||||
$classMap['classes']['project\controllers\content'] = 'Projects/Blog/Controllers/Content.php';
|
||||
$classMap['namespaces']['project\controllers\content'] = 'content';
|
||||
$classMap['classes']['project\controllers\category'] = 'Projects/Blog/Controllers/Category.php';
|
||||
$classMap['namespaces']['project\controllers\category'] = 'category';
|
||||
@@ -0,0 +1,31 @@
|
||||
<?php return
|
||||
[
|
||||
'language' => 'tr',
|
||||
'timezone' => 'Europe/Istanbul',
|
||||
'locale' =>
|
||||
[
|
||||
'charset' => 'en_US.UTF-8',
|
||||
'language' => 'english',
|
||||
],
|
||||
'mode' => 'development',
|
||||
'key' => ZN\In::secretProjectKey('!E;gk86H(-J>F6mq3b_3=h*'),
|
||||
'benchmark' => false,
|
||||
'log' =>
|
||||
[
|
||||
'createFile' => false,
|
||||
'fileTime' => '30 day'
|
||||
],
|
||||
'headers' =>
|
||||
[
|
||||
'content-type: text/html; charset=utf-8'
|
||||
],
|
||||
'errorReporting' => E_ALL,
|
||||
'escapeErrors' => [],
|
||||
'exitErrors' => [0, 2],
|
||||
'restoration' =>
|
||||
[
|
||||
'machinesIP' => ['127.0.0.1'],
|
||||
'pages' => [],
|
||||
'routePage' => ''
|
||||
]
|
||||
];
|
||||
@@ -0,0 +1,21 @@
|
||||
<?php return
|
||||
[
|
||||
'openController' => 'Bugs',
|
||||
'openFunction' => 'main',
|
||||
'show404' => 'show404',
|
||||
'requestMethods' =>
|
||||
[
|
||||
'page' => '',
|
||||
'disallowMethods' => [],
|
||||
'allowMethods' => []
|
||||
],
|
||||
'patternType' => 'classic',
|
||||
'changeUri' => [
|
||||
'new' => 'Bugs/new',
|
||||
'edit/(.*)' => 'Bugs/edit/$1',
|
||||
'detail/(.*)' => 'Bugs/detail/$1',
|
||||
'search' => 'Bugs/search',
|
||||
'help' => 'Bugs/help',
|
||||
'delete/(.*)' => 'Bugs/delete/$1',
|
||||
]
|
||||
];
|
||||
@@ -0,0 +1,13 @@
|
||||
<?php return
|
||||
[
|
||||
'constructors' => ['Initialize'],
|
||||
'destructors' => [],
|
||||
'extractViewData' => false,
|
||||
'ajaxCodeContinue' => false,
|
||||
'viewNameType' => 'directory',
|
||||
'autoload' =>
|
||||
[
|
||||
'status' => true,
|
||||
'recursive' => false
|
||||
]
|
||||
];
|
||||
@@ -0,0 +1,79 @@
|
||||
<?php namespace Project\Controllers;
|
||||
use Method, URI, DB, Session, Cookie;
|
||||
|
||||
class Bugs extends Controller{
|
||||
|
||||
function main(){
|
||||
/*
|
||||
Masterpage::meta([
|
||||
'name:title' => settings('title'),
|
||||
'name:description' => contentRow($id)->keywords,
|
||||
'name:keywords' => contentRow($id)->label,
|
||||
]);
|
||||
*/
|
||||
Cookie::insert('returnlink', '');
|
||||
Masterpage::meta([
|
||||
'name:description' => "Pisilinux istek ve hata kayıtlarının toplandığı alandır",
|
||||
'name:keywords' => "Bugs, hata, istek",
|
||||
|
||||
]);
|
||||
}
|
||||
|
||||
function new(){
|
||||
if (Session::select('userid') =='') {
|
||||
redirect('bugs');
|
||||
}
|
||||
if (Method::post()) {$this->bugs_model->new(Method::post());}
|
||||
}
|
||||
|
||||
function edit(){
|
||||
$id = Uri::get('edit');
|
||||
$userid = Session::select('userid');
|
||||
|
||||
if (bugsRow($id)->userid == $userid OR session::select('yetki')=='1') {
|
||||
|
||||
if (Method::post()) {$this->bugs_model->edit(Method::post());}
|
||||
View::id($id)->control('1');
|
||||
}else{
|
||||
view::control('0');
|
||||
//echo "<h1>bu içeriği düzenlemeye yetkili değilsiniz.</h1>";
|
||||
}
|
||||
}
|
||||
|
||||
function search(){
|
||||
}
|
||||
|
||||
function detail(){
|
||||
$id = Uri::get('detail');
|
||||
if (Method::post()) {$this->bugs_model->insert(Method::post());}
|
||||
View::id($id);
|
||||
}
|
||||
|
||||
|
||||
function help(){
|
||||
import::view(THEMA_NAME.'bugs/help');
|
||||
}
|
||||
|
||||
function bugsClose(){
|
||||
$id = Method::post('id');
|
||||
$status = Method::post('status');
|
||||
|
||||
DB::where('id',$id)->update('bugs',[
|
||||
'status' => $status
|
||||
]);
|
||||
|
||||
echo 1;
|
||||
}
|
||||
|
||||
|
||||
function delete($id){
|
||||
$id = Uri::get('delete');
|
||||
$par = explode('&', $id);
|
||||
$id = $par[0];
|
||||
$parentId = $par[1];
|
||||
DB::where('id', $id)->delete('bugs');
|
||||
redirect('bugs/detail/' . $parentId);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
<?php
|
||||
namespace Project\Controllers;
|
||||
|
||||
class Initialize extends Controller
|
||||
{
|
||||
public function main()
|
||||
{
|
||||
Theme::active('pisiV4/');
|
||||
|
||||
Masterpage::headPage('Assets/head')
|
||||
->bodyPage('Assets/body')
|
||||
->container(true);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
<div class="container py-4">
|
||||
<div class="glass-card p-4">
|
||||
<h4 class="mb-4" style="color:var(--text-main)">Pisi Linux Hata Kaydı</h4>
|
||||
<form method="POST">
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<div class="mb-3">
|
||||
<label class="bugs-label">Görev Türü</label>
|
||||
<select name="tasktype" class="bugs-input">
|
||||
<option value="">Hata Raporu</option>
|
||||
<option value="">Özellik Talebi</option>
|
||||
<option value="">Destek Talebi</option>
|
||||
<option value="">Genel</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="bugs-label">Kategori</label>
|
||||
<select name="category" class="bugs-input">
|
||||
<option value="">Paketler: Main</option>
|
||||
<option value="">Paketler: Core</option>
|
||||
<option value="">Paketler: Contrib</option>
|
||||
<option value="">Paketler: pisilife-2</option>
|
||||
<option value="">Çekirdek</option>
|
||||
<option value="">Web Sitesi</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="bugs-label">Durum</label>
|
||||
<select name="Status" class="bugs-input">
|
||||
<option value="">Onaylanmamış</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="bugs-label">Önem</label>
|
||||
<select name="severity" class="bugs-input">
|
||||
<option value="">Kritik</option>
|
||||
<option value="">Yüksek</option>
|
||||
<option value="">Orta</option>
|
||||
<option value="">Düşük</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-8" style="border-left:1px solid var(--glass-border);">
|
||||
<div class="mb-3">
|
||||
<label class="bugs-label">Özet</label>
|
||||
<input type="text" class="bugs-input">
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label class="bugs-label">Detay</label>
|
||||
<textarea name="detail" class="bugs-input" rows="8">Detay:
|
||||
|
||||
İlave Bilgi:
|
||||
* Paket Versiyonu(lar)
|
||||
* Ayarlar ya da log dosyaları vesaire.
|
||||
|
||||
Hata oluşurken yapılan adımlar:
|
||||
</textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button type="submit" class="btn-modern btn-modern-primary">
|
||||
<i class="fa fa-save me-1"></i> Kaydet
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,94 @@
|
||||
@if(isset(bugsRow($id)->title))
|
||||
<div class="container main py-4">
|
||||
<div class="post-card">
|
||||
<div class="bugs-detail-header">
|
||||
<h5 class="mb-0">{{bugsRow($id)->title}}</h5>
|
||||
<div class="bugs-detail-meta">
|
||||
<span>{{tcevir(bugsRow($id)->createdate)}}</span>
|
||||
<span class="mx-1">·</span>
|
||||
<span class="fw-semibold">{{username(bugsRow($id)->userid)}}</span>
|
||||
<span class="mx-1">·</span>
|
||||
{{status(bugsRow($id)->status)}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="bugs-detail-body">
|
||||
{{bugsRow($id)->details}}
|
||||
</div>
|
||||
|
||||
@if (session::select('userid') == bugsRow($id)->userid OR session::select('yetki')=='1' && bugsRow($id)->status == '1')
|
||||
<div class="bugs-detail-actions">
|
||||
<a href="{{URL::base('/edit/'.$id)}}" class="btn-modern btn-modern-secondary" style="padding:6px 16px;font-size:0.85rem;">
|
||||
<i class="fa fa-edit me-1"></i>{{lang('general','edit')}}
|
||||
</a>
|
||||
@if(session::select('yetki')== '1')
|
||||
<button class="bugs-action-btn close-btn bugsClose" data-id="{{$id}}" data-status="0">
|
||||
<i class="fa fa-times me-1"></i>Konuyu Kapat
|
||||
</button>
|
||||
<button class="bugs-action-btn resolve-btn bugsClose" data-id="{{$id}}" data-status="4">
|
||||
<i class="fa fa-check me-1"></i>Konu Çözüldü
|
||||
</button>
|
||||
@endif
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
@foreach (bugsResult($id) as $index => $key)
|
||||
<div class="post-card mt-3">
|
||||
<div class="bugs-reply-header">
|
||||
<span>
|
||||
<span class="fw-semibold">{{username($key->userid)}}</span>
|
||||
<span class="mx-2 bugs-sep">|</span>
|
||||
<span class="small">{{tcevir($key->createdate)}}</span>
|
||||
</span>
|
||||
<span class="small bugs-reply-num">#{{$index + 1}}</span>
|
||||
</div>
|
||||
<div class="bugs-detail-body">
|
||||
{{$key->details}}
|
||||
</div>
|
||||
@if (session::select('userid') == $key->userid OR session::select('yetki')=='1' AND bugsRow($id)->status == '1')
|
||||
<div class="bugs-detail-actions">
|
||||
<a href="{{URL::base('/edit/'.$key->id)}}" class="btn-modern btn-modern-secondary" style="padding:4px 12px;font-size:0.8rem;">
|
||||
<i class="fa fa-edit me-1"></i>{{lang('general','edit')}}
|
||||
</a>
|
||||
<a href="{{URL::base('/delete/'.$key->id.'&'.$id)}}" class="bugs-action-btn delete-btn"
|
||||
onclick="return confirm('Bu cevabı silmek istediğinizden emin misiniz?')">
|
||||
<i class="fa fa-trash me-1"></i>{{lang('general','delete')}}
|
||||
</a>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
@endforeach
|
||||
|
||||
<div class="post-card mt-4">
|
||||
<div class="bugs-reply-header">
|
||||
<h5 class="mb-0">Cevap Yaz</h5>
|
||||
</div>
|
||||
<div class="p-3">
|
||||
@if (session::select('userid') && bugsRow($id)->status == '1')
|
||||
@view('Assets/editor')
|
||||
<form action="" method="post">
|
||||
<div class="mb-3">
|
||||
<textarea name="bugs_post" id="editor" class="bugs-textarea" rows="6"></textarea>
|
||||
</div>
|
||||
<input type="hidden" name="post_id" value="{{$id}}">
|
||||
<button type="submit" class="btn-modern btn-modern-primary" style="padding:8px 20px;font-size:0.85rem;">
|
||||
<i class="fas fa-paper-plane me-2"></i>{{lang('forum','Submit_Answer')}}
|
||||
</button>
|
||||
</form>
|
||||
@elseif(!session::select('userid'))
|
||||
<a href="https://members.pisilinux.og" class="btn-modern btn-modern-primary" style="padding:8px 20px;font-size:0.85rem;">
|
||||
<i class="fas fa-sign-in-alt me-2"></i>{{lang('forum', 'Sign_up_or_log_in_to_reply')}}
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@else
|
||||
<div class="container py-5">
|
||||
<div class="glass-card p-5 text-center">
|
||||
<i class="fa fa-exclamation-triangle fa-3x mb-3" style="color:var(--text-muted)"></i>
|
||||
<h4 class="text-muted">Hata! Bir sorun ile karşılaştık.</h4>
|
||||
<p class="text-muted">Konu Bulunamadı.</p>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
@@ -0,0 +1,49 @@
|
||||
@view('Assets/editor')
|
||||
<div class="container py-4">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-lg-8">
|
||||
<div class="glass-card p-4">
|
||||
@if($control != 0)
|
||||
<h4 class="mb-4">{{lang('general','edit')}}</h4>
|
||||
<form action="" method="post" id="bugsnew">
|
||||
<div class="mb-3">
|
||||
<label class="bugs-label">*Başlık</label>
|
||||
<input type="text" class="bugs-input" name="title" value="{{bugsRow($id)->title}}">
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="bugs-label">*Kayıt Türü</label>
|
||||
<select name="tasktype" id="task" class="bugs-input">
|
||||
<option value="">Seçiniz.</option>
|
||||
@foreach(taskType() as $key)
|
||||
<option value="{{$key->id}}"{{selected($key->id,bugsRow($id)->tasktype)}}>{{$key->tasktype}}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="mb-3" id="sistem1" style="display:none;">
|
||||
<label class="bugs-label">Sistem Bilgileriniz</label>
|
||||
<textarea name="system" class="bugs-input" rows="8" id="system">{{bugsRow($id)->system}}</textarea>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="bugs-label">*Detaylar</label>
|
||||
<span class="detayUyari text-danger small"></span>
|
||||
<textarea name="details" id="editor" class="bugs-input details" rows="10">{{bugsRow($id)->details}}</textarea>
|
||||
</div>
|
||||
|
||||
<input type="hidden" name="id" value="{{$id}}">
|
||||
<button type="submit" class="btn-modern btn-modern-primary" id="formsubmit">
|
||||
<i class="fa fa-save me-1"></i> Kaydet
|
||||
</button>
|
||||
</form>
|
||||
@else
|
||||
<div class="text-center py-4">
|
||||
<i class="fa fa-lock fa-3x mb-3" style="color:var(--text-muted)"></i>
|
||||
<h4 class="text-muted">Bu içeriği düzenlemeye yetkili değilsiniz.</h4>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,53 @@
|
||||
<div class="container py-4">
|
||||
<?php if (Session::select('login')){ ?>
|
||||
<div class="text-end mb-4">
|
||||
<button id="gorev" class="btn-modern btn-modern-primary">+ Hata kaydı ekle</button>
|
||||
</div>
|
||||
<?php }else{ ?>
|
||||
<div class="row g-4">
|
||||
<div class="col-md-3">
|
||||
<div class="glass-card p-4 text-center h-100">
|
||||
<div class="feature-icon mx-auto mb-3" style="width:56px;height:56px;font-size:1.3rem;">
|
||||
<i class="fa fa-bug"></i>
|
||||
</div>
|
||||
<h5 style="color:var(--text-main)">YENİ HATA KAYIT</h5>
|
||||
<p class="small" style="color:var(--text-muted)">Üye girişi yaptıktan sonra Pisi Linux sistemi ile ilgili hata kaydını bırakabilirsiniz...</p>
|
||||
<a href="{{URL::base('/new')}}" class="btn-modern btn-modern-primary w-100 justify-content-center mt-3" style="padding:8px;">>></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
<div class="glass-card p-4 text-center h-100">
|
||||
<div class="feature-icon mx-auto mb-3" style="width:56px;height:56px;font-size:1.3rem;">
|
||||
<i class="fa fa-search"></i>
|
||||
</div>
|
||||
<h5 style="color:var(--text-main)">HATA ARAMA</h5>
|
||||
<p class="small" style="color:var(--text-muted)">Hali hazırda bırakılmış olan hata kayıtlarında arama yapabilir, çözümünü öğrenebilirsiniz.</p>
|
||||
<a href="{{URL::base('/search')}}" class="btn-modern btn-modern-primary w-100 justify-content-center mt-3" style="padding:8px;">>></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
<div class="glass-card p-4 text-center h-100">
|
||||
<div class="feature-icon mx-auto mb-3" style="width:56px;height:56px;font-size:1.3rem;">
|
||||
<i class="fa fa-user-plus"></i>
|
||||
</div>
|
||||
<h5 style="color:var(--text-main)">ÜYE OL</h5>
|
||||
<p class="small" style="color:var(--text-muted)">Pisi Linux sitesine üye olarak hata kaydı girebilir yada yardımcı olabilirsiniz.</p>
|
||||
<a href="/member/register/" class="btn-modern btn-modern-primary w-100 justify-content-center mt-3" style="padding:8px;">>></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
<div class="glass-card p-4 text-center h-100">
|
||||
<div class="feature-icon mx-auto mb-3" style="width:56px;height:56px;font-size:1.3rem;">
|
||||
<i class="fa fa-life-ring"></i>
|
||||
</div>
|
||||
<h5 style="color:var(--text-main)">YARDIM</h5>
|
||||
<p class="small" style="color:var(--text-muted)">Hata kaydı sayfasının nasıl kullanılacağını öğrenebilirsiniz.</p>
|
||||
<a href="{{URL::base('/help')}}" class="btn-modern btn-modern-primary w-100 justify-content-center mt-3" style="padding:8px;">>></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php } ?>
|
||||
</div>
|
||||
@@ -0,0 +1,39 @@
|
||||
<div class="container bugs py-4">
|
||||
<div class="d-flex justify-content-between align-items-center mb-4 flex-wrap gap-2">
|
||||
<h4 class="mb-0">{{lang('bugs','bugs')}}</h4>
|
||||
@if(Session::select('userid'))
|
||||
<a href="{{URL::base('/new')}}" class="btn-modern btn-modern-primary" style="padding:8px 20px;font-size:0.85rem;">
|
||||
<i class="fa fa-plus me-1"></i>{{lang('bugs','new_bugs')}}
|
||||
</a>
|
||||
@else
|
||||
<a href="https://members.pisilinux.og" class="btn-modern btn-modern-secondary" style="padding:8px 20px;font-size:0.85rem;">
|
||||
{{lang('forum','login_to_open_topic')}}
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="glass-card p-0 overflow-hidden">
|
||||
<div class="table-responsive">
|
||||
<table class="bugs-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Tarih</th>
|
||||
<th>{{lang('bugs','title')}}</th>
|
||||
<th>{{lang('bugs','tasktype')}}</th>
|
||||
<th>{{lang('bugs','status')}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach (taskTypeList() as $key)
|
||||
<tr>
|
||||
<td class="text-center">{{tcevir($key->createdate)}}</td>
|
||||
<td><a href="{{URL::base('/detail/'.$key->id.'/'.$key->titleSeo)}}">{{$key->title}}</a></td>
|
||||
<td class="text-center">{{taskTypeName($key->tasktype)}}</td>
|
||||
<td class="text-center">{{status($key->status)}}</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,42 @@
|
||||
@view('Assets/editor')
|
||||
<div class="container py-4">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-lg-8">
|
||||
<div class="glass-card p-4">
|
||||
<h4 class="mb-4">{{lang('bugs','new_bugs')}}</h4>
|
||||
|
||||
<form action="" method="post" id="bugsnew">
|
||||
<div class="mb-3">
|
||||
<label class="bugs-label">*{{lang('bugs','title')}}</label>
|
||||
<input type="text" class="bugs-input" name="title">
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="bugs-label">*{{lang('bugs','tasktype')}}</label>
|
||||
<select name="tasktype" id="task" class="bugs-input">
|
||||
<option value="">{{lang('bugs','choose')}}...</option>
|
||||
@foreach(taskType() as $key)
|
||||
<option value="{{$key->id}}">{{lang('bugs',$key->tasktype)}}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="mb-3" id="sistem1" style="display:none;">
|
||||
<label class="bugs-label">{{lang('bugs','your_system_information')}}</label>
|
||||
<textarea name="system" class="bugs-input" rows="8" id="system"></textarea>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="bugs-label">*{{lang('bugs','details')}}</label>
|
||||
<span class="detayUyari text-danger small"></span>
|
||||
<textarea name="details" id="editor" class="bugs-input details" rows="10"></textarea>
|
||||
</div>
|
||||
|
||||
<button type="submit" class="btn-modern btn-modern-primary" id="formsubmit">
|
||||
<i class="fa fa-save me-1"></i> {{lang('bugs','save')}}
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,38 @@
|
||||
<div class="container py-4">
|
||||
<div class="d-flex justify-content-between align-items-center mb-4 flex-wrap gap-2">
|
||||
<h4 class="mb-0">Arama Sonuçları</h4>
|
||||
<a href="{{URL::base('/new')}}" class="btn-modern btn-modern-primary" style="padding:8px 20px;font-size:0.85rem;">
|
||||
<i class="fa fa-plus me-1"></i>Yeni Kayıt Ekle
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="glass-card p-0 overflow-hidden">
|
||||
<div class="bugs-search-header">
|
||||
<h5 class="mb-0">Son Kayıtlar</h5>
|
||||
</div>
|
||||
<div class="table-responsive">
|
||||
<table class="bugs-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>Başlık</th>
|
||||
<th>Açıklama</th>
|
||||
<th>Ekleyen</th>
|
||||
<th>Görev Türü</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach (bugs() as $key)
|
||||
<tr>
|
||||
<td>{{$key->id}}</td>
|
||||
<td><a href="{{URL::base('/detail/'.$key->id.'/'.$key->titleSeo)}}">{{$key->title}}</a></td>
|
||||
<td>{{kelimebol($key->details,18)}}</td>
|
||||
<td>{{username($key->userid)}}</td>
|
||||
<td>{{taskTypeName($key->tasktype)}}</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,31 @@
|
||||
<?php return
|
||||
[
|
||||
'language' => 'tr',
|
||||
'timezone' => 'Europe/Istanbul',
|
||||
'locale' =>
|
||||
[
|
||||
'charset' => 'en_US.UTF-8',
|
||||
'language' => 'english',
|
||||
],
|
||||
'mode' => 'development',
|
||||
'key' => ZN\In::secretProjectKey('!E;gk86H(-J>F6mq3b_3=h*'),
|
||||
'benchmark' => false,
|
||||
'log' =>
|
||||
[
|
||||
'createFile' => false,
|
||||
'fileTime' => '30 day'
|
||||
],
|
||||
'headers' =>
|
||||
[
|
||||
'content-type: text/html; charset=utf-8'
|
||||
],
|
||||
'errorReporting' => E_ALL,
|
||||
'escapeErrors' => [],
|
||||
'exitErrors' => [0, 2],
|
||||
'restoration' =>
|
||||
[
|
||||
'machinesIP' => ['127.0.0.1'],
|
||||
'pages' => [],
|
||||
'routePage' => ''
|
||||
]
|
||||
];
|
||||
@@ -0,0 +1,16 @@
|
||||
<?php return
|
||||
[
|
||||
'openController' => 'Download',
|
||||
'openFunction' => 'main',
|
||||
'show404' => 'show404',
|
||||
'requestMethods' =>
|
||||
[
|
||||
'page' => '',
|
||||
'disallowMethods' => [],
|
||||
'allowMethods' => []
|
||||
],
|
||||
'patternType' => 'classic',
|
||||
'changeUri' => [
|
||||
'counter' => 'Download/counter',
|
||||
]
|
||||
];
|
||||
@@ -0,0 +1,13 @@
|
||||
<?php return
|
||||
[
|
||||
'constructors' => ['Initialize'],
|
||||
'destructors' => [],
|
||||
'extractViewData' => false,
|
||||
'ajaxCodeContinue' => false,
|
||||
'viewNameType' => 'directory',
|
||||
'autoload' =>
|
||||
[
|
||||
'status' => true,
|
||||
'recursive' => false
|
||||
]
|
||||
];
|
||||
@@ -0,0 +1,27 @@
|
||||
<?php namespace Project\Controllers;
|
||||
use DB,Import,URL,Cookie,Session,ML,Method;
|
||||
|
||||
/*
|
||||
* Created By: Erkan IŞIK
|
||||
* Created Date: 2017-12-07
|
||||
* Update Date: 2017-12-07
|
||||
*/
|
||||
class Download extends Controller{
|
||||
|
||||
function main(){
|
||||
//$data = DB::orderBy('id','desc')->get('download')->result();
|
||||
//View::data($data)->get('main');
|
||||
define('TITLE', 'Download');
|
||||
}
|
||||
function counter(){
|
||||
$id = method::post('id');
|
||||
|
||||
$count = DB::whereId($id)->downlinkRowCount();
|
||||
|
||||
DB::where('id',$id)->update('downlink', [
|
||||
'count' => $count+1,
|
||||
]);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
<?php
|
||||
namespace Project\Controllers;
|
||||
|
||||
class Initialize extends Controller
|
||||
{
|
||||
public function main()
|
||||
{
|
||||
Theme::active('pisiV4/');
|
||||
|
||||
Masterpage::headPage('Assets/head')
|
||||
->bodyPage('Assets/body')
|
||||
->container(true);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
<div class="container main pt-5">
|
||||
@foreach (downloadLast() as $key )
|
||||
{[ $sum = explode(',',$key->sumx); ]}
|
||||
<div class="glass-card p-4 mb-5">
|
||||
<h5 class="download-title">{{$key->name}}</h5>
|
||||
|
||||
<div class="download-desc">{{$key->content}}</div>
|
||||
|
||||
<div class="hash-box">
|
||||
<div class="hash-row">
|
||||
<span class="hash-label">MD5SUM</span>
|
||||
<code class="hash-value">{{$sum['0']}}</code>
|
||||
</div>
|
||||
<div class="hash-row">
|
||||
<span class="hash-label">SHA1SUM</span>
|
||||
<code class="hash-value">{{$sum['1']}}</code>
|
||||
</div>
|
||||
<div class="hash-row">
|
||||
<span class="hash-label">SHA256</span>
|
||||
<code class="hash-value">{{$sum['2']}}</code>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="table-responsive">
|
||||
<table class="download-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{lang('download','country')}}</th>
|
||||
<th>{{lang('download','link')}}</th>
|
||||
<th class="text-end">{{lang('download','action')}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach(downloadUrl($key->id) as $key1)
|
||||
<tr>
|
||||
<td class="country-cell">{{countriesName($key1->country)}}</td>
|
||||
<td class="link-cell">
|
||||
<span class="link-text">{{$key1->link}}</span>
|
||||
</td>
|
||||
<td class="text-end">
|
||||
<a href="{{$key1->link}}" data-id="{{$key1->id}}" class="btn-download" download>
|
||||
<i class="fas fa-download me-1"></i>{{lang('download','download')}}
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
@@ -0,0 +1,31 @@
|
||||
<?php return
|
||||
[
|
||||
'language' => 'tr',
|
||||
'timezone' => 'Europe/Istanbul',
|
||||
'locale' =>
|
||||
[
|
||||
'charset' => 'en_US.UTF-8',
|
||||
'language' => 'english',
|
||||
],
|
||||
'mode' => 'development',
|
||||
'key' => ZN\In::secretProjectKey('!E;gk86H(-J>F6mq3b_3=h*'),
|
||||
'benchmark' => false,
|
||||
'log' =>
|
||||
[
|
||||
'createFile' => false,
|
||||
'fileTime' => '30 day'
|
||||
],
|
||||
'headers' =>
|
||||
[
|
||||
'content-type: text/html; charset=utf-8'
|
||||
],
|
||||
'errorReporting' => E_ALL,
|
||||
'escapeErrors' => [],
|
||||
'exitErrors' => [0, 2],
|
||||
'restoration' =>
|
||||
[
|
||||
'machinesIP' => ['127.0.0.1'],
|
||||
'pages' => [],
|
||||
'routePage' => ''
|
||||
]
|
||||
];
|
||||
@@ -0,0 +1,21 @@
|
||||
<?php return
|
||||
[
|
||||
'openController' => 'Forum',
|
||||
'openFunction' => 'main',
|
||||
'show404' => 'show404',
|
||||
'requestMethods' =>
|
||||
[
|
||||
'page' => '',
|
||||
'disallowMethods' => [],
|
||||
'allowMethods' => []
|
||||
],
|
||||
'patternType' => 'classic',
|
||||
'changeUri' => [
|
||||
'category/(.*)' => 'Forum/category/$1',
|
||||
'newsubject' => 'Forum/newsubject',
|
||||
'newthread/(.*)' => 'Forum/newthread/$1',
|
||||
'subject/(.*)' => 'Forum/subject/$1',
|
||||
'konu_duzenle/(.*)' => 'Forum/konu_duzenle/$1',
|
||||
'delete/(.*)' => 'Forum/delete/$1',
|
||||
]
|
||||
];
|
||||
@@ -0,0 +1,13 @@
|
||||
<?php return
|
||||
[
|
||||
'constructors' => ['Initialize'],
|
||||
'destructors' => [],
|
||||
'extractViewData' => false,
|
||||
'ajaxCodeContinue' => false,
|
||||
'viewNameType' => 'directory',
|
||||
'autoload' =>
|
||||
[
|
||||
'status' => true,
|
||||
'recursive' => false
|
||||
]
|
||||
];
|
||||
@@ -0,0 +1,96 @@
|
||||
<?php namespace Project\Controllers;
|
||||
use DB, Import, URL, Cookie, Session, ML, Method,URI;
|
||||
/*
|
||||
* Created By: Erkan IŞIK
|
||||
* Created Date: 2017-12-05
|
||||
* Update Date: 2018-01-22
|
||||
*/
|
||||
|
||||
class Forum extends Controller{
|
||||
|
||||
|
||||
function main(){
|
||||
Cookie::insert('returnlink', '');
|
||||
}
|
||||
|
||||
|
||||
function category(){
|
||||
$id = URI::get('category');
|
||||
$id_ext = explode('-', $id);
|
||||
$konular = DB::orderBy('id', 'desc')->where('category_id', $id_ext['0'], 'and')->where('content_id', '0')->get('forum')->result();
|
||||
$kategori = $id;
|
||||
|
||||
define('TITLE', ' ' . forum_kategori_adi($id_ext[0])->adi);
|
||||
View::seokat($id)->konular($konular)->kategori($id);
|
||||
}
|
||||
|
||||
function newsubject(){
|
||||
if (USERID) {
|
||||
if (method::post()) {
|
||||
$this->forum_model->konu_kaydet(method::post());
|
||||
rssForumSonKonular();
|
||||
}
|
||||
}else{
|
||||
redirect('member');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* forum yeni konu girişi*/
|
||||
function newthread(){
|
||||
$id = URI::get('newthread');
|
||||
if (Session::select('userid')) {
|
||||
$id_ext = explode('-', $id);
|
||||
if (method::post()) {$this->forum_model->konu_kaydet1(method::post());}
|
||||
View::id($id);
|
||||
}else{
|
||||
redirect('member');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function subject(){
|
||||
$id = URI::get('subject');
|
||||
$id1 = explode('-',$id);
|
||||
$id2 = $id1['0'];
|
||||
|
||||
if (method::post()) {$this->forum_model->cevap(method::post()); }
|
||||
|
||||
$fk = $this->forum_model->forumkonu($id2);
|
||||
|
||||
if (isset($fk->title_seo)) {
|
||||
|
||||
define('TITLE', ' ' . $fk->title_seo);
|
||||
session::insert('return', 'subject/' . $fk->id . '-' . $fk->title_seo);
|
||||
if (!Cookie::select('count')) {
|
||||
$hits = DB::select('view')->where('id', $id2)->get('forum')->value();
|
||||
$hit = $hits + 1;
|
||||
DB::where('id', $id2)->update('forum', ['view' => $hit]);
|
||||
}
|
||||
Cookie::time(60 * 60 * 24)->insert('count',$id2);
|
||||
|
||||
view::fk($fk);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
function konu_duzenle($id){
|
||||
if (method::post()) {$this->forum_model->Update(method::post());}
|
||||
$data['dzn'] = $this->forum_model->edit($id);
|
||||
import::view(THEMA_NAME . 'forum/konu_duzenle', $data);
|
||||
}
|
||||
|
||||
|
||||
|
||||
function delete($id){
|
||||
$forum = DB::where('id', $id)->get('forum')->row();
|
||||
if ($forum->content_id > 0) {
|
||||
$link = '/subject/' . $forum->content_id . '-' . seo(forum_title($forum->content_id)->title);
|
||||
} else {
|
||||
$link = '/';
|
||||
}
|
||||
DB::where('id', $id)->delete('forum');
|
||||
redirect($link);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
<?php namespace Project\Controllers;
|
||||
USE Import,Cookie,URL;
|
||||
class Home extends Controller{
|
||||
|
||||
public function main(){
|
||||
echo 'Forum Home';
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
<?php
|
||||
namespace Project\Controllers;
|
||||
|
||||
class Initialize extends Controller
|
||||
{
|
||||
public function main()
|
||||
{
|
||||
Theme::active('pisiV4/');
|
||||
|
||||
Masterpage::headPage('Assets/head')
|
||||
->bodyPage('Assets/body')
|
||||
->container(true);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
<?php namespace Project\Controllers;
|
||||
USE Import,Cookie,URI,Method,Session, DB;
|
||||
class Subject extends Controller{
|
||||
|
||||
function main(){
|
||||
$id = URI::get('subject');
|
||||
$id1 = explode('-',$id);
|
||||
$id2 = $id1['0'];
|
||||
|
||||
if (method::post()) {$this->forum_model->cevap(method::post()); }
|
||||
|
||||
$fk = $this->forum_model->forumkonu($id2);
|
||||
|
||||
if (isset($fk->title_seo)) {
|
||||
|
||||
define('TITLE', ' ' . $fk->title_seo);
|
||||
session::insert('return', 'forum/subject/' . $fk->id . '-' . $fk->title_seo);
|
||||
if (!Cookie::select('count')) {
|
||||
$hits = DB::select('view')->where('id', $id2)->get('forum')->value();
|
||||
$hit = $hits + 1;
|
||||
DB::where('id', $id2)->update('forum', ['view' => $hit]);
|
||||
}
|
||||
Cookie::time(60 * 60 * 24)->insert('count',$id2);
|
||||
|
||||
view::fk($fk);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,149 @@
|
||||
<?php
|
||||
|
||||
class Forum_model extends Model{
|
||||
|
||||
function kategori($par = '0'){
|
||||
return DB::where('kat_ustid',$par)->get('forum_kat')->result();
|
||||
}
|
||||
|
||||
// soru/cevap gösterimdeki konu gönderimi
|
||||
function konu_kaydet($post){
|
||||
$userid = Session::select('userid');
|
||||
$title = trim(linkcleaner($post['title']));
|
||||
|
||||
if($userid > 0){
|
||||
DB::insert('forum',[
|
||||
'category_id' => $post['category_id'],
|
||||
'title' => $title,
|
||||
'title_seo' => seo($title),
|
||||
'content' => $post['content'],
|
||||
'user_id' => $userid,
|
||||
'content_id' => '0',
|
||||
'view' => '0',
|
||||
'message' => '0'
|
||||
|
||||
]);
|
||||
|
||||
if (DB::affectedRows()) {
|
||||
$konu_id = DB::insertID();
|
||||
$url = 'forum/konulist/'.$konu_id;
|
||||
$konu_url = 'forum/subject/'.isset($konu_id).'-'.seo($post['title']);
|
||||
$message = "Mesajın geldiği yer: Forum\nGönderen: ".yazar(Session::select('userid'))."\nBaşlık: ".$post['title']."\nMesaj: ".decode1($post['content'])."\nLink: https://pisilinux.org/forum/subject/".DB::insertID()."-".seo($post['title']);
|
||||
telegram($message);
|
||||
redirect('forum');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// forum gösterimdeki konu gönderimi
|
||||
function konu_kaydet1($post){
|
||||
$title = linkcleaner($post['title']);
|
||||
DB::insert('forum',[
|
||||
'category_id' => $post['category_id'],
|
||||
'title' => $title,
|
||||
'title_seo' => seo($title),
|
||||
'content' => $post['content'],
|
||||
'user_id' => Session::select('userid'),
|
||||
'content_id' => '0',
|
||||
'view' => '0',
|
||||
'message' => '0'
|
||||
|
||||
]);
|
||||
|
||||
if (DB::affectedRows()) {
|
||||
$konu_id = DB::insertID();
|
||||
$url = 'forum/konulist/'.$konu_id;
|
||||
$konu_url = 'forum/subject/'.isset($konu_id).'-'.seo($post['title']);
|
||||
$message = "Mesajın geldiği yer: Forum\nGönderen: ".yazar(Session::select('userid'))."\nBaşlık: ".$post['title']."\nMesaj: ".$post['content']."\nLink: https://pisilinux.org/forum/subject/".DB::insertID()."-".seo($post['title']);
|
||||
$link = "forum/subject/".DB::insertID()."-".seo($post['title'])."'>".$post['title'];
|
||||
telegram($message);
|
||||
//redirect($link);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function forumkonu($post){
|
||||
//$title_seo = explode('.',$post);
|
||||
return DB::where('id',$post)->get('forum')->row();
|
||||
}
|
||||
|
||||
function cevap($post){
|
||||
$fd = DB::where('id', $post['konu_id'])->get('forum')->row();
|
||||
$userid = $fd->user_id;
|
||||
|
||||
DB::insert('forum',[
|
||||
'category_id' => $fd->category_id,
|
||||
'title' => $fd->title,
|
||||
'title_seo' => $fd->title_seo,
|
||||
'content' => $post['konu_cevap'],
|
||||
'user_id' => Session::select('userid'),
|
||||
'content_id' => $post['konu_id'],
|
||||
'view' => '0',
|
||||
'message' => '0'
|
||||
]);
|
||||
|
||||
if (DB::affectedRows()) {
|
||||
|
||||
$konu_id = $post['konu_id'];
|
||||
$konu_url = 'forum/subject/'.$konu_id.'-'.seo(forum_title($konu_id));
|
||||
//$link = "forum/subject/".DB::insertID()."-".seo($post['title'])."'>".$post['title'];
|
||||
$message = "Mesajın geldiği yer: Forum\nGönderen: ".yazar(Session::select('userid'))."\nBaşlık: ".forum_title($konu_id)."\nLink:" .URL::base($konu_url) ;
|
||||
telegram($message);
|
||||
|
||||
|
||||
$notice = 'Yazdığınıza cevap verildi linki aşağıda.</br><a href="/forum/subject/'.$post['konu_id'].'-'.$post['title_seo'].'.html">'.$fd->title.'</a>';
|
||||
$notice1 = 'Forumdaki yazdığınıza konuya cevap verildi. <a href="'.URL::base().'forum/subject/'.$post['konu_id'].'-'.$post['title_seo'].'.html">'.URL::base().'forum/subject/'.$post['konu_id'].'-'.$post['title_seo'].'.html</a>';
|
||||
|
||||
Email::from('info@pisilinux.org', 'Pisi Linux Forum','info@pisilinux.org' )
|
||||
->receiver(userRow($userid)->mail)
|
||||
->subject('Pisi Linux Forum [ '.$fd->title.' ]')
|
||||
->message($notice1)
|
||||
->send();
|
||||
|
||||
DB::insert('messages',[
|
||||
'title' => 'Forumdan mesaj var ['.$fd->title.' ]',
|
||||
'userId' => $fd->user_id,
|
||||
'message' => $notice,
|
||||
|
||||
]);
|
||||
|
||||
|
||||
//redirect('forum/subject/'.$post['konu_id'].'-'.$post['title_seo'].'.html');
|
||||
}else{
|
||||
output(DB::error());
|
||||
}
|
||||
}
|
||||
|
||||
function edit($data){
|
||||
return DB::where('id',$data)->get('forum')->row();
|
||||
}
|
||||
|
||||
function update($post){
|
||||
DB::where('id',$post['content_id'])->update('forum',[
|
||||
'title' => $post['konubaslik'],
|
||||
'title_seo' => seo($post['konubaslik']),
|
||||
'content' => $post['konuicerik'],
|
||||
'user_id' => Session::select('userid'),
|
||||
]);
|
||||
|
||||
if (DB::affectedRows()) {
|
||||
//redirect(baseUrl('forum/konu/'.$post['konuid'].'-'.seo($post['konubaslik'])));
|
||||
}
|
||||
}
|
||||
|
||||
function cat_update($post){
|
||||
DB::where('id',$post['id'])->update('forum_kat',[
|
||||
'adi' => $post['adi'],
|
||||
'adi_seo' => seo($post['adi']),
|
||||
'aciklama' => $post['aciklama'],
|
||||
'kat_ustid' => $post['kat_ustid']
|
||||
]);
|
||||
|
||||
if (DB::affectedRows()) {
|
||||
redirect('forum/category_list');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
@if(!defined('BODY'))
|
||||
@view('Assets/header')
|
||||
|
||||
@endif
|
||||
|
||||
@view
|
||||
|
||||
@if(!defined('BODY'))
|
||||
@view('Assets/footer')
|
||||
@endif
|
||||
@@ -0,0 +1,45 @@
|
||||
<script src="https://cdn.tiny.cloud/1/d6svnnvb45e83intvoi2vqxggihegsrd73eah9unxtrcz5r3/tinymce/5/tinymce.min.js" referrerpolicy="origin"></script>
|
||||
<script type="text/javascript">
|
||||
/* forum */
|
||||
tinymce.init({
|
||||
selector: '#editor',
|
||||
height: 300,
|
||||
menubar: false,
|
||||
toolbar: 'bold italic underline strikethrough | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | image media | emoticons codesample | undo redo',
|
||||
plugins: [
|
||||
'image lists imagetools',
|
||||
'advlist lists image charmap hr anchor pagebreak',
|
||||
'searchreplace wordcount visualchars ',
|
||||
'insertdatetime media nonbreaking table directionality',
|
||||
'emoticons template paste textpattern imagetools toc codesample'
|
||||
],
|
||||
image_advtab: true,
|
||||
language: 'tr_TR',
|
||||
relative_urls: true,
|
||||
remove_script_host: false,
|
||||
urlconverter_callback : 'customURLConverter',
|
||||
});
|
||||
|
||||
/* bugs system */
|
||||
tinymce.init({
|
||||
selector: '#system',
|
||||
height: 300,
|
||||
menubar: false,
|
||||
skin: 'oxide',
|
||||
theme: 'silver',
|
||||
toolbar: 'bold italic underline strikethrough | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image media | forecolor backcolor emoticons codesample | cut copy paste | undo redo',
|
||||
plugins: [
|
||||
'image autolink lists link imagetools',
|
||||
'advlist autolink lists link image charmap hr anchor pagebreak',
|
||||
'searchreplace wordcount visualchars ',
|
||||
'insertdatetime media nonbreaking table directionality',
|
||||
'emoticons template paste textcolor colorpicker textpattern imagetools toc codesample'
|
||||
],
|
||||
image_advtab: true,
|
||||
placeholder: 'Bilgisayarınız hakkında bilgileri buraya ekleyebilirsiniz ( Hata kaydı haricinde burayı doldurmak zorunda değilsiniz )',
|
||||
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
|
||||
<footer class="footer container-fluid">
|
||||
<div class="bg-white">
|
||||
<div class="container border-start border-end border-1 border-secondary-subtle">
|
||||
<h2 class="text-center py-2 sunucu-sponsorlar">SUNUCU SPONSORLARIMIZ</h2>
|
||||
<div class="row py-5">
|
||||
<div class="col-6">
|
||||
<div class="col justify-content-left">
|
||||
<img src="img/FOOTER/turkhos_logo.svg" alt="Sponsor 2" class="sponsor-img">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<div class="col d-flex justify-content-end">
|
||||
<img src="img/FOOTER/makdos_logo.svg" alt="Sponsor 1" class="sponsor-img">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="continer-fluid oduller">
|
||||
<div class="container">
|
||||
<nav class="navbar navbar-expand-lg navbar-light bg-transparent menu_footer">
|
||||
<div class="">
|
||||
<button class="navbar-toggler ms-auto" type="button" data-bs-toggle="collapse" data-bs-target="#mainNavbar" aria-controls="mainNavbar" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="mainNavbar">
|
||||
<ul class="navbar-nav ">
|
||||
@foreach (menu1('6') as $key)
|
||||
<li class="nav-item"><a class="nav-link" href="{{$key->link}}">{{$key->title}}</a></li>
|
||||
@endforeach
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div class="row">
|
||||
<div class="col text-center">
|
||||
<div class="footer-badges d-flex justify-content-center flex-wrap gap-3 mt-3">
|
||||
<img src="img/FOOTER/rozetler-01.svg" alt="Rozet 1" class="badge-img">
|
||||
<img src="img/FOOTER/rozetler-02.svg" alt="Rozet 2" class="badge-img">
|
||||
<img src="img/FOOTER/rozetler-03.svg" alt="Rozet 3" class="badge-img">
|
||||
<img src="img/FOOTER/rozetler-04.svg" alt="Rozet 4" class="badge-img">
|
||||
<img src="img/FOOTER/rozetler-05.svg" alt="Rozet 5" class="badge-img">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="container-fluid copyright">
|
||||
<div class="container">
|
||||
<div class="row py-4">
|
||||
<div class="col text-center">
|
||||
<l>©Copyright 2013 - 2025 Pisi GNU/Linux. Bütün hakları saklıdır. | Pisi GNU/Linux gücünü topluluktan alır. </l> {{LANG}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="js/bootstrap/bootstrap.bundle.min.js"></script>
|
||||
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js" integrity="sha512-v2CJ7UaYy4JwqLDIrZUI/4hqeoQieOmAZNXBeQyjo21dadnwR+8ZaIJVT8EE2iyI61OV8e6M8PP2/4hpQINQ/g==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
|
||||
|
||||
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11.3.4/dist/sweetalert2.all.min.js"></script>
|
||||
<script src="{{URL::base(RESOURCES_DIR.'Themes/pisilinux/js/language/')}}{{LANG}}.js"></script>
|
||||
<script src="js/my.js"></script>
|
||||
@@ -0,0 +1,11 @@
|
||||
|
||||
<link rel="stylesheet" href="css/bootstrap/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="css/main.css">
|
||||
<link rel="stylesheet" href="css/forum.css">
|
||||
<link rel="stylesheet" href="css/mainpage.css">
|
||||
<link rel="stylesheet" href="css/bugs.css">
|
||||
<link rel="stylesheet" href="css/blog.css">
|
||||
<link rel="stylesheet" href="css/wiki.css">
|
||||
<link rel="stylesheet" href="fontawesome/css/all.css">
|
||||
|
||||
|
||||
@@ -0,0 +1,102 @@
|
||||
<div class="container top_menu">
|
||||
<div class="row py-2 align-items-center">
|
||||
<div class="col-6 col-md-6 d-flex justify-content-start">
|
||||
<div class="dropdown">
|
||||
<button class="btn btn-sm btn-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown">
|
||||
<i class="fa fa-globe"></i> {{lang('top_menu','language')}}
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
@foreach(languageList() as $key)
|
||||
<li>
|
||||
<a class="dropdown-item flags" href="#" data-id="{{$key->slug}}">
|
||||
<img src="{{URL::base($key->flag)}}" width="20" class="me-2"> {{$key->language}}
|
||||
</a>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6 col-md-6 d-flex justify-content-end">
|
||||
<div class="social-icons">
|
||||
<a href="https://x.com/pisi_linux" class="me-2" target="_blank">
|
||||
<img class="social" src="img/HEADER/x.svg" alt="Twitter" >
|
||||
</a>
|
||||
<a href="https://www.facebook.com/Pisilinux/" class="me-2" target="_blank">
|
||||
<img class="social" src="img/HEADER/facebook.svg" alt="Facebook" >
|
||||
</a>
|
||||
<a href="https://github.com/pisilinux" class="me-2" target="_blank">
|
||||
<img class="social" src="img/HEADER/github.svg" alt="GitHub" >
|
||||
</a>
|
||||
<a href="https://www.instagram.com/pisilinux_official/" class="me-2" target="_blank">
|
||||
<img src="img/HEADER/instagram.svg" class="social" alt="instagram">
|
||||
</a>
|
||||
<a href="https://www.linkedin.com/company/pisi-gnu-linux" class="me-2" target="_blank">
|
||||
<img src="img/HEADER/linkedin.svg" class="social" alt="linkedin">
|
||||
</a>
|
||||
<a href="https://www.youtube.com/channel/UCLGSGLpxVE-vxzBuebBj3tA" class="me-2" target="_blank">
|
||||
<img src="img/HEADER/youtube.svg" class="social" alt="youtube">
|
||||
</a>
|
||||
<a href="https://t.me/Pisi_GNU_Linux" class="me-2" target="_blank">
|
||||
<img src="img/HEADER/telegram.svg" class="social" alt="telegram">
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="row py-3">
|
||||
<div class="col text-center">
|
||||
<a class="navbar-brand fs-4" href="#"><img src="img/HEADER/pisi_logo_header.svg" alt=""></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<!-- Masaüstü Menü -->
|
||||
<div class="col-12 d-none d-md-block menu">
|
||||
<div class="row">
|
||||
<div class="col-md-6 d-flex justify-content-start">
|
||||
<ul class="nav">
|
||||
<li class="nav-item">
|
||||
<a href="http://pisilinux.og" class="nav-link" >Anasayfa</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a href="http://pisilinux.og/page/hakkimizda" class="nav-link" >Hakkımızda</a>
|
||||
</li>
|
||||
<!-- @foreach (menu('topMenuLeft') as $key)
|
||||
<li class="nav-item">
|
||||
<a href="{{$key->link}}" class="nav-link" >{{$key->title}}</a>
|
||||
</li>
|
||||
@endforeach -->
|
||||
@if(!USERID)
|
||||
<li class="nav-item">
|
||||
<a href="{{URL::base('member')}}" class="nav-link">{{lang('top_menu','login')}}</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a href="{{URL::base('member/register')}}" class="nav-link">{{lang('top_menu','register')}}</a>
|
||||
</li>
|
||||
@else
|
||||
<li class="nav-item">
|
||||
<a href="{{URL::base('members')}}" class="nav-link">{{lang('user','mypanel')}}</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a href="{{URL::base('member/logout')}}" class="nav-link">{{lang('user','logout')}}</a>
|
||||
</li>
|
||||
@endif
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-md-6 d-flex justify-content-end">
|
||||
<ul class="nav">
|
||||
@foreach (menu('topMenuRight') as $key)
|
||||
<li class="nav-item">
|
||||
<a href="{{$key->link}}" class="nav-link" >{{$key->title}}</a>
|
||||
</li>
|
||||
@endforeach
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
<!-- Kategoriler -->
|
||||
@foreach (forum_kategori_panel() as $key)
|
||||
<div class="card shadow-sm border-0 mb-4">
|
||||
<div class="card-header bg-primary text-white p-3">
|
||||
<h5 class="card-title mb-0 d-flex align-items-center">
|
||||
<i class="fas fa-folder-open me-2"></i>
|
||||
{{$key->adi}}
|
||||
</h5>
|
||||
</div>
|
||||
|
||||
<div class="list-group list-group-flush">
|
||||
@foreach (forum_kategori_panel($key->id) as $key1)
|
||||
<div class="list-group-item p-3 border-bottom">
|
||||
<div class="d-flex gap-3 align-items-center">
|
||||
<!-- Kategori İkonu -->
|
||||
<div class="flex-shrink-0">
|
||||
<div class="bg-light p-3 rounded-circle">
|
||||
<i class="fas fa-folder text-primary" style="font-size: 1.5rem;"></i>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Kategori İçerik -->
|
||||
<div class="flex-grow-1">
|
||||
<div class="d-flex justify-content-between align-items-start">
|
||||
<div>
|
||||
<h6 class="mb-1">
|
||||
<a href="{{URL::base('/forum/category/'.$key1->id.'/'.$key1->adi_seo)}}"
|
||||
class="text-decoration-none text-dark fw-bold">
|
||||
{{$key1->adi}}
|
||||
</a>
|
||||
</h6>
|
||||
<p class="text-muted small mb-0">{{$key1->aciklama}}</p>
|
||||
</div>
|
||||
|
||||
<!-- İstatistikler -->
|
||||
<div class="d-flex gap-4 text-center">
|
||||
<div>
|
||||
<div class="fw-bold">{{mesaj_sayisi($key1->id)}}</div>
|
||||
<div class="text-muted small">{{lang('forum','Topics')}}</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="fw-bold">{{toplam_mesaj_sayisi($key1->id)}}</div>
|
||||
<div class="text-muted small">{{lang('forum','answers')}}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Son Konu Bilgisi (Opsiyonel) -->
|
||||
@if(function_exists('son_konu_bilgisi') && $sonKonu = son_konu_bilgisi($key1->id))
|
||||
<div class="mt-2 pt-2 border-top small text-muted">
|
||||
<i class="far fa-comment-dots me-1"></i>
|
||||
<a href="{{URL::base('/forum/subject/'.$sonKonu->id.'-'.$sonKonu->title_seo)}}"
|
||||
class="text-decoration-none">
|
||||
{{$sonKonu->title}}
|
||||
</a>
|
||||
<span class="ms-2">
|
||||
<i class="far fa-clock me-1"></i>{{tcevir($sonKonu->insertDate)}}
|
||||
</span>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
<!-- /Kategoriler -->
|
||||
@@ -0,0 +1,17 @@
|
||||
<div class="container forum main">
|
||||
|
||||
<!-- forum üst düğmeleri -->
|
||||
<div class="d-flex pt-3">
|
||||
@if(Session::select('userid')):
|
||||
<a href="{{URL::base('/newsubject')}}" class="btn btn-primary mb-2" ><i class="fa fa-plus"></i> {{lang('forum','new_content')}}</a>
|
||||
@else:
|
||||
<a href="{{URL::base('/member')}}">
|
||||
<button class="form-control btn btn-primary alert1 mb-2" style="height: 38px;margin-bottom: 3px;">{{lang('forum','login_to_open_topic')}}</button>
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
@view('Home/new_topic')
|
||||
@view('Home/categor_panel')
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,89 @@
|
||||
<div class="card shadow-sm border-0 mb-4">
|
||||
<div class="card-header bg-primary text-white p-3">
|
||||
<h5 class="card-title mb-0 d-flex align-items-center">
|
||||
<i class="fas fa-comment-alt me-2"></i>
|
||||
{{lang('forum','new_topics')}}
|
||||
</h5>
|
||||
</div>
|
||||
<div class="list-group list-group-flush">
|
||||
@foreach (sonMesajlar('10') as $key)
|
||||
<div class="list-group-item p-3 border-bottom">
|
||||
<div class="d-flex gap-3">
|
||||
<!-- Kullanıcı Avatarı -->
|
||||
<div class="flex-shrink-0">
|
||||
<img src="{{avatar1($key->user_id)}}"
|
||||
alt="{{yazar($key->user_id)}}"
|
||||
class="rounded-circle"
|
||||
width="48"
|
||||
height="48">
|
||||
</div>
|
||||
|
||||
<!-- İçerik Alanı -->
|
||||
<div class="flex-grow-1 overflow-hidden">
|
||||
<!-- Başlık ve Durum -->
|
||||
<div class="d-flex justify-content-between align-items-start mb-1">
|
||||
<h6 class="mb-0">
|
||||
<a href="{{URL::base('subject/'.$key->id.'-'.$key->title_seo)}}"
|
||||
class="text-decoration-none text-dark fw-bold">
|
||||
{{$key->title}}
|
||||
</a>
|
||||
@if ($key->dissolved == '1')
|
||||
<span class="badge bg-success ms-2">
|
||||
<i class="fas fa-check-circle me-1"></i>{{lang('forum','solved')}}
|
||||
</span>
|
||||
@endif
|
||||
</h6>
|
||||
<div class="text-muted small">
|
||||
<i class="far fa-eye me-1"></i>{{$key->view}} |
|
||||
<i class="far fa-comments ms-1 me-1"></i>{{contentlist($key->id)}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Meta Bilgileri -->
|
||||
<div class="d-flex flex-wrap gap-2 text-muted small mb-2">
|
||||
<span>
|
||||
<i class="fas fa-user me-1"></i>{{yazar($key->user_id)}}
|
||||
</span>
|
||||
<span class="text-muted">•</span>
|
||||
<span>
|
||||
<i class="far fa-clock me-1"></i>{{tcevir($key->insertDate)}}
|
||||
</span>
|
||||
<span class="text-muted">•</span>
|
||||
<a href="{{URL::base('/forum/category/'.$key->category_id.'/'.forum_kategori_adi($key->category_id)->adi_seo)}}"
|
||||
class="text-decoration-none">
|
||||
<i class="fas fa-folder me-1"></i>{{forum_kategori_adi($key->category_id)->adi}}
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!-- Son Mesaj Önizlemesi -->
|
||||
@if (end_message_insertDate($key->id))
|
||||
<div class="d-flex align-items-center bg-light p-2 rounded">
|
||||
<div class="flex-grow-1 text-truncate">
|
||||
<i class="fas fa-reply text-muted me-1"></i>
|
||||
<a href="{{URL::base('/forum/subject/'.$key->id.'-'.$key->title_seo)}}"
|
||||
class="text-decoration-none text-dark small">
|
||||
{{Limiter::word(end_message($key->id)->content,8)}}
|
||||
</a>
|
||||
</div>
|
||||
<div class="flex-shrink-0 ms-2">
|
||||
<img src="{{URL::base(avatar1(end_message_userid($key->id)))}}"
|
||||
alt=""
|
||||
class="rounded-circle"
|
||||
width="32"
|
||||
height="32"
|
||||
data-bs-toggle="tooltip"
|
||||
title="{{yazar(end_message_userid($key->id))}}">
|
||||
</div>
|
||||
</div>
|
||||
@else
|
||||
<span class="badge bg-light text-muted">
|
||||
<i class="far fa-comment-slash me-1"></i>{{lang('forum','no_reply')}}
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,162 @@
|
||||
<style>
|
||||
.solved{cursor: pointer;color:red;}
|
||||
.cevap{margin-bottom: 10px;}
|
||||
.userconfirmation{text-align:center; padding:10px;border-right: 1px solid #ccc; background: #f5f5f5;}
|
||||
</style>
|
||||
|
||||
@if(isset($fk->id))
|
||||
<div class="container">
|
||||
<div class="alert alert-primary mt-2" role="alert" >
|
||||
<a href="{{URL::base()}}">{{lang('menu','home')}}</a> /
|
||||
<a href="{{URL::base()}}">Forum</a> /
|
||||
<a href="{{URL::base()}}category/{{$fk->category_id.'-'.forum_kategori_row($fk->category_id)->adi_seo}}">
|
||||
{{forumCategoryName($fk->category_id)}}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="my-3 my-md-5">
|
||||
<div class="container">
|
||||
<div class="col-lg-12">
|
||||
<!-- konu başlığı -->
|
||||
<h2>{{$fk->title}}
|
||||
@if ($fk->dissolved == '1')
|
||||
<span class="text-danger" style="font-size: 1.2rem;">[ {{lang('forum','solved')}} ]</span>
|
||||
@endif
|
||||
</h2>
|
||||
<!-- /konu başlığı -->
|
||||
<div class="card mb-3" style="border:1px solid #ccc">
|
||||
<div class="row text-secondary m-0">
|
||||
<!-- kullanıcı bilgileri alanı -->
|
||||
<div class="col-md-2 userconfirmation" >
|
||||
<div class="avatar" style="background-image: url({{avatar1($fk->user_id)}})"></div>
|
||||
@if($fk->user_id >= 1)
|
||||
<div class="text-dark">
|
||||
{{yazar($fk->user_id)}}
|
||||
</div>
|
||||
<div class="count fs-5 ml-1" style="text-align: left;">
|
||||
<div class="row">
|
||||
<div class="col p-1">Katılım</div>
|
||||
<div class="col"> : {{tcevir(userCreateDate($fk->user_id))}}</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col p-1">Mesajlar</div>
|
||||
<div class="col"> : <a href="{{URL::base()}}search/mesaj/{{$fk->user_id}}">{{userMessageCount($fk->user_id)}}</a></div>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
<!-- kullanıcı bilgileri alanı -->
|
||||
<div class="col-md-10 pl-0 pr-0 " >
|
||||
<div class="pl-0 text-secondary mb-1" style="border-bottom: 1px solid #ccc; height: 30px;">
|
||||
<small class="float-left pl-1 pt-1 ">{{tcevir($fk->insertDate,1)}}</small>
|
||||
<small class="float-right pr-1 pt-1 ">#1</small>
|
||||
</div>
|
||||
<!-- /content title -->
|
||||
<div class="pl-1 text-dark">
|
||||
{{$fk->content}}
|
||||
<!-- soru sahibi giriş yaptığı zaman çözüldü olarak işaretlemesi için -->
|
||||
@if($fk->fixed == '1')
|
||||
<div class="pl-0 text-secondary" style="border-bottom: 1px solid #ccc; height: 30px;">
|
||||
<small class="float-left pl-1 pt-1 ">Çözen: </small>
|
||||
</div>
|
||||
@endif
|
||||
<!-- /soru sahibi giriş yaptığı zaman çözüldü olarak işaretlemesi için -->
|
||||
</div>
|
||||
|
||||
@if (session::select('userid') == $fk->user_id OR session::select('yetki')=='1')
|
||||
<div class="pl-0 mr-0">
|
||||
<div class="pl-0 text-secondary" style="border-top: 1px solid #ccc; height: 30px;">
|
||||
<small class="float-right pr-1 pt-1">
|
||||
|
||||
<a href="{{URL::base()}}/members/forum/tasi/{{$fk->id}} ">[ Konuyu taşı ]</a>
|
||||
<a href="{{URL::base()}}/members/forum/edit/{{$fk->id}}" > [ {{lang('general', 'edit')}} ]</a>
|
||||
<a href="{{URL::base()}}delete/{[ echo $fk->id ]}" onclick="return confirm('{{lang('general','delete_danger_message')}}')" >[ {{lang('general', 'delete')}} ]</a>
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- cevaplar -->
|
||||
{[ $a=1 ]}
|
||||
@foreach (cevaplist($fk->id) as $key)
|
||||
{[$a = $a+1]}
|
||||
<div class="card mb-3" style="border:1px solid #ccc">
|
||||
<div class="row text-secondary m-0">
|
||||
<!-- kullanıcı bilgileri -->
|
||||
<div class="col-md-2 userconfirmation" >
|
||||
<div class="avatar" style="background-image: url({{avatar1($key->user_id)}})"></div>
|
||||
<div class="text-dark">{{yazar($key->user_id)}}</div>
|
||||
<div class="count" style="text-align: left;">
|
||||
@if(userCreateDate($key->user_id))
|
||||
<div class="count fs-5 ml-1" style="text-align: left;">
|
||||
<div class="row">
|
||||
<div class="col p-1">Katılım</div>
|
||||
<div class="col"> : {{tcevir(userCreateDate($key->user_id))}}</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col p-1">Mesajlar</div>
|
||||
<div class="col"> : <a href="{{URL::base()}}search/mesaj/{{$key->user_id}}">{{userMessageCount($key->user_id)}}</a></div>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
<!-- /kullanıcı bilgileri -->
|
||||
<!-- content -->
|
||||
<div class="col-md-10 pl-0 pr-0 position-relative">
|
||||
<div class="pl-0 text-secondary mb-1 border-bottom" style="height: 30px;">
|
||||
<small class="float-left pl-1 pt-1 ">{{tcevir($key->insertDate,1)}}</small>
|
||||
<small class="float-right pr-1 pt-1 ">#{{$a}} </small>
|
||||
</div>
|
||||
<div class="pl-1 text-dark" >{{$key->content}}</div>
|
||||
@if (session::select('userid') == $key->user_id OR session::select('yetki')=='1')
|
||||
<div class="border-top position-absolute h-30 w-100" style="bottom:0px; ">
|
||||
|
||||
<div class="float-right pr-1 pt-1 " >
|
||||
<a href="{{URL::base()}}members/forum/edit/{{$key->id}}">[ {{lang('general', 'edit')}} ]</a>
|
||||
<a href="{{URL::base()}}/delete/{{$key->id}}" onclick="return confirm('{{lang('general','delete_danger_message')}}')">[ {{lang('general', 'delete')}} ]</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
<!-- /content -->
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
|
||||
<!-- uye cevap formu -->
|
||||
@if (session::select('userid') and $fk->dissolved == '0')
|
||||
|
||||
@view('Assets/editor')
|
||||
<form action="" method="post">
|
||||
<div class="cevap">
|
||||
<textarea name="konu_cevap" id="editor"></textarea>
|
||||
</div>
|
||||
<div class="input-group">
|
||||
<input type="hidden" name="title_seo" value="{{$fk->title_seo}}">
|
||||
<input type="hidden" name="konu_id" value="{{$fk->id}}">
|
||||
<button type="submit" class="btn btn-primary btn-block ">{{lang('forum','Submit_Answer')}}</button>
|
||||
</div>
|
||||
</form>
|
||||
@elseif($fk->dissolved == '0')
|
||||
<a href="{{URL::base()}}member">
|
||||
<button class="btn btn-primary btn-block">{{lang('forum', 'Sign_up_or_log_in_to_reply')}}</button>
|
||||
</a>
|
||||
@endif
|
||||
<!-- /uye cevap formu -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@else
|
||||
<div class="container">
|
||||
<div class="card p-1">
|
||||
<h1>Hata! Bir sorun ile karşılaştık.</h1>
|
||||
Konu Bulunamadı..</div>
|
||||
</div>
|
||||
@endif
|
||||
@@ -0,0 +1,62 @@
|
||||
@foreach (forum_kategori_panel() as $key)
|
||||
<div class="post-card mb-4">
|
||||
<div class="p-3" style="background:rgba(59,130,246,0.08);border-bottom:1px solid var(--glass-border);border-radius:var(--border-radius) var(--border-radius) 0 0;">
|
||||
<h5 class="mb-0 d-flex align-items-center" style="color:var(--text-main)">
|
||||
<i class="fas fa-folder-open me-2" style="color:var(--primary)"></i>
|
||||
{{$key->adi}}
|
||||
</h5>
|
||||
</div>
|
||||
|
||||
<div class="list-group list-group-flush" style="background:transparent;">
|
||||
@foreach (forum_kategori_panel($key->id) as $key1)
|
||||
<div class="p-3" style="border-bottom:1px solid var(--glass-border);transition:var(--transition-smooth);">
|
||||
<div class="d-flex gap-3 align-items-center">
|
||||
<div class="flex-shrink-0">
|
||||
<div class="p-3 rounded-circle" style="background:rgba(59,130,246,0.1);">
|
||||
<i class="fas fa-folder" style="color:var(--primary);font-size:1.3rem;"></i>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex-grow-1">
|
||||
<div class="d-flex justify-content-between align-items-start">
|
||||
<div>
|
||||
<h6 class="mb-1">
|
||||
<a href="{{URL::base('/category/'.$key1->id.'/'.$key1->adi_seo)}}"
|
||||
class="text-decoration-none fw-bold" style="color:var(--text-main)">
|
||||
{{$key1->adi}}
|
||||
</a>
|
||||
</h6>
|
||||
<p class="small mb-0" style="color:var(--text-muted)">{{$key1->aciklama}}</p>
|
||||
</div>
|
||||
|
||||
<div class="d-flex gap-4 text-center">
|
||||
<div>
|
||||
<div class="fw-bold" style="color:var(--text-main)">{{mesaj_sayisi($key1->id)}}</div>
|
||||
<div class="small" style="color:var(--text-muted)">{{lang('forum','Topics')}}</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="fw-bold" style="color:var(--text-muted)">{{toplam_mesaj_sayisi($key1->id)}}</div>
|
||||
<div class="small" style="color:var(--text-muted)">{{lang('forum','answers')}}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@if(function_exists('son_konu_bilgisi') && $sonKonu = son_konu_bilgisi($key1->id))
|
||||
<div class="mt-2 pt-2 small" style="border-top:1px solid var(--glass-border);color:var(--text-muted)">
|
||||
<i class="far fa-comment-dots me-1"></i>
|
||||
<a href="{{URL::base('/subject/'.$sonKonu->id.'-'.$sonKonu->title_seo)}}"
|
||||
class="text-decoration-none" style="color:var(--primary)">
|
||||
{{$sonKonu->title}}
|
||||
</a>
|
||||
<span class="ms-2">
|
||||
<i class="far fa-clock me-1"></i>{{tcevir($sonKonu->insertDate)}}
|
||||
</span>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
@@ -0,0 +1,76 @@
|
||||
<div class="container py-4">
|
||||
<div class="d-flex justify-content-end mb-4">
|
||||
<a href="{{URL::base('/newthread/'.$seokat)}}" class="btn-modern btn-modern-primary" style="padding:8px 20px;font-size:0.85rem;">
|
||||
<i class="fas fa-plus-circle me-2"></i> {{lang('forum','open_a_new_subject')}}
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="post-card mb-4">
|
||||
<div class="p-3" style="background:rgba(59,130,246,0.08);border-bottom:1px solid var(--glass-border);border-radius:var(--border-radius) var(--border-radius) 0 0;">
|
||||
<h5 class="mb-0 d-flex align-items-center" style="color:var(--text-main)">
|
||||
<i class="fas fa-folder-open me-2" style="color:var(--primary)"></i>
|
||||
{{forumCategoryName($kategori)}}
|
||||
</h5>
|
||||
</div>
|
||||
|
||||
<div style="background:transparent;">
|
||||
@foreach ($konular as $key)
|
||||
<div class="p-3" style="border-bottom:1px solid var(--glass-border);transition:var(--transition-smooth);">
|
||||
<div class="d-flex gap-3 align-items-center">
|
||||
<div class="flex-shrink-0">
|
||||
<img src="{{avatar1($key->user_id)}}"
|
||||
alt="{{yazar($key->user_id)}}"
|
||||
class="rounded-circle"
|
||||
width="48"
|
||||
height="48"
|
||||
style="border:2px solid var(--glass-border);">
|
||||
</div>
|
||||
|
||||
<div class="flex-grow-1">
|
||||
<div class="d-flex justify-content-between align-items-start">
|
||||
<div>
|
||||
<h6 class="mb-1">
|
||||
<a href="{{URL::base('/subject/'.$key->id.'-'.$key->title_seo)}}"
|
||||
class="text-decoration-none fw-bold" style="color:var(--text-main)">
|
||||
{{$key->title}}
|
||||
</a>
|
||||
</h6>
|
||||
<div class="small" style="color:var(--text-muted)">
|
||||
<i class="fas fa-user me-1"></i>{{yazar($key->user_id)}}
|
||||
<span class="mx-2">•</span>
|
||||
<i class="far fa-clock me-1"></i>{{tcevir($key->insertDate)}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="d-flex gap-4 text-center">
|
||||
<div>
|
||||
<div class="fw-bold" style="color:var(--text-main)">{{$key->view}}</div>
|
||||
<div class="small" style="color:var(--text-muted)">{{lang('forum','viewing')}}</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="fw-bold" style="color:var(--text-main)">{{contentlist($key->id)}}</div>
|
||||
<div class="small" style="color:var(--text-muted)">{{lang('forum','answers')}}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@if(function_exists('son_cevap_bilgisi') && $sonCevap = son_cevap_bilgisi($key->id))
|
||||
<div class="mt-2 pt-2 small" style="border-top:1px solid var(--glass-border);color:var(--text-muted)">
|
||||
<i class="fas fa-reply me-1"></i>
|
||||
<span class="me-2">{{lang('forum','last_reply')}}:</span>
|
||||
<a href="{{URL::base('/subject/'.$key->id.'-'.$key->title_seo)}}#cevap-{{$sonCevap->id}}"
|
||||
class="text-decoration-none" style="color:var(--primary)">
|
||||
{{Limiter::word($sonCevap->content, 5)}}
|
||||
</a>
|
||||
<span class="ms-2">
|
||||
<i class="far fa-user me-1"></i>{{yazar($sonCevap->user_id)}}
|
||||
</span>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,21 @@
|
||||
<div class="container forum main py-4">
|
||||
|
||||
<div class="d-flex justify-content-between align-items-center mb-4">
|
||||
<h4 class="mb-0">Forum</h4>
|
||||
<div>
|
||||
@if(Session::select('userid'))
|
||||
<a href="{{URL::base('/newsubject')}}" class="btn-modern btn-modern-primary" style="padding:8px 20px;font-size:0.85rem;">
|
||||
<i class="fa fa-plus me-1"></i>{{lang('forum','new_content')}}
|
||||
</a>
|
||||
@else
|
||||
<a href="https://members.pisilinux.og">
|
||||
<button class="btn-modern btn-modern-secondary" style="padding:8px 20px;font-size:0.85rem;">{{lang('forum','login_to_open_topic')}}</button>
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@view('Forum/new_topic')
|
||||
@view('Forum/categor_panel')
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,85 @@
|
||||
<div class="post-card mb-4">
|
||||
<div class="p-3" style="background:rgba(59,130,246,0.08);border-bottom:1px solid var(--glass-border);border-radius:var(--border-radius) var(--border-radius) 0 0;">
|
||||
<h5 class="mb-0 d-flex align-items-center" style="color:var(--text-main)">
|
||||
<i class="fas fa-comment-alt me-2" style="color:var(--primary)"></i>
|
||||
{{lang('forum','new_topics')}}
|
||||
</h5>
|
||||
</div>
|
||||
<div style="background:transparent;">
|
||||
@foreach (sonMesajlar('10') as $key)
|
||||
<div class="p-3" style="border-bottom:1px solid var(--glass-border);transition:var(--transition-smooth);">
|
||||
<div class="d-flex gap-3">
|
||||
<div class="flex-shrink-0">
|
||||
<img src="{{avatar1($key->user_id)}}"
|
||||
alt="{{yazar($key->user_id)}}"
|
||||
class="rounded-circle"
|
||||
width="48"
|
||||
height="48"
|
||||
style="border:2px solid var(--glass-border);">
|
||||
</div>
|
||||
|
||||
<div class="flex-grow-1 overflow-hidden">
|
||||
<div class="d-flex justify-content-between align-items-start mb-1">
|
||||
<h6 class="mb-0">
|
||||
<a href="{{URL::base('/subject/'.$key->id.'-'.$key->title_seo)}}"
|
||||
class="text-decoration-none fw-bold" style="color:var(--text-main)">
|
||||
{{$key->title}}
|
||||
</a>
|
||||
@if ($key->dissolved == '1')
|
||||
<span class="badge ms-2" style="background:var(--secondary)">
|
||||
<i class="fas fa-check-circle me-1"></i>{{lang('forum','solved')}}
|
||||
</span>
|
||||
@endif
|
||||
</h6>
|
||||
<div class="small" style="color:var(--text-muted)">
|
||||
<i class="far fa-eye me-1"></i>{{$key->view}} |
|
||||
<i class="far fa-comments ms-1 me-1"></i>{{contentlist($key->id)}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="d-flex flex-wrap gap-2 small mb-2" style="color:var(--text-muted)">
|
||||
<span>
|
||||
<i class="fas fa-user me-1"></i>{{yazar($key->user_id)}}
|
||||
</span>
|
||||
<span class="text-muted">•</span>
|
||||
<span>
|
||||
<i class="far fa-clock me-1"></i>{{tcevir($key->insertDate)}}
|
||||
</span>
|
||||
<span class="text-muted">•</span>
|
||||
<a href="{{URL::base('/category/'.$key->category_id.'/'.forum_kategori_adi($key->category_id)->adi_seo)}}"
|
||||
class="text-decoration-none" style="color:var(--primary)">
|
||||
<i class="fas fa-folder me-1"></i>{{forum_kategori_adi($key->category_id)->adi}}
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@if (end_message_insertDate($key->id))
|
||||
<div class="d-flex align-items-center p-2 rounded-3" style="background:rgba(255,255,255,0.03);">
|
||||
<div class="flex-grow-1 text-truncate">
|
||||
<i class="fas fa-reply me-1" style="color:var(--text-muted)"></i>
|
||||
<a href="{{URL::base('/subject/'.$key->id.'-'.$key->title_seo)}}"
|
||||
class="text-decoration-none small" style="color:var(--text-muted)">
|
||||
{{Limiter::word(end_message($key->id)->content,8)}}
|
||||
</a>
|
||||
</div>
|
||||
<div class="flex-shrink-0 ms-2">
|
||||
<img src="{{avatar1(end_message_userid($key->id))}}"
|
||||
alt=""
|
||||
class="rounded-circle"
|
||||
width="32"
|
||||
height="32"
|
||||
style="border:2px solid var(--glass-border);"
|
||||
data-bs-toggle="tooltip"
|
||||
title="{{yazar(end_message_userid($key->id))}}">
|
||||
</div>
|
||||
</div>
|
||||
@else
|
||||
<span class="badge" style="background:rgba(255,255,255,0.05);color:var(--text-muted);">
|
||||
<i class="far fa-comment-slash me-1"></i>{{lang('forum','no_reply')}}
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,40 @@
|
||||
@view('Assets/editor')
|
||||
<div class="container py-4">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-lg-8">
|
||||
<div class="glass-card p-4">
|
||||
<h4 class="mb-4">{{lang('forum','open_a_new_subject')}}</h4>
|
||||
|
||||
<form name="mainfrm" action="" method="post" onSubmit="return validate();">
|
||||
<div class="mb-3">
|
||||
<label class="form-label text-muted small"><span style="color:#ef4444">*</span>{{lang('forum','category')}}</label>
|
||||
<select name="category_id" class="form-control bg-transparent text-light" required style="border-color:var(--glass-border);color:var(--text-main)">
|
||||
<option value="" style="background:var(--bg-secondary)">{{lang('forum','Please_select_category')}}</option>
|
||||
@foreach (question_category() as $key)
|
||||
<optgroup label="{{$key->adi}}" style="background:var(--bg-secondary);color:var(--text-muted)">
|
||||
@foreach (question_category($key->id) as $key)
|
||||
<option value="{{$key->id}}" style="background:var(--bg-secondary)">{{$key->adi}}</option>
|
||||
@endforeach
|
||||
</optgroup>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label text-muted small"><span style="color:#ef4444">*</span> {{lang('forum','title')}}</label>
|
||||
<input type="text" class="form-control bg-transparent text-light" name="title" required style="border-color:var(--glass-border);color:var(--text-main)">
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label text-muted small"><span style="color:#ef4444">*</span> {{lang('forum','your_question')}}</label>
|
||||
<textarea name="content" id="editor" cols="30" rows="10" class="form-control bg-transparent text-light" style="border-color:var(--glass-border);color:var(--text-main)"></textarea>
|
||||
</div>
|
||||
|
||||
<button class="btn-modern btn-modern-primary" type="submit">
|
||||
<i class="fa fa-save me-1"></i> {{lang('forum','save')}}
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,32 @@
|
||||
@view('Assets/editor')
|
||||
<div class="container py-4">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-lg-8">
|
||||
<div class="glass-card p-4">
|
||||
<h4 class="mb-4">PİSİLİNUX FORUM <span style="color:var(--primary)">{{lang('forum','new_content')}}</span></h4>
|
||||
|
||||
<form name="mainfrm" action="" method="post" onsubmit="return validate();">
|
||||
<div class="mb-3">
|
||||
<label class="form-label text-muted small"><span style="color:#ef4444">*</span> {{lang('forum','category')}}:</label>
|
||||
<input type="text" class="form-control bg-transparent text-light" name="" value="{[ echo forum_kategori_adi($id)->adi; ]}" disabled style="border-color:var(--glass-border);color:var(--text-main);opacity:0.7;">
|
||||
<input type="hidden" name="category_id" value="{[ echo $id; ]}">
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label text-muted small"><span style="color:#ef4444">*</span> {{lang('forum','title')}}</label>
|
||||
<input type="text" class="form-control bg-transparent text-light" name="title" id="title" required style="border-color:var(--glass-border);color:var(--text-main)">
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label text-muted small"><span style="color:#ef4444">*</span> {{lang('forum','your_question')}}</label>
|
||||
<textarea name="content" id="editor" cols="30" rows="10" class="form-control bg-transparent text-light" style="border-color:var(--glass-border);color:var(--text-main)"></textarea>
|
||||
</div>
|
||||
|
||||
<button class="btn-modern btn-modern-primary" type="submit">
|
||||
<i class="fa fa-save me-1"></i> {{lang('forum','save')}}
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,185 @@
|
||||
@if(isset($fk->id))
|
||||
<div class="container py-4 main">
|
||||
<nav aria-label="breadcrumb" class="mb-4">
|
||||
<ol class="breadcrumb">
|
||||
<li class="breadcrumb-item"><a href="{{URL::base()}}">{{lang('menu','home')}}</a></li>
|
||||
<li class="breadcrumb-item"><a href="{{URL::base('/')}}">Forum</a></li>
|
||||
<li class="breadcrumb-item">
|
||||
<a href="{{URL::base('/category/'.$fk->category_id.'-'.forum_kategori_row($fk->category_id)->adi_seo)}}">
|
||||
{{forumCategoryName($fk->category_id)}}
|
||||
</a>
|
||||
</li>
|
||||
<li class="breadcrumb-item active" aria-current="page">
|
||||
{{ Limiter::word($fk->title, 50) }}
|
||||
</li>
|
||||
</ol>
|
||||
</nav>
|
||||
|
||||
<div class="post-card">
|
||||
<div class="card-body">
|
||||
<div class="ana_konu d-flex justify-content-between align-items-center mb-3" style="border-bottom:1px solid var(--glass-border);padding-bottom:0.75rem;">
|
||||
<h1 class="h4 mb-0" style="color:var(--text-main)">
|
||||
{{$fk->title}}
|
||||
@if ($fk->dissolved == '1')
|
||||
<span class="badge solved-badge" style="background:var(--secondary)">{{lang('forum','solved')}}</span>
|
||||
@endif
|
||||
</h1>
|
||||
<div class="post-number">#1</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
<div class="user-info">
|
||||
<img src="{{avatar1($fk->user_id)}}" alt="{{yazar($fk->user_id)}}" class="user-avatar">
|
||||
<h5 class="mb-2" style="color:var(--text-main)">{{yazar($fk->user_id)}}</h5>
|
||||
|
||||
@if($fk->user_id >= 1)
|
||||
<div class="text-start small" style="color:var(--text-muted)">
|
||||
<div class="mb-1">
|
||||
<i class="fas fa-calendar-alt me-1"></i>
|
||||
{{lang('forum','join_date')}}: {{tcevir(userCreateDate($fk->user_id), 1)}}
|
||||
</div>
|
||||
<div>
|
||||
<i class="fas fa-comments me-1"></i>
|
||||
{{lang('forum','posts')}}:
|
||||
<a href="https://pisilinux.og/search/mesaj/{{$fk->user_id}}" class="text-decoration-none" style="color:var(--primary)">
|
||||
{{userMessageCount($fk->user_id)}}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-9">
|
||||
<div class="post-meta mb-3">
|
||||
<i class="far fa-clock me-1"></i> {{tcevir($fk->insertDate, 1)}}
|
||||
</div>
|
||||
|
||||
<div class="post-content mb-3">
|
||||
{{$fk->content}}
|
||||
</div>
|
||||
|
||||
@if (session::select('userid') == $fk->user_id || session::select('yetki') == '1')
|
||||
<div class="post-actions text-end">
|
||||
<div class="btn-group btn-group-sm">
|
||||
<a href="https://members.pisilinux.og/forum/tasi/{{$fk->id}}" class="btn btn-outline-secondary">
|
||||
<i class="fas fa-exchange-alt me-1"></i> {{lang('forum','move_topic')}}
|
||||
</a>
|
||||
<a href="https://members.pisilinux.og/forum/edit/{{$fk->id}}" class="btn btn-outline-primary">
|
||||
<i class="fas fa-edit me-1"></i>
|
||||
</a>
|
||||
<a href="{{URL::base('/delete/'.$fk->id)}}"
|
||||
onclick="return confirm('{{lang('general','delete_danger_message')}}')"
|
||||
class="btn btn-outline-danger">
|
||||
<i class="fas fa-trash-alt me-1"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{[ $a = 1 ]}
|
||||
@foreach (cevaplist($fk->id) as $key)
|
||||
{[ $a = $a + 1 ]}
|
||||
<div class="post-card" id="cevap-{{$key->id}}">
|
||||
<div class="card-body">
|
||||
<div class="row h-100">
|
||||
<div class="col-md-3">
|
||||
<div class="user-info">
|
||||
<img src="{{avatar1($key->user_id)}}" alt="{{yazar($key->user_id)}}" class="user-avatar">
|
||||
<h5 class="mb-2" style="color:var(--text-main)">{{yazar($key->user_id)}}</h5>
|
||||
|
||||
@if(userCreateDate($key->user_id))
|
||||
<div class="text-start small" style="color:var(--text-muted)">
|
||||
<div class="mb-1">
|
||||
<i class="fas fa-calendar-alt me-1"></i>
|
||||
{{lang('forum','join_date')}}: {{tcevir(userCreateDate($key->user_id), 1)}}
|
||||
</div>
|
||||
<div>
|
||||
<i class="fas fa-comments me-1"></i>
|
||||
{{lang('forum','posts')}}:
|
||||
<a href="https://pisilinux.og/search/mesaj/{{$key->user_id}}" class="text-decoration-none" style="color:var(--primary)">
|
||||
{{userMessageCount($key->user_id)}}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-9 d-flex flex-column">
|
||||
<div class="d-flex justify-content-between align-items-center mb-3" style="color:var(--text-muted);font-size:0.85rem;">
|
||||
<span><i class="far fa-clock me-1"></i> {{tcevir($key->insertDate, 1)}}</span>
|
||||
<span class="post-number">#{{$a}}</span>
|
||||
</div>
|
||||
<div class="post-content mb-3 flex-grow-1">
|
||||
{{$key->content}}
|
||||
</div>
|
||||
|
||||
@if (session::select('userid') == $key->user_id || session::select('yetki') == '1')
|
||||
<div class="post-actions text-end">
|
||||
<div class="btn-group btn-group-sm">
|
||||
<a href="https://members.pisilinux.og/forum/edit/{{$key->id}}" class="btn btn-outline-primary">
|
||||
<i class="fas fa-edit me-1"></i>
|
||||
</a>
|
||||
<a href="{{URL::base('/delete/'.$key->id)}}"
|
||||
onclick="return confirm('{{lang('general','delete_danger_message')}}')"
|
||||
class="btn btn-outline-danger">
|
||||
<i class="fas fa-trash-alt me-1"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
|
||||
@if (session::select('userid') && $fk->dissolved == '0')
|
||||
<div class="glass-card p-4 mt-4">
|
||||
@view('Assets/editor')
|
||||
<form action="#" method="post">
|
||||
<div class="mb-3">
|
||||
<textarea name="konu_cevap" id="editor" class="form-control bg-transparent text-light" rows="6" style="border-color:var(--glass-border);color:var(--text-main)"></textarea>
|
||||
</div>
|
||||
<div class="d-grid gap-2">
|
||||
<input type="hidden" name="title_seo" value="{{$fk->title_seo}}">
|
||||
<input type="hidden" name="konu_id" value="{{$fk->id}}">
|
||||
<button type="submit" class="btn-modern btn-modern-primary">
|
||||
<i class="fas fa-paper-plane me-2"></i> {{lang('forum','Submit_Answer')}}
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
@elseif($fk->dissolved == '0')
|
||||
<div class="glass-card p-4 mt-4 text-center">
|
||||
<a href="https://members.pisilinux.og" class="btn-modern btn-modern-primary">
|
||||
<i class="fas fa-sign-in-alt me-2"></i> {{lang('forum', 'Sign_up_or_log_in_to_reply')}}
|
||||
</a>
|
||||
</div>
|
||||
@else
|
||||
<div class="glass-card p-4 mt-4">
|
||||
<div class="d-flex align-items-center gap-3 text-muted">
|
||||
<i class="fas fa-lock fa-lg"></i>
|
||||
<span>{{lang('forum','topic_locked')}}</span>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
@else
|
||||
<div class="container py-5">
|
||||
<div class="glass-card p-5 text-center">
|
||||
<i class="fas fa-exclamation-circle fa-3x mb-3" style="color:var(--text-muted)"></i>
|
||||
<h4 class="text-muted">{{lang('forum','error')}}</h4>
|
||||
<p class="text-muted">{{lang('forum','topic_not_found')}}</p>
|
||||
<a href="{{URL::base('/')}}" class="btn-modern btn-modern-primary mt-3">
|
||||
<i class="fas fa-arrow-left me-2"></i> {{lang('forum','back_to_forum')}}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
@@ -0,0 +1,58 @@
|
||||
<?php
|
||||
#----------------------------------------------------------------------
|
||||
# This file automatically created and updated
|
||||
#----------------------------------------------------------------------
|
||||
$classMap['classes']['project\commands\db_backups'] = 'Projects/Frontend/Commands/Db_backups.php';
|
||||
$classMap['classes']['blog_model'] = 'Projects/Frontend/Models/blog_model.php';
|
||||
$classMap['classes']['bugs_model'] = 'Projects/Frontend/Models/bugs_model.php';
|
||||
$classMap['classes']['forum_model'] = 'Projects/Frontend/Models/forum_model.php';
|
||||
$classMap['classes']['main_model'] = 'Projects/Frontend/Models/main_model.php';
|
||||
$classMap['classes']['questionanswer_model'] = 'Projects/Frontend/Models/questionanswer_model.php';
|
||||
$classMap['classes']['sss_model'] = 'Projects/Frontend/Models/sss_model.php';
|
||||
$classMap['classes']['user_model'] = 'Projects/Frontend/Models/user_model.php';
|
||||
$classMap['classes']['wiki_model'] = 'Projects/Frontend/Models/wiki_model.php';
|
||||
$classMap['classes']['project\controllers\blog'] = 'Projects/Frontend/Controllers/Blog.php';
|
||||
$classMap['classes']['project\controllers\bugs'] = 'Projects/Frontend/Controllers/Bugs.php';
|
||||
$classMap['classes']['project\controllers\category'] = 'Projects/Frontend/Controllers/Category.php';
|
||||
$classMap['classes']['project\controllers\contact'] = 'Projects/Frontend/Controllers/Contact.php';
|
||||
$classMap['classes']['project\controllers\content'] = 'Projects/Frontend/Controllers/Content.php';
|
||||
$classMap['classes']['project\controllers\discord'] = 'Projects/Frontend/Controllers/Discord.php';
|
||||
$classMap['classes']['project\controllers\download'] = 'Projects/Frontend/Controllers/Download.php';
|
||||
$classMap['classes']['project\controllers\etiketler'] = 'Projects/Frontend/Controllers/Etiketler.php';
|
||||
$classMap['classes']['project\controllers\forum'] = 'Projects/Frontend/Controllers/Forum.php';
|
||||
$classMap['classes']['project\controllers\galery'] = 'Projects/Frontend/Controllers/Galery.php';
|
||||
$classMap['classes']['project\controllers\home'] = 'Projects/Frontend/Controllers/Home.php';
|
||||
$classMap['classes']['project\controllers\initialize'] = 'Projects/Frontend/Controllers/Initialize.php';
|
||||
$classMap['classes']['project\controllers\member'] = 'Projects/Frontend/Controllers/Member.php';
|
||||
$classMap['classes']['project\controllers\page'] = 'Projects/Frontend/Controllers/Page.php';
|
||||
$classMap['classes']['project\controllers\question_answer'] = 'Projects/Frontend/Controllers/Question_answer.php';
|
||||
$classMap['classes']['project\controllers\search'] = 'Projects/Frontend/Controllers/Search.php';
|
||||
$classMap['classes']['project\controllers\show404'] = 'Projects/Frontend/Controllers/Show404.php';
|
||||
$classMap['classes']['project\controllers\sss'] = 'Projects/Frontend/Controllers/Sss.php';
|
||||
$classMap['classes']['project\controllers\wiki'] = 'Projects/Frontend/Controllers/Wiki.php';
|
||||
$classMap['classes']['project\controllers\ajax'] = 'Projects/Frontend/Controllers/ajax.php';
|
||||
$classMap['classes']['project\controllers\back'] = 'Projects/Frontend/Controllers/back.php';
|
||||
$classMap['namespaces']['project\commands\db_backups'] = 'db_backups';
|
||||
$classMap['namespaces']['project\controllers\blog'] = 'blog';
|
||||
$classMap['namespaces']['project\controllers\bugs'] = 'bugs';
|
||||
$classMap['namespaces']['project\controllers\category'] = 'category';
|
||||
$classMap['namespaces']['project\controllers\contact'] = 'contact';
|
||||
$classMap['namespaces']['project\controllers\content'] = 'content';
|
||||
$classMap['namespaces']['project\controllers\discord'] = 'discord';
|
||||
$classMap['namespaces']['project\controllers\download'] = 'download';
|
||||
$classMap['namespaces']['project\controllers\etiketler'] = 'etiketler';
|
||||
$classMap['namespaces']['project\controllers\forum'] = 'forum';
|
||||
$classMap['namespaces']['project\controllers\galery'] = 'galery';
|
||||
$classMap['namespaces']['project\controllers\home'] = 'home';
|
||||
$classMap['namespaces']['project\controllers\initialize'] = 'initialize';
|
||||
$classMap['namespaces']['project\controllers\member'] = 'member';
|
||||
$classMap['namespaces']['project\controllers\page'] = 'page';
|
||||
$classMap['namespaces']['project\controllers\question_answer'] = 'question_answer';
|
||||
$classMap['namespaces']['project\controllers\search'] = 'search';
|
||||
$classMap['namespaces']['project\controllers\show404'] = 'show404';
|
||||
$classMap['namespaces']['project\controllers\sss'] = 'sss';
|
||||
$classMap['namespaces']['project\controllers\wiki'] = 'wiki';
|
||||
$classMap['namespaces']['project\controllers\ajax'] = 'ajax';
|
||||
$classMap['namespaces']['project\controllers\back'] = 'back';
|
||||
$classMap['classes']['project\controllers\subject'] = 'Projects/Forum/Controllers/Subject.php';
|
||||
$classMap['namespaces']['project\controllers\subject'] = 'subject';
|
||||
@@ -0,0 +1,18 @@
|
||||
<?php namespace Project\Commands;
|
||||
|
||||
use File, Crontab,DBTool;
|
||||
|
||||
class Db_backups extends Command
|
||||
{
|
||||
public function do()
|
||||
{
|
||||
$dbname = 'Pisilinux_DB_Backup-'.date('YmdHis').'.sql';
|
||||
$zipname = 'DbBackups/'.$dbname.'.zip';
|
||||
|
||||
DBTool::backup('*',$dbname, 'DbBackups');
|
||||
File::createZip($zipname, ['DbBackups/']);
|
||||
File::delete('DbBackups/'.$dbname);
|
||||
|
||||
Crontab::limit(1, 1);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
<?php return
|
||||
[
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| User
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Includes configurations for the User library.
|
||||
|
|
||||
| encode: When the user is registered in, the algorithm to encrypt the
|
||||
| password is set.
|
||||
|
|
||||
| spectator: Allows navigation of other users' accounts.
|
||||
|
|
||||
| matching: It specifies which tables and columns the User class will use.
|
||||
|
|
||||
| joining: This setting is used if the users table consists of joined
|
||||
| tables.
|
||||
|
|
||||
| emailSenderInfo: This is to specify the sender name and email
|
||||
| information of the e-mail to be sent during the activation process or
|
||||
| password forgotten operations.
|
||||
|
|
||||
*/
|
||||
|
||||
'encode' => 'super',
|
||||
'spectator' => '',
|
||||
'matching' =>
|
||||
[
|
||||
'table' => '',
|
||||
'columns' =>
|
||||
[
|
||||
'username' => '', # Required
|
||||
'password' => '', # Required
|
||||
'email' => '', # Relative
|
||||
'active' => '', # Relative
|
||||
'banned' => '', # Relative
|
||||
'activation' => '', # Relative
|
||||
'verification' => '', # Relative
|
||||
'otherLogin' => [] # Relative
|
||||
]
|
||||
],
|
||||
'joining' =>
|
||||
[
|
||||
'column' => '',
|
||||
'tables' => []
|
||||
],
|
||||
'emailSenderInfo' =>
|
||||
[
|
||||
'name' => '',
|
||||
'mail' => ''
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Permission
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Includes configurations for the Permission library.
|
||||
|
|
||||
| method : It is used to set which id value will use which method of sending.
|
||||
| page : It is used to set which id value will use which page.
|
||||
| process: It is used to set which id value will use which object.
|
||||
|
|
||||
| Example Usage
|
||||
|
|
||||
| [
|
||||
| '1' => 'any',
|
||||
| '2' => ['noperm' => ['delete', 'update']],
|
||||
| '3' => ['perm' => ['delete', 'update']],
|
||||
| '4' => ['noperm' => ['delete', 'update', 'add']],
|
||||
| '5' => 'all'
|
||||
| ]
|
||||
|
|
||||
*/
|
||||
|
||||
'method' => [],
|
||||
'page' => [],
|
||||
'process' => []
|
||||
];
|
||||
@@ -0,0 +1,26 @@
|
||||
<?php return
|
||||
[
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Cryto
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Sets the predefined driver for the Crypto library.
|
||||
|
|
||||
| Options: openssl, mcrypt, hash, phash, mhash
|
||||
|
|
||||
*/
|
||||
|
||||
'driver' => 'openssl',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Encode
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Sets which encryption algorithm will use the Encode class methods by default.
|
||||
|
|
||||
*/
|
||||
|
||||
'type' => 'md5'
|
||||
];
|
||||
@@ -0,0 +1,28 @@
|
||||
<?php return
|
||||
[
|
||||
|
||||
'migration' =>
|
||||
[
|
||||
'table' => 'migrations'
|
||||
],
|
||||
|
||||
'database' =>
|
||||
[
|
||||
'driver' => 'mysqli',
|
||||
'host' => 'localhost',
|
||||
'database' => '',
|
||||
'user' => '',
|
||||
'password' => '',
|
||||
'dsn' => '',
|
||||
'server' => '',
|
||||
'port' => '',
|
||||
'cacheDriver' => 'file',
|
||||
'queryLog' => false,
|
||||
'pconnect' => false,
|
||||
'encode' => false,
|
||||
'prefix' => '',
|
||||
'charset' => 'utf8',
|
||||
'collation' => 'utf8_general_ci',
|
||||
'differentConnection' => []
|
||||
]
|
||||
];
|
||||
@@ -0,0 +1,21 @@
|
||||
<?php return
|
||||
[
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| File
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| It contains several settings for the File library.
|
||||
|
|
||||
| realPath: The methods of the File class specify whether to access
|
||||
| the file relative to the absolute path or not.
|
||||
| parentDirectoryAccess: Set whether to allow parent directory(../) access.
|
||||
|
|
||||
*/
|
||||
|
||||
'file' =>
|
||||
[
|
||||
'realPath' => true,
|
||||
'parentDirectoryAccess' => false
|
||||
]
|
||||
];
|
||||
@@ -0,0 +1,154 @@
|
||||
<?php return
|
||||
[
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Head Page
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| It is specified in which view the html codes in the [head] tags will be
|
||||
| placed.
|
||||
|
|
||||
*/
|
||||
|
||||
'headPage' => '', # string or array
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Head Page
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| It is specified in which view the html codes in the [body] tags will be
|
||||
| placed.
|
||||
|
|
||||
*/
|
||||
|
||||
'bodyPage' => '',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Document Type
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The type of document to use.
|
||||
|
|
||||
| Types: html5 , html4Frameset , html4Transitional , html4Strict
|
||||
| xhtml11, xhtml1Frameset, xhtml1Transitional, xhtml1Strict
|
||||
|
|
||||
*/
|
||||
|
||||
'docType' => 'html5',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Title
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Edit the [title] tag.
|
||||
|
|
||||
*/
|
||||
|
||||
'title' => '',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Content
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The language and charset of your content.
|
||||
|
|
||||
*/
|
||||
|
||||
'content' =>
|
||||
[
|
||||
'language' => 'tr',
|
||||
'charset' => ['utf-8']
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Resources
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The settings below are just like using the
|
||||
| Import::theme/plugin/font/style/script() method.
|
||||
|
|
||||
*/
|
||||
|
||||
'theme' =>
|
||||
[
|
||||
'name' => [],
|
||||
'recursive' => false
|
||||
],
|
||||
|
||||
'plugin' =>
|
||||
[
|
||||
'name' => '',
|
||||
'recursive' => false
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Browser Icon
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The browser icon to be used.
|
||||
|
|
||||
*/
|
||||
|
||||
'browserIcon' => '',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Background Image
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The background image to be used.
|
||||
|
|
||||
*/
|
||||
|
||||
'backgroundImage' => '',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Attributes
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Adds a property value pair to the [html], [head] and [body] tags.
|
||||
|
|
||||
| ['id' => 'body', 'name' => 'Body'] <body id="body" name="Body">
|
||||
|
|
||||
*/
|
||||
|
||||
'attributes' =>
|
||||
[
|
||||
'html' => [],
|
||||
'head' => [],
|
||||
'body' => []
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Meta
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Used to edit meta tags.
|
||||
|
|
||||
*/
|
||||
|
||||
'meta' =>
|
||||
[
|
||||
'name:description' => '',
|
||||
'name:author' => '',
|
||||
'name:designer' => '',
|
||||
'name:distribution' => '',
|
||||
'name:keywords' => '',
|
||||
'name:abstract' => '',
|
||||
'name:copyright' => '',
|
||||
'name:expires' => '',
|
||||
'name:pragma' => '',
|
||||
'name:revisit-after' => '',
|
||||
'http:cache-control' => '',
|
||||
'http:refresh' => '',
|
||||
'name:robots' => []
|
||||
]
|
||||
];
|
||||
@@ -0,0 +1,169 @@
|
||||
<?php return
|
||||
[
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Project Language
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| It is used to change the system's error output or the language used in
|
||||
| language libraries.
|
||||
|
|
||||
*/
|
||||
|
||||
'language' => 'tr',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Timezone
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Sets the region for the time zone.
|
||||
|
|
||||
*/
|
||||
|
||||
'timezone' => 'Europe/Istanbul',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Set Locale
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Local settings for time zone.
|
||||
|
|
||||
| charset : Sets the date and time character set.
|
||||
| language: Sets the date and time language.
|
||||
|
|
||||
*/
|
||||
|
||||
'locale' =>
|
||||
[
|
||||
'charset' => 'en_US.UTF-8',
|
||||
'language' => 'english',
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Mode
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The project mode. It is recommended to arrange the publication when the
|
||||
| project is posted.
|
||||
|
|
||||
| Options: publication, restoration, development
|
||||
|
|
||||
*/
|
||||
|
||||
'mode' => 'development',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Key
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Project specific encryption key. Affects the Encode::super() method.
|
||||
|
|
||||
*/
|
||||
|
||||
'key' => ZN\In::secretProjectKey('!E;gk86H(-J>F6mq3b_3=h*'),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Benchmark
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| A table with a set of data is displayed in the lower right corner of the
|
||||
| screen.
|
||||
|
|
||||
*/
|
||||
|
||||
'benchmark' => false,
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Log
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Includes settings related to log recording.
|
||||
|
|
||||
| createFile: Starts the logging process.
|
||||
| fileTime: How long it will be stored is specified.
|
||||
|
|
||||
*/
|
||||
|
||||
'log' =>
|
||||
[
|
||||
'createFile' => false,
|
||||
'fileTime' => '30 day'
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Header
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| HTTP headers to be sent.
|
||||
|
|
||||
*/
|
||||
|
||||
'headers' =>
|
||||
[
|
||||
'content-type: text/html; charset=utf-8'
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Error Reporting
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Includes error reporting settings.
|
||||
|
|
||||
*/
|
||||
|
||||
'errorReporting' => E_ALL,
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Escape Errors
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Error numbers for which the error indication is to be prevented.
|
||||
|
|
||||
*/
|
||||
|
||||
'escapeErrors' => [],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Exit Errors
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| It is specified which error numbers will stop the code stream.
|
||||
|
|
||||
*/
|
||||
|
||||
'exitErrors' => [0, 2],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Restoration
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| For maintenance, the mode setting must be set to restoration.
|
||||
|
|
||||
| machinesIP: The IP addresses to be unaffected by restoration are
|
||||
| specified.
|
||||
|
|
||||
| pages: It is specified on which pages the restoration will be done.
|
||||
|
|
||||
| routePage: If a request is made to the restored pages, it will be
|
||||
| indicated where it will be directed.
|
||||
|
|
||||
*/
|
||||
|
||||
'restoration' =>
|
||||
[
|
||||
'machinesIP' => ['127.0.0.1'],
|
||||
'pages' => [],
|
||||
'routePage' => ''
|
||||
]
|
||||
];
|
||||
@@ -0,0 +1,75 @@
|
||||
<?php return
|
||||
[
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Open Controller
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Default boot controller.
|
||||
|
|
||||
*/
|
||||
|
||||
'openController' => 'Home',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Open Function
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| It is the default method of operation of the controller.
|
||||
|
|
||||
*/
|
||||
|
||||
'openFunction' => 'main',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Show 404
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Forwards the invalid request to the specified URI.
|
||||
|
|
||||
*/
|
||||
|
||||
'show404' => 'show404',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Request Methods
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Which URI specifies which request methods are valid or invalid.
|
||||
|
|
||||
*/
|
||||
|
||||
'requestMethods' =>
|
||||
[
|
||||
'page' => '',
|
||||
'disallowMethods' => [],
|
||||
'allowMethods' => []
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Pattern Type
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Regex type for route.
|
||||
|
|
||||
*/
|
||||
|
||||
'patternType' => 'classic',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Change URI
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Used to create a route. ['new regex' => 'old uri']
|
||||
|
|
||||
*/
|
||||
|
||||
'changeUri' => [
|
||||
|
||||
]
|
||||
];
|
||||
@@ -0,0 +1,62 @@
|
||||
<?php return
|
||||
[
|
||||
|
||||
'mail' =>
|
||||
[
|
||||
'driver' => 'smtp',
|
||||
'smtp' =>
|
||||
[
|
||||
'host' => '',
|
||||
'user' => '',
|
||||
'password' => '',
|
||||
'port' => 587,
|
||||
'keepAlive' => false,
|
||||
'timeout' => 10,
|
||||
'encode' => 'tls',
|
||||
'dsn' => false,
|
||||
'auth' => true
|
||||
],
|
||||
'imap' =>
|
||||
[
|
||||
'host' => '',
|
||||
'user' => '',
|
||||
'password' => '',
|
||||
'port' => 993,
|
||||
'flags' => [],
|
||||
'mailbox' => 'INBOX'
|
||||
],
|
||||
'general' =>
|
||||
[
|
||||
'senderMail' => '',
|
||||
'senderName' => '',
|
||||
]
|
||||
],
|
||||
|
||||
'cache' =>
|
||||
[
|
||||
'driver' => 'file',
|
||||
'file' =>
|
||||
[
|
||||
'encode' => false,
|
||||
],
|
||||
'redis' =>
|
||||
[
|
||||
'host' => '',
|
||||
'password' => '',
|
||||
'port' => 6379,
|
||||
'timeout' => 60,
|
||||
],
|
||||
'memcache' =>
|
||||
[
|
||||
'host' => '',
|
||||
'port' => 11211,
|
||||
'weight' => 1,
|
||||
],
|
||||
'memcached' =>
|
||||
[
|
||||
'host' => '',
|
||||
'port' => 11211,
|
||||
'weight' => 1,
|
||||
],
|
||||
]
|
||||
];
|
||||
@@ -0,0 +1,88 @@
|
||||
<?php return
|
||||
[
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Constructor Controllers
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Controllers that will run before the system and before the controllers.
|
||||
|
|
||||
| Example:
|
||||
| [
|
||||
| 'starting/starting:main', 'starting:otherMethod',
|
||||
| 'otherController/otherController:main', 'otherController:otherMethod'
|
||||
| ]
|
||||
|
|
||||
*/
|
||||
|
||||
'constructors' => ['Initialize'],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Destructor Controllers
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| It is the controllers that will go into the circuit after the
|
||||
| controllers work.
|
||||
|
|
||||
*/
|
||||
|
||||
'destructors' => [],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Extract View Data
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| It sends data to the controllers working under it with the View library.
|
||||
| Sent data is accessed with [$this] object.
|
||||
|
|
||||
*/
|
||||
|
||||
'extractViewData' => false,
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Ajax Code Continue
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| After Ajax operations, it is specified whether the code will continue to
|
||||
| flow. If you get unexpected output on ajax requests, set this value to
|
||||
| false.
|
||||
|
|
||||
*/
|
||||
|
||||
'ajaxCodeContinue' => false,
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| View Name Type
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| If the views are created in a certain standard, they are automatically
|
||||
| loaded by the controllers. There are 2 options for this;
|
||||
|
|
||||
| directory: Views/controllerName/methodName.php
|
||||
|
|
||||
| file: Views/controllerName-methodName.php
|
||||
|
|
||||
*/
|
||||
|
||||
'viewNameType' => 'directory',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Autoload
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Allows the files in the Starting/Autoload/ folder to be installed
|
||||
| automatically.
|
||||
|
|
||||
*/
|
||||
|
||||
'autoload' =>
|
||||
[
|
||||
'status' => true,
|
||||
'recursive' => false
|
||||
]
|
||||
];
|
||||
@@ -0,0 +1,108 @@
|
||||
<?php return
|
||||
[
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Cookie
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Contains settings related to cookies.
|
||||
| Configures the parameters of the setcookie function.
|
||||
|
|
||||
| encode: The cookie keys are set to which algorithm to encrypt.
|
||||
|
|
||||
*/
|
||||
|
||||
'cookie' =>
|
||||
[
|
||||
'encode' => '',
|
||||
'regenerate' => true,
|
||||
'time' => 604800,
|
||||
'path' => '/',
|
||||
'domain' => '',
|
||||
'secure' => false,
|
||||
'httpOnly' => false
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Session
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Contains settings related to session.
|
||||
|
|
||||
| encode: The cookie keys are set to which algorithm to encrypt.
|
||||
|
|
||||
*/
|
||||
|
||||
'session' =>
|
||||
[
|
||||
'encode' => 'super',
|
||||
'regenerate' => true,
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Shopping
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Contains settings related to shopping.
|
||||
|
|
||||
| driver: It is specified in which structure the cart information will be
|
||||
| stored.
|
||||
|
|
||||
*/
|
||||
|
||||
'shopping' =>
|
||||
[
|
||||
'driver' => 'session'
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Compression
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Contains settings related to compression.
|
||||
|
|
||||
| driver: It is specified which drive to compress.
|
||||
|
|
||||
*/
|
||||
|
||||
'compression' =>
|
||||
[
|
||||
'driver' => 'gz'
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Cache
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Includes configurations for the Cache library.
|
||||
|
|
||||
| drivers : apc, memcache, wincache, file, redis
|
||||
| driverSettings: Configurations by driver
|
||||
|
|
||||
*/
|
||||
|
||||
'cache' =>
|
||||
[
|
||||
'driver' => 'file',
|
||||
'driverSettings' =>
|
||||
[
|
||||
'memcache' =>
|
||||
[
|
||||
'host' => '127.0.0.1',
|
||||
'port' => '11211',
|
||||
'weight' => '1',
|
||||
],
|
||||
'redis' =>
|
||||
[
|
||||
'password' => NULL,
|
||||
'host' => '127.0.0.1',
|
||||
'port' => 6379,
|
||||
'timeout' => 0
|
||||
]
|
||||
]
|
||||
]
|
||||
];
|
||||
@@ -0,0 +1,202 @@
|
||||
<?php return
|
||||
[
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Wizard
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The template wizard specifies what to compile.
|
||||
|
|
||||
*/
|
||||
|
||||
'wizard' =>
|
||||
[
|
||||
'keywords' => true,
|
||||
'printable' => true,
|
||||
'functions' => true,
|
||||
'comments' => true,
|
||||
'tags' => true,
|
||||
'jsdata' => true,
|
||||
'callableJS' => true,
|
||||
'html' => false
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Pagination
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Includes default settings for the paging view.
|
||||
|
|
||||
*/
|
||||
|
||||
'pagination' =>
|
||||
[
|
||||
'prevName' => '«',
|
||||
'nextName' => '»',
|
||||
'firstName' => '««',
|
||||
'lastName' => '»»',
|
||||
'totalRows' => 10,
|
||||
'start' => NULL,
|
||||
'limit' => 10,
|
||||
'countLinks' => 10,
|
||||
'type' => 'classic', # classic, ajax
|
||||
'output' => 'bootstrap', # classic, bootstrap
|
||||
'class' =>
|
||||
[
|
||||
'current' => 'active',
|
||||
'links' => '',
|
||||
'prev' => '',
|
||||
'next' => '',
|
||||
'last' => '',
|
||||
'first' => ''
|
||||
],
|
||||
'style' =>
|
||||
[
|
||||
'current' => '',
|
||||
'links' => '',
|
||||
'prev' => '',
|
||||
'next' => '',
|
||||
'last' => '',
|
||||
'first' => ''
|
||||
]
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Captcha
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Includes default settings for the captcha.
|
||||
|
|
||||
*/
|
||||
|
||||
'captcha' =>
|
||||
[
|
||||
'text' =>
|
||||
[
|
||||
'type' => 'alnum',
|
||||
'length' => 6,
|
||||
'color' => '85|85|85',
|
||||
'size' => 10,
|
||||
'x' => 100,
|
||||
'y' => 18,
|
||||
'angle' => 0,
|
||||
'ttf' => []
|
||||
],
|
||||
'background' =>
|
||||
[
|
||||
'color' => '240|240|240',
|
||||
'image' => []
|
||||
],
|
||||
'border' =>
|
||||
[
|
||||
'status' => true,
|
||||
'color' => '220|220|220'
|
||||
],
|
||||
'size' =>
|
||||
[
|
||||
'width' => 254,
|
||||
'height' => 52
|
||||
],
|
||||
'grid' =>
|
||||
[
|
||||
'status' => false,
|
||||
'color' => '220|220|220',
|
||||
'spaceX' => 12,
|
||||
'spaceY' => 4
|
||||
]
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Datagrid
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Includes default settings for the datagrids.
|
||||
|
|
||||
*/
|
||||
|
||||
'dbgrid' =>
|
||||
[
|
||||
'styleElement' =>
|
||||
[
|
||||
'#DBGRID_TABLE tr:nth-child(even)' => ['background' => '#E6F9FF'],
|
||||
'#DBGRID_TABLE tr:nth-child(odd)' => ['background' => '#FFF']
|
||||
],
|
||||
'attributes' =>
|
||||
[
|
||||
'table' => ['width' => '100%', 'cellspacing' => 0, 'cellpadding' => 10, 'style' => 'margin-top:15px; margin-bottom:15px; border:solid 1px #ddd; font-family:Arial; color:#888; font-size:14px;'],
|
||||
'editTables' => ['style' => 'font-family:Arial; color:#888; font-size:14px;'],
|
||||
'columns' => ['height' => 75, 'style' => 'text-decoration:none; color:#0085B2'],
|
||||
'search' => ['style' => 'height:34px; color:#0085B2; border:solid 1px #0085B2; text-indent:10px'],
|
||||
'add' => ['style' => 'height:34px; color:#0085B2; background:none; border:solid 1px #0085B2; cursor:pointer'],
|
||||
'deleteSelected'=> ['style' => 'height:34px; color:#0085B2; background:none; border:solid 1px #0085B2; cursor:pointer'],
|
||||
'deleteAll' => ['style' => 'height:34px; color:#0085B2; background:none; border:solid 1px #0085B2; cursor:pointer'],
|
||||
'save' => ['style' => 'height:34px; color:#0085B2; background:none; border:solid 1px #0085B2; cursor:pointer'],
|
||||
'update' => ['style' => 'height:34px; color:#0085B2; background:none; border:solid 1px #0085B2; cursor:pointer'],
|
||||
'delete' => ['style' => 'height:34px; color:#0085B2; background:none; border:solid 1px #0085B2; cursor:pointer'],
|
||||
'edit' => ['style' => 'height:34px; color:#0085B2; background:none; border:solid 1px #0085B2; cursor:pointer'],
|
||||
'listTables' => [],
|
||||
'inputs' =>
|
||||
[
|
||||
'text' => ['style' => 'height:34px; color:#0085B2; border:solid 1px #0085B2; text-indent:10px'],
|
||||
'textarea' => ['style' => 'height:120px; width:290px; color:#0085B2; border:solid 1px #0085B2; text-indent:10px'],
|
||||
'radio' => [],
|
||||
'checkbox' => [],
|
||||
'select' => []
|
||||
]
|
||||
],
|
||||
'pagination' =>
|
||||
[
|
||||
'style' =>
|
||||
[
|
||||
'links' => 'color:#0085B2;width:30px; height:30px;text-align:center;padding-top:4px;display:inline-block;background:white;border:solid 1px #ddd;border-radius: 4px;-webkit-border-radius: 4px;-moz-border-radius: 4px;text-decoration:none;',
|
||||
'current' => 'font-weight:bold;'
|
||||
]
|
||||
]
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| ML Grid
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| It edits the table created by the ML::table() method.
|
||||
|
|
||||
| styleElement: Used to give built-in style to the table.
|
||||
| attributes : Used to add attributes to objects in the table.
|
||||
| pagination : It arranges the pagination bar on the table.
|
||||
|
|
||||
*/
|
||||
|
||||
'mlgrid' =>
|
||||
[
|
||||
'styleElement' =>
|
||||
[
|
||||
#'#ML_TABLE tr:nth-child(even)' => ['background' => '#E6F9FF'],
|
||||
#'#ML_TABLE tr:nth-child(odd)' => ['background' => '#FFF']
|
||||
],
|
||||
'attributes' =>
|
||||
[
|
||||
'table' => ['class' => 'table table-bordered table-hover table-striped'],
|
||||
'add' => ['style' => 'height:30px; color:#0085B2; background:none; border:solid 1px #ccc; cursor:pointer; border-radius:4px'],
|
||||
'update' => ['style' => 'height:30px; color:#0085B2; background:none; border:solid 1px #ccc; cursor:pointer; border-radius:4px'],
|
||||
'delete' => ['style' => 'height:30px; color:#0085B2; background:none; border:solid 1px #ccc; cursor:pointer; border-radius:4px'],
|
||||
'clear' => ['style' => 'height:30px; color:#0085B2; background:none; border:solid 1px #ccc; cursor:pointer; border-radius:4px'],
|
||||
'textbox' => ['style' => 'height:30px; color:#0085B2; border:solid 1px #ccc; text-indent:10px; border-radius:4px']
|
||||
],
|
||||
'pagination' =>
|
||||
[
|
||||
'style' =>
|
||||
[
|
||||
'links' => 'color:#0085B2; width:30px; height:30px; text-align:center; padding-top:4px;
|
||||
display:inline-block; background:white; border:solid 1px #ddd; border-radius: 4px;
|
||||
-webkit-border-radius: 4px; -moz-border-radius: 4px;text-decoration:none;',
|
||||
|
||||
'current' => 'font-weight:bold;'
|
||||
],
|
||||
'class' => []
|
||||
]
|
||||
]
|
||||
];
|
||||
@@ -0,0 +1,66 @@
|
||||
<?php namespace Project\Controllers;
|
||||
use URI,DB,Cookie,URL,Method;
|
||||
/*
|
||||
* Created By : Erkan IŞIK
|
||||
* Created Date: 2017-12-05
|
||||
* Update Date : 2021-11-17
|
||||
*/
|
||||
|
||||
class Blog extends Controller{
|
||||
|
||||
function main(){
|
||||
|
||||
Cookie::insert('returnlink', '');
|
||||
if (Method::post('lang')) {
|
||||
|
||||
$bloglist = contentListAdmin(Method::post('lang'));
|
||||
}else{
|
||||
$bloglist = contentListAdmin('tr');
|
||||
}
|
||||
view::bloglist($bloglist);
|
||||
}
|
||||
|
||||
function category(){
|
||||
$id = explode('-',URI::get('category'));
|
||||
$id = $id['0'];
|
||||
//$data['catlist'] = DB::where('icerik_katid',$id['0'])->get('content')->result();
|
||||
// define('TITLE', ' '.$seo['0']);
|
||||
//import::view(THEMA_NAME.'blog/category_view',$id);
|
||||
|
||||
view::id($id);
|
||||
}
|
||||
|
||||
function content(){
|
||||
|
||||
$id = explode('-',URI::get('content'));
|
||||
$id = $id['0'];
|
||||
|
||||
$row = contentRow($id);
|
||||
if (!$row) {
|
||||
return Masterpage::error404();
|
||||
}
|
||||
|
||||
if (Cookie::select('contentid') != $id) {
|
||||
$hits = $row->hits + 1;
|
||||
DB::where('id', $id)->update('content',['hits' => $hits]);
|
||||
Cookie::time(60 * 60 * 24)->insert('contentid',$id);
|
||||
}
|
||||
|
||||
Masterpage::title($row->title);
|
||||
Masterpage::meta
|
||||
([
|
||||
'name:description' => $row->keywords,
|
||||
'name:keywords' => $row->label
|
||||
]);
|
||||
|
||||
define('TITLE',$row->title);
|
||||
define('LINK','https://blog.pisilinux.og/content/'.$id.'-'.$row->title_seo.'.html');
|
||||
define('DESC',$row->keywords);
|
||||
define('IMG',content_image($row->content));
|
||||
|
||||
view::id($id);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,79 @@
|
||||
<?php namespace Project\Controllers;
|
||||
use Method, URI, DB, Session, Cookie;
|
||||
|
||||
class Bugs extends Controller{
|
||||
|
||||
function main(){
|
||||
/*
|
||||
Masterpage::meta([
|
||||
'name:title' => settings('title'),
|
||||
'name:description' => contentRow($id)->keywords,
|
||||
'name:keywords' => contentRow($id)->label,
|
||||
]);
|
||||
*/
|
||||
Cookie::insert('returnlink', 'bugs');
|
||||
Masterpage::meta([
|
||||
'name:description' => "Pisilinux istek ve hata kayıtlarının toplandığı alandır",
|
||||
'name:keywords' => "Bugs, hata, istek",
|
||||
|
||||
]);
|
||||
}
|
||||
|
||||
function new(){
|
||||
if (Session::select('userid') =='') {
|
||||
redirect('bugs');
|
||||
}
|
||||
if (Method::post()) {$this->bugs_model->new(Method::post());}
|
||||
}
|
||||
|
||||
function edit(){
|
||||
$id = Uri::get('edit');
|
||||
$userid = Session::select('userid');
|
||||
|
||||
if (bugsRow($id)->userid == $userid OR session::select('yetki')=='1') {
|
||||
|
||||
if (Method::post()) {$this->bugs_model->edit(Method::post());}
|
||||
View::id($id)->control('1');
|
||||
}else{
|
||||
view::control('0');
|
||||
//echo "<h1>bu içeriği düzenlemeye yetkili değilsiniz.</h1>";
|
||||
}
|
||||
}
|
||||
|
||||
function search(){
|
||||
}
|
||||
|
||||
function detail(){
|
||||
$id = Uri::get('detail');
|
||||
if (Method::post()) {$this->bugs_model->insert(Method::post());}
|
||||
View::id($id);
|
||||
}
|
||||
|
||||
|
||||
function help(){
|
||||
import::view(THEMA_NAME.'bugs/help');
|
||||
}
|
||||
|
||||
function bugsClose(){
|
||||
$id = Method::post('id');
|
||||
$status = Method::post('status');
|
||||
|
||||
DB::where('id',$id)->update('bugs',[
|
||||
'status' => $status
|
||||
]);
|
||||
|
||||
echo 1;
|
||||
}
|
||||
|
||||
|
||||
function delete($id){
|
||||
$id = Uri::get('delete');
|
||||
$par = explode('&', $id);
|
||||
$id = $par[0];
|
||||
$parentId = $par[1];
|
||||
DB::where('id', $id)->delete('bugs');
|
||||
redirect('bugs/detail/' . $parentId);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
<?php namespace Project\Controllers;
|
||||
use DB,Import,URL,Cookie,Session,ML;
|
||||
class Category extends Controller{
|
||||
|
||||
function main($id){
|
||||
Cookie::insert('returnlink', 'category');
|
||||
$id = explode('-', $id);
|
||||
$id1 = $id['0'];
|
||||
view::id($id1);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
<?php namespace Project\Controllers;
|
||||
use Method,Captcha,Session,View;
|
||||
|
||||
class Contact extends Controller{
|
||||
|
||||
function main(){
|
||||
}
|
||||
|
||||
function send(){
|
||||
$name = Method::post('name');
|
||||
$email = Method::post('email');
|
||||
$message = Method::post('message');
|
||||
$token = Method::post('token');
|
||||
|
||||
if ($token !== Captcha::getCode()) {
|
||||
echo '0&'.lang('contact','message4');
|
||||
return;
|
||||
}
|
||||
|
||||
if (empty($name) || strlen($name) < 2) {
|
||||
echo '0&'.lang('contact','nameAlert');
|
||||
return;
|
||||
}
|
||||
|
||||
if (empty($email) || !filter_var($email, FILTER_VALIDATE_EMAIL)) {
|
||||
echo '0&'.lang('contact','mailFaultAlert');
|
||||
return;
|
||||
}
|
||||
|
||||
if (empty($message) || strlen($message) < 10) {
|
||||
echo '0&'.lang('contact','messageAlert');
|
||||
return;
|
||||
}
|
||||
|
||||
$lastTime = Session::select('contact_last_time');
|
||||
|
||||
if ($lastTime !== false && (time() - $lastTime) < 30) {
|
||||
echo '0&'.lang('contact','message1');
|
||||
return;
|
||||
}
|
||||
|
||||
Session::insert('contact_last_time', time());
|
||||
|
||||
$email = strtolower(trim($email));
|
||||
$message2 = '
|
||||
Gönderildiği Yer: Pisilinux İletişim Formu
|
||||
Mesajı Gönderen: '.$name.'
|
||||
Mail Adresi: '.$email.'
|
||||
Mesaj: '.$message;
|
||||
|
||||
telegram($message2);
|
||||
|
||||
echo '1&'.lang('contact','message1');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
<?php namespace Project\Controllers;
|
||||
use DB;
|
||||
/**
|
||||
* Created By: Erkan IŞIK
|
||||
* Created Date: 2017-05-09
|
||||
*
|
||||
*/
|
||||
class Content extends Controller{
|
||||
|
||||
function main($p = ''){
|
||||
$p = explode('-', $p);
|
||||
|
||||
|
||||
$content = DB::where('id',$p[0])->get('content')->row();
|
||||
|
||||
view::content($content);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
<?php namespace Project\Controllers;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
class Discord extends Controller
|
||||
{
|
||||
|
||||
function main()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
<?php namespace Project\Controllers;
|
||||
use DB,Import,URL,Cookie,Session,ML,Method;
|
||||
|
||||
/*
|
||||
* Created By: Erkan IŞIK
|
||||
* Created Date: 2017-12-07
|
||||
* Update Date: 2017-12-07
|
||||
*/
|
||||
class Download extends Controller{
|
||||
|
||||
function main(){
|
||||
//$data = DB::orderBy('id','desc')->get('download')->result();
|
||||
//View::data($data)->get('main');
|
||||
define('TITLE', 'Download');
|
||||
}
|
||||
function counter(){
|
||||
$id = method::post('id');
|
||||
|
||||
$count = DB::whereId($id)->downlinkRowCount();
|
||||
|
||||
DB::where('id',$id)->update('downlink', [
|
||||
'count' => $count+1,
|
||||
]);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
<?php namespace Project\Controllers;
|
||||
use DB;
|
||||
use Import;
|
||||
use URL;
|
||||
use Cookie;
|
||||
use Session;
|
||||
use ML;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
class Etiketler extends Controller
|
||||
{
|
||||
|
||||
function main($label){
|
||||
$label = explode('.',$label);
|
||||
|
||||
$data['list'] = $this->blog_model->label_list($label['0']);
|
||||
import::view(THEMA_NAME.'blog/label_view',$data);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,97 @@
|
||||
<?php namespace Project\Controllers;
|
||||
use DB, Import, URL, Cookie, Session, ML, Method,URI;
|
||||
/*
|
||||
* Created By: Erkan IŞIK
|
||||
* Created Date: 2017-12-05
|
||||
* Update Date: 2018-01-22
|
||||
*/
|
||||
|
||||
class Forum extends Controller{
|
||||
|
||||
|
||||
function main(){
|
||||
Cookie::insert('returnlink', 'forum');
|
||||
}
|
||||
|
||||
|
||||
function category(){
|
||||
$id = URI::get('category');
|
||||
$id_ext = explode('-', $id);
|
||||
$konular = DB::orderBy('id', 'desc')->where('category_id', $id_ext['0'], 'and')->where('content_id', '0')->get('forum')->result();
|
||||
$kategori = $id;
|
||||
|
||||
define('TITLE', ' ' . forum_kategori_adi($id_ext[0])->adi);
|
||||
View::seokat($id)->konular($konular)->kategori($id);
|
||||
}
|
||||
|
||||
function newsubject(){
|
||||
if (USERID) {
|
||||
if (method::post()) {
|
||||
$this->forum_model->konu_kaydet(method::post());
|
||||
rssForumSonKonular();
|
||||
}
|
||||
}else{
|
||||
redirect('member');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* forum yeni konu girişi*/
|
||||
function newthread(){
|
||||
$id = URI::get('newthread');
|
||||
if (Session::select('userid')) {
|
||||
$id_ext = explode('-', $id);
|
||||
if (method::post()) {$this->forum_model->konu_kaydet1(method::post());}
|
||||
View::id($id);
|
||||
}else{
|
||||
redirect('member');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function subject(){
|
||||
$id = URI::get('subject');
|
||||
$id1 = explode('-',$id);
|
||||
$id2 = $id1['0'];
|
||||
|
||||
if (method::post()) {$this->forum_model->cevap(method::post()); }
|
||||
|
||||
$fk = $this->forum_model->forumkonu($id2);
|
||||
|
||||
if (isset($fk->title_seo)) {
|
||||
|
||||
define('TITLE', ' ' . $fk->title_seo);
|
||||
session::insert('return', 'forum/subject/' . $fk->id . '-' . $fk->title_seo);
|
||||
if (!Cookie::select('count')) {
|
||||
$hits = DB::select('view')->where('id', $id2)->get('forum')->value();
|
||||
$hit = $hits + 1;
|
||||
DB::where('id', $id2)->update('forum', ['view' => $hit]);
|
||||
}
|
||||
Cookie::time(60 * 60 * 24)->insert('count',$id2);
|
||||
|
||||
view::fk($fk);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
function konu_duzenle($id){
|
||||
if (method::post()) {$this->forum_model->Update(method::post());}
|
||||
$data['dzn'] = $this->forum_model->edit($id);
|
||||
import::view(THEMA_NAME . 'forum/konu_duzenle', $data);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
function delete($id){
|
||||
$forum = DB::where('id', $id)->get('forum')->row();
|
||||
if ($forum->content_id > 0) {
|
||||
$link = '/forum/subject/' . $forum->content_id . '-' . seo(forum_title($forum->content_id)->title);
|
||||
} else {
|
||||
$link = '/forum';
|
||||
}
|
||||
DB::where('id', $id)->delete('forum');
|
||||
redirect($link);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
<?php namespace Project\Controllers;
|
||||
use DB, Import,URL;
|
||||
|
||||
class Galery extends Controller{
|
||||
|
||||
function main(){
|
||||
Import::view(THEMA_NAME.'Galery/main');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
<?php namespace Project\Controllers;
|
||||
USE Cookie,URL;
|
||||
class Home extends Controller{
|
||||
|
||||
public function main(){
|
||||
Cookie::insert('returnlink', '/');
|
||||
|
||||
Masterpage::meta
|
||||
([
|
||||
'name:description' => setting('description'),
|
||||
'name:keywords' => setting('keywords')
|
||||
]);
|
||||
|
||||
Masterpage::title('Pisi GNU/Linux - Özgürlük Şimdi Başladı...');
|
||||
Masterpage::description(setting('description'));
|
||||
Masterpage::keywords(setting('keywords'));
|
||||
|
||||
define('TITLE','Pisi GNU/Linux - Özgürlük Şimdi Başladı...');
|
||||
define('LINK',URL::base());
|
||||
define('DESC','Pisi GNU/Linux - Özgürlük Şimdi Başladı...');
|
||||
define('IMG','http://pisilinux.og/upload/pisilinux_pisi.png');
|
||||
|
||||
// Son 3 blog yazısını ana sayfaya aktar
|
||||
$allBlogs = contentListAdmin(LANG);
|
||||
view::blogList(array_slice((array)$allBlogs, 0, 3));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
namespace Project\Controllers;
|
||||
|
||||
class Initialize extends Controller
|
||||
{
|
||||
/**
|
||||
* The codes to run at startup.
|
||||
* It enters the circuit before all controllers.
|
||||
* You can change this setting in Config/Starting.php file.
|
||||
*/
|
||||
public function main()
|
||||
{
|
||||
# The theme is activated.
|
||||
# Location: Resources/Themes/Default/
|
||||
Theme::active('pisiV4/');
|
||||
|
||||
# The current settings are being configured.
|
||||
Masterpage::headPage('Assets/head')
|
||||
->bodyPage('Assets/body');
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
<?php namespace Project\Controllers;
|
||||
use DB, URL, Cookie, Session, ML, Method, Email, URI, Captcha, Validator, Import, Post, Guard;
|
||||
|
||||
/**
|
||||
* Created By : Erkan IŞIK
|
||||
* Created Date: 2017-12-06
|
||||
* Update Date : 2018-11-24
|
||||
*/
|
||||
|
||||
|
||||
class Member extends Controller{
|
||||
|
||||
function main(){
|
||||
if(Method::post()) {$this->user_model->logincheck(Method::post());}
|
||||
}
|
||||
|
||||
function register(){
|
||||
$token = Guard::csrftokenkey('register_token');
|
||||
View::token($token);
|
||||
}
|
||||
|
||||
function new_user(){
|
||||
if (!Guard::validcsrftokenkey('register_token')) {
|
||||
echo 'csrf';
|
||||
return;
|
||||
}
|
||||
|
||||
$post = Method::post();
|
||||
|
||||
if (Method::post('captcha') !== Captcha::getCode()) {
|
||||
echo 'captcha';
|
||||
return;
|
||||
}
|
||||
|
||||
if ($post['password'] !== $post['password2']) {
|
||||
echo 'match';
|
||||
return;
|
||||
}
|
||||
|
||||
if (strlen($post['password']) < 6) {
|
||||
echo 'length';
|
||||
return;
|
||||
}
|
||||
|
||||
$data = $this->user_model->yeniuye($post);
|
||||
|
||||
if ($data) {
|
||||
echo '1';
|
||||
}
|
||||
}
|
||||
|
||||
function emailcontrol(){
|
||||
$this->user_model->emailcontrol(Method::post());
|
||||
}
|
||||
|
||||
|
||||
function aktivizasyon(){
|
||||
$act = Uri::get('aktivizasyon');
|
||||
DB::where('aktivizasyon',$act)->update('user',[
|
||||
'aktivizasyon' => '',
|
||||
'status' => '1',
|
||||
]);
|
||||
|
||||
if (DB::affectedRows()) {view::control('1');}else{redirect('/');}
|
||||
}
|
||||
|
||||
function password_forgot(){
|
||||
if (method::post()) {$this->user_model->sifremiunuttum_model(method::post());}
|
||||
|
||||
}
|
||||
|
||||
function ref($data){
|
||||
$exp = explode('-', $data);
|
||||
$ref = $exp['0'].'/'.$exp['1'].'/'.$exp['2'].'-'.seo($exp['3']);
|
||||
Session::insert('ref', $ref);
|
||||
if(method::post()) {$this->user_model->logincheck(method::post());}
|
||||
}
|
||||
|
||||
function yenisifre(){
|
||||
$act = Uri::get('yenisifre');
|
||||
if (method::post()) {$this->user_model->yenisifre(method::post());}
|
||||
|
||||
$id = DB::select('user_id')->where('aktivizasyon',$act)->get('user')->value();
|
||||
$act = $act;
|
||||
View::id($id)->act($act);
|
||||
}
|
||||
|
||||
function logout(){
|
||||
Session::deleteAll();
|
||||
redirect(URL::base());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
<?php namespace Project\Controllers;
|
||||
use DB,Cookie,Session,URI,URL;
|
||||
/**
|
||||
* Created By : Erkan IŞIK
|
||||
* Created Date: 2017-12-24
|
||||
* Update Date : 2020-07-26
|
||||
*
|
||||
*/
|
||||
|
||||
class Page extends Controller{
|
||||
|
||||
function main(){
|
||||
Cookie::insert('returnlink', 'page');
|
||||
$id = URI::get('page');
|
||||
|
||||
|
||||
$url = URL::base()."sayfa/".$id."-".contentRow($id)->title_seo;
|
||||
Masterpage::title(contentRow($id)->title);
|
||||
Masterpage::meta([
|
||||
'name:keywords' => contentRow($id)->label,
|
||||
'name:description' => contentRow($id)->keywords,
|
||||
|
||||
]);
|
||||
|
||||
|
||||
define('TITLE',contentRow($id)->title);
|
||||
define('LINK',$url);
|
||||
define('DESC',contentRow($id)->keywords);
|
||||
define('IMG',content_image(contentRow($id)->content));
|
||||
|
||||
View::id($id);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,99 @@
|
||||
<?php namespace Project\Controllers;
|
||||
use DB, Import, URL, Cookie, Session, ML, Method,URI;
|
||||
/*
|
||||
* Created By: Erkan IŞIK
|
||||
* Created Date: 2020-04-23
|
||||
*/
|
||||
|
||||
class question_answer extends Controller{
|
||||
/*
|
||||
function __construct() {
|
||||
|
||||
if (Cookie::select('forum')) {
|
||||
|
||||
if (Cookie::select('forum') == 'sorucevap') {
|
||||
redirect('forum/sorucevap');
|
||||
} else {
|
||||
redirect('forum/forum1');
|
||||
}
|
||||
} else {
|
||||
redirect('forum/sorucevap');
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
function main(){
|
||||
define('TITLE', ' Soru Cevap');
|
||||
define('desc', 'Soru Cevap');
|
||||
import::view(THEMA_NAME . 'question_answer/index');
|
||||
}
|
||||
|
||||
|
||||
function subject($id){
|
||||
|
||||
$par = explode('-', $id);
|
||||
if (method::post()) {$this->forum_model->cevap(method::post());}
|
||||
$data['fk'] = $this->forum_model->forumkonu($par['0']);
|
||||
if (isset($data['fk']->title_seo)) {
|
||||
define('TITLE', ' ' . $data['fk']->title_seo);
|
||||
session::insert('return', 'question_answer/subject/' . $data['fk']->id . '-' . $data['fk']->title_seo);
|
||||
$hits = DB::select('view')->where('id', $par[0])->get('forum')->value();
|
||||
$hit = $hits + 1;
|
||||
DB::where('id', $par[0])->update('forum', ['view' => $hit]);
|
||||
import::view(THEMA_NAME . 'question_answer/subject', $data);
|
||||
} else {
|
||||
import::view(THEMA_NAME . 'question_answer/noSubject');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function category(){
|
||||
$par = URI::category();
|
||||
$par = explode('-', $par);
|
||||
define('TITLE', 'Soru cevap / category');
|
||||
$data['id'] = $par['0'];
|
||||
import::view(THEMA_NAME . 'question_answer/category', $data);
|
||||
}
|
||||
|
||||
function newsubject(){
|
||||
$par = URI::newsubject();
|
||||
$par = explode('-', $par);
|
||||
if (method::post()) {$this->questionanswer_model->newsubject(method::post());}
|
||||
$data['id'] = $par['0'];
|
||||
import::view(THEMA_NAME . 'question_answer/newsubject',$data);
|
||||
}
|
||||
|
||||
function nocatnewsubject(){
|
||||
if (method::post()) {
|
||||
output(method::post());
|
||||
$this->questionanswer_model->newsubject1(method::post());
|
||||
}
|
||||
import::view(THEMA_NAME . 'question_answer/noCategoryNewSubject');
|
||||
}
|
||||
|
||||
function delete($id){
|
||||
$par = explode('-', $id);
|
||||
$id = $par['0'];
|
||||
$link = 'question_answer/category/'.$par['1'].'-'.forum_kategori_row($par['1'])->adi_seo;
|
||||
|
||||
DB::where('id', $id)->delete('forum');
|
||||
redirect($link);
|
||||
}
|
||||
|
||||
|
||||
function edit($id){
|
||||
|
||||
if (Method::post()) {$this->questionanswer_model->update(Method::post());}
|
||||
|
||||
$query = DB::where('id', $id)->get('forum')->row();
|
||||
if ($query->content_id == '0') {$id1 = $query->id;}else{$id1 = $query->content_id;}
|
||||
$data['id'] = $id;
|
||||
$data['id1'] = $id1;
|
||||
import::view(THEMA_NAME.'question_answer/edit', $data);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
<?php namespace Project\Controllers;
|
||||
use Import, URI, DB, Method;
|
||||
|
||||
class Search extends Controller{
|
||||
|
||||
function main(){
|
||||
$search = Method::post('search');
|
||||
|
||||
Masterpage::title('Search | Pisi GNU/Linux');
|
||||
|
||||
|
||||
$blogsearch =blogSearch($search);
|
||||
|
||||
$forumsearch = forumSearch($search);
|
||||
$wikisearch = wikiSearch($search);
|
||||
|
||||
View::wikisearch($wikisearch)->blogsearch(blogsearch($search))->forumsearch(forumSearch($search))->search($search);
|
||||
|
||||
//Import::view(THEMA_NAME.'Search/index',$data);
|
||||
}
|
||||
|
||||
function mesaj(){
|
||||
Masterpage::title('Forum Search | Pisi GNU/Linux');
|
||||
$id = Uri::mesaj();
|
||||
$acilankonu = DB::where('content_id','0','and')->where('user_id',$id)->forum()->result();
|
||||
view::konulistesi($acilankonu);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
<?php namespace Project\Controllers;
|
||||
use Import, URL;
|
||||
class Show404 extends Controller{
|
||||
|
||||
function main(){
|
||||
import::view(THEMA_NAME.'show404');
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<?php namespace Project\Controllers;
|
||||
|
||||
class Sss extends Controller{
|
||||
|
||||
function main(){
|
||||
$liste = $this->sss_model->listele();
|
||||
View::liste($liste);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
<?php namespace Project\Controllers;
|
||||
use DB,URI,Cookie, Method;
|
||||
/*
|
||||
* Created By : Erkan IŞIK
|
||||
* Created Date: 2017-12-24
|
||||
* Update Date : 2018-02-15
|
||||
*/
|
||||
class Wiki extends Controller{
|
||||
|
||||
|
||||
function main(){
|
||||
Cookie::insert('returnlink', 'wiki');
|
||||
$catlist = $this->wiki_model->catlist();
|
||||
View::catlist($catlist);
|
||||
}
|
||||
|
||||
|
||||
function category(){
|
||||
$id = explode('-',URI::get('category'));
|
||||
$id = $id['0'];
|
||||
|
||||
//$wikikat = $this->wiki_model->wikikat($kat_id);
|
||||
|
||||
//$kategori_name = $id['0'];
|
||||
View::id($id);
|
||||
}
|
||||
|
||||
function content(){
|
||||
$id = explode('-',URI::get('content'));
|
||||
$id = $id['0'];
|
||||
|
||||
View::id($id);
|
||||
if (!Cookie::select('hit')) {
|
||||
$data['content'] = $this->wiki_model->content($id);
|
||||
DB::where('id',$data['content']->id)->update('wiki',['hits' => $data['content']->hits+1,]);
|
||||
Cookie::time(60 * 60 * 24)->insert('hit','1');
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//define('title', ' '.$data['content']->baslik);
|
||||
//define('keywords', $data['content']->keywords);
|
||||
//define('desc', kelimebol($data['content']->detay,200) );
|
||||
//define('img', content_image($data['content']->detay));
|
||||
|
||||
//import::view(THEMA_NAME.'wiki/content_view',$data);
|
||||
}
|
||||
|
||||
|
||||
|
||||
function preview(){
|
||||
view::id(URI::get('preview'));
|
||||
}
|
||||
|
||||
function search(){
|
||||
$q = Method::get('q');
|
||||
$results = [];
|
||||
if (strlen(trim($q ?? '')) >= 2) {
|
||||
$results = wikiSearch($q);
|
||||
}
|
||||
View::q($q)->results($results);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user