add qr-codes, share button, and pwa config toggle
This commit is contained in:
@ -19,6 +19,15 @@ use TheTempusProject\Houdini\Classes\Components;
|
||||
use TheTempusProject\Bedrock\Classes\Config;
|
||||
use TheTempusProject\Bedrock\Functions\Input;
|
||||
use TheTempusProject\TheTempusProject as App;
|
||||
use Endroid\QrCode\Builder\Builder;
|
||||
use Endroid\QrCode\Encoding\Encoding;
|
||||
use Endroid\QrCode\ErrorCorrectionLevel;
|
||||
use Endroid\QrCode\Label\LabelAlignment;
|
||||
use Endroid\QrCode\Label\Font\OpenSans;
|
||||
use Endroid\QrCode\RoundBlockSizeMode;
|
||||
use Endroid\QrCode\Writer\PngWriter;
|
||||
use TheTempusProject\Hermes\Functions\Route as Routes;
|
||||
use TheTempusProject\Canary\Bin\Canary as Debug;
|
||||
|
||||
class DefaultLoader extends Loader {
|
||||
private static $loaded = false;
|
||||
@ -41,12 +50,61 @@ class DefaultLoader extends Loader {
|
||||
}
|
||||
$this->addJs( '<script language="JavaScript" crossorigin="anonymous" type="text/javascript" src="{ROOT_URL}app/js/main.js"></script>' );
|
||||
Components::setIfNull( 'LOGO', Config::getValue( 'main/logo' ) ?? TP_DEFAULT_LOGO );
|
||||
|
||||
if ( ! empty( Config::getValue( 'share/enabled' ) ) ) {
|
||||
$currentUrl = Routes::getAddress() . Input::get( 'url' );
|
||||
$folder = IMAGE_DIRECTORY . 'qr-codes' . DIRECTORY_SEPARATOR ;
|
||||
$filename = md5( $currentUrl ) . '.png';
|
||||
|
||||
if ( ! file_exists( $folder ) ) {
|
||||
Debug::Info( 'Creating Directory because it does not exist' );
|
||||
mkdir( $folder, 0777, true );
|
||||
}
|
||||
if ( ! empty( Config::getValue( 'share/qr' ) ) ) {
|
||||
if ( ! file_exists( $folder . $filename ) ) {
|
||||
Debug::Info( 'Creating qr-image because it does not exist' );
|
||||
$builder = new Builder(
|
||||
writer: new PngWriter(),
|
||||
writerOptions: [],
|
||||
validateResult: false,
|
||||
data: Routes::getAddress() . Input::get( 'url' ),
|
||||
encoding: new Encoding('UTF-8'),
|
||||
errorCorrectionLevel: ErrorCorrectionLevel::High,
|
||||
size: 200,
|
||||
margin: 10,
|
||||
roundBlockSizeMode: RoundBlockSizeMode::Margin,
|
||||
logoPath: APP_ROOT_DIRECTORY . DIRECTORY_SEPARATOR . Config::getValue( 'main/logo' ),
|
||||
logoResizeToWidth: 30,
|
||||
logoPunchoutBackground: true,
|
||||
labelText: Config::getValue( 'main/name' ),
|
||||
labelFont: new OpenSans(14),
|
||||
labelAlignment: LabelAlignment::Center
|
||||
);
|
||||
$result = $builder->build();
|
||||
$result->saveToFile( $folder . $filename );
|
||||
}
|
||||
Components::set( 'QR_CODE','<img src="{ROOT_URL}images/qr-codes/' . $filename . '" alt="QR Code" class="img-fluid mb-2">' );
|
||||
} else {
|
||||
Components::setIfNull( 'QR_CODE', '' );
|
||||
}
|
||||
Components::setIfNull( 'SHARE_IMAGE', Views::simpleView( 'footer.share' ) );
|
||||
} else {
|
||||
Components::setIfNull( 'SHARE_IMAGE', '' );
|
||||
}
|
||||
|
||||
if ( ! empty( Config::getValue( 'main/pwa' ) ) ) {
|
||||
Components::setIfNull( 'PWA', Views::simpleView( 'pwa') );
|
||||
} else {
|
||||
Components::setIfNull( 'PWA', '' );
|
||||
}
|
||||
|
||||
Components::setIfNull( 'COPY', Views::simpleView( 'footer.copy') );
|
||||
Components::setIfNull( 'SOCIAL', Views::simpleView( 'footer.social') );
|
||||
Components::prepend( 'FOOTER_LEFT', Views::simpleView( 'footer.left', Navigation::getMenuLinks( App::CONTACT_FOOTER_MENU_NAME ) ) );
|
||||
Components::prepend( 'FOOTER_CENTER', Views::simpleView( 'footer.center', Navigation::getMenuLinks( App::INFO_FOOTER_MENU_NAME ) ) );
|
||||
Components::prepend( 'FOOTER_RIGHT', Views::simpleView( 'footer.right') );
|
||||
Components::setIfNull( 'FOOT', Views::simpleView( 'footer.container') );
|
||||
|
||||
/**
|
||||
* Top-Nav
|
||||
*/
|
||||
|
@ -91,6 +91,7 @@
|
||||
</div>
|
||||
</div>
|
||||
{/ISSUES}
|
||||
{PWA}
|
||||
<!-- Main Page Content -->
|
||||
{CONTENT}
|
||||
</div>
|
||||
|
Reference in New Issue
Block a user