Compare commits
82 Commits
feature/la
...
ab0d370225
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ab0d370225 | ||
|
|
ee7b52feb2 | ||
|
|
4cb77e9312 | ||
|
|
43e66c7ac4 | ||
|
|
685a49cf57 | ||
|
|
f6617f6d70 | ||
|
|
7c6108e0a7 | ||
|
|
b8aa48a0bb | ||
|
|
8fc0b1076a | ||
|
|
71e1fca6fe | ||
|
|
8dc23e4e67 | ||
|
|
729d0e72e6 | ||
|
|
0b8856d3a0 | ||
|
|
6aa0587a69 | ||
|
|
08c274f5bd | ||
|
|
148df27117 | ||
|
|
e552037e2c | ||
|
|
7011b28542 | ||
|
|
2ac9cb6420 | ||
|
|
9c403b7207 | ||
|
|
11960d6bad | ||
|
|
25f80cb16f | ||
|
|
72773a517a | ||
|
|
d1f5d38480 | ||
|
|
f5f1693f55 | ||
|
|
39165cc7f9 | ||
|
|
20b4e06ee7 | ||
|
|
18e11ac3d0 | ||
|
|
0013b2a025 | ||
|
|
acf9c2e931 | ||
|
|
c144810352 | ||
|
|
b1ed52f7a6 | ||
|
|
70b250a64e | ||
|
|
1eb7e6632f | ||
|
|
98e7652e6b | ||
|
|
852593ecfb | ||
|
|
43de35a66c | ||
|
|
ad57e218af | ||
|
|
d2a20c4831 | ||
|
|
36ad67a37a | ||
|
|
6c55194c9a | ||
|
|
77ee1b9ccc | ||
|
|
6cc68cd56b | ||
|
|
3e328b83a4 | ||
|
|
d82832043c | ||
|
|
da89856e95 | ||
|
|
bf88584dcd | ||
|
|
3eb4078d19 | ||
|
|
5918eded8c | ||
|
|
02361ca64e | ||
|
|
1ca40ce1d7 | ||
|
|
59e52125f7 | ||
|
|
bb139cb0df | ||
|
|
bca94e54cc | ||
|
|
e57209bc64 | ||
|
|
5eeefa5587 | ||
|
|
80094cfdf0 | ||
|
|
587819be9a | ||
|
|
67b52fcc1a | ||
|
|
f7b402fe7a | ||
|
|
8408695473 | ||
|
|
99f89a968b | ||
|
|
3f96f82090 | ||
|
|
942af1f0a8 | ||
|
|
4610fb526b | ||
|
|
c29936f6b9 | ||
|
|
7c12b0e2bf | ||
|
|
a5dab36a14 | ||
|
|
55f135f66c | ||
|
|
6631690f93 | ||
|
|
dd26b1dd4b | ||
|
|
155bc2ce53 | ||
|
|
ef81f0bf25 | ||
|
|
bf078c82bf | ||
|
|
2e29677b90 | ||
|
|
03ea4e84a2 | ||
|
|
3f8c116293 | ||
|
|
9bf1a888a6 | ||
|
|
542f2c64e0 | ||
|
|
1d4c9a5445 | ||
|
|
3698312664 | ||
|
|
a9145ea484 |
@@ -1,6 +0,0 @@
|
|||||||
# Local Development MinIO Configuration
|
|
||||||
# Copy to .env.local and update with your MinIO credentials
|
|
||||||
|
|
||||||
# MinIO credentials (get from your production server)
|
|
||||||
MINIO_KEY=your_minio_root_user
|
|
||||||
MINIO_SECRET=your_minio_root_password
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
# MinIO S3 Storage Configuration
|
|
||||||
# Add these to your production .env file
|
|
||||||
|
|
||||||
# MinIO Endpoint (internal Docker network)
|
|
||||||
MINIO_ENDPOINT=http://crew-minio-prod:9000
|
|
||||||
|
|
||||||
# MinIO Credentials (get from /var/www/apps/minio-storage/.env)
|
|
||||||
MINIO_KEY=your_minio_root_user
|
|
||||||
MINIO_SECRET=your_minio_root_password
|
|
||||||
|
|
||||||
# Bucket name
|
|
||||||
MINIO_BUCKET=crewsportswear
|
|
||||||
|
|
||||||
# Region (required for S3 compatibility)
|
|
||||||
MINIO_REGION=us-east-1
|
|
||||||
|
|
||||||
# Use path-style endpoint (required for MinIO)
|
|
||||||
MINIO_USE_PATH_STYLE=true
|
|
||||||
|
|
||||||
# Public URL for accessing files (use your actual domain)
|
|
||||||
MINIO_URL=https://minio.crewsportswear.app
|
|
||||||
45
Dockerfile
45
Dockerfile
@@ -1,30 +1,34 @@
|
|||||||
# Use PHP 7.4 with Apache for Laravel 6.x
|
# Use PHP 7.0 with Apache (has native mcrypt support for Laravel 5.0)
|
||||||
FROM php:7.4-apache
|
FROM php:7.0-apache
|
||||||
|
|
||||||
|
# Update to use archived Debian repositories
|
||||||
|
RUN sed -i 's|deb.debian.org|archive.debian.org|g' /etc/apt/sources.list \
|
||||||
|
&& sed -i 's|security.debian.org|archive.debian.org|g' /etc/apt/sources.list \
|
||||||
|
&& sed -i '/stretch-updates/d' /etc/apt/sources.list
|
||||||
|
|
||||||
# Install system dependencies
|
# Install system dependencies
|
||||||
RUN apt-get update && apt-get install -y \
|
RUN apt-get update && apt-get install -y --allow-unauthenticated \
|
||||||
git \
|
git \
|
||||||
curl \
|
curl \
|
||||||
libpng-dev \
|
libpng-dev \
|
||||||
libonig-dev \
|
|
||||||
libxml2-dev \
|
libxml2-dev \
|
||||||
libzip-dev \
|
libmcrypt-dev \
|
||||||
zip \
|
zip \
|
||||||
unzip \
|
unzip \
|
||||||
libfreetype6-dev \
|
libfreetype6-dev \
|
||||||
libjpeg62-turbo-dev \
|
libjpeg62-turbo-dev \
|
||||||
openssh-client \
|
openssh-client \
|
||||||
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
|
&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
|
||||||
&& docker-php-ext-install -j$(nproc) gd
|
&& docker-php-ext-install -j$(nproc) gd
|
||||||
|
|
||||||
# Install PHP extensions (mcrypt removed - not available in PHP 7.4)
|
# Install PHP extensions (mcrypt is built-in for PHP 7.0)
|
||||||
RUN docker-php-ext-install pdo_mysql mbstring exif pcntl bcmath zip
|
RUN docker-php-ext-install pdo_mysql mbstring exif pcntl bcmath mcrypt tokenizer zip
|
||||||
|
|
||||||
# Enable Apache mod_rewrite
|
# Enable Apache mod_rewrite
|
||||||
RUN a2enmod rewrite
|
RUN a2enmod rewrite
|
||||||
|
|
||||||
# Install Composer (version 2.x for Laravel 6.x)
|
# Install Composer (version 1.x for better compatibility with Laravel 5.0)
|
||||||
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
|
COPY --from=composer:1.10 /usr/bin/composer /usr/bin/composer
|
||||||
|
|
||||||
# Set working directory
|
# Set working directory
|
||||||
WORKDIR /var/www/html
|
WORKDIR /var/www/html
|
||||||
@@ -47,17 +51,20 @@ RUN chown -R www-data:www-data /var/www/html \
|
|||||||
# Create .env file if it doesn't exist
|
# Create .env file if it doesn't exist
|
||||||
RUN if [ ! -f .env ]; then cp .env.example .env; fi
|
RUN if [ ! -f .env ]; then cp .env.example .env; fi
|
||||||
|
|
||||||
# Install PHP dependencies
|
# Install PHP dependencies (Laravel 5.0 compatible)
|
||||||
# Note: composer install will be run via docker-entrypoint.sh or manually
|
RUN composer install --no-dev --no-interaction --prefer-dist
|
||||||
# to avoid build-time network timeouts
|
|
||||||
# RUN composer install --no-dev --no-interaction --prefer-dist --optimize-autoloader
|
|
||||||
|
|
||||||
# Generate application key (will be done at runtime)
|
# Generate application key
|
||||||
# RUN php artisan key:generate || true
|
RUN php artisan key:generate || true
|
||||||
|
|
||||||
# Cache Laravel configuration and routes (will be done at runtime)
|
# Run Laravel 5.0 optimization
|
||||||
# RUN php artisan config:cache || true
|
RUN php artisan clear-compiled && php artisan optimize
|
||||||
# RUN php artisan route:cache || true
|
|
||||||
|
# Note: yakpro-po obfuscation requires PHP 7.1+, incompatible with PHP 7.0
|
||||||
|
# For code protection with PHP 7.0, consider:
|
||||||
|
# 1. ionCube Encoder (commercial, most secure)
|
||||||
|
# 2. Keeping source code private and using proper access controls
|
||||||
|
# 3. Using --optimize flag in composer (already done above)
|
||||||
|
|
||||||
# Configure Apache DocumentRoot to point to Laravel's public directory
|
# Configure Apache DocumentRoot to point to Laravel's public directory
|
||||||
ENV APACHE_DOCUMENT_ROOT=/var/www/html/public
|
ENV APACHE_DOCUMENT_ROOT=/var/www/html/public
|
||||||
|
|||||||
175
UPGRADE_NOTES.md
175
UPGRADE_NOTES.md
@@ -1,175 +0,0 @@
|
|||||||
# Laravel 5.0 → 11 Upgrade Progress
|
|
||||||
|
|
||||||
## Current State (Baseline)
|
|
||||||
- **Laravel Version**: 5.5.* (Phase 2 Complete)
|
|
||||||
- **PHP Version**: 7.0+ required (container ready)
|
|
||||||
- **Database**: MySQL via PDO
|
|
||||||
- **Branch**: feature/laravel-upgrade
|
|
||||||
|
|
||||||
## Completed Upgrades
|
|
||||||
|
|
||||||
### ✅ Phase 1: Laravel 5.0 → 5.1 (COMPLETE)
|
|
||||||
- ✅ Updated composer.json
|
|
||||||
- ✅ Basic route compatibility verified
|
|
||||||
- ✅ Middleware working
|
|
||||||
- ✅ Authentication flow tested
|
|
||||||
|
|
||||||
### ✅ Phase 2: Laravel 5.1 → 5.5 LTS (COMPLETE)
|
|
||||||
- ✅ Updated composer.json (Laravel 5.5.*, Guzzle ^6.3, PHPUnit ~6.0)
|
|
||||||
- ✅ Created `routes/web.php` with all web routes
|
|
||||||
- ✅ Created `routes/api.php` with API routes (moved from /api prefix)
|
|
||||||
- ✅ Expanded `Route::controllers()` to explicit route definitions
|
|
||||||
- ✅ Updated RouteServiceProvider to use mapWebRoutes() and mapApiRoutes()
|
|
||||||
- ✅ Updated Exception Handler with Laravel 5.5 patterns
|
|
||||||
- ⚠️ **Requires PHP 7.0+** - Local test needs Docker container
|
|
||||||
|
|
||||||
## Dependencies Audit
|
|
||||||
|
|
||||||
### Core Dependencies
|
|
||||||
- ✅ `laravel/framework`: 5.0.* → Need to upgrade incrementally
|
|
||||||
- ✅ `webpatser/laravel-uuid`: ^2.0 → Compatible through Laravel 8
|
|
||||||
- ⚠️ `netshell/paypal`: dev-master → May need replacement (outdated)
|
|
||||||
- ⚠️ `guzzlehttp/guzzle`: ~5.0 → Need to upgrade to ^7.0
|
|
||||||
- ✅ `google/recaptcha`: ~1.1 → Still maintained
|
|
||||||
- ⚠️ `spatie/laravel-analytics`: ^1.4 → Need to upgrade to ^5.0
|
|
||||||
- ✅ `league/flysystem-sftp`: ^1.0 → Upgrade to ^3.0 for Laravel 9+
|
|
||||||
- ✅ `aws/aws-sdk-php`: ~3.0 → Compatible
|
|
||||||
|
|
||||||
### Custom Middleware Found
|
|
||||||
- `CheckTeamStorePassword` - Custom team store authentication
|
|
||||||
- `IsAdmin` - Admin role check
|
|
||||||
- `IsUser` - Normal user role check
|
|
||||||
- `isAuthorized` - Custom authorization
|
|
||||||
- `Cors` - CORS handling
|
|
||||||
|
|
||||||
### Custom Code Patterns Detected
|
|
||||||
- ✅ `app/helpers.php` - Auto-loaded helper functions (minio_url, minio_image_url)
|
|
||||||
- ✅ Routes in `app/Http/routes.php` (Laravel 5.0 pattern)
|
|
||||||
- ⚠️ Controllers echoing HTML directly (needs refactoring)
|
|
||||||
- ⚠️ Boolean stored as strings ("TRUE"/"FALSE" in database)
|
|
||||||
|
|
||||||
## Upgrade Path
|
|
||||||
|
|
||||||
### Phase 1: Laravel 5.0 → 5.1 (Week 1)
|
|
||||||
- ✅ Update composer.json
|
|
||||||
- ✅ Test route compatibility
|
|
||||||
- ✅ Verify middleware still works
|
|
||||||
- ✅ Test authentication flow
|
|
||||||
|
|
||||||
### Phase 2: Laravel 5.1 → 5.5 LTS (Week 2)
|
|
||||||
- ✅ Move routes to `routes/web.php`
|
|
||||||
- ✅ Update exception handler
|
|
||||||
- ⏭️ Test all database queries (needs Docker)
|
|
||||||
- ⏭️ Update validation rules (needs testing)
|
|
||||||
|
|
||||||
### Phase 3: PHP 7.0 → 7.4 & Laravel 5.5 → 6.x (Week 3)
|
|
||||||
- [ ] Update Dockerfile to PHP 7.4
|
|
||||||
- [ ] Remove mcrypt dependencies (if any encrypted data)
|
|
||||||
- [ ] Add string/array helpers package
|
|
||||||
- [ ] Test file uploads
|
|
||||||
|
|
||||||
### Phase 4: Laravel 6.x → 8.x (Week 4)
|
|
||||||
- [ ] Update factory syntax
|
|
||||||
- [ ] Test rate limiting
|
|
||||||
- [ ] Verify queue jobs
|
|
||||||
|
|
||||||
### Phase 5: PHP 8.0 & Laravel 8.x → 9.x (Week 5)
|
|
||||||
- [ ] Update Dockerfile to PHP 8.0
|
|
||||||
- [ ] Update Flysystem to v3 (affects MinIO config)
|
|
||||||
- [ ] Test query builder changes
|
|
||||||
|
|
||||||
### Phase 6: Laravel 9.x → 10.x (Week 6)
|
|
||||||
- [ ] Update to PHP 8.1
|
|
||||||
- [ ] Add type declarations where needed
|
|
||||||
- [ ] Test invokable validation rules
|
|
||||||
|
|
||||||
### Phase 7: Laravel 10.x → 11.x (Week 7)
|
|
||||||
- [ ] Update to PHP 8.2
|
|
||||||
- [ ] Test new application skeleton
|
|
||||||
- [ ] Verify all functionality
|
|
||||||
|
|
||||||
## How to Test the Upgrade
|
|
||||||
|
|
||||||
### Quick Test (Docker Required)
|
|
||||||
```bash
|
|
||||||
# Run the automated test script
|
|
||||||
./test-laravel-5.5.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
### Manual Test
|
|
||||||
```bash
|
|
||||||
# Build and start container
|
|
||||||
docker compose -f docker-compose.local.yml up -d --build
|
|
||||||
|
|
||||||
# Check Laravel version
|
|
||||||
docker compose -f docker-compose.local.yml exec app php artisan --version
|
|
||||||
|
|
||||||
# List all routes (verify new structure)
|
|
||||||
docker compose -f docker-compose.local.yml exec app php artisan route:list
|
|
||||||
|
|
||||||
# Access the application
|
|
||||||
# http://localhost:8080
|
|
||||||
```
|
|
||||||
|
|
||||||
### Verify Key Changes
|
|
||||||
1. **Routes**: Check `routes/web.php` and `routes/api.php` exist
|
|
||||||
2. **API Prefix**: API routes now automatically prefixed with `/api`
|
|
||||||
3. **Authentication**: Login routes now use named routes (`login`, `register`)
|
|
||||||
4. **Middleware**: Web middleware auto-applied to routes/web.php
|
|
||||||
|
|
||||||
## Breaking Changes to Watch
|
|
||||||
|
|
||||||
### Database
|
|
||||||
- Boolean fields stored as strings ("TRUE"/"FALSE") - Need migration
|
|
||||||
- Direct DB facade usage throughout codebase
|
|
||||||
|
|
||||||
### Routes
|
|
||||||
- Controller array syntax in routes will be removed
|
|
||||||
- Need to update to standard controller@method or invokable
|
|
||||||
|
|
||||||
### Middleware
|
|
||||||
- Middleware signature changes in later versions
|
|
||||||
- CSRF token handling updates
|
|
||||||
|
|
||||||
### Views
|
|
||||||
- Blade syntax mostly compatible
|
|
||||||
- PHP in controllers (<?php echo) needs refactoring
|
|
||||||
|
|
||||||
### External Services
|
|
||||||
- PayPal integration (netshell/paypal) may need complete rewrite
|
|
||||||
- Google Analytics package needs major upgrade
|
|
||||||
- Screenshot Node.js service should remain compatible
|
|
||||||
|
|
||||||
## Rollback Plan
|
|
||||||
- Keep master branch untouched
|
|
||||||
- Tag current state: `git tag v5.0-baseline`
|
|
||||||
- Can revert entire branch if needed
|
|
||||||
- Parallel testing environment on port 8090
|
|
||||||
|
|
||||||
## Testing Checklist (After Each Upgrade)
|
|
||||||
- [ ] Homepage loads
|
|
||||||
- [ ] User registration/login works
|
|
||||||
- [ ] Sports category pages render
|
|
||||||
- [ ] Designer tool loads
|
|
||||||
- [ ] Pattern/clipart selection works
|
|
||||||
- [ ] Cart functionality
|
|
||||||
- [ ] Team store pages
|
|
||||||
- [ ] PayPal checkout flow
|
|
||||||
- [ ] Admin panel access
|
|
||||||
- [ ] Image serving from MinIO
|
|
||||||
- [ ] Screenshot generation service
|
|
||||||
- [ ] File uploads work
|
|
||||||
|
|
||||||
## Notes
|
|
||||||
- Current Composer version 1.x - may need to use `composer self-update --1` during transition
|
|
||||||
- AWS SDK already at 3.0, compatible with all Laravel versions
|
|
||||||
- Helper functions (minio_url) should remain compatible
|
|
||||||
- Fabric.js designer tool is front-end only, won't be affected
|
|
||||||
|
|
||||||
## Completed Steps
|
|
||||||
1. ✅ Created feature branch (`feature/laravel-upgrade`)
|
|
||||||
2. ✅ Documented current state and dependencies
|
|
||||||
3. ✅ Created baseline tag (`v5.0-baseline`) for rollback
|
|
||||||
4. ✅ Updated composer.json for Laravel 5.1
|
|
||||||
5. ✅ Updated Guzzle 5.0 → 6.0 (required for Laravel 5.1)
|
|
||||||
6. ⏳ Next: Build container and run composer update
|
|
||||||
@@ -1,25 +1,17 @@
|
|||||||
<?php
|
<?php namespace App\Exceptions;
|
||||||
|
|
||||||
namespace App\Exceptions;
|
|
||||||
|
|
||||||
use Exception;
|
use Exception;
|
||||||
use Illuminate\Auth\AuthenticationException;
|
|
||||||
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
|
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
|
||||||
|
|
||||||
class Handler extends ExceptionHandler
|
class Handler extends ExceptionHandler {
|
||||||
{
|
|
||||||
/**
|
/**
|
||||||
* A list of the exception types that are not reported.
|
* A list of the exception types that should not be reported.
|
||||||
*
|
*
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
protected $dontReport = [
|
protected $dontReport = [
|
||||||
\Illuminate\Auth\AuthenticationException::class,
|
'Symfony\Component\HttpKernel\Exception\HttpException'
|
||||||
\Illuminate\Auth\Access\AuthorizationException::class,
|
|
||||||
\Symfony\Component\HttpKernel\Exception\HttpException::class,
|
|
||||||
\Illuminate\Database\Eloquent\ModelNotFoundException::class,
|
|
||||||
\Illuminate\Session\TokenMismatchException::class,
|
|
||||||
\Illuminate\Validation\ValidationException::class,
|
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -27,38 +19,24 @@ class Handler extends ExceptionHandler
|
|||||||
*
|
*
|
||||||
* This is a great spot to send exceptions to Sentry, Bugsnag, etc.
|
* This is a great spot to send exceptions to Sentry, Bugsnag, etc.
|
||||||
*
|
*
|
||||||
* @param \Exception $exception
|
* @param \Exception $e
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function report(Exception $exception)
|
public function report(Exception $e)
|
||||||
{
|
{
|
||||||
parent::report($exception);
|
return parent::report($e);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Render an exception into an HTTP response.
|
* Render an exception into an HTTP response.
|
||||||
*
|
*
|
||||||
* @param \Illuminate\Http\Request $request
|
* @param \Illuminate\Http\Request $request
|
||||||
* @param \Exception $exception
|
* @param \Exception $e
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*/
|
||||||
public function render($request, Exception $exception)
|
public function render($request, Exception $e)
|
||||||
{
|
{
|
||||||
return parent::render($request, $exception);
|
return parent::render($request, $e);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Convert an authentication exception into an unauthenticated response.
|
|
||||||
*
|
|
||||||
* @param \Illuminate\Http\Request $request
|
|
||||||
* @param \Illuminate\Auth\AuthenticationException $exception
|
|
||||||
* @return \Illuminate\Http\Response
|
|
||||||
*/
|
|
||||||
protected function unauthenticated($request, AuthenticationException $exception)
|
|
||||||
{
|
|
||||||
return $request->expectsJson()
|
|
||||||
? response()->json(['message' => 'Unauthenticated.'], 401)
|
|
||||||
: redirect()->guest(route('login'));
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,32 +1,40 @@
|
|||||||
<?php namespace App\Http\Controllers\Auth;
|
<?php namespace App\Http\Controllers\Auth;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Illuminate\Foundation\Auth\AuthenticatesUsers;
|
use Illuminate\Contracts\Auth\Guard;
|
||||||
|
use Illuminate\Contracts\Auth\Registrar;
|
||||||
|
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers;
|
||||||
|
|
||||||
class AuthController extends Controller {
|
class AuthController extends Controller {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
| Login Controller
|
| Registration & Login Controller
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
|
||||||
| This controller handles authenticating users for the application.
|
| This controller handles the registration of new users, as well as the
|
||||||
|
| authentication of existing users. By default, this controller uses
|
||||||
|
| a simple trait to add these behaviors. Why don't you explore it?
|
||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
use AuthenticatesUsers;
|
use AuthenticatesAndRegistersUsers;
|
||||||
|
|
||||||
protected $redirectTo = '/';
|
protected $redirectTo = '/';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new authentication controller instance.
|
* Create a new authentication controller instance.
|
||||||
*
|
*
|
||||||
|
* @param \Illuminate\Contracts\Auth\Guard $auth
|
||||||
|
* @param \Illuminate\Contracts\Auth\Registrar $registrar
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public function __construct()
|
public function __construct(Guard $auth, Registrar $registrar)
|
||||||
{
|
{
|
||||||
$this->middleware('guest')->except('logout');
|
$this->auth = $auth;
|
||||||
|
$this->registrar = $registrar;
|
||||||
|
|
||||||
|
$this->middleware('guest', ['except' => 'getLogout']);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,68 +0,0 @@
|
|||||||
<?php namespace App\Http\Controllers\Auth;
|
|
||||||
|
|
||||||
use App\User;
|
|
||||||
use App\Http\Controllers\Controller;
|
|
||||||
use Illuminate\Support\Facades\Validator;
|
|
||||||
use Illuminate\Foundation\Auth\RegistersUsers;
|
|
||||||
|
|
||||||
class RegisterController extends Controller
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
| Register Controller
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
|
|
|
||||||
| This controller handles the registration of new users as well as their
|
|
||||||
| validation and creation.
|
|
||||||
|
|
|
||||||
*/
|
|
||||||
|
|
||||||
use RegistersUsers;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Where to redirect users after registration.
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
protected $redirectTo = '/';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a new controller instance.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
$this->middleware('guest');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get a validator for an incoming registration request.
|
|
||||||
*
|
|
||||||
* @param array $data
|
|
||||||
* @return \Illuminate\Contracts\Validation\Validator
|
|
||||||
*/
|
|
||||||
protected function validator(array $data)
|
|
||||||
{
|
|
||||||
return Validator::make($data, [
|
|
||||||
'name' => 'required|string|max:255',
|
|
||||||
'email' => 'required|string|email|max:255|unique:users',
|
|
||||||
'password' => 'required|string|min:6|confirmed',
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a new user instance after a valid registration.
|
|
||||||
*
|
|
||||||
* @param array $data
|
|
||||||
* @return \App\User
|
|
||||||
*/
|
|
||||||
protected function create(array $data)
|
|
||||||
{
|
|
||||||
return User::create([
|
|
||||||
'name' => $data['name'],
|
|
||||||
'email' => $data['email'],
|
|
||||||
'password' => bcrypt($data['password']),
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,12 +1,11 @@
|
|||||||
<?php namespace App\Http\Controllers;
|
<?php namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Foundation\Bus\DispatchesCommands;
|
||||||
use Illuminate\Routing\Controller as BaseController;
|
use Illuminate\Routing\Controller as BaseController;
|
||||||
use Illuminate\Foundation\Bus\DispatchesJobs;
|
|
||||||
use Illuminate\Foundation\Validation\ValidatesRequests;
|
use Illuminate\Foundation\Validation\ValidatesRequests;
|
||||||
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
|
|
||||||
|
|
||||||
abstract class Controller extends BaseController {
|
abstract class Controller extends BaseController {
|
||||||
|
|
||||||
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
|
use DispatchesCommands, ValidatesRequests;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ class MainController extends Controller {
|
|||||||
foreach ($fetchData as $row) {
|
foreach ($fetchData as $row) {
|
||||||
?>
|
?>
|
||||||
<div class="col-md-3 col-sm-6 col-xs-12 list-sport">
|
<div class="col-md-3 col-sm-6 col-xs-12 list-sport">
|
||||||
<a href="<?php echo url('sports') . "/" . $row->URL; ?>"><img src="<?php echo minio_url('uploads/images/sports-thumbnails/' . $row->Thumbnail); ?>" alt="" class="img img-responsive product-center" /></a>
|
<a href="<?php echo url('sports') . "/" . $row->URL; ?>"><img src="<?php echo config('site_config.uploads') . 'sports-thumbnails/' . $row->Thumbnail; ?>" alt="" class="img img-responsive product-center" /></a>
|
||||||
<h3 class="text-center sports-title"><?php echo $row->SportsName ?></h3>
|
<h3 class="text-center sports-title"><?php echo $row->SportsName ?></h3>
|
||||||
</div>
|
</div>
|
||||||
<?php
|
<?php
|
||||||
@@ -50,7 +50,7 @@ class MainController extends Controller {
|
|||||||
$categoryids = array();
|
$categoryids = array();
|
||||||
|
|
||||||
foreach($data as $row){
|
foreach($data as $row){
|
||||||
$categoryids[] = (string)$row->Category;
|
$categoryids[] = $row->Category;
|
||||||
}
|
}
|
||||||
|
|
||||||
$array_sports = $m->selectSportsByURL($url);
|
$array_sports = $m->selectSportsByURL($url);
|
||||||
|
|||||||
@@ -367,11 +367,14 @@ class DesignerController extends Controller {
|
|||||||
?>
|
?>
|
||||||
<div class="form-group col-md-3">
|
<div class="form-group col-md-3">
|
||||||
<div class="thumbnail clipart-thumnail">
|
<div class="thumbnail clipart-thumnail">
|
||||||
<a href="#" class="img-clipart" data-link="<?php echo $row->SVGFilename; ?>"><img src="<?php echo minio_url('uploads/images/cliparts/') . $row->SVGFilename; ?>" width="100%"></a>
|
<a href="#" class="img-clipart" data-link="<?php echo $row->SVGFilename; ?>"><img src="<?php echo config('site_config.uploads') . 'cliparts/'. $row->SVGFilename; ?>" width="100%"></a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function clipartProperties(Request $request)
|
public function clipartProperties(Request $request)
|
||||||
@@ -826,9 +829,8 @@ class DesignerController extends Controller {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$arr = array(
|
$arr = array(
|
||||||
|
'small' => config('site_config.uploads') . $small ,
|
||||||
'small' => minio_url('uploads/images') . $small ,
|
'large' => config('site_config.uploads') . $large
|
||||||
'large' => minio_url('uploads/images') . $large
|
|
||||||
);
|
);
|
||||||
|
|
||||||
return json_encode($arr);
|
return json_encode($arr);
|
||||||
|
|||||||
@@ -591,7 +591,7 @@ class TeamStoreController extends Controller
|
|||||||
//var_dump($items_group);
|
//var_dump($items_group);
|
||||||
$grouped_item = $m->selectTeamStoreGroupByCartKey($cartKey);
|
$grouped_item = $m->selectTeamStoreGroupByCartKey($cartKey);
|
||||||
if ($grouped_item) {
|
if ($grouped_item) {
|
||||||
$defId = $grouped_item->StoreId;
|
$defId = $grouped_item[0]->StoreId;
|
||||||
} else {
|
} else {
|
||||||
$defId = 0;
|
$defId = 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,31 +10,12 @@ class Kernel extends HttpKernel {
|
|||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
protected $middleware = [
|
protected $middleware = [
|
||||||
\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
|
'Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode',
|
||||||
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
|
'Illuminate\Cookie\Middleware\EncryptCookies',
|
||||||
\App\Http\Middleware\TrimStrings::class,
|
'Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse',
|
||||||
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
|
'Illuminate\Session\Middleware\StartSession',
|
||||||
];
|
'Illuminate\View\Middleware\ShareErrorsFromSession',
|
||||||
|
'App\Http\Middleware\VerifyCsrfToken',
|
||||||
/**
|
|
||||||
* The application's route middleware groups.
|
|
||||||
*
|
|
||||||
* @var array
|
|
||||||
*/
|
|
||||||
protected $middlewareGroups = [
|
|
||||||
'web' => [
|
|
||||||
\Illuminate\Cookie\Middleware\EncryptCookies::class,
|
|
||||||
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
|
|
||||||
\Illuminate\Session\Middleware\StartSession::class,
|
|
||||||
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
|
|
||||||
\App\Http\Middleware\VerifyCsrfToken::class,
|
|
||||||
\Illuminate\Routing\Middleware\SubstituteBindings::class,
|
|
||||||
],
|
|
||||||
|
|
||||||
'api' => [
|
|
||||||
'throttle:60,1',
|
|
||||||
'bindings',
|
|
||||||
],
|
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -43,17 +24,14 @@ class Kernel extends HttpKernel {
|
|||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
protected $routeMiddleware = [
|
protected $routeMiddleware = [
|
||||||
'auth' => \App\Http\Middleware\Authenticate::class,
|
'auth' => 'App\Http\Middleware\Authenticate',
|
||||||
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
|
'auth.basic' => 'Illuminate\Auth\Middleware\AuthenticateWithBasicAuth',
|
||||||
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
|
'guest' => 'App\Http\Middleware\RedirectIfAuthenticated',
|
||||||
'can' => \Illuminate\Auth\Middleware\Authorize::class,
|
'teamstoresession' => 'App\Http\Middleware\CheckTeamStorePassword',
|
||||||
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
|
'admin' => '\App\Http\Middleware\IsAdmin',
|
||||||
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
|
'normaluser' => '\App\Http\Middleware\IsUser',
|
||||||
'teamstoresession' => \App\Http\Middleware\CheckTeamStorePassword::class,
|
'isAuthorized' => '\App\Http\Middleware\isAuthorized',
|
||||||
'admin' => \App\Http\Middleware\IsAdmin::class,
|
'cors' => 'App\Http\Middleware\Cors',
|
||||||
'normaluser' => \App\Http\Middleware\IsUser::class,
|
|
||||||
'isAuthorized' => \App\Http\Middleware\isAuthorized::class,
|
|
||||||
'cors' => \App\Http\Middleware\Cors::class,
|
|
||||||
];
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,18 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Middleware;
|
|
||||||
|
|
||||||
use Illuminate\Foundation\Http\Middleware\TrimStrings as Middleware;
|
|
||||||
|
|
||||||
class TrimStrings extends Middleware
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* The names of the attributes that should not be trimmed.
|
|
||||||
*
|
|
||||||
* @var array
|
|
||||||
*/
|
|
||||||
protected $except = [
|
|
||||||
'password',
|
|
||||||
'password_confirmation',
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -27,8 +27,8 @@ class MainModel extends Model {
|
|||||||
|
|
||||||
function selectSportsId($url) //
|
function selectSportsId($url) //
|
||||||
{
|
{
|
||||||
$i = DB::table('sports')->where('URL', '=', $url)->first();
|
$i = DB::table('sports')->where('URL', '=', $url)->get();
|
||||||
$id = $i->Id;
|
$id = $i[0]->Id;
|
||||||
|
|
||||||
$k = DB::table('templates')->where('SportsId', '=', $id)
|
$k = DB::table('templates')->where('SportsId', '=', $id)
|
||||||
->where('IsActive','=', "TRUE")
|
->where('IsActive','=', "TRUE")
|
||||||
@@ -146,8 +146,8 @@ class MainModel extends Model {
|
|||||||
|
|
||||||
function selectTemplatesByCategory($url, $cat) //
|
function selectTemplatesByCategory($url, $cat) //
|
||||||
{
|
{
|
||||||
$i = DB::table('sports')->where('URL', '=', $url)->first();
|
$i = DB::table('sports')->where('URL', '=', $url)->get();
|
||||||
$id = $i->Id;
|
$id = $i[0]->Id;
|
||||||
|
|
||||||
$k = DB::table('templates')->where('SportsId', '=', $id)
|
$k = DB::table('templates')->where('SportsId', '=', $id)
|
||||||
->where('Category','=', $cat)
|
->where('Category','=', $cat)
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ class TeamStoreModel extends Model {
|
|||||||
$i = DB::table('cart_tmp')
|
$i = DB::table('cart_tmp')
|
||||||
->where('CartKey', $cartKey)
|
->where('CartKey', $cartKey)
|
||||||
->groupby('CartKey')
|
->groupby('CartKey')
|
||||||
->first();
|
->get();
|
||||||
return $i;
|
return $i;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,20 +1,24 @@
|
|||||||
<?php
|
<?php namespace App\Providers;
|
||||||
|
|
||||||
namespace App\Providers;
|
|
||||||
|
|
||||||
|
use Illuminate\Bus\Dispatcher;
|
||||||
use Illuminate\Support\ServiceProvider;
|
use Illuminate\Support\ServiceProvider;
|
||||||
|
|
||||||
class BusServiceProvider extends ServiceProvider
|
class BusServiceProvider extends ServiceProvider {
|
||||||
{
|
|
||||||
/**
|
/**
|
||||||
* Bootstrap any application services.
|
* Bootstrap any application services.
|
||||||
*
|
*
|
||||||
|
* @param \Illuminate\Bus\Dispatcher $dispatcher
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function boot()
|
public function boot(Dispatcher $dispatcher)
|
||||||
{
|
{
|
||||||
// Command bus mapping removed in Laravel 5.5+
|
$dispatcher->mapUsing(function($command)
|
||||||
// Commands are now auto-discovered
|
{
|
||||||
|
return Dispatcher::simpleMapping(
|
||||||
|
$command, 'App\Commands', 'App\Handlers\Commands'
|
||||||
|
);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -26,4 +30,5 @@ class BusServiceProvider extends ServiceProvider
|
|||||||
{
|
{
|
||||||
//
|
//
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,11 +19,12 @@ class EventServiceProvider extends ServiceProvider {
|
|||||||
/**
|
/**
|
||||||
* Register any other events for your application.
|
* Register any other events for your application.
|
||||||
*
|
*
|
||||||
|
* @param \Illuminate\Contracts\Events\Dispatcher $events
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function boot()
|
public function boot(DispatcherContract $events)
|
||||||
{
|
{
|
||||||
parent::boot();
|
parent::boot($events);
|
||||||
|
|
||||||
//
|
//
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,14 +1,12 @@
|
|||||||
<?php
|
<?php namespace App\Providers;
|
||||||
|
|
||||||
namespace App\Providers;
|
use Illuminate\Routing\Router;
|
||||||
|
|
||||||
use Illuminate\Support\Facades\Route;
|
|
||||||
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
|
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
|
||||||
|
|
||||||
class RouteServiceProvider extends ServiceProvider
|
class RouteServiceProvider extends ServiceProvider {
|
||||||
{
|
|
||||||
/**
|
/**
|
||||||
* This namespace is applied to your controller routes.
|
* This namespace is applied to the controller routes in your routes file.
|
||||||
*
|
*
|
||||||
* In addition, it is set as the URL generator's root namespace.
|
* In addition, it is set as the URL generator's root namespace.
|
||||||
*
|
*
|
||||||
@@ -19,51 +17,28 @@ class RouteServiceProvider extends ServiceProvider
|
|||||||
/**
|
/**
|
||||||
* Define your route model bindings, pattern filters, etc.
|
* Define your route model bindings, pattern filters, etc.
|
||||||
*
|
*
|
||||||
|
* @param \Illuminate\Routing\Router $router
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function boot()
|
public function boot(Router $router)
|
||||||
{
|
{
|
||||||
parent::boot();
|
parent::boot($router);
|
||||||
|
|
||||||
|
//
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Define the routes for the application.
|
* Define the routes for the application.
|
||||||
*
|
*
|
||||||
|
* @param \Illuminate\Routing\Router $router
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function map()
|
public function map(Router $router)
|
||||||
{
|
{
|
||||||
$this->mapApiRoutes();
|
$router->group(['namespace' => $this->namespace], function($router)
|
||||||
|
{
|
||||||
$this->mapWebRoutes();
|
require app_path('Http/routes.php');
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Define the "web" routes for the application.
|
|
||||||
*
|
|
||||||
* These routes all receive session state, CSRF protection, etc.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
protected function mapWebRoutes()
|
|
||||||
{
|
|
||||||
Route::middleware('web')
|
|
||||||
->namespace($this->namespace)
|
|
||||||
->group(base_path('routes/web.php'));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Define the "api" routes for the application.
|
|
||||||
*
|
|
||||||
* These routes are typically stateless.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
protected function mapApiRoutes()
|
|
||||||
{
|
|
||||||
Route::prefix('api')
|
|
||||||
->middleware('api')
|
|
||||||
->namespace($this->namespace)
|
|
||||||
->group(base_path('routes/api.php'));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,33 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
if (!function_exists('minio_url')) {
|
|
||||||
/**
|
|
||||||
* Generate MinIO URL for a file
|
|
||||||
*
|
|
||||||
* @param string $path File path relative to bucket
|
|
||||||
* @return string Full MinIO URL
|
|
||||||
*/
|
|
||||||
function minio_url($path)
|
|
||||||
{
|
|
||||||
$bucket = env('MINIO_BUCKET', 'crewsportswear');
|
|
||||||
$baseUrl = env('MINIO_URL', 'https://minio.crewsportswear.app');
|
|
||||||
|
|
||||||
// Remove leading slash if present
|
|
||||||
$path = ltrim($path, '/');
|
|
||||||
|
|
||||||
return $baseUrl . '/' . $bucket . '/' . $path;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!function_exists('minio_image_url')) {
|
|
||||||
/**
|
|
||||||
* Generate MinIO URL for an image in uploads/images/
|
|
||||||
*
|
|
||||||
* @param string $filename Image filename
|
|
||||||
* @return string Full MinIO URL
|
|
||||||
*/
|
|
||||||
function minio_image_url($filename)
|
|
||||||
{
|
|
||||||
return minio_url('uploads/images/' . $filename);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
16
bootstrap/cache/packages.php
vendored
16
bootstrap/cache/packages.php
vendored
@@ -1,16 +0,0 @@
|
|||||||
<?php return array (
|
|
||||||
'nesbot/carbon' =>
|
|
||||||
array (
|
|
||||||
'providers' =>
|
|
||||||
array (
|
|
||||||
0 => 'Carbon\\Laravel\\ServiceProvider',
|
|
||||||
),
|
|
||||||
),
|
|
||||||
'webpatser/laravel-uuid' =>
|
|
||||||
array (
|
|
||||||
'aliases' =>
|
|
||||||
array (
|
|
||||||
'Uuid' => 'Webpatser\\Uuid\\Uuid',
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
187
bootstrap/cache/services.php
vendored
187
bootstrap/cache/services.php
vendored
@@ -1,187 +0,0 @@
|
|||||||
<?php return array (
|
|
||||||
'providers' =>
|
|
||||||
array (
|
|
||||||
0 => 'Illuminate\\Foundation\\Providers\\ArtisanServiceProvider',
|
|
||||||
1 => 'Illuminate\\Auth\\AuthServiceProvider',
|
|
||||||
2 => 'Illuminate\\Bus\\BusServiceProvider',
|
|
||||||
3 => 'Illuminate\\Cache\\CacheServiceProvider',
|
|
||||||
4 => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
5 => 'Illuminate\\Cookie\\CookieServiceProvider',
|
|
||||||
6 => 'Illuminate\\Database\\DatabaseServiceProvider',
|
|
||||||
7 => 'Illuminate\\Encryption\\EncryptionServiceProvider',
|
|
||||||
8 => 'Illuminate\\Filesystem\\FilesystemServiceProvider',
|
|
||||||
9 => 'Illuminate\\Foundation\\Providers\\FoundationServiceProvider',
|
|
||||||
10 => 'Illuminate\\Hashing\\HashServiceProvider',
|
|
||||||
11 => 'Illuminate\\Mail\\MailServiceProvider',
|
|
||||||
12 => 'Illuminate\\Pagination\\PaginationServiceProvider',
|
|
||||||
13 => 'Illuminate\\Pipeline\\PipelineServiceProvider',
|
|
||||||
14 => 'Illuminate\\Queue\\QueueServiceProvider',
|
|
||||||
15 => 'Illuminate\\Redis\\RedisServiceProvider',
|
|
||||||
16 => 'Illuminate\\Auth\\Passwords\\PasswordResetServiceProvider',
|
|
||||||
17 => 'Illuminate\\Session\\SessionServiceProvider',
|
|
||||||
18 => 'Illuminate\\Translation\\TranslationServiceProvider',
|
|
||||||
19 => 'Illuminate\\Validation\\ValidationServiceProvider',
|
|
||||||
20 => 'Illuminate\\View\\ViewServiceProvider',
|
|
||||||
21 => 'Carbon\\Laravel\\ServiceProvider',
|
|
||||||
22 => 'App\\Providers\\AppServiceProvider',
|
|
||||||
23 => 'App\\Providers\\BusServiceProvider',
|
|
||||||
24 => 'App\\Providers\\ConfigServiceProvider',
|
|
||||||
25 => 'App\\Providers\\EventServiceProvider',
|
|
||||||
26 => 'App\\Providers\\RouteServiceProvider',
|
|
||||||
27 => 'Netshell\\Paypal\\PaypalServiceProvider',
|
|
||||||
),
|
|
||||||
'eager' =>
|
|
||||||
array (
|
|
||||||
0 => 'Illuminate\\Auth\\AuthServiceProvider',
|
|
||||||
1 => 'Illuminate\\Cookie\\CookieServiceProvider',
|
|
||||||
2 => 'Illuminate\\Database\\DatabaseServiceProvider',
|
|
||||||
3 => 'Illuminate\\Encryption\\EncryptionServiceProvider',
|
|
||||||
4 => 'Illuminate\\Filesystem\\FilesystemServiceProvider',
|
|
||||||
5 => 'Illuminate\\Foundation\\Providers\\FoundationServiceProvider',
|
|
||||||
6 => 'Illuminate\\Pagination\\PaginationServiceProvider',
|
|
||||||
7 => 'Illuminate\\Session\\SessionServiceProvider',
|
|
||||||
8 => 'Illuminate\\View\\ViewServiceProvider',
|
|
||||||
9 => 'Carbon\\Laravel\\ServiceProvider',
|
|
||||||
10 => 'App\\Providers\\AppServiceProvider',
|
|
||||||
11 => 'App\\Providers\\BusServiceProvider',
|
|
||||||
12 => 'App\\Providers\\ConfigServiceProvider',
|
|
||||||
13 => 'App\\Providers\\EventServiceProvider',
|
|
||||||
14 => 'App\\Providers\\RouteServiceProvider',
|
|
||||||
15 => 'Netshell\\Paypal\\PaypalServiceProvider',
|
|
||||||
),
|
|
||||||
'deferred' =>
|
|
||||||
array (
|
|
||||||
'command.cache.clear' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.cache.forget' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.clear-compiled' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.auth.resets.clear' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.config.cache' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.config.clear' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.down' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.environment' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.key.generate' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.migrate' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.migrate.fresh' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.migrate.install' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.migrate.refresh' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.migrate.reset' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.migrate.rollback' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.migrate.status' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.optimize' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.package.discover' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.preset' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.queue.failed' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.queue.flush' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.queue.forget' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.queue.listen' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.queue.restart' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.queue.retry' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.queue.work' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.route.cache' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.route.clear' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.route.list' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.seed' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Console\\Scheduling\\ScheduleFinishCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Console\\Scheduling\\ScheduleRunCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.storage.link' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.up' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.view.clear' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.app.name' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.auth.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.cache.table' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.console.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.controller.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.event.generate' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.event.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.exception.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.factory.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.job.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.listener.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.mail.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.middleware.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.migrate.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.model.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.notification.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.notification.table' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.policy.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.provider.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.queue.failed-table' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.queue.table' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.request.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.resource.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.rule.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.seeder.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.session.table' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.serve' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.test.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'command.vendor.publish' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Bus\\Dispatcher' => 'Illuminate\\Bus\\BusServiceProvider',
|
|
||||||
'Illuminate\\Contracts\\Bus\\Dispatcher' => 'Illuminate\\Bus\\BusServiceProvider',
|
|
||||||
'Illuminate\\Contracts\\Bus\\QueueingDispatcher' => 'Illuminate\\Bus\\BusServiceProvider',
|
|
||||||
'cache' => 'Illuminate\\Cache\\CacheServiceProvider',
|
|
||||||
'cache.store' => 'Illuminate\\Cache\\CacheServiceProvider',
|
|
||||||
'memcached.connector' => 'Illuminate\\Cache\\CacheServiceProvider',
|
|
||||||
'migrator' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'migration.repository' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'migration.creator' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'composer' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'hash' => 'Illuminate\\Hashing\\HashServiceProvider',
|
|
||||||
'mailer' => 'Illuminate\\Mail\\MailServiceProvider',
|
|
||||||
'swift.mailer' => 'Illuminate\\Mail\\MailServiceProvider',
|
|
||||||
'swift.transport' => 'Illuminate\\Mail\\MailServiceProvider',
|
|
||||||
'Illuminate\\Mail\\Markdown' => 'Illuminate\\Mail\\MailServiceProvider',
|
|
||||||
'Illuminate\\Contracts\\Pipeline\\Hub' => 'Illuminate\\Pipeline\\PipelineServiceProvider',
|
|
||||||
'queue' => 'Illuminate\\Queue\\QueueServiceProvider',
|
|
||||||
'queue.worker' => 'Illuminate\\Queue\\QueueServiceProvider',
|
|
||||||
'queue.listener' => 'Illuminate\\Queue\\QueueServiceProvider',
|
|
||||||
'queue.failer' => 'Illuminate\\Queue\\QueueServiceProvider',
|
|
||||||
'queue.connection' => 'Illuminate\\Queue\\QueueServiceProvider',
|
|
||||||
'redis' => 'Illuminate\\Redis\\RedisServiceProvider',
|
|
||||||
'redis.connection' => 'Illuminate\\Redis\\RedisServiceProvider',
|
|
||||||
'auth.password' => 'Illuminate\\Auth\\Passwords\\PasswordResetServiceProvider',
|
|
||||||
'auth.password.broker' => 'Illuminate\\Auth\\Passwords\\PasswordResetServiceProvider',
|
|
||||||
'translator' => 'Illuminate\\Translation\\TranslationServiceProvider',
|
|
||||||
'translation.loader' => 'Illuminate\\Translation\\TranslationServiceProvider',
|
|
||||||
'validator' => 'Illuminate\\Validation\\ValidationServiceProvider',
|
|
||||||
'validation.presence' => 'Illuminate\\Validation\\ValidationServiceProvider',
|
|
||||||
),
|
|
||||||
'when' =>
|
|
||||||
array (
|
|
||||||
'Illuminate\\Foundation\\Providers\\ArtisanServiceProvider' =>
|
|
||||||
array (
|
|
||||||
),
|
|
||||||
'Illuminate\\Bus\\BusServiceProvider' =>
|
|
||||||
array (
|
|
||||||
),
|
|
||||||
'Illuminate\\Cache\\CacheServiceProvider' =>
|
|
||||||
array (
|
|
||||||
),
|
|
||||||
'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider' =>
|
|
||||||
array (
|
|
||||||
),
|
|
||||||
'Illuminate\\Hashing\\HashServiceProvider' =>
|
|
||||||
array (
|
|
||||||
),
|
|
||||||
'Illuminate\\Mail\\MailServiceProvider' =>
|
|
||||||
array (
|
|
||||||
),
|
|
||||||
'Illuminate\\Pipeline\\PipelineServiceProvider' =>
|
|
||||||
array (
|
|
||||||
),
|
|
||||||
'Illuminate\\Queue\\QueueServiceProvider' =>
|
|
||||||
array (
|
|
||||||
),
|
|
||||||
'Illuminate\\Redis\\RedisServiceProvider' =>
|
|
||||||
array (
|
|
||||||
),
|
|
||||||
'Illuminate\\Auth\\Passwords\\PasswordResetServiceProvider' =>
|
|
||||||
array (
|
|
||||||
),
|
|
||||||
'Illuminate\\Translation\\TranslationServiceProvider' =>
|
|
||||||
array (
|
|
||||||
),
|
|
||||||
'Illuminate\\Validation\\ValidationServiceProvider' =>
|
|
||||||
array (
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
@@ -5,24 +5,17 @@
|
|||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"type": "project",
|
"type": "project",
|
||||||
"require": {
|
"require": {
|
||||||
"php": "^7.2",
|
"laravel/framework": "5.0.*",
|
||||||
"laravel/framework": "^6.0",
|
"webpatser/laravel-uuid": "^2.0",
|
||||||
"laravel/helpers": "^1.1",
|
|
||||||
"laravel/tinker": "^2.0",
|
|
||||||
"webpatser/laravel-uuid": "^3.0",
|
|
||||||
"netshell/paypal": "dev-master",
|
"netshell/paypal": "dev-master",
|
||||||
"guzzlehttp/guzzle": "^6.3",
|
"guzzlehttp/guzzle": "~5.0",
|
||||||
"google/recaptcha": "~1.1",
|
"google/recaptcha": "~1.1",
|
||||||
"spatie/laravel-analytics": "^3.0",
|
"spatie/laravel-analytics": "^1.4",
|
||||||
"league/flysystem-sftp": "^1.0",
|
"league/flysystem-sftp": "^1.0"
|
||||||
"aws/aws-sdk-php": "~3.0"
|
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"facade/ignition": "^1.4",
|
"phpunit/phpunit": "~4.0",
|
||||||
"fzaninotto/faker": "^1.4",
|
"phpspec/phpspec": "~2.1"
|
||||||
"mockery/mockery": "^1.0",
|
|
||||||
"nunomaduro/collision": "^3.0",
|
|
||||||
"phpunit/phpunit": "^8.0"
|
|
||||||
},
|
},
|
||||||
|
|
||||||
"autoload": {
|
"autoload": {
|
||||||
@@ -31,10 +24,7 @@
|
|||||||
],
|
],
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
"App\\": "app/"
|
"App\\": "app/"
|
||||||
},
|
}
|
||||||
"files": [
|
|
||||||
"app/helpers.php"
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"autoload-dev": {
|
"autoload-dev": {
|
||||||
"classmap": [
|
"classmap": [
|
||||||
@@ -42,21 +32,20 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"post-autoload-dump": [
|
"post-install-cmd": [
|
||||||
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
|
"php artisan clear-compiled",
|
||||||
"@php artisan package:discover --ansi"
|
"php artisan optimize"
|
||||||
],
|
],
|
||||||
"post-root-package-install": [
|
"post-update-cmd": [
|
||||||
"@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
|
"php artisan clear-compiled",
|
||||||
|
"php artisan optimize"
|
||||||
],
|
],
|
||||||
"post-create-project-cmd": [
|
"post-create-project-cmd": [
|
||||||
"@php artisan key:generate --ansi"
|
"php -r \"copy('.env.example', '.env');\"",
|
||||||
|
"php artisan key:generate"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"config": {
|
"config": {
|
||||||
"preferred-install": "dist",
|
"preferred-install": "dist"
|
||||||
"allow-plugins": {
|
|
||||||
"kylekatarnls/update-helper": true
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
3913
composer.lock
generated
Normal file
3913
composer.lock
generated
Normal file
File diff suppressed because it is too large
Load Diff
@@ -80,7 +80,7 @@ return [
|
|||||||
|
|
||||||
'key' => env('APP_KEY', 'SomeRandomString'),
|
'key' => env('APP_KEY', 'SomeRandomString'),
|
||||||
|
|
||||||
'cipher' => 'AES-256-CBC',
|
'cipher' => MCRYPT_RIJNDAEL_128,
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
@@ -118,7 +118,7 @@ return [
|
|||||||
'Illuminate\Bus\BusServiceProvider',
|
'Illuminate\Bus\BusServiceProvider',
|
||||||
'Illuminate\Cache\CacheServiceProvider',
|
'Illuminate\Cache\CacheServiceProvider',
|
||||||
'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
|
'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
|
||||||
// 'Illuminate\Routing\ControllerServiceProvider', // Removed in Laravel 5.3+
|
'Illuminate\Routing\ControllerServiceProvider',
|
||||||
'Illuminate\Cookie\CookieServiceProvider',
|
'Illuminate\Cookie\CookieServiceProvider',
|
||||||
'Illuminate\Database\DatabaseServiceProvider',
|
'Illuminate\Database\DatabaseServiceProvider',
|
||||||
'Illuminate\Encryption\EncryptionServiceProvider',
|
'Illuminate\Encryption\EncryptionServiceProvider',
|
||||||
@@ -153,7 +153,7 @@ return [
|
|||||||
/*
|
/*
|
||||||
* Google analytics
|
* Google analytics
|
||||||
*/
|
*/
|
||||||
// 'Spatie\LaravelAnalytics\LaravelAnalyticsServiceProvider', // Commented out - version 2.x needs reconfiguration
|
'Spatie\LaravelAnalytics\LaravelAnalyticsServiceProvider',
|
||||||
|
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|||||||
@@ -4,59 +4,64 @@ return [
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
| Authentication Defaults
|
| Default Authentication Driver
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| This option controls the authentication driver that will be utilized.
|
||||||
|
| This driver manages the retrieval and authentication of the users
|
||||||
|
| attempting to get access to protected areas of your application.
|
||||||
|
|
|
||||||
|
| Supported: "database", "eloquent"
|
||||||
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'defaults' => [
|
|
||||||
'guard' => 'web',
|
|
||||||
'passwords' => 'users',
|
|
||||||
],
|
|
||||||
|
|
||||||
/*
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
| Authentication Guards
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
*/
|
|
||||||
|
|
||||||
'guards' => [
|
|
||||||
'web' => [
|
|
||||||
'driver' => 'session',
|
|
||||||
'provider' => 'users',
|
|
||||||
],
|
|
||||||
|
|
||||||
'api' => [
|
|
||||||
'driver' => 'token',
|
|
||||||
'provider' => 'users',
|
|
||||||
'hash' => false,
|
|
||||||
],
|
|
||||||
],
|
|
||||||
|
|
||||||
/*
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
| User Providers
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
*/
|
|
||||||
|
|
||||||
'providers' => [
|
|
||||||
'users' => [
|
|
||||||
'driver' => 'eloquent',
|
'driver' => 'eloquent',
|
||||||
'model' => App\User::class,
|
|
||||||
],
|
|
||||||
],
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
| Resetting Passwords
|
| Authentication Model
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| When using the "Eloquent" authentication driver, we need to know which
|
||||||
|
| Eloquent model should be used to retrieve your users. Of course, it
|
||||||
|
| is often just the "User" model but you may use whatever you like.
|
||||||
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'passwords' => [
|
'model' => 'App\User',
|
||||||
'users' => [
|
|
||||||
'provider' => 'users',
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Authentication Table
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| When using the "Database" authentication driver, we need to know which
|
||||||
|
| table should be used to retrieve your users. We have chosen a basic
|
||||||
|
| default value but you may easily change it to any table you like.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'table' => 'users',
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Password Reset Settings
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Here you may set the options for resetting passwords including the view
|
||||||
|
| that is your password reset e-mail. You can also set the name of the
|
||||||
|
| table that maintains all of the reset tokens for your application.
|
||||||
|
|
|
||||||
|
| The expire time is the number of minutes that the reset token should be
|
||||||
|
| considered valid. This security feature keeps tokens short-lived so
|
||||||
|
| they have less time to be guessed. You may change this as needed.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'password' => [
|
||||||
|
'email' => 'emails.password',
|
||||||
'table' => 'password_resets',
|
'table' => 'password_resets',
|
||||||
'expire' => 60,
|
// 'expire' => 60,
|
||||||
],
|
|
||||||
],
|
],
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -86,18 +86,6 @@ return [
|
|||||||
'driver' => 'local',
|
'driver' => 'local',
|
||||||
'root' => '/var/www/html/uploads/images',
|
'root' => '/var/www/html/uploads/images',
|
||||||
],
|
],
|
||||||
|
|
||||||
'minio' => [
|
|
||||||
'driver' => 's3',
|
|
||||||
'key' => env('MINIO_KEY'),
|
|
||||||
'secret' => env('MINIO_SECRET'),
|
|
||||||
'region' => env('MINIO_REGION', 'us-east-1'),
|
|
||||||
'bucket' => env('MINIO_BUCKET', 'crewsportswear'),
|
|
||||||
'endpoint' => env('MINIO_ENDPOINT'),
|
|
||||||
'use_path_style_endpoint' => env('MINIO_USE_PATH_STYLE', true),
|
|
||||||
'url' => env('MINIO_URL', 'https://minio.crewsportswear.app'),
|
|
||||||
],
|
|
||||||
|
|
||||||
],
|
],
|
||||||
|
|
||||||
];
|
];
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
use Illuminate\Support\Facades\Schema;
|
|
||||||
use Illuminate\Database\Schema\Blueprint;
|
|
||||||
use Illuminate\Database\Migrations\Migration;
|
|
||||||
|
|
||||||
class AddUserIdToSessionsTable extends Migration
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Run the migrations.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function up()
|
|
||||||
{
|
|
||||||
Schema::table('sessions', function (Blueprint $table) {
|
|
||||||
$table->unsignedInteger('user_id')->nullable()->after('id');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reverse the migrations.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function down()
|
|
||||||
{
|
|
||||||
Schema::table('sessions', function (Blueprint $table) {
|
|
||||||
$table->dropColumn('user_id');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
use Illuminate\Support\Facades\Schema;
|
|
||||||
use Illuminate\Database\Schema\Blueprint;
|
|
||||||
use Illuminate\Database\Migrations\Migration;
|
|
||||||
|
|
||||||
class UpdateSessionsTableForLaravel55 extends Migration
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Run the migrations.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function up()
|
|
||||||
{
|
|
||||||
Schema::table('sessions', function (Blueprint $table) {
|
|
||||||
$table->string('ip_address', 45)->nullable()->after('user_id');
|
|
||||||
$table->text('user_agent')->nullable()->after('ip_address');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reverse the migrations.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function down()
|
|
||||||
{
|
|
||||||
Schema::table('sessions', function (Blueprint $table) {
|
|
||||||
$table->dropColumn(['ip_address', 'user_agent']);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -27,12 +27,10 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- APP_ENV=local
|
- APP_ENV=local
|
||||||
- APP_DEBUG=true
|
- APP_DEBUG=true
|
||||||
- APP_KEY=base64:omrrKgpmHyPi61hoXrxtTwC/2tFkIsXUlb8UoKk3enk=
|
|
||||||
- APP_CIPHER=AES-256-CBC
|
|
||||||
- APP_URL=http://localhost:8082
|
- APP_URL=http://localhost:8082
|
||||||
- DB_CONNECTION=mysql
|
- DB_CONNECTION=mysql
|
||||||
- DB_HOST=db
|
- DB_HOST=db
|
||||||
- DB_PORT=3307
|
- DB_PORT=3306
|
||||||
- DB_DATABASE=crewsportswear
|
- DB_DATABASE=crewsportswear
|
||||||
- DB_USERNAME=crewsportswear
|
- DB_USERNAME=crewsportswear
|
||||||
- DB_PASSWORD=secret
|
- DB_PASSWORD=secret
|
||||||
@@ -50,14 +48,6 @@ services:
|
|||||||
- ANALYTICS_SITE_ID=
|
- ANALYTICS_SITE_ID=
|
||||||
- ANALYTICS_CLIENT_ID=
|
- ANALYTICS_CLIENT_ID=
|
||||||
- ANALYTICS_SERVICE_EMAIL=
|
- ANALYTICS_SERVICE_EMAIL=
|
||||||
# MinIO S3 Storage (connect to production MinIO for testing)
|
|
||||||
- MINIO_ENDPOINT=https://minio.crewsportswear.app
|
|
||||||
- MINIO_KEY=${MINIO_KEY:-minioadmin}
|
|
||||||
- MINIO_SECRET=${MINIO_SECRET:-minioadmin}
|
|
||||||
- MINIO_BUCKET=crewsportswear
|
|
||||||
- MINIO_REGION=us-east-1
|
|
||||||
- MINIO_USE_PATH_STYLE=false
|
|
||||||
- MINIO_URL=https://minio.crewsportswear.app
|
|
||||||
volumes:
|
volumes:
|
||||||
- ./:/var/www/html
|
- ./:/var/www/html
|
||||||
- ./storage:/var/www/html/storage
|
- ./storage:/var/www/html/storage
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- APP_ENV=${APP_ENV:-production}
|
- APP_ENV=${APP_ENV:-production}
|
||||||
- APP_DEBUG=${APP_DEBUG:-false}
|
- APP_DEBUG=${APP_DEBUG:-false}
|
||||||
- APP_URL=${APP_URL:-https://crewsportswear.com}
|
- APP_URL=${APP_URL:-https://dev-crew.crewsportswear.app}
|
||||||
- DB_CONNECTION=mysql
|
- DB_CONNECTION=mysql
|
||||||
- DB_HOST=${DB_HOST}
|
- DB_HOST=${DB_HOST}
|
||||||
- DB_PORT=${DB_PORT:-3306}
|
- DB_PORT=${DB_PORT:-3306}
|
||||||
@@ -33,17 +33,17 @@ services:
|
|||||||
- ./public/uploads:/var/www/html/public/uploads
|
- ./public/uploads:/var/www/html/public/uploads
|
||||||
labels:
|
labels:
|
||||||
- "traefik.enable=true"
|
- "traefik.enable=true"
|
||||||
# Production environment (crewsportswear.com) - Uses paid SSL certificate
|
# Production environment (dev-crew.crewsportswear.app) - Uses Let's Encrypt
|
||||||
- "traefik.http.routers.crewsportswear-prod.rule=Host(`crewsportswear.com`)"
|
- "traefik.http.routers.crewsportswear-prod.rule=Host(`dev-crew.crewsportswear.app`)"
|
||||||
- "traefik.http.routers.crewsportswear-prod.entrypoints=websecure"
|
- "traefik.http.routers.crewsportswear-prod.entrypoints=websecure"
|
||||||
- "traefik.http.routers.crewsportswear-prod.tls=true"
|
- "traefik.http.routers.crewsportswear-prod.tls=true"
|
||||||
|
- "traefik.http.routers.crewsportswear-prod.tls.certresolver=le"
|
||||||
- "traefik.http.services.crewsportswear-prod.loadbalancer.server.port=80"
|
- "traefik.http.services.crewsportswear-prod.loadbalancer.server.port=80"
|
||||||
# HTTP to HTTPS redirect
|
# HTTP to HTTPS redirect
|
||||||
- "traefik.http.routers.crewsportswear-prod-http.rule=Host(`crewsportswear.com`)"
|
- "traefik.http.routers.crewsportswear-prod-http.rule=Host(`dev-crew.crewsportswear.app`)"
|
||||||
- "traefik.http.routers.crewsportswear-prod-http.entrypoints=web"
|
- "traefik.http.routers.crewsportswear-prod-http.entrypoints=web"
|
||||||
- "traefik.http.routers.crewsportswear-prod-http.middlewares=https-redirect"
|
- "traefik.http.routers.crewsportswear-prod-http.middlewares=https-redirect"
|
||||||
- "traefik.http.middlewares.https-redirect.redirectscheme.scheme=https"
|
- "traefik.http.middlewares.https-redirect.redirectscheme.scheme=https"
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
- traefik-public
|
- traefik-public
|
||||||
- crew-app-net
|
- crew-app-net
|
||||||
|
|||||||
84
readme.md
84
readme.md
@@ -1,79 +1,23 @@
|
|||||||
# Crew Sportswear
|
## Laravel PHP Framework
|
||||||
|
|
||||||
A custom sportswear and apparel e-commerce platform built with Laravel.
|
[](https://travis-ci.org/laravel/framework)
|
||||||
|
[](https://packagist.org/packages/laravel/framework)
|
||||||
|
[](https://packagist.org/packages/laravel/framework)
|
||||||
|
[](https://packagist.org/packages/laravel/framework)
|
||||||
|
[](https://packagist.org/packages/laravel/framework)
|
||||||
|
|
||||||
## Production URL
|
Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable, creative experience to be truly fulfilling. Laravel attempts to take the pain out of development by easing common tasks used in the majority of web projects, such as authentication, routing, sessions, queueing, and caching.
|
||||||
|
|
||||||
https://crewsportswear.com
|
Laravel is accessible, yet powerful, providing powerful tools needed for large, robust applications. A superb inversion of control container, expressive migration system, and tightly integrated unit testing support give you the tools you need to build any application with which you are tasked.
|
||||||
|
|
||||||
## Requirements
|
## Official Documentation
|
||||||
|
|
||||||
- Docker & Docker Compose
|
Documentation for the framework can be found on the [Laravel website](http://laravel.com/docs).
|
||||||
- PHP 7.4+
|
|
||||||
- MySQL 5.7+
|
|
||||||
- Composer
|
|
||||||
- Node.js & NPM
|
|
||||||
|
|
||||||
## Installation
|
## Contributing
|
||||||
|
|
||||||
1. Clone the repository
|
Thank you for considering contributing to the Laravel framework! The contribution guide can be found in the [Laravel documentation](http://laravel.com/docs/contributions).
|
||||||
2. Copy `.env.example` to `.env` and configure your environment variables
|
|
||||||
3. Install PHP dependencies:
|
|
||||||
```bash
|
|
||||||
composer install
|
|
||||||
```
|
|
||||||
4. Install Node dependencies:
|
|
||||||
```bash
|
|
||||||
npm install
|
|
||||||
```
|
|
||||||
5. Generate application key:
|
|
||||||
```bash
|
|
||||||
php artisan key:generate
|
|
||||||
```
|
|
||||||
6. Run migrations:
|
|
||||||
```bash
|
|
||||||
php artisan migrate
|
|
||||||
```
|
|
||||||
|
|
||||||
## Docker Deployment
|
### License
|
||||||
|
|
||||||
### Local Development
|
The Laravel framework is open-sourced software licensed under the [MIT license](http://opensource.org/licenses/MIT)
|
||||||
```bash
|
|
||||||
docker-compose -f docker-compose.local.yml up -d
|
|
||||||
```
|
|
||||||
|
|
||||||
### Development Environment
|
|
||||||
```bash
|
|
||||||
docker-compose -f docker-compose.dev.yml up -d
|
|
||||||
```
|
|
||||||
|
|
||||||
### Production Environment
|
|
||||||
```bash
|
|
||||||
docker-compose -f docker-compose.prod.yml up -d
|
|
||||||
```
|
|
||||||
|
|
||||||
The production environment uses Traefik as a reverse proxy with paid SSL certificate for crewsportswear.com.
|
|
||||||
|
|
||||||
## Features
|
|
||||||
|
|
||||||
- Custom sportswear design interface
|
|
||||||
- Product catalog and management
|
|
||||||
- Order processing and tracking
|
|
||||||
- User authentication and profiles
|
|
||||||
- Analytics integration
|
|
||||||
- Email notifications
|
|
||||||
- reCAPTCHA integration
|
|
||||||
|
|
||||||
## Environment Variables
|
|
||||||
|
|
||||||
Key environment variables (see `.env.example` for full list):
|
|
||||||
- `APP_ENV` - Application environment (local, development, production)
|
|
||||||
- `APP_URL` - Application URL
|
|
||||||
- `DB_*` - Database configuration
|
|
||||||
- `MAIL_*` - Mail server configuration
|
|
||||||
- `ANALYTICS_*` - Google Analytics configuration
|
|
||||||
- `CAPTCHA_*` - reCAPTCHA keys
|
|
||||||
|
|
||||||
## License
|
|
||||||
|
|
||||||
Proprietary - All rights reserved
|
|
||||||
|
|||||||
@@ -57,8 +57,8 @@
|
|||||||
|
|
||||||
<ul class="nav navbar-nav navbar-right">
|
<ul class="nav navbar-nav navbar-right">
|
||||||
@if (Auth::guest())
|
@if (Auth::guest())
|
||||||
<li><a href="{{ url('/login') }}">Login</a></li>
|
<li><a href="{{ url('/auth/login') }}">Login</a></li>
|
||||||
<li><a href="{{ url('/register') }}">Register</a></li>
|
<li><a href="{{ url('/auth/register') }}">Register</a></li>
|
||||||
@else
|
@else
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">{{ Auth::user()->username }} <span class="caret"></span></a>
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">{{ Auth::user()->username }} <span class="caret"></span></a>
|
||||||
|
|||||||
@@ -48,7 +48,7 @@
|
|||||||
<div class="col-xs-12">
|
<div class="col-xs-12">
|
||||||
<hr />
|
<hr />
|
||||||
<p class="text-center">Don't have an account? Register Now!</p>
|
<p class="text-center">Don't have an account? Register Now!</p>
|
||||||
<a href="{{ url('/register') }}" type="submit" id="btn-login" class="btn btn-primary btn-block">Register</a>
|
<a href="{{ url('/auth/register') }}" type="submit" id="btn-login" class="btn btn-primary btn-block">Register</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -125,7 +125,7 @@
|
|||||||
<div class="col-xs-12">
|
<div class="col-xs-12">
|
||||||
<hr />
|
<hr />
|
||||||
<p class="text-center">Have already an account?</p>
|
<p class="text-center">Have already an account?</p>
|
||||||
<a href="{{ url('/login') }}" type="submit" id="btn-login" class="btn btn-success btn-block">Login here</a>
|
<a href="{{ url('/auth/login') }}" type="submit" id="btn-login" class="btn btn-success btn-block">Login here</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -446,7 +446,7 @@
|
|||||||
@foreach ($pattern_arrays as $i => $val)
|
@foreach ($pattern_arrays as $i => $val)
|
||||||
<div class="item @if ($i == 0) active @endif">
|
<div class="item @if ($i == 0) active @endif">
|
||||||
<div class="btn-group patternBox ">
|
<div class="btn-group patternBox ">
|
||||||
<button type="button" data-pattern-path="{{ $val[0]->SVGPath }}" class="patternThumbs btn" data-id="{{ $val[0]->PatternId }}" style="background-image:url('{{ minio_url('uploads/images/' . $val[0]->PatternThumbnail) }}'); background-size:cover; background-repeat: no-repeat;" @if ($i == 0) disabled @endif> @if ($i == 0) <i class="fa fa-2 fa-check" aria-hidden="true"></i> @endif</button>
|
<button type="button" data-pattern-path="{{ $val[0]->SVGPath }}" class="patternThumbs btn" data-id="{{ $val[0]->PatternId }}" style="background-image:url('{{ config('site_config.uploads') }}{{ $val[0]->PatternThumbnail }}'); background-size:cover; background-repeat: no-repeat;" @if ($i == 0) disabled @endif> @if ($i == 0) <i class="fa fa-2 fa-check" aria-hidden="true"></i> @endif</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endforeach
|
@endforeach
|
||||||
@@ -546,7 +546,7 @@
|
|||||||
@foreach ($pattern_arrays as $r => $val)
|
@foreach ($pattern_arrays as $r => $val)
|
||||||
<div class="item @if ($r == 0) active @endif">
|
<div class="item @if ($r == 0) active @endif">
|
||||||
<div class="btn-group patternBox ">
|
<div class="btn-group patternBox ">
|
||||||
<button type="button" data-pattern-path="{{ $val[0]->SVGPath }}" class="patternTrimThumbs patternTrim{{ $i }} btn" data-id="{{ $val[0]->PatternId }}" data-trim="{{ $i }}" style="background-image:url('{{ minio_url('uploads/images/' . $val[0]->PatternThumbnail) }}'); background-size:cover; background-repeat: no-repeat;" @if ($r == 0) disabled @endif> @if ($r == 0) <i class="fa fa-2 fa-check" aria-hidden="true"></i> @endif</button>
|
<button type="button" data-pattern-path="{{ $val[0]->SVGPath }}" class="patternTrimThumbs patternTrim{{ $i }} btn" data-id="{{ $val[0]->PatternId }}" data-trim="{{ $i }}" style="background-image:url('{{ config('site_config.uploads') }}{{ $val[0]->PatternThumbnail }}'); background-size:cover; background-repeat: no-repeat;" @if ($r == 0) disabled @endif> @if ($r == 0) <i class="fa fa-2 fa-check" aria-hidden="true"></i> @endif</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endforeach
|
@endforeach
|
||||||
@@ -1306,7 +1306,7 @@
|
|||||||
|
|
||||||
var patternSVGPath = $(this).attr('data-pattern-path');
|
var patternSVGPath = $(this).attr('data-pattern-path');
|
||||||
|
|
||||||
var patternPath = "{{ env('MINIO_URL', 'https://minio.crewsportswear.app') }}/{{ env('MINIO_BUCKET', 'crewsportswear') }}/" + patternSVGPath;
|
var patternPath = "{{ config('site_config.uploads') }}" + patternSVGPath;
|
||||||
|
|
||||||
var SideAndPath = {!! json_encode($templatepaths_arrays) !!};
|
var SideAndPath = {!! json_encode($templatepaths_arrays) !!};
|
||||||
|
|
||||||
@@ -1383,7 +1383,7 @@
|
|||||||
$(document).on('button click', '.patternTrimThumbs', function(){
|
$(document).on('button click', '.patternTrimThumbs', function(){
|
||||||
|
|
||||||
var patternSVGPath = $(this).attr('data-pattern-path');
|
var patternSVGPath = $(this).attr('data-pattern-path');
|
||||||
var patternPath = "{{ env('MINIO_URL', 'https://minio.crewsportswear.app') }}/{{ env('MINIO_BUCKET', 'crewsportswear') }}/" + patternSVGPath;
|
var patternPath = "{{ config('site_config.uploads') }}" + patternSVGPath;
|
||||||
var getTrimId = $(this).attr('data-trim');
|
var getTrimId = $(this).attr('data-trim');
|
||||||
|
|
||||||
var SideAndPath = {!! json_encode($templatepaths_arrays) !!};
|
var SideAndPath = {!! json_encode($templatepaths_arrays) !!};
|
||||||
@@ -1527,7 +1527,7 @@
|
|||||||
var gradientIds = sideName+"_"+type+"_Gradients";
|
var gradientIds = sideName+"_"+type+"_Gradients";
|
||||||
var gradientPrefix = sideName+"_"+type+"_";
|
var gradientPrefix = sideName+"_"+type+"_";
|
||||||
|
|
||||||
var tempPath = "{{ env('MINIO_URL', 'https://minio.crewsportswear.app') }}/{{ env('MINIO_BUCKET', 'crewsportswear') }}/" + pathLocation;
|
var tempPath = "{{ config('site_config.uploads') }}" + pathLocation;
|
||||||
console.log(tempPath)
|
console.log(tempPath)
|
||||||
if(!document.getElementById(objectId))
|
if(!document.getElementById(objectId))
|
||||||
return false;
|
return false;
|
||||||
@@ -1711,7 +1711,7 @@
|
|||||||
var type = SideAndPath[i]['Type'];
|
var type = SideAndPath[i]['Type'];
|
||||||
var pathLocation = SideAndPath[i]['Path'];
|
var pathLocation = SideAndPath[i]['Path'];
|
||||||
var canvasName = "canvas_" + type + "_" + sideName;
|
var canvasName = "canvas_" + type + "_" + sideName;
|
||||||
var tempPath = "{{ env('MINIO_URL', 'https://minio.crewsportswear.app') }}/{{ env('MINIO_BUCKET', 'crewsportswear') }}/" + pathLocation;
|
var tempPath = "{{ config('site_config.uploads') }}" + pathLocation;
|
||||||
|
|
||||||
window['canvas_' + type + '_' + sideName] = new fabric.Canvas(canvasName);
|
window['canvas_' + type + '_' + sideName] = new fabric.Canvas(canvasName);
|
||||||
var templateFormat = SideAndPath[i]['TemplateFormat'];
|
var templateFormat = SideAndPath[i]['TemplateFormat'];
|
||||||
@@ -2043,9 +2043,9 @@
|
|||||||
|
|
||||||
if(objType == "curvedText"){
|
if(objType == "curvedText"){
|
||||||
if(obj.effect == "curved"){
|
if(obj.effect == "curved"){
|
||||||
$('#teamname_text_shape').html('Text Shape: <br><img src="{{ minio_url('uploads/images/text-shapes-logo/curve-logo.png') }}" height="30px">');
|
$('#teamname_text_shape').html('Text Shape: <br><img src="{{ config('site_config.uploads') }}text-shapes-logo/curve-logo.png" height="30px">');
|
||||||
}else if(obj.effect == "arc"){
|
}else if(obj.effect == "arc"){
|
||||||
$('#teamname_text_shape').html('Text Shape: <br><img src="{{ minio_url('uploads/images/text-shapes-logo/arch-logo.png') }}" height="30px">');
|
$('#teamname_text_shape').html('Text Shape: <br><img src="{{ config('site_config.uploads') }}text-shapes-logo/arch-logo.png" height="30px">');
|
||||||
}else{
|
}else{
|
||||||
$('#teamname_text_shape').html('Add text Shape');
|
$('#teamname_text_shape').html('Add text Shape');
|
||||||
}
|
}
|
||||||
@@ -3345,7 +3345,7 @@
|
|||||||
function loadSVGClipart(dataUrl){
|
function loadSVGClipart(dataUrl){
|
||||||
var k = 0;
|
var k = 0;
|
||||||
var arrayPathId = [];
|
var arrayPathId = [];
|
||||||
var svgUrl = "{{ env('MINIO_URL', 'https://minio.crewsportswear.app') }}/{{ env('MINIO_BUCKET', 'crewsportswear') }}/uploads/images/cliparts/" + dataUrl;
|
var svgUrl = "{{ config('site_config.uploads') }}cliparts/" + dataUrl;
|
||||||
fabric.loadSVGFromURL(svgUrl, function(objects, options) {
|
fabric.loadSVGFromURL(svgUrl, function(objects, options) {
|
||||||
var clipart = fabric.util.groupSVGElements(objects, options );
|
var clipart = fabric.util.groupSVGElements(objects, options );
|
||||||
clipart.set({
|
clipart.set({
|
||||||
|
|||||||
@@ -50,10 +50,10 @@
|
|||||||
</li>
|
</li>
|
||||||
@else
|
@else
|
||||||
<li>
|
<li>
|
||||||
<a href="{{ url('/login') }}" title="Login">Sign in</a>
|
<a href="{{ url('/auth/login') }}" title="Login">Sign in</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="{{ url('/register') }}" title="Register">Register</a>
|
<a href="{{ url('/auth/register') }}" title="Register">Register</a>
|
||||||
</li>
|
</li>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
|
|||||||
@@ -37,7 +37,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@if($row && count($row) > 0)
|
@if(count($row) > 0)
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-4 col-md-push-8 order-summary" >
|
<div class="col-md-4 col-md-push-8 order-summary" >
|
||||||
@@ -122,13 +122,13 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div style="border: 1px solid #e2e2e2; padding: 10px;">
|
<div style="border: 1px solid #e2e2e2; padding: 10px;">
|
||||||
<a @if($getSubtotal <= 0 ) disabled @endif href="{{ url('getCheckout') }}" class="btn btn-primary btn-block" style="background-color: #ffc300; border-color: #e2ad00; text-align: -webkit-center;" ><img src="{{asset('/images/paypal1.png')}}" class="img img-responsive" style="height:30px;"></a><br>
|
<a @if($getSubtotal <= 0 ) disabled @endif href="{{ url('getCheckout') }}" class="btn btn-primary btn-block" style="background-color: #ffc300; border-color: #e2ad00; text-align: -webkit-center;" ><img src="{{asset('/public/images/paypal1.png')}}" class="img img-responsive" style="height:30px;"></a><br>
|
||||||
<a href="{{ url('teamstore') . '/' . $store_array[0]->StoreUrl }}" class="btn btn-default btn-block" type="submit">Continue Shopping</a>
|
<a href="{{ url('teamstore') . '/' . $store_array[0]->StoreUrl }}" class="btn btn-default btn-block" type="submit">Continue Shopping</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-8 col-md-pull-4">
|
<div class="col-md-8 col-md-pull-4">
|
||||||
<div style="border: 1px solid #e2e2e2; padding: 10px;">
|
<div style="border: 1px solid #e2e2e2; padding: 10px;">
|
||||||
<h4><img height="30px" class="store-logo" src="{{ minio_url('uploads/images/teamstore/' . $store_array[0]->ImageFolder . '/' . $store_array[0]->StoreLogo) }}"> {{ $store_array[0]->StoreName }}</h4>
|
<h4><img height="30px" class="store-logo" src="{{ config('site_config.uploads') . 'teamstore/'. $store_array[0]->ImageFolder . '/' . $store_array[0]->StoreLogo }}"> {{ $store_array[0]->StoreName }}</h4>
|
||||||
</div>
|
</div>
|
||||||
@foreach($item_group as $item)
|
@foreach($item_group as $item)
|
||||||
@if($item->VoucherId == null)
|
@if($item->VoucherId == null)
|
||||||
|
|||||||
@@ -8,14 +8,8 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-12" >
|
<div class="col-md-12" >
|
||||||
<ul class="breadcrumb">
|
<ul class="breadcrumb">
|
||||||
<li class=""><a href="{{ url('/') }}">Home</a></li>
|
<li class=""><a href="{{url()}}">Home</a></li>
|
||||||
<li class="active">
|
<li class="active"> {{ $array_sports[0]->SportsName }} </li>
|
||||||
@if($array_sports && $array_sports->count() > 0)
|
|
||||||
{!! $array_sports->first()->SportsName !!}
|
|
||||||
@else
|
|
||||||
Category
|
|
||||||
@endif
|
|
||||||
</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -24,12 +18,12 @@
|
|||||||
@foreach ($row as $r)
|
@foreach ($row as $r)
|
||||||
<div class="col-md-3 col-sm-6 col-xs-12 list-sport">
|
<div class="col-md-3 col-sm-6 col-xs-12 list-sport">
|
||||||
<div class="thumb-border">
|
<div class="thumb-border">
|
||||||
<a href="{{ url('/') }}/{{ Request::path() }}/{{ $r->Id ?? '' }}">
|
<a href="{{ url() }}/{{ Request::path() }}/{{ $r->Id }}">
|
||||||
<img src="{{ minio_url('uploads/images/sports-category/' . ($r->Thumbnail ?? 'default.png')) }}" alt="{{ $r->Category ?? 'Category' }}" class="image" />
|
<img src="{{ config('site_config.uploads') . 'sports-category/' . $r->Thumbnail }}" alt="{{ $r->Category }}" class="image" />
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="text-center">
|
<div class="text-center">
|
||||||
<h3 class="sports-title">{{ $r->Category ?? 'Unknown' }}</h3>
|
<h3 class="sports-title">{{ $r->Category }}</h3>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endforeach
|
@endforeach
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-12" >
|
<div class="col-md-12" >
|
||||||
<ul class="breadcrumb">
|
<ul class="breadcrumb">
|
||||||
<li class=""><a href="{{url('/')}}">Home</a></li>
|
<li class=""><a href="{{url()}}">Home</a></li>
|
||||||
<li class=""><a href="{{url('sports')}}/{{ $cat }}" >{{ $cat }}</a></li>
|
<li class=""><a href="{{url('sports')}}/{{ $cat }}" >{{ $cat }}</a></li>
|
||||||
<li class="active"> {{ $array_category[0]->Category }}</li>
|
<li class="active"> {{ $array_category[0]->Category }}</li>
|
||||||
</ul>
|
</ul>
|
||||||
@@ -24,7 +24,7 @@
|
|||||||
|
|
||||||
<div class="thumb-border" style="border:1px solid #e2e2e2; padding: 5px;">
|
<div class="thumb-border" style="border:1px solid #e2e2e2; padding: 5px;">
|
||||||
<a href="{{ url('/designer') }}/{{ md5($r->TemplateCode) }}">
|
<a href="{{ url('/designer') }}/{{ md5($r->TemplateCode) }}">
|
||||||
<img src="{{ minio_url('uploads/images/' . $r->Thumbnail) }}" alt="" class="image" />
|
<img src="{{ config('site_config.uploads') . $r->Thumbnail}}" alt="" class="image" />
|
||||||
</a>
|
</a>
|
||||||
<!-- <div class="overlay">
|
<!-- <div class="overlay">
|
||||||
<div class="text" style="font-family:Academic M54;"><a href="">{{$r->TemplateName}}</a></div>
|
<div class="text" style="font-family:Academic M54;"><a href="">{{$r->TemplateName}}</a></div>
|
||||||
|
|||||||
@@ -86,9 +86,9 @@
|
|||||||
padding-top: 20px;
|
padding-top: 20px;
|
||||||
padding-bottom: 20px;
|
padding-bottom: 20px;
|
||||||
@if($store_array[0]->StoreBanner == null)
|
@if($store_array[0]->StoreBanner == null)
|
||||||
background-image: url("{{ minio_url('uploads/images/teamstore/store-banner-dark.png') }}");
|
background-image: url("{{ config('site_config.uploads') . 'teamstore/store-banner-dark.png' }}");
|
||||||
@else
|
@else
|
||||||
background-image: url("{{ minio_url('uploads/images/teamstore/' . $store_array[0]->ImageFolder . '/' . $store_array[0]->StoreBanner) }}");
|
background-image: url("{{ config('site_config.uploads') . 'teamstore/' . $store_array[0]->ImageFolder . '/' . $store_array[0]->StoreBanner }}");
|
||||||
@endif
|
@endif
|
||||||
background-color: #f3f3f3;
|
background-color: #f3f3f3;
|
||||||
background-position: center;
|
background-position: center;
|
||||||
|
|||||||
@@ -82,12 +82,12 @@
|
|||||||
<div style="border: 1px solid #dddddd; padding: 5px;">
|
<div style="border: 1px solid #dddddd; padding: 5px;">
|
||||||
@if($store->Password != null )
|
@if($store->Password != null )
|
||||||
<a class="thumbnail password-protected" href="#" data-store-id="{{ $store->Id }}" data-store-url="{{ $store->StoreUrl }}">
|
<a class="thumbnail password-protected" href="#" data-store-id="{{ $store->Id }}" data-store-url="{{ $store->StoreUrl }}">
|
||||||
<img class="store-logo" src="{{ minio_url('uploads/images/teamstore/' . $store->ImageFolder . '/' . $store->StoreLogo) }}">
|
<img class="store-logo" src="{{ config('site_config.uploads') . 'teamstore/'. $store->ImageFolder . '/' . $store->StoreLogo }}">
|
||||||
</a>
|
</a>
|
||||||
<h4 style="border-top: 1px solid #dddddd; padding: 10px; font-size: 16px; font-weight: bold; text-transform: uppercase;" class="text-center">{{ $store->StoreName }} <i class="fa fa-lock" title="This store is password protected."></i></h4>
|
<h4 style="border-top: 1px solid #dddddd; padding: 10px; font-size: 16px; font-weight: bold; text-transform: uppercase;" class="text-center">{{ $store->StoreName }} <i class="fa fa-lock" title="This store is password protected."></i></h4>
|
||||||
@else
|
@else
|
||||||
<a class="thumbnail" href="{{ url('teamstore') . '/' . $store->StoreUrl }}">
|
<a class="thumbnail" href="{{ url('teamstore') . '/' . $store->StoreUrl }}">
|
||||||
<img class="store-logo" src="{{ minio_url('uploads/images/teamstore/' . $store->ImageFolder . '/' . $store->StoreLogo) }}">
|
<img class="store-logo" src="{{ config('site_config.uploads') . 'teamstore/' . $store->ImageFolder . '/' . $store->StoreLogo }}">
|
||||||
</a>
|
</a>
|
||||||
<h4 style="border-top: 1px solid #dddddd; padding: 10px; font-size: 16px; font-weight: bold; text-transform: uppercase;" class="text-center">{{ $store->StoreName }}</h4>
|
<h4 style="border-top: 1px solid #dddddd; padding: 10px; font-size: 16px; font-weight: bold; text-transform: uppercase;" class="text-center">{{ $store->StoreName }}</h4>
|
||||||
@endif
|
@endif
|
||||||
|
|||||||
@@ -108,7 +108,7 @@
|
|||||||
<label>Item URL</label>
|
<label>Item URL</label>
|
||||||
<input type="text" class="form-control" id="product_url" name="itemUrl" placeholder="Item URL">
|
<input type="text" class="form-control" id="product_url" name="itemUrl" placeholder="Item URL">
|
||||||
<!-- <div class="input-group">
|
<!-- <div class="input-group">
|
||||||
<span class="input-group-addon" id="basic-addon3">{{ url('/') . "/teamstore/" . $store_array[0]->StoreUrl . '/'}}</span>
|
<span class="input-group-addon" id="basic-addon3">{{ url() . "/teamstore/" . $store_array[0]->StoreUrl . '/'}}</span>
|
||||||
<input type="text" class="form-control" id="product_url" name="itemUrl" aria-describedby="basic-addon3" data-error="#err-itemUrl" >
|
<input type="text" class="form-control" id="product_url" name="itemUrl" aria-describedby="basic-addon3" data-error="#err-itemUrl" >
|
||||||
</div>
|
</div>
|
||||||
<span id="err-itemUrl"></span> -->
|
<span id="err-itemUrl"></span> -->
|
||||||
|
|||||||
@@ -133,7 +133,7 @@
|
|||||||
<label>Item URL</label>
|
<label>Item URL</label>
|
||||||
<input type="text" class="form-control" id="product_url" name="itemUrl" placeholder="Item URL">
|
<input type="text" class="form-control" id="product_url" name="itemUrl" placeholder="Item URL">
|
||||||
<!-- <div class="input-group">
|
<!-- <div class="input-group">
|
||||||
<span class="input-group-addon" id="basic-addon3">{{ url('/') . "/teamstore/" . $store_array[0]->StoreUrl . '/'}}</span>
|
<span class="input-group-addon" id="basic-addon3">{{ url() . "/teamstore/" . $store_array[0]->StoreUrl . '/'}}</span>
|
||||||
<input type="text" class="form-control" id="product_url" name="itemUrl" aria-describedby="basic-addon3" data-error="#err-itemUrl" >
|
<input type="text" class="form-control" id="product_url" name="itemUrl" aria-describedby="basic-addon3" data-error="#err-itemUrl" >
|
||||||
</div>
|
</div>
|
||||||
<span id="err-itemUrl"></span> -->
|
<span id="err-itemUrl"></span> -->
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
<!-- Control Sidebar Toggle Button -->
|
<!-- Control Sidebar Toggle Button -->
|
||||||
<li class="user user-menu">
|
<li class="user user-menu">
|
||||||
<a href="#">
|
<a href="#">
|
||||||
<img src="{{ minio_url('uploads/images/user/default-user.png') }}" class="user-image" alt="User Image">
|
<img src="{{ config('site_config.uploads') . 'user/default-user.png' }}" class="user-image" alt="User Image">
|
||||||
<span class="hidden-xs">{{ Auth::user()->username }}</span>
|
<span class="hidden-xs">{{ Auth::user()->username }}</span>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
@@ -133,7 +133,7 @@
|
|||||||
<label>Item URL</label>
|
<label>Item URL</label>
|
||||||
<input type="text" class="form-control" id="product_url" name="itemUrl" placeholder="Item URL">
|
<input type="text" class="form-control" id="product_url" name="itemUrl" placeholder="Item URL">
|
||||||
<!-- <div class="input-group">
|
<!-- <div class="input-group">
|
||||||
<span class="input-group-addon" id="basic-addon3">{{ url('/') . "/teamstore/" . $store_array[0]->StoreUrl . '/'}}</span>
|
<span class="input-group-addon" id="basic-addon3">{{ url() . "/teamstore/" . $store_array[0]->StoreUrl . '/'}}</span>
|
||||||
<input type="text" class="form-control" id="product_url" name="itemUrl" aria-describedby="basic-addon3" data-error="#err-itemUrl" >
|
<input type="text" class="form-control" id="product_url" name="itemUrl" aria-describedby="basic-addon3" data-error="#err-itemUrl" >
|
||||||
</div>
|
</div>
|
||||||
<span id="err-itemUrl"></span> -->
|
<span id="err-itemUrl"></span> -->
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
<!-- Sidebar user panel -->
|
<!-- Sidebar user panel -->
|
||||||
<div class="user-panel">
|
<div class="user-panel">
|
||||||
<div class="pull-left image">
|
<div class="pull-left image">
|
||||||
<img src="{{ minio_url('uploads/images/user/default-user.png') }}" class="img-circle" alt="User Image">
|
<img src="{{ config('site_config.uploads') . 'user/default-user.png' }}" class="img-circle" alt="User Image">
|
||||||
</div>
|
</div>
|
||||||
<div class="pull-left info">
|
<div class="pull-left info">
|
||||||
<p>{{ Auth::user()->name }}</p>
|
<p>{{ Auth::user()->name }}</p>
|
||||||
|
|||||||
@@ -63,8 +63,8 @@
|
|||||||
<div class="col-sm-8">
|
<div class="col-sm-8">
|
||||||
<p>Store Logo Preview:</p>
|
<p>Store Logo Preview:</p>
|
||||||
<div class="store-logo-holder">
|
<div class="store-logo-holder">
|
||||||
<a href="{{ minio_url('uploads/images/teamstore/' . $store_array[0]->ImageFolder . '/' . $store_array[0]->StoreLogo) }}?v={{ time() }}" class="img_store_logo_href" data-toggle="lightbox">
|
<a href="{{ config('site_config.uploads') . 'teamstore/' . $store_array[0]->ImageFolder . '/' . $store_array[0]->StoreLogo }}?v={{ time() }}" class="img_store_logo_href" data-toggle="lightbox">
|
||||||
<img class="img_store_logo_img" id="img_store_logo" src="{{ minio_url('uploads/images/teamstore/' . $store_array[0]->ImageFolder . '/' . $store_array[0]->StoreLogo) }}?v={{ time() }}" style="max-width: 100%; max-height: 100%; ">
|
<img class="img_store_logo_img" id="img_store_logo" src="{{ config('site_config.uploads') . 'teamstore/' . $store_array[0]->ImageFolder . '/' . $store_array[0]->StoreLogo }}?v={{ time() }}" style="max-width: 100%; max-height: 100%; ">
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -82,8 +82,8 @@
|
|||||||
<div class="col-sm-8">
|
<div class="col-sm-8">
|
||||||
<p>Store Banner Preview:</p>
|
<p>Store Banner Preview:</p>
|
||||||
<div class="store-banner-holder">
|
<div class="store-banner-holder">
|
||||||
<a href="{{ minio_url('uploads/images/teamstore/' . $store_array[0]->ImageFolder . '/' . $store_array[0]->StoreBanner) }}?v={{ time() }}" class="img_store_banner_href" data-toggle="lightbox">
|
<a href="{{ config('site_config.uploads') . 'teamstore/' . $store_array[0]->ImageFolder . '/' . $store_array[0]->StoreBanner }}?v={{ time() }}" class="img_store_banner_href" data-toggle="lightbox">
|
||||||
<img class="img_store_banner_img" id="img_store_banner" src="{{ minio_url('uploads/images/teamstore/' . $store_array[0]->ImageFolder . '/' . $store_array[0]->StoreBanner) }}?v={{ time() }}" style="max-width: 100%; max-height: 100%;">
|
<img class="img_store_banner_img" id="img_store_banner" src="{{ config('site_config.uploads') . 'teamstore/' . $store_array[0]->ImageFolder . '/' . $store_array[0]->StoreBanner }}?v={{ time() }}" style="max-width: 100%; max-height: 100%;">
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,22 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
use Illuminate\Support\Facades\Route;
|
|
||||||
|
|
||||||
/*
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
| API Routes
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
|
|
|
||||||
| Here is where you can register API routes for your application. These
|
|
||||||
| routes are loaded by the RouteServiceProvider within a group which
|
|
||||||
| is assigned the "api" middleware group. Enjoy building your API!
|
|
||||||
|
|
|
||||||
*/
|
|
||||||
|
|
||||||
Route::group(['middleware' => ['isAuthorized', 'cors']], function () {
|
|
||||||
Route::post('login', 'ApiController@login');
|
|
||||||
Route::post('insert', 'ApiController@insert');
|
|
||||||
Route::get('tracking', 'ApiController@getTrackingStatus');
|
|
||||||
Route::get('order-status', 'ApiController@getOrderStatus');
|
|
||||||
Route::get('steps', 'ApiController@getSteps');
|
|
||||||
});
|
|
||||||
190
routes/web.php
190
routes/web.php
@@ -1,190 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
use Illuminate\Support\Facades\Route;
|
|
||||||
|
|
||||||
/*
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
| Web Routes
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
|
|
|
||||||
| Here is where you can register web routes for your application. These
|
|
||||||
| routes are loaded by the RouteServiceProvider within a group which
|
|
||||||
| contains the "web" middleware group. Now create something great!
|
|
||||||
|
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Authentication Routes (expanded from Route::controllers)
|
|
||||||
Route::get('login', 'Auth\AuthController@showLoginForm')->name('login');
|
|
||||||
Route::post('login', 'Auth\AuthController@login');
|
|
||||||
Route::post('logout', 'Auth\AuthController@logout')->name('logout');
|
|
||||||
Route::get('register', 'Auth\RegisterController@showRegistrationForm')->name('register');
|
|
||||||
Route::post('register', 'Auth\RegisterController@register');
|
|
||||||
|
|
||||||
// Password Reset Routes
|
|
||||||
Route::get('password/reset', 'Auth\PasswordController@getEmail');
|
|
||||||
Route::post('password/email', 'Auth\PasswordController@postEmail');
|
|
||||||
Route::get('password/reset/{token}', 'Auth\PasswordController@getReset');
|
|
||||||
Route::post('password/reset', 'Auth\PasswordController@postReset');
|
|
||||||
|
|
||||||
// Main Routes
|
|
||||||
Route::get('/', 'MainController@index');
|
|
||||||
Route::get('/sportslist', 'MainController@sports');
|
|
||||||
Route::get('/sports/{url}', 'MainController@templatesCat');
|
|
||||||
Route::get('/sports/{url}/{id}', 'MainController@templatesByCategory');
|
|
||||||
Route::get('/templatelist', 'MainController@fetchTemplates');
|
|
||||||
Route::get('/cartcount', 'MainController@countCart');
|
|
||||||
Route::get('/removeitem/{id}', 'MainController@removeCartItem');
|
|
||||||
|
|
||||||
// Custom Authentication
|
|
||||||
Route::post('/custom/auth', 'CustomAuthController@authenticate');
|
|
||||||
Route::post('/custom/register', 'CustomAuthController@postRegister');
|
|
||||||
|
|
||||||
// Cart and Checkout
|
|
||||||
Route::get('cart', 'teamstore\TeamStoreController@cart')->name('cart');
|
|
||||||
Route::get('/checkout', 'teamstore\TeamStoreController@checkout');
|
|
||||||
Route::get('/mail', 'teamstore\TeamStoreController@mail');
|
|
||||||
|
|
||||||
// Designer Routes
|
|
||||||
Route::get('/designer/{templateid}', 'designer\DesignerController@index');
|
|
||||||
Route::get('/designer/preview/{designCode}', 'designer\DesignerController@getDesign');
|
|
||||||
Route::post('/designer/a/buy-form', 'designer\DesignerController@buyForm');
|
|
||||||
|
|
||||||
// Designer Edit Routes
|
|
||||||
Route::get('/designer/edit/{designCode}', 'designer\DesignerController@editDesign');
|
|
||||||
|
|
||||||
// Designer AJAX Routes
|
|
||||||
Route::post('/designer/a/save-roster', 'designer\DesignerController@saveRoster');
|
|
||||||
Route::post('/designer/a/gradient-append', 'designer\DesignerController@gradientAppend');
|
|
||||||
Route::post('/designer/a/set-pattern', 'designer\DesignerController@setPattern');
|
|
||||||
Route::post('/designer/a/set-trim-pattern', 'designer\DesignerController@setTrimPattern');
|
|
||||||
Route::post('/designer/a/get-template-default-colors', 'designer\DesignerController@getTemplateDefaultColors');
|
|
||||||
Route::post('/designer/a/get-font-display', 'designer\DesignerController@getFontDisplay');
|
|
||||||
Route::post('/designer/a/get-cliparts', 'designer\DesignerController@getCliparts');
|
|
||||||
Route::post('/designer/a/clipart-properties', 'designer\DesignerController@clipartProperties');
|
|
||||||
Route::post('/designer/a/save-design', 'designer\DesignerController@saveDesign');
|
|
||||||
Route::post('/designer/edit/a/edit-gradient-append', 'designer\DesignerController@editGradientAppend');
|
|
||||||
Route::post('/designer/edit/a/edit-pattern-properties', 'designer\DesignerController@editPatternProperties');
|
|
||||||
Route::post('/designer/edit/a/edit-set-pattern', 'designer\DesignerController@editSetPattern');
|
|
||||||
Route::get('/designer/a/tab-clipart-content', 'designer\DesignerController@tabClipartContent');
|
|
||||||
Route::post('/designer/a/save-design-details', 'designer\DesignerController@saveDesignDetails');
|
|
||||||
|
|
||||||
// Team Store Routes
|
|
||||||
Route::get('/teamstore', 'teamstore\TeamStoreController@storelist');
|
|
||||||
Route::get('/teamstore/{storename}', 'teamstore\TeamStoreController@index');
|
|
||||||
Route::get('/teamstore/{storename}/product/{producurl}', 'teamstore\TeamStoreController@productDetails');
|
|
||||||
Route::post('/teamstore/q/add-to-cart', 'teamstore\TeamStoreController@addToCart');
|
|
||||||
Route::get('/teamstore/q/clearsession', 'teamstore\TeamStoreController@clearSession');
|
|
||||||
Route::post('/teamstore/q/add-voucher', 'teamstore\TeamStoreController@addVoucher');
|
|
||||||
Route::post('/teamstore/q/add-new-row', 'teamstore\TeamStoreController@addNewRow');
|
|
||||||
Route::post('/teamstore/checkpassword', 'teamstore\TeamStoreController@checkTeamStorePassword');
|
|
||||||
|
|
||||||
// User Routes (Protected by normaluser middleware)
|
|
||||||
Route::group(['middleware' => 'normaluser', 'prefix' => 'user'], function () {
|
|
||||||
Route::get('/', 'user\UserController@index');
|
|
||||||
|
|
||||||
// Address Book
|
|
||||||
Route::get('address-book', 'user\UserController@addressBook');
|
|
||||||
Route::get('address-book/create', 'user\UserController@createAddressBook');
|
|
||||||
Route::post('address-book/save', 'user\UserController@saveAddressBook');
|
|
||||||
Route::get('address-book/edit/{id}', 'user\UserController@editAddressBook');
|
|
||||||
Route::post('address-book/update', 'user\UserController@updateAddressBook');
|
|
||||||
|
|
||||||
// Profile
|
|
||||||
Route::get('profile', 'user\UserController@profile');
|
|
||||||
Route::get('profile/edit', 'user\UserController@editProfile');
|
|
||||||
Route::post('profile/update', 'user\UserController@updateProfile');
|
|
||||||
Route::get('profile/change-password', 'user\UserController@changePassword');
|
|
||||||
Route::post('profile/update-password', 'user\UserController@updatePassword');
|
|
||||||
|
|
||||||
// Orders
|
|
||||||
Route::get('orders', 'user\UserController@orders');
|
|
||||||
Route::get('orders/view/{ck}', 'user\UserController@orderDetails');
|
|
||||||
|
|
||||||
// My Designs
|
|
||||||
Route::get('my-designs', 'user\UserController@myDesigns');
|
|
||||||
Route::get('my-designs/view/{id}', 'user\UserController@viewDesign');
|
|
||||||
Route::post('my-designs/update', 'user\UserController@updateDesignDetails');
|
|
||||||
Route::get('my-designs/sell-design/{designCode}', 'user\UserController@sellDesign');
|
|
||||||
Route::post('my-designs/addstoreitem', 'user\UserController@saveNewStoreItem');
|
|
||||||
Route::get('my-designs/buy-design/{designCode}', 'user\UserController@buyDesign');
|
|
||||||
|
|
||||||
// Store Management
|
|
||||||
Route::get('store', 'user\UserController@store');
|
|
||||||
Route::get('store-items', 'user\UserController@storeItems');
|
|
||||||
Route::get('store-items/item/{url}', 'user\UserController@viewStoreItem');
|
|
||||||
Route::post('store-items/update', 'user\UserController@storeItemUpdate');
|
|
||||||
Route::get('store-items/add-item', 'user\UserController@addStoreItem');
|
|
||||||
Route::post('store-items/save-new-item', 'user\UserController@saveNewItem');
|
|
||||||
Route::post('store-items/save-new-item-image', 'user\UserController@saveNewItemImage');
|
|
||||||
Route::get('store-items/re-arrange', 'user\UserController@itemStoreReArrange');
|
|
||||||
Route::post('store-items/delete', 'user\UserController@deleteStoreItem');
|
|
||||||
|
|
||||||
// Store Settings
|
|
||||||
Route::get('store-settings', 'user\UserController@storeSetting');
|
|
||||||
Route::post('store-settings/update', 'user\UserController@storeSettingUpdate');
|
|
||||||
|
|
||||||
// Store Orders
|
|
||||||
Route::get('store-orders', 'user\UserController@storeOrders');
|
|
||||||
|
|
||||||
// Email Verification
|
|
||||||
Route::get('email-verify', 'user\UserController@emailVerify');
|
|
||||||
Route::post('post/resend-verification', 'user\UserController@resendVericationCode');
|
|
||||||
Route::post('post/verify-code', 'user\UserController@verifyCode');
|
|
||||||
|
|
||||||
// AJAX Routes
|
|
||||||
Route::post('update-active-thumbnail', 'user\UserController@updateActiveThumbnail');
|
|
||||||
Route::post('post/save-thumbnail-ordering', 'user\UserController@saveThumbnailOrdering');
|
|
||||||
Route::post('post/save-item-ordering', 'user\UserController@saveItemOrdering');
|
|
||||||
Route::post('post/show-store-order-details', 'user\UserController@showStoreOrderDetails');
|
|
||||||
Route::post('post/delete-image-thumb', 'user\UserController@deleteImageThumb');
|
|
||||||
|
|
||||||
// Announcement
|
|
||||||
Route::get('announcement', 'user\UserController@announcementIndex');
|
|
||||||
Route::post('announcement/updateSave', 'user\UserController@announcementUpdateSave');
|
|
||||||
Route::post('announcement/status/update', 'user\UserController@announcementUpdateStatus');
|
|
||||||
});
|
|
||||||
|
|
||||||
// PayPal Routes (Protected by auth middleware)
|
|
||||||
Route::group(['middleware' => 'auth'], function () {
|
|
||||||
Route::get('payPremium', 'paypal\PaypalController@payPremium')->name('payPremium');
|
|
||||||
Route::get('getCheckout', 'paypal\PaypalController@getCheckout')->name('getCheckout');
|
|
||||||
Route::get('getDone', 'paypal\PaypalController@getDone')->name('getDone');
|
|
||||||
Route::get('getCancel', 'paypal\PaypalController@getCancel')->name('getCancel');
|
|
||||||
Route::get('getDoneTest', 'paypal\PaypalController@getDoneTest')->name('getDoneTest');
|
|
||||||
});
|
|
||||||
|
|
||||||
// Admin Routes (Protected by admin middleware)
|
|
||||||
Route::group(['middleware' => 'admin', 'prefix' => 'admin'], function () {
|
|
||||||
Route::get('/', function () {
|
|
||||||
return view('sub_pages.index');
|
|
||||||
});
|
|
||||||
|
|
||||||
// Sports Management
|
|
||||||
Route::get('sports', 'SportsController@displayAllSports');
|
|
||||||
Route::get('sports/add', 'SportsController@displayAddSportPage');
|
|
||||||
Route::post('sports/save', 'SportsController@saveNewSports');
|
|
||||||
Route::get('sports/edit/{sportsname}', 'SportsController@sportsDetails');
|
|
||||||
Route::post('sports/update', 'SportsController@updateSports');
|
|
||||||
Route::get('sports/sportsname', 'SportsController@selectSportsName');
|
|
||||||
|
|
||||||
// Templates Management
|
|
||||||
Route::get('templates', 'TemplatesController@displayTemplates');
|
|
||||||
Route::post('templates/id/{id}', 'TemplatesController@getTemplates');
|
|
||||||
Route::get('templates/add', 'TemplatesController@displayAddTemplatePage');
|
|
||||||
Route::get('templates/type', 'TemplatesController@getTemplateTypes');
|
|
||||||
Route::get('templates/getlastid', 'TemplatesController@getLastId');
|
|
||||||
Route::post('templates/save', 'TemplatesController@saveNewTemplates');
|
|
||||||
Route::get('templates/edit/{tempcode}', 'TemplatesController@displayEditTemplatePage');
|
|
||||||
Route::post('templates/update', 'TemplatesController@updateTemplate');
|
|
||||||
Route::get('templates/edit/{tempcode}/p-add', 'PrintPatternController@displayAddPrintTemplatePage');
|
|
||||||
|
|
||||||
// Patterns Management
|
|
||||||
Route::get('pattern/get', 'PatternsController@getPatterns');
|
|
||||||
Route::post('pattern/get/withvalue', 'PatternsController@getPatternsWithPostValue');
|
|
||||||
|
|
||||||
// Print Template
|
|
||||||
Route::post('print-template/save', 'PrintPatternController@savePrintPattern');
|
|
||||||
});
|
|
||||||
|
|
||||||
// Cliparts Routes
|
|
||||||
Route::get('cliparts/index', 'cliparts\ClipartsController@index');
|
|
||||||
23
test-key.php
23
test-key.php
@@ -1,23 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
require __DIR__.'/vendor/autoload.php';
|
|
||||||
|
|
||||||
$app = require_once __DIR__.'/bootstrap/app.php';
|
|
||||||
|
|
||||||
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
|
|
||||||
|
|
||||||
try {
|
|
||||||
echo "APP_KEY from env: " . env('APP_KEY') . "\n";
|
|
||||||
echo "APP_CIPHER from config: " . config('app.cipher') . "\n";
|
|
||||||
echo "Key starts with base64: " . (strpos(env('APP_KEY'), 'base64:') === 0 ? 'YES' : 'NO') . "\n";
|
|
||||||
|
|
||||||
$key = env('APP_KEY');
|
|
||||||
if (strpos($key, 'base64:') === 0) {
|
|
||||||
$decoded = base64_decode(substr($key, 7));
|
|
||||||
echo "Decoded key length: " . strlen($decoded) . " bytes\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
} catch (Exception $e) {
|
|
||||||
echo "Error: " . $e->getMessage() . "\n";
|
|
||||||
echo "File: " . $e->getFile() . ":" . $e->getLine() . "\n";
|
|
||||||
}
|
|
||||||
@@ -1,88 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# Test Laravel 5.5 upgrade in Docker container
|
|
||||||
|
|
||||||
echo "========================================="
|
|
||||||
echo "Laravel 5.5 Upgrade Test Script"
|
|
||||||
echo "========================================="
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
# Colors
|
|
||||||
GREEN='\033[0;32m'
|
|
||||||
RED='\033[0;31m'
|
|
||||||
YELLOW='\033[1;33m'
|
|
||||||
NC='\033[0m' # No Color
|
|
||||||
|
|
||||||
# Build the container
|
|
||||||
echo -e "${YELLOW}Step 1: Building Docker container with PHP 7.0...${NC}"
|
|
||||||
docker compose -f docker-compose.local.yml build app
|
|
||||||
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo -e "${RED}✗ Docker build failed${NC}"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo -e "${GREEN}✓ Docker build successful${NC}"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
# Start the container
|
|
||||||
echo -e "${YELLOW}Step 2: Starting container...${NC}"
|
|
||||||
docker compose -f docker-compose.local.yml up -d app
|
|
||||||
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo -e "${RED}✗ Failed to start container${NC}"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo -e "${GREEN}✓ Container started${NC}"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
# Wait for container to be ready
|
|
||||||
echo "Waiting for container to be ready..."
|
|
||||||
sleep 5
|
|
||||||
|
|
||||||
# Check PHP version
|
|
||||||
echo -e "${YELLOW}Step 3: Verifying PHP version...${NC}"
|
|
||||||
PHP_VERSION=$(docker compose -f docker-compose.local.yml exec -T app php -v | head -1)
|
|
||||||
echo "PHP Version: $PHP_VERSION"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
# Check Laravel version
|
|
||||||
echo -e "${YELLOW}Step 4: Verifying Laravel installation...${NC}"
|
|
||||||
LARAVEL_VERSION=$(docker compose -f docker-compose.local.yml exec -T app php artisan --version)
|
|
||||||
echo "Laravel Version: $LARAVEL_VERSION"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
# Test route:list
|
|
||||||
echo -e "${YELLOW}Step 5: Testing route:list command...${NC}"
|
|
||||||
docker compose -f docker-compose.local.yml exec -T app php artisan route:list 2>&1 | head -20
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
# Check for errors in logs
|
|
||||||
echo -e "${YELLOW}Step 6: Checking for errors...${NC}"
|
|
||||||
docker compose -f docker-compose.local.yml logs app | grep -i error | tail -10
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
# Final status
|
|
||||||
echo "========================================="
|
|
||||||
if docker compose -f docker-compose.local.yml exec -T app php artisan list > /dev/null 2>&1; then
|
|
||||||
echo -e "${GREEN}✓ Laravel 5.5 upgrade successful!${NC}"
|
|
||||||
echo -e "${GREEN} All artisan commands are working${NC}"
|
|
||||||
echo ""
|
|
||||||
echo "Next steps:"
|
|
||||||
echo " 1. Test the application: http://localhost:8080"
|
|
||||||
echo " 2. Check database migrations"
|
|
||||||
echo " 3. Test authentication flow"
|
|
||||||
echo " 4. Verify designer functionality"
|
|
||||||
else
|
|
||||||
echo -e "${RED}✗ Some issues detected${NC}"
|
|
||||||
echo "Check the logs above for details"
|
|
||||||
fi
|
|
||||||
echo "========================================="
|
|
||||||
|
|
||||||
# Keep container running
|
|
||||||
echo ""
|
|
||||||
echo "Container is running. Access it with:"
|
|
||||||
echo " docker compose -f docker-compose.local.yml exec app bash"
|
|
||||||
echo ""
|
|
||||||
echo "Stop with:"
|
|
||||||
echo " docker compose -f docker-compose.local.yml down"
|
|
||||||
@@ -1,99 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# Quick functionality test script for Laravel upgrade
|
|
||||||
# Run this after each upgrade step to verify core features
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
CONTAINER_NAME="crewsportswear_app_local"
|
|
||||||
BASE_URL="http://localhost:8082"
|
|
||||||
|
|
||||||
echo "=========================================="
|
|
||||||
echo "Laravel Upgrade - Functionality Tests"
|
|
||||||
echo "=========================================="
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
# Check if container is running
|
|
||||||
if ! docker ps | grep -q "$CONTAINER_NAME"; then
|
|
||||||
echo "❌ Container $CONTAINER_NAME is not running"
|
|
||||||
echo " Start it with: docker compose -f docker-compose.local.yml up -d"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "✓ Container is running"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
# Test 1: Artisan commands
|
|
||||||
echo "Test 1: Artisan Commands"
|
|
||||||
echo "------------------------"
|
|
||||||
docker exec $CONTAINER_NAME php artisan --version || { echo "❌ Artisan failed"; exit 1; }
|
|
||||||
echo "✓ Artisan working"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
# Test 2: Route list
|
|
||||||
echo "Test 2: Route Discovery"
|
|
||||||
echo "------------------------"
|
|
||||||
docker exec $CONTAINER_NAME php artisan route:list | head -5 || echo "⚠️ Route list not available (normal for Laravel 5.0-5.2)"
|
|
||||||
echo "✓ Route system loaded"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
# Test 3: Database connection
|
|
||||||
echo "Test 3: Database Connection"
|
|
||||||
echo "----------------------------"
|
|
||||||
docker exec $CONTAINER_NAME php -r "require 'vendor/autoload.php'; \$app = require_once 'bootstrap/app.php'; \$app->make('Illuminate\Contracts\Console\Kernel')->bootstrap(); try { DB::connection()->getPdo(); echo 'DB Connected\n'; } catch(Exception \$e) { echo 'DB Error: ' . \$e->getMessage() . '\n'; exit(1); }" || { echo "❌ Database connection failed"; exit 1; }
|
|
||||||
echo "✓ Database connected"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
# Test 4: HTTP Response (if app is running)
|
|
||||||
echo "Test 4: HTTP Response"
|
|
||||||
echo "----------------------"
|
|
||||||
HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" $BASE_URL 2>/dev/null || echo "000")
|
|
||||||
if [ "$HTTP_CODE" = "200" ] || [ "$HTTP_CODE" = "302" ]; then
|
|
||||||
echo "✓ HTTP server responding (Status: $HTTP_CODE)"
|
|
||||||
elif [ "$HTTP_CODE" = "500" ]; then
|
|
||||||
echo "⚠️ Server error (500) - Check logs"
|
|
||||||
else
|
|
||||||
echo "⚠️ Unexpected response: $HTTP_CODE"
|
|
||||||
fi
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
# Test 5: View compilation
|
|
||||||
echo "Test 5: View Compilation"
|
|
||||||
echo "-------------------------"
|
|
||||||
docker exec $CONTAINER_NAME php artisan view:clear || echo "⚠️ View clear unavailable"
|
|
||||||
echo "✓ Views can be cleared"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
# Test 6: Cache operations
|
|
||||||
echo "Test 6: Cache System"
|
|
||||||
echo "---------------------"
|
|
||||||
docker exec $CONTAINER_NAME php artisan cache:clear || { echo "❌ Cache clear failed"; exit 1; }
|
|
||||||
echo "✓ Cache system working"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
# Test 7: Config cache (optional)
|
|
||||||
echo "Test 7: Config System"
|
|
||||||
echo "----------------------"
|
|
||||||
docker exec $CONTAINER_NAME php artisan config:clear || echo "⚠️ Config clear unavailable"
|
|
||||||
echo "✓ Config system accessible"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
# Show recent logs
|
|
||||||
echo "Test 8: Error Logs"
|
|
||||||
echo "-------------------"
|
|
||||||
docker exec $CONTAINER_NAME sh -c "tail -20 /var/www/html/storage/logs/laravel.log 2>/dev/null || echo 'No log file yet (expected on fresh install)'"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
echo "=========================================="
|
|
||||||
echo "✓ Basic functionality tests passed!"
|
|
||||||
echo "=========================================="
|
|
||||||
echo ""
|
|
||||||
echo "Manual tests needed:"
|
|
||||||
echo " 1. Visit $BASE_URL in browser"
|
|
||||||
echo " 2. Test user registration/login"
|
|
||||||
echo " 3. Test sports category pages"
|
|
||||||
echo " 4. Test designer tool"
|
|
||||||
echo " 5. Test cart functionality"
|
|
||||||
echo ""
|
|
||||||
echo "View logs: docker logs $CONTAINER_NAME"
|
|
||||||
echo "Access shell: docker exec -it $CONTAINER_NAME bash"
|
|
||||||
echo ""
|
|
||||||
Reference in New Issue
Block a user