Documentation
dizzy - Support Creators Content Script
Created: 20, March 2021 by mstfoztrk
Thank you for purchasing my Dizzy - Support Creator Content Script. If you have any questions that are beyond the scope of this help file, please remember to Create a ticket using my Support Site. Thank you very much!
dizzy - Support Creators Content Script is a platform where content creators, writers, designers, developers, photographers or any other branch can monetize their content by receiving subscriptions from their most loyal followers or just anyone who likes their work. They can create free and premium posts for their subscribers.
Table of Contents
Features

#### Monetization

- Flexible subscription system: weekly, monthly, and yearly options
- Point-based credit system with wallet top-up and content unlocking
- Earn from posts, tips, paid messages, and live streams
- Product selling support (digital or physical)
- Paid and free live streaming features

#### Payment & Withdrawals

- Supports PayPal, Stripe, iyzico, BitPay, RazorPay, PayStack, CoinPayment, Authorize.Net
- Set custom payout methods (PayPal or Bank Transfer)
- Minimum payout threshold control (set by admin)
- Detailed transaction and earnings history

#### Real-time Interaction

- Live notifications for comments, likes, follows, purchases, and approvals
- Messaging system with text, photos, videos, stickers, GIFs, and emojis
- Send tips or paid messages directly via chat
- Option to enable/disable messaging per user

#### Live & Video

- Live stream with real-time chat and TikTok-style gifts
- Peer-to-peer video calling (secure)
- Free or pay-per-view live sessions

#### Content Creation

- Create unlimited content (free, subscriber-only, premium)
- Upload avatars, covers, photos, videos, and audio (mp3)
- Content blurring for locked or premium posts
- Apply watermark (logo or URL) to images
- Report and block content or users
- Save posts and explore other creators

#### User Management

- Edit profile and verify account via ID or passport
- Verified users have a visible badge
- Search for users by name or username
- Real-time point display in dropdown menu
- Track earnings from creator dashboard

#### Globalization & Accessibility

- Multi-language support and easy translation system
- Email verification and secure password hashing
- SMTP email support and OneSignal integration
- Light and dark mode toggle
- GDPR compliance and cookie banner

#### UI/UX Enhancements

- SEO-optimized pages
- Infinite scroll on profiles and chat
- Stickers, GIFs, emojis in comments and messages
- Progress bars for uploads
- Sponsored ad areas and country blocking
- Suggested users shown between posts

#### Gamification & Rankings

- Earn points from likes, comments, and post creation
- Admin can enable/disable point-earning actions individually
- Top 5 creators leaderboard (weekly)
- Fake user generator (for demo/testing)

#### Social Integration

- Social login via Google and Twitter
- Browser push notifications via OneSignal

Admin Features

- Website Settings
  - Site Logo
  - Favicon
  - Site Name
  - Site Title
  - Site Description
  - Keywords
- General
  - Main Language (Choose Language)
  - Maintenance Mode (Enable/Disable)
  - Email verification (Enable/Disable)
  - Register (Enable/Disable)
  - IP Limit (One IP can register 2 times if enabled)
- Limits
  - Upload File Size limit
  - Post Length
  - Number of posts shown
  - Show number of pagination
  - Allowed file extensions (mp4, MP4, mp3, MP3, mpg, mov, m4v, avi, flv, mpeg, MPEG, webm, mkv, MKV, gif, GIF, jpg, jpeg, JPEG, JPG, PNG, png)
  - File extensions valid for approval (gif, GIF, jpg, jpeg, JPEG, JPG, PNG, png)
- Billing Informations
- Email Settings
- Live Streaming Settings
- Storage
  - S3 Storage Settings (Amazon)
  - DigitalOcean Storage Settings
  - MinIO Storage Settings
- Questions from Users (from contact page)
- Manage Posts
  - Awaiting approval (Admin should approve Premium posts)
  - Posts
  - Premium Posts
  - Subscribe Posts
- Reports
  - Reported Posts
  - Reported Comments
- Design
  - Custom CSS/JS
  - Manage SVG Icons
  - Manage Landing Page
  - Landing Page Question & Answer
- Manage Point Feature
  - Point Packages Settings
  - Live Streaming Gift Coin Settings
- Manage Languages
- Users
  - Manage Users
  - Creator Verification Requests
- Pages (Create/Edit/Delete)
- Stickers (Create/Edit/Delete)
- Giphy API Settings
- Payment Methods
  - Payment Settings
  - PayPal
  - Bitpay
  - Stripe
  - Authorize.Net
  - IyziCo
  - RazorPay
  - PayStack
  - CoinPayment
- Social Logins (Edit Twitter and Google Login)
- Manage Payments
  - Manage Withdrawals
  - Manage Subscription Payment
- Advertisement
  - Create an Advertisement
  - Manage Advertisements

Requirements

- PHP (8.1) or Greater
- MySQL 5.6
- OpenSSL PHP Extension
- PDO PHP Extension
- Mbstring PHP Extension
- JSON PHP Extension
- cURL
- allow_url_fopen (php.ini) is ON
- Fileinfo PHP Extension
- FFMPEG

Setting MySQL
1-) Create a database
2-)New Database
3-)New Database User
3-)Manage User Priviliges
4-)Import Database

- Log into your phpMyAdmin and import the dizzy5.1.sql.zip file located in the folder MySQL

Uploading Files

- Upload all files inside the folder "Script" to the "public_html" or "www" folder on your server. You can compress the files or use FTP.

Installation
- Please open connect.php in includes folder.
- Update the following fields with your database credentials:

- DB_SERVER – usually `localhost`
- DB_USERNAME – your database username
- DB_PASSWORD – your database password
- DB_DATABASE – your database name

- APP_DEBUG is optional. If you want to see the database error message, set it to `true`. It is recommended to set it back to `false` after installation.
- $base_url is now automatically detected. You no longer need to manually set the domain name or remember to add a trailing slash.
- Now open your .htaccess file located in the root directory of your script. Replace the placeholder URL `http://localhost:8888` with your actual domain name:

- Change this:
  `ErrorDocument 404 http://localhost:8888/404`
- To this:
  `ErrorDocument 404 https://www.yourwebsite.com/404`
- And also:
  `RewriteCond %{HTTP_REFERER} !^http://localhost:8888/ [NC]`
  should become:
  `RewriteCond %{HTTP_REFERER} !^https://www.yourwebsite.com/ [NC]`

- This step is required to prevent local development URLs from blocking access or showing 403 errors.
Credentials Admin Panel
- After making the above changes in the "connect.php" and ".htaccess" files, you can log in to your website's administration panel using the default credentials.
- Visit your homepage via "https://www.yourwebsite.com/" and use the following credentials:

- Username: adminstaff
- Password: 123456

- Important: After your first login, please update your admin credentials for security purposes.
Dashboard Settings Website Settings
Dashboard Settings General
Dashboard Settings Limits
Email Settings

- Open Admin > Email Settings or visit https://www.yourwebsite.com/admin/email_settings
- Fill SMTP settings: Host, Port, Username, Password, From Email, From Name, and Encryption (TLS/SSL).
- Click Save, then use Send Test Email to verify connectivity.
- If your provider uses 2FA, create an app password and use it instead of your normal password.

Tips

- Common ports: 587 (TLS), 465 (SSL).
- Ensure your server firewall allows outbound SMTP traffic.
- Some providers require a valid `From` address from the same domain as the SMTP account.

Storage Settings (s3)

- Login to AWS S3: https://s3.console.aws.amazon.com/s3/home
- Create a bucket: screenshot
- Provide a unique bucket name example and uncheck “Block all public access”. Check the acknowledgement and click Create.
- Open the bucket, go to Permissions > Access Control List and grant public read as required example.
- Set the Bucket Policy below and save.

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "PublicRead",
                "Effect": "Allow",
                "Principal": "*",
                "Action": [
                    "s3:GetObject"
                ],
                "Resource": [
                    "arn:aws:s3:::YourBucketNameHere/*"
                ]
            }
        ]
    }

- Click Save.
- Upload your `./uploads` folder to the S3 bucket.
- Go to AWS My Security Credentials example, create Access Key and Secret, and paste them into the Admin Panel.

- https://www.yourwebsite.com/admin/storage_settings

Storage Settings (DigitalOcean)

- Click HERE to get How To Create a DigitalOcean Space and API Key

Storage Settings (Wasabi)

- Step 1: Login to your Wasabi Account, select Buckets under Data Access menu panel and click Create Bukcet
- Step 2: Prorive a unique Bucket Name and select your Region and click Create Bucket. Make a note of both them, you will be including them into the script at the last step.
- Step 3: After the bucket is created, select your bucket from the list and under Actions tab, click on Settings.
- Step 4: In the Settings page, make sure you Enable Public Access for this bucket.
- Step 5: Now when you are done creating and configuring your Wasabi Bucket, you will need to create Access Keys to be able to use your Wasabi Account.
- Step 6: Go to Access Keys under Data Access menu panel and click on Create New Access Key.
- Step 7: Click Create button and download or copy your keys immediate as you get to see your Secret Access key only once.
- Step 6: Enter your Wasabi Access Keys, Wasabi Bucket and Wasabi Bucket Region in the Admin Panel of the script.

Storage Settings (MinIO)

- Requirements: Reachable MinIO endpoint, existing bucket, Access Key and Secret Key.
- Go to `Admin > Storage Settings > MinIO Settings` and enable MinIO Status.
- Fill: `Endpoint`, `Region`, `Bucket`, `Key`, `Secret`, optional `Public Base`. Keep `Path Style` enabled for typical MinIO deployments. Keep `SSL Verify` enabled unless you use self‑signed certs.
- Save settings and upload a test media to verify remote storage.

Alternative Configuration (ENV)

    # MinIO environment variables
    MINIO_ENDPOINT=https://minio.example.com:9000
    MINIO_REGION=us-east-1
    MINIO_BUCKET=dizzy-bucket
    MINIO_KEY=YOUR_ACCESS_KEY
    MINIO_SECRET=YOUR_SECRET_KEY
    # Optional: absolute base URL for public files
    MINIO_PUBLIC_BASE=https://minio.example.com:9000/dizzy-bucket/
    MINIO_PATH_STYLE=1
    MINIO_SSL_VERIFY=1

Bucket Policy

- Uploads are made public via ACL where supported. Ensure your MinIO bucket allows public read for object URLs you intend to serve, or proxy through PHP for private buckets.

Stripe Webhook Setup

- Purpose: Keeps subscription periods and statuses in sync and credits creators on recurring renewals.
- Endpoint: `https://your-domain.com/webhook.php` (adjust if the script is installed in a sub‑folder).

Configure in Stripe Dashboard

1. Go to Stripe Dashboard > Developers > Webhooks and click Add endpoint.
2. Set Endpoint URL to your site URL + `/webhook.php`.
3. Select events to send: `invoice.payment_succeeded`, `invoice.payment_failed`, `customer.subscription.updated`, `customer.subscription.deleted`.
4. Save and copy the Signing secret (starts with `whsec_`).

Provide the Signing Secret

- Admin panel: Admin > Payment Settings > Stripe (Subscription) and fill Stripe Webhook Secret.
- Server environment (recommended): define `STRIPE_WEBHOOK_SECRET` in your web server configuration.

    # Apache (VirtualHost or .htaccess if allowed)
    SetEnv STRIPE_WEBHOOK_SECRET whsec_xxxxxxxxxxxxxxxxx

    # Nginx + PHP‑FPM (inside location ~ \.php)
    fastcgi_param STRIPE_WEBHOOK_SECRET whsec_xxxxxxxxxxxxxxxxx;

- If both Admin and environment values are set, the Admin value is used.
- Use separate endpoints (and secrets) for Test and Live modes in Stripe.
Test the Webhook

- In Stripe Dashboard, open the endpoint and Send test event (e.g., `invoice.payment_succeeded`) — expect `200 OK`.
- Alternatively with Stripe CLI:

    # Forward events to your endpoint
    stripe listen --forward-to https://your-domain.com/webhook.php

    # Trigger an invoice.payment_succeeded test event
    stripe trigger invoice.payment_succeeded

Troubleshooting

- 400 Invalid signature: The signing secret is missing or incorrect.
- 400 Missing STRIPE_WEBHOOK_SECRET: Set the secret in Admin or as an environment variable.
- No creator credit: Credits apply on recurring renewals; initial purchase is handled during checkout.

Social Login Installation
Login With Google Installation

- Go to Google API Console create OAuth client ID
- Step 2: Google APIConsole create client ID OAuth Console here.
- Step 3: Google APIConsole create client ID OAuth Console here.

Create Twitter App
To access Twitter API you need to create a Twitter App and specify the Consumer key & Consumer secret at the time of calling the Twitter API. If you haven’t already created a Twitter App, follow the below steps to create and configure a Twitter App from the Application Management page.

- Go to the Twitter Developer account and log in with your Twitter account.
- Click the Create an app button. Before creating a Twitter App you need to Apply for a Developer account. If you don’t have already a Twitter Developer account, provide the required details to apply. Once your developer account is approved by Twitter, create a New App.

- Name: Your application Name. This is shown to the user in Twitter OAuth dialog.
- Description: Your application Description. This is shown to the user while authorizing.
- Website URL: Your web application URL.
- Callback URL(*): After authorization, this URL is loaded with oauth_token.

- Change the apps permission to Read and Write or Read, Write and Access direct messages. For changing the apps permission, you need to add a mobile number to your twitter account.

- https://www.yourwebsite.com/admin/social_logins
- Google Redirect URL: https://www.yourwebsiteurl.com/googleLogin.php
- Twitter Redirect URL: https://www.yourwebsiteurl.com/twitterLogin.php
Payment Gateways Configurations
PayPal
- Sign up for a PayPal account please visit the following link.

- https://www.paypal.com (for production)
- https://developer.paypal.com/developer (for sandbox)

- After creating your account update PayPal Details from https://www.yourwebsite.com/admin/paypal
BitPay
- You can click the link below to create an account from BitPay.

- https://test.bitpay.com/signup/ (for test mode)
- https://bitpay.com/signup/ (for product mode)

- After getting your pair code and label update bitPay Details from https://www.yourwebsite.com/admin/bitpay
Stripe
- You can click the link below to create an account from Stripe.

- https://www.stripe.com

- After getting your Stripe Publishable key and Secret key then Update your Stripe Details from https://www.yourwebsite.com/admin/stripe
Authorize.Net
- You can click the link below to create an account from Stripe.

- https://developer.authorize.net/hello_world/sandbox/ (for sendbox mode)
- https://www.authorize.net/sign-up/ (for product mode)

- After getting your Authorize.Net API login id and transaction key then Update your Authorize.Net Details from https://www.yourwebsite.com/admin/authorizenet
IyziCo
- You can click the link below to create an account from IyziCo

- https://sandbox-merchant.iyzipay.com/auth/login

- After getting your IyziCo API Key and Secret Key then Update your IyziCo Details from https://www.yourwebsite.com/admin/iyzico
RazorPay
- You can click the link below to create an account from RazorPay

- https://dashboard.razorpay.com/#/access/signin

- After getting your RazorPay Key Id and Key Secret then Update your RazorPay Details from https://www.yourwebsite.com/admin/razorpay
PayStack
- You can click the link below to create an account from PayStack

- https://paystack.com

- After getting your PayStack Public Key and Secret Key then Update your PayStack Details from https://www.yourwebsite.com/admin/paystack
CoinPayment
- You can click the link below to create an account from CoinPayment

- https://www.coinpayments.net/

- After getting your CoinPayment Keys like as follow then Update your CoinPayment Details from https://www.yourwebsite.com/admin/coinpayment_settings
Create Cron Job

    /usr/local/bin/ea-php74 /home/username/public_html/includes/renewWeeklySubscriptions.php

    /usr/local/bin/ea-php74 /home/username/public_html/includes/renewMonthlySubscriptions.php

    /usr/local/bin/ea-php74 /home/username/public_html/includes/renewYearlySubscriptions.php

    /usr/local/bin/ea-php74 /home/username/public_html/includes/calculateSubscriptionEarnings.php

- In the image above change ea-php74 for your PHP version, username for yours, and put the path where your project is located, in my case it is in public_html.
- Click on Add New Cron Job and you're done!

reCaptcha

- Open https://www.YOURWEBSITE.com/admin/limits
- Get your API keys here Create a reCAPTCHA

OneSignal Installation
Please follow the following steps then make sure you clear cache before testing.

- Register or Login OneSignal https://onesignal.com
- Setup your web configuration
  - Choose Integration
  - Site Setup
  - Click Save
- Click Settings
  - After then click Web Push Platforms like as follows
- After clicking the Web Push Platforms you can see your Keys Just copy and paste your own keys in admin panel
- https://www.YOURWEBSITEL.com/admin/limits

Live Streaming Configuration (Agora.io)
Please follow the steps below carefully. Clear your cache before testing.
After completing your project setup in the Agora dashboard, copy and paste the following credentials into your admin panel under Live Streaming Settings:

- App ID
- Customer ID
- Customer Secret

If your first created project does not work properly, simply create a second one and use its details instead. This usually solves potential misconfigurations.
If you want me to install Agora for you, please create a ticket on my support site. AGORA INSTALLATION PROCESS IS PAID.
PWA
How To Install PWA
- Open the manifest.json file in the src folder.
- Change the following sections in the manifest.json file you opened as you wish.
,

    "name": "dizzy - Support Content Creator Script",
    "short_name": "dizzy",
    "scope": "/",
    "start_url": "https://dizzy.dizzyscripts.com/",

- Then replace the 192x192.png, 256x256.png, 384x384.png and 512x512.png image files in the src folder with your own image files. Please note that the replaced image files must be the same as the old image files. For example, the file name 192x192.png must be the same as your own image file name.
Customization
How to add SVG Code
- Open SVG list page on your website https://www.yourwebiste.com/admin/svgicons
- Hover over the icon you want to edit and click edit button.
- After click you can see the edit popup page. Just delete the old SVG codes and paste yours.
How to Get SVG Code
- You can use Adobe Illustrator for it
How to Add New Language

- Duplicate the folder langs / eng.php
- Rename to your language (for example fr)
- Translate the strings
- Open fr.php, eng.php go on line 873 and add your new language key.

- Open add New language page from admin panel https://www.yourwebsite.com/admin/
Sources

- jQuery - https://jquery.com/
- SVG Icons - https://www.flaticon.com
- jQuery Form // malsup.com/jquery/form/‎
- Fonts - https://www.google.com/fonts
- cKEditor - https://ckeditor.com
- chartJs - https://www.chartjs.org
- codeMirror - https://codemirror.net

Do you need Custom Work?
Customization services are strictly paid. You can share the details of the customization service you want to receive with me by CREATING A TICKET on my support site.
Thank You
Once again, thank you so much for purchased my dizzy - Support Creator Content Script . As I said at the beginning, I'd be glad to help you if you have any questions relating to dizzy - Support Creator Content Script. Please feel free to CREATE TICKET
© Mustafa Öztürk - Web Design and Development All Rights Reserved