Documentation - Infinite - Blog & Magazine Script

# Infinite - Blog & Magazine Script v4.4

## by Codingest

### Getting Started

Thank you for purchasing our script. If you have any questions that are beyond the scope of this help file, please feel free to contact us via our help desk. This is an online help desk for Infinite. You can create your free account and use the system. Thanks so much!

### Introduction

Infinite is a multi-purpose blog-magazine script. It has clean, responsive and user-friendly design. You can manage your posts, custom pages, categories, user comments, advanced settings and contact messages with its powerful Admin panel. Also it has a useful ad management system. You can manage your ad spaces with this system. It is secured, seo optimized, fast and easy to use.

The technologies used:

- Codeigniter 4
- HTML 5
- CSS 3 (Bootstrap)
- JQUERY
- AJAX

Key Features:

- Clean and Responsive Design
- Built Using Bootstrap
- Totally Secure System
- Multilingual System (New Languages Can be Added Easily)
- RTL Support
- SEO Optimized & SEO-Friendly URL
- Structured Data (JSON-LD)
- Multi-Author System
- Light / Dark Mode
- Theme Options
- Unlimited Layout Colors
- Cache System
- Editable & Sortable Navigation
- Responsive & Sortable Slider (Enable & Disable Option)
- Responsive Ad Spaces for Any Kind of Ad Codes (Including Adsense)
- Adding Unlimited Fully Editable Pages
- Page Descripton, Show Page, Show Page Title, Show Breadcrumb, Show Right Column Options for Pages
- Contact Page
- Search in Site
- Add, Delete, Update Unlimited Categories
- Add, Delete, Update Unlimited Posts
- Video Post Option
- Gif Support
- Emoji Reactions
- Save as Draft Option for Posts
- Reading List Page (Add & Remove from List)
- Lazy Image Loading
- Advanced Post Options
- Downloadable Files for Posts
- Dynamic Tag System
- Ajax Comment System
- Manage Comments
- Comment Approval System
- Pageview Counts (Enable & Disable Option)
- Rich Text Editor (Image and Video Can Be Added)
- Voting Poll (Add, Delete Unlimited Poll)
- Gallery Page (Enable & Disable Option)
- Gallery Albums
- Gallery Categories
- Add, Delete Unlimited Photos
- Newsletter
- Different Email Libraries (Swift Mailer and PHP Mailer)
- Social Login (Facebook & Google)
- Social Sharing
- Widgets (Popular Posts, Our Picks, Categories, Random Posts Slider, Tags)
- Sitemap.xml Generator
- RSS Aggregator System (Auto Update with Cron Job) (Doesn’t support full-text RSS)
- RSS (With different channels)
- Maintenance Mode
- Font Settings (New Google Fonts Can be Added Easily)
- Membership System
- Roles & Permissions System
- User Profile Page
- Secure Authentication
- Follow & Unfollow Users
- Google Analytics
- Cookie Notice for GDPR
- Password Reset
- Advanced Settings Options
- Change Logo, Favicon, Site Title, Site Description, etc. from Admin Panel
- Easy Installation Using Installation Wizard
- Detailed Documentation
- Runs on PHP 7.4 and Higher Versions

Security:
Infinite is a secure system. There are various mechanisms to secure application. These mechanisms are:

- Cross-Site Request Forgery (CSRF) Prevention
- Cross-Site Scripting (XSS) Prevention
- Password Hashing
- Avoiding SQL Injection

Requirements:
There are some requirements for Infinite to work on your server. These requirements are:

- PHP 7.4 and Higher Versions
- cURL PHP Extension
- Fileinfo PHP Extension
- Exif PHP Extension
- Mbstring PHP Extension

### Files

a) CSS Files

- AdminLTE.min.css and _all-skins.min.css: Contains general css codes for admin panel.
- bootstrap-toggle.min.css: Contains bootstrap toggle css codes.
- custom.css: Contains css fixes for admin panel.
- style.css: Contains main css codes.
- responsive.css: Contains reponsive css fixes.
- Style.css file is separated into sections using:
  /* ============ 1. General layout CSS styles ============ */
  code
  /* ============ 2. Header ============ */
  code
  /* ============ 3. Slider ============ */
  code
  etc, etc.

b) JavaScript Files

- jquery-1.12.4.min.js: Javascript library
- app.min.js: This file contains general dashboard script codes.
- bootstrap-toggle.min.js: Contains bootstrap toggle javascript codes.
- custom.js: Contains custom script codes. There are custom functions and ajax post functions
- theme.js: Contains javascript functions for front-end.
  Js files are separated into sections using:
  //ajax post delete image
  code
  //Agreement datatable function
  code
  etc, etc.

c) Plugins Plugins used in application:

- jQuery
  jQuery is a Javascript library that greatly reduces the amount of code that you must write.
- jQueryUI
  jQuery UI is a curated set of user interface interactions, effects, widgets, and themes built on top of the jQuery JavaScript Library.
- TinyMCE
  TinyMCE is a browser-based WYSIWYG content editor.
- Datatables
  DataTables is a plug-in for the jQuery Javascript library. It is a highly flexible tool, based upon the foundations of progressive enhancement, and will add
  advanced interaction controls to any HTML table.
- ICheck
  Highly customizable checkboxes and radio buttons.
- Pace
  Automatic page load progress bar.
- Tagsinput
  jQuery plugin providing a Twitter Bootstrap user interface for managing tags
- Gallery
  Jquery Gallery plugin
- Owl-Carousel
  Responsive jquery slider plugin
- Jquery-confirm
  Jquery-confirm plugin

### Installation

Please check your PHP version before start installation. Your PHP version should be 7.4 or a higher version.

cURL PHP extension should be enabled on your server. If you get "cURL is not available on your server! Please enable cURL to continue the installation" error during installation, you need to enable cURL on your server. You can enable it by adding extension=php_curl.dll line to your php.ini file. If you cannot access your php.ini file, please contact your host service.

##### License Code

You need a license code to install the script. You can create this license code with your domain name and Envato purchase code. Go to our help desk ( https://codingest.net/) and create your account on this system. Then generate your license code from the Licenses section (https://codingest.net/licenses).
If you want to change your domain name in the future, you can change it with the "Change Domain" option.

##### You can install the script by watching this video.

##### Or you can follow these steps to install the script:

1. Create a new Database with user that has all permissions.

- Go to cPanel and Click MySQL® Databases
- Create New Database
- Add New User
- Add User To Database
- Set User Permissions

2. Upload script files to your hosting (FTP).

1. Open your cPanel and go to File Manager section.
2. Go to main directory of your site. Most of the time this folder will be public_html.
3. Open this folder and upload codecanyon-infinite-blog-magazine-script.zip file to this directory.
4. Rigth click the .zip file and select Extract option.
5. Move all files that in the "infinite-v.." folder to main directory.
6. Delete unnecessary files/folders: "documentation", "infinite-v.." and "codecanyon-infinite-blog-magazine-script.zip".

   Make sure that the .htaccess file exists in this directory. If you cannot see it, click Settings button at the top right corner and select Show Hidden Files (dotfiles) option. Also, cPanel can automatically change the content of this file. Please open this file and make sure it is the same as the original file..

3. You will see this page after uploading all files to your FTP. Click "Install" to proceed. If you cannot see this page, you can access install page by entering this link to your browser address bar: http://yourdomain.com/install
4. Click the "Go to Support Desk" button and generate your license code in the "Licenses" section. If you do not have an account on our help desk, you need to create one. Enter your license code and then click Next.
5. Check system requirements. If one of these extensions is not enabled, you must enable it from your server settings. If all requirements are provided, click Next.
6. Check folder permissions. If all folders are writable, click Next.
7. Enter your database credentials. Click next.

If you want to change your database credentials later, you can edit the app/Config/Database.php file.

8. Enter your site URL, admin credentials and your Timezone and click finish. Site URL is your complete site address.
Some examples:
Installing to Main directory: https://abc.com
Installing to subdomain: https://test.abc.com
Installing to folder: https://abc.com/test
You need to enter "http" if you don't have SSL on your site. (Example: http://abc.com)
8. Delete the install folder.

After installation, if you see "404 Not Found" error or if you can not login to your site, please check your main directory. There should be a .htaccess file. If you don't have this file, none of your links will work. You can find this file in the main directory of script files. Depending on the operating system you are using, such setting files may be hidden in your computer. In this case, you may not see this file. You can see this file by making the hidden files visible on your computer.

9. SSL and WWW Settings

To avoid problems with SSL and WWW redirects on your site, please read this article and make the necessary settings:
SSL and WWW Settings

### .env Configuration File

This file contains some general settings for your site.

CI_ENVIRONMENT: Default value of this variable is "production". This option will not display if there is an error on your site. Instead, you will see the "An error occurred!" message. To see the errors, you need to change the value of this variable to "development".

Example:
CI_ENVIRONMENT = development

app.baseURL: This is your site base URL. It is very important to add your correct site URL to this field. If you add a wrong site URL, your site will not work.

Examples:
Installing to Main directory:
app.baseURL = https://domain.com
Installing to subdomain:
app.baseURL = https://demo.domain.com
Installing to folder:
app.baseURL = https://domain.com/new

PURCHASE_CODE: You need to enter your purchase code to this field.

LICENSE_KEY: You need to enter your license key to this field.

cookie.prefix: This value is used for cookies to avoid collisions. Default value is "vr", but you can change this value and add a unique value for your site. You must not add a special character to this field.

### File Upload Settings

If you want to upload large files, you may need to make some settings on your server. Also, Infinite performs image optimization while uploading images. This optimization uses memory.
If you try to upload large files without doing some settings on your server, you can get an error.
If you can't upload large files, you need to set these PHP values. These are recommended minimum values.
php_value upload_max_filesize 32M
php_value post_max_size 32M
php_value memory_limit 256M
To set these values follow the steps:

1. Go to your cPanel and click "Select PHP Version"
2. Then click "Switch to PHP Options"
3. Then set the values "upload_max_filesize", "post_max_size" and "memory_limit" as you see in the picture.

If you can not reach these settings, please contact your host administrator and ask them to make these settings.

### Quick Start

✓ Changing Admin Password: After login the system you will see your username in the top menu. Go over your username and a dropdown will open then click Settings / Change Password option. And fill in the form to change your password.
✓ Adding Category: Go to "Categories" section from navigation and click Categories. Then fill in the Add Category form and click Add Category button. To add subcategory, Go to "Categories" section and click Subcategories. Then fill in the Add Subcategory form and click Add Subcategory button.
✓ Adding Post: To add a post you should first add a category. After adding some categories go to "Posts" section from navigation and click Add Post. Then fill in the form and click Add Post button.
✓ Adding Page: Go to "Pages" section from navigation and click Add Page. Then fill in the form and click Add Page button. If you want to manage existing pages: Go to "Pages" section from navigation and click Pages. Then you will see all pages in your site. You can make any change by selecting edit option for each page.
✓ Adding Images to Gallery: To add images to gallery, first you should add some categories for images. Go to "Gallery" section from navigation and click Categories. Then fill in the Add Category form and click Add Category button. After addings some categories, go to "Gallery" section and click Images. Then fill in the Add Image form and click Add Image button.
✓ Sending Email to Registered Emails (Newsletter): To use newsletter feature you should first make your email settings. Go to "Settings" section from navigation and click Email Settings tab. Enter your mail server informations and click Save Changes button. Then go to "Newsletter" section from navigation and fill in the Send Email to Registered Emails form and click the Send Mail button.
✓ Running Ads: If you want to add your ad codes to your website, this is very easy in the Infinite. Go to "Ad Spaces" section and add your ad codes then click Save Changes button.
✓ Managing Users: Go to "Users" section from navigation. You will see all users registered. You can select Change User Role, Delete User and Ban User options for each users.
✓ Adding Author: Infinite is a multi-author system, so authors can add posts. To add an author to the system first user should register from register page. Then Admin should go to "Users" section from navigation and should set user role as Author. After this process user will became an Author and he can reach his own Panel to manage his posts.

### Admin Panel

You can reach Admin panel from this link: yourdomain.com/admin
There are some counters in the Admin panel's home page. These counters:

1. Posts: Shows total post count
2. Pending Posts: Shows pending post count
3. Drafts: Shows draft count
4. Users: Shows registered user count

In addition to these, there are also sections where the last comments, last contact messages and last users are shown.

### Themes

You can select a layout option from this section.

### Pages

You can add, update or delete your pages from this section.
Add Page: Go to "Pages" section from navigation and click Add Page. Then fill in the form.

- Title: Your page title.
- Slug: Slug for SEO friendly url. If your page title consists of special characters your title slug will not be generated. In this case you should add custom slug.
- Description: You can add Description (Meta Tag) for page.
- Keywords: You can add Keywords (Meta Tag) for page.
- Parent Link: You can select parent link.
- Menu Order: Your pages will order according to this value.
- Location: You can select your page link location.
- Visibility: You can hide or show your page.
- Show Only to Registered Users: If you want to show page only to registered users you should select yes.
- Show Title: You can hide or show your page title.
- Show Breadcrumb: You can hide or show your page breadcrumb.
- Show Right Column: You can hide or show sidebar on your page.
- Content: Your page content. You can add image and video with text editor.

Update Page: Go to "Pages" section from navigation and click Pages. You will see page list and you can make changes on pages by selecting "Edit" option for each pages.
Delete Page: On the same list you can delete pages by selecting "Delete" option for each pages.

### Posts

You can add, update or delete posts from this section.
Add Post: Go to "Posts" section from navigation and click Add Post. Then fill in the form.

- Title: Your post title.
- Slug: Slug for SEO friendly url. If your page title consists of special characters your title slug will not be generated. In this case you should add custom slug.
- Keywords: You can add Keywords (Meta Tag) for post.
- Summary: You can add short description about post.
- Category: You should select a category for post.
- Subcategory: You can select a subcategory for post.
- Visibility: You can hide or show your post.
- Add to Slider: You can add post to the index slider.
- Add to Our Picks: You can add post to the our picks.
- Show Only to Registered Users: If you want to show post only to the registered users you can select this option.
- Tags: Tags for post.
- Optional Url: If you enter a url here there will be a button in your post page to access this url.
- Main Image: Image for post.
- Additional Images: If you want to add more than one image to the posts you can select multiple images from here.
- Content: Post content. You can add image and video with text editor.

Update Post: Go to "Posts" section from navigation and click Posts. You will see post list and you can make changes on posts by selecting "Edit" option for each posts.
Delete Post: On the same list you can delete posts by selecting "Delete" option for each posts.
Additional Images: If you want to add more than one main image to your post, you can select more images from this section. If you select an image from here, the slider will be active (There will be a slider in post details page).
Files: If you want to add downloadable files to your posts (PDF, ZIP, DOC .. etc), you can add them from this section.

#### Auto Post Deletion

This system allows you to delete your old posts automatically. For example, if you enable this system and set the "Number of Days" value to 30, the system will delete the articles added before 30 days.

If you want to delete only the RSS posts, you can select the "Delete only RSS Posts" option.

The system will automatically check old posts with a time interval of 12 hours.

### Drafts

Posts can be saved as a draft instead of publishing directly. You can see your drafts in this section.

### RSS Feeds

You can add, update or delete RSS Feeds from this section.

#### Import RSS Feed

Go to "RSS Feeds" section from navigation and click Import RSS Feed. Then fill out the form.

- Feed Name: Feed name.
- Feed URL: You should enter a valid RSS Feed URL to this field.
- Number of Posts to Import: You can define posts count that you want to add your site.
- Category: Posts will be added to category that you selected.
- Subcategory: Posts will be added to subcategory that you selected.
- Images: If you want to download the images to your server, you need to select "Download Images to My Server" option. If you don't want to download the images, you need to select "Show Images from Original Source" option
- Generate Keywords from Title: When this option is selected, the title will be divided into words for meta:keywords tag.
- Auto Update: You can select this option if you want to update with Cron Job.
- Show Read More Button: You can hide or show Read More button with this option.
- Add Posts as Draft: You can add your posts as draft by selecting this option.
- Read More Button Text: You can add a text for the Read More button.

#### Update Feed

Go to "RSS Feeds" section from navigation and click RSS Feeds. You will see RSS feeds list and you can make changes on RSS feed by selecting "Edit" option for each RSS feeds.

#### Delete Feed

On the same list you can delete RSS feeds by selecting "Delete" option for each RSS feeds.

#### Cron Job

You need to create a cron job function to automatically add posts from your RSS feed. Read this section to see how you can add a cron job function in your server: Cron Job

This is the URL that you need to run with your cron job function: http://domain.com/cron/update-feeds
**Do not forget to change "domain.com" with your domain name.

### Categories

You can add, update or delete categories from this section.
Add Category: Go to "Categories" section from navigation and click Categories. Then fill in the Add Category form.

- Category Name: Category name.
- Slug : Slug for SEO friendly url. If your category name consists of special characters your slug will not be generated. In this case you should add custom slug.
- Description: You can add Description (Meta Tag) for category.
- Keywords: You can add Keywords (Meta Tag) for category.
- Menu Order: You can order categories with this value.
- Show on Menu: You can hide or show category on menu.

Update Category: Go to "Categories" section from navigation and click Categories. On the category list you can make changes on categories by selecting "Edit" option for each categories.
Delete Category: On the same list you can delete categories by selecting "Delete" option for each categories.
Subcategories: You can add, update or delete subcategories from this section.
Add Subcategory: Go to "Categories" section from navigation and click Subcategories. Then fill in the Add Subcategory form.

- Category Name: Category name.
- Category Slug : Slug for SEO friendly url. If your category name consists of special characters your slug will not be generated. In this case you should add custom slug.
- Category Description: You can add Description (Meta Tag) for category.
- Category Keywords: You can add Keywords (Meta Tag) for category.
- Parent Category: You should select a top (parent) category.

Update Subcategory: Go to "Categories" section from navigation and click Subcategories. On the category list you can make changes on categories by selecting "Edit" option for each categories.
Delete Subcategory: On the same list you can delete categories by selecting "Delete" option for each categories.

### Polls

Infinite has poll feature. You can add unlimited polls and you can manage these polls from this section.
Add Poll: Go to "Polls" section from navigation and click Add Poll. Then fill in the form.

- Question: Poll question.
- Options: Options for your question.
- Status: You can enabled or disabled a poll.

Update Poll: Go to "Polls" section from navigation and click Polls. On the poll list you can make changes on polls by selecting "Edit" option for each polls.
Delete Poll: On the same list you can delete poll by selecting "Delete" option for each polls.

### Gallery

You can add or delete photos to gallery from this section.
Before adding new images you should add albums for gallery.
To add a new image, select your image from Add New Image form and then click Add Image button.
If you want to delete a image from gallery, click the Select an option button and click delete.

### Comments

Infinite has comment approval system. Only approved comments will be published in the site. If you want to disable this system and publish directly all the comments, you can disable this system from Settings section in the Admin panel.
Pending Comments: You can see and approve the pending comments from this section.
Approved Comments: You can see and delete the approved comments from this section.

### Contact Messages

You can see the messages that users sent from the contact form on the site from this section.
If you want to delete a message from list, click the Select an option button and click delete.

### Newsletter

The Newsletter allows you to share some updates and interesting things with the users.
Users: All registered users are listed on this list. You can select the registered users that you want to send email and click the "Send Email" button.
Subscribers: All subscribers are listed on this list. You can select the subscribers that you want to send email and click the "Send Email" button.
Settings:

- Status: You can enable or disable the newsletter system with this option.
- Newsletter Popup: Infinite has a newsletter popup. New visitors will see this popup when they open the site. You can enable or disable this popup with this option.

To use the Newsletter section, you need to make your email settings. For this, you can read the "Email Settings" section.

### Ad Spaces

Infinite has a mobile-friendly advertising system.
There are 2 different ad code fields for each ad space (Desktop Banner and Mobile Banner) and thanks to these options, your site will not have any design problems on mobile devices.
The Desktop Banner will be displayed on screens larger than 992px and the Mobile Banner will be displayed on screens smaller than 992px. So when adding an ad you have to fill both fields.
Ad Size: You can add an ad of any size by paying attention to the placement of the ad spaces. You need to enter the dimensions of the ad with this option.
Ad Code: You will paste your ad code into this field.

#### AdSense Activation Code

You can add your Google Adsense code from this section. This code will be added to footer of the site and it will be enabled for all pages. After adding this code, you can add your ad codes to ad spaces.

Our script does not make any changes in the ad codes you add. If you don't see ads on your site after adding your ad code, please check your ad code. If you have added Adsense code and your ads are not displayed, you can wait for your ads to appear or you need to contact the Adsense support team. If your ads are not running, there may be a problem with your Adsense account. Our script does not affect your ad codes.

### Users

You can manage registered user from this section.
Options:

- Change User Role: If you want to change user role you can use "Change User Role" option.
- Ban User: You can ban a user or remove ban for a user.
- Delete: You can delete a user by selecting delete option.

### Roles & Permissions

This system allows you to assign different roles and permissions for users using your site. You can add new roles and you can edit permissions of these roles from this section.

#### Default Roles

Super Admin: This role is the main role that can manage everything in the site. We do not recommend you to assign this role to another user. You can create a new Admin role instead of assigning this role to another user.
Author: Authors can add, update and delete their posts. Authors can only see and process their own posts. If a post added or edited by an author, Admin approval is required. If Admin approves, the post will be published.
Member: This is the default role for every user in the system.

#### Changing a User's Role

To change the role of a user, you can go to the "Users" section and select the "Change User Role" option.

### Cache System

You can enable or disable cache system from this section.

- Refresh Cache Files When Database Changes: If you select yes, the cache files will be refreshed, if there is a change in the database.
- Cache Refresh Time (Minute) : Cache files will automatically refresh after this time.

### SEO Tools

You can manege your site title, site keywords, site description etc. from this section.

- Site Title: You site title.
- Home Title: Your homepage title.
- Site Description: Your site description.
- Keywords: Your site keywords.
- Google Analytics: You can add your Google Analytics code from here.

#### Sitemap

You can generate a sitemap.xml file from this section.

Generate Sitemap
This option will create a sitemap.xml file on your main directory. You can access this file with "http://domain.com/sitemap.xml" URL.

If your site has more than 50,000 links, the sitemap.xml file will be created in parts. Each of these sitemaps will have 49,000 links.

If you want to update your sitemap.xml automatically with a time interval, you need to create a cron job function on your server. Read this section to see how you can add a cron job function in your server: Cron Job

This is the URL that you need to run with your cron job function: http://domain.com/cron/update-sitemap
**Do not forget to change "domain.com" with your domain name.

If you have too many links and you are seeing an error while generating the sitemap, you can try increasing the "max_execution_time" value in your server settings.

### Storage

You can select your storage option from this section. If you select the "Local Storage" option, uploaded files will be stored in your server. If you select the "AWS S3 Storage" option, uploaded files will be stored in your AWS S3 account. To use AWS S3, you need to follow these steps:
AWS S3 Integration:

1. Go to https://aws.amazon.com/s3/ URL and create your account.
2. Click the "AWS Management Console" link.

3. Click the "Services" link from the top menu and then click the "S3" link under the "Storage" section.

4. Click the "Create bucket" button.

5. Enter your "bucket name" and select your region. "us-east-1" will be your region code and you need to enter this value from the Admin panel. Your region code can be different according to your location.

   Select the "ACLs enabled" option.

   Unselect the "Block all public" option and select "I acknowledge that the..." option.

   Select these options and Click the "Create bucket" button.

6. Click the Security Credentials option.

7. Go to the Access keys section and click the Create Access Key button. and create your access keys.

8. Select the option and click the Create Access Key button.

9. Copy your keys and add them from the "Storage / AWS S3 Storage" section in the Admin panel.

Adding Created API Keys from the Admin Panel:
After creating your bucket and your API keys (access key and secret key), you need to go to the Storage section in your Admin panel and add the credentials from the AWS S3 Storage form.
AWS Access Key: Enter the access key that you created.
AWS Secret Key: Enter the secret key that you created.
Bucket Name: Enter your bucket name. (Example: my-bucket)
Region Code: Enter your region code. (Example: us-east-1)

### Cron Job

A cron job is a Linux command for scheduling a task to be executed sometime in the future. You can set a cron job to update your sitemap, scheduled posts or RSS feeds periodically.

Follow these steps to set up cron job:

1. Go to your cPanel and click cron jobs.
2. Select the time interval that the cron job will run and your command and create the cron job.

   #### Commands

   Update Sitemap:

       wget -O /dev/null http://domain.com/cron/update-sitemap

   Update RSS Feeds:

       wget -O /dev/null http://domain.com/cron/update-feeds

   You need to paste these commads to "Command" field and you need to create a different cron job for each task.
   **Do not forget to change "domain.com" with your domain name.

These commands may not work if you do not have a management panel on your server or if you are using another panel instead of cPanel. Cron job can be added in different ways. If this command doesn't work, you need to contact your server provider and ask for help to create a cron job.

### Social Login Settings

You can make your social login settings from this section.

If you want to use social login, you need to enable SSL on your site. In other words, all your URLs should be HTTPS. If SSL is enabled on your site and your server automatically redirects all of your URLs to HTTPS, you can set up your social login settings. If your site does not redirect automatically, read the "SSL and .htaccess" section.

#### Facebook Login

1. Go to https://developers.facebook.com/ URL.
2. Click "My Apps" option.
3. Click "Create App" option.
4. Go to "Set up Facebook Login" option and click "Next".
5. Fill the form and click "Create App" button.
6. Click the "Use Cases" link from sidebar and click on the "Edit" button for the "Authentication and account creation " option. Then click "Add" option for email permission.
7. Click the "Products" link from sidebar.
   Then click the "Configure > Settings" option. Enter Valid OAuth Redirect URIs: "https://your domain.com/facebook-callback" and click "Save Changes" button.
8. Click the "Settings > Basic" link from sidebar.
   Enter your domain to "App Domains"field.
   Enter your Terms & Conditions page link to the "User Data Deletion" and "Privacy Policy URL" fields.
   Select a category for your application and click "Save Changes" button.

   **Copy "App ID" and "App Secret" values from this page and enter these values from "Social Login" section in the Admin panel.

9. Click the "Go Live" link from sidebar. Then click the "Go Live" button.

#### Google Login

1. Go to the https://console.cloud.google.com/apis/credentials URL.
2. Click the "Create Project" button.
3. Enter your project name and click "Create" button.
4. Click the "+ Create credentials" option.
5. Select the "OAuth client ID" option.
6. Click the "Configure Consent Screen" button.
7. Select the "External" option and click the "Create" button.
8. Fill the form and click the "Save and Continue" button.
9. Click the "Add or Remove Scopes" button and select the first 2 options. Click the "Update" button. Then click the "Save and Continue" button.
10. Click the "Save and Continue" button.
11. Click the "Back to Dashboard" button on the next page and then click the "Publish App" button.
12. Click the "Credentials" link from the sidebar menu. Click the "+ Create credentials" option and select the "OAuth client ID" option.
13. Enter your App name and enter your Google redirect URL to the "Authorized redirect URIs" field.
    Google redirect URL: https://domain.com/connect-with-google (Change "domain.com" with your domain name.)
    Click the "Create" button.
14. Copy "Client ID" and "Client Secret" values and enter these values from "Social Login"section in the Admin panel.

### Email Settings

To send emails, you must create a mail account on your server and you must enter your email account credentials to these fields:

- Mail Service: Infinite has Swift Mailer and PHP Mailer email libraries. It also has Mailjet API option. You can select one of them to send emails.
- Mail Protocol: SMTP or Mail. Default: SMTP. But some mail servers use Mail protocol. In this case you should use Mail protocol.
- Encryption: TLS or SSL. Default: TLS. If your server does not support sending with SSL, you should choose TLS.
- Mail Host: Your mail server (E.g: mail.example.com)
- Mail Port: Your mail port. Default: 587
- Mail Username: Your username (E.g: mail@example.com)
- Mail Password: Your password
- Mail Title: Your email title
- Reply-To: If recipients reply to your e-mail, the reply will go to this e-mail address.

#### Mailjet Email Service

Mailjet is an Email service that gives 200 free emails per day. You can easily use this system by creating a free account on the Mailjet site.
You can follow these steps to use this service:

- Go to this URL and create your account: https://app.mailjet.com/signup
- After creating your account, go to this page and get your API keys: https://app.mailjet.com/account/apikeys
- Go to "Email Settings" section in the Admin panel and select the "Mailjet" as the "Mail Service" option. Then add your API Key, Secret Key and Mailjet Email Address.

**In the Mailjet Email Address field, you must enter the email address you registered with the Mailjet site.

#### Mail Protocol

Mail protocol allows you to use the default PHP mail function and allows you to send email without any extra settings. But this function is disabled on most servers for security reasons. If this function is active on your server, you can select the Mail protocol and use it without making any other settings.

Example:
Mail Protocol: Mail
Mail Title: Infinite
Reply-To: noreply@domain.com

#### SMTP Protocol

If the Mail protocol is not working on your server, you need to use the SMTP protocol. You need a mail server for using SMTP protocol. You can use your own server or Amazon SES as your mail server.

##### 1. Using Your Own Server

If you want to use the mail service of your own server, you can create a mail account on your server and make the necessary settings with this account. To do this, you need to create a mail account on your server and know which protocol and port values your server uses. If you can't see these values from your server's management panel, you can ask help from your server provider.

Example:
Mail Protocol: SMTP
Mail Library: Swift Mailer or PHP Mailer
Encryption: TLS
Mail Host: smtp.domain.com
Mail Port: 587
Mail Username: info@domain.com
Mail Password: 1234
Mail Title: Infinite
Reply-To: noreply@domain.com

##### 2. Using Amazon Simple E-mail Service (SES)

Amazon SES is a cloud-based email sending service. You can create your Amazon SES account and send emails with this service. This is not a free service, check this page for pricing: https://aws.amazon.com/ses/pricing/

If you want to use this service, follow these steps to make your email settings:

- Go to https://aws.amazon.com/ses/ and create your account.
- Click AWS Management Console
- Click the "Simple Email Service" link under the Services menu
- Click the "SMTP Settings" link from left menu.
- Click the "Create My SMTP Credentials" button.
- Click the "Create" button.
- Your credentials will be created after these steps.
- After creating your credentials, you can add these credentials from Email Settings in the Admin panel.
  Example:
  Mail Protocol: SMTP
  Mail Library: Swift Mailer or PHP Mailer
  Encryption: TLS
  Mail Host: email-smtp.us-east-1.amazonaws.com
  Mail Port: 587
  Mail Username: AKIAVIAANDJBBXXXXXXX
  Mail Password: BPj7ailKjbITgyGF6brROnVIflfdfdydbdklsdsds
  Reply-To: noreply@domain.com

If you are using Amazon SES in test mode, you need to verify the email address to which you will send a test mail and the email address that you add for the "Reply-To" field. To do this, click the Email Addresses link from the left navigation and verify the receiver email address in this section.

Sending email via Gmail will no longer be supported by us. The reason for this is that the security changes made by Google prevent the sending of emails. Sometimes, even after making the necessary settings, Gmail does not allow sending email on some servers. You can use the Gmail server if it is working on your server, but our support team will not help with this.

Email Verification: You can enable or disable email verification from this section.
Contact Messages : If you want to send contact messages to your email address, you can select "Yes" for "Send Contact Messages to Email Address" option by adding your email address.

### Language Settings

You can manage your languages from this section.

- Set As Default: You can set your default language with this option.
- Edit Translations: After adding a language, you can click this button and translate all texts in the script in to your language.
- Export: This option allows you to download your language. It will downloaded in JSON format and you can import it to your another website. Or you can use it as a backup of your language.

#### Add Language

You can add your new language from this section.

#### Import Language

If you have a JSON language file, you can import it from this section.

### Font Settings

You can change your site fonts from this section.

#### Add Font

If you want to add new fonts to your site, you can add them from this section. Follow these steps to add a new font:

1. Go to Google Fonts: https://fonts.google.com
2. Click the red plus icon for the font that you want to add.
3. You will see "Family Selected" box at the right bottom of the page. Click on this box.
4. Copy the font URL and enter it to "URL" field.
   E.g: <link href="https://fonts.googleapis.com/css?family=Open+Sans&display=swap" rel="stylesheet">
5. Copy the CSS rule and enter it to "Font Family" field.
   E.g: font-family: 'Open Sans', sans-serif;

### Preferences

- Multilingual System: Your can enable or disable multilingual system in your site.
- Registration System: Your can enable or disable registration system in your site.
- Approve Posts Before Publishing: You can enable this option if you want to approve the authors' posts before they are published.
- Comment System: Your can enable or disable comment system in your site.
- Comment Approval System: You can enable this option if you want to approve the comments before they are published.
- Slider: Your can enable or disable slider in your site.
- Emoji Reactions: Your can enable or disable emoji reactions in your site.
- Show Post View Count: Your can show or hide post page view count.
- RSS: Your can enable or disable RSS in your site.
- RSS Content: By default, the contents of the posts will not be added to the RSS feeds created on your site. Only the descriptions of the posts will be added. If you want to add the content of the posts to the RSS feeds, you can select the "Distribute Post Content" option.
- Show Categories on Sidebar : You can show or hide sidebar categories with this option.
- File Manager: Your can hide or show all uploaded files for users. If you select "Show Only Users Own Files" option, users will see their own uploaded files.
- Default Role for New Members: With this option, you can determine the role that new registrations will have.

#### File Upload

- Image File Format: Uploaded images will be converted to the selected image format. You can choose the format you want with this option.
- Allowed File Extensions: Hackers often hack websites by uploading some files. To prevent such security issues, the system allows only allowed file types to be uploaded. You can add the extensions of the file types you want to be uploaded to your site from this field.

  We do not recommend you to add files extensions that can create security problems. Example, PHP, PY, ASP, JSP, SH, JS etc.

### Settings

Genaral Settings:

- Timezone: Your timezone. You can see all available timezones from here: https://www.php.net/manual/en/timezones.php
- Application Name: Your site name.
- Admin Panel Link: You can change Admin panel link from this field.
- Number of Posts Per Page (Pagination): Your can set post count in each page from this field.
- Post Optional Url Button Name: You can set a new name for your optional button.
- Footer About Section: About your site. This will be shown in the footer.
- Copyright: You can update copyright section from here.

Google reCAPTCHA
Infinite uses Google reCAPTCHA to protect website from spam and abuse.

1. Go to this link: https://www.google.com/recaptcha/intro/v3beta.html
2. Click on the "v3 Admin Console" link.
3. Click on the "+" button at the top menu.
4. Select "reCAPTCHA s2" and "I'm not a robot Checkbox" options and generate your API keys.

Maintenance Mode

If you want to prepere your site before going live or if you want to close your site to visitors, you can enable this mode. If you enable it, only Admin can access the site. Other visitors will see a "Coming Soon!" text.

Visual Settings:
You can change your site color, logo and favicon from this section.
Contact Settings:
Go to "Settings" section from navigation and click "Contact Settings" tab.

- Address: Your address
- Email Address: Your email address
- Phone Number: Your phone number
- Contact Text: You can add some text about contact.

Social Media Settings:
Go to "Settings" section from navigation and click "Social Media Settings" tab.
You can add your social media accounts from this section.
Facebook Comments:
If you want to use Facebook comment plugin you need to add your plugin code to this section.
How to Get This Code:

1. Go to https://developers.facebook.com and click Add a new app.
2. Click Settings and then click +Add platform.
3. Select website and enter your site url and click save changes.
4. Then go to https://developers.facebook.com/docs/plugins/comments/ and click Get Code button.
5. Then copy the code in the "STEP 2" and paste to Facebook Comments field.

#### Custom Header Codes

You can add your custom codes (E.g. CSS) to this field. These codes will be added in the <head> tags of your site.

You need to add your CSS codes between <style></style> tags.
Example:

    <style>
    body {
        background-color: #00a65a;
    }
    </style>

#### Custom Footer Codes

You can add your custom codes (E.g. JavaScript) to this field. These codes will be added to footer of your site.

You need to add your JavaScript codes between <script></script> tags.
Example:

    <script>
    alert('Hello!');
    </script>

### Author Panel

Infinite is a multi-author system. Every author has their own panel and they can manage their posts. If an author add or update a post, it will need Admin approval. The post will not be published on the site until Admin approve it. You can disable this approval system from General Settings section.

### Password Reset

To use the Password Reset section, you need to set your Email Settings. The system will send a password reset link, so it is necessary to enter a working email server credentials to use email system. You can make read more about email settings from here.
If you have not set up your email settings yet and have forgotten your password, you can reset your password from your database.
To do this, open your database via phpMyAdmin. Click on the users table and find your account in this table. Paste the following code to your password column. Make sure there is no space at the beginning or the ending of the code.
$2a$08$drmgGpMVGzdyiv7q5LUt3eUne8xh05XKrJPgMKaR3RgRwCQKXZpdu
After adding this code to your password column, you can login with "1234" password.

### Update Guide

You can find all instructions to update your site from this section. If you don't know your current version, you can check it from the version.txt file in the main directory of your site.

###### Example Update Video:

#### Update from v4.3 to v4.4

1. You need to update all files. Follow all steps in the Updating FTP Files (Click Here) section.
2. You need to update your datatase. Follow all steps in the Updating Database (Click Here) section. You can find update_database.php file in the "documentation/updates/Update from v4.3 to v4.4" folder.
3. Clear your browser cache. This is important. If you do not clear, your browser may continue to run old codes.

*Since the logo size option is added in version 4.4, please go to the Visual Settings section and add correct width and height values for your logo.

#### Update from v4.2.x to v4.4

1. You need to update all files. Follow all steps in the Updating FTP Files (Click Here) section.
2. You need to update your datatase. Follow all steps in the Updating Database (Click Here) section. You can find update_database.php file in the "documentation/updates/Update from v4.2.x to v4.4" folder.
3. Clear your browser cache. This is important. If you do not clear, your browser may continue to run old codes.

*Since the logo size option is added in version 4.4, please go to the Visual Settings section and add correct width and height values for your logo.

#### Update from v4.1.x to v4.4

1. You need to update all files. Follow all steps in the Updating FTP Files (Click Here) section.
2. You need to update your datatase. Follow all steps in the Updating Database (Click Here) section. You can find update_database.php file in the "documentation/updates/Update from v4.1.x to v4.4" folder.
3. Clear your browser cache. This is important. If you do not clear, your browser may continue to run old codes.

*Since the logo size option is added in version 4.4, please go to the Visual Settings section and add correct width and height values for your logo.

#### Update from v4.0.x to v4.4

1. You need to update all files. Follow all steps in the Updating FTP Files (Click Here) section.
2. You need to update your datatase. Follow all steps in the Updating Database (Click Here) section. You can find update_database.php file in the "documentation/updates/Update from v4.0.x to v4.4" folder.
3. Clear your browser cache. This is important. If you do not clear, your browser may continue to run old codes.

*Since the logo size option is added in version 4.4, please go to the Visual Settings section and add correct width and height values for your logo.

#### Updating FTP Files

1. Open your cPanel and go to File Manager section.
2. Go to main directory of your site.
3. Create a new folder named "old". You can use another name. It won't make any differences.
4. Move all of your files to this folder.
5. Upload "codecanyon-infinite-blog-magazine-script.zip" file to this directory.
6. Rigth click the .zip file and select "Extract" option.
7. Rigth click the .zip file and select "Extract" option.
8. Move all files that in the "infinite-v.." folder to main directory.
9. Delete unnecessary files/folders: "documentation", "uploads", "infinite-v..", "install" and "codecanyon-infinite-blog-magazine-script.zip".
10. Copy old/uploads folder to main directory.
11. Open app/Config/Database.php file and enter your database credentials.
12. Open ".env" file that on the main directory of the script files and add your license and your site URL.
    #--------------------------------------------------------------------
    # APP
    #--------------------------------------------------------------------
    app.baseURL = https://yourdomain.com/
    #--------------------------------------------------------------------
    # LICENSE
    #--------------------------------------------------------------------
    PURCHASE_CODE = your purchase code
    LICENSE_KEY = your license key

#### Updating Database

1. Upload update_database.php file to your main directory. You can find this file in the "documentation/updates" folder.
2. Open your browser and enter this URL: yourdomain.com/update_database.php
3. When you go to this URL, you will see an update wizard. Click the Update My Database button and update your database.
4. Delete "update_database.php" file.