![]() Server : Apache/2 System : Linux server-15-235-50-60 5.15.0-164-generic #174-Ubuntu SMP Fri Nov 14 20:25:16 UTC 2025 x86_64 User : gositeme ( 1004) PHP Version : 8.2.29 Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname Directory : /home/gositeme/domains/pdf-ai.com/private_html/app/Http/Controllers/User/ |
<?php
namespace App\Http\Controllers\User;
use App\Http\Controllers\Controller;
use App\Http\Controllers\Admin\LicenseController;
use App\Http\Controllers\User\Templates\ArticleGeneratorController;
use App\Http\Controllers\User\Templates\ParagraphGeneratorController;
use App\Http\Controllers\User\Templates\ProsAndConsController;
use App\Http\Controllers\User\Templates\TalkingPointsController;
use App\Http\Controllers\User\Templates\ProductDescriptionController;
use App\Http\Controllers\User\Templates\SummarizeTextController;
use App\Http\Controllers\User\Templates\StartupNameGeneratorController;
use App\Http\Controllers\User\Templates\ProductNameGeneratorController;
use App\Http\Controllers\User\Templates\MetaDescriptionController;
use App\Http\Controllers\User\Templates\FAQsController;
use App\Http\Controllers\User\Templates\FAQAnswersController;
use App\Http\Controllers\User\Templates\TestimonialsController;
use App\Http\Controllers\User\Templates\BlogTitlesController;
use App\Http\Controllers\User\Templates\BlogSectionController;
use App\Http\Controllers\User\Templates\BlogIdeasController;
use App\Http\Controllers\User\Templates\BlogIntrosController;
use App\Http\Controllers\User\Templates\BlogConclusionController;
use App\Http\Controllers\User\Templates\ContentRewriterController;
use App\Http\Controllers\User\Templates\FacebookAdsController;
use App\Http\Controllers\User\Templates\VideoDescriptionsController;
use App\Http\Controllers\User\Templates\VideoTitlesController;
use App\Http\Controllers\User\Templates\YoutubeTagsGeneratorController;
use App\Http\Controllers\User\Templates\InstagramCaptionsController;
use App\Http\Controllers\User\Templates\InstagramHashtagsGeneratorController;
use App\Http\Controllers\User\Templates\SocialMediaPostPersonalController;
use App\Http\Controllers\User\Templates\SocialMediaPostBusinessController;
use App\Http\Controllers\User\Templates\FacebookHeadlinesController;
use App\Http\Controllers\User\Templates\GoogleHeadlinesController;
use App\Http\Controllers\User\Templates\GoogleAdsController;
use App\Http\Controllers\User\Templates\PASController;
use App\Services\Statistics\UserService;
use Illuminate\Support\Facades\Auth;
use Illuminate\Http\Request;
use Orhanerday\OpenAi\OpenAi;
use App\Models\FavoriteTemplate;
use App\Models\SubscriptionPlan;
use App\Models\Template;
use App\Models\Content;
use App\Models\Workbook;
use App\Models\Language;
use App\Models\User;
class TemplateController extends Controller
{
private $api;
private $user;
public function __construct()
{
$this->api = new LicenseController();
$this->user = new UserService();
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index(Request $request)
{
$favorite_templates = Template::select('templates.*', 'favorite_templates.*')->where('favorite_templates.user_id', auth()->user()->id)->join('favorite_templates', 'favorite_templates.template_code', '=', 'templates.template_code')->where('status', true)->get();
$user_templates = FavoriteTemplate::where('user_id', auth()->user()->id)->pluck('template_code');
$other_templates = Template::whereNotIn('template_code', $user_templates)->where('status', true)->orderBy('group', 'asc')->get();
return view('user.templates.index', compact('favorite_templates', 'other_templates'));
}
/**
*
* Process Davinci
* @param - file id in DB
* @return - confirmation
*
*/
public function process(Request $request)
{
if ($request->ajax()) {
$open_ai = new OpenAi(config('services.openai.key'));
$prompt = '';
$model = '';
$text = '';
$max_tokens = '';
$counter = 1;
$identify = $this->api->verify_license();
if($identify['status']!=true){return false;}
# Check if user has access to the template
$template = Template::where('template_code', $request->template)->first();
if (auth()->user()->group == 'user') {
if (config('settings.templates_access_user') != 'all') {
if ($template->professional) {
if (config('settings.templates_access_user') != 'professional') {
$data['status'] = 'error';
$data['message'] = __('Professional templates not available for your account, subscribe to get access');
return $data;
}
}
}
} elseif (auth()->user()->group == 'admin') {
if (config('settings.templates_access_admin') != 'all') {
if ($template->professional) {
if (config('settings.templates_access_admin') != 'professional') {
$data['status'] = 'error';
$data['message'] = __('Professional templates not available for your account, subscribe to get access');
return $data;
}
}
}
} else {
$plan = SubscriptionPlan::where('id', auth()->user()->plan_id)->first();
if ($plan->templates != 'all') {
if ($template->professional) {
if ($plan->templates != 'professional') {
$data['status'] = 'error';
$data['message'] = __('Your current subscription does not cover professional templates');
return $data;
}
}
}
}
# Generate proper prompt in respective language
switch ($request->template) {
case 'KPAQQ':
request()->validate(['title' => 'required|string', 'keywords' => 'required|string']);
$template_prompt = new ArticleGeneratorController();
$prompt = $template_prompt->createArticleGeneratorPrompt(strip_tags($request->title), strip_tags($request->keywords), $request->language, $request->tone);
break;
case 'JXRZB':
request()->validate(['title' => 'required|string']);
$template_prompt = new ParagraphGeneratorController();
$prompt = $template_prompt->createParagraphGeneratorPrompt(strip_tags($request->title), strip_tags($request->keywords), $request->language, $request->tone);
break;
case 'OPYAB':
request()->validate(['title' => 'required|string', 'description' => 'required|string']);
$template_prompt = new ProsAndConsController();
$prompt = $template_prompt->createProsAndConsPrompt(strip_tags($request->title), strip_tags($request->description), $request->language, $request->tone);
break;
case 'VFWSQ':
request()->validate(['title' => 'required|string', 'description' => 'required|string']);
$template_prompt = new TalkingPointsController();
$prompt = $template_prompt->createTalkingPointsPrompt(strip_tags($request->title), strip_tags($request->description), $request->language, $request->tone);
break;
case 'OMMEI':
request()->validate(['description' => 'required|string']);
$template_prompt = new SummarizeTextController();
$prompt = $template_prompt->createSummarizeTextPrompt(strip_tags($request->description), $request->language, $request->tone);
break;
case 'HXLNA':
request()->validate(['title' => 'required|string', 'audience' => 'required|string', 'description' => 'required|string']);
$template_prompt = new ProductDescriptionController();
$prompt = $template_prompt->createProductDescriptionPrompt(strip_tags($request->title), strip_tags($request->audience), strip_tags($request->description), $request->language, $request->tone);
break;
case 'DJSVM':
request()->validate(['keywords' => 'required|string', 'description' => 'required|string']);
$template_prompt = new StartupNameGeneratorController();
$prompt = $template_prompt->createStartupNameGeneratorPrompt(strip_tags($request->keywords), strip_tags($request->description), $request->language);
break;
case 'IXKBE':
request()->validate(['keywords' => 'required|string', 'description' => 'required|string']);
$template_prompt = new ProductNameGeneratorController();
$prompt = $template_prompt->createProductNameGeneratorPrompt(strip_tags($request->keywords), strip_tags($request->description), $request->language);
break;
case 'JCDIK':
request()->validate(['title' => 'required|string', 'keywords' => 'required|string', 'description' => 'required|string']);
$template_prompt = new MetaDescriptionController();
$prompt = $template_prompt->createMetaDescriptionPrompt(strip_tags($request->title), strip_tags($request->keywords), strip_tags($request->description), $request->language);
break;
case 'SZAUF':
request()->validate(['title' => 'required|string', 'description' => 'required|string']);
$template_prompt = new FAQsController();
$prompt = $template_prompt->createFAQsPrompt(strip_tags($request->title), strip_tags($request->description), $request->language, $request->tone);
break;
case 'BFENK':
request()->validate(['title' => 'required|string', 'description' => 'required|string', 'question' => 'required|string']);
$template_prompt = new FAQAnswersController();
$prompt = $template_prompt->createFAQAnswersPrompt(strip_tags($request->title), strip_tags($request->question), strip_tags($request->description), $request->language, $request->tone);
break;
case 'XLGPP':
request()->validate(['title' => 'required|string', 'description' => 'required|string']);
$template_prompt = new TestimonialsController();
$prompt = $template_prompt->createTestimonialsPrompt(strip_tags($request->title), strip_tags($request->description), $request->language, $request->tone);
break;
case 'WGKYP':
request()->validate(['description' => 'required|string']);
$template_prompt = new BlogTitlesController();
$prompt = $template_prompt->createBlogTitlesPrompt(strip_tags($request->description), $request->language);
break;
case 'EEKZF':
request()->validate(['title' => 'required|string', 'subheadings' => 'required|string']);
$template_prompt = new BlogSectionController();
$prompt = $template_prompt->createBlogSectionPrompt(strip_tags($request->title), strip_tags($request->subheadings), $request->language, $request->tone);
break;
case 'KDGOX':
request()->validate(['title' => 'required|string']);
$template_prompt = new BlogIdeasController();
$prompt = $template_prompt->createBlogIdeasPrompt(strip_tags($request->title), $request->language, $request->tone);
break;
case 'TZTYR':
request()->validate(['title' => 'required|string', 'description' => 'required|string']);
$template_prompt = new BlogIntrosController();
$prompt = $template_prompt->createBlogIntrosPrompt(strip_tags($request->title), strip_tags($request->description), $request->language, $request->tone);
break;
case 'ZGUKM':
request()->validate(['title' => 'required|string', 'description' => 'required|string']);
$template_prompt = new BlogConclusionController();
$prompt = $template_prompt->createBlogConclusionPrompt(strip_tags($request->title), strip_tags($request->description), $request->language, $request->tone);
break;
case 'WCZGL':
request()->validate(['title' => 'required|string']);
$template_prompt = new ContentRewriterController();
$prompt = $template_prompt->createContentRewriterPrompt(strip_tags($request->title), $request->language, $request->tone);
break;
case 'CTMNI':
request()->validate(['title' => 'required|string']);
$template_prompt = new FacebookAdsController();
$prompt = $template_prompt->createFacebookAdsPrompt(strip_tags($request->title), strip_tags($request->audience), strip_tags($request->description), $request->language, $request->tone);
break;
case 'ZLKSP':
request()->validate(['description' => 'required|string']);
$template_prompt = new VideoDescriptionsController();
$prompt = $template_prompt->createVideoDescriptionsPrompt(strip_tags($request->description), $request->language, $request->tone);
break;
case 'OJIOV':
request()->validate(['description' => 'required|string']);
$template_prompt = new VideoTitlesController();
$prompt = $template_prompt->createVideoTitlesPrompt(strip_tags($request->description), $request->language);
break;
case 'ECNVU':
request()->validate(['title' => 'required|string']);
$template_prompt = new YoutubeTagsGeneratorController();
$prompt = $template_prompt->createYoutubeTagsGeneratorPrompt(strip_tags($request->title), $request->language);
break;
case 'EOASR':
request()->validate(['description' => 'required|string']);
$template_prompt = new InstagramCaptionsController();
$prompt = $template_prompt->createInstagramCaptionsPrompt(strip_tags($request->description), $request->language, $request->tone);
break;
case 'IEMBM':
request()->validate(['keywords' => 'required|string']);
$template_prompt = new InstagramHashtagsGeneratorController();
$prompt = $template_prompt->createInstagramHashtagsPrompt(strip_tags($request->keywords), $request->language);
break;
case 'CKOHL':
request()->validate(['description' => 'required|string']);
$template_prompt = new SocialMediaPostPersonalController();
$prompt = $template_prompt->createSocialPostPersonalPrompt(strip_tags($request->description), $request->language, $request->tone);
break;
case 'ABWGU':
request()->validate(['description' => 'required|string', 'title' => 'required|string', 'post' => 'required|string']);
$template_prompt = new SocialMediaPostBusinessController();
$prompt = $template_prompt->createSocialPostBusinessPrompt(strip_tags($request->description), strip_tags($request->title), strip_tags($request->post), $request->language);
break;
case 'HJYJZ':
request()->validate(['title' => 'required|string']);
$template_prompt = new FacebookHeadlinesController();
$prompt = $template_prompt->createFacebookHeadlinesPrompt(strip_tags($request->title), strip_tags($request->audience), strip_tags($request->description), $request->language, $request->tone);
break;
case 'SGZTW':
request()->validate(['title' => 'required|string']);
$template_prompt = new GoogleHeadlinesController();
$prompt = $template_prompt->createGoogleHeadlinesPrompt(strip_tags($request->title), strip_tags($request->audience), strip_tags($request->description), $request->language, $request->tone);
break;
case 'YQAFG':
request()->validate(['title' => 'required|string']);
$template_prompt = new GoogleAdsController();
$prompt = $template_prompt->createGoogleAdsPrompt(strip_tags($request->title), strip_tags($request->audience), strip_tags($request->description), $request->language, $request->tone);
break;
case 'BGXJE':
request()->validate(['title' => 'required|string']);
$template_prompt = new PASController();
$prompt = $template_prompt->createPASPrompt(strip_tags($request->title), strip_tags($request->audience), strip_tags($request->description), $request->language);
break;
default:
# code...
break;
}
# Apply proper model based on role and subsciption
if (auth()->user()->group == 'user') {
$model = config('settings.default_model_user');
} elseif (auth()->user()->group == 'admin') {
$model = config('settings.default_model_admin');
} else {
$plan = SubscriptionPlan::where('id', auth()->user()->plan_id)->first();
$model = $plan->model;
}
# Verify if user has enough credits
if ((auth()->user()->available_words + auth()->user()->available_words_prepaid) < $request->words) {
$data['status'] = 'error';
$data['message'] = __('Not enough word balance to proceed, subscribe or top up your word balance and try again');
return $data;
}
# Verify word limit
if (auth()->user()->group == 'user') {
$max_tokens = (config('settings.max_results_limit_user') < (int)$request->words) ? config('settings.max_results_limit_user') : (int)$request->words;
} elseif (auth()->user()->group == 'admin') {
$max_tokens = (config('settings.max_results_limit_admin') < (int)$request->words) ? config('settings.max_results_limit_user') : (int)$request->words;
} else {
$plan = SubscriptionPlan::where('id', auth()->user()->plan_id)->first();
$max_tokens = ($plan->max_tokens < (int)$request->words) ? $plan->max_tokens : (int)$request->words;
}
$control = $this->user->verify_license();
if($control['status']!=true){return false;}
$max_results = (int)$request->max_results;
$temperature = (float)$request->creativity;
$complete = $open_ai->completion([
'model' => $model,
'prompt' => $prompt,
'temperature' => $temperature,
'max_tokens' => $max_tokens,
'n' => $max_results,
]);
$response = json_decode($complete , true);
if (isset($response['choices'])) {
if (count($response['choices']) > 1) {
foreach ($response['choices'] as $value) {
$text .= $counter . '. ' . trim($value['text']) . "\r\n\r\n\r\n";
$counter++;
}
} else {
$text = $response['choices'][0]['text'];
}
$tokens = $response['usage']['completion_tokens'];
$plan_type = (auth()->user()->plan_id) ? 'paid' : 'free';
# Update credit balance
$this->updateBalance($tokens);
$flag = Language::where('language_code', $request->language)->first();
$content = new Content();
$content->user_id = auth()->user()->id;
$content->input_text = $request->title;
$content->result_text = $text;
$content->model = $model;
$content->language = $request->language;
$content->language_name = $flag->language;
$content->language_flag = $flag->language_flag;
$content->template_code = $request->template;
$content->template_name = $template->name;
$content->tokens = $tokens;
$content->plan_type = $plan_type;
$content->workbook = $request->project;
$content->title = $request->document;
$content->save();
$data['text'] = trim($text);
$data['status'] = 'success';
$data['old'] = auth()->user()->available_words + auth()->user()->available_words_prepaid;
$data['current'] = auth()->user()->available_words + auth()->user()->available_words_prepaid - $tokens;
$data['id'] = $content->id;
return $data;
} else {
$data['status'] = 'error';
$data['message'] = __('Text was not generated, please try again');
return $data;
}
}
}
/**
*
* Update user word balance
* @param - total words generated
* @return - confirmation
*
*/
public function updateBalance($words) {
$user = User::find(Auth::user()->id);
$control = $this->user->verify_license();
if($control['status']!=true){return false;}
if (Auth::user()->available_words > $words) {
$total_words = Auth::user()->available_words - $words;
$user->available_words = $total_words;
} elseif (Auth::user()->available_words_prepaid > $words) {
$total_words_prepaid = Auth::user()->available_words_prepaid - $words;
$user->available_words_prepaid = $total_words_prepaid;
} elseif ((Auth::user()->available_words + Auth::user()->available_words_prepaid) == $words) {
$user->available_words = 0;
$user->available_words_prepaid = 0;
} else {
$remaining = $words - Auth::user()->available_words;
$user->available_words = 0;
$user->available_words_prepaid = Auth::user()->available_words_prepaid - $remaining;
}
$user->update();
return true;
}
/**
*
* Save changes
* @param - file id in DB
* @return - confirmation
*
*/
public function save(Request $request)
{
if ($request->ajax()) {
$verify = $this->api->verify_license();
if($verify['status']!=true){return false;}
$document = Content::where('id', request('id'))->first();
if ($document->user_id == Auth::user()->id){
$document->result_text = $request->text;
$document->title = $request->title;
$document->workbook = $request->workbook;
$document->save();
$data['status'] = 'success';
return $data;
} else{
$data['status'] = 'error';
return $data;
}
}
}
/**
*
* Set favorite status
* @param - file id in DB
* @return - confirmation
*
*/
public function favorite(Request $request)
{
if ($request->ajax()) {
$control = $this->user->verify_license();
if($control['status']!=true){return false;}
$template = Template::where('template_code', request('id'))->first();
$favorite = FavoriteTemplate::where('template_code', $template->template_code)->where('user_id', auth()->user()->id)->first();
if ($favorite) {
$favorite->delete();
$data['status'] = 'success';
$data['set'] = true;
return $data;
} else{
$new_favorite = new FavoriteTemplate();
$new_favorite->user_id = auth()->user()->id;
$new_favorite->template_code = $template->template_code;
$new_favorite->save();
$data['status'] = 'success';
$data['set'] = false;
return $data;
}
}
}
/**
* Initial settings
*
* @param $request
* @return \Illuminate\Http\Response
*/
public function settings()
{
if (!is_null(auth()->user()->plan_id)) {
$plan = SubscriptionPlan::where('id', auth()->user()->plan_id)->first();
$limit = $plan->max_tokens;
} elseif (auth()->user()->group == 'admin') {
$limit = config('settings.max_results_limit_admin');
} else {
$limit = config('settings.max_results_limit_user');
}
return $limit;
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function viewArticleGenerator(Request $request)
{
$languages = Language::orderBy('languages.language', 'asc')->get();
$all_templates = Template::orderBy('group', 'asc')->get();
$template = Template::where('template_code', 'KPAQQ')->first();
$favorite = FavoriteTemplate::where('user_id', auth()->user()->id)->where('template_code', 'KPAQQ')->first();
$workbooks = Workbook::where('user_id', auth()->user()->id)->latest()->get();
$limit = $this->settings();
return view('user.templates.article-generator', compact('languages', 'template', 'all_templates', 'favorite', 'workbooks', 'limit'));
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function viewParagraphGenerator(Request $request)
{
$languages = Language::orderBy('languages.language', 'asc')->get();
$all_templates = Template::orderBy('group', 'asc')->get();
$template = Template::where('template_code', 'JXRZB')->first();
$favorite = FavoriteTemplate::where('user_id', auth()->user()->id)->where('template_code', 'JXRZB')->first();
$workbooks = Workbook::where('user_id', auth()->user()->id)->latest()->get();
$limit = $this->settings();
return view('user.templates.paragraph-generator', compact('languages', 'template', 'all_templates', 'favorite', 'workbooks', 'limit'));
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function viewProsAndCons(Request $request)
{
$languages = Language::orderBy('languages.language', 'asc')->get();
$all_templates = Template::orderBy('group', 'asc')->get();
$template = Template::where('template_code', 'OPYAB')->first();
$favorite = FavoriteTemplate::where('user_id', auth()->user()->id)->where('template_code', 'OPYAB')->first();
$workbooks = Workbook::where('user_id', auth()->user()->id)->latest()->get();
$limit = $this->settings();
return view('user.templates.pros-and-cons', compact('languages', 'template', 'all_templates', 'favorite', 'workbooks', 'limit'));
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function viewTalkingPoints(Request $request)
{
$languages = Language::orderBy('languages.language', 'asc')->get();
$all_templates = Template::orderBy('group', 'asc')->get();
$template = Template::where('template_code', 'VFWSQ')->first();
$favorite = FavoriteTemplate::where('user_id', auth()->user()->id)->where('template_code', 'VFWSQ')->first();
$workbooks = Workbook::where('user_id', auth()->user()->id)->latest()->get();
$limit = $this->settings();
return view('user.templates.talking-points', compact('languages', 'template', 'all_templates', 'favorite', 'workbooks', 'limit'));
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function viewSummarizeText(Request $request)
{
$languages = Language::orderBy('languages.language', 'asc')->get();
$all_templates = Template::orderBy('group', 'asc')->get();
$template = Template::where('template_code', 'OMMEI')->first();
$favorite = FavoriteTemplate::where('user_id', auth()->user()->id)->where('template_code', 'OMMEI')->first();
$workbooks = Workbook::where('user_id', auth()->user()->id)->latest()->get();
$limit = $this->settings();
return view('user.templates.summarize-text', compact('languages', 'template', 'all_templates', 'favorite', 'workbooks', 'limit'));
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function viewProductDescription(Request $request)
{
$languages = Language::orderBy('languages.language', 'asc')->get();
$all_templates = Template::orderBy('group', 'asc')->get();
$template = Template::where('template_code', 'HXLNA')->first();
$favorite = FavoriteTemplate::where('user_id', auth()->user()->id)->where('template_code', 'HXLNA')->first();
$workbooks = Workbook::where('user_id', auth()->user()->id)->latest()->get();
$limit = $this->settings();
return view('user.templates.product-description', compact('languages', 'template', 'all_templates', 'favorite', 'workbooks', 'limit'));
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function viewStartupNameGenerator(Request $request)
{
$languages = Language::orderBy('languages.language', 'asc')->get();
$all_templates = Template::orderBy('group', 'asc')->get();
$template = Template::where('template_code', 'DJSVM')->first();
$favorite = FavoriteTemplate::where('user_id', auth()->user()->id)->where('template_code', 'DJSVM')->first();
$workbooks = Workbook::where('user_id', auth()->user()->id)->latest()->get();
$limit = $this->settings();
return view('user.templates.startup-name-generator', compact('languages', 'template', 'all_templates', 'favorite', 'workbooks', 'limit'));
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function viewProductNameGenerator(Request $request)
{
$languages = Language::orderBy('languages.language', 'asc')->get();
$all_templates = Template::orderBy('group', 'asc')->get();
$template = Template::where('template_code', 'IXKBE')->first();
$favorite = FavoriteTemplate::where('user_id', auth()->user()->id)->where('template_code', 'IXKBE')->first();
$workbooks = Workbook::where('user_id', auth()->user()->id)->latest()->get();
$limit = $this->settings();
return view('user.templates.product-name-generator', compact('languages', 'template', 'all_templates', 'favorite', 'workbooks', 'limit'));
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function viewMetaDescription(Request $request)
{
$languages = Language::orderBy('languages.language', 'asc')->get();
$all_templates = Template::orderBy('group', 'asc')->get();
$template = Template::where('template_code', 'JCDIK')->first();
$favorite = FavoriteTemplate::where('user_id', auth()->user()->id)->where('template_code', 'JCDIK')->first();
$workbooks = Workbook::where('user_id', auth()->user()->id)->latest()->get();
$limit = $this->settings();
return view('user.templates.meta-description', compact('languages', 'template', 'all_templates', 'favorite', 'workbooks', 'limit'));
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function viewFAQs(Request $request)
{
$languages = Language::orderBy('languages.language', 'asc')->get();
$all_templates = Template::orderBy('group', 'asc')->get();
$template = Template::where('template_code', 'SZAUF')->first();
$favorite = FavoriteTemplate::where('user_id', auth()->user()->id)->where('template_code', 'SZAUF')->first();
$workbooks = Workbook::where('user_id', auth()->user()->id)->latest()->get();
$limit = $this->settings();
return view('user.templates.faqs', compact('languages', 'template', 'all_templates', 'favorite', 'workbooks', 'limit'));
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function viewFAQAnswers(Request $request)
{
$languages = Language::orderBy('languages.language', 'asc')->get();
$all_templates = Template::orderBy('group', 'asc')->get();
$template = Template::where('template_code', 'BFENK')->first();
$favorite = FavoriteTemplate::where('user_id', auth()->user()->id)->where('template_code', 'BFENK')->first();
$workbooks = Workbook::where('user_id', auth()->user()->id)->latest()->get();
$limit = $this->settings();
return view('user.templates.faq-answers', compact('languages', 'template', 'all_templates', 'favorite', 'workbooks', 'limit'));
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function viewTestimonials(Request $request)
{
$languages = Language::orderBy('languages.language', 'asc')->get();
$all_templates = Template::orderBy('group', 'asc')->get();
$template = Template::where('template_code', 'XLGPP')->first();
$favorite = FavoriteTemplate::where('user_id', auth()->user()->id)->where('template_code', 'XLGPP')->first();
$workbooks = Workbook::where('user_id', auth()->user()->id)->latest()->get();
$limit = $this->settings();
return view('user.templates.testimonials', compact('languages', 'template', 'all_templates', 'favorite', 'workbooks', 'limit'));
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function viewBlogTitles(Request $request)
{
$languages = Language::orderBy('languages.language', 'asc')->get();
$all_templates = Template::orderBy('group', 'asc')->get();
$template = Template::where('template_code', 'WGKYP')->first();
$favorite = FavoriteTemplate::where('user_id', auth()->user()->id)->where('template_code', 'WGKYP')->first();
$workbooks = Workbook::where('user_id', auth()->user()->id)->latest()->get();
$limit = $this->settings();
return view('user.templates.blog-titles', compact('languages', 'template', 'all_templates', 'favorite', 'workbooks', 'limit'));
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function viewBlogSection(Request $request)
{
$languages = Language::orderBy('languages.language', 'asc')->get();
$all_templates = Template::orderBy('group', 'asc')->get();
$template = Template::where('template_code', 'EEKZF')->first();
$favorite = FavoriteTemplate::where('user_id', auth()->user()->id)->where('template_code', 'EEKZF')->first();
$workbooks = Workbook::where('user_id', auth()->user()->id)->latest()->get();
$limit = $this->settings();
return view('user.templates.blog-section', compact('languages', 'template', 'all_templates', 'favorite', 'workbooks', 'limit'));
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function viewBlogIdeas(Request $request)
{
$languages = Language::orderBy('languages.language', 'asc')->get();
$all_templates = Template::orderBy('group', 'asc')->get();
$template = Template::where('template_code', 'KDGOX')->first();
$favorite = FavoriteTemplate::where('user_id', auth()->user()->id)->where('template_code', 'KDGOX')->first();
$workbooks = Workbook::where('user_id', auth()->user()->id)->latest()->get();
$limit = $this->settings();
return view('user.templates.blog-ideas', compact('languages', 'template', 'all_templates', 'favorite', 'workbooks', 'limit'));
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function viewBlogIntros(Request $request)
{
$languages = Language::orderBy('languages.language', 'asc')->get();
$all_templates = Template::orderBy('group', 'asc')->get();
$template = Template::where('template_code', 'TZTYR')->first();
$favorite = FavoriteTemplate::where('user_id', auth()->user()->id)->where('template_code', 'TZTYR')->first();
$workbooks = Workbook::where('user_id', auth()->user()->id)->latest()->get();
$limit = $this->settings();
return view('user.templates.blog-intros', compact('languages', 'template', 'all_templates', 'favorite', 'workbooks', 'limit'));
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function viewBlogConclusion(Request $request)
{
$languages = Language::orderBy('languages.language', 'asc')->get();
$all_templates = Template::orderBy('group', 'asc')->get();
$template = Template::where('template_code', 'ZGUKM')->first();
$favorite = FavoriteTemplate::where('user_id', auth()->user()->id)->where('template_code', 'ZGUKM')->first();
$workbooks = Workbook::where('user_id', auth()->user()->id)->latest()->get();
$limit = $this->settings();
return view('user.templates.blog-conclusion', compact('languages', 'template', 'all_templates', 'favorite', 'workbooks', 'limit'));
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function viewContentRewriter(Request $request)
{
$languages = Language::orderBy('languages.language', 'asc')->get();
$all_templates = Template::orderBy('group', 'asc')->get();
$template = Template::where('template_code', 'WCZGL')->first();
$favorite = FavoriteTemplate::where('user_id', auth()->user()->id)->where('template_code', 'WCZGL')->first();
$workbooks = Workbook::where('user_id', auth()->user()->id)->latest()->get();
$limit = $this->settings();
return view('user.templates.content-rewriter', compact('languages', 'template', 'all_templates', 'favorite', 'workbooks', 'limit'));
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function viewFacebookAds(Request $request)
{
$languages = Language::orderBy('languages.language', 'asc')->get();
$all_templates = Template::orderBy('group', 'asc')->get();
$template = Template::where('template_code', 'CTMNI')->first();
$favorite = FavoriteTemplate::where('user_id', auth()->user()->id)->where('template_code', 'CTMNI')->first();
$workbooks = Workbook::where('user_id', auth()->user()->id)->latest()->get();
$limit = $this->settings();
return view('user.templates.facebook-ads', compact('languages', 'template', 'all_templates', 'favorite', 'workbooks', 'limit'));
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function viewVideoDescriptions(Request $request)
{
$languages = Language::orderBy('languages.language', 'asc')->get();
$all_templates = Template::orderBy('group', 'asc')->get();
$template = Template::where('template_code', 'ZLKSP')->first();
$favorite = FavoriteTemplate::where('user_id', auth()->user()->id)->where('template_code', 'ZLKSP')->first();
$workbooks = Workbook::where('user_id', auth()->user()->id)->latest()->get();
$limit = $this->settings();
return view('user.templates.video-descriptions', compact('languages', 'template', 'all_templates', 'favorite', 'workbooks', 'limit'));
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function viewVideoTitles(Request $request)
{
$languages = Language::orderBy('languages.language', 'asc')->get();
$all_templates = Template::orderBy('group', 'asc')->get();
$template = Template::where('template_code', 'OJIOV')->first();
$favorite = FavoriteTemplate::where('user_id', auth()->user()->id)->where('template_code', 'OJIOV')->first();
$workbooks = Workbook::where('user_id', auth()->user()->id)->latest()->get();
$limit = $this->settings();
return view('user.templates.video-titles', compact('languages', 'template', 'all_templates', 'favorite', 'workbooks', 'limit'));
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function viewYoutubeTagsGenerator(Request $request)
{
$languages = Language::orderBy('languages.language', 'asc')->get();
$all_templates = Template::orderBy('group', 'asc')->get();
$template = Template::where('template_code', 'ECNVU')->first();
$favorite = FavoriteTemplate::where('user_id', auth()->user()->id)->where('template_code', 'ECNVU')->first();
$workbooks = Workbook::where('user_id', auth()->user()->id)->latest()->get();
$limit = $this->settings();
return view('user.templates.youtube-tags-generator', compact('languages', 'template', 'all_templates', 'favorite', 'workbooks', 'limit'));
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function viewInstagramCaptions(Request $request)
{
$languages = Language::orderBy('languages.language', 'asc')->get();
$all_templates = Template::orderBy('group', 'asc')->get();
$template = Template::where('template_code', 'EOASR')->first();
$favorite = FavoriteTemplate::where('user_id', auth()->user()->id)->where('template_code', 'EOASR')->first();
$workbooks = Workbook::where('user_id', auth()->user()->id)->latest()->get();
$limit = $this->settings();
return view('user.templates.instagram-captions', compact('languages', 'template', 'all_templates', 'favorite', 'workbooks', 'limit'));
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function viewInstagramHashtagsGenerator(Request $request)
{
$languages = Language::orderBy('languages.language', 'asc')->get();
$all_templates = Template::orderBy('group', 'asc')->get();
$template = Template::where('template_code', 'IEMBM')->first();
$favorite = FavoriteTemplate::where('user_id', auth()->user()->id)->where('template_code', 'IEMBM')->first();
$workbooks = Workbook::where('user_id', auth()->user()->id)->latest()->get();
$limit = $this->settings();
return view('user.templates.instagram-hashtags-generator', compact('languages', 'template', 'all_templates', 'favorite', 'workbooks', 'limit'));
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function viewSocialPostPersonal(Request $request)
{
$languages = Language::orderBy('languages.language', 'asc')->get();
$all_templates = Template::orderBy('group', 'asc')->get();
$template = Template::where('template_code', 'CKOHL')->first();
$favorite = FavoriteTemplate::where('user_id', auth()->user()->id)->where('template_code', 'CKOHL')->first();
$workbooks = Workbook::where('user_id', auth()->user()->id)->latest()->get();
$limit = $this->settings();
return view('user.templates.social-post-personal', compact('languages', 'template', 'all_templates', 'favorite', 'workbooks', 'limit'));
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function viewSocialPostBusiness(Request $request)
{
$languages = Language::orderBy('languages.language', 'asc')->get();
$all_templates = Template::orderBy('group', 'asc')->get();
$template = Template::where('template_code', 'ABWGU')->first();
$favorite = FavoriteTemplate::where('user_id', auth()->user()->id)->where('template_code', 'ABWGU')->first();
$workbooks = Workbook::where('user_id', auth()->user()->id)->latest()->get();
$limit = $this->settings();
return view('user.templates.social-post-business', compact('languages', 'template', 'all_templates', 'favorite', 'workbooks', 'limit'));
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function viewFacebookHeadlines(Request $request)
{
$languages = Language::orderBy('languages.language', 'asc')->get();
$all_templates = Template::orderBy('group', 'asc')->get();
$template = Template::where('template_code', 'HJYJZ')->first();
$favorite = FavoriteTemplate::where('user_id', auth()->user()->id)->where('template_code', 'HJYJZ')->first();
$workbooks = Workbook::where('user_id', auth()->user()->id)->latest()->get();
$limit = $this->settings();
return view('user.templates.facebook-headlines', compact('languages', 'template', 'all_templates', 'favorite', 'workbooks', 'limit'));
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function viewGoogleAdsHeadlines(Request $request)
{
$languages = Language::orderBy('languages.language', 'asc')->get();
$all_templates = Template::orderBy('group', 'asc')->get();
$template = Template::where('template_code', 'SGZTW')->first();
$favorite = FavoriteTemplate::where('user_id', auth()->user()->id)->where('template_code', 'SGZTW')->first();
$workbooks = Workbook::where('user_id', auth()->user()->id)->latest()->get();
$limit = $this->settings();
return view('user.templates.google-headlines', compact('languages', 'template', 'all_templates', 'favorite', 'workbooks', 'limit'));
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function viewGoogleAdsDescription(Request $request)
{
$languages = Language::orderBy('languages.language', 'asc')->get();
$all_templates = Template::orderBy('group', 'asc')->get();
$template = Template::where('template_code', 'YQAFG')->first();
$favorite = FavoriteTemplate::where('user_id', auth()->user()->id)->where('template_code', 'YQAFG')->first();
$workbooks = Workbook::where('user_id', auth()->user()->id)->latest()->get();
$limit = $this->settings();
return view('user.templates.google-ads', compact('languages', 'template', 'all_templates', 'favorite', 'workbooks', 'limit'));
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function viewPAS(Request $request)
{
$languages = Language::orderBy('languages.language', 'asc')->get();
$all_templates = Template::orderBy('group', 'asc')->get();
$template = Template::where('template_code', 'BGXJE')->first();
$favorite = FavoriteTemplate::where('user_id', auth()->user()->id)->where('template_code', 'BGXJE')->first();
$workbooks = Workbook::where('user_id', auth()->user()->id)->latest()->get();
$limit = $this->settings();
return view('user.templates.problem-agitate-solution', compact('languages', 'template', 'all_templates', 'favorite', 'workbooks', 'limit'));
}
}