add missing files

This commit is contained in:
Daniel Seifert 2019-06-13 15:08:09 +02:00
parent bc6e302f81
commit 62c57e83e8
5 changed files with 602 additions and 0 deletions

View File

@ -0,0 +1,45 @@
---
title: Wartungstool
---
Die generierten Bilder müssen nach dem Setzen der Wasserzeicheneinstellungen neu aufbereitet werden. Ebenso ist die Aufbereitung nötig, wenn neue Artikel in den Shop eingepflegt wurden. Bestehen schon frühere Artikelbilder, müssen diese vorab gelöscht werden.
Das Löschen der Bilder kann direkt auf dem Server, im Adminbereich des Shops oder über das hier angesprochene Wartungstool erledigt werden.
Die Neugenerierung passiert regulär dann, wen das jeweilige Bild zum ersten Mal angefordert wird. Dies passiert im Normalfall durch die Shopbesucher. Somit ist eigentlich keine separate Vorarbeit nötig.
Da jedoch die Einarbeitung des Wasserzeichens etwas Leistung (und damit auch Zeit) benötigt, sollten die Bilder vorgeneriert werden, um die erstmalige Ladezeit des Shops nicht unnötig zu verlängern. Daher kann die Vorabgenerierung ebenfalls über das folgende Wartungstool ausgeführt wird.
Das moduleigene Wartungstool rufen Sie bitte über die Konsole Ihres Servers auf.
Führen Sie in der Konsole im Hauptverzeichnis Ihres Shops (oberhalb des `source`- und `vendor`-Verzeichnisses) diesen Befehl aus, um das Wartungstool zu starten:
```bash
./vendor/bin/d3watermark
```
Damit sehen Sie eine Übersicht über die verfügbaren Befehlsoptionen.
Folgende Aktionen stehen Ihnen zur Verfügung:
- delete: Löschen der generierten Bilder
- generate: Neugenerieren der Bilder
- renew: Löschen **und** Neugenerieren der Bilder
Diesen Aktionen ist noch die Angabe hinzuzufügen, welche Bilder damit bearbeitet werden sollen. Mögliche Optionen sind:
- product: alle Artikelbilder
- category: alle Kategoriebilder
- manufacturer: alle Markenbilder
- vendor: alle Lieferantenbilder
- wrapping: alle Verpackungsbilder
- all: alle Bilder der vorher genannten Objekte
Zum Neugenerieren aller Bilder sieht der Aufruf dann beispielsweise so aus:
```bash
./vendor/bin/d3watermark renew all
```
> [i] Beachten Sie, dass der Scriptaufruf mit dem Systembenutzer erfolgt, der die generierten Dateien auch löschen darf. Ändern Sie den Befehl bitte ansonsten entsprechend systemabhängig ab (`sudo -u www-data ./vendor/bin/d3watermark ...`). Beim Neugenerieren ist der verwendete Benutzer unrelevant.
> [i] Sollen diese Wartungsaufgaben automatisert (z.B. per Cronjob) ausgeführt werden, stehen Ihnen die Optionen `--no-color` und `--loglevel error` zur Verfügung, um unnötige Ausgaben zu vermeiden.

View File

@ -0,0 +1,141 @@
<!DOCTYPE html>
<html class="no-js" lang="de">
<head>
<title>Wartungstool - Wasserzeichen</title>
<meta name="description" content="">
<meta name="author" content="D³ Data Development">
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link rel="icon" href="../themes/d3/img/favicon.png" type="image/x-icon">
<!-- Mobile -->
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Font -->
<!-- CSS -->
<link href='../themes/d3/css/theme-blue.min.css' rel='stylesheet' type='text/css'><link href='../themes/d3/css/d3.css' rel='stylesheet' type='text/css'>
<!-- Tipue Search -->
<link href="../tipuesearch/tipuesearch.css" rel="stylesheet">
<!--[if lt IE 9]>
<script src="../themes/d3/js/html5shiv-3.7.3.min.js"></script>
<![endif]-->
</head>
<body class=" ">
<div class="Columns content">
<aside class="Columns__left Collapsible">
<button type="button" class="Button Collapsible__trigger">
<span class="Collapsible__trigger__bar"></span>
<span class="Collapsible__trigger__bar"></span>
<span class="Collapsible__trigger__bar"></span>
</button>
<a class="Brand" href="../index.html"><i class='fab fa-d3 d3fa-color-blue'></i> Wasserzeichen</a>
<div class="Search">
<svg class="Search__icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 451 451">
<path d="M447.05 428l-109.6-109.6c29.4-33.8 47.2-77.9 47.2-126.1C384.65 86.2 298.35 0 192.35 0 86.25 0 .05 86.3.05 192.3s86.3 192.3 192.3 192.3c48.2 0 92.3-17.8 126.1-47.2L428.05 447c2.6 2.6 6.1 4 9.5 4s6.9-1.3 9.5-4c5.2-5.2 5.2-13.8 0-19zM26.95 192.3c0-91.2 74.2-165.3 165.3-165.3 91.2 0 165.3 74.2 165.3 165.3s-74.1 165.4-165.3 165.4c-91.1 0-165.3-74.2-165.3-165.4z"/>
</svg>
<input type="search" id="tipue_search_input" class="Search__field" placeholder="Suchen..." autocomplete="on"
results=25 autosave=text_search>
</div>
<div class="Collapsible__content">
<!-- Navigation -->
<ul class='Nav'><li class='Nav__item Nav__item--active'><a href="../manual/Wartungstool.html">Wartungstool</a></li></ul>
<div class="Links">
<hr/>
<a href="https://www.oxidmodule.com" target="_blank">Shop</a><br />
<a href="https://blog.oxidmodule.com" target="_blank">Blog</a><br />
<a href="https://faq.oxidmodule.com" target="_blank">FAQ</a><br />
<a href="https://docs.oxidmodule.com" target="_blank">Dokumentationen</a><br />
<a href="https://support.oxidmodule.com" target="_blank">D³ Support Center</a><br />
<a href="https://www.oxidmodule.com/kontakt" target="_blank">Kontakt</a><br />
<a href="https://www.oxidmodule.com/impressum" target="_blank">Impressum</a><br />
</div>
</div>
</aside>
<div class="Columns__right Columns__right--full">
<div class="Columns__right__content">
<div class="doc_content">
<article class="Page">
<div class="Page__header">
<h1><a href="../manual/Wartungstool.html">Wartungstool</a></h1>
<span class="ModifiedDate">
07.06.2019 </span>
</div>
<div class="s-content">
<p>Die generierten Bilder müssen nach dem Setzen der Wasserzeicheneinstellungen neu aufbereitet werden. Ebenso ist die Aufbereitung nötig, wenn neue Artikel in den Shop eingepflegt wurden. Bestehen schon frühere Artikelbilder, müssen diese vorab gelöscht werden.</p>
<p>Das Löschen der Bilder kann direkt auf dem Server, im Adminbereich des Shops oder über das hier angesprochene Wartungstool erledigt werden.</p>
<p>Die Neugenerierung passiert regulär dann, wen das jeweilige Bild zum ersten Mal angefordert wird. Dies passiert im Normalfall durch die Shopbesucher. Somit ist eigentlich keine separate Vorarbeit nötig.</p>
<p>Da jedoch die Einarbeitung des Wasserzeichens etwas Leistung (und damit auch Zeit) benötigt, sollten die Bilder vorgeneriert werden, um die erstmalige Ladezeit des Shops nicht unnötig zu verlängern. Daher kann die Vorabgenerierung ebenfalls über das folgende Wartungstool ausgeführt wird.</p>
<p>Das moduleigene Wartungstool rufen Sie bitte über die Konsole Ihres Servers auf.
Führen Sie in der Konsole im Hauptverzeichnis Ihres Shops (oberhalb des <code>source</code>- und <code>vendor</code>-Verzeichnisses) diesen Befehl aus, um das Wartungstool zu starten:</p>
<pre><code class="language-bash">./vendor/bin/d3watermark
</code></pre>
<p>Damit sehen Sie eine Übersicht über die verfügbaren Befehlsoptionen.</p>
<p>Folgende Aktionen stehen Ihnen zur Verfügung:</p>
<ul>
<li>delete: Löschen der generierten Bilder</li>
<li>generate: Neugenerieren der Bilder</li>
<li>renew: Löschen <strong>und</strong> Neugenerieren der Bilder</li>
</ul>
<p>Diesen Aktionen ist noch die Angabe hinzuzufügen, welche Bilder damit bearbeitet werden sollen. Mögliche Optionen sind:</p>
<ul>
<li>product: alle Artikelbilder</li>
<li>category: alle Kategoriebilder</li>
<li>manufacturer: alle Markenbilder</li>
<li>vendor: alle Lieferantenbilder</li>
<li>wrapping: alle Verpackungsbilder</li>
<li>all: alle Bilder der vorher genannten Objekte</li>
</ul>
<p>Zum Neugenerieren aller Bilder sieht der Aufruf dann beispielsweise so aus:</p>
<pre><code class="language-bash">./vendor/bin/d3watermark renew all
</code></pre>
<blockquote class="alert alert-info">
<i class='fas fa-info-circle'></i> <p> Beachten Sie, dass der Scriptaufruf mit dem Systembenutzer erfolgt, der die generierten Dateien auch löschen darf. Ändern Sie den Befehl bitte ansonsten entsprechend systemabhängig ab (<code>sudo -u www-data ./vendor/bin/d3watermark ...</code>). Beim Neugenerieren ist der verwendete Benutzer unrelevant.</p>
</blockquote>
<blockquote class="alert alert-info">
<i class='fas fa-info-circle'></i> <p> Sollen diese Wartungsaufgaben automatisert (z.B. per Cronjob) ausgeführt werden, stehen Ihnen die Optionen <code>--no-color</code> und <code>--loglevel error</code> zur Verfügung, um unnötige Ausgaben zu vermeiden.</p>
</blockquote>
</div>
<nav>
<ul class="Pager">
<li class=Pager--prev><a href="../installation/Deinstallation/TMP-Ordner_leeren.html">Zurück</a></li> <li class=Pager--next><a href="../support/Hilfe-und-Support.html">Weiter</a></li> </ul>
</nav>
</article>
</div>
</div>
</div>
</div>
<!-- JS -->
<script src="../themes/d3/js/jquery-1.11.3.min.js"></script><script src="../themes/d3/js/highlight.pack.js"></script><script src="../themes/d3/js/daux.js"></script><script src="../themes/d3/js/fontawesome-all.js"></script>
<!-- Tipue Search -->
<script type="text/javascript" src="../tipuesearch/tipuesearch.js"></script>
<script>
window.onunload = function(){}; // force $(document).ready to be called on back/forward navigation in firefox
$(function() {
tipuesearch({
'base_url': '../'
});
});
</script>
</body>
</html>

View File

@ -0,0 +1,194 @@
<?php //006ed
// This Software is the property of D³ Data Development and is protected by copyright law - it is NOT Freeware. Any unauthorized use of this software without a valid license key is a violation of the license agreement and will be prosecuted by civil and criminal law. Inhaber: Thomas Dartsch Alle Rechte vorbehalten @package Wasserzeichen @version 3.1.0.0 PHP71 (07.06.2019) @author Daniel Seifert support@shopmodule.com @copyright (C) 2019, D3 Data Development @see http://www.shopmodule.com
if(!extension_loaded('ionCube Loader')){$__oc=strtolower(substr(php_uname(),0,3));$__ln='ioncube_loader_'.$__oc.'_'.substr(phpversion(),0,3).(($__oc=='win')?'.dll':'.so');if(function_exists('dl')){@dl($__ln);}if(function_exists('_il_exec')){return _il_exec();}$__ln='/ioncube/'.$__ln;$__oid=$__id=realpath(ini_get('extension_dir'));$__here=dirname(__FILE__);if(strlen($__id)>1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo("Site error: the ".(php_sapi_name()=='cli'?'ionCube':'<a href="http://www.ioncube.com">ionCube</a>')." PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking.\n\nPlease visit ".(php_sapi_name()=='cli'?'get-loader.ioncube.com':'<a href="http://get-loader.ioncube.com">get-loader.ioncube.com</a>')." for install assistance.\n\n");exit(199);
?>
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

211
src/bin/d3watermark Normal file
View File

@ -0,0 +1,211 @@
#!/usr/bin/env php
<?php
/**
* This Software is the property of Data Development and is protected
* by copyright law - it is NOT Freeware.
*
* Any unauthorized use of this software without a valid license
* is a violation of the license agreement and will be prosecuted by
* civil and criminal law.
*
* http://www.shopmodule.com
*
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Daniel Seifert <support@shopmodule.com>
* @link http://www.oxidmodule.com
*/
namespace D3\Watermark;
use D3\ModCfg\Application\Model\Exception\d3_cfg_mod_exception;
use D3\ModCfg\Application\Model\Exception\d3ShopCompatibilityAdapterException;
use D3\ModCfg\Application\Model\Maintenance\d3clrtmp;
use D3\Watermark\Models\d3watermarkImageGenerator;
use Dariuszp\CliProgressBar;
use Doctrine\DBAL\DBALException;
use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException;
use OxidEsales\Eshop\Core\Exception\DatabaseErrorException;
use OxidEsales\Eshop\Core\Exception\StandardException;
use OxidEsales\Eshop\Core\Module\Module;
use splitbrain\phpcli\CLI;
use splitbrain\phpcli\Options;
$bootstrapFileName = getenv('ESHOP_BOOTSTRAP_PATH');
if (!empty($bootstrapFileName)) {
$bootstrapFileName = realpath(trim(getenv('ESHOP_BOOTSTRAP_PATH')));
} else {
$count = 0;
$bootstrapFileName = '../../../../../source/bootstrap.php';
$currentDirectory = __DIR__ . '/';
while ($count < 5) {
$count++;
if (file_exists($currentDirectory . $bootstrapFileName)) {
$bootstrapFileName = $currentDirectory . $bootstrapFileName;
break;
}
$bootstrapFileName = '../' . $bootstrapFileName;
}
}
if (!(file_exists($bootstrapFileName) && !is_dir($bootstrapFileName))) {
$items = [
"Unable to find eShop bootstrap.php file.",
"You can override the path by using ESHOP_BOOTSTRAP_PATH environment variable.",
"\n"
];
$message = implode(" ", $items);
die($message);
}
require_once($bootstrapFileName);
ini_set('error_reporting', E_ERROR);
class d3watermark extends CLI
{
// register options and arguments
protected function setup(Options $options)
{
$options->setHelp('Provides maintenance functions for article images');
$options->registerCommand('delete', 'delete generated object images');
$options->registerCommand('generate', 'call object images to start generation of not existing one');
$options->registerCommand('renew', 'renew object images');
$options->registerOption('version', 'print version', 'v');
$options->registerArgument('types', 'affected image types - possible types are: '.d3watermarkImageGenerator::ALL.', '.d3watermarkImageGenerator::PRODUCT.', '.d3watermarkImageGenerator::CATEGORY.', '.d3watermarkImageGenerator::MANUFACTURER.', '.d3watermarkImageGenerator::VENDOR.', '.d3watermarkImageGenerator::WRAPPING, false);
}
/**
* @param Options $options
*
* @throws DBALException
* @throws DatabaseConnectionException
* @throws DatabaseErrorException
* @throws StandardException
* @throws d3ShopCompatibilityAdapterException
* @throws d3_cfg_mod_exception
*/
protected function main(Options $options)
{
if ($options->getOpt('version')) {
$oModule = oxNew(Module::class);
$oModule->load('d3_watermark');
$this->info($oModule->getModuleData()['version']);
}
switch ($options->getCmd()) {
case 'delete':
$this->startDeleting($options);
break;
case 'generate':
$this->startGenerating($options);
break;
case 'renew':
$this->startDeleting($options);
$this->startGenerating($options);
break;
default:
echo $options->help();
}
}
/**
* @param Options $options
*
* @throws DBALException
* @throws d3ShopCompatibilityAdapterException
* @throws d3_cfg_mod_exception
* @throws DatabaseConnectionException
* @throws DatabaseErrorException
* @throws StandardException
*/
public function startDeleting(Options $options)
{
/** @var $oClrTmp d3clrtmp */
$oClrTmp = oxNew(d3clrtmp::class);
switch (trim(strtolower($options->getArgs()[0]))) {
case d3watermarkImageGenerator::PRODUCT:
$oClrTmp->clearGeneratedProductImgs();
$this->info('generated product images are deleted');
break;
case d3watermarkImageGenerator::CATEGORY:
$oClrTmp->clearGeneratedCategoryImgs();
$this->info('generated category images are deleted');
break;
case d3watermarkImageGenerator::MANUFACTURER:
$oClrTmp->clearGeneratedManufacturerImgs();
$this->info('generated manufacturer images are deleted');
break;
case d3watermarkImageGenerator::VENDOR:
$oClrTmp->clearGeneratedVendorImgs();
$this->info('generated vendor images are deleted');
break;
case d3watermarkImageGenerator::WRAPPING:
$oClrTmp->clearGeneratedWrappingImgs();
$this->info('generated wrapping images are deleted');
break;
case d3watermarkImageGenerator::ALL:
$oClrTmp->clearGeneratedAllImgs();
$this->info('all generated images are deleted');
break;
default:
$this->error('no valid image type specified, check argument "type"');
};
}
/**
* @param Options $options
*
* @throws DBALException
*/
public function startGenerating(Options $options)
{
switch (trim(strtolower($options->getArgs()[0]))) {
case d3watermarkImageGenerator::PRODUCT:
case d3watermarkImageGenerator::CATEGORY:
case d3watermarkImageGenerator::MANUFACTURER:
case d3watermarkImageGenerator::VENDOR:
case d3watermarkImageGenerator::WRAPPING:
case d3watermarkImageGenerator::ALL:
$oWMImageGenerator = oxNew( d3watermarkImageGenerator::class, $options->getArgs()[0] );
$blBar = $this->canShowProgressBar( $options );
if ( $blBar ) {
$bar = new CliProgressBar( $oWMImageGenerator->getImagesListCount(), 0, "processing:" );
$bar->display();
}
for ( $i = 0; $i < $oWMImageGenerator->getImagesListCount(); $i ++ ) {
if ( $blBar ) {
$bar->progress( 1 );
}
$oWMImageGenerator->generateProductImagesRange( $i );
}
if ( $blBar ) {
$bar->end();
}
break;
default:
$this->error( 'no valid image type specified, check argument "type"' );
}
}
public function canShowProgressBar(Options $options)
{
return in_array(
strtolower($options->getOpt('loglevel')),
[
'',
'info',
'debug'
]
);
}
}
$cli = new d3watermark();
$cli->run();

11
src/public/.htaccess Normal file
View File

@ -0,0 +1,11 @@
<FilesMatch ".*">
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
order deny,allow
allow from all
</IfModule>
</FilesMatch>