new pisilinux web sites

This commit is contained in:
Erkan IŞIK
2026-07-01 16:44:17 +03:00
commit b58488b586
21740 changed files with 2066209 additions and 0 deletions
+80
View File
@@ -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' => []
];
+26
View File
@@ -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'
];
+21
View File
@@ -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
]
];
+154
View File
@@ -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' => []
]
];
+169
View File
@@ -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' => ''
]
];
+78
View File
@@ -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' => [
]
];
+88
View File
@@ -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
]
];
+108
View File
@@ -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
]
]
]
];
+202
View File
@@ -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' => '&laquo;',
'nextName' => '&raquo;',
'firstName' => '&laquo;&laquo;',
'lastName' => '&raquo;&raquo;',
'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' => []
]
]
];
+9
View File
@@ -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');
}
}
View File
+18
View File
@@ -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';
+12
View File
@@ -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);
}
}
+36
View File
@@ -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);
}
}
+52
View File
@@ -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);
}
}
+14
View File
@@ -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>
+14
View File
@@ -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';
+31
View File
@@ -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' => ''
]
];
+21
View File
@@ -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',
]
];
+13
View File
@@ -0,0 +1,13 @@
<?php return
[
'constructors' => ['Initialize'],
'destructors' => [],
'extractViewData' => false,
'ajaxCodeContinue' => false,
'viewNameType' => 'directory',
'autoload' =>
[
'status' => true,
'recursive' => false
]
];
+79
View File
@@ -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);
}
}
+14
View File
@@ -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>
+53
View File
@@ -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>
+31
View File
@@ -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' => ''
]
];
+16
View File
@@ -0,0 +1,16 @@
<?php return
[
'openController' => 'Download',
'openFunction' => 'main',
'show404' => 'show404',
'requestMethods' =>
[
'page' => '',
'disallowMethods' => [],
'allowMethods' => []
],
'patternType' => 'classic',
'changeUri' => [
'counter' => 'Download/counter',
]
];
+13
View File
@@ -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>
+31
View File
@@ -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' => ''
]
];
+21
View File
@@ -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',
]
];
+13
View File
@@ -0,0 +1,13 @@
<?php return
[
'constructors' => ['Initialize'],
'destructors' => [],
'extractViewData' => false,
'ajaxCodeContinue' => false,
'viewNameType' => 'directory',
'autoload' =>
[
'status' => true,
'recursive' => false
]
];
+96
View File
@@ -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);
}
}
+8
View File
@@ -0,0 +1,8 @@
<?php namespace Project\Controllers;
USE Import,Cookie,URL;
class Home extends Controller{
public function main(){
echo 'Forum Home';
}
}
+14
View File
@@ -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);
}
}
+29
View File
@@ -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);
}
}
}
+149
View File
@@ -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 -->
+17
View File
@@ -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>&nbsp{{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
+58
View File
@@ -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';
View File
View File
+18
View File
@@ -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);
}
}
+80
View File
@@ -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' => []
];
+26
View File
@@ -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' => []
]
];
+21
View File
@@ -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
]
];
+154
View File
@@ -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' => []
]
];
+169
View File
@@ -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' => ''
]
];
+75
View File
@@ -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,
],
]
];
+88
View File
@@ -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
]
];
+108
View File
@@ -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
]
]
]
];
+202
View File
@@ -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' => '&laquo;',
'nextName' => '&raquo;',
'firstName' => '&laquo;&laquo;',
'lastName' => '&raquo;&raquo;',
'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' => []
]
]
];
+66
View File
@@ -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);
}
}
+79
View File
@@ -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);
}
}
+55
View File
@@ -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');
}
}
+18
View File
@@ -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);
}
}
+13
View File
@@ -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);
}
}
+97
View File
@@ -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);
}
}
+9
View File
@@ -0,0 +1,9 @@
<?php namespace Project\Controllers;
use DB, Import,URL;
class Galery extends Controller{
function main(){
Import::view(THEMA_NAME.'Galery/main');
}
}
+27
View File
@@ -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');
}
}
+94
View File
@@ -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());
}
}
+33
View File
@@ -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);
}
}
+28
View File
@@ -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');
}
}
+10
View File
@@ -0,0 +1,10 @@
<?php namespace Project\Controllers;
class Sss extends Controller{
function main(){
$liste = $this->sss_model->listele();
View::liste($liste);
}
}
+67
View File
@@ -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