Whitelabeler 2.0
2
.gitignore
vendored
|
@ -1 +1 @@
|
|||
.DS_Store
|
||||
.DS_Store
|
|
@ -1,3 +1,7 @@
|
|||
# Uncomment the line below when you're done whitelabeling so this folder is no longer publicly accessible!
|
||||
|
||||
# deny from all
|
||||
|
||||
<IfModule mod_rewrite.c>
|
||||
RewriteEngine Off
|
||||
</IfModule>
|
126
README.md
Executable file → Normal file
|
@ -1,66 +1,132 @@
|
|||
# Mautic Whitelabeler
|
||||
# Mautic Whitelabeler 2.0
|
||||
|
||||
Whitelabeling [Mautic](http://github.com/mautic/mautic) is a tedious process. Not to mention you have to redo your work each time you update Mautic because your files are overwritten in the update process.
|
||||
|
||||
Mautic Whitelabeler makes customizing the core branding elements of Mautic a super simple, automated process. Just clone this directoy on your server and navigate to it in your browser.
|
||||
Mautic Whitelabeler makes customizing the core branding elements of [Mautic](http://github.com/mautic/mautic) a simple, automated process.
|
||||
|
||||

|
||||
|
||||
**With this script, you can easily customize:**
|
||||
** Easily customize:**
|
||||
|
||||
* The main logo at the top of the sidebar and its background color.
|
||||
* Logo at the top of the left sidebar and its background color
|
||||
* Colors used in the sidebar, its links, and the active icon
|
||||
* General colors (links, buttons, hover, panel headings)
|
||||
* Logo on the login screen
|
||||
* Company name in page titles, globally
|
||||
* Colors (links, buttons, panel headings)
|
||||
* Company name in page titles, login, and footer
|
||||
* Favicon
|
||||
* Company name in the footer
|
||||
|
||||
## New in Mautic Whitelabeler 2.0 :tada:
|
||||
|
||||
* Customize the entire sidebar
|
||||
* Command line whitelabler
|
||||
* Save your whitelabeling settings (as config.json) and images in the assets folder for future whitelabeling
|
||||
* Whitelabel, backup, and restore Mautic from the command line
|
||||
* Improved error reporting
|
||||
|
||||
## Requirements
|
||||
|
||||
* Mautic versions 2.5.0 - 2.15.0
|
||||
* Mautic versions 2.15.0 - 2.15.1 (Use previous [Whitelabeler 1.0](https://github.com/nickian/mautic-whitelabeler/releases) release for older versions of Mautic)
|
||||
* Apache server (will work on some nginx configurations, but not officially supported)
|
||||
* PHP cURL extension
|
||||
* `allow_url_fopen` php.ini directive set to true (uses file_get_contents)
|
||||
* Apache `mod_rewrite` enabled
|
||||
* `allow_url_fopen` php.ini directive set to true (file_get_contents function)
|
||||
* GD Library
|
||||
* Make sure `post_max_size` and `upload_max_filesize` in `php.ini` are set to high enough values depending on the size of the images you're uploading
|
||||
|
||||
## Installation / Usage
|
||||
## Installing and Using the Whitelabeler
|
||||
|
||||
1. It's probably smart to backup your files first. At least do it the first time you use this.
|
||||
1. BACKUP YOUR FILES first in case something goes wrong. This app overwrites some of Mautic's core files.
|
||||
|
||||
2. Clone this repository somewhere on your server that can access your Mautic installation (it's most convenient to clone it in the root of your Mautic directoy).
|
||||
2. Download a release or clone this repository into the root directory of your Mautic installation.
|
||||
|
||||
3. Specify the "Company Name," which will replace "Mautic" in the page titles and footer.
|
||||
|
||||
4. Specify your color hex codes.
|
||||
* **Logo Background:** This is the color behind the Mautic logo in the sidebar (top left corner).
|
||||
* **Primary Color:** This color will replace Mautic's primary purple in links, buttons and panel headers.
|
||||
* **Secondary Color:** This will define the link and button mouse hover state color.
|
||||
|
||||
5. Specify sidebar and login logos files (preferably transparent PNG files) and their widths and margins, which you can adjust with a live preview.
|
||||
* Avoid uploading large images (i.e., "large" in terms of dimensions ~ > 1500px might be too large).
|
||||
* `imagecreatefrompng` function can exceed PHP's memory limit and fail while trying to process and resize large images.
|
||||
5. Specify sidebar and login logo files (preferably transparent PNG files) and their widths and margins.
|
||||
* Avoid uploading large images (i.e., over 1500px might be too large depending on your setup). The `imagecreatefrompng` function can exceed PHP's memory limit and fail while trying to process and resize large images.
|
||||
|
||||
6. Specify a favicon. If you don't have a .ico file, one will be created. If you don't specify a file, a favicon will be generated from your login logo file.
|
||||
6. Specify a favicon, either .ico or .png. If you don't specify a file, a favicon will be generated from your login logo file.
|
||||
|
||||
7. Make sure to REMOVE or MOVE this directory so it's not publicly accessible once you're done using it.
|
||||
7. (Optional) Hit the "save" button to write your configuration settings to the `assets/config.json` file. If a config.json file is found upon loading the whitelabeler, your settings will be loaded automatically. Having a config.json will also allow you to white label from the command line.
|
||||
|
||||
## Common Issues
|
||||
8. Hit the whitelabel button and wait for the status terminal to run through the steps. Make sure to clear your browser's cache before pulling up your Mautic instance to see the results!
|
||||
|
||||
**Mautic installation not found here**
|
||||
9. When you're finished, open the `.htaccess` file and uncomment the `deny from all` line. This prevents the directory from being publicly accessible. Either that, or REMOVE or MOVE the whitelabler directory.
|
||||
|
||||
This means the script is not able to find the absolute path to the Mautic files on your server. This validation checks for a `version.txt` file in the `/app` folder. Make sure this file exists and is accessible by your web server (usually `chown -R www-data:www-data /path/to/mautic` does the trick).
|
||||
## Using the Command Line Whitelabeler
|
||||
|
||||
**Mautic installation not found at this URL**
|
||||
The `cli.php` file is a command line utility that allows you to whitelabel from the command line. It also allows you to create backups of your Mautic files and restore your installation from those files.
|
||||
|
||||
### Example usage
|
||||
|
||||
In these examples, we are running the script as the Apache web server user "www-data" in order to keep file permissions intact and make sure the web server user retains access to the Mautic files that are modified.
|
||||
|
||||
This will display the command line menu:
|
||||
|
||||
```
|
||||
sudo -u www-data php cli.php
|
||||
```
|
||||

|
||||
|
||||
#### Whitelabel
|
||||
|
||||
```
|
||||
sudo -u www-data php cli.php --whitelabel
|
||||
```
|
||||
|
||||
This will run the whitelabeling process from the command line using the values stored in config.json. First, you'll have to create the config.json file by using the "save" button in the web interface.
|
||||
|
||||
#### Backup
|
||||
|
||||
```
|
||||
sudo -u www-data php cli.php --backup
|
||||
```
|
||||
|
||||
Create a backup of your current Mautic files before running the whitelabeler. This will create a .tgz file in the whitelabeler's `backup` directory with your version and a timestamp. For example: `2.15.1_backup_2019-04-10_20-30-00.tgz`.
|
||||
|
||||
|
||||
#### Restoring from a Backup
|
||||
|
||||
```
|
||||
sudo -u www-data php cli.php --restore
|
||||
```
|
||||
|
||||
If you have any backups in the backups directory, you will be prompted to select a backup to restore from. I recommend doing a manual backup before trying this for the first time your system, just to be safe.
|
||||
|
||||
|
||||
## Common Issues / Support :sos:
|
||||
|
||||
#### Mautic installation not found at path
|
||||
|
||||
This means the script is not able to find the absolute path to the Mautic files on your server. This validation checks for a `version.txt` file in the `/app` folder. Make sure this file exists and is accessible by your web server.
|
||||
|
||||
Usually doing: `chown -R www-data:www-data /path/to/mautic` will fix the permissions issue with Apache.
|
||||
|
||||
#### Mautic installation not found at this URL
|
||||
|
||||
This means the script is not able to find your Mautic installation via its publicly accessible URL. This validation checks for the `LICENSE.txt` file in Mautic's root directory to confirm Mautic's root URL. Make sure the file exists and is accessible in your browser.
|
||||
|
||||
Make sure the `allow_url_fopen` php.ini directive is set to true (uses file_get_contents). Make sure the cURL PHP extension is also installed. Open the `phpinfo.php` file in this folder and search the page for `allow_url_fopen` and `cURL support` to make sure they are enabled.
|
||||
Make sure the cURL PHP extension is installed. Open the `phpinfo.php` file in this folder and search the page for `cURL support` to make sure its installed.
|
||||
|
||||
Join our [Mautic Whitelabeler Mattermost chat channel](https://chat.contacts.live/signup_user_complete/?id=mn5jirj38iyi5psskf6epb8m8r) if you need help troubleshooting or want to discuss an idea.
|
||||
#### Support
|
||||
|
||||
## Credits
|
||||
Please read through the [previous Issues](https://github.com/nickian/mautic-whitelabeler/issues?utf8=%E2%9C%93&q=) before creating a new one.
|
||||
|
||||
|
||||
Join our [Mautic Mattermost chat channel](https://lnk.st/mautic-chat) if you have any general questions or want to discuss ideas!
|
||||
|
||||
If you're looking for extensive and more involved support for Mautic and the Whitelabeler, or you need hosting, DM me on the chat channel [@nick](https://lnk.st/mautic-dm) or [shoot over an email here](https://lnk.st/mautic).
|
||||
|
||||
## Credits :thumbsup:
|
||||
|
||||
Mautic Whitelabeler makes use of a couple of other libraries:
|
||||
|
||||
* [Mautic](https://github.com/mautic/mautic)
|
||||
* [PHP-ICO](https://github.com/chrisbliss18/php-ico) for favicon generation
|
||||
* [Spectrum](https://github.com/bgrins/spectrum) for the color selector
|
||||
|
||||
## Advice / Disclaimer :no_entry_sign:
|
||||
|
||||
This app is not offically supported or affiliated with Mautic.
|
||||
|
||||
While this tool is convenient, it is not intended for inexperienced users. You should be comfortable with the command line and at least somewhat familiar with PHP. Everyone's server environment is slightly different. This was designed to run optimally on Ubuntu 18.04 with Apache 2.4 and PHP 7.2.
|
||||
|
||||
Whitelabeling Mautic does NOT mean pretending Mautic is your company's own product and attempting to resell it. Do not trick your clients into thinking the Mautic platform is developed and maintained by you. Mautic is an open source, community project, like WordPress. You should Whitelabel the product with your client's brand, not your own! Always disclose that you're running Mautic for your clients, just like you would with WordPress.
|
288
cli.php
Normal file
|
@ -0,0 +1,288 @@
|
|||
<?php
|
||||
require_once('vendor/autoload.php');
|
||||
require_once('whitelabeler.php');
|
||||
$cli = new League\CLImate\CLImate;
|
||||
$whitelabeler = new Whitelabeler;
|
||||
|
||||
if ( count($argv) > 1 ) {
|
||||
|
||||
if ( $argv[1] == '--whitelabel' ) {
|
||||
|
||||
$config = $whitelabeler->validateConfigValues();
|
||||
|
||||
if ( !empty($config['errors'] ) ) {
|
||||
|
||||
foreach( $config['errors'] as $error ) {
|
||||
$cli->red($error);
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
$cli->magenta('Whitelabeling...');
|
||||
|
||||
// Replace CSS colors
|
||||
|
||||
$cli->out('Updating colors...');
|
||||
|
||||
$config = $config['config'];
|
||||
|
||||
$version = $whitelabeler->mauticVersion($config['path']);
|
||||
|
||||
$colors = $whitelabeler->colors(
|
||||
$config['path'],
|
||||
$version['version'],
|
||||
$config['logo_bg'],
|
||||
$config['primary'],
|
||||
$config['hover'],
|
||||
$config['sidebar_bg'],
|
||||
$config['sidebar_submenu_bg'],
|
||||
$config['sidebar_link'],
|
||||
$config['sidebar_link_hover'],
|
||||
$config['active_icon'],
|
||||
$config['divider_left'],
|
||||
$config['sidebar_divider'],
|
||||
$config['submenu_bullet_bg'],
|
||||
$config['submenu_bullet_shadow']
|
||||
);
|
||||
|
||||
if ( $colors['status'] == 1 ) {
|
||||
|
||||
$cli->green($colors['message']);
|
||||
|
||||
} else {
|
||||
$cli->error($colors['message']);
|
||||
exit();
|
||||
}
|
||||
|
||||
// Update company name in templates
|
||||
|
||||
$cli->out('Updating company name in templates...');
|
||||
$company_name = $whitelabeler->companyName(
|
||||
$config['path'],
|
||||
$version['version'],
|
||||
$config['company']
|
||||
);
|
||||
|
||||
if ( $company_name['status'] == 1 ) {
|
||||
$cli->green($company_name['message']);
|
||||
} else {
|
||||
foreach( $company_name['message'] as $error ) {
|
||||
$cli->error($error);
|
||||
}
|
||||
exit();
|
||||
}
|
||||
|
||||
// Update logo images
|
||||
|
||||
$cli->out('Updating logo files...');
|
||||
|
||||
if ( $config['favicon'] ) {
|
||||
$favicon = $config['favicon'];
|
||||
} else {
|
||||
$favicon = $config['login_logo'];
|
||||
}
|
||||
|
||||
$logos = $whitelabeler->replaceImages(
|
||||
$config['path'],
|
||||
$config['url'],
|
||||
$version['version'],
|
||||
__DIR__.'/assets/'.$config['sidebar_logo'],
|
||||
$config['sidebar_logo_width'],
|
||||
array(
|
||||
'top' => $config['sidebar_logo_margin_top'],
|
||||
'right' => $config['sidebar_logo_margin_right'],
|
||||
'left' => $config['sidebar_logo_margin_left']
|
||||
),
|
||||
__DIR__.'/assets/'.$config['login_logo'],
|
||||
$config['login_logo_width'],
|
||||
array(
|
||||
'top' => $config['login_logo_margin_top'],
|
||||
'bottom' => $config['login_logo_margin_bottom']
|
||||
),
|
||||
__DIR__.'/assets/'.$favicon
|
||||
);
|
||||
|
||||
if ( $logos['status'] == 1 ) {
|
||||
$cli->green($logos['message']);
|
||||
} else {
|
||||
$cli->error($logos['message']);
|
||||
exit();
|
||||
}
|
||||
|
||||
// Clear Mautic cache and rebuild assets
|
||||
|
||||
$cli->out('Clearing Mautic cache...');
|
||||
$clear_cache = $whitelabeler->clearMauticCache($config['path']);
|
||||
if ( $clear_cache['status'] == 1 ) {
|
||||
|
||||
$cli->out('Rebuilding Mautic assets...');
|
||||
$whitelabeler->rebuildAssets($config['path']);
|
||||
$cli->green('Finished!');
|
||||
$cli->out('Make sure to clear your browser\'s cache if your Mautic styles aren\'t updated after a browser refresh!');
|
||||
|
||||
} else {
|
||||
$cli->error($clear_cache['message']);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
} elseif ( $argv[1] == '--backup' ) {
|
||||
|
||||
if ( $whitelabeler->mauticVersion(dirname(__DIR__, 1))['status'] == 1 ) {
|
||||
|
||||
$mautic_path = dirname(__DIR__, 1);
|
||||
$backups_dir = __DIR__.'/backups';
|
||||
|
||||
$cli->out('Backing up Mautic... ');
|
||||
|
||||
// Create backups folder if it doesn't exist
|
||||
if ( !file_exists($backups_dir) ) {
|
||||
mkdir($backups_dir, 0755, true);
|
||||
}
|
||||
|
||||
// Get the name of the top directory that Mautic is in
|
||||
$mautic_dir_name = explode('/', $mautic_path);
|
||||
$mautic_dir_name = end($mautic_dir_name);
|
||||
|
||||
$backup_name = $mautic_dir_name.'_backup_'.date('Y-m-d_H-i-s',time());
|
||||
|
||||
echo shell_exec('cd '.$mautic_path.'; tar --exclude=./'.basename(__DIR__).' -zcvf '.$mautic_path.'/'.basename(__DIR__).'/backups/'.$backup_name.'.tgz .');
|
||||
|
||||
if ( !file_exists($backups_dir.'/'.$backup_name.'.tgz') ) {
|
||||
$cli->red('There was a problem creating the backup.');
|
||||
} else {
|
||||
$cli->green('Backup complete!');
|
||||
}
|
||||
|
||||
|
||||
} else {
|
||||
$cli->yellow('Mautic not found. Make sure the whitelabeler is placed in the Mautic root directory.');
|
||||
}
|
||||
|
||||
} elseif ( $argv[1] == '--restore' ) {
|
||||
|
||||
if ( !is_dir(__DIR__.'/backups') ) {
|
||||
$cli->yellow('No backups found. Use "php cli.php --backup --path=/path/to/mautic" to backup a Mautic installation');
|
||||
exit();
|
||||
}
|
||||
|
||||
// Look for backups
|
||||
$backups = array();
|
||||
foreach (new DirectoryIterator(__DIR__.'/backups') as $file) {
|
||||
if ($file->isDot()) continue;
|
||||
if ($file->isFile()) {
|
||||
array_push($backups, $file->getFilename());
|
||||
}
|
||||
}
|
||||
|
||||
if ( !empty($backups) ) {
|
||||
|
||||
$input = $cli->radio('Select a backup to use:', $backups);
|
||||
$restore_backup = __DIR__.'/backups/'.$input->prompt();
|
||||
|
||||
} else {
|
||||
$cli->yellow('No backups found. Use "php cli.php --backup --path=/path/to/mautic" to backup a Mautic installation');
|
||||
exit();
|
||||
}
|
||||
|
||||
if ( $whitelabeler->mauticVersion(dirname(__DIR__, 1))['status'] == 1 ) {
|
||||
|
||||
$mautic_path = dirname(__DIR__, 1);
|
||||
$cli->out('Mautic found.');
|
||||
|
||||
} else {
|
||||
|
||||
$input = $cli->yellow('Couldn\'t automatically find your Mautic files in '. dirname(__DIR__, 1));
|
||||
$input = $cli->input('What\'s the absolute path to your Mautic files?');
|
||||
$mautic_path = $input->prompt();
|
||||
|
||||
if ( $whitelabeler->mauticVersion($mautic_path)['status'] == 1 ) {
|
||||
$cli->green('Ok, found Mautic.');
|
||||
} else {
|
||||
$input = $cli->red('Couldn\'t find your Mautic files in '.$mautic_path);
|
||||
exit();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Do the restore
|
||||
|
||||
$backup_name = explode('/', $restore_backup);
|
||||
$backup_name = end($backup_name);
|
||||
|
||||
$mautic_dir_name = explode('/', $mautic_path);
|
||||
$mautic_dir_name = end($mautic_dir_name);
|
||||
|
||||
$cli->out('Extracting backup files to Mautic directory...');
|
||||
|
||||
echo shell_exec('cd '.$mautic_path.'; tar --strip-components=1 -zxvf '.$mautic_path.'/'.basename(__DIR__).'/backups/'.$backup_name);
|
||||
|
||||
$cli->out('Setting ownership of the Mautic directory to www-data:www-data user/group...');
|
||||
shell_exec('chown -R www-data:www-data '.$mautic_path);
|
||||
$cli->green('Restore complete!');
|
||||
|
||||
|
||||
} elseif ( $argv[1] == '--compare' ) {
|
||||
|
||||
$errors = array();
|
||||
|
||||
if ( isset($argv[2]) && substr($argv[2], 0, 7) == '--path1' ) {
|
||||
$mautic_path_1 = explode('=', $argv[2]);
|
||||
$mautic_path_1 = $mautic_path_1[1];
|
||||
} else {
|
||||
$errors[] = 'Define the path to Mautic installation 1.';
|
||||
}
|
||||
|
||||
if ( isset($argv[3]) && substr($argv[3], 0, 7) == '--path2' ) {
|
||||
$mautic_path_2 = explode('=', $argv[3]);
|
||||
$mautic_path_2 = $mautic_path_2[1];
|
||||
} else {
|
||||
$errors[] = 'Define the path to Mautic installation 2.';
|
||||
}
|
||||
|
||||
if (!empty($errors)) {
|
||||
foreach($errors as $error) {
|
||||
$cli->error($error);
|
||||
}
|
||||
exit();
|
||||
}
|
||||
|
||||
if ( !file_exists($mautic_path_1.'/app/version.txt') ) {
|
||||
$errors[] = 'Not able to find Mautic at path 1.';
|
||||
}
|
||||
|
||||
if ( !file_exists($mautic_path_2.'/app/version.txt') ) {
|
||||
$errors[] = 'Not able to find Mautic at path 2.';
|
||||
}
|
||||
|
||||
if (empty($errors)) {
|
||||
$cli->dump($whitelabeler->compareMauticVersions($mautic_path_1, $mautic_path_2));
|
||||
} else {
|
||||
foreach($errors as $error) {
|
||||
$cli->error($error);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
} else {
|
||||
$cli->addArt(__DIR__.'/lib/ascii');
|
||||
$cli->magenta()->draw('title');
|
||||
echo PHP_EOL;
|
||||
$cli->out('This utility looks for configuration values in assets/config.json to use for whitelabeling Mautic. You can also use it to easily make backups of your Mautic files and restore your installation from these backups.');
|
||||
echo PHP_EOL;
|
||||
$cli->yellow('Command line options:');
|
||||
echo PHP_EOL;
|
||||
$cli->out('<bold>php cli.php --whitelabel');
|
||||
$cli->out('Validates config.json and begins whitelabeling process.');
|
||||
echo PHP_EOL;
|
||||
$cli->out('<bold>php cli.php --backup</bold>');
|
||||
$cli->out('Creates a compressed backup of your Mautic files and saves it into the whitelabeler backup directory.');
|
||||
echo PHP_EOL;
|
||||
$cli->out('<bold>php cli.php --restore');
|
||||
$cli->out('Select a backup and extract files back into the Mautic directory.');
|
||||
echo PHP_EOL;
|
||||
$cli->out('<bold>php cli.php --compare --path1=/mautic1 --path2=/mautic2');
|
||||
$cli->out('Compare the template files between two versions of Mautic. This helps us determine what template files need to be updated in order for the whitelabeler to work with new versions of Mautic.');
|
||||
echo PHP_EOL;
|
||||
}
|
|
@ -5,11 +5,11 @@
|
|||
require_once('whitelabeler.php');
|
||||
$whitelabeler = new Whitelabeler;
|
||||
|
||||
$v1_path = '../2.14.2';
|
||||
$v2_path = '../2.15.0';
|
||||
$v1_path = '../2.15.0';
|
||||
$v2_path = '../2.15.1';
|
||||
|
||||
$compare = $whitelabeler->compareMauticVersions($v1_path, $v2_path);
|
||||
|
||||
echo '<pre>';
|
||||
print_r($compare);
|
||||
echo '</pre>';
|
||||
echo '</pre>';
|
16
composer.json
Normal file
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"name": "nick/mautic-whitelabeler",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nick Thompson",
|
||||
"email": "nick@nick.do"
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
"chrisjean/php-ico": "^1.0",
|
||||
"components/font-awesome": "4.7.0"
|
||||
},
|
||||
"config": {
|
||||
"COMPOSER_ALLOW_SUPERUSER" : 1
|
||||
}
|
||||
}
|
0
images/favicon.ico
Executable file → Normal file
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 49 KiB |
455
index.php
Executable file → Normal file
|
@ -4,74 +4,249 @@ $whitelabeler = new Whitelabeler;
|
|||
|
||||
if (isset($_GET['q'])) {
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Find Mautic version by path
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Determine Mautic version by path
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
if ( $_GET['q'] == 'version' ) {
|
||||
if ( isset($_GET['path']) ) {
|
||||
if ( substr($_GET['path'], -1) == '/' ) {
|
||||
$path = substr($_GET['path'], 0, -1);
|
||||
} else {
|
||||
$path = $_GET['path'];
|
||||
}
|
||||
if (file_exists($path.'/app/version.txt')) {
|
||||
$file = fopen($path.'/app/version.txt', 'r') or die('Unable to open file!');
|
||||
$version = trim(fread($file , filesize($path.'/app/version.txt')));
|
||||
if (strpos($version, '-dev') !== false) {
|
||||
$version = explode('-', $version);
|
||||
$version = $version[0];
|
||||
}
|
||||
echo $whitelabeler->templateVersions($version);
|
||||
} else {
|
||||
echo 0;
|
||||
}
|
||||
exit();
|
||||
}
|
||||
|
||||
header('Content-Type: application/json');
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Find Mautic by URL (look for package.json to verify this is Mautic root)
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
if ( isset($_GET['path']) && is_dir($_GET['path']) ) {
|
||||
|
||||
} elseif ( $_GET['q'] == 'url' && isset($_GET['url']) ) {
|
||||
$url = urldecode($_GET['url']);
|
||||
if ( substr($url, -1) == '/' ) {
|
||||
$url = substr($url, 0, -1);
|
||||
}
|
||||
echo json_encode(
|
||||
$whitelabeler->mauticVersion($_GET['path'])
|
||||
);
|
||||
|
||||
$curl = curl_init();
|
||||
curl_setopt_array($curl, array(
|
||||
CURLOPT_URL => $url.'/LICENSE.txt',
|
||||
CURLOPT_HEADER => true,
|
||||
CURLOPT_RETURNTRANSFER => true,
|
||||
CURLOPT_NOBODY => true
|
||||
));
|
||||
$headers = explode(' ', curl_exec($curl));
|
||||
curl_close($curl);
|
||||
|
||||
if ( $headers[1] != 200) {
|
||||
echo 0;
|
||||
} else {
|
||||
$license = substr(file_get_contents($url.'/LICENSE.txt'), 0, 6);
|
||||
if ($license == 'Mautic') {
|
||||
echo 1;
|
||||
} else {
|
||||
echo 0;
|
||||
}
|
||||
|
||||
echo json_encode(array(
|
||||
'status' => 0,
|
||||
'message' => 'Directory does not exist.'
|
||||
));
|
||||
|
||||
}
|
||||
|
||||
exit();
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Clear Cache
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Find Mautic by URL (look for LICENSE.txt to verify this is Mautic root)
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
} elseif ( $_GET['q'] == 'url' && isset($_GET['url']) ) {
|
||||
|
||||
header('Content-Type: application/json');
|
||||
|
||||
echo json_encode(
|
||||
$whitelabeler->findMauticUrl($_GET['url'])
|
||||
);
|
||||
|
||||
exit();
|
||||
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Check for image in assets
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
} elseif ( $_GET['q'] == 'asset' && isset($_GET['url']) ) {
|
||||
echo $whitelabeler->assetExists(urldecode($_GET['url']));
|
||||
exit();
|
||||
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Save Images
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
} elseif ( $_GET['q'] == 'save-images' && $_SERVER['REQUEST_METHOD'] == 'POST' ) {
|
||||
|
||||
require_once('vendor/chrisjean/php-ico/class-php-ico.php');
|
||||
|
||||
$errors = array();
|
||||
$result = array();
|
||||
|
||||
// sidebar logo
|
||||
if ( isset($_FILES['sidebar_logo_file']) ) {
|
||||
|
||||
if (
|
||||
$_FILES['sidebar_logo_file']['type'] == 'image/png' ||
|
||||
$_FILES['sidebar_logo_file']['type'] == 'image/jpg' ||
|
||||
$_FILES['sidebar_logo_file']['type'] == 'image/jpeg' ||
|
||||
$_FILES['sidebar_logo_file']['type'] == 'image/gif'
|
||||
) {
|
||||
|
||||
$whitelabeler->imageResize(
|
||||
$_POST['sidebar_logo_width'],
|
||||
$_FILES['sidebar_logo_file']['tmp_name'],
|
||||
__DIR__.'/assets/'.$_FILES['sidebar_logo_file']['name']
|
||||
);
|
||||
|
||||
if ( !file_exists(__DIR__.'/assets/'.$_FILES['sidebar_logo_file']['name']) ) {
|
||||
$errors[] = 'Error uploading sidebar logo file '.$_FILES['sidebar_logo_file']['name'];
|
||||
} else {
|
||||
$result['images']['sidebar_logo'] = $_FILES['sidebar_logo_file']['name'];
|
||||
}
|
||||
|
||||
} else {
|
||||
$errors[] = 'Invalid file type provided for sidebar logo.';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// login logo
|
||||
if ( isset($_FILES['login_logo_file']) ) {
|
||||
|
||||
if (
|
||||
$_FILES['login_logo_file']['type'] == 'image/png' ||
|
||||
$_FILES['login_logo_file']['type'] == 'image/jpg' ||
|
||||
$_FILES['login_logo_file']['type'] == 'image/jpeg' ||
|
||||
$_FILES['login_logo_file']['type'] == 'image/gif'
|
||||
) {
|
||||
|
||||
$whitelabeler->imageResize(
|
||||
$_POST['login_logo_width'],
|
||||
$_FILES['login_logo_file']['tmp_name'],
|
||||
__DIR__.'/assets/'.$_FILES['login_logo_file']['name']
|
||||
);
|
||||
|
||||
if ( !file_exists(__DIR__.'/assets/'.$_FILES['login_logo_file']['name']) ) {
|
||||
$errors[] = 'Error uploading login logo file '.$_FILES['login_logo_file']['name'];
|
||||
} else {
|
||||
$result['images']['login_logo'] = $_FILES['login_logo_file']['name'];
|
||||
}
|
||||
|
||||
// If favicon file is not set, we'll use the login logo
|
||||
if ( !isset($_FILES['favicon_file']) ) {
|
||||
|
||||
$logo_filename_explode = explode('.', $_FILES['login_logo_file']['name']);
|
||||
$ico_lib = new PHP_ICO($_FILES['login_logo_file']['tmp_name'], array( array( 64, 64 ) ) );
|
||||
$ico_lib->save_ico(__DIR__.'/assets/favicon-'.$logo_filename_explode[0].'.ico');
|
||||
|
||||
if ( !file_exists(__DIR__.'/assets/favicon-'.$logo_filename_explode[0].'.ico') ) {
|
||||
$errors[] = 'Error using login logo file for favicon.';
|
||||
} else {
|
||||
$result['images']['favicon_files'] = 'favicon-'.$logo_filename_explode[0].'.ico';
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
$errors[] = 'Invalid file type provided for login logo.';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// favicon
|
||||
if ( isset($_FILES['favicon_file']) ) {
|
||||
|
||||
if (
|
||||
$_FILES['favicon_file']['type'] == 'image/png' ||
|
||||
$_FILES['favicon_file']['type'] == 'image/x-icon' ||
|
||||
$_FILES['favicon_file']['type'] == 'image/vnd.microsoft.icon' ||
|
||||
$_FILES['favicon_file']['type'] == 'image/jpg' ||
|
||||
$_FILES['favicon_file']['type'] == 'image/jpeg' ||
|
||||
$_FILES['favicon_file']['type'] == 'image/gif'
|
||||
) {
|
||||
|
||||
// If favicon is .ico, move/copy the file
|
||||
if ($_FILES['favicon_file']['type'] == 'image/vnd.microsoft.icon' || $_FILES['favicon_file']['type'] == 'image/x-icon') {
|
||||
|
||||
move_uploaded_file($_FILES['favicon_file']['tmp_name'], __DIR__.'/assets/'.$_FILES['favicon_file']['name']);
|
||||
|
||||
if ( !file_exists(__DIR__.'/assets/'.$_FILES['favicon_file']['name']) ) {
|
||||
$errors[] = 'Error using login logo file for favicon.';
|
||||
} else {
|
||||
$result['images']['favicon'] = $_FILES['favicon_file']['name'];
|
||||
}
|
||||
|
||||
// convert to .ico and save.
|
||||
} else {
|
||||
|
||||
$logo_filename_explode = explode('.', $_FILES['favicon_file']['name']);
|
||||
|
||||
$ico_lib = new PHP_ICO($_FILES['favicon_file']['tmp_name'], array( array( 64, 64 ) ) );
|
||||
$ico_lib->save_ico(__DIR__.'/assets/'.$logo_filename_explode[0].'.ico');
|
||||
|
||||
if ( !file_exists(__DIR__.'/assets/'.$logo_filename_explode[0].'.ico') ) {
|
||||
$errors[] = 'Error using login logo file for favicon.';
|
||||
} else {
|
||||
$result['images']['favicon'] = $logo_filename_explode[0].'.ico';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
} else {
|
||||
$errors[] = 'Invalid file type provided for favicon.';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
header('Content-Type: application/json');
|
||||
if ( !empty($errors) ) {
|
||||
echo json_encode( array('status' => 0, 'message' => $errors) );
|
||||
} else {
|
||||
echo json_encode( array('status' => 1, 'message' => $result) );
|
||||
}
|
||||
|
||||
exit();
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Save values entered
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
} elseif ( $_GET['q'] == 'save' && $_SERVER['REQUEST_METHOD'] == 'POST' ) {
|
||||
//Encode the array into a JSON string.
|
||||
$encodedString = json_encode($_POST['config'], JSON_PRETTY_PRINT);
|
||||
//Save to JSON file in assets.
|
||||
if (file_put_contents(__DIR__.'/assets/config.json', $encodedString)) {
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode( array('status' => 1, 'message' => 'Config values saved.') );
|
||||
};
|
||||
exit();
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Look for saved values and files to populate form automatically
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
} elseif ( $_GET['q'] == 'saved' ) {
|
||||
|
||||
$config = $whitelabeler->loadJsonConfig();
|
||||
|
||||
if ( $config ) {
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode(array('status' => 1, 'message' => 'config.json file found.', 'data' => $config));
|
||||
} else {
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode(array('status' => 0, 'message' => 'config.json not found in assets folder.'));
|
||||
}
|
||||
|
||||
exit();
|
||||
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Reset saved values
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
} elseif ( $_GET['q'] == 'reset' && $_SERVER['REQUEST_METHOD'] == 'POST' ) {
|
||||
//Encode the array into a JSON string.
|
||||
$encodedString = json_encode($_POST['config'], JSON_PRETTY_PRINT);
|
||||
//Save to JSON file in assets.
|
||||
if (file_put_contents(__DIR__.'/assets/config.json', $encodedString)) {
|
||||
echo json_encode( array('status' => 1, 'message' => 'Config values saved.') );
|
||||
};
|
||||
exit();
|
||||
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Regenerate Assets / Clear Cache
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
} elseif ( $_GET['q'] == 'assets' && isset($_GET['assets']) && isset($_GET['path']) ) {
|
||||
if ( substr($_GET['path'], -1) == '/' ) {
|
||||
$path = substr($_GET['path'], 0, -1);
|
||||
|
@ -79,20 +254,21 @@ if (isset($_GET['q'])) {
|
|||
$path = $_GET['path'];
|
||||
}
|
||||
if ( $_GET['assets'] == 'clear' ) {
|
||||
echo $whitelabeler->clearMauticCache($path);
|
||||
print_r($whitelabeler->clearMauticCache($path));
|
||||
} else if ( $_GET['assets'] == 'regenerate' ) {
|
||||
echo $whitelabeler->rebuildAssets($path);
|
||||
print_r($whitelabeler->rebuildAssets($path));
|
||||
}
|
||||
exit();
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| POST Logos
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| POST Logos
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
} elseif ( $_GET['q'] == 'logos' ) {
|
||||
|
||||
if ( isset($_POST['mautic_path']) && isset($_POST['mautic_url']) ) {
|
||||
|
||||
if ( substr($_POST['mautic_path'], -1) == '/' ) {
|
||||
$path = substr($_POST['mautic_path'], 0, -1);
|
||||
} else {
|
||||
|
@ -103,60 +279,108 @@ if (isset($_GET['q'])) {
|
|||
} else {
|
||||
$url = $_POST['mautic_url'];
|
||||
}
|
||||
|
||||
$errors = array();
|
||||
if (!isset($_FILES['sidebar_logo'])) { $errors[] = 'Couldn\'t find file for the sidebar logo.'; }
|
||||
if (!isset($_FILES['login_logo'])) { $errors[] = 'Couldn\'t find file for the login logo.'; }
|
||||
|
||||
if ( !isset($_FILES['sidebar_logo_file']) && !isset($_POST['sidebar_logo_file']) ) {
|
||||
$errors[] = 'Couldn\'t find file for the sidebar logo.';
|
||||
}
|
||||
|
||||
if ( !isset($_FILES['login_logo_file']) && !isset($_POST['sidebar_logo_file']) ) {
|
||||
$errors[] = 'Couldn\'t find file for the login logo.';
|
||||
}
|
||||
|
||||
if (empty($errors)) {
|
||||
// Use login logo as favicon
|
||||
if ( isset($_FILES['sidebar_logo']) && isset($_FILES['login_logo']) && !isset($_FILES['favicon']) ) {
|
||||
$favicon = $_FILES['login_logo'];
|
||||
// Separate favicon file
|
||||
} elseif ( isset($_FILES['sidebar_logo']) && isset($_FILES['login_logo']) && isset($_FILES['favicon']) ) {
|
||||
$favicon = $_FILES['favicon'];
|
||||
|
||||
// Use saved sidebar logo
|
||||
if ( !isset($_FILES['sidebar_logo_file']) && isset($_POST['sidebar_logo_file']) ) {
|
||||
$sidebar_logo = __DIR__.'/assets/'.$_POST['sidebar_logo_file'];
|
||||
// Use uploaded sidebar logo
|
||||
} elseif ( isset($_FILES['sidebar_logo_file']) ) {
|
||||
$sidebar_logo = $_FILES['sidebar_logo_file']['tmp_name'];
|
||||
}
|
||||
$whitelabeler->replaceImages(
|
||||
|
||||
// Use saved login logo
|
||||
if ( !isset($_FILES['login_logo_file']) && isset($_POST['login_logo_file']) ) {
|
||||
$login_logo = __DIR__.'/assets/'.$_POST['login_logo_file'];
|
||||
// Use uploaded login logo
|
||||
} elseif ( isset($_FILES['login_logo_file']) ) {
|
||||
$login_logo = $_FILES['login_logo_file']['tmp_name'];
|
||||
}
|
||||
|
||||
// Use saved favicon
|
||||
if ( !isset($_FILES['favicon_file']) && isset($_POST['favicon_file']) && $_POST['favicon_file'] != 'null' ) {
|
||||
$favicon = __DIR__.'/assets/'.$_POST['favicon_file'];
|
||||
// Use uploaded favicon
|
||||
} elseif ( isset($_FILES['favicon_file']) ) {
|
||||
$favicon = $_FILES['favicon_file']['tmp_name'];
|
||||
// Nothing is set -- we'll use the login logo as the favicon
|
||||
} else {
|
||||
$favicon = false;
|
||||
}
|
||||
|
||||
$logos = $whitelabeler->replaceImages(
|
||||
$path,
|
||||
$url,
|
||||
$_POST['version'],
|
||||
$_FILES['sidebar_logo'],
|
||||
$sidebar_logo,
|
||||
$_POST['sidebar_logo_width'],
|
||||
array(
|
||||
'top' => $_POST['sidebar_margin_top'],
|
||||
'right' => $_POST['sidebar_margin_right'],
|
||||
'left' => $_POST['sidebar_margin_left']
|
||||
'top' => $_POST['sidebar_logo_margin_top'],
|
||||
'right' => $_POST['sidebar_logo_margin_right'],
|
||||
'left' => $_POST['sidebar_logo_margin_left']
|
||||
),
|
||||
$_FILES['login_logo'],
|
||||
$login_logo,
|
||||
$_POST['login_logo_width'],
|
||||
array(
|
||||
'top' => $_POST['login_margin_top'],
|
||||
'bottom' => $_POST['login_margin_bottom']
|
||||
'top' => $_POST['login_logo_margin_top'],
|
||||
'bottom' => $_POST['login_logo_margin_bottom']
|
||||
),
|
||||
$favicon
|
||||
);
|
||||
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode($logos);
|
||||
|
||||
} else {
|
||||
foreach($errors as $error) {
|
||||
echo $error.PHP_EOL;
|
||||
}
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode(array(
|
||||
'status' => 0,
|
||||
'message' => $errors
|
||||
));
|
||||
}
|
||||
exit();
|
||||
} else {
|
||||
echo 'Path or URL not set.';
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode(array(
|
||||
'status' => 0,
|
||||
'message' => 'Path or URL not set.'
|
||||
));
|
||||
exit();
|
||||
}
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| POST CSS Colors
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| POST CSS Colors
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
} elseif ( $_GET['q'] == 'css' && $_SERVER['REQUEST_METHOD'] == 'POST' ) {
|
||||
|
||||
if (
|
||||
!empty($_POST['path']) &&
|
||||
!empty($_POST['version']) &&
|
||||
!empty($_POST['sidebar_background']) &&
|
||||
!empty($_POST['mautic_primary']) &&
|
||||
!empty($_POST['mautic_hover'])
|
||||
isset($_POST['path']) &&
|
||||
isset($_POST['version']) &&
|
||||
isset($_POST['logo_bg']) &&
|
||||
isset($_POST['primary']) &&
|
||||
isset($_POST['hover']) &&
|
||||
isset($_POST['sidebar_bg']) &&
|
||||
isset($_POST['sidebar_submenu_bg']) &&
|
||||
isset($_POST['sidebar_link']) &&
|
||||
isset($_POST['sidebar_link_hover']) &&
|
||||
isset($_POST['active_icon']) &&
|
||||
isset($_POST['divider_left']) &&
|
||||
isset($_POST['sidebar_divider']) &&
|
||||
isset($_POST['submenu_bullet_bg']) &&
|
||||
isset($_POST['submenu_bullet_shadow'])
|
||||
) {
|
||||
if ( substr($_POST['path'], -1) == '/' ) {
|
||||
$path = substr($_POST['path'], 0, -1);
|
||||
|
@ -166,22 +390,34 @@ if (isset($_GET['q'])) {
|
|||
$colors = $whitelabeler->colors(
|
||||
$path,
|
||||
$_POST['version'],
|
||||
$_POST['sidebar_background'],
|
||||
$_POST['mautic_primary'],
|
||||
$_POST['mautic_hover']
|
||||
$_POST['logo_bg'],
|
||||
$_POST['primary'],
|
||||
$_POST['hover'],
|
||||
$_POST['sidebar_bg'],
|
||||
$_POST['sidebar_submenu_bg'],
|
||||
$_POST['sidebar_link'],
|
||||
$_POST['sidebar_link_hover'],
|
||||
$_POST['active_icon'],
|
||||
$_POST['divider_left'],
|
||||
$_POST['sidebar_divider'],
|
||||
$_POST['submenu_bullet_bg'],
|
||||
$_POST['submenu_bullet_shadow']
|
||||
);
|
||||
echo $colors;
|
||||
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode($colors);
|
||||
|
||||
} else {
|
||||
echo 'Missing CSS color field';
|
||||
header('Content-Type: application/json');
|
||||
echo array(0, 'Missing CSS color field values.');
|
||||
}
|
||||
exit();
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| POST Company Name
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| POST Company Name
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
} elseif ( $_GET['q'] == 'companyname' && $_SERVER['REQUEST_METHOD'] == 'POST') {
|
||||
if ( substr($_POST['path'], -1) == '/' ) {
|
||||
$path = substr($_POST['path'], 0, -1);
|
||||
|
@ -193,7 +429,8 @@ if (isset($_GET['q'])) {
|
|||
$_POST['version'],
|
||||
$_POST['company_name']
|
||||
);
|
||||
echo $company_name;
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode($company_name);
|
||||
exit();
|
||||
}
|
||||
}
|
||||
|
|
10
lib/ascii/title.txt
Normal file
|
@ -0,0 +1,10 @@
|
|||
__ _
|
||||
____ ___ ____ ___ __/ /_(_)____
|
||||
/ __ `__ \/ __ `/ / / / __/ / ___/
|
||||
/ / / / / / /_/ / /_/ / /_/ / /__
|
||||
/_/ /_/ /_/\__,_/\__,_/\__/_/\___/
|
||||
__ _ __ __ __ __
|
||||
_ __/ /_ (_) /____ / /___ _/ /_ ___ / /__ _____
|
||||
| | /| / / __ \/ / __/ _ \/ / __ `/ __ \/ _ \/ / _ \/ ___/
|
||||
| |/ |/ / / / / / /_/ __/ / /_/ / /_/ / __/ / __/ /
|
||||
|__/|__/_/ /_/_/\__/\___/_/\__,_/_.___/\___/_/\___/_/
|
1
lib/bootstrap.min.css
vendored
0
lib/spectrum/.gitignore
vendored
Executable file → Normal file
0
lib/spectrum/.travis.yml
Executable file → Normal file
0
lib/spectrum/Gruntfile.js
Executable file → Normal file
0
lib/spectrum/LICENSE
Executable file → Normal file
0
lib/spectrum/README.md
Executable file → Normal file
0
lib/spectrum/bower.json
Executable file → Normal file
0
lib/spectrum/build/.gitignore
vendored
Executable file → Normal file
0
lib/spectrum/docs/bootstrap.css
vendored
Executable file → Normal file
0
lib/spectrum/docs/docs.css
Executable file → Normal file
0
lib/spectrum/docs/docs.js
Executable file → Normal file
0
lib/spectrum/docs/jquery-1.9.1.js
vendored
Executable file → Normal file
0
lib/spectrum/docs/jquery-2.1.0.js
vendored
Executable file → Normal file
0
lib/spectrum/docs/prettify.js
Executable file → Normal file
0
lib/spectrum/docs/toc.js
Executable file → Normal file
0
lib/spectrum/example/example.js
Executable file → Normal file
0
lib/spectrum/example/index.html
Executable file → Normal file
0
lib/spectrum/example/testcase.html
Executable file → Normal file
0
lib/spectrum/i18n/jquery.spectrum-ar.js
Executable file → Normal file
0
lib/spectrum/i18n/jquery.spectrum-de.js
Executable file → Normal file
0
lib/spectrum/i18n/jquery.spectrum-dk.js
Executable file → Normal file
0
lib/spectrum/i18n/jquery.spectrum-es.js
Executable file → Normal file
0
lib/spectrum/i18n/jquery.spectrum-fa.js
Executable file → Normal file
0
lib/spectrum/i18n/jquery.spectrum-fi.js
Executable file → Normal file
0
lib/spectrum/i18n/jquery.spectrum-fr.js
Executable file → Normal file
0
lib/spectrum/i18n/jquery.spectrum-gr.js
Executable file → Normal file
0
lib/spectrum/i18n/jquery.spectrum-he.js
Executable file → Normal file
0
lib/spectrum/i18n/jquery.spectrum-hr.js
Executable file → Normal file
0
lib/spectrum/i18n/jquery.spectrum-id.js
Executable file → Normal file
0
lib/spectrum/i18n/jquery.spectrum-it.js
Executable file → Normal file
0
lib/spectrum/i18n/jquery.spectrum-ja.js
Executable file → Normal file
0
lib/spectrum/i18n/jquery.spectrum-lt.js
Executable file → Normal file
0
lib/spectrum/i18n/jquery.spectrum-nl.js
Executable file → Normal file
0
lib/spectrum/i18n/jquery.spectrum-pl.js
Executable file → Normal file
0
lib/spectrum/i18n/jquery.spectrum-pt-br.js
Executable file → Normal file
0
lib/spectrum/i18n/jquery.spectrum-ru.js
Executable file → Normal file
0
lib/spectrum/i18n/jquery.spectrum-sv.js
Executable file → Normal file
0
lib/spectrum/i18n/jquery.spectrum-tr.js
Executable file → Normal file
0
lib/spectrum/i18n/jquery.spectrum-zh-cn.js
Executable file → Normal file
0
lib/spectrum/i18n/jquery.spectrum-zh-tw.js
Executable file → Normal file
0
lib/spectrum/index.html
Executable file → Normal file
0
lib/spectrum/package.json
Executable file → Normal file
0
lib/spectrum/spectrum.css
Executable file → Normal file
0
lib/spectrum/spectrum.js
Executable file → Normal file
0
lib/spectrum/test/index.html
Executable file → Normal file
0
lib/spectrum/test/loaders.html
Executable file → Normal file
0
lib/spectrum/test/loaders.js
Executable file → Normal file
0
lib/spectrum/test/qunit.css
Executable file → Normal file
0
lib/spectrum/test/qunit.js
Executable file → Normal file
0
lib/spectrum/test/require.js
Executable file → Normal file
0
lib/spectrum/test/tests.js
Executable file → Normal file
0
lib/spectrum/themes/index.html
Executable file → Normal file
0
lib/spectrum/themes/sp-dark.css
Executable file → Normal file
340
lib/style.css
|
@ -3,10 +3,157 @@ body {
|
|||
font-family:'Open Sans', Helvetica, Arial, sans-serif;
|
||||
}
|
||||
|
||||
div.whitelabeler {
|
||||
.sidebar-container {
|
||||
display: block;
|
||||
width: 230px;
|
||||
}
|
||||
|
||||
.sidebar {
|
||||
position: fixed;
|
||||
top:60px;
|
||||
bottom:0;
|
||||
height:100%;
|
||||
left:0;
|
||||
width:230px;
|
||||
background:#1d232b;
|
||||
font-family: "Open Sans",Helvetica,Arial,sans-serif;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.sidebar a {
|
||||
float:left;
|
||||
position:relative;
|
||||
width:100%;
|
||||
background:#1d232b;
|
||||
padding: 12px 20px;
|
||||
box-sizing: border-box;
|
||||
font-size:13px;
|
||||
color: #9e9e9e;
|
||||
text-decoration:none;
|
||||
}
|
||||
|
||||
.sidebar a .arrow::after {
|
||||
content: "\f0d7";
|
||||
}
|
||||
|
||||
.sidebar a .arrow {
|
||||
transition: opacity 0.3s ease 0.1s, margin-left 0s ease 0.2s;
|
||||
opacity: 1;
|
||||
margin-left: 0;
|
||||
font-family: 'FontAwesome';
|
||||
position: absolute;
|
||||
top: 12px;
|
||||
display: block;
|
||||
right: 19px;
|
||||
}
|
||||
|
||||
.sidebar a:hover {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.sidebar a::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
right: 0;
|
||||
left: 50px;
|
||||
bottom: 0;
|
||||
border-bottom: 1px solid #202830;
|
||||
}
|
||||
|
||||
.sidebar a .icon {
|
||||
font-weight: normal;
|
||||
font-size: 14px;
|
||||
min-width: 26px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.sidebar span.nav-item-name {
|
||||
margin-left: 0;
|
||||
position: relative;
|
||||
top: -1px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.nav-submenu {
|
||||
float:left;
|
||||
width:100%;
|
||||
margin-top:100px;
|
||||
background-color: #171c22;
|
||||
position: relative;
|
||||
padding: 5px 0 5px 50px;
|
||||
margin:0;
|
||||
list-style-type: none;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.nav-submenu li.nav-group {
|
||||
float:left;
|
||||
width:100%;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.sidebar li .nav-submenu .nav-group:after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
z-index: 2;
|
||||
top: 10px;
|
||||
left: -27px;
|
||||
width: 7px;
|
||||
height: 7px;
|
||||
border-radius: 7px;
|
||||
background-color: #222a32;
|
||||
box-shadow: 0 0 0 2px #1a2026;
|
||||
}
|
||||
|
||||
.nav-submenu li a {
|
||||
background:none;
|
||||
padding: 5px 20px 5px 0px;
|
||||
}
|
||||
|
||||
.nav-submenu li a::after {
|
||||
border:0;
|
||||
}
|
||||
|
||||
.nav-submenu:after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 26px;
|
||||
z-index: 1;
|
||||
width: 1px;
|
||||
}
|
||||
|
||||
.nav-submenu:after {
|
||||
background-color: #212831;
|
||||
}
|
||||
|
||||
li.menu-item {
|
||||
float:left;
|
||||
width:100%;
|
||||
padding:0;
|
||||
margin:0;
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
li.group:after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
right: 0;
|
||||
left: 50px;
|
||||
bottom: 0;
|
||||
}
|
||||
|
||||
.sidebar span.active-icon {
|
||||
color: #fdb933;
|
||||
}
|
||||
|
||||
div.whitelabeler {
|
||||
|
||||
float: left;
|
||||
width: 1030px;
|
||||
margin-top: 90px;
|
||||
position: relative;
|
||||
left: 230px;
|
||||
}
|
||||
|
||||
div#header {
|
||||
|
@ -80,6 +227,7 @@ div.container {
|
|||
|
||||
label {
|
||||
margin:0;
|
||||
line-height: 1.2;
|
||||
}
|
||||
small {
|
||||
color: #a2a2a2;
|
||||
|
@ -93,6 +241,7 @@ div#options {
|
|||
border: 1px solid #ebedf0;
|
||||
-webkit-box-shadow: 0px 1px 1px #f3f3f3;
|
||||
box-shadow: 0px 1px 1px #f3f3f3;
|
||||
padding-bottom: 100px;
|
||||
}
|
||||
|
||||
div#console {
|
||||
|
@ -240,7 +389,7 @@ button.btn-default {
|
|||
border-color:#4e5d9d;
|
||||
color:#fff;
|
||||
font-size:1.5em;
|
||||
padding:0.5em 3em;
|
||||
padding:0.5em 1.5em;
|
||||
}
|
||||
button.btn-default:hover {
|
||||
background-color: #3d497b;
|
||||
|
@ -248,6 +397,7 @@ button.btn-default:hover {
|
|||
color:#fff;
|
||||
}
|
||||
small.path-fail, small.url-fail {
|
||||
word-break: break-word;
|
||||
display: none;
|
||||
color:red;
|
||||
}
|
||||
|
@ -304,8 +454,7 @@ small.path-success, small.url-success {
|
|||
}
|
||||
|
||||
div#overlay {
|
||||
display: none;
|
||||
z-index: 999;
|
||||
z-index: 9999;
|
||||
position: fixed;
|
||||
top:0;
|
||||
right:0;
|
||||
|
@ -314,6 +463,26 @@ div#overlay {
|
|||
background:rgba(0, 0, 0, 0.75);
|
||||
}
|
||||
|
||||
div#overlay i {
|
||||
color: #FFF;
|
||||
font-size: 72px;
|
||||
position: absolute;
|
||||
top: 335px;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
div#overlay span {
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
color: #FFF;
|
||||
position: absolute;
|
||||
top: 420px;
|
||||
font-size: 21px;
|
||||
letter-spacing: 5px;
|
||||
font-weight: 300;
|
||||
}
|
||||
|
||||
small {
|
||||
color:#000;
|
||||
}
|
||||
|
@ -324,7 +493,7 @@ div#basic {
|
|||
margin:10px 0;
|
||||
}
|
||||
|
||||
div#colors, div#sidebarlogo, div#loginlogo, div#favicon {
|
||||
div#basic, div#colors, div#sidebarcolors, div#sidebarlogo, div#loginlogo, div#favicon {
|
||||
float:left;
|
||||
width:100%;
|
||||
padding:10px 20px;
|
||||
|
@ -334,7 +503,6 @@ div#colors, div#sidebarlogo, div#loginlogo, div#favicon {
|
|||
border-radius: 4px;
|
||||
}
|
||||
|
||||
|
||||
.col-md-3 {
|
||||
padding:0 5px;
|
||||
}
|
||||
|
@ -402,3 +570,161 @@ a#forgot {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
.affix {
|
||||
position: fixed !important;
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
button.btn-default:hover, button#login_button:hover {
|
||||
background: #3d497b;
|
||||
border-color: #3d497b;
|
||||
}
|
||||
|
||||
.form-control:focus {
|
||||
border-color: #ccc;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.input-group-addon {
|
||||
min-width: 45px;
|
||||
}
|
||||
|
||||
li.support {
|
||||
border: 1px solid #4e5d9d;
|
||||
margin-top: 10px;
|
||||
box-shadow: 0 0 30px inset #4e5d9d;
|
||||
padding: 10px;
|
||||
width: 90%;
|
||||
margin-left: 11px;
|
||||
position: absolute;
|
||||
bottom: 72px;
|
||||
display: none;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.support h1 {
|
||||
color: #fdb933;
|
||||
margin: 15px;
|
||||
font-size: 13px;
|
||||
font-weight: bold;
|
||||
margin-bottom:0;
|
||||
}
|
||||
|
||||
.support p {
|
||||
color: #929dab;
|
||||
margin: 15px;
|
||||
margin-top:8px;
|
||||
margin-bottom: 5px;
|
||||
font-size: 12px;
|
||||
line-height: 1.3;
|
||||
|
||||
}
|
||||
|
||||
.sidebar a.btn-support {
|
||||
background-color: #4e5d9d;
|
||||
border:0px !important;
|
||||
color: #fff !important;
|
||||
float: none !important;
|
||||
font-weight:bold;
|
||||
width: 90% !important;
|
||||
margin:5px 10px 10px 10px !important;
|
||||
}
|
||||
|
||||
.sidebar a.btn-support::after {
|
||||
border-bottom: 0px !important;
|
||||
}
|
||||
|
||||
.sidebar a.btn-support:hover {
|
||||
background-color: #3d497b !important;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
#actions .btn {
|
||||
font-size: 15px !important;
|
||||
margin: 0 5px;
|
||||
}
|
||||
|
||||
#notification {
|
||||
display: block;
|
||||
margin-top:20px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#notification p {
|
||||
display:none;
|
||||
}
|
||||
|
||||
#notification p.success {
|
||||
color: #1db91d;
|
||||
}
|
||||
|
||||
#notification p.fail {
|
||||
color: red;
|
||||
}
|
||||
|
||||
button#reload {
|
||||
display: none;
|
||||
}
|
||||
|
||||
div#sidebar-logo-loaded {
|
||||
position: relative;
|
||||
display: none;
|
||||
}
|
||||
|
||||
div#login-logo-loaded {
|
||||
position: relative;
|
||||
display: none;
|
||||
}
|
||||
|
||||
div#favicon-loaded {
|
||||
position: relative;
|
||||
display: none;
|
||||
}
|
||||
|
||||
div#sidebar-logo-loaded p, div#login-logo-loaded p, div#favicon-loaded p {
|
||||
display: block;
|
||||
border: 1px solid #e2e1e4;
|
||||
border-radius: 4px;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
div#sidebar-logo-loaded a, div#login-logo-loaded a, div#favicon-loaded a {
|
||||
position: absolute;
|
||||
right: 12px;
|
||||
top: 6px;
|
||||
color: red;
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
div#sidebar-logo-loaded span, div#login-logo-loaded span, div#favicon-loaded span {
|
||||
padding-right: 30px;
|
||||
}
|
||||
|
||||
.sidebar-logo-error, .login-logo-error, .favicon-error {
|
||||
color: red;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.field-container {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#url-loading, #path-loading {
|
||||
display: none;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background: #9c9c9c;
|
||||
background: rgba(156, 156, 156, 0.7);
|
||||
}
|
||||
|
||||
#url-loading i, #path-loading i {
|
||||
color: white;
|
||||
font-size: 28px;
|
||||
position: absolute;
|
||||
top: 3px;
|
||||
left: 45.5%;
|
||||
}
|
||||
|
|
1290
lib/whitelabeler.js
BIN
preview-cli.png
Normal file
After Width: | Height: | Size: 126 KiB |
BIN
preview.png
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 136 KiB |
|
@ -1,82 +0,0 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* @copyright 2014 Mautic Contributors. All rights reserved
|
||||
* @author Mautic
|
||||
*
|
||||
* @link http://mautic.org
|
||||
*
|
||||
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
|
||||
*/
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<?php echo $view->render('MauticCoreBundle:Default:head.html.php'); ?>
|
||||
<body class="header-fixed">
|
||||
<!-- start: app-wrapper -->
|
||||
<section id="app-wrapper">
|
||||
<?php $view['assets']->outputScripts('bodyOpen'); ?>
|
||||
|
||||
<!-- start: app-sidebar(left) -->
|
||||
<aside class="app-sidebar sidebar-left">
|
||||
<?php echo $view->render('MauticCoreBundle:LeftPanel:index.html.php'); ?>
|
||||
</aside>
|
||||
<!--/ end: app-sidebar(left) -->
|
||||
|
||||
<!-- start: app-sidebar(right) -->
|
||||
<aside class="app-sidebar sidebar-right">
|
||||
<?php echo $view->render('MauticCoreBundle:RightPanel:index.html.php'); ?>
|
||||
</aside>
|
||||
<!--/ end: app-sidebar(right) -->
|
||||
|
||||
<!-- start: app-header -->
|
||||
<header id="app-header" class="navbar">
|
||||
<?php echo $view->render('MauticCoreBundle:Default:navbar.html.php'); ?>
|
||||
|
||||
<?php echo $view->render('MauticCoreBundle:Notification:flashes.html.php'); ?>
|
||||
</header>
|
||||
<!--/ end: app-header -->
|
||||
|
||||
<!-- start: app-footer(need to put on top of #app-content)-->
|
||||
<footer id="app-footer">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-xs-6 text-muted">© <?php echo date('Y');?> {{company_name}}</div>
|
||||
<div class="col-xs-6 text-muted text-right small">v<?php echo $view['formatter']->getVersion(); ?></div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
<!--/ end: app-content -->
|
||||
|
||||
<!-- start: app-content -->
|
||||
<section id="app-content">
|
||||
<?php $view['slots']->output('_content'); ?>
|
||||
</section>
|
||||
<!--/ end: app-content -->
|
||||
|
||||
</section>
|
||||
<!--/ end: app-wrapper -->
|
||||
|
||||
<script>
|
||||
Mautic.onPageLoad('body');
|
||||
<?php if ($app->getEnvironment() === 'dev'): ?>
|
||||
mQuery( document ).ajaxComplete(function(event, XMLHttpRequest, ajaxOption){
|
||||
if(XMLHttpRequest.responseJSON && typeof XMLHttpRequest.responseJSON.ignore_wdt == 'undefined' && XMLHttpRequest.getResponseHeader('x-debug-token')) {
|
||||
if (mQuery('[class*="sf-tool"]').length) {
|
||||
mQuery('[class*="sf-tool"]').remove();
|
||||
}
|
||||
|
||||
mQuery.get(mauticBaseUrl + '_wdt/'+XMLHttpRequest.getResponseHeader('x-debug-token'),function(data){
|
||||
mQuery('body').append('<div class="sf-toolbar-reload">'+data+'</div>');
|
||||
});
|
||||
}
|
||||
});
|
||||
<?php endif; ?>
|
||||
</script>
|
||||
<?php $view['assets']->outputScripts('bodyClose'); ?>
|
||||
<?php echo $view->render('MauticCoreBundle:Helper:modal.html.php', [
|
||||
'id' => 'MauticSharedModal',
|
||||
'footerButtons' => true,
|
||||
]); ?>
|
||||
</body>
|
||||
</html>
|
|
@ -1,53 +0,0 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* @copyright 2014 Mautic Contributors. All rights reserved
|
||||
* @author Mautic
|
||||
*
|
||||
* @link http://mautic.org
|
||||
*
|
||||
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
|
||||
*/
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<title><?php echo $view['slots']->get('pageTitle', '{{company_name}}'); ?></title>
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<link rel="icon" type="image/x-icon" href="<?php echo $view['assets']->getUrl('media/images/favicon.ico') ?>" />
|
||||
<link rel="apple-touch-icon" href="<?php echo $view['assets']->getUrl('media/images/apple-touch-icon.png') ?>" />
|
||||
<?php $view['assets']->outputSystemStylesheets(); ?>
|
||||
<?php echo $view->render('MauticCoreBundle:Default:script.html.php'); ?>
|
||||
<?php $view['assets']->outputHeadDeclarations(); ?>
|
||||
</head>
|
||||
<body>
|
||||
<section id="main" role="main">
|
||||
<div class="container" style="margin-top:100px;">
|
||||
<div class="row">
|
||||
<div class="col-lg-4 col-lg-offset-4">
|
||||
<div class="panel" name="form-login">
|
||||
<div class="panel-body">
|
||||
<div class="mautic-logo img-circle mb-md text-center" style="width:{{login_logo_width}}px;">
|
||||
<img src="{{login_logo}}" style="width:{{login_logo_width}}px; margin:{{login_logo_margin_top}}px 0 {{login_logo_margin_bottom}}px 0;" />
|
||||
</div>
|
||||
<div id="main-panel-flash-msgs">
|
||||
<?php echo $view->render('MauticCoreBundle:Notification:flashes.html.php'); ?>
|
||||
</div>
|
||||
<?php $view['slots']->output('_content'); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-4 col-lg-offset-4 text-center text-muted">
|
||||
© <?php echo date('Y');?> {{company_name}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<?php echo $view['security']->getAuthenticationContent(); ?>
|
||||
</body>
|
||||
</html>
|
|
@ -1,82 +0,0 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* @copyright 2014 Mautic Contributors. All rights reserved
|
||||
* @author Mautic
|
||||
*
|
||||
* @link http://mautic.org
|
||||
*
|
||||
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
|
||||
*/
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<?php echo $view->render('MauticCoreBundle:Default:head.html.php'); ?>
|
||||
<body class="header-fixed">
|
||||
<!-- start: app-wrapper -->
|
||||
<section id="app-wrapper">
|
||||
<?php $view['assets']->outputScripts('bodyOpen'); ?>
|
||||
|
||||
<!-- start: app-sidebar(left) -->
|
||||
<aside class="app-sidebar sidebar-left">
|
||||
<?php echo $view->render('MauticCoreBundle:LeftPanel:index.html.php'); ?>
|
||||
</aside>
|
||||
<!--/ end: app-sidebar(left) -->
|
||||
|
||||
<!-- start: app-sidebar(right) -->
|
||||
<aside class="app-sidebar sidebar-right">
|
||||
<?php echo $view->render('MauticCoreBundle:RightPanel:index.html.php'); ?>
|
||||
</aside>
|
||||
<!--/ end: app-sidebar(right) -->
|
||||
|
||||
<!-- start: app-header -->
|
||||
<header id="app-header" class="navbar">
|
||||
<?php echo $view->render('MauticCoreBundle:Default:navbar.html.php'); ?>
|
||||
|
||||
<?php echo $view->render('MauticCoreBundle:Notification:flashes.html.php'); ?>
|
||||
</header>
|
||||
<!--/ end: app-header -->
|
||||
|
||||
<!-- start: app-footer(need to put on top of #app-content)-->
|
||||
<footer id="app-footer">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-xs-6 text-muted">© <?php echo date('Y');?> {{company_name}}</div>
|
||||
<div class="col-xs-6 text-muted text-right small">v<?php echo $view['formatter']->getVersion(); ?></div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
<!--/ end: app-content -->
|
||||
|
||||
<!-- start: app-content -->
|
||||
<section id="app-content">
|
||||
<?php $view['slots']->output('_content'); ?>
|
||||
</section>
|
||||
<!--/ end: app-content -->
|
||||
|
||||
</section>
|
||||
<!--/ end: app-wrapper -->
|
||||
|
||||
<script>
|
||||
Mautic.onPageLoad('body');
|
||||
<?php if ($app->getEnvironment() === 'dev'): ?>
|
||||
mQuery( document ).ajaxComplete(function(event, XMLHttpRequest, ajaxOption){
|
||||
if(XMLHttpRequest.responseJSON && typeof XMLHttpRequest.responseJSON.ignore_wdt == 'undefined' && XMLHttpRequest.getResponseHeader('x-debug-token')) {
|
||||
if (mQuery('[class*="sf-tool"]').length) {
|
||||
mQuery('[class*="sf-tool"]').remove();
|
||||
}
|
||||
|
||||
mQuery.get(mauticBaseUrl + '_wdt/'+XMLHttpRequest.getResponseHeader('x-debug-token'),function(data){
|
||||
mQuery('body').append('<div class="sf-toolbar-reload">'+data+'</div>');
|
||||
});
|
||||
}
|
||||
});
|
||||
<?php endif; ?>
|
||||
</script>
|
||||
<?php $view['assets']->outputScripts('bodyClose'); ?>
|
||||
<?php echo $view->render('MauticCoreBundle:Helper:modal.html.php', [
|
||||
'id' => 'MauticSharedModal',
|
||||
'footerButtons' => true,
|
||||
]); ?>
|
||||
</body>
|
||||
</html>
|
|
@ -1,28 +0,0 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* @copyright 2014 Mautic Contributors. All rights reserved
|
||||
* @author Mautic
|
||||
*
|
||||
* @link http://mautic.org
|
||||
*
|
||||
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
|
||||
*/
|
||||
?>
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<title><?php if (!empty($view['slots']->get('headerTitle', ''))): ?>
|
||||
<?php echo strip_tags(str_replace('<', ' <', $view['slots']->get('headerTitle', ''))); ?> |
|
||||
<?php endif; ?>
|
||||
<?php echo $view['slots']->get('pageTitle', '{{company_name}}'); ?>
|
||||
</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<link rel="icon" type="image/x-icon" href="<?php echo $view['assets']->getUrl('media/images/favicon.ico') ?>" />
|
||||
<link rel="icon" sizes="192x192" href="<?php echo $view['assets']->getUrl('media/images/favicon.ico') ?>">
|
||||
<link rel="apple-touch-icon" href="<?php echo $view['assets']->getUrl('media/images/apple-touch-icon.png') ?>" />
|
||||
|
||||
<?php echo $view['assets']->outputSystemStylesheets(); ?>
|
||||
|
||||
<?php echo $view->render('MauticCoreBundle:Default:script.html.php'); ?>
|
||||
<?php $view['assets']->outputHeadDeclarations(); ?>
|
||||
</head>
|
|
@ -1,55 +0,0 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* @copyright 2014 Mautic Contributors. All rights reserved
|
||||
* @author Mautic
|
||||
*
|
||||
* @link http://mautic.org
|
||||
*
|
||||
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
|
||||
*/
|
||||
$extraMenu = $view['menu']->render('extra');
|
||||
?>
|
||||
<!-- start: sidebar-header -->
|
||||
<div class="sidebar-header">
|
||||
<!-- brand -->
|
||||
<a class="mautic-brand<?php echo (!empty($extraMenu)) ? ' pull-left pl-0 pr-0' : ''; ?>" href="#" style="text-align:center; padding:0;">
|
||||
|
||||
<img src="{{sidebar_image}}" style="width:{{sidebar_width}}px; margin:{{margin_top}}px {{margin_right}}px 0 {{margin_left}}px;" />
|
||||
|
||||
</a>
|
||||
<?php if (!empty($extraMenu)): ?>
|
||||
<div class="dropdown extra-menu">
|
||||
<a href="#" data-toggle="dropdown" class="dropdown-toggle">
|
||||
<i class="fa fa-chevron-down fa-lg"></i>
|
||||
</a>
|
||||
<?php echo $extraMenu; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<!--/ brand -->
|
||||
</div>
|
||||
<!--/ end: sidebar-header -->
|
||||
|
||||
<!-- start: sidebar-content -->
|
||||
<div class="sidebar-content">
|
||||
<!-- scroll-content -->
|
||||
<div class="scroll-content slimscroll">
|
||||
<!-- start: navigation -->
|
||||
<nav class="nav-sidebar">
|
||||
<?php echo $view['content']->getCustomContent('menu.above', $mauticTemplateVars); ?>
|
||||
<?php echo $view['menu']->render('main'); ?>
|
||||
|
||||
<!-- start: left nav -->
|
||||
<ul class="nav sidebar-left-dark">
|
||||
<li class="hidden-xs">
|
||||
<a href="javascript:void(0)" data-toggle="minimize" class="sidebar-minimizer"><span class="direction icon pull-left fa"></span><span class="nav-item-name pull-left text"><?php echo $view['translator']->trans('mautic.core.menu.left.collapse'); ?></span></a>
|
||||
</li>
|
||||
</ul>
|
||||
<!--/ end: left nav -->
|
||||
|
||||
</nav>
|
||||
<!--/ end: navigation -->
|
||||
</div>
|
||||
<!--/ scroll-content -->
|
||||
</div>
|
||||
<!--/ end: sidebar-content -->
|
|
@ -1,82 +0,0 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* @copyright 2014 Mautic Contributors. All rights reserved
|
||||
* @author Mautic
|
||||
*
|
||||
* @link http://mautic.org
|
||||
*
|
||||
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
|
||||
*/
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<?php echo $view->render('MauticCoreBundle:Default:head.html.php'); ?>
|
||||
<body class="header-fixed">
|
||||
<!-- start: app-wrapper -->
|
||||
<section id="app-wrapper">
|
||||
<?php $view['assets']->outputScripts('bodyOpen'); ?>
|
||||
|
||||
<!-- start: app-sidebar(left) -->
|
||||
<aside class="app-sidebar sidebar-left">
|
||||
<?php echo $view->render('MauticCoreBundle:LeftPanel:index.html.php'); ?>
|
||||
</aside>
|
||||
<!--/ end: app-sidebar(left) -->
|
||||
|
||||
<!-- start: app-sidebar(right) -->
|
||||
<aside class="app-sidebar sidebar-right">
|
||||
<?php echo $view->render('MauticCoreBundle:RightPanel:index.html.php'); ?>
|
||||
</aside>
|
||||
<!--/ end: app-sidebar(right) -->
|
||||
|
||||
<!-- start: app-header -->
|
||||
<header id="app-header" class="navbar">
|
||||
<?php echo $view->render('MauticCoreBundle:Default:navbar.html.php'); ?>
|
||||
|
||||
<?php echo $view->render('MauticCoreBundle:Notification:flashes.html.php'); ?>
|
||||
</header>
|
||||
<!--/ end: app-header -->
|
||||
|
||||
<!-- start: app-footer(need to put on top of #app-content)-->
|
||||
<footer id="app-footer">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-xs-6 text-muted">© <?php echo date('Y');?> {{company_name}}</div>
|
||||
<div class="col-xs-6 text-muted text-right small">v<?php echo $view['formatter']->getVersion(); ?></div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
<!--/ end: app-content -->
|
||||
|
||||
<!-- start: app-content -->
|
||||
<section id="app-content">
|
||||
<?php $view['slots']->output('_content'); ?>
|
||||
</section>
|
||||
<!--/ end: app-content -->
|
||||
|
||||
</section>
|
||||
<!--/ end: app-wrapper -->
|
||||
|
||||
<script>
|
||||
Mautic.onPageLoad('body');
|
||||
<?php if ($app->getEnvironment() === 'dev'): ?>
|
||||
mQuery( document ).ajaxComplete(function(event, XMLHttpRequest, ajaxOption){
|
||||
if(XMLHttpRequest.responseJSON && typeof XMLHttpRequest.responseJSON.ignore_wdt == 'undefined' && XMLHttpRequest.getResponseHeader('x-debug-token')) {
|
||||
if (mQuery('[class*="sf-tool"]').length) {
|
||||
mQuery('[class*="sf-tool"]').remove();
|
||||
}
|
||||
|
||||
mQuery.get(mauticBaseUrl + '_wdt/'+XMLHttpRequest.getResponseHeader('x-debug-token'),function(data){
|
||||
mQuery('body').append('<div class="sf-toolbar-reload">'+data+'</div>');
|
||||
});
|
||||
}
|
||||
});
|
||||
<?php endif; ?>
|
||||
</script>
|
||||
<?php $view['assets']->outputScripts('bodyClose'); ?>
|
||||
<?php echo $view->render('MauticCoreBundle:Helper:modal.html.php', [
|
||||
'id' => 'MauticSharedModal',
|
||||
'footerButtons' => true,
|
||||
]); ?>
|
||||
</body>
|
||||
</html>
|
|
@ -1,28 +0,0 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* @copyright 2014 Mautic Contributors. All rights reserved
|
||||
* @author Mautic
|
||||
*
|
||||
* @link http://mautic.org
|
||||
*
|
||||
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
|
||||
*/
|
||||
?>
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<title><?php if (!empty($view['slots']->get('headerTitle', ''))): ?>
|
||||
<?php echo strip_tags(str_replace('<', ' <', $view['slots']->get('headerTitle', ''))); ?> |
|
||||
<?php endif; ?>
|
||||
<?php echo $view['slots']->get('pageTitle', '{{company_name}}'); ?>
|
||||
</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<link rel="icon" type="image/x-icon" href="<?php echo $view['assets']->getUrl('media/images/favicon.ico') ?>" />
|
||||
<link rel="icon" sizes="192x192" href="<?php echo $view['assets']->getUrl('media/images/favicon.ico') ?>">
|
||||
<link rel="apple-touch-icon" href="<?php echo $view['assets']->getUrl('media/images/apple-touch-icon.png') ?>" />
|
||||
|
||||
<?php echo $view['assets']->outputSystemStylesheets(); ?>
|
||||
|
||||
<?php echo $view->render('MauticCoreBundle:Default:script.html.php'); ?>
|
||||
<?php $view['assets']->outputHeadDeclarations(); ?>
|
||||
</head>
|
|
@ -1,55 +0,0 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* @copyright 2014 Mautic Contributors. All rights reserved
|
||||
* @author Mautic
|
||||
*
|
||||
* @link http://mautic.org
|
||||
*
|
||||
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
|
||||
*/
|
||||
$extraMenu = $view['menu']->render('extra');
|
||||
?>
|
||||
<!-- start: sidebar-header -->
|
||||
<div class="sidebar-header">
|
||||
<!-- brand -->
|
||||
<a class="mautic-brand<?php echo (!empty($extraMenu)) ? ' pull-left pl-0 pr-0' : ''; ?>" href="#" style="text-align:center; padding:0;">
|
||||
|
||||
<img src="{{sidebar_image}}" style="width:{{sidebar_width}}px; margin:{{margin_top}}px {{margin_right}}px 0 {{margin_left}}px;" />
|
||||
|
||||
</a>
|
||||
<?php if (!empty($extraMenu)): ?>
|
||||
<div class="dropdown extra-menu">
|
||||
<a href="#" data-toggle="dropdown" class="dropdown-toggle">
|
||||
<i class="fa fa-chevron-down fa-lg"></i>
|
||||
</a>
|
||||
<?php echo $extraMenu; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<!--/ brand -->
|
||||
</div>
|
||||
<!--/ end: sidebar-header -->
|
||||
|
||||
<!-- start: sidebar-content -->
|
||||
<div class="sidebar-content">
|
||||
<!-- scroll-content -->
|
||||
<div class="scroll-content slimscroll">
|
||||
<!-- start: navigation -->
|
||||
<nav class="nav-sidebar">
|
||||
<?php echo $view['content']->getCustomContent('menu.above', $mauticTemplateVars); ?>
|
||||
<?php echo $view['menu']->render('main'); ?>
|
||||
|
||||
<!-- start: left nav -->
|
||||
<ul class="nav sidebar-left-dark">
|
||||
<li class="hidden-xs">
|
||||
<a href="javascript:void(0)" data-toggle="minimize" class="sidebar-minimizer"><span class="direction icon pull-left fa"></span><span class="nav-item-name pull-left text"><?php echo $view['translator']->trans('mautic.core.menu.left.collapse'); ?></span></a>
|
||||
</li>
|
||||
</ul>
|
||||
<!--/ end: left nav -->
|
||||
|
||||
</nav>
|
||||
<!--/ end: navigation -->
|
||||
</div>
|
||||
<!--/ scroll-content -->
|
||||
</div>
|
||||
<!--/ end: sidebar-content -->
|
|
@ -1,53 +0,0 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* @copyright 2014 Mautic Contributors. All rights reserved
|
||||
* @author Mautic
|
||||
*
|
||||
* @link http://mautic.org
|
||||
*
|
||||
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
|
||||
*/
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<title><?php echo $view['slots']->get('pageTitle', '{{company_name}}'); ?></title>
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<link rel="icon" type="image/x-icon" href="<?php echo $view['assets']->getUrl('media/images/favicon.ico') ?>" />
|
||||
<link rel="apple-touch-icon" href="<?php echo $view['assets']->getUrl('media/images/apple-touch-icon.png') ?>" />
|
||||
<?php $view['assets']->outputSystemStylesheets(); ?>
|
||||
<?php echo $view->render('MauticCoreBundle:Default:script.html.php'); ?>
|
||||
<?php $view['assets']->outputHeadDeclarations(); ?>
|
||||
</head>
|
||||
<body>
|
||||
<section id="main" role="main">
|
||||
<div class="container" style="margin-top:100px;">
|
||||
<div class="row">
|
||||
<div class="col-lg-4 col-lg-offset-4">
|
||||
<div class="panel" name="form-login">
|
||||
<div class="panel-body">
|
||||
<div class="mautic-logo img-circle mb-md text-center" style="width:{{login_logo_width}}px;">
|
||||
<img src="{{login_logo}}" style="width:{{login_logo_width}}px; margin:{{login_logo_margin_top}}px 0 {{login_logo_margin_bottom}}px 0;" />
|
||||
</div>
|
||||
<div id="main-panel-flash-msgs">
|
||||
<?php echo $view->render('MauticCoreBundle:Notification:flashes.html.php'); ?>
|
||||
</div>
|
||||
<?php $view['slots']->output('_content'); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-4 col-lg-offset-4 text-center text-muted">
|
||||
© <?php echo date('Y');?> {{company_name}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<?php echo $view['security']->getAuthenticationContent(); ?>
|
||||
</body>
|
||||
</html>
|
|
@ -1,86 +0,0 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* @copyright 2014 Mautic Contributors. All rights reserved
|
||||
* @author Mautic
|
||||
*
|
||||
* @link http://mautic.org
|
||||
*
|
||||
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
|
||||
*/
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<?php echo $view->render('MauticCoreBundle:Default:head.html.php'); ?>
|
||||
<body class="header-fixed">
|
||||
<!-- start: app-wrapper -->
|
||||
<section id="app-wrapper">
|
||||
<?php $view['assets']->outputScripts('bodyOpen'); ?>
|
||||
|
||||
<!-- start: app-sidebar(left) -->
|
||||
<aside class="app-sidebar sidebar-left">
|
||||
<?php echo $view->render('MauticCoreBundle:LeftPanel:index.html.php'); ?>
|
||||
</aside>
|
||||
<!--/ end: app-sidebar(left) -->
|
||||
|
||||
<!-- start: app-sidebar(right) -->
|
||||
<aside class="app-sidebar sidebar-right">
|
||||
<?php echo $view->render('MauticCoreBundle:RightPanel:index.html.php'); ?>
|
||||
</aside>
|
||||
<!--/ end: app-sidebar(right) -->
|
||||
|
||||
<!-- start: app-header -->
|
||||
<header id="app-header" class="navbar">
|
||||
<?php echo $view->render('MauticCoreBundle:Default:navbar.html.php'); ?>
|
||||
|
||||
<?php echo $view->render('MauticCoreBundle:Notification:flashes.html.php'); ?>
|
||||
</header>
|
||||
<!--/ end: app-header -->
|
||||
|
||||
<!-- start: app-footer(need to put on top of #app-content)-->
|
||||
<footer id="app-footer">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-xs-6 text-muted">© <?php echo date('Y');?> {{company_name}}</div>
|
||||
<div class="col-xs-6 text-muted text-right small">v<?php
|
||||
/** @var \Mautic\CoreBundle\Templating\Helper\VersionHelper $version */
|
||||
$version = $view['version'];
|
||||
echo $version->getVersion(); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
<!--/ end: app-content -->
|
||||
|
||||
<!-- start: app-content -->
|
||||
<section id="app-content">
|
||||
<?php $view['slots']->output('_content'); ?>
|
||||
</section>
|
||||
<!--/ end: app-content -->
|
||||
|
||||
</section>
|
||||
<!--/ end: app-wrapper -->
|
||||
|
||||
<script>
|
||||
Mautic.onPageLoad('body');
|
||||
<?php if ($app->getEnvironment() === 'dev'): ?>
|
||||
mQuery( document ).ajaxComplete(function(event, XMLHttpRequest, ajaxOption){
|
||||
if(XMLHttpRequest.responseJSON && typeof XMLHttpRequest.responseJSON.ignore_wdt == 'undefined' && XMLHttpRequest.getResponseHeader('x-debug-token')) {
|
||||
if (mQuery('[class*="sf-tool"]').length) {
|
||||
mQuery('[class*="sf-tool"]').remove();
|
||||
}
|
||||
|
||||
mQuery.get(mauticBaseUrl + '_wdt/'+XMLHttpRequest.getResponseHeader('x-debug-token'),function(data){
|
||||
mQuery('body').append('<div class="sf-toolbar-reload">'+data+'</div>');
|
||||
});
|
||||
}
|
||||
});
|
||||
<?php endif; ?>
|
||||
</script>
|
||||
<?php $view['assets']->outputScripts('bodyClose'); ?>
|
||||
<?php echo $view->render('MauticCoreBundle:Helper:modal.html.php', [
|
||||
'id' => 'MauticSharedModal',
|
||||
'footerButtons' => true,
|
||||
]); ?>
|
||||
</body>
|
||||
</html>
|
|
@ -1,28 +0,0 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* @copyright 2014 Mautic Contributors. All rights reserved
|
||||
* @author Mautic
|
||||
*
|
||||
* @link http://mautic.org
|
||||
*
|
||||
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
|
||||
*/
|
||||
?>
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<title><?php if (!empty($view['slots']->get('headerTitle', ''))): ?>
|
||||
<?php echo strip_tags(str_replace('<', ' <', $view['slots']->get('headerTitle', ''))); ?> |
|
||||
<?php endif; ?>
|
||||
<?php echo $view['slots']->get('pageTitle', '{{company_name}}'); ?>
|
||||
</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<link rel="icon" type="image/x-icon" href="<?php echo $view['assets']->getUrl('media/images/favicon.ico') ?>" />
|
||||
<link rel="icon" sizes="192x192" href="<?php echo $view['assets']->getUrl('media/images/favicon.ico') ?>">
|
||||
<link rel="apple-touch-icon" href="<?php echo $view['assets']->getUrl('media/images/apple-touch-icon.png') ?>" />
|
||||
|
||||
<?php echo $view['assets']->outputSystemStylesheets(); ?>
|
||||
|
||||
<?php echo $view->render('MauticCoreBundle:Default:script.html.php'); ?>
|
||||
<?php $view['assets']->outputHeadDeclarations(); ?>
|
||||
</head>
|
|
@ -1,55 +0,0 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* @copyright 2014 Mautic Contributors. All rights reserved
|
||||
* @author Mautic
|
||||
*
|
||||
* @link http://mautic.org
|
||||
*
|
||||
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
|
||||
*/
|
||||
$extraMenu = $view['menu']->render('extra');
|
||||
?>
|
||||
<!-- start: sidebar-header -->
|
||||
<div class="sidebar-header">
|
||||
<!-- brand -->
|
||||
<a class="mautic-brand<?php echo (!empty($extraMenu)) ? ' pull-left pl-0 pr-0' : ''; ?>" href="#" style="text-align:center; padding:0;">
|
||||
|
||||
<img src="{{sidebar_image}}" style="width:{{sidebar_width}}px; margin:{{margin_top}}px {{margin_right}}px 0 {{margin_left}}px;" />
|
||||
|
||||
</a>
|
||||
<?php if (!empty($extraMenu)): ?>
|
||||
<div class="dropdown extra-menu">
|
||||
<a href="#" data-toggle="dropdown" class="dropdown-toggle">
|
||||
<i class="fa fa-chevron-down fa-lg"></i>
|
||||
</a>
|
||||
<?php echo $extraMenu; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<!--/ brand -->
|
||||
</div>
|
||||
<!--/ end: sidebar-header -->
|
||||
|
||||
<!-- start: sidebar-content -->
|
||||
<div class="sidebar-content">
|
||||
<!-- scroll-content -->
|
||||
<div class="scroll-content slimscroll">
|
||||
<!-- start: navigation -->
|
||||
<nav class="nav-sidebar">
|
||||
<?php echo $view['content']->getCustomContent('menu.above', $mauticTemplateVars); ?>
|
||||
<?php echo $view['menu']->render('main'); ?>
|
||||
|
||||
<!-- start: left nav -->
|
||||
<ul class="nav sidebar-left-dark">
|
||||
<li class="hidden-xs">
|
||||
<a href="javascript:void(0)" data-toggle="minimize" class="sidebar-minimizer"><span class="direction icon pull-left fa"></span><span class="nav-item-name pull-left text"><?php echo $view['translator']->trans('mautic.core.menu.left.collapse'); ?></span></a>
|
||||
</li>
|
||||
</ul>
|
||||
<!--/ end: left nav -->
|
||||
|
||||
</nav>
|
||||
<!--/ end: navigation -->
|
||||
</div>
|
||||
<!--/ scroll-content -->
|
||||
</div>
|
||||
<!--/ end: sidebar-content -->
|
|
@ -1,53 +0,0 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* @copyright 2014 Mautic Contributors. All rights reserved
|
||||
* @author Mautic
|
||||
*
|
||||
* @link http://mautic.org
|
||||
*
|
||||
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
|
||||
*/
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<title><?php echo $view['slots']->get('pageTitle', '{{company_name}}'); ?></title>
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<link rel="icon" type="image/x-icon" href="<?php echo $view['assets']->getUrl('media/images/favicon.ico') ?>" />
|
||||
<link rel="apple-touch-icon" href="<?php echo $view['assets']->getUrl('media/images/apple-touch-icon.png') ?>" />
|
||||
<?php $view['assets']->outputSystemStylesheets(); ?>
|
||||
<?php echo $view->render('MauticCoreBundle:Default:script.html.php'); ?>
|
||||
<?php $view['assets']->outputHeadDeclarations(); ?>
|
||||
</head>
|
||||
<body>
|
||||
<section id="main" role="main">
|
||||
<div class="container" style="margin-top:100px;">
|
||||
<div class="row">
|
||||
<div class="col-lg-4 col-lg-offset-4">
|
||||
<div class="panel" name="form-login">
|
||||
<div class="panel-body">
|
||||
<div class="mautic-logo img-circle mb-md text-center" style="width:{{login_logo_width}}px;">
|
||||
<img src="{{login_logo}}" style="width:{{login_logo_width}}px; margin:{{login_logo_margin_top}}px 0 {{login_logo_margin_bottom}}px 0;" />
|
||||
</div>
|
||||
<div id="main-panel-flash-msgs">
|
||||
<?php echo $view->render('MauticCoreBundle:Notification:flashes.html.php'); ?>
|
||||
</div>
|
||||
<?php $view['slots']->output('_content'); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-4 col-lg-offset-4 text-center text-muted">
|
||||
© <?php echo date('Y');?> {{company_name}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<?php echo $view['security']->getAuthenticationContent(); ?>
|
||||
</body>
|
||||
</html>
|
|
@ -1,28 +0,0 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* @copyright 2014 Mautic Contributors. All rights reserved
|
||||
* @author Mautic
|
||||
*
|
||||
* @link http://mautic.org
|
||||
*
|
||||
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
|
||||
*/
|
||||
?>
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<title><?php if (!empty($view['slots']->get('headerTitle', ''))): ?>
|
||||
<?php echo strip_tags(str_replace('<', ' <', $view['slots']->get('headerTitle', ''))); ?> |
|
||||
<?php endif; ?>
|
||||
<?php echo $view['slots']->get('pageTitle', '{{company_name}}'); ?>
|
||||
</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<link rel="icon" type="image/x-icon" href="<?php echo $view['assets']->getUrl('media/images/favicon.ico') ?>" />
|
||||
<link rel="icon" sizes="192x192" href="<?php echo $view['assets']->getUrl('media/images/favicon.ico') ?>">
|
||||
<link rel="apple-touch-icon" href="<?php echo $view['assets']->getUrl('media/images/apple-touch-icon.png') ?>" />
|
||||
|
||||
<?php echo $view['assets']->outputSystemStylesheets(); ?>
|
||||
|
||||
<?php echo $view->render('MauticCoreBundle:Default:script.html.php'); ?>
|
||||
<?php $view['assets']->outputHeadDeclarations(); ?>
|
||||
</head>
|
|
@ -1,55 +0,0 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* @copyright 2014 Mautic Contributors. All rights reserved
|
||||
* @author Mautic
|
||||
*
|
||||
* @link http://mautic.org
|
||||
*
|
||||
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
|
||||
*/
|
||||
$extraMenu = $view['menu']->render('extra');
|
||||
?>
|
||||
<!-- start: sidebar-header -->
|
||||
<div class="sidebar-header">
|
||||
<!-- brand -->
|
||||
<a class="mautic-brand<?php echo (!empty($extraMenu)) ? ' pull-left pl-0 pr-0' : ''; ?>" href="#" style="text-align:center; padding:0;">
|
||||
|
||||
<img src="{{sidebar_image}}" style="width:{{sidebar_width}}px; margin:{{margin_top}}px {{margin_right}}px 0 {{margin_left}}px;" />
|
||||
|
||||
</a>
|
||||
<?php if (!empty($extraMenu)): ?>
|
||||
<div class="dropdown extra-menu">
|
||||
<a href="#" data-toggle="dropdown" class="dropdown-toggle">
|
||||
<i class="fa fa-chevron-down fa-lg"></i>
|
||||
</a>
|
||||
<?php echo $extraMenu; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<!--/ brand -->
|
||||
</div>
|
||||
<!--/ end: sidebar-header -->
|
||||
|
||||
<!-- start: sidebar-content -->
|
||||
<div class="sidebar-content">
|
||||
<!-- scroll-content -->
|
||||
<div class="scroll-content slimscroll">
|
||||
<!-- start: navigation -->
|
||||
<nav class="nav-sidebar">
|
||||
<?php echo $view['content']->getCustomContent('menu.above', $mauticTemplateVars); ?>
|
||||
<?php echo $view['menu']->render('main'); ?>
|
||||
|
||||
<!-- start: left nav -->
|
||||
<ul class="nav sidebar-left-dark">
|
||||
<li class="hidden-xs">
|
||||
<a href="javascript:void(0)" data-toggle="minimize" class="sidebar-minimizer"><span class="direction icon pull-left fa"></span><span class="nav-item-name pull-left text"><?php echo $view['translator']->trans('mautic.core.menu.left.collapse'); ?></span></a>
|
||||
</li>
|
||||
</ul>
|
||||
<!--/ end: left nav -->
|
||||
|
||||
</nav>
|
||||
<!--/ end: navigation -->
|
||||
</div>
|
||||
<!--/ scroll-content -->
|
||||
</div>
|
||||
<!--/ end: sidebar-content -->
|
|
@ -1,53 +0,0 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* @copyright 2014 Mautic Contributors. All rights reserved
|
||||
* @author Mautic
|
||||
*
|
||||
* @link http://mautic.org
|
||||
*
|
||||
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
|
||||
*/
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<title><?php echo $view['slots']->get('pageTitle', '{{company_name}}'); ?></title>
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<link rel="icon" type="image/x-icon" href="<?php echo $view['assets']->getUrl('media/images/favicon.ico') ?>" />
|
||||
<link rel="apple-touch-icon" href="<?php echo $view['assets']->getUrl('media/images/apple-touch-icon.png') ?>" />
|
||||
<?php $view['assets']->outputSystemStylesheets(); ?>
|
||||
<?php echo $view->render('MauticCoreBundle:Default:script.html.php'); ?>
|
||||
<?php $view['assets']->outputHeadDeclarations(); ?>
|
||||
</head>
|
||||
<body>
|
||||
<section id="main" role="main">
|
||||
<div class="container" style="margin-top:100px;">
|
||||
<div class="row">
|
||||
<div class="col-lg-4 col-lg-offset-4">
|
||||
<div class="panel" name="form-login">
|
||||
<div class="panel-body">
|
||||
<div class="mautic-logo img-circle mb-md text-center" style="width:{{login_logo_width}}px;">
|
||||
<img src="{{login_logo}}" style="width:{{login_logo_width}}px; margin:{{login_logo_margin_top}}px 0 {{login_logo_margin_bottom}}px 0;" />
|
||||
</div>
|
||||
<div id="main-panel-flash-msgs">
|
||||
<?php echo $view->render('MauticCoreBundle:Notification:flashes.html.php'); ?>
|
||||
</div>
|
||||
<?php $view['slots']->output('_content'); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-4 col-lg-offset-4 text-center text-muted">
|
||||
© <?php echo date('Y');?> {{company_name}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<?php echo $view['security']->getAuthenticationContent(); ?>
|
||||
</body>
|
||||
</html>
|