update v1.0.3.3
This commit is contained in:
273
app/Http/Controllers/Agent/kb/ArticleController.php
Normal file
273
app/Http/Controllers/Agent/kb/ArticleController.php
Normal file
@@ -0,0 +1,273 @@
|
||||
<?php namespace App\Http\Controllers\Agent\kb;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Controllers\Agent\kb\SettingsController;
|
||||
use App\Http\Controllers\Client\kb\UserController;
|
||||
use App\Http\Controllers\Agent\helpdesk\TicketController;
|
||||
use App\Http\Requests\kb\ArticleRequest;
|
||||
use App\Http\Requests\kb\ArticleUpdate;
|
||||
use App\Model\kb\Article;
|
||||
use App\Model\kb\Category;
|
||||
use App\Model\kb\Relationship;
|
||||
use App\Model\kb\Settings;
|
||||
use Auth;
|
||||
use Chumper\Datatable\Table;
|
||||
use Datatable;
|
||||
use DB;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Model\kb\Comment;
|
||||
|
||||
/* include the article model to access the article table */
|
||||
use Redirect;
|
||||
use Exception;
|
||||
|
||||
/**
|
||||
* ArticleController
|
||||
*
|
||||
* @package Controllers
|
||||
* @subpackage Controller
|
||||
* @author Ladybird <info@ladybirdweb.com>
|
||||
*/
|
||||
|
||||
class ArticleController extends Controller {
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function __construct() {
|
||||
$this->middleware('auth');
|
||||
$this->middleware('roles');
|
||||
SettingsController::language();
|
||||
}
|
||||
public function test() {
|
||||
//$table = $this->setDatatable();
|
||||
return view('themes.default1.agent.kb.article.test');
|
||||
|
||||
}
|
||||
public function getData() {
|
||||
|
||||
//return 'kfjhje';
|
||||
|
||||
return Datatable::collection(Article::All())
|
||||
->searchColumns('name')
|
||||
->orderColumns('name', 'description')
|
||||
->addColumn('name', function ($model) {
|
||||
return $model->name;
|
||||
})
|
||||
->addColumn('Created', function ($model) {
|
||||
$t = $model->created_at;
|
||||
return TicketController::usertimezone($t);
|
||||
})
|
||||
->addColumn('Actions', function ($model) {
|
||||
//return '<a href=article/delete/ ' . $model->id . ' class="btn btn-danger btn-flat" onclick="myFunction()">Delete</a> <a href=article/' . $model->id . '/edit class="btn btn-warning btn-flat">Edit</a> <a href=show/' . $model->id . ' class="btn btn-warning btn-flat">View</a>';
|
||||
//return '<form action="article/delete/ ' . $model->id . '" method="post" onclick="alert()"><button type="sumbit" value="Delete"></button></form><a href=article/' . $model->id . '/edit class="btn btn-warning btn-flat">Edit</a> <a href=show/' . $model->id . ' class="btn btn-warning btn-flat">View</a>';
|
||||
return '<span data-toggle="modal" data-target="#deletearticle'.$model->id .'"><a href="#" ><button class="btn btn-danger btn-xs"></a> ' . \Lang::get('lang.delete') . ' </button></span> <a href=article/' . $model->id . '/edit class="btn btn-warning btn-xs">' . \Lang::get('lang.edit') . '</a> <a href=show/'.$model->slug .' class="btn btn-primary btn-xs">' . \Lang::get('lang.view') . '</a>
|
||||
<div class="modal fade" id="deletearticle'.$model->id .'">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||
<h4 class="modal-title">Are You Sure ?</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
'.$model->name.'
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default pull-left" data-dismiss="modal" id="dismis2">Close</button>
|
||||
<a href="article/delete/'.$model->slug.'"><button class="btn btn-danger">delete</button></a>
|
||||
</div>
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
</div>';
|
||||
})
|
||||
->make();
|
||||
}
|
||||
|
||||
/**
|
||||
* Index for Articles
|
||||
* @param type Article $article
|
||||
* @return type Response
|
||||
*/
|
||||
public function index() {
|
||||
/* show the index page with article list */
|
||||
return view('themes.default1.agent.kb.article.index');
|
||||
}
|
||||
|
||||
/**
|
||||
* Creating a Article
|
||||
* @param type Category $category
|
||||
* @return type Response
|
||||
*/
|
||||
public function create(Category $category) {
|
||||
//$cat = $category->whereId(33)->first();
|
||||
//$tm = $cat->created_at;
|
||||
//$this->usertimezone($tm);
|
||||
// // /* get the attributes of the category */
|
||||
$category = $category->lists('id', 'name');
|
||||
/* get the create page */
|
||||
return view('themes.default1.agent.kb.article.create', compact('category'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Insert the values to the article table
|
||||
* @param type Article $article
|
||||
* @param type ArticleRequest $request
|
||||
* @return type
|
||||
*/
|
||||
public function store(Article $article, ArticleRequest $request) {
|
||||
|
||||
$sl = $request->input('slug');
|
||||
$slug = str_slug($sl, "-");
|
||||
$article->slug = $slug;
|
||||
$article->fill($request->except('created_at','slug'))->save();
|
||||
$requests = $request->input('category_id');
|
||||
$id = $article->id;
|
||||
foreach ($requests as $req) {
|
||||
DB::insert('insert into article_relationship (category_id, article_id) values (?,?)', [$req, $id]);
|
||||
}
|
||||
/* insert the values to the article table */
|
||||
if ($article->fill($request->except('slug'))->save()) //true: redirect to index page with success message
|
||||
{
|
||||
return redirect('article')->with('success', 'Article Inserted Successfully');
|
||||
} else //redirect to index page with fail message
|
||||
{
|
||||
return redirect('article')->with('fails', 'Article Not Inserted');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return Response
|
||||
*/
|
||||
public function show($id) {
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Edit an Article by id
|
||||
* @param type Integer $id
|
||||
* @param type Article $article
|
||||
* @param type Relationship $relation
|
||||
* @param type Category $category
|
||||
* @return Response
|
||||
*/
|
||||
public function edit($slug, Article $article, Relationship $relation, Category $category) {
|
||||
|
||||
$aid = $article->where('id', $slug)->first();
|
||||
$id = $aid->id;
|
||||
|
||||
/* define the selected fields */
|
||||
$assign = $relation->where('article_id', $id)->lists('category_id');
|
||||
/* get the attributes of the category */
|
||||
$category = $category->lists('id', 'name');
|
||||
/* get the selected article and display it at edit page */
|
||||
/* Get the selected article with id */
|
||||
$article = $article->whereId($id)->first();
|
||||
/* send to the edit page */
|
||||
return view('themes.default1.agent.kb.article.edit', compact('assign', 'article', 'category'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Update an Artile by id
|
||||
* @param type Integer $id
|
||||
* @param type Article $article
|
||||
* @param type Relationship $relation
|
||||
* @param type ArticleRequest $request
|
||||
* @return Response
|
||||
*/
|
||||
public function update($slug, Article $article, Relationship $relation, ArticleUpdate $request) {
|
||||
$aid = $article->where('id', $slug)->first();
|
||||
$id = $aid->id;
|
||||
$sl = $request->input('slug');
|
||||
$slug = str_slug($sl, "-");
|
||||
// dd($slug);
|
||||
$article->slug = $slug;
|
||||
/* get the attribute of relation table where id==$id */
|
||||
$relation = $relation->where('article_id', $id);
|
||||
$relation->delete();
|
||||
/* get the request of the current articles */
|
||||
$article = $article->whereId($id)->first();
|
||||
$requests = $request->input('category_id');
|
||||
$id = $article->id;
|
||||
foreach ($requests as $req) {
|
||||
DB::insert('insert into article_relationship (category_id, article_id) values (?,?)', [$req, $id]);
|
||||
}
|
||||
/* update the value to the table */
|
||||
if ($article->fill($request->all())->save()) //true: redirect to index page with success message
|
||||
{
|
||||
$article->slug = $slug;
|
||||
$article->save();
|
||||
return redirect('article')->with('success', 'Article Updated Successfully');
|
||||
} else // redirect to index page with fails message
|
||||
{
|
||||
return redirect('article')->with('fails', 'Article Not Updated');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete an Agent by id
|
||||
* @param type $id
|
||||
* @param type Article $article
|
||||
* @return Response
|
||||
*/
|
||||
public function destroy($slug, Article $article, Relationship $relation, Comment $comment) {
|
||||
|
||||
/* delete the selected article from the table */
|
||||
$article = $article->where('slug',$slug)->first(); //get the selected article via id
|
||||
//dd($article);
|
||||
$id = $article->id;
|
||||
$comments = $comment->where('article_id',$id)->get();
|
||||
|
||||
if($comments)
|
||||
{
|
||||
foreach($comments as $comment)
|
||||
$comment->delete();
|
||||
}
|
||||
|
||||
$relation = $relation->where('article_id', $id)->first();
|
||||
if($relation)
|
||||
{
|
||||
$relation->delete();
|
||||
}
|
||||
if($article)
|
||||
{
|
||||
if ($article->delete()) //true:redirect to index page with success message
|
||||
{
|
||||
return Redirect::back()->with('success', 'Article Deleted Successfully');
|
||||
} else //redirect to index page with fails message
|
||||
{
|
||||
return Redirect::back()->with('fails', 'Article Not Deleted');
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
return Redirect::back()->with('fails', 'Article can Not Deleted');
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static function usertimezone($utc) {
|
||||
$user = Auth::user();
|
||||
$tz = $user->timezone;
|
||||
$set = Settings::whereId('1')->first();
|
||||
$format = $set->dateformat;
|
||||
//$utc = date('M d Y h:i:s A');
|
||||
//echo 'UTC : ' . $utc;
|
||||
date_default_timezone_set($tz);
|
||||
|
||||
$offset = date('Z', strtotime($utc));
|
||||
//print "offset: $offset \n";
|
||||
$date = date($format, strtotime($utc) + $offset);
|
||||
echo $date;
|
||||
//return substr($date, 0, -6);
|
||||
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user