diff --git a/.docker/docker-compose/docker-compose.local.yml b/.docker/docker-compose/docker-compose.local.yml index 8333fed98..1e0ceea7f 100644 --- a/.docker/docker-compose/docker-compose.local.yml +++ b/.docker/docker-compose/docker-compose.local.yml @@ -76,6 +76,16 @@ services: - ServerOptions__HostName=smtp4dev networks: - network + webhook: + image: ghcr.io/tarampampam/webhook-tester:2 + restart: always + environment: + - AUTO_CREATE_SESSIONS=true + ports: + # Change the number before : to the port the IMAP server should be accessible on + - '5002:8080' + networks: + - network application: image: ${DOCKER_REGISTRY?}/${DOCKER_NAMESPACE?}/application-${ENV?}:${TAG?} build: diff --git a/.docker/images/nginx/conf.d/default.conf b/.docker/images/nginx/conf.d/default.conf index efe60946b..a136cb17b 100644 --- a/.docker/images/nginx/conf.d/default.conf +++ b/.docker/images/nginx/conf.d/default.conf @@ -57,6 +57,7 @@ server { rewrite ^(.*) /index.php last; } + location /apps/ { # Static files client_max_body_size 1024M; root $frontRoot; diff --git a/src/new/.twig-cs-fixer.cache b/src/new/.twig-cs-fixer.cache new file mode 100644 index 000000000..27ca6927b --- /dev/null +++ b/src/new/.twig-cs-fixer.cache @@ -0,0 +1 @@ +{"php_version":"8.3.6","fixer_version":"0ab7a8154f7b3a6a42cbe3a467074a47bc32dcf5","rules":{"TwigCsFixer\\Rules\\Delimiter\\DelimiterSpacingRule":{"skipIfNewLine":true},"TwigCsFixer\\Rules\\Function\\NamedArgumentSeparatorRule":null,"TwigCsFixer\\Rules\\Function\\NamedArgumentSpacingRule":null,"TwigCsFixer\\Rules\\Operator\\OperatorNameSpacingRule":null,"TwigCsFixer\\Rules\\Operator\\OperatorSpacingRule":null,"TwigCsFixer\\Rules\\Punctuation\\PunctuationSpacingRule":{"before":{")":0,"]":0,"}":0,":":0,".":0,",":0,"|":0,"?:":0},"after":{"(":0,"[":0,"{":0,".":0,"|":0,":":1,",":1,"?:":1}},"TwigCsFixer\\Rules\\Whitespace\\BlankEOFRule":null,"TwigCsFixer\\Rules\\Delimiter\\BlockNameSpacingRule":null,"TwigCsFixer\\Rules\\Whitespace\\EmptyLinesRule":null,"TwigCsFixer\\Rules\\String\\HashQuoteRule":{"useQuote":false},"TwigCsFixer\\Rules\\Function\\IncludeFunctionRule":null,"TwigCsFixer\\Rules\\Whitespace\\IndentRule":{"spaceRatio":4,"useTab":false},"TwigCsFixer\\Rules\\String\\SingleQuoteRule":{"skipStringContainingSingleQuote":true},"TwigCsFixer\\Rules\\Punctuation\\TrailingCommaMultiLineRule":{"comma":true},"TwigCsFixer\\Rules\\Punctuation\\TrailingCommaSingleLineRule":null,"TwigCsFixer\\Rules\\Whitespace\\TrailingSpaceRule":null},"hashes":{"src\/PSC\/Shop\/NewsBundle\/Resources\/views\/backend\/edit\/edit.html.twig":"5882ade1b4ccd43b9484902acd74352f"}} \ No newline at end of file diff --git a/src/new/assets/backend/dashboard/dashboard.js b/src/new/assets/backend/dashboard/dashboard.js index 1b192c9ce..ae4a614db 100755 --- a/src/new/assets/backend/dashboard/dashboard.js +++ b/src/new/assets/backend/dashboard/dashboard.js @@ -34,7 +34,7 @@ window.psc = {}; window.psc.ajaxModal = new ajaxModal; window.psc.mediaChooser = new mediaChooser; window.psc.init = init; -//window.psc.order = new order; +window.psc.order = new order; window.psc.product = new product; window.psc.init(); @@ -43,8 +43,22 @@ window.psc.init(); import 'bootstrap/dist/css/bootstrap.min.css'; import './less/base.scss'; import 'summernote/dist/summernote-lite.min.css'; +import TomSelect from 'tom-select'; +import '../../vendor/tom-select/dist/css/tom-select.bootstrap5.css'; -$(function() { +window.addEventListener('load', (event) => { + + document.querySelectorAll('select[multiple]').forEach((el)=>{ + let settings = { + plugins: { + dropdown_input: {}, + remove_button:{ + title:'Remove this item', + } + } + }; + new TomSelect(el,settings); + }); $('[data-bs-toggle="tooltip"]').click(function(el) { bs5Utils.Toast.show({ diff --git a/src/new/assets/backend/dashboard/js/init.js b/src/new/assets/backend/dashboard/js/init.js index 5c5a4a5b3..bf8ca5da8 100644 --- a/src/new/assets/backend/dashboard/js/init.js +++ b/src/new/assets/backend/dashboard/js/init.js @@ -1,7 +1,7 @@ export function init() { window.psc.ajaxModal.init(); psc.mediaChooser.init(); -// psc.order.init(); + psc.order.init(); psc.product.init(); if (typeof bootstrapApp === 'function') { bootstrapApp(); diff --git a/src/new/assets/backend/dashboard/js/order.js b/src/new/assets/backend/dashboard/js/order.js index 95700dffc..59d58f993 100755 --- a/src/new/assets/backend/dashboard/js/order.js +++ b/src/new/assets/backend/dashboard/js/order.js @@ -55,7 +55,6 @@ const Order_List_Pos_Calc_Option = (elm) => ` export class order { init() { - this.load_status(); this.bind_buttons(); } diff --git a/src/new/assets/backend/dashboard/less/base.scss b/src/new/assets/backend/dashboard/less/base.scss index c5e73050d..0bd5f2706 100644 --- a/src/new/assets/backend/dashboard/less/base.scss +++ b/src/new/assets/backend/dashboard/less/base.scss @@ -276,4 +276,4 @@ body > header > .header { color:white !important; } -@import "toogle/toogle.less"; +@import "toogle/toogle.scss"; diff --git a/src/new/assets/controllers.json b/src/new/assets/controllers.json index c05810a36..b3e65cf75 100755 --- a/src/new/assets/controllers.json +++ b/src/new/assets/controllers.json @@ -5,9 +5,9 @@ "enabled": true, "fetch": "eager", "autoimport": { - "tom-select/dist/css/tom-select.default.css": true, + "tom-select/dist/css/tom-select.default.css": false, "tom-select/dist/css/tom-select.bootstrap4.css": false, - "tom-select/dist/css/tom-select.bootstrap5.css": true + "tom-select/dist/css/tom-select.bootstrap5.css": false } } }, diff --git a/src/new/assets/controllers/ckeditor5_controller.js b/src/new/assets/controllers/ckeditor5_controller.js new file mode 100644 index 000000000..38c8cb982 --- /dev/null +++ b/src/new/assets/controllers/ckeditor5_controller.js @@ -0,0 +1,15 @@ +import { Controller } from '@hotwired/stimulus'; +import EnhancedEditor from '../lib/ckeditor.js'; + +/* stimulusFetch: 'lazy' */ +export default class extends Controller { + connect() { + this.editor = EnhancedEditor.create(this.element) + .then(editor => (this.editor = editor)) + .catch(error => console.error(error)); + } + + disconnect() { + this.editor.destroy().catch(error => console.error(error)); + } +} diff --git a/src/new/assets/lib/ckeditor.js b/src/new/assets/lib/ckeditor.js new file mode 100644 index 000000000..eed6a0baf --- /dev/null +++ b/src/new/assets/lib/ckeditor.js @@ -0,0 +1,107 @@ +import { + Autoformat, + BlockQuote, + Bold, + Essentials, + Heading, + Image, + ImageCaption, + ImageStyle, + ImageToolbar, + ImageUpload, + ImageInsertUI, + Indent, + Italic, + Link, + List, + MediaEmbed, + Paragraph, + PasteFromOffice, + PictureEditing, + Table, + TableToolbar, + TextTransformation, + ClassicEditor +} from 'ckeditor5'; +// If you need to import translations, here French translations +import coreTranslations from 'ckeditor5/translations/de.js'; +import 'ckeditor5/dist/ckeditor5.min.css'; +import Flmngr from "./flmngr/src/flmngr.js"; + +export default class EnhancedEditor extends ClassicEditor {} + +EnhancedEditor.builtinPlugins = [Autoformat, Bold, Essentials, Italic, Link, Paragraph]; + +EnhancedEditor.defaultConfig = { + licenseKey: 'GPL', + plugins: [ + Essentials, + Autoformat, + Bold, + Italic, + BlockQuote, + Heading, + Image, + ImageCaption, + ImageStyle, + ImageToolbar, + ImageUpload, + ImageInsertUI, + Indent, + Link, + List, + MediaEmbed, + Paragraph, + PasteFromOffice, + PictureEditing, + Table, + TableToolbar, + TextTransformation, + Flmngr, + ], + toolbar: { + items: [ + 'heading', + '|', + 'bold', + 'italic', + 'link', + 'bulletedList', + 'numberedList', + '|', + 'outdent', + 'indent', + '|', + 'uploadImage', + 'blockQuote', + 'insertTable', + 'mediaEmbed', + 'undo', + 'redo', + '|', + 'upload', + 'flmngr', + ] + }, + image: { + toolbar: [ + 'imageStyle:inline', + 'imageStyle:block', + 'imageStyle:side', + '|', + 'toggleImageCaption', + 'imageTextAlternative', + '|', + 'upload', + 'flmngr', + ] + }, + table: { + contentToolbar: [ + 'tableColumn', + 'tableRow', + 'mergeTableCells' + ] + }, + translations: [coreTranslations], +}; diff --git a/src/new/assets/lib/flmngr/icons/flmngr.svg b/src/new/assets/lib/flmngr/icons/flmngr.svg new file mode 100644 index 000000000..a80c847d2 --- /dev/null +++ b/src/new/assets/lib/flmngr/icons/flmngr.svg @@ -0,0 +1,22 @@ + + + + + + diff --git a/src/new/assets/lib/flmngr/icons/imgpen.svg b/src/new/assets/lib/flmngr/icons/imgpen.svg new file mode 100644 index 000000000..bf31762e8 --- /dev/null +++ b/src/new/assets/lib/flmngr/icons/imgpen.svg @@ -0,0 +1,31 @@ + + + + + + + diff --git a/src/new/assets/lib/flmngr/icons/upload.svg b/src/new/assets/lib/flmngr/icons/upload.svg new file mode 100644 index 000000000..244f4fffe --- /dev/null +++ b/src/new/assets/lib/flmngr/icons/upload.svg @@ -0,0 +1,25 @@ + + + + + + diff --git a/src/new/assets/lib/flmngr/src/cookie.js b/src/new/assets/lib/flmngr/src/cookie.js new file mode 100644 index 000000000..61d919094 --- /dev/null +++ b/src/new/assets/lib/flmngr/src/cookie.js @@ -0,0 +1,158 @@ +;(function (factory) { + var registeredInModuleLoader = false; + if (typeof define === 'function' && define.amd) { + define(factory); + registeredInModuleLoader = true; + } + if (typeof exports === 'object') { + module.exports = factory(); + registeredInModuleLoader = true; + } + if (!registeredInModuleLoader) { + var OldCookies = window.Cookies; + var api = window.Cookies = factory(); + api.noConflict = function () { + window.Cookies = OldCookies; + return api; + }; + } +}(function () { + function extend () { + var i = 0; + var result = {}; + for (; i < arguments.length; i++) { + var attributes = arguments[ i ]; + for (var key in attributes) { + result[key] = attributes[key]; + } + } + return result; + } + + function init (converter) { + function api (key, value, attributes) { + var result; + if (typeof document === 'undefined') { + return; + } + + // Write + + if (arguments.length > 1) { + attributes = extend({ + path: '/' + }, api.defaults, attributes); + + if (typeof attributes.expires === 'number') { + var expires = new Date(); + expires.setMilliseconds(expires.getMilliseconds() + attributes.expires * 864e+5); + attributes.expires = expires; + } + + // We're using "expires" because "max-age" is not supported by IE + attributes.expires = attributes.expires ? attributes.expires.toUTCString() : ''; + + try { + result = JSON.stringify(value); + if (/^[\{\[]/.test(result)) { + value = result; + } + } catch (e) {} + + if (!converter.write) { + value = encodeURIComponent(String(value)) + .replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent); + } else { + value = converter.write(value, key); + } + + key = encodeURIComponent(String(key)); + key = key.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent); + key = key.replace(/[\(\)]/g, escape); + + var stringifiedAttributes = ''; + + for (var attributeName in attributes) { + if (!attributes[attributeName]) { + continue; + } + stringifiedAttributes += '; ' + attributeName; + if (attributes[attributeName] === true) { + continue; + } + stringifiedAttributes += '=' + attributes[attributeName]; + } + return (document.cookie = key + '=' + value + stringifiedAttributes); + } + + // Read + + if (!key) { + result = {}; + } + + // To prevent the for loop in the first place assign an empty array + // in case there are no cookies at all. Also prevents odd result when + // calling "get()" + var cookies = document.cookie ? document.cookie.split('; ') : []; + var rdecode = /(%[0-9A-Z]{2})+/g; + var i = 0; + + for (; i < cookies.length; i++) { + var parts = cookies[i].split('='); + var cookie = parts.slice(1).join('='); + + if (!this.json && cookie.charAt(0) === '"') { + cookie = cookie.slice(1, -1); + } + + try { + var name = parts[0].replace(rdecode, decodeURIComponent); + cookie = converter.read ? + converter.read(cookie, name) : converter(cookie, name) || + cookie.replace(rdecode, decodeURIComponent); + + if (this.json) { + try { + cookie = JSON.parse(cookie); + } catch (e) {} + } + + if (key === name) { + result = cookie; + break; + } + + if (!key) { + result[name] = cookie; + } + } catch (e) {} + } + + return result; + } + + api.set = api; + api.get = function (key) { + return api.call(api, key); + }; + api.getJSON = function () { + return api.apply({ + json: true + }, [].slice.call(arguments)); + }; + api.defaults = {}; + + api.remove = function (key, attributes) { + api(key, '', extend(attributes, { + expires: -1 + })); + }; + + api.withConverter = init; + + return api; + } + + return init(function () {}); +})); diff --git a/src/new/assets/lib/flmngr/src/flmngr.js b/src/new/assets/lib/flmngr/src/flmngr.js new file mode 100644 index 000000000..a95d22b45 --- /dev/null +++ b/src/new/assets/lib/flmngr/src/flmngr.js @@ -0,0 +1,160 @@ +import { Plugin, Notification, ButtonView } from 'ckeditor5'; +import * as Cookies from "./cookie.js"; + +//import UploadIcon from "../icons/upload.svg"; +import FlmngrCommand from "./flmngrcommand.js"; +import UploadCommand from "./uploadcommand.js"; + +export default class Flmngr extends Plugin { + + listenersFlmngrIsReady = []; + + static get pluginName() { + return 'Flmngr'; + } + + static get requires() { + return [ + Notification, + //'Image', + + // Default Drupal 9 CKEditor 5 will fail to attach Flmngr if these lines are not commented + // due to Link/LinkEditing plugins are not enabled until user adds Link button onto toolbar. + // So these two plugins are optional dependency for Flmngr, it can work without them. + // + // 'Link', + // 'LinkEditing', + ]; + } + + setFlmngr(flmngr) { + const options = this.editor.config.get('flmngr') || this.editor.config.get('Flmngr') || {}; + options.integration = options["integration"] || "ckeditor5"; + options.integrationType = "flmngr"; + let flmngrInstance = flmngr.create(options); + FlmngrCommand.flmngr = flmngrInstance; + + let apiLegacy = flmngrInstance; // flmngr + // New API exists only in Flmngr v2 + let apiNew = !!apiLegacy.getNewAPI && apiLegacy.getNewAPI(); // Flmngr but without isFlmngrReady & isImgPenReady + this.editor["getFlmngr"] = (onFlmngrIsReady) => { + onFlmngrIsReady(apiNew, apiLegacy); // new way to receive Flmngr + return apiLegacy; // old way to receive Flmngr + }; + // Call all previous listeners + for (const l of this.listenersFlmngrIsReady) + l(apiNew, apiLegacy); + + window.FlmngrCKEditor5 = flmngrInstance.getNewAPI(); + } + + init() { + + this.editor["getFlmngr"] = (onFlmngrIsReady) => { + !!onFlmngrIsReady && this.listenersFlmngrIsReady.push(onFlmngrIsReady); // a new way to receive Flmngr + return null; // an old way to receive Flmngr, but it is not loaded yet, 'getFlmngr' will be overridden later to return existing values + }; + + // Include Flmngr JS lib into the document if it was not added by 3rd party code + const apiKey = this.editor.config.get('apiKey') || this.editor.config.get('flmngr.apiKey') || this.editor.config.get('Flmngr.apiKey') || 'FLMNFLMN'; + if (window.flmngr) { + // Already loaded by another instance or by using flmngr.js manually + this.setFlmngr(window.flmngr); + } else { + // We will load it and wait + if (!window.onFlmngrAndImgPenLoadedArray) + window.onFlmngrAndImgPenLoadedArray = []; + window.onFlmngrAndImgPenLoadedArray.push(() => { + this.setFlmngr(window.flmngr); + }); + + let delay = this.editor.config.get('libLoadDelay') || this.editor.config.get('flmngr.libLoadDelay') || this.editor.config.get('Flmngr.libLoadDelay'); + if (!delay || parseInt(delay) != delay) + delay = 1; + setTimeout(() => { + +// let host = "http" + (Cookies.get("N1ED_HTTPS") === "false" ? "" : "s") + "://" + (!!Cookies.get("N1ED_PREFIX") ? (Cookies.get("N1ED_PREFIX") + ".") : "") + "cloud.n1ed.com"; + +// Flmngr.includeJS(host + "/v/latest/sdk/flmngr.js?apiKey=" + apiKey); +// Flmngr.includeJS(host + "/v/latest/sdk/imgpen.js?apiKey=" + apiKey); + }, delay); + } + + /*if ( !this.editor.plugins.has( 'ImageBlockEditing' ) && !this.editor.plugins.has( 'ImageInlineEditing' ) ) { + throw new CKEditorError( 'flmngr-missing-image-plugin', this.editor ); + }*/ + + // Add the commands + this.editor.commands.add( 'upload', new UploadCommand( this.editor ) ); + this.editor.commands.add( 'flmngr', new FlmngrCommand( this.editor ) ); + + // Add UI button + const componentFactory = this.editor.ui.componentFactory; + const t = this.editor.t; + + componentFactory.add( 'upload', locale => { + const command = this.editor.commands.get( 'upload' ); + + const button = new ButtonView( locale ); + + button.set( { + label: t( 'Upload image or file' ), + withText: true, + tooltip: true + } ); + + button.bind( 'isEnabled' ).to( command ); + + button.on( 'execute', () => { + this.editor.execute( 'upload' ); + this.editor.editing.view.focus(); + } ); + + return button; + } ); + + componentFactory.add( 'flmngr', locale => { + const command = this.editor.commands.get( 'flmngr' ); + + const button = new ButtonView( locale ); + + button.set( { + label: t( 'Browse image or file' ), + withText: true, + tooltip: true + } ); + + button.bind( 'isEnabled' ).to( command ); + + button.on( 'execute', () => { + this.editor.execute( 'flmngr' ); + this.editor.editing.view.focus(); + } ); + + return button; + } ); +} + + static includeJS(urlJS) { + let scripts = document.getElementsByTagName("script"); + let alreadyExists = false; + let existingScript = null; + for (let i = 0; i < scripts.length; i++) { + let src = decodeURI(scripts[i].getAttribute("src")); + if (src != null && src.indexOf(urlJS) !== -1) { + alreadyExists = true; + existingScript = scripts[i]; + } + } + if (!alreadyExists) { + let script = document.createElement("script"); + script.type = "text/javascript"; + script.src = urlJS; + script.setAttribute("data-by-n1ed", "true"); + document.getElementsByTagName("head")[0].appendChild(script); + return script; + } else { + return null; + } + } +} diff --git a/src/new/assets/lib/flmngr/src/flmngrcommand.js b/src/new/assets/lib/flmngr/src/flmngrcommand.js new file mode 100644 index 000000000..7180cc728 --- /dev/null +++ b/src/new/assets/lib/flmngr/src/flmngrcommand.js @@ -0,0 +1,205 @@ +import { Command, findAttributeRange, first } from 'ckeditor5'; +import {showWarning} from "./utils.js"; + +export default class FlmngrCommand extends Command { + + static flmngr; + + imageExtensions = ['jpeg', 'jpg', 'png', 'bmp', 'svg', 'webp']; + + constructor( editor ) { + super( editor ); + + // Remove default document listener to lower its priority. + this.stopListening( this.editor.model.document, 'change' ); + + // Lower this command listener priority to be sure that refresh() will be called after link & image refresh. + this.listenTo( this.editor.model.document, 'change', () => this.refresh(), { priority: 'low' } ); + } + + refresh() { + const imageCommand = this.editor.commands.get( 'insertImage' ); + const linkCommand = this.editor.commands.get( 'link' ); + this.isEnabled = !imageCommand || // if there is no image command, the button IS always enabled: we will show a message + (imageCommand.isEnabled || (!!linkCommand && linkCommand.isEnabled)); + } + + isImage(filepath) { + let i = filepath.lastIndexOf("."); + if (i > -1 && i < filepath.length-1) { + let ext = filepath.substr(i + 1).toLowerCase(); + return ext === 'jpeg' || ext === 'jpg' || ext === 'png' || ext === 'gif' || ext === "bmp" || ext === "svg" || ext === "webp"; + } + return false; + } + + // Call a dialog to select local file and upload them ("Upload" action) + executeUpload() { + this.execute2(true); + } + + // Call Flmngr ("Browse" action) + execute() { + this.execute2(false); + } + + execute2(doUpload) { // false = browse + + const imageCommand = this.editor.commands.get( 'insertImage' ); + if (!imageCommand) { + let msg = "Please enable CKEditor 5 `Image` plugin in order to use Flmngr file manager"; + if (!!window.Drupal) + msg += ":\n\nDrupal users must set `Image Upload` -> `Enable image uploads` checkbox on the page of CKEditor 5 text format"; + alert(msg); + return; + } + + + if (!FlmngrCommand.flmngr) { + // console.log("File manager is not loaded yet"); + // return; + } + + const selection = this.editor.model.document.selection; + const el = selection.getSelectedElement() || first( selection.getSelectedBlocks() ); + + let currentUrl = null; + let elA = null; + const position = selection.getFirstPosition(); + if ( selection.hasAttribute( 'linkHref' ) ) { + elA = findAttributeRange(position, 'linkHref', selection.getAttribute('linkHref'), this.editor.model).getItems().next().value.textNode; + currentUrl = elA.getAttribute("linkHref"); + } + + let elImg = null; + if (!!el && (el.name === 'imageBlock' || el.name === 'imageInline')) { + elImg = el; + currentUrl = elImg.getAttribute("src"); + elA = null; + } + + if (doUpload) { + FlmngrCommand.flmngr.selectFiles({ + acceptExtensions: !!elImg ? this.imageExtensions : null, + isMultiple: false, + onFinish: (files) => { + FlmngrCommand.flmngr.upload({ + filesOrLinks: files, + onFinish: (urls, paths) => { + this.createOrChange(el, elImg, elA, urls); + }, + onFail: (error) => { + showWarning(this.editor, 'Unable to upload files', true, error, false); + } + }); + } + }) + } else { + mediaBundleBrowser(context.$note.attr('id')); + FlmngrCommand.flmngr.pickFiles({ + acceptExtensions: !!elImg ? this.imageExtensions : null, + isMultiple: false, + list: currentUrl ? [currentUrl] : null, + onFinish: (files) => { + this.createOrChange(el, elImg, elA, files.map(f => f.url)); + } + }); + } + } + + createOrChange(el, elImg, elA, urls) { + if (!!elImg) { + this.changeImgSrc(elImg, FlmngrCommand.flmngr.getNoCacheUrl(urls[0])); + } else if (!!elA) { + this.changeAHref(elA, urls[0]); + } else { + // Create new IMG and A elements + let urlsImages = []; + let urlsFiles = []; + for (let url of urls) { + if (this.isImage(url)) + urlsImages.push(FlmngrCommand.flmngr.getNoCacheUrl(url)); + else + urlsFiles.push(url); + } + + for (const url of urlsFiles) + this.createNewA(url); + + for (const url of urlsImages) + this.createNewImg(url); + } + } + + createNewImg(url) { + this.editor.model.change( writer => { + + const imageCommand = this.editor.commands.get( 'insertImage' ); + + // Check if inserting an image is actually possible - it might be possible to only insert a link. + if ( !imageCommand.isEnabled ) { + showWarning(this.editor, 'Inserting image failed', true, 'Could not insert image at the current position.', true); + return; + } + + this.editor.execute( 'insertImage', { source: [url] } ); + + } ); + }; + + createNewA(url) { + this.editor.model.change( writer => { + const insertPosition = this.editor.model.document.selection.getFirstPosition(); + + const i = url.lastIndexOf("/"); + const filename = url.substr(i + 1); + const title = "Download " + filename; + + writer.insertText( title, { linkHref: url }, insertPosition ); + } ); + }; + + changeImgSrc(el, url) { + + this.editor.model.change( writer => { + writer.setAttribute("src", url, el); + writer.removeAttribute("srcset", el); + writer.removeAttribute("sizes", el); + + /* + In Drupal when using existing content with existing image, + CKEditor 5 sets also a custom HTML attribute "src", so + to change an image URL we need not only to set an + attribute "src" of a model of CKEditor 5, + but also and "src" attribute of HTML. + Probably this is a bug or a misconfiguration of + CKEditor 5 in Drupal 9/10. + */ + let attr = el.getAttribute("htmlAttributes"); + if (attr) { + delete attr.attributes.src; + delete attr.attributes.srcset; + delete attr.attributes.sizes; + writer.setAttribute("htmlAttributes", attr, el); + } + }); + + }; + + changeAHref(el, url) { + this.editor.model.change( writer => { + writer.setAttribute( 'linkHref', url, el ); + // TODO: probably change text + }); + }; + + isImage(filepath) { + let i = filepath.lastIndexOf("."); + if (i > -1 && i < filepath.length-1) { + let ext = filepath.substr(i + 1).toLowerCase(); + if (this.imageExtensions.indexOf(ext) > -1) + return true; + } + return false; + } +} diff --git a/src/new/assets/lib/flmngr/src/index.js b/src/new/assets/lib/flmngr/src/index.js new file mode 100644 index 000000000..f02864fab --- /dev/null +++ b/src/new/assets/lib/flmngr/src/index.js @@ -0,0 +1,5 @@ +import Flmngr from './flmngr.js'; + +export default { + Flmngr +}; diff --git a/src/new/assets/lib/flmngr/src/uploadcommand.js b/src/new/assets/lib/flmngr/src/uploadcommand.js new file mode 100644 index 000000000..8f1e817b6 --- /dev/null +++ b/src/new/assets/lib/flmngr/src/uploadcommand.js @@ -0,0 +1,12 @@ + +import FlmngrCommand from "./flmngrcommand.js"; + +export default class UploadCommand extends FlmngrCommand { + + execute() { + const flmngrCommand = this.editor.commands.get( 'upload' ); + flmngrCommand.executeUpload(); + } + +} + diff --git a/src/new/assets/lib/flmngr/src/utils.js b/src/new/assets/lib/flmngr/src/utils.js new file mode 100644 index 000000000..f9e031608 --- /dev/null +++ b/src/new/assets/lib/flmngr/src/utils.js @@ -0,0 +1,25 @@ + +export function showWarning( + editor, + title, + doLocalizeTitle, + message, + doLocalizeMessage +) { + const notification = editor.plugins.get( 'Notification' ); + const t = editor.locale.t; + if (!!notification) { + notification.showWarning( + doLocalizeMessage ? t(message) : message, + { + title: doLocalizeTitle ? t(title) : title, + namespace: 'flmngr' + } + ); + } else { + alert( + (doLocalizeTitle ? t(title) : title) + "\n\n" + + doLocalizeMessage ? t(message) : message + ); + } +} diff --git a/src/new/assets/tailwind/backend.js b/src/new/assets/tailwind/backend.js index 5e30c362f..41184e31b 100644 --- a/src/new/assets/tailwind/backend.js +++ b/src/new/assets/tailwind/backend.js @@ -5,7 +5,10 @@ import $ from 'jquery' window.$ = window.jQuery = $; import { startStimulusApp } from '@symfony/stimulus-bundle'; const app = startStimulusApp(); +import { initTabs } from 'david-ai'; +// Initialize tabs functionality +initTabs(); Alpine.plugin(persist) Alpine.store('theme', { diff --git a/src/new/assets/tailwind/css/backend.css b/src/new/assets/tailwind/css/backend.css index 6c13aebc3..e0a118505 100644 --- a/src/new/assets/tailwind/css/backend.css +++ b/src/new/assets/tailwind/css/backend.css @@ -12,6 +12,35 @@ font-variation-settings: normal; line-height: 1.5; } + .bg-blueGray-50 { + --tw-bg-opacity: 1; + background-color: rgba(248, 250, 252, var(--tw-bg-opacity)); + } + + .bg-blueGray-100 { + --tw-bg-opacity: 1; + background-color: rgba(241, 245, 249, var(--tw-bg-opacity)); + } + + .bg-blueGray-200 { + --tw-bg-opacity: 1; + background-color: rgba(226, 232, 240, var(--tw-bg-opacity)); + } + + .bg-blueGray-600 { + --tw-bg-opacity: 1; + background-color: rgba(71, 85, 105, var(--tw-bg-opacity)); + } + + .bg-blueGray-700 { + --tw-bg-opacity: 1; + background-color: rgba(51, 65, 85, var(--tw-bg-opacity)); + } + + .bg-blueGray-800 { + --tw-bg-opacity: 1; + background-color: rgba(30, 41, 59, var(--tw-bg-opacity)); + } } :root { @@ -37,3 +66,15 @@ .table-icon, .button-icon { @apply w-6; } + +.psc-button-save { + @apply inline-flex items-center justify-center py-1 gap-1 font-medium rounded-sm px-4 text-sm text-white shadow-lg bg-psc-500 hover:bg-psc-600 hover:ring-2 hover:ring-psc-500 hover:ring-offset-2 min-h-[2.25rem]; +} + + + +.form-label { + @apply block uppercase text-xs font-bold mb-2; +} + + diff --git a/src/new/composer.json b/src/new/composer.json index 88f37e867..0fb0d4faa 100755 --- a/src/new/composer.json +++ b/src/new/composer.json @@ -18,6 +18,7 @@ "ext-iconv": "*", "azuyalabs/yasumi": "^2.5", "behat/transliterator": "^1.2@dev", + "bitandblack/colors": "^2.13", "brick/money": "^0.7.0", "chillerlan/php-qrcode": "v5.0.x-dev", "cocur/slugify": "v3.1", @@ -123,7 +124,8 @@ "symfony/stopwatch": "*", "symfony/web-profiler-bundle": "*", "symplify/config-transformer": "^11.1", - "tomasvotruba/symfony-config-generator": "^0.1.5" + "tomasvotruba/symfony-config-generator": "^0.1.5", + "vincentlanglet/twig-cs-fixer": "^3.5" }, "config": { "preferred-install": { diff --git a/src/new/composer.lock b/src/new/composer.lock index fa6b9b7d2..0f317cbd1 100755 --- a/src/new/composer.lock +++ b/src/new/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "dc6c3766ebeb94097df82b3713c6f4d8", + "content-hash": "3d55fa7eafce4cc315d4e02dd640ec78", "packages": [ { "name": "azuyalabs/yasumi", @@ -129,6 +129,146 @@ }, "time": "2022-03-30T09:27:43+00:00" }, + { + "name": "bitandblack/colors", + "version": "2.13.0", + "source": { + "type": "git", + "url": "https://bitbucket.org/wirbelwild/colors.git", + "reference": "71fc7294e1ef033a6e1f2bdf25f9560c66b641e8" + }, + "dist": { + "type": "zip", + "url": "https://bitbucket.org/wirbelwild/colors/get/71fc7294e1ef033a6e1f2bdf25f9560c66b641e8.zip", + "reference": "71fc7294e1ef033a6e1f2bdf25f9560c66b641e8", + "shasum": "" + }, + "require": { + "bitandblack/sentence-construction": "^1.2 || ^2.0", + "ext-json": "*", + "myclabs/php-enum": "^1.7", + "php": ">=7.2" + }, + "require-dev": { + "phpstan/phpstan": "^1.0", + "phpunit/phpunit": "^9.0", + "rector/rector": "^1.0", + "symplify/easy-coding-standard": "^12.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Color\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Tobias Köngeter", + "email": "hello@bitandblack.com", + "homepage": "https://www.bitandblack.com" + } + ], + "description": "Handle colors and their systems easily. Based on Adobe InDesigns color books.", + "homepage": "https://www.bitandblack.com", + "keywords": [ + "acb", + "adobe", + "adobe color book", + "cielab", + "cmy", + "cmyk", + "color", + "complementary", + "hex", + "hks", + "hsl", + "hsla", + "lab", + "pantone", + "php", + "ral", + "rgb", + "rgba", + "xyz" + ], + "support": { + "issues": "https://bitbucket.org/wirbelwild/colors/issues", + "source": "https://bitbucket.org/wirbelwild/colors/src/71fc7294e1ef033a6e1f2bdf25f9560c66b641e8/?at=2.13.0" + }, + "funding": [ + { + "url": "https://www.buymeacoffee.com/tobiaskoengeter", + "type": "buymeacoffee" + } + ], + "time": "2024-12-10T10:03:51+00:00" + }, + { + "name": "bitandblack/sentence-construction", + "version": "2.1.0", + "source": { + "type": "git", + "url": "https://bitbucket.org/wirbelwild/sentence-construction.git", + "reference": "a676cf6a7f6e3673b987f16995f82bbbba1e4600" + }, + "dist": { + "type": "zip", + "url": "https://bitbucket.org/wirbelwild/sentence-construction/get/a676cf6a7f6e3673b987f16995f82bbbba1e4600.zip", + "reference": "a676cf6a7f6e3673b987f16995f82bbbba1e4600", + "shasum": "" + }, + "require": { + "php": ">=8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.0", + "phpunit/phpunit": "^10.0", + "rector/rector": "^1.0", + "symplify/easy-coding-standard": "^12.0" + }, + "suggest": { + "bitandblack/german-words": "A huge list of german words and their grammar rules" + }, + "type": "library", + "autoload": { + "psr-4": { + "BitAndBlack\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Tobias Köngeter", + "email": "hello@bitandblack.com", + "homepage": "https://www.bitandblack.com" + } + ], + "description": "Creates nice sentences", + "homepage": "https://www.bitandblack.com", + "keywords": [ + "grammar", + "language", + "sentence", + "words" + ], + "support": { + "source": "https://bitbucket.org/wirbelwild/sentence-construction/src/a676cf6a7f6e3673b987f16995f82bbbba1e4600/?at=2.1.0" + }, + "funding": [ + { + "url": "https://www.buymeacoffee.com/tobiaskoengeter", + "type": "buymeacoffee" + } + ], + "time": "2024-12-09T08:20:53+00:00" + }, { "name": "brick/math", "version": "0.10.2", @@ -553,6 +693,85 @@ }, "time": "2018-01-22T09:00:48+00:00" }, + { + "name": "composer/pcre", + "version": "3.3.2", + "source": { + "type": "git", + "url": "https://github.com/composer/pcre.git", + "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/pcre/zipball/b2bed4734f0cc156ee1fe9c0da2550420d99a21e", + "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0" + }, + "conflict": { + "phpstan/phpstan": "<1.11.10" + }, + "require-dev": { + "phpstan/phpstan": "^1.12 || ^2", + "phpstan/phpstan-strict-rules": "^1 || ^2", + "phpunit/phpunit": "^8 || ^9" + }, + "type": "library", + "extra": { + "phpstan": { + "includes": [ + "extension.neon" + ] + }, + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Pcre\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "PCRE wrapping library that offers type-safe preg_* replacements.", + "keywords": [ + "PCRE", + "preg", + "regex", + "regular expression" + ], + "support": { + "issues": "https://github.com/composer/pcre/issues", + "source": "https://github.com/composer/pcre/tree/3.3.2" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2024-11-12T16:29:46+00:00" + }, { "name": "composer/semver", "version": "3.4.3", @@ -1664,16 +1883,16 @@ }, { "name": "doctrine/mongodb-odm", - "version": "2.10.0", + "version": "2.10.1", "source": { "type": "git", "url": "https://github.com/doctrine/mongodb-odm.git", - "reference": "a00f135370ca3e99832a09397e7abb7bf12be681" + "reference": "a33bf090401ed1138a289c5e866fcc7e70c88379" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/mongodb-odm/zipball/a00f135370ca3e99832a09397e7abb7bf12be681", - "reference": "a00f135370ca3e99832a09397e7abb7bf12be681", + "url": "https://api.github.com/repos/doctrine/mongodb-odm/zipball/a33bf090401ed1138a289c5e866fcc7e70c88379", + "reference": "a33bf090401ed1138a289c5e866fcc7e70c88379", "shasum": "" }, "require": { @@ -1758,7 +1977,7 @@ ], "support": { "issues": "https://github.com/doctrine/mongodb-odm/issues", - "source": "https://github.com/doctrine/mongodb-odm/tree/2.10.0" + "source": "https://github.com/doctrine/mongodb-odm/tree/2.10.1" }, "funding": [ { @@ -1774,7 +1993,7 @@ "type": "tidelift" } ], - "time": "2025-01-23T15:34:31+00:00" + "time": "2025-02-07T12:32:31+00:00" }, { "name": "doctrine/mongodb-odm-bundle", @@ -1869,16 +2088,16 @@ }, { "name": "doctrine/orm", - "version": "2.20.1", + "version": "2.20.2", "source": { "type": "git", "url": "https://github.com/doctrine/orm.git", - "reference": "e3cabade99ebccc6ba078884c1c5f250866a494e" + "reference": "19912de9270fa6abb3d25a1a37784af6b818d534" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/orm/zipball/e3cabade99ebccc6ba078884c1c5f250866a494e", - "reference": "e3cabade99ebccc6ba078884c1c5f250866a494e", + "url": "https://api.github.com/repos/doctrine/orm/zipball/19912de9270fa6abb3d25a1a37784af6b818d534", + "reference": "19912de9270fa6abb3d25a1a37784af6b818d534", "shasum": "" }, "require": { @@ -1965,9 +2184,9 @@ ], "support": { "issues": "https://github.com/doctrine/orm/issues", - "source": "https://github.com/doctrine/orm/tree/2.20.1" + "source": "https://github.com/doctrine/orm/tree/2.20.2" }, - "time": "2024-12-19T06:48:36+00:00" + "time": "2025-02-04T19:17:01+00:00" }, { "name": "doctrine/persistence", @@ -3008,16 +3227,16 @@ }, { "name": "horstoeko/zugferd", - "version": "v1.0.104", + "version": "v1.0.106", "source": { "type": "git", "url": "https://github.com/horstoeko/zugferd.git", - "reference": "9c37fbe55e37e3082dc3702867d669fb67ef988e" + "reference": "e575f67aaf08f670e435ba01d188b6faa62655a0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/horstoeko/zugferd/zipball/9c37fbe55e37e3082dc3702867d669fb67ef988e", - "reference": "9c37fbe55e37e3082dc3702867d669fb67ef988e", + "url": "https://api.github.com/repos/horstoeko/zugferd/zipball/e575f67aaf08f670e435ba01d188b6faa62655a0", + "reference": "e575f67aaf08f670e435ba01d188b6faa62655a0", "shasum": "" }, "require": { @@ -3076,9 +3295,9 @@ ], "support": { "issues": "https://github.com/horstoeko/zugferd/issues", - "source": "https://github.com/horstoeko/zugferd/tree/v1.0.104" + "source": "https://github.com/horstoeko/zugferd/tree/v1.0.106" }, - "time": "2025-01-19T09:23:02+00:00" + "time": "2025-02-03T13:26:12+00:00" }, { "name": "imagine/imagine", @@ -5175,6 +5394,69 @@ ], "time": "2024-11-08T17:47:46+00:00" }, + { + "name": "myclabs/php-enum", + "version": "1.8.5", + "source": { + "type": "git", + "url": "https://github.com/myclabs/php-enum.git", + "reference": "e7be26966b7398204a234f8673fdad5ac6277802" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/php-enum/zipball/e7be26966b7398204a234f8673fdad5ac6277802", + "reference": "e7be26966b7398204a234f8673fdad5ac6277802", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": "^7.3 || ^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.5", + "squizlabs/php_codesniffer": "1.*", + "vimeo/psalm": "^4.6.2 || ^5.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "MyCLabs\\Enum\\": "src/" + }, + "classmap": [ + "stubs/Stringable.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP Enum contributors", + "homepage": "https://github.com/myclabs/php-enum/graphs/contributors" + } + ], + "description": "PHP Enum implementation", + "homepage": "https://github.com/myclabs/php-enum", + "keywords": [ + "enum" + ], + "support": { + "issues": "https://github.com/myclabs/php-enum/issues", + "source": "https://github.com/myclabs/php-enum/tree/1.8.5" + }, + "funding": [ + { + "url": "https://github.com/mnapoli", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/myclabs/php-enum", + "type": "tidelift" + } + ], + "time": "2025-01-14T11:49:03+00:00" + }, { "name": "namshi/jose", "version": "7.2.3", @@ -6363,19 +6645,20 @@ }, { "name": "phpoffice/phpspreadsheet", - "version": "1.29.8", + "version": "1.29.9", "source": { "type": "git", "url": "https://github.com/PHPOffice/PhpSpreadsheet.git", - "reference": "089ffdfc04b5fcf25a3503d81a4e589f247e20e3" + "reference": "ffb47b639649fc9c8a6fa67977a27b756592ed85" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/089ffdfc04b5fcf25a3503d81a4e589f247e20e3", - "reference": "089ffdfc04b5fcf25a3503d81a4e589f247e20e3", + "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/ffb47b639649fc9c8a6fa67977a27b756592ed85", + "reference": "ffb47b639649fc9c8a6fa67977a27b756592ed85", "shasum": "" }, "require": { + "composer/pcre": "^3.3", "ext-ctype": "*", "ext-dom": "*", "ext-fileinfo": "*", @@ -6462,9 +6745,9 @@ ], "support": { "issues": "https://github.com/PHPOffice/PhpSpreadsheet/issues", - "source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/1.29.8" + "source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/1.29.9" }, - "time": "2025-01-12T03:16:27+00:00" + "time": "2025-01-26T04:55:00+00:00" }, { "name": "phpstan/phpdoc-parser", @@ -7915,31 +8198,31 @@ }, { "name": "setasign/fpdi", - "version": "v2.6.2", + "version": "v2.6.3", "source": { "type": "git", "url": "https://github.com/Setasign/FPDI.git", - "reference": "9e013b376939c0d4029f54150d2a16f3c67a5797" + "reference": "67c31f5e50c93c20579ca9e23035d8c540b51941" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Setasign/FPDI/zipball/9e013b376939c0d4029f54150d2a16f3c67a5797", - "reference": "9e013b376939c0d4029f54150d2a16f3c67a5797", + "url": "https://api.github.com/repos/Setasign/FPDI/zipball/67c31f5e50c93c20579ca9e23035d8c540b51941", + "reference": "67c31f5e50c93c20579ca9e23035d8c540b51941", "shasum": "" }, "require": { "ext-zlib": "*", - "php": "^5.6 || ^7.0 || ^8.0" + "php": "^7.1 || ^8.0" }, "conflict": { "setasign/tfpdf": "<1.31" }, "require-dev": { - "phpunit/phpunit": "~5.7", + "phpunit/phpunit": "^7", "setasign/fpdf": "~1.8.6", "setasign/tfpdf": "~1.33", "squizlabs/php_codesniffer": "^3.5", - "tecnickcom/tcpdf": "~6.2" + "tecnickcom/tcpdf": "^6.2" }, "suggest": { "setasign/fpdf": "FPDI will extend this class but as it is also possible to use TCPDF or tFPDF as an alternative. There's no fixed dependency configured." @@ -7975,7 +8258,7 @@ ], "support": { "issues": "https://github.com/Setasign/FPDI/issues", - "source": "https://github.com/Setasign/FPDI/tree/v2.6.2" + "source": "https://github.com/Setasign/FPDI/tree/v2.6.3" }, "funding": [ { @@ -7983,7 +8266,7 @@ "type": "tidelift" } ], - "time": "2024-12-10T13:12:19+00:00" + "time": "2025-02-05T13:22:35+00:00" }, { "name": "smalot/pdfparser", @@ -8153,16 +8436,16 @@ }, { "name": "symfony/asset-mapper", - "version": "v6.4.16", + "version": "v6.4.18", "source": { "type": "git", "url": "https://github.com/symfony/asset-mapper.git", - "reference": "64fb7ab10aa8b95f2cb4caa2ccb17360b4367803" + "reference": "9ec7ea222381fa63aefde98d5076b99df2fba927" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/asset-mapper/zipball/64fb7ab10aa8b95f2cb4caa2ccb17360b4367803", - "reference": "64fb7ab10aa8b95f2cb4caa2ccb17360b4367803", + "url": "https://api.github.com/repos/symfony/asset-mapper/zipball/9ec7ea222381fa63aefde98d5076b99df2fba927", + "reference": "9ec7ea222381fa63aefde98d5076b99df2fba927", "shasum": "" }, "require": { @@ -8212,7 +8495,7 @@ "description": "Maps directories of assets & makes them available in a public directory with versioned filenames.", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/asset-mapper/tree/v6.4.16" + "source": "https://github.com/symfony/asset-mapper/tree/v6.4.18" }, "funding": [ { @@ -8228,20 +8511,20 @@ "type": "tidelift" } ], - "time": "2024-11-20T11:01:37+00:00" + "time": "2025-01-25T08:10:40+00:00" }, { "name": "symfony/cache", - "version": "v6.4.16", + "version": "v6.4.18", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "70d60e9a3603108563010f8592dff15a6f15dfae" + "reference": "b209751ed25f735ea90ca4c9c969d9413a17dfee" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/70d60e9a3603108563010f8592dff15a6f15dfae", - "reference": "70d60e9a3603108563010f8592dff15a6f15dfae", + "url": "https://api.github.com/repos/symfony/cache/zipball/b209751ed25f735ea90ca4c9c969d9413a17dfee", + "reference": "b209751ed25f735ea90ca4c9c969d9413a17dfee", "shasum": "" }, "require": { @@ -8308,7 +8591,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v6.4.16" + "source": "https://github.com/symfony/cache/tree/v6.4.18" }, "funding": [ { @@ -8324,7 +8607,7 @@ "type": "tidelift" } ], - "time": "2024-11-20T10:10:54+00:00" + "time": "2025-01-22T14:13:52+00:00" }, { "name": "symfony/cache-contracts", @@ -8795,21 +9078,21 @@ }, { "name": "symfony/doctrine-bridge", - "version": "v6.4.17", + "version": "v6.4.18", "source": { "type": "git", "url": "https://github.com/symfony/doctrine-bridge.git", - "reference": "2ba7e747a944b69f9f583c35173560afebbff995" + "reference": "fd0094d4648bf6bbdafcd1f0c8aafb6e93d735e6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/2ba7e747a944b69f9f583c35173560afebbff995", - "reference": "2ba7e747a944b69f9f583c35173560afebbff995", + "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/fd0094d4648bf6bbdafcd1f0c8aafb6e93d735e6", + "reference": "fd0094d4648bf6bbdafcd1f0c8aafb6e93d735e6", "shasum": "" }, "require": { "doctrine/event-manager": "^1.2|^2", - "doctrine/persistence": "^3.1", + "doctrine/persistence": "^2.5|^3.1|^4", "php": ">=8.1", "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-ctype": "~1.8", @@ -8883,7 +9166,7 @@ "description": "Provides integration for Doctrine with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/doctrine-bridge/tree/v6.4.17" + "source": "https://github.com/symfony/doctrine-bridge/tree/v6.4.18" }, "funding": [ { @@ -8899,7 +9182,7 @@ "type": "tidelift" } ], - "time": "2024-12-18T10:42:42+00:00" + "time": "2025-01-25T08:04:58+00:00" }, { "name": "symfony/dotenv", @@ -8977,16 +9260,16 @@ }, { "name": "symfony/error-handler", - "version": "v6.4.17", + "version": "v6.4.18", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "37ad2380e8c1a8cf62a1200a5c10080b679b446c" + "reference": "e8d3b5b1975e67812a54388b1ba8e9ec28eb770e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/37ad2380e8c1a8cf62a1200a5c10080b679b446c", - "reference": "37ad2380e8c1a8cf62a1200a5c10080b679b446c", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/e8d3b5b1975e67812a54388b1ba8e9ec28eb770e", + "reference": "e8d3b5b1975e67812a54388b1ba8e9ec28eb770e", "shasum": "" }, "require": { @@ -9032,7 +9315,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v6.4.17" + "source": "https://github.com/symfony/error-handler/tree/v6.4.18" }, "funding": [ { @@ -9048,7 +9331,7 @@ "type": "tidelift" } ], - "time": "2024-12-06T13:30:51+00:00" + "time": "2025-01-06T09:38:16+00:00" }, { "name": "symfony/event-dispatcher", @@ -9567,16 +9850,16 @@ }, { "name": "symfony/framework-bundle", - "version": "v6.4.17", + "version": "v6.4.18", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "17d8ae2e7aa77154f942e8ac48849ac718b0963f" + "reference": "91df8ee37543ebc01756c9e5eaf94d1878ff1ccd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/17d8ae2e7aa77154f942e8ac48849ac718b0963f", - "reference": "17d8ae2e7aa77154f942e8ac48849ac718b0963f", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/91df8ee37543ebc01756c9e5eaf94d1878ff1ccd", + "reference": "91df8ee37543ebc01756c9e5eaf94d1878ff1ccd", "shasum": "" }, "require": { @@ -9696,7 +9979,7 @@ "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/framework-bundle/tree/v6.4.17" + "source": "https://github.com/symfony/framework-bundle/tree/v6.4.18" }, "funding": [ { @@ -9712,20 +9995,20 @@ "type": "tidelift" } ], - "time": "2024-12-19T14:08:41+00:00" + "time": "2025-01-28T18:47:02+00:00" }, { "name": "symfony/http-client", - "version": "v6.4.17", + "version": "v6.4.18", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "88898d842eb29d7e1a903724c94e90a6ca9c0509" + "reference": "394b440934056b8d9d6ba250001458e9d7998b7f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/88898d842eb29d7e1a903724c94e90a6ca9c0509", - "reference": "88898d842eb29d7e1a903724c94e90a6ca9c0509", + "url": "https://api.github.com/repos/symfony/http-client/zipball/394b440934056b8d9d6ba250001458e9d7998b7f", + "reference": "394b440934056b8d9d6ba250001458e9d7998b7f", "shasum": "" }, "require": { @@ -9789,7 +10072,7 @@ "http" ], "support": { - "source": "https://github.com/symfony/http-client/tree/v6.4.17" + "source": "https://github.com/symfony/http-client/tree/v6.4.18" }, "funding": [ { @@ -9805,7 +10088,7 @@ "type": "tidelift" } ], - "time": "2024-12-18T12:18:31+00:00" + "time": "2025-01-28T15:49:13+00:00" }, { "name": "symfony/http-client-contracts", @@ -9887,16 +10170,16 @@ }, { "name": "symfony/http-foundation", - "version": "v6.4.16", + "version": "v6.4.18", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "431771b7a6f662f1575b3cfc8fd7617aa9864d57" + "reference": "d0492d6217e5ab48f51fca76f64cf8e78919d0db" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/431771b7a6f662f1575b3cfc8fd7617aa9864d57", - "reference": "431771b7a6f662f1575b3cfc8fd7617aa9864d57", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/d0492d6217e5ab48f51fca76f64cf8e78919d0db", + "reference": "d0492d6217e5ab48f51fca76f64cf8e78919d0db", "shasum": "" }, "require": { @@ -9944,7 +10227,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.4.16" + "source": "https://github.com/symfony/http-foundation/tree/v6.4.18" }, "funding": [ { @@ -9960,20 +10243,20 @@ "type": "tidelift" } ], - "time": "2024-11-13T18:58:10+00:00" + "time": "2025-01-09T15:48:56+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.4.17", + "version": "v6.4.18", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "c5647393c5ce11833d13e4b70fff4b571d4ac710" + "reference": "fca7197bfe9e99dfae7fb1ad3f7f5bd9ef80e1b7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/c5647393c5ce11833d13e4b70fff4b571d4ac710", - "reference": "c5647393c5ce11833d13e4b70fff4b571d4ac710", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/fca7197bfe9e99dfae7fb1ad3f7f5bd9ef80e1b7", + "reference": "fca7197bfe9e99dfae7fb1ad3f7f5bd9ef80e1b7", "shasum": "" }, "require": { @@ -10058,7 +10341,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v6.4.17" + "source": "https://github.com/symfony/http-kernel/tree/v6.4.18" }, "funding": [ { @@ -10074,7 +10357,7 @@ "type": "tidelift" } ], - "time": "2024-12-31T14:49:31+00:00" + "time": "2025-01-29T07:25:58+00:00" }, { "name": "symfony/intl", @@ -10240,16 +10523,16 @@ }, { "name": "symfony/mailer", - "version": "v6.4.13", + "version": "v6.4.18", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "c2f7e0d8d7ac8fe25faccf5d8cac462805db2663" + "reference": "e93a6ae2767d7f7578c2b7961d9d8e27580b2b11" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/c2f7e0d8d7ac8fe25faccf5d8cac462805db2663", - "reference": "c2f7e0d8d7ac8fe25faccf5d8cac462805db2663", + "url": "https://api.github.com/repos/symfony/mailer/zipball/e93a6ae2767d7f7578c2b7961d9d8e27580b2b11", + "reference": "e93a6ae2767d7f7578c2b7961d9d8e27580b2b11", "shasum": "" }, "require": { @@ -10300,7 +10583,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v6.4.13" + "source": "https://github.com/symfony/mailer/tree/v6.4.18" }, "funding": [ { @@ -10316,20 +10599,20 @@ "type": "tidelift" } ], - "time": "2024-09-25T14:18:03+00:00" + "time": "2025-01-24T15:27:15+00:00" }, { "name": "symfony/mime", - "version": "v6.4.17", + "version": "v6.4.18", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "ea87c8850a54ff039d3e0ab4ae5586dd4e6c0232" + "reference": "917d77981eb1ea963608d5cda4d9c0cf72eaa68e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/ea87c8850a54ff039d3e0ab4ae5586dd4e6c0232", - "reference": "ea87c8850a54ff039d3e0ab4ae5586dd4e6c0232", + "url": "https://api.github.com/repos/symfony/mime/zipball/917d77981eb1ea963608d5cda4d9c0cf72eaa68e", + "reference": "917d77981eb1ea963608d5cda4d9c0cf72eaa68e", "shasum": "" }, "require": { @@ -10385,7 +10668,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v6.4.17" + "source": "https://github.com/symfony/mime/tree/v6.4.18" }, "funding": [ { @@ -10401,7 +10684,7 @@ "type": "tidelift" } ], - "time": "2024-12-02T11:09:41+00:00" + "time": "2025-01-23T13:10:52+00:00" }, { "name": "symfony/monolog-bridge", @@ -11623,16 +11906,16 @@ }, { "name": "symfony/property-info", - "version": "v6.4.17", + "version": "v6.4.18", "source": { "type": "git", "url": "https://github.com/symfony/property-info.git", - "reference": "38b125d78e67668159f75383a293ec0c5d3f2963" + "reference": "94d18e5cc11a37fd92856d38b61d9cdf72536a1e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-info/zipball/38b125d78e67668159f75383a293ec0c5d3f2963", - "reference": "38b125d78e67668159f75383a293ec0c5d3f2963", + "url": "https://api.github.com/repos/symfony/property-info/zipball/94d18e5cc11a37fd92856d38b61d9cdf72536a1e", + "reference": "94d18e5cc11a37fd92856d38b61d9cdf72536a1e", "shasum": "" }, "require": { @@ -11643,7 +11926,9 @@ "doctrine/annotations": "<1.12", "phpdocumentor/reflection-docblock": "<5.2", "phpdocumentor/type-resolver": "<1.5.1", - "symfony/dependency-injection": "<5.4|>=6.0,<6.4" + "symfony/cache": "<5.4", + "symfony/dependency-injection": "<5.4|>=6.0,<6.4", + "symfony/serializer": "<5.4" }, "require-dev": { "doctrine/annotations": "^1.12|^2", @@ -11687,7 +11972,7 @@ "validator" ], "support": { - "source": "https://github.com/symfony/property-info/tree/v6.4.17" + "source": "https://github.com/symfony/property-info/tree/v6.4.18" }, "funding": [ { @@ -11703,7 +11988,7 @@ "type": "tidelift" } ], - "time": "2024-12-26T19:01:29+00:00" + "time": "2025-01-21T10:52:27+00:00" }, { "name": "symfony/proxy-manager-bridge", @@ -11774,16 +12059,16 @@ }, { "name": "symfony/routing", - "version": "v6.4.16", + "version": "v6.4.18", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "91e02e606b4b705c2f4fb42f7e7708b7923a3220" + "reference": "e9bfc94953019089acdfb9be51c1b9142c4afa68" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/91e02e606b4b705c2f4fb42f7e7708b7923a3220", - "reference": "91e02e606b4b705c2f4fb42f7e7708b7923a3220", + "url": "https://api.github.com/repos/symfony/routing/zipball/e9bfc94953019089acdfb9be51c1b9142c4afa68", + "reference": "e9bfc94953019089acdfb9be51c1b9142c4afa68", "shasum": "" }, "require": { @@ -11837,7 +12122,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.4.16" + "source": "https://github.com/symfony/routing/tree/v6.4.18" }, "funding": [ { @@ -11853,7 +12138,7 @@ "type": "tidelift" } ], - "time": "2024-11-13T15:31:34+00:00" + "time": "2025-01-09T08:51:02+00:00" }, { "name": "symfony/runtime", @@ -12048,16 +12333,16 @@ }, { "name": "symfony/security-core", - "version": "v6.4.16", + "version": "v6.4.18", "source": { "type": "git", "url": "https://github.com/symfony/security-core.git", - "reference": "19cdb7de86e556202ab16e0cffd1a97348231bc0" + "reference": "0ae7ae716968e00287ab9b7768405e0dc9cad109" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-core/zipball/19cdb7de86e556202ab16e0cffd1a97348231bc0", - "reference": "19cdb7de86e556202ab16e0cffd1a97348231bc0", + "url": "https://api.github.com/repos/symfony/security-core/zipball/0ae7ae716968e00287ab9b7768405e0dc9cad109", + "reference": "0ae7ae716968e00287ab9b7768405e0dc9cad109", "shasum": "" }, "require": { @@ -12114,7 +12399,7 @@ "description": "Symfony Security Component - Core Library", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-core/tree/v6.4.16" + "source": "https://github.com/symfony/security-core/tree/v6.4.18" }, "funding": [ { @@ -12130,7 +12415,7 @@ "type": "tidelift" } ], - "time": "2024-11-27T09:48:51+00:00" + "time": "2025-01-22T20:59:03+00:00" }, { "name": "symfony/security-csrf", @@ -12202,16 +12487,16 @@ }, { "name": "symfony/security-http", - "version": "v6.4.15", + "version": "v6.4.18", "source": { "type": "git", "url": "https://github.com/symfony/security-http.git", - "reference": "ded1e078f952e686b058d9eac98e497bea47b308" + "reference": "54f2ccce1f3822eee3fb3a85debd9a67d12762b8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-http/zipball/ded1e078f952e686b058d9eac98e497bea47b308", - "reference": "ded1e078f952e686b058d9eac98e497bea47b308", + "url": "https://api.github.com/repos/symfony/security-http/zipball/54f2ccce1f3822eee3fb3a85debd9a67d12762b8", + "reference": "54f2ccce1f3822eee3fb3a85debd9a67d12762b8", "shasum": "" }, "require": { @@ -12270,7 +12555,7 @@ "description": "Symfony Security Component - HTTP Integration", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-http/tree/v6.4.15" + "source": "https://github.com/symfony/security-http/tree/v6.4.18" }, "funding": [ { @@ -12286,20 +12571,20 @@ "type": "tidelift" } ], - "time": "2024-11-13T13:40:18+00:00" + "time": "2025-01-28T14:53:52+00:00" }, { "name": "symfony/serializer", - "version": "v6.4.15", + "version": "v6.4.18", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "9d862d66198f3c2e30404228629ef4c18d5d608e" + "reference": "6ad986f62276da4c8c69754decfaa445a89cb6e3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/9d862d66198f3c2e30404228629ef4c18d5d608e", - "reference": "9d862d66198f3c2e30404228629ef4c18d5d608e", + "url": "https://api.github.com/repos/symfony/serializer/zipball/6ad986f62276da4c8c69754decfaa445a89cb6e3", + "reference": "6ad986f62276da4c8c69754decfaa445a89cb6e3", "shasum": "" }, "require": { @@ -12368,7 +12653,7 @@ "description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/serializer/tree/v6.4.15" + "source": "https://github.com/symfony/serializer/tree/v6.4.18" }, "funding": [ { @@ -12384,7 +12669,7 @@ "type": "tidelift" } ], - "time": "2024-10-23T13:25:59+00:00" + "time": "2025-01-28T18:47:02+00:00" }, { "name": "symfony/service-contracts", @@ -13405,16 +13690,16 @@ }, { "name": "symfony/validator", - "version": "v6.4.17", + "version": "v6.4.18", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "a3c19a0e542d427c207e22242043ef35b5b99a2c" + "reference": "ce20367d07b2592202e9c266b16a93fa50145207" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/a3c19a0e542d427c207e22242043ef35b5b99a2c", - "reference": "a3c19a0e542d427c207e22242043ef35b5b99a2c", + "url": "https://api.github.com/repos/symfony/validator/zipball/ce20367d07b2592202e9c266b16a93fa50145207", + "reference": "ce20367d07b2592202e9c266b16a93fa50145207", "shasum": "" }, "require": { @@ -13482,7 +13767,7 @@ "description": "Provides tools to validate values", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/validator/tree/v6.4.17" + "source": "https://github.com/symfony/validator/tree/v6.4.18" }, "funding": [ { @@ -13498,20 +13783,20 @@ "type": "tidelift" } ], - "time": "2024-12-29T12:50:19+00:00" + "time": "2025-01-27T16:05:44+00:00" }, { "name": "symfony/var-dumper", - "version": "v6.4.15", + "version": "v6.4.18", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "38254d5a5ac2e61f2b52f9caf54e7aa3c9d36b80" + "reference": "4ad10cf8b020e77ba665305bb7804389884b4837" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/38254d5a5ac2e61f2b52f9caf54e7aa3c9d36b80", - "reference": "38254d5a5ac2e61f2b52f9caf54e7aa3c9d36b80", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/4ad10cf8b020e77ba665305bb7804389884b4837", + "reference": "4ad10cf8b020e77ba665305bb7804389884b4837", "shasum": "" }, "require": { @@ -13567,7 +13852,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.4.15" + "source": "https://github.com/symfony/var-dumper/tree/v6.4.18" }, "funding": [ { @@ -13583,7 +13868,7 @@ "type": "tidelift" } ], - "time": "2024-11-08T15:28:48+00:00" + "time": "2025-01-17T11:26:11+00:00" }, { "name": "symfony/var-exporter", @@ -13747,16 +14032,16 @@ }, { "name": "symfony/yaml", - "version": "v6.4.13", + "version": "v6.4.18", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "e99b4e94d124b29ee4cf3140e1b537d2dad8cec9" + "reference": "bf598c9d9bb4a22f495a4e26e4c4fce2f8ecefc5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/e99b4e94d124b29ee4cf3140e1b537d2dad8cec9", - "reference": "e99b4e94d124b29ee4cf3140e1b537d2dad8cec9", + "url": "https://api.github.com/repos/symfony/yaml/zipball/bf598c9d9bb4a22f495a4e26e4c4fce2f8ecefc5", + "reference": "bf598c9d9bb4a22f495a4e26e4c4fce2f8ecefc5", "shasum": "" }, "require": { @@ -13799,7 +14084,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v6.4.13" + "source": "https://github.com/symfony/yaml/tree/v6.4.18" }, "funding": [ { @@ -13815,7 +14100,7 @@ "type": "tidelift" } ], - "time": "2024-09-25T14:18:03+00:00" + "time": "2025-01-07T09:44:41+00:00" }, { "name": "symfonycasts/dynamic-forms", @@ -14028,7 +14313,7 @@ }, { "name": "twig/extra-bundle", - "version": "v3.18.0", + "version": "v3.19.0", "source": { "type": "git", "url": "https://github.com/twigphp/twig-extra-bundle.git", @@ -14086,7 +14371,7 @@ "twig" ], "support": { - "source": "https://github.com/twigphp/twig-extra-bundle/tree/v3.18.0" + "source": "https://github.com/twigphp/twig-extra-bundle/tree/v3.19.0" }, "funding": [ { @@ -14102,16 +14387,16 @@ }, { "name": "twig/intl-extra", - "version": "v3.18.0", + "version": "v3.19.0", "source": { "type": "git", "url": "https://github.com/twigphp/intl-extra.git", - "reference": "4eeab2a3f8d04d1838be7251ab2d183f817aea7b" + "reference": "79a1bea7254783b540d51de10dc5e9f310110794" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/intl-extra/zipball/4eeab2a3f8d04d1838be7251ab2d183f817aea7b", - "reference": "4eeab2a3f8d04d1838be7251ab2d183f817aea7b", + "url": "https://api.github.com/repos/twigphp/intl-extra/zipball/79a1bea7254783b540d51de10dc5e9f310110794", + "reference": "79a1bea7254783b540d51de10dc5e9f310110794", "shasum": "" }, "require": { @@ -14150,7 +14435,7 @@ "twig" ], "support": { - "source": "https://github.com/twigphp/intl-extra/tree/v3.18.0" + "source": "https://github.com/twigphp/intl-extra/tree/v3.19.0" }, "funding": [ { @@ -14162,11 +14447,11 @@ "type": "tidelift" } ], - "time": "2024-11-20T13:19:52+00:00" + "time": "2025-01-24T20:20:33+00:00" }, { "name": "twig/string-extra", - "version": "v3.18.0", + "version": "v3.19.0", "source": { "type": "git", "url": "https://github.com/twigphp/string-extra.git", @@ -14217,7 +14502,7 @@ "unicode" ], "support": { - "source": "https://github.com/twigphp/string-extra/tree/v3.18.0" + "source": "https://github.com/twigphp/string-extra/tree/v3.19.0" }, "funding": [ { @@ -14233,16 +14518,16 @@ }, { "name": "twig/twig", - "version": "v3.18.0", + "version": "v3.19.0", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "acffa88cc2b40dbe42eaf3a5025d6c0d4600cc50" + "reference": "d4f8c2b86374f08efc859323dbcd95c590f7124e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/acffa88cc2b40dbe42eaf3a5025d6c0d4600cc50", - "reference": "acffa88cc2b40dbe42eaf3a5025d6c0d4600cc50", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/d4f8c2b86374f08efc859323dbcd95c590f7124e", + "reference": "d4f8c2b86374f08efc859323dbcd95c590f7124e", "shasum": "" }, "require": { @@ -14297,7 +14582,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.18.0" + "source": "https://github.com/twigphp/Twig/tree/v3.19.0" }, "funding": [ { @@ -14309,7 +14594,7 @@ "type": "tidelift" } ], - "time": "2024-12-29T10:51:50+00:00" + "time": "2025-01-29T07:06:14+00:00" }, { "name": "webmozart/assert", @@ -17228,16 +17513,16 @@ }, { "name": "symfony/dom-crawler", - "version": "v6.4.16", + "version": "v6.4.18", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "4304e6ad5c894a9c72831ad459f627bfd35d766d" + "reference": "fd07959d3e8992795029bdab3605c2e8e895034e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/4304e6ad5c894a9c72831ad459f627bfd35d766d", - "reference": "4304e6ad5c894a9c72831ad459f627bfd35d766d", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/fd07959d3e8992795029bdab3605c2e8e895034e", + "reference": "fd07959d3e8992795029bdab3605c2e8e895034e", "shasum": "" }, "require": { @@ -17275,7 +17560,7 @@ "description": "Eases DOM navigation for HTML and XML documents", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dom-crawler/tree/v6.4.16" + "source": "https://github.com/symfony/dom-crawler/tree/v6.4.18" }, "funding": [ { @@ -17291,20 +17576,20 @@ "type": "tidelift" } ], - "time": "2024-11-13T15:06:22+00:00" + "time": "2025-01-09T15:35:00+00:00" }, { "name": "symfony/panther", - "version": "v2.1.1", + "version": "v2.2.0", "source": { "type": "git", "url": "https://github.com/symfony/panther.git", - "reference": "ef9a6f2393ac9679af03a93d3f508e4aa65c15b5" + "reference": "b7e0f834c9046918972edb3dde2ecc4a20f6155e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/panther/zipball/ef9a6f2393ac9679af03a93d3f508e4aa65c15b5", - "reference": "ef9a6f2393ac9679af03a93d3f508e4aa65c15b5", + "url": "https://api.github.com/repos/symfony/panther/zipball/b7e0f834c9046918972edb3dde2ecc4a20f6155e", + "reference": "b7e0f834c9046918972edb3dde2ecc4a20f6155e", "shasum": "" }, "require": { @@ -17312,19 +17597,19 @@ "ext-libxml": "*", "php": ">=8.0", "php-webdriver/webdriver": "^1.8.2", - "symfony/browser-kit": "^5.3 || ^6.0 || ^7.0", - "symfony/dependency-injection": "^5.3 || ^6.0 || ^7.0", + "symfony/browser-kit": "^5.4 || ^6.4 || ^7.0", + "symfony/dependency-injection": "^5.4 || ^6.4 || ^7.0", "symfony/deprecation-contracts": "^2.4 || ^3", - "symfony/dom-crawler": "^5.3 || ^6.0 || ^7.0", - "symfony/http-client": "^5.3 || ^6.0 || ^7.0", - "symfony/http-kernel": "^5.3 || ^6.0 || ^7.0", - "symfony/process": "^5.3 || ^6.0 || ^7.0" + "symfony/dom-crawler": "^5.4 || ^6.4 || ^7.0", + "symfony/http-client": "^6.4 || ^7.0", + "symfony/http-kernel": "^5.4 || ^6.4 || ^7.0", + "symfony/process": "^5.4 || ^6.4 || ^7.0" }, "require-dev": { - "symfony/css-selector": "^5.3 || ^6.0 || ^7.0", - "symfony/framework-bundle": "^5.3 || ^6.0 || ^7.0", - "symfony/mime": "^5.3 || ^6.0 || ^7.0", - "symfony/phpunit-bridge": "^5.3 || ^6.0 || ^7.0" + "symfony/css-selector": "^5.4 || ^6.4 || ^7.0", + "symfony/framework-bundle": "^5.4 || ^6.4 || ^7.0", + "symfony/mime": "^5.4 || ^6.4 || ^7.0", + "symfony/phpunit-bridge": "^7.2.0" }, "type": "library", "extra": { @@ -17364,7 +17649,7 @@ ], "support": { "issues": "https://github.com/symfony/panther/issues", - "source": "https://github.com/symfony/panther/tree/v2.1.1" + "source": "https://github.com/symfony/panther/tree/v2.2.0" }, "funding": [ { @@ -17380,7 +17665,7 @@ "type": "tidelift" } ], - "time": "2023-12-03T22:17:31+00:00" + "time": "2025-01-30T13:11:55+00:00" }, { "name": "symfony/phpunit-bridge", @@ -17529,16 +17814,16 @@ }, { "name": "symfony/web-profiler-bundle", - "version": "v6.4.17", + "version": "v6.4.18", "source": { "type": "git", "url": "https://github.com/symfony/web-profiler-bundle.git", - "reference": "979f8ee1a4f2464c20f3fef0d2111827fef2e97e" + "reference": "979b623f12d1eb4f6f8f24fd321dfe1dee2444a2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/979f8ee1a4f2464c20f3fef0d2111827fef2e97e", - "reference": "979f8ee1a4f2464c20f3fef0d2111827fef2e97e", + "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/979b623f12d1eb4f6f8f24fd321dfe1dee2444a2", + "reference": "979b623f12d1eb4f6f8f24fd321dfe1dee2444a2", "shasum": "" }, "require": { @@ -17591,7 +17876,7 @@ "dev" ], "support": { - "source": "https://github.com/symfony/web-profiler-bundle/tree/v6.4.17" + "source": "https://github.com/symfony/web-profiler-bundle/tree/v6.4.18" }, "funding": [ { @@ -17607,7 +17892,7 @@ "type": "tidelift" } ], - "time": "2024-12-08T23:00:41+00:00" + "time": "2024-12-23T18:38:04+00:00" }, { "name": "symplify/config-transformer", @@ -17861,6 +18146,83 @@ "abandoned": "rector/swiss-knife", "time": "2024-04-10T10:52:45+00:00" }, + { + "name": "vincentlanglet/twig-cs-fixer", + "version": "3.5.1", + "source": { + "type": "git", + "url": "https://github.com/VincentLanglet/Twig-CS-Fixer.git", + "reference": "0ab7a8154f7b3a6a42cbe3a467074a47bc32dcf5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/VincentLanglet/Twig-CS-Fixer/zipball/0ab7a8154f7b3a6a42cbe3a467074a47bc32dcf5", + "reference": "0ab7a8154f7b3a6a42cbe3a467074a47bc32dcf5", + "shasum": "" + }, + "require": { + "composer-runtime-api": "^2.0.0", + "ext-ctype": "*", + "ext-json": "*", + "php": ">=8.0", + "symfony/console": "^5.4.9 || ^6.4 || ^7.0", + "symfony/filesystem": "^5.4 || ^6.4 || ^7.0", + "symfony/finder": "^5.4 || ^6.4 || ^7.0", + "symfony/string": "^5.4.42 || ^6.4.10 || ~7.0.10 || ^7.1.3", + "twig/twig": "^3.4", + "webmozart/assert": "^1.10" + }, + "require-dev": { + "composer/semver": "^3.2.0", + "dereuromark/composer-prefer-lowest": "^0.1.10", + "ergebnis/composer-normalize": "^2.29", + "friendsofphp/php-cs-fixer": "^3.13.0", + "infection/infection": "^0.26.16 || ^0.27.0", + "phpstan/phpstan": "^2.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpstan/phpstan-strict-rules": "^2.0", + "phpstan/phpstan-symfony": "^2.0", + "phpstan/phpstan-webmozart-assert": "^2.0", + "phpunit/phpunit": "^9.5.26 || ^10.0.9", + "rector/rector": "^2.0.0", + "shipmonk/composer-dependency-analyser": "^1.6", + "symfony/process": "^5.4 || ^6.4 || ^7.0", + "symfony/twig-bridge": "^5.4 || ^6.4 || ^7.0", + "symfony/ux-twig-component": "^2.2.0", + "twig/cache-extra": "^3.2" + }, + "bin": [ + "bin/twig-cs-fixer" + ], + "type": "coding-standard", + "autoload": { + "psr-4": { + "TwigCsFixer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Vincent Langlet" + } + ], + "description": "A tool to automatically fix Twig code style", + "homepage": "https://github.com/VincentLanglet/Twig-CS-Fixer", + "support": { + "issues": "https://github.com/VincentLanglet/Twig-CS-Fixer/issues", + "source": "https://github.com/VincentLanglet/Twig-CS-Fixer/tree/3.5.1" + }, + "funding": [ + { + "url": "https://github.com/VincentLanglet", + "type": "github" + } + ], + "time": "2025-01-16T18:36:36+00:00" + }, { "name": "webmozart/glob", "version": "4.7.0", diff --git a/src/new/config/packages/asset_mapper.yaml b/src/new/config/packages/asset_mapper.yaml index f7653e97f..f54312a8b 100644 --- a/src/new/config/packages/asset_mapper.yaml +++ b/src/new/config/packages/asset_mapper.yaml @@ -4,8 +4,11 @@ framework: paths: - assets/ missing_import_mode: strict - + excluded_patterns: + - '*/assets/styles/_*.scss' + - '*/assets/styles/**/_*.scss' when@prod: framework: asset_mapper: missing_import_mode: warn + diff --git a/src/new/config/packages/security.php b/src/new/config/packages/security.php index b0308e938..5586fe9f5 100755 --- a/src/new/config/packages/security.php +++ b/src/new/config/packages/security.php @@ -122,6 +122,10 @@ return static function (ContainerConfigurator $containerConfigurator): void { 'access_token' => [ 'token_handler' => ApiKeyHandler::class, 'token_extractors' => ApiKeyExtractor::class + ], + 'custom_authenticators' => [ + ApiKeyAuthenticator::class, + ZendAuthenticator::class, ] ], 'storefront' => [ diff --git a/src/new/config/packages/symfonycasts_tailwind.yaml b/src/new/config/packages/symfonycasts.yaml similarity index 66% rename from src/new/config/packages/symfonycasts_tailwind.yaml rename to src/new/config/packages/symfonycasts.yaml index 7eb4b4346..f8b52cfc9 100644 --- a/src/new/config/packages/symfonycasts_tailwind.yaml +++ b/src/new/config/packages/symfonycasts.yaml @@ -1,5 +1,8 @@ symfonycasts_tailwind: binary_version: 'v3.3.0' input_css: - - 'assets/tailwind/css/login.css' - 'assets/tailwind/css/backend.css' + - 'assets/tailwind/css/login.css' + +symfonycasts_sass: + root_sass: 'assets/backend/dashboard/less/base.scss' diff --git a/src/new/fixtures/contact.yml b/src/new/fixtures/contact.yml index 2f3edb53a..05f8315b8 100755 --- a/src/new/fixtures/contact.yml +++ b/src/new/fixtures/contact.yml @@ -12,6 +12,7 @@ PSC\Shop\EntityBundle\Entity\Contact: zip: "17506" street: "Musterstraße" house_number: "24b" + account: '@account_1' contact_2: username: test@shop.de @@ -26,6 +27,7 @@ PSC\Shop\EntityBundle\Entity\Contact: zip: "17506" street: "Chausseestraße" house_number: "24b" + account: '@account_1' contact_3: username: test3@shop.de @@ -40,6 +42,7 @@ PSC\Shop\EntityBundle\Entity\Contact: zip: "175063" street: "Chausseestraße3" house_number: "24b3" + account: '@account_1' contact_4: username: company@shop.de @@ -55,6 +58,7 @@ PSC\Shop\EntityBundle\Entity\Contact: zip: "17506" street: "Chausseestraße" house_number: "24b" + account: '@account_2' contact_5: username: association@shop.de @@ -70,6 +74,7 @@ PSC\Shop\EntityBundle\Entity\Contact: zip: "17506" street: "Chausseestraße" house_number: "24b" + account: '@account_1' PSC\Shop\EntityBundle\Entity\ContactAddress: diff --git a/src/new/fixtures/product.yml b/src/new/fixtures/product.yml index 1b1aff337..e62b732be 100755 --- a/src/new/fixtures/product.yml +++ b/src/new/fixtures/product.yml @@ -73,16 +73,25 @@ PSC\Shop\EntityBundle\Entity\Product: + + + diff --git a/src/new/importmap.php b/src/new/importmap.php index af17abed1..12ad169cc 100644 --- a/src/new/importmap.php +++ b/src/new/importmap.php @@ -33,13 +33,6 @@ return [ '@hotwired/stimulus' => [ 'version' => '3.2.2', ], - 'tom-select/dist/css/tom-select.bootstrap5.css' => [ - 'version' => '2.4.1', - 'type' => 'css', - ], - 'tom-select' => [ - 'version' => '2.4.1', - ], '@orchidjs/sifter' => [ 'version' => '1.1.0', ], @@ -89,10 +82,6 @@ return [ 'version' => '5.3.3', 'type' => 'css', ], - 'tom-select/dist/css/tom-select.default.css' => [ - 'version' => '2.4.1', - 'type' => 'css', - ], 'summernote/dist/summernote-lite.min.css' => [ 'version' => '0.9.1', 'type' => 'css', @@ -107,8 +96,218 @@ return [ '@kurkle/color' => [ 'version' => '0.3.4', ], - 'tom-select/dist/css/tom-select.default.min.css' => [ + 'tom-select' => [ 'version' => '2.4.1', + ], + 'david-ai' => [ + 'version' => '1.0.6', + ], + 'ckeditor5' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-adapter-ckfinder/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-alignment/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-autoformat/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-autosave/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-basic-styles/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-block-quote/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-bookmark/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-ckbox/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-ckfinder/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-clipboard/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-cloud-services/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-code-block/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-core/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-easy-image/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-editor-balloon/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-editor-classic/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-editor-decoupled/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-editor-inline/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-editor-multi-root/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-engine/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-enter/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-essentials/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-find-and-replace/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-font/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-heading/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-highlight/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-horizontal-line/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-html-embed/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-html-support/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-image/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-indent/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-language/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-link/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-list/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-markdown-gfm/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-media-embed/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-mention/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-minimap/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-page-break/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-paragraph/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-paste-from-office/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-remove-format/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-restricted-editing/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-select-all/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-show-blocks/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-source-editing/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-special-characters/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-style/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-table/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-typing/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-ui/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-undo/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-upload/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-utils/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-watchdog/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-widget/dist/index.js' => [ + 'version' => '44.1.0', + ], + '@ckeditor/ckeditor5-word-count/dist/index.js' => [ + 'version' => '44.1.0', + ], + 'lodash-es' => [ + 'version' => '4.17.21', + ], + 'blurhash' => [ + 'version' => '2.0.5', + ], + 'marked' => [ + 'version' => '4.0.12', + ], + 'turndown' => [ + 'version' => '7.2.0', + ], + 'turndown-plugin-gfm' => [ + 'version' => '1.0.2', + ], + 'color-parse' => [ + 'version' => '1.4.2', + ], + 'color-convert' => [ + 'version' => '2.0.1', + ], + 'vanilla-colorful/lib/entrypoints/hex' => [ + 'version' => '0.7.2', + ], + 'color-name' => [ + 'version' => '1.1.4', + ], + 'ckeditor5/dist/ckeditor5.min.css' => [ + 'version' => '44.1.0', 'type' => 'css', ], + 'ckeditor5/translations/de.js' => [ + 'version' => '44.1.0', + ], ]; diff --git a/src/new/src/PSC/Backend/DomainBundle/Resources/views/backend/list/index.html.twig b/src/new/src/PSC/Backend/DomainBundle/Resources/views/backend/list/index.html.twig index f3cf44b31..88c54b728 100755 --- a/src/new/src/PSC/Backend/DomainBundle/Resources/views/backend/list/index.html.twig +++ b/src/new/src/PSC/Backend/DomainBundle/Resources/views/backend/list/index.html.twig @@ -121,12 +121,12 @@ {% block javascripts %} {{ parent() }} {% endblock %} diff --git a/src/new/src/PSC/Libraries/AceEditorBundle/Form/Extension/CKEditor5Type.php b/src/new/src/PSC/Libraries/AceEditorBundle/Form/Extension/CKEditor5Type.php new file mode 100644 index 000000000..a2a4bc962 --- /dev/null +++ b/src/new/src/PSC/Libraries/AceEditorBundle/Form/Extension/CKEditor5Type.php @@ -0,0 +1,39 @@ + + */ +final class CKEditor5Type extends AbstractType +{ + public function __construct( + #[Autowire(service: 'stimulus.helper')] + private readonly StimulusHelper $stimulusHelper, + ) { + } + + public function finishView(FormView $view, FormInterface $form, array $options): void + { + parent::finishView($view, $form, $options); + + $attr = $this->stimulusHelper->createStimulusAttributes(); + $attr->addController('ckeditor5'); + + $view->vars['attr'] = $attr->toArray(); + } + + public function getParent(): string + { + return TextareaType::class; + } +} diff --git a/src/new/src/PSC/Shop/AccountBundle/Form/Backend/General/AccountType.php b/src/new/src/PSC/Shop/AccountBundle/Form/Backend/General/AccountType.php index 9482c4a41..1a7d51662 100755 --- a/src/new/src/PSC/Shop/AccountBundle/Form/Backend/General/AccountType.php +++ b/src/new/src/PSC/Shop/AccountBundle/Form/Backend/General/AccountType.php @@ -36,7 +36,7 @@ class AccountType extends AbstractType { /** @var Field */ protected $fields; -/** @var General */ + /** @var General */ protected $general; protected $shop = null; protected $formFactory; @@ -125,6 +125,18 @@ class AccountType extends AbstractType ->where('u.shop = :shop')->andWhere('u.private = 1 AND u.originalProduct != 0')->setParameter('shop', $this->shop->getSelectedShop()->getId()); } )) + ->add('cms', EntityType::class, array( + 'class' => 'PSC\Shop\EntityBundle\Entity\Cms', + 'choice_label' => 'title', + 'choice_value' => 'uid', + 'multiple' => true, + 'required' => false, + 'query_builder' => function (EntityRepository $er) use ($tempCms) { + + return $er->createQueryBuilder('u') + ->where('(u.shop = :shop OR u.uid in (' . implode(",", $tempCms) . '))')->andWhere('u.private = 1')->setParameter('shop', $this->shop->getSelectedShop()->getId()); + } + )) ->add('appendix', TextType::class, ['required' => false, 'label' => 'additive']) ->add('locked', CheckboxType::class, ['required' => false, 'label' => 'Locked']) ->add('street', TextType::class, ['required' => false, 'label' => 'street']) @@ -198,7 +210,7 @@ class AccountType extends AbstractType ->add('lastname2', TextType::class, ['required' => false, 'label' => 'lastname2']) ->add('calcValue1', TextType::class, ['required' => false, 'label' => 'value1']) ->add('calcValue2', TextType::class, ['required' => false, 'label' => 'value2']); -/** @var \PSC\System\PluginBundle\Form\Interfaces\Field $field */ + /** @var \PSC\System\PluginBundle\Form\Interfaces\Field $field */ foreach ($this->fields->getFields(\PSC\System\PluginBundle\Form\Interfaces\Field::Account) as $field) { $builder->add($field->buildForm($this->formFactory->createNamedBuilder($field->getGroup()), $options)); } diff --git a/src/new/src/PSC/Shop/BasketBundle/Api/Basket/Legacy/Add.php b/src/new/src/PSC/Shop/BasketBundle/Api/Basket/Legacy/Add.php index 5c0a086a9..3a81aff7c 100755 --- a/src/new/src/PSC/Shop/BasketBundle/Api/Basket/Legacy/Add.php +++ b/src/new/src/PSC/Shop/BasketBundle/Api/Basket/Legacy/Add.php @@ -16,6 +16,7 @@ use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpKernel\KernelInterface; use Symfony\Component\Routing\Annotation\Route; +use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface; use Symfony\Component\Yaml\Yaml; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter; @@ -23,13 +24,8 @@ use Symfony\Contracts\EventDispatcher\EventDispatcherInterface; class Add extends AbstractController { - private EventDispatcherInterface $eventDispatcher; - private EntityManagerInterface $entityManager; - - public function __construct(EntityManagerInterface $entityManager, EventDispatcherInterface $eventDispatcher) + public function __construct(private readonly EntityManagerInterface $entityManager, private readonly EventDispatcherInterface $eventDispatcher, private readonly TokenStorageInterface $tokenStorage) { - $this->entityManager = $entityManager; - $this->eventDispatcher = $eventDispatcher; } /** @@ -59,39 +55,40 @@ class Add extends AbstractController $product = $this->entityManager->getRepository(Product::class)->findOneBy(['uuid' => $data->productUUId]); if ($product) { - if(!$data->dispatchNoEvents) { + if (!$data->dispatchNoEvents) { $event = new PSCAdd($data); $this->eventDispatcher->dispatch($event, PSCAdd::NAME); } + $articles = $_SESSION['Basket']['Articles']; /** - * @var \TP_Basket_Item $basketItem -*/ + * @var \TP_Basket_Item $basketItem + */ $basketItem = clone($_SESSION['Basket']['TempProduct'][$data->productUUId]); $basketItem->setDeliveryDate((string)$data->deliveryDate); $basketItem->setDeliveryInfo((string)$data->deliveryInfo); - if((string)$data->ref != "") { + if ((string)$data->ref != "") { $basketItem->setRef($data->ref); } - if((string)$data->basketField1 != "") { + if ((string)$data->basketField1 != "") { $basketItem->setRef($data->basketField1); } - if((string)$data->basketField2 != "") { + if ((string)$data->basketField2 != "") { $basketItem->setKst($data->basketField2); } $basketItem->setXmlProduct((string)$data->xmlProduct); - if((string)$data->layouterUuid != "") { + if ((string)$data->layouterUuid != "") { $basketItem->setLayouterId((string)$data->layouterUuid); } $itemId = $articles->addItem($basketItem); - + if ($data->clearTempItem) { + $_SESSION['Basket']['TempProduct'][$data->productUUId] = new \TP_Basket_Item(); + } $output = new Output(); $output->success = true; $output->basketUUId = $itemId; - if($data->clearTempItem) { - $_SESSION['Basket']['TempProduct'][$data->productUUId] = new \TP_Basket_Item(); - } + return $this->json(new Output()); } diff --git a/src/new/src/PSC/Shop/CmsBundle/Controller/Backend/EditController.php b/src/new/src/PSC/Shop/CmsBundle/Controller/Backend/EditController.php index 79f17e8f7..c1301d04f 100755 --- a/src/new/src/PSC/Shop/CmsBundle/Controller/Backend/EditController.php +++ b/src/new/src/PSC/Shop/CmsBundle/Controller/Backend/EditController.php @@ -108,6 +108,8 @@ class EditController extends AbstractController $cmsDoc->setExtraSettings($cms->getExtraSettings()); $cmsDoc->setPluginSettings($cms->getPluginSettings()); $cmsDoc->setNoIndex($cms->isNoIndex()); + $cmsDoc->setAccounts($cms->getAccounts()); + $documentManager->persist($cmsDoc); $documentManager->flush(); @@ -164,13 +166,14 @@ class EditController extends AbstractController if (!$request->isMethod('POST') && $cmsDoc) { $cms->setExtraSettings($cmsDoc->getExtraSettings()); $cms->setPluginSettings($cmsDoc->getPluginSettings()); + $cms->setAccounts($cmsDoc->getAccounts()); $cms->setNoIndex($cmsDoc->isNoIndex()); } elseif (!$cmsDoc) { $cmsDoc = new \PSC\Shop\EntityBundle\Document\Cms(); $cmsDoc->setUid($cms->getUid()); $cmsDoc->setExtraSettings($cms->getExtraSettings()); $cmsDoc->setNoIndex($cms->isNoIndex()); - + $cmsDoc->setAccounts($cms->getAccounts()); $documentManager->persist($cmsDoc); $documentManager->flush(); } @@ -185,7 +188,7 @@ class EditController extends AbstractController $cmsDoc->setPluginSettings($cms->getPluginSettings()); $cmsDoc->setExtraSettings($cms->getExtraSettings()); $cmsDoc->setNoIndex($cms->isNoIndex()); - + $cmsDoc->setAccounts($cms->getAccounts()); $this->historyService->createHistoryEntry(new PSCHistory((string)$cms->getUid()), $cms, $cmsDoc); $entityManager->persist($cms); diff --git a/src/new/src/PSC/Shop/CmsBundle/Form/Backend/CmsType.php b/src/new/src/PSC/Shop/CmsBundle/Form/Backend/CmsType.php index b64f37826..af2b2b1ea 100755 --- a/src/new/src/PSC/Shop/CmsBundle/Form/Backend/CmsType.php +++ b/src/new/src/PSC/Shop/CmsBundle/Form/Backend/CmsType.php @@ -16,6 +16,7 @@ namespace PSC\Shop\CmsBundle\Form\Backend; use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityRepository; use Lexik\Bundle\FormFilterBundle\Filter\Query\QueryInterface; +use PSC\Shop\EntityBundle\Entity\Account; use PSC\Shop\EntityBundle\Entity\Cms; use PSC\Shop\ThemeBundle\Core\ThemeHolder; use PSC\Shop\ThemeBundle\Core\ThemeHolderInterface; @@ -46,12 +47,12 @@ use Symfony\Component\OptionsResolver\OptionsResolver; class CmsType extends AbstractType { protected $shop = null; -/** @var Field */ + /** @var Field */ protected $fields; -/** @var ThemeSourceInterface */ + /** @var ThemeSourceInterface */ protected $themeSource; protected $formFactory; -/** @var Language */ + /** @var Language */ public $language; public function __construct(Field $fields, Shop $shop, ThemeSource $themeSource, FormFactoryInterface $formFactory, Language $language, EntityManagerInterface $entityManager) { @@ -83,7 +84,14 @@ class CmsType extends AbstractType public function buildForm(FormBuilderInterface $builder, array $options) { - + $accounts = $this->entityManager->getRepository(Account::class)->createQueryBuilder('u') + ->join('u.shops', 's') + ->where('s.uid = :shop')->setParameter('shop', $this->shop->getSelectedShop()->getId())->getQuery()->execute(); + $defaultAccounts = []; + foreach ($accounts as $account) { + $defaultAccounts[$account->getTitle()] = $account->getUid(); + } + dump($defaultAccounts); $tmp = $this->buildCmsTree(['Oberste Ebene' => 0]); $builder ->add('title', TextType::class, ['label' => 'psc_shop_cms.Name', 'required' => false]) @@ -106,7 +114,7 @@ class CmsType extends AbstractType 'required' => true, 'choice_loader' => new CallbackChoiceLoader(function () { - return $this->themeSource->getTheme($this->shop->getMongoSelectedShop()->getTheme())->getConfig()->getCms()->getPositionsAsArray(); + return $this->themeSource->getTheme($this->shop->getMongoSelectedShop()->getTheme())->getConfig()->getCms()->getPositionsAsArray(); }) ]) ->add('text', TextareaType::class, array( @@ -127,8 +135,14 @@ class CmsType extends AbstractType 'choices' => $this->language->getLanguageArrayForContent(), 'required' => true, )) + ->add('accounts', ChoiceType::class, array( + 'label' => 'psc_shop_cms.Accounts', + 'choices' => $defaultAccounts, + 'multiple' => true, + 'required' => false, + )) ->add('metaOgDescription', TextAreaType::class, ['label' => 'psc_shop_cms.OGDescription', 'required' => false]); -/** @var \PSC\System\PluginBundle\Form\Interfaces\Field $field */ + /** @var \PSC\System\PluginBundle\Form\Interfaces\Field $field */ foreach ($this->fields->getFields(\PSC\System\PluginBundle\Form\Interfaces\Field::Cms) as $field) { $builder->add($field->buildForm($this->formFactory->createNamedBuilder($field->getGroup(), FormType::class, null, ['mapped' => false]), $options)); } diff --git a/src/new/src/PSC/Shop/CmsBundle/Resources/translations/messages.de.yaml b/src/new/src/PSC/Shop/CmsBundle/Resources/translations/messages.de.yaml index b1c2718c7..4c5e2f58d 100755 --- a/src/new/src/PSC/Shop/CmsBundle/Resources/translations/messages.de.yaml +++ b/src/new/src/PSC/Shop/CmsBundle/Resources/translations/messages.de.yaml @@ -1,5 +1,6 @@ psc_shop_cms: List: Liste + Filter: Filter Search: Suche Active: Aktiv Title: Titel @@ -23,6 +24,7 @@ psc_shop_cms: OnTop: Oberste Ebene Sort: Sortierung Language: Sprache + Accounts: Firmen Private: Privat onlyLoggedIn: nur anzeigen wenn eingelogged? SEO: SEO @@ -38,4 +40,4 @@ psc_shop_cms: NotInMenu: Nicht im Menu? DisplayTitle: Titel anzeigen? ExtendedSettings: Erweiterte Einstellungen - NoIndex: Seiten für Suchmaschinen nicht sichtbar machen \ No newline at end of file + NoIndex: Seiten für Suchmaschinen nicht sichtbar machen diff --git a/src/new/src/PSC/Shop/CmsBundle/Resources/views/backend/edit/create.html.twig b/src/new/src/PSC/Shop/CmsBundle/Resources/views/backend/edit/create.html.twig index 18b53b036..b215e1070 100755 --- a/src/new/src/PSC/Shop/CmsBundle/Resources/views/backend/edit/create.html.twig +++ b/src/new/src/PSC/Shop/CmsBundle/Resources/views/backend/edit/create.html.twig @@ -37,6 +37,9 @@ + {% for customGroup in customGroups %} +
@@ -236,6 +239,17 @@
+
+
+ +
+ {{ form_widget(form.accounts) }} +
+ {{ form_errors(form.accounts) }} +
+
diff --git a/src/new/src/PSC/Shop/ContactBundle/Form/Backend/General/ContactType.php b/src/new/src/PSC/Shop/ContactBundle/Form/Backend/General/ContactType.php index c286d6707..9cf6b0096 100755 --- a/src/new/src/PSC/Shop/ContactBundle/Form/Backend/General/ContactType.php +++ b/src/new/src/PSC/Shop/ContactBundle/Form/Backend/General/ContactType.php @@ -132,6 +132,7 @@ class ContactType extends AbstractType 'choice_label' => 'title', 'choice_value' => 'uid', 'multiple' => true, + 'required' => false, 'query_builder' => function (EntityRepository $er) use ($tempPayments) { return $er->createQueryBuilder('u') @@ -152,6 +153,7 @@ class ContactType extends AbstractType }, 'choice_value' => 'uid', 'multiple' => true, + 'required' => false, 'query_builder' => function (EntityRepository $er) use ($tempProductGroups) { return $er->createQueryBuilder('u') @@ -162,6 +164,7 @@ class ContactType extends AbstractType 'class' => 'PSC\Shop\EntityBundle\Entity\Shipping', 'choice_label' => 'title', 'choice_value' => 'uid', + 'required' => false, 'multiple' => true, 'query_builder' => function (EntityRepository $er) use ($tempShippings) { @@ -173,6 +176,7 @@ class ContactType extends AbstractType 'class' => 'PSC\Shop\EntityBundle\Entity\Product', 'choice_label' => 'title', 'choice_value' => 'uid', + 'required' => false, 'multiple' => true, 'query_builder' => function (EntityRepository $er) use ($tempProducts) { @@ -184,6 +188,7 @@ class ContactType extends AbstractType 'class' => 'PSC\Shop\EntityBundle\Entity\Product', 'choice_label' => 'title', 'choice_value' => 'uid', + 'required' => false, 'multiple' => true, 'query_builder' => function (EntityRepository $er) use ($tempProducts) { @@ -196,6 +201,7 @@ class ContactType extends AbstractType 'choice_label' => 'title', 'choice_value' => 'uid', 'multiple' => true, + 'required' => false, 'query_builder' => function (EntityRepository $er) use ($tempCms) { return $er->createQueryBuilder('u') @@ -206,6 +212,7 @@ class ContactType extends AbstractType 'class' => 'PSC\Shop\EntityBundle\Entity\Account', 'choice_label' => 'title', 'choice_value' => 'uid', + 'required' => false, 'multiple' => true, 'query_builder' => function (EntityRepository $er) { @@ -217,12 +224,14 @@ class ContactType extends AbstractType ->add('shops', EntityType::class, array( 'class' => 'PSC\Shop\EntityBundle\Entity\Shop', 'choice_label' => 'title', + 'required' => false, 'choice_value' => 'uid', 'multiple' => true )) ->add('rolesForm', EntityType::class, array( 'class' => 'PSC\Shop\EntityBundle\Entity\Role', 'choice_label' => 'title', + 'required' => false, 'choice_value' => 'uid', 'multiple' => true )) diff --git a/src/new/src/PSC/Shop/ContactBundle/Resources/views/backend/edit/create.html.twig b/src/new/src/PSC/Shop/ContactBundle/Resources/views/backend/edit/create.html.twig index 4e11ed58b..02e5747e0 100755 --- a/src/new/src/PSC/Shop/ContactBundle/Resources/views/backend/edit/create.html.twig +++ b/src/new/src/PSC/Shop/ContactBundle/Resources/views/backend/edit/create.html.twig @@ -1576,34 +1576,35 @@ diff --git a/src/new/src/PSC/Shop/ContactBundle/Resources/views/backend/edit/edit.html.twig b/src/new/src/PSC/Shop/ContactBundle/Resources/views/backend/edit/edit.html.twig index 9eef5b4d0..6f5a61a79 100755 --- a/src/new/src/PSC/Shop/ContactBundle/Resources/views/backend/edit/edit.html.twig +++ b/src/new/src/PSC/Shop/ContactBundle/Resources/views/backend/edit/edit.html.twig @@ -1704,34 +1704,35 @@ diff --git a/src/new/src/PSC/Shop/ContactBundle/Transformer/Model/Contact.php b/src/new/src/PSC/Shop/ContactBundle/Transformer/Model/Contact.php index 7ac11dbb3..afd0cd89b 100755 --- a/src/new/src/PSC/Shop/ContactBundle/Transformer/Model/Contact.php +++ b/src/new/src/PSC/Shop/ContactBundle/Transformer/Model/Contact.php @@ -4,6 +4,8 @@ namespace PSC\Shop\ContactBundle\Transformer\Model; use Doctrine\ODM\MongoDB\DocumentManager; use Doctrine\ORM\EntityManagerInterface; +use PSC\Shop\AccountBundle\Model\Account as PSCAccount; +use PSC\Shop\AccountBundle\Transformer\Account; use PSC\Shop\ContactBundle\Model\Role; use PSC\Shop\ContactBundle\Repository\ContactRepository; use PSC\Shop\MediaBundle\Model\Media; @@ -13,7 +15,7 @@ use PSC\System\SettingsBundle\Service\Shop; class Contact { - public function __construct(private readonly MediaManager $mediaManager, private readonly ContactRepository $contactRepository, private readonly Shop $shopService, private readonly EntityManagerInterface $entityManager, private readonly DocumentManager $documentManager, private readonly PSCMedia $mediaTransformer) + public function __construct(private readonly MediaManager $mediaManager, private readonly ContactRepository $contactRepository, private readonly Shop $shopService, private readonly EntityManagerInterface $entityManager, private readonly DocumentManager $documentManager, private readonly PSCMedia $mediaTransformer, private readonly Account $accountTransformer) { } @@ -139,6 +141,12 @@ class Contact $contactDoc->setUid($contactEntity->getUid()); } + $account = new PSCAccount(); + if ($contactEntity->getAccount() != null) { + $this->accountTransformer->fromEntity($account, $contactEntity->getAccount()); + } + $contact->setAccount($account); + $contact->setUUId((string)$contactEntity->getUuid()); $contact->setEMail((string)$contactEntity->getEmail()); $contact->setUid((int)$contactEntity->getUid()); diff --git a/src/new/src/PSC/Shop/EntityBundle/Document/Cms.php b/src/new/src/PSC/Shop/EntityBundle/Document/Cms.php index c1ecfd1a7..0c36dcc49 100755 --- a/src/new/src/PSC/Shop/EntityBundle/Document/Cms.php +++ b/src/new/src/PSC/Shop/EntityBundle/Document/Cms.php @@ -29,6 +29,8 @@ class Cms #[Field(type: 'boolean')] protected bool $noIndex = false; + #[Field(type: 'hash')] + protected array $accounts = []; #[Field(type: 'hash')] protected $pluginSettings = []; @@ -118,4 +120,13 @@ class Cms { $this->noIndex = $noIndex; } + public function getAccounts(): array + { + return (array)$this->accounts; + } + + public function setAccounts(array $var): void + { + $this->accounts = $var; + } } diff --git a/src/new/src/PSC/Shop/EntityBundle/Entity/Account.php b/src/new/src/PSC/Shop/EntityBundle/Entity/Account.php index 99bf86918..6a03f033f 100755 --- a/src/new/src/PSC/Shop/EntityBundle/Entity/Account.php +++ b/src/new/src/PSC/Shop/EntityBundle/Entity/Account.php @@ -33,215 +33,215 @@ class Account protected $productsOrg; protected $priceFactor; protected $extraSettings; -/** - * Id der Firma - * - * @var integer - */ + /** + * Id der Firma + * + * @var integer + */ #[ORM\Column(name: 'id', type: 'integer')] #[ORM\Id] #[ORM\GeneratedValue(strategy: 'AUTO')] protected $uid; -/** - * Titel der Firma - * - * @var string - */ + /** + * Titel der Firma + * + * @var string + */ #[ORM\Column(name: 'company', type: 'string', length: 255)] protected $title; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'appendix', type: 'string', length: 255)] protected $appendix; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'street', type: 'string', length: 255)] protected $street; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'destrict', type: 'string', length: 255)] protected $destrict; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'zip', type: 'string', length: 255)] protected $zip; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'city', type: 'string', length: 255)] protected $city; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'state', type: 'string', length: 255)] protected $state; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'country', type: 'string', length: 255)] protected $country; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'email', type: 'string', length: 255)] protected $email; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'house_number', type: 'string', length: 255)] protected $houseNumber; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'homepage', type: 'string', length: 255)] protected $homepage; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'phone_lv', type: 'string', length: 255)] protected $phoneAreaCode; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'phone_vorwahl', type: 'string', length: 255)] protected $phonePrefix; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'phone', type: 'string', length: 255)] protected $phone; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'phone_durchwahl', type: 'string', length: 255)] protected $phoneAppendix; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'mobile_lv', type: 'string', length: 255)] protected $mobileAreaCode; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'mobile_vorwahl', type: 'string', length: 255)] protected $mobilePrefix; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'mobile', type: 'string', length: 255)] protected $mobile; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'mobile_durchwahl', type: 'string', length: 255)] protected $mobileAppendix; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'fax_lv', type: 'string', length: 255)] protected $faxAreaCode; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'fax_vorwahl', type: 'string', length: 255)] protected $faxPrefix; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'fax', type: 'string', length: 255)] protected $fax; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'fax_durchwahl', type: 'string', length: 255)] protected $faxAppendix; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'alternativ_lv', type: 'string', length: 255)] protected $alternativAreaCode; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'alternativ_type', type: 'string', length: 255)] protected $alternativType; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'alternativ', type: 'string', length: 255)] protected $alternativ; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'alternativ_durchwahl', type: 'string', length: 255)] protected $alternativAppendix; -/** - * Vorgänger der Firma - */ + /** + * Vorgänger der Firma + */ #[ORM\ManyToOne(targetEntity: 'Account', inversedBy: 'children')] #[ORM\JoinColumn(name: 'filiale_id', referencedColumnName: 'id')] protected $parent; -/** - * Vorgänger der Firma - * - * @var int - */ + /** + * Vorgänger der Firma + * + * @var int + */ #[ORM\Column(name: 'filiale_id', type: 'integer', nullable: true)] protected $parentId = 0; -/** - * Unterfirmen der Firma - */ + /** + * Unterfirmen der Firma + */ #[ORM\OneToMany(targetEntity: 'Account', mappedBy: 'parent')] protected $children; -/** - * Gesperter Account - * - * @var boolean - */ + /** + * Gesperter Account + * + * @var boolean + */ #[ORM\Column(name: 'locked', type: 'boolean')] protected $locked; -/** - * Benutze Account als Rechnungsadresse - * - * @var boolean - */ + /** + * Benutze Account als Rechnungsadresse + * + * @var boolean + */ #[ORM\Column(name: 'use_account_as_invoice', type: 'boolean')] protected $useAccountAsInvoiceAddress; -/** - * Install - * - * @var int - */ + /** + * Install + * + * @var int + */ #[ORM\ManyToOne(targetEntity: 'Install')] #[ORM\JoinColumn(name: 'install_id', referencedColumnName: 'id')] protected $install; @@ -275,178 +275,186 @@ class Account #[ORM\InverseJoinColumn(name: 'productgroup_id', referencedColumnName: 'id')] #[ORM\ManyToMany(targetEntity: 'Productgroup', inversedBy: 'accounts')] public $productGroups; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'bank_name', type: 'string', length: 255)] protected $bankKtoName; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'bank_kto', type: 'string', length: 255)] protected $bankKTO; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'bank_blz', type: 'string', length: 255)] protected $bankBLZ; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'bank_iban', type: 'string', length: 255)] protected $bankIban; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'bank_bic', type: 'string', length: 255)] protected $bankBic; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'bank_bank_name', type: 'string', length: 255)] protected $bankName; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'usid', type: 'string', length: 255)] protected $ustid; -/** - * - * @var int - */ + /** + * + * @var int + */ #[ORM\Column(name: 'typ', type: 'integer', length: 2)] protected $typ; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'logo1', type: 'string', length: 255)] protected $image; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'template_switch', type: 'string', length: 255)] protected $templateSwitch; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'informations', type: 'string')] protected $information; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'mega_code', type: 'string', length: 255)] protected $megaCode; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'hotel_name', type: 'string', length: 255)] protected $hotelName; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'sub_hotel_name', type: 'string', length: 255)] protected $subHotelName; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'email_gm', type: 'string', length: 255)] protected $emailGm; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'zimmer', type: 'string', length: 255)] protected $room; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'gz', type: 'string', length: 255)] protected $gz; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'gf', type: 'string', length: 255)] protected $gf; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'gsitz', type: 'string', length: 255)] protected $gSitz; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'handelsregister', type: 'string', length: 255)] protected $handelsRegister; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'hrb', type: 'string', length: 255)] protected $hrb; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'vorsitz', type: 'string', length: 255)] protected $vorsitz; -/** - * - * @var int - */ + /** + * + * @var int + */ #[ORM\Column(name: 'anrede1', type: 'integer', length: 2)] protected $salutation1; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'firstname1', type: 'string', length: 255)] protected $firstname1; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'lastname1', type: 'string', length: 255)] protected $lastname1; -/** - * - * @var int - */ + /** + * + * @var int + */ #[ORM\Column(name: 'anrede2', type: 'integer', length: 2)] protected $salutation2; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'firstname2', type: 'string', length: 255)] protected $firstname2; -/** - * - * @var string - */ + /** + * + * @var string + */ #[ORM\Column(name: 'lastname2', type: 'string', length: 255)] protected $lastname2; -/** - * Constructor - * @param null $id - */ + + #[ORM\JoinTable(name: 'account_cms')] + #[ORM\JoinColumn(name: 'account_id', referencedColumnName: 'id')] + #[ORM\InverseJoinColumn(name: 'account_id', referencedColumnName: 'id')] + #[ORM\ManyToMany(targetEntity: 'Cms', inversedBy: 'accounts')] + public $cms; + + + /** + * Constructor + * @param null $id + */ public function __construct($id = null) { $this->children = new ArrayCollection(); diff --git a/src/new/src/PSC/Shop/EntityBundle/Entity/Cms.php b/src/new/src/PSC/Shop/EntityBundle/Entity/Cms.php index cc5350e5b..d9240d7db 100755 --- a/src/new/src/PSC/Shop/EntityBundle/Entity/Cms.php +++ b/src/new/src/PSC/Shop/EntityBundle/Entity/Cms.php @@ -29,6 +29,7 @@ class Cms { protected $extraSettings; + protected $accounts = []; protected $noIndex = false; protected $pluginSettings = []; @@ -44,164 +45,164 @@ class Cms #[ORM\Id] #[ORM\GeneratedValue(strategy: 'IDENTITY')] private $uid; -/** - * Titel - * - * @var string - */ + /** + * Titel + * + * @var string + */ #[ORM\Column(name: 'title', type: 'string', length: 255)] protected $title; -/** - * Sort - * - * @var float - */ + /** + * Sort + * + * @var float + */ #[ORM\Column(name: 'sor', type: 'integer')] protected $sort; -/** - * Enable - * - * @var boolean - */ + /** + * Enable + * + * @var boolean + */ #[ORM\Column(name: 'enable', type: 'boolean')] protected $enable; -/** - * Pos - * - * @var string - */ + /** + * Pos + * + * @var string + */ #[ORM\Column(name: 'pos', type: 'text')] protected $pos; -/** - * Menu - * - * @var string - */ + /** + * Menu + * + * @var string + */ #[ORM\Column(name: 'menu', type: 'text')] protected $menu; -/** - * Shop zu welcher zu dem Shop gehört - * - * @var int - */ + /** + * Shop zu welcher zu dem Shop gehört + * + * @var int + */ #[ORM\ManyToOne(targetEntity: 'Shop')] #[ORM\JoinColumn(name: 'shop_id', referencedColumnName: 'id')] protected $shop; -/** - * Text - * - * @var string - */ + /** + * Text + * + * @var string + */ #[ORM\Column(name: 'text1', type: 'text')] protected $text; -/** - * NotInMenu - * - * @var boolean - */ + /** + * NotInMenu + * + * @var boolean + */ #[ORM\Column(name: 'notinmenu', type: 'boolean')] protected $notInMenu; -#[ORM\Column(name: 'url', length: 255, unique: true)] + #[ORM\Column(name: 'url', length: 255, unique: true)] protected $url; -/** - * Language - * - * @var string - */ + /** + * Language + * + * @var string + */ #[ORM\Column(name: 'language', type: 'string')] protected $language; -/** - * private - * - * @var boolean - */ + /** + * private + * + * @var boolean + */ #[ORM\Column(name: 'private', type: 'boolean')] protected $private; -/** - * displayTitle - * - * @var boolean - */ + /** + * displayTitle + * + * @var boolean + */ #[ORM\Column(name: 'display_title', type: 'boolean')] protected $displayTitle; -/** - * @var boolean - */ + /** + * @var boolean + */ #[ORM\Column(name: 'display_only_logged_in', type: 'boolean')] protected $displayOnlyWhenLoggedIn; -/** - * metaKeywords - * - * @var string - */ + /** + * metaKeywords + * + * @var string + */ #[ORM\Column(name: 'meta_keywords', type: 'string', nullable: true)] protected $metaKeywords; -/** - * metaAuthor - * - * @var string - */ + /** + * metaAuthor + * + * @var string + */ #[ORM\Column(name: 'meta_author', type: 'string', nullable: true)] protected $metaAuthor; -/** - * metaDescription - * - * @var string - */ + /** + * metaDescription + * + * @var string + */ #[ORM\Column(name: 'meta_description', type: 'string', nullable: true)] protected $metaDescription; -/** - * metaCustomTitle - * - * @var string - */ + /** + * metaCustomTitle + * + * @var string + */ #[ORM\Column(name: 'meta_custom_title', type: 'string', nullable: true)] protected $metaCustomTitle; -/** - * metaOgTitle - * - * @var string - */ + /** + * metaOgTitle + * + * @var string + */ #[ORM\Column(name: 'meta_og_title', type: 'string', nullable: true)] protected $metaOgTitle; -/** - * metaOgType - * - * @var string - */ + /** + * metaOgType + * + * @var string + */ #[ORM\Column(name: 'meta_og_type', type: 'string', nullable: true)] protected $metaOgType; -/** - * metaOgUrl - * - * @var string - */ + /** + * metaOgUrl + * + * @var string + */ #[ORM\Column(name: 'meta_og_url', type: 'string', nullable: true)] protected $metaOgUrl; -/** - * metaOgImage - * - * @var string - */ + /** + * metaOgImage + * + * @var string + */ #[ORM\Column(name: 'meta_og_image', type: 'string', nullable: true)] protected $metaOgImage; -/** - * metaOgDescription - * - * @var string - */ + /** + * metaOgDescription + * + * @var string + */ #[ORM\Column(name: 'meta_og_description', type: 'string', nullable: true)] protected $metaOgDescription; -/** - * Parent - * - * @var integer - */ + /** + * Parent + * + * @var integer + */ #[ORM\Column(name: 'parent', type: 'integer')] protected $parentRaw; -#[ORM\OneToMany(targetEntity: 'Cms', mappedBy: 'parent')] + #[ORM\OneToMany(targetEntity: 'Cms', mappedBy: 'parent')] private $children; -#[ORM\ManyToOne(targetEntity: 'Cms', inversedBy: 'children')] + #[ORM\ManyToOne(targetEntity: 'Cms', inversedBy: 'children')] #[ORM\JoinColumn(name: 'parent', referencedColumnName: 'id')] private $parent; @@ -693,4 +694,13 @@ class Cms { $this->noIndex = $noIndex; } + public function getAccounts(): array + { + return (array)$this->accounts; + } + + public function setAccounts(array $var): void + { + $this->accounts = $var; + } } diff --git a/src/new/src/PSC/Shop/MediaBundle/Resources/views/form/media_image_widget.html.twig b/src/new/src/PSC/Shop/MediaBundle/Resources/views/form/media_image_widget.html.twig index da3671e28..289712073 100755 --- a/src/new/src/PSC/Shop/MediaBundle/Resources/views/form/media_image_widget.html.twig +++ b/src/new/src/PSC/Shop/MediaBundle/Resources/views/form/media_image_widget.html.twig @@ -1,25 +1,25 @@ {% extends 'form_div_layout.html.twig' %} {% block media_image_widget %} - {% apply spaceless %} +{% apply spaceless %} -
+
-
- {{ block('hidden_widget') }} - - - {% endapply %} -{% endblock %} \ No newline at end of file +
+{{ block('hidden_widget') }} + + +{% endapply %} +{% endblock %} diff --git a/src/new/src/PSC/Shop/NewsBundle/Form/Backend/NewsType.php b/src/new/src/PSC/Shop/NewsBundle/Form/Backend/NewsType.php index d4ce8e09e..a3bb661dd 100755 --- a/src/new/src/PSC/Shop/NewsBundle/Form/Backend/NewsType.php +++ b/src/new/src/PSC/Shop/NewsBundle/Form/Backend/NewsType.php @@ -13,6 +13,7 @@ namespace PSC\Shop\NewsBundle\Form\Backend; +use PSC\Libraries\AceEditorBundle\Form\Extension\CKEditor5Type; use PSC\System\PluginBundle\Form\Chain\Field; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Extension\Core\Type\CheckboxType; @@ -51,7 +52,7 @@ class NewsType extends AbstractType 'Englisch' => 'en_EN' ], 'required' => true]) - ->add('text', TextareaType::class, array( + ->add('text', CKEditor5Type::class, array( 'label' => 'Text', 'required' => false )); diff --git a/src/new/src/PSC/Shop/NewsBundle/Resources/views/backend/edit/edit.html.twig b/src/new/src/PSC/Shop/NewsBundle/Resources/views/backend/edit/edit.html.twig index a2910b869..4eebdec76 100755 --- a/src/new/src/PSC/Shop/NewsBundle/Resources/views/backend/edit/edit.html.twig +++ b/src/new/src/PSC/Shop/NewsBundle/Resources/views/backend/edit/edit.html.twig @@ -1,154 +1,135 @@ -{% extends 'backend_base.html.twig' %} +{% extends 'backend_tailwind_base.html.twig' %} +{% form_theme form 'tailwind_formtheme.html.twig' %} {% trans_default_domain 'core_news_edit' %} +{% block header %} +
+

+ + + + {{ 'News'|trans }} {{ 'edit'|trans }}

+
+ +{% endblock %} + {% block body %} +
+ {{ form_start(form, {attr: {class: ''}}) }} +
+
+
+ + + + + + + {{ 'General'|trans }} + + + + + + {{ 'Text'|trans }} + {% for customGroup in customGroups %} + + + + + {{ customGroup.title }} + {% endfor %} +
+
+
+
+ {{ 'General'|trans }} +
-
-
-
-

- - {{'News'|trans}} > - {{'edit'|trans}} -

-
- -
-
-
- {{ form_start(form, { 'attr': {'class': ''}}) }} -
-
-

{{ news.title }}

-
-
-
-
- +
+
+ {{ form_row(form.title) }}
-
-
-
-
-
-
- -
- {{ form_widget(form.title) }} -
-
-
-
-
- -
- {{ form_widget(form.url) }} -
-
-
-
-
-
{{ form_widget(form.enable) }}
-
-
-
-
-
-
- -
- {{ form_widget(form.sortDate) }} -
-
-
-
-
- -
- {{ form_widget(form.language) }} -
-
-
-
-
-
-
- -
- {{ form_widget(form.introduction) }} -
-
-
-
-
-
- {{ form_widget(form.text, {attr: {'class': 'form-control summernote'}}) }} -
- {% for customGroup in customGroups %} -
- {% for customField in customFields %} - {% if customField.group == customGroup.id and customField.getTemplate %} - {{ include(customField.getTemplate, { 'form': form }) }} - {% endif %} - {% endfor %} -
- {% endfor %} -
+
+ {{ form_row(form.url) }}
-
-
- -
-
-
-
- {{ form_widget(form.save, {attr: {class: 'btn btn-primary btn-sm'}}) }} +
+
+ {{ form_widget(form.enable)}} +
+
+ {{ form_row(form.sortDate)}} +
+
+ {{ form_row(form.language)}}
+
+ {{ form_row(form.introduction)}} +
-
- {{ form_end(form) }} -
- - {{ summernote_mediabundle_init('default') }} - -
-
-

{{ 'Changes'|trans }}

-
-
- - - - - - {% for change in changes %} - + + {% for customGroup in customGroups %} +
+ {% for customField in customFields %} + {% if customField.group == customGroup.id and customField.getTemplate %} + {{ include(customField.getTemplate, {form: form}) }} + {% endif %} {% endfor %} -
-
{{ 'Date'|trans }}{{ 'Username'|trans }}{{'Changes'|trans}}
{{ change.created|date('H:i:s d.m.Y') }}{{ change.username }} - {% for key,set in change.changeset %} - {% if set[1] is not iterable %} - {{key}} {{ set[0]}}{% if set[1] is null %}0{% else %}{{ set[1] }}{% endif %}
- {% endif %} - {% endfor %} -
+
+ {% endfor %} +
+
+
+ {{ form_widget(form.save, {attr: {class: 'psc-button-save'}}) }} +
+ {{ form_end(form) }} +
+ +

+ + + +{{ 'Changes'|trans }}

+
+
+ +
+ {{ 'Username'|trans }} +
+
+ {{ 'Changes'|trans }}
+ {% for change in changes %} +
+ +
+ {{ change.username }} +
+
+ {% for key, set in change.changeset %} + {% if set[1] is not iterable %} + {{ key }} {{ set[0] }}{% if set[1] is null %}0{% else %}{{ set[1] }}{% endif %}
+ {% endif %} + {% endfor %} +
+
+ {% endfor %} + +
{% endblock %} diff --git a/src/new/src/PSC/Shop/ProductBundle/Controller/Backend/Product/EditController.php b/src/new/src/PSC/Shop/ProductBundle/Controller/Backend/Product/EditController.php index 60f14b097..ba140f7a7 100755 --- a/src/new/src/PSC/Shop/ProductBundle/Controller/Backend/Product/EditController.php +++ b/src/new/src/PSC/Shop/ProductBundle/Controller/Backend/Product/EditController.php @@ -64,14 +64,7 @@ class EditController extends AbstractController $this->logService = $logService; $this->historyService = $historyService; } - /** - * edit - * - * @param Request $request - * @param EntityManagerInterface $entityManager - * @param $uid - * @return JsonResponse - */ + #[Route(path: '/edit/save/lang/data/{uid}', name: 'backend_production_product_edit_save_lang_data')] public function saveLangDataAction(Request $request, EntityManagerInterface $entityManager, $uid) { @@ -83,11 +76,11 @@ class EditController extends AbstractController $tmp = $product->getLangData(); - $tmp[$request->get('langcode')] = [ - 'title' => $request->get('title'), - 'einleitung' => $request->get('einleitung'), - 'text_art' => $request->get('text_art'), - 'info' => $request->get('info'), + $tmp[$request->getPayload()->get('langcode')] = [ + 'title' => $request->getPayload()->get('title'), + 'einleitung' => $request->getPayload()->get('einleitung'), + 'text_art' => $request->getPayload()->get('text_art'), + 'info' => $request->getPayload()->get('info'), 'uuid' => Uuid::uuid4() ]; @@ -96,7 +89,7 @@ class EditController extends AbstractController $entityManager->flush(); } - return new JsonResponse(['success' => true, 'langcode' => $request->get('langcode')]); + return new JsonResponse(['success' => true, 'langcode' => $request->getPayload()->get('langcode')]); } /** @@ -113,12 +106,11 @@ class EditController extends AbstractController $product = $entityManager ->getRepository('PSC\Shop\EntityBundle\Entity\Product')->findOneBy(['uid' => $uid]); - if ($product) { $tmp = $product->getLangData(); - if (!isset($tmp[$request->get('langcode')])) { - $tmp[$request->get('langcode')] = ['title' => $product->getTitle(), 'einleitung' => '', 'text_art' => '', 'info' => '', 'uuid' => Uuid::uuid4()]; + if (!isset($tmp[$request->getPayload()->get('langcode')])) { + $tmp[$request->getPayload()->get('langcode')] = ['title' => $product->getTitle(), 'einleitung' => '', 'text_art' => '', 'info' => '', 'uuid' => Uuid::uuid4()]; $product->setLangData($tmp); $entityManager->persist($product); @@ -126,7 +118,7 @@ class EditController extends AbstractController } } - return new JsonResponse(['success' => true, 'langcode' => $request->get('langcode')]); + return new JsonResponse(['success' => true, 'langcode' => $request->getPayload()->get('langcode')]); } /** diff --git a/src/new/src/PSC/Shop/ProductBundle/Controller/Backend/Productgroup/EditController.php b/src/new/src/PSC/Shop/ProductBundle/Controller/Backend/Productgroup/EditController.php index a2db87b5c..607120812 100755 --- a/src/new/src/PSC/Shop/ProductBundle/Controller/Backend/Productgroup/EditController.php +++ b/src/new/src/PSC/Shop/ProductBundle/Controller/Backend/Productgroup/EditController.php @@ -80,23 +80,15 @@ class EditController extends AbstractController ->getRepository('PSC\Shop\EntityBundle\Entity\Productgroup')->findOneBy(['uid' => $uid]); if ($productgroup) { $tmp = $productgroup->getLangData(); - $tmp[$request->get('langcode')] = ['title' => $request->get('title'), 'uuid' => Uuid::uuid4()]; + $tmp[$request->getPayload()->get('langcode')] = ['title' => $request->getPayload()->get('title'), 'uuid' => Uuid::uuid4()]; $productgroup->setLangData($tmp); $entityManager->persist($productgroup); $entityManager->flush(); } - return new JsonResponse(['success' => true, 'langcode' => $request->get('langcode')]); + return new JsonResponse(['success' => true, 'langcode' => $request->getPayload()->get('langcode')]); } - /** - * edit - * - * @param Request $request - * @param EntityManagerInterface $entityManager - * @param $uid - * @return JsonResponse - */ #[Route(path: '/edit/add/lang/data/{uid}', name: 'backend_production_productgroup_edit_add_lang_data')] public function addLangDataAction( Request $request, @@ -107,15 +99,15 @@ class EditController extends AbstractController ->getRepository('PSC\Shop\EntityBundle\Entity\Productgroup')->findOneBy(['uid' => $uid]); if ($productgroup) { $tmp = $productgroup->getLangData(); - if (!isset($tmp[$request->get('langcode')])) { - $tmp[$request->get('langcode')] = ['title' => $productgroup->getTitle(), 'uuid' => Uuid::uuid4()]; + if (!isset($tmp[$request->getPayload()->get('langcode')])) { + $tmp[$request->getPayload()->get('langcode')] = ['title' => $productgroup->getTitle(), 'uuid' => Uuid::uuid4()]; $productgroup->setLangData($tmp); $entityManager->persist($productgroup); $entityManager->flush(); } } - return new JsonResponse(['success' => true, 'langcode' => $request->get('langcode')]); + return new JsonResponse(['success' => true, 'langcode' => $request->getPayload()->get('langcode')]); } /** @@ -173,7 +165,7 @@ class EditController extends AbstractController ->getRepository('PSC\Shop\EntityBundle\Entity\Productgroup')->findBy(array('url' => $url, 'shop' => $selectedShop)); if (count($products) > 0) { $tmp = array(); - /** @var Productgroup $product */ + /** @var Productgroup $product */ foreach ($products as $product) { $tmp[] = $product->getTitle(); } @@ -204,7 +196,7 @@ class EditController extends AbstractController { $customFields = $fieldService->getFields(\PSC\System\PluginBundle\Form\Interfaces\Field::Productgroup); $customGroups = $fieldService->getGroups(\PSC\System\PluginBundle\Form\Interfaces\Field::Productgroup); -/** @var \PSC\Shop\EntityBundle\Entity\Shop $selectedShop */ + /** @var \PSC\Shop\EntityBundle\Entity\Shop $selectedShop */ $selectedShop = $shopService->getSelectedShop(); $productgroup = new Productgroup(); $productgroup->setShop($selectedShop); @@ -268,11 +260,11 @@ class EditController extends AbstractController $customFields = $fieldService->getFields(\PSC\System\PluginBundle\Form\Interfaces\Field::Productgroup); $customGroups = $fieldService->getGroups(\PSC\System\PluginBundle\Form\Interfaces\Field::Productgroup); -/** @var \PSC\Shop\EntityBundle\Entity\Shop $selectedShop */ + /** @var \PSC\Shop\EntityBundle\Entity\Shop $selectedShop */ $selectedShop = $shopService->getSelectedShop(); -/** @var Productgroup $productgroup */ + /** @var Productgroup $productgroup */ $productgroup = $entityManager->getRepository('PSC\Shop\EntityBundle\Entity\Productgroup')->findOneBy(['uid' => $uid]); -/** @var \PSC\Shop\EntityBundle\Document\Productgroup $productGroupDoc */ + /** @var \PSC\Shop\EntityBundle\Document\Productgroup $productGroupDoc */ $productGroupDoc = $documentManager ->getRepository('PSC\Shop\EntityBundle\Document\Productgroup') ->findOneBy(array('uid' => (string)$productgroup->getUid())); @@ -334,7 +326,7 @@ class EditController extends AbstractController /** @var Productgroup $productgroup */ $productgroup = $entityManager->getRepository('PSC\Shop\EntityBundle\Entity\Productgroup')->findOneBy(['uid' => $uid]); $subGroups = $entityManager->getRepository('PSC\Shop\EntityBundle\Entity\Productgroup')->findByParent($uid); -/** @var \PSC\Shop\EntityBundle\Entity\Shop $selectedShop */ + /** @var \PSC\Shop\EntityBundle\Entity\Shop $selectedShop */ $selectedShop = $shopService->getSelectedShop(); if (count($subGroups) > 0) { $session->getFlashBag()->add('danger', 'Productgroup \'' . $productgroup->getTitle() . '\' has subgroups and can not be deleted!'); diff --git a/src/new/src/PSC/Shop/ProductBundle/Form/Backend/Product/ProductType.php b/src/new/src/PSC/Shop/ProductBundle/Form/Backend/Product/ProductType.php index 30b75f49a..77ff1331c 100755 --- a/src/new/src/PSC/Shop/ProductBundle/Form/Backend/Product/ProductType.php +++ b/src/new/src/PSC/Shop/ProductBundle/Form/Backend/Product/ProductType.php @@ -136,6 +136,7 @@ class ProductType extends AbstractType } }, 'multiple' => true, + 'required' => false, 'query_builder' => function (EntityRepository $er) { return $er->createQueryBuilder('u') ->where('u.shop = :shop')->setParameter('shop', $this->shop->getSelectedShop()->getId()); @@ -145,6 +146,7 @@ class ProductType extends AbstractType 'class' => 'PSC\Shop\EntityBundle\Entity\Product', 'choice_label' => 'title', 'multiple' => true, + 'required' => false, 'query_builder' => function (EntityRepository $er) { return $er->createQueryBuilder('u') ->where('u.shop = :shop AND u.originalProduct = 0')->setParameter('shop', $this->shop->getSelectedShop()->getId()); diff --git a/src/new/src/PSC/Shop/ProductBundle/Resources/views/backend/product/edit/create.html.twig b/src/new/src/PSC/Shop/ProductBundle/Resources/views/backend/product/edit/create.html.twig index 17c9832f8..cff1a8678 100755 --- a/src/new/src/PSC/Shop/ProductBundle/Resources/views/backend/product/edit/create.html.twig +++ b/src/new/src/PSC/Shop/ProductBundle/Resources/views/backend/product/edit/create.html.twig @@ -934,34 +934,35 @@ {{ parent() }} {% endblock %} diff --git a/src/new/src/PSC/Shop/ProductBundle/Resources/views/backend/product/edit/edit.html.twig b/src/new/src/PSC/Shop/ProductBundle/Resources/views/backend/product/edit/edit.html.twig index 99dd92830..ba92bf988 100755 --- a/src/new/src/PSC/Shop/ProductBundle/Resources/views/backend/product/edit/edit.html.twig +++ b/src/new/src/PSC/Shop/ProductBundle/Resources/views/backend/product/edit/edit.html.twig @@ -1106,86 +1106,99 @@ a[href^="#formlayouter"] {display:none;} {% block javascripts %} {{ parent() }} {% endblock %} diff --git a/src/new/src/PSC/Shop/ProductBundle/Resources/views/backend/productgroup/edit/create.html.twig b/src/new/src/PSC/Shop/ProductBundle/Resources/views/backend/productgroup/edit/create.html.twig index 4a38129e5..b037aca3e 100755 --- a/src/new/src/PSC/Shop/ProductBundle/Resources/views/backend/productgroup/edit/create.html.twig +++ b/src/new/src/PSC/Shop/ProductBundle/Resources/views/backend/productgroup/edit/create.html.twig @@ -319,33 +319,35 @@ -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/src/new/src/PSC/Shop/ProductBundle/Resources/views/backend/productgroup/edit/edit.html.twig b/src/new/src/PSC/Shop/ProductBundle/Resources/views/backend/productgroup/edit/edit.html.twig index 636850c00..8c266c466 100755 --- a/src/new/src/PSC/Shop/ProductBundle/Resources/views/backend/productgroup/edit/edit.html.twig +++ b/src/new/src/PSC/Shop/ProductBundle/Resources/views/backend/productgroup/edit/edit.html.twig @@ -362,76 +362,88 @@ {% endblock %} diff --git a/src/new/src/PSC/Shop/QueueBundle/Document/Queue/Url.php b/src/new/src/PSC/Shop/QueueBundle/Document/Queue/Url.php index 9aa6f5f75..406f13c0c 100755 --- a/src/new/src/PSC/Shop/QueueBundle/Document/Queue/Url.php +++ b/src/new/src/PSC/Shop/QueueBundle/Document/Queue/Url.php @@ -13,9 +13,9 @@ class Url */ #[Field(type: 'string')] protected $url; -/** - * @return string - */ + #[Field(type: 'string')] + protected $message; + public function getUrl() { return $this->url; @@ -28,4 +28,14 @@ class Url { $this->url = $url; } + + public function setMessage(?string $message): void + { + $this->message = $message; + } + + public function getMessage(): string + { + return (string)$this->message; + } } diff --git a/src/new/src/PSC/Shop/QueueBundle/Resources/views/queue/url.html.twig b/src/new/src/PSC/Shop/QueueBundle/Resources/views/queue/url.html.twig index 96a5ecd33..f9c951b3d 100755 --- a/src/new/src/PSC/Shop/QueueBundle/Resources/views/queue/url.html.twig +++ b/src/new/src/PSC/Shop/QueueBundle/Resources/views/queue/url.html.twig @@ -14,5 +14,15 @@
+
+
+
+ +
+ {{ form_widget(form.message) }} +
+
+
+
-
\ No newline at end of file +
diff --git a/src/new/src/PSC/Shop/QueueBundle/Type/Url.php b/src/new/src/PSC/Shop/QueueBundle/Type/Url.php index 7e31cac49..456f0503d 100755 --- a/src/new/src/PSC/Shop/QueueBundle/Type/Url.php +++ b/src/new/src/PSC/Shop/QueueBundle/Type/Url.php @@ -8,10 +8,13 @@ use Doctrine\ORM\EntityManager; use Doctrine\ORM\EntityManagerInterface; use GuzzleHttp\Client; use LogicException; +use PSC\Libraries\AceEditorBundle\Form\Extension\AceEditorType; use PSC\Shop\EntityBundle\Document\Queue; use PSC\Shop\QueueBundle\Event\EventInterface; +use PSC\Shop\QueueBundle\Event\Order\Create; use PSC\Shop\QueueBundle\Event\Position\Printpartner\Notify; use PSC\System\PluginBundle\Event\EveryRun; +use PSC\System\SettingsBundle\Service\TemplateVars; use Symfony\Component\Form\Extension\Core\Type\TextType; use Symfony\Component\Form\Form; use Symfony\Component\Form\FormBuilderInterface; @@ -27,11 +30,16 @@ class Url implements QueueInterface, ConfigurableElementInterface private $_entityManager = null; private $_doctrine_mongodb = null; private $_error = null; - function __construct(FormFactoryInterface $formFactory, EntityManagerInterface $entityManager, DocumentManager $doctrine_mongodb) + private $_template = null; + protected $_templateVars = null; + + public function __construct(TemplateVars $templateVars, FormFactoryInterface $formFactory, EntityManagerInterface $entityManager, DocumentManager $doctrine_mongodb, \Twig\Environment $template) { $this->_formFactory = $formFactory; $this->_entityManager = $entityManager; $this->_doctrine_mongodb = $doctrine_mongodb; + $this->_template = $template; + $this->_templateVars = $templateVars; } /** @@ -63,18 +71,35 @@ class Url implements QueueInterface, ConfigurableElementInterface public function getForm(FormBuilderInterface $builder, $form_options, EventInterface $event) { $builder->add("url", TextType::class, array('label' => 'Url', 'attr' => array('class' => 'form-element'))); + $builder->add("message", AceEditorType::class, array( + 'wrapper_attr' => array(), // aceeditor wrapper html attributes. + 'width' => '100%', + 'height' => '500', + 'font_size' => 14, + 'mode' => 'ace/mode/json', // every single default mode must have ace/mode/* prefix + 'theme' => 'ace/theme/monokai', // every single default theme must have ace/theme/* prefix + 'tab_size' => null, + 'read_only' => null, + 'use_soft_tabs' => null, + 'use_wrap_mode' => null, + 'show_print_margin' => null, + 'required' => false, + 'highlight_active_line' => null, + 'label' => 'Message', 'attr' => array('class' => 'form-element'))); } public function injectDocument(Form $form, EventInterface $event, Queue $objQueue) { $url = new \PSC\Shop\QueueBundle\Document\Queue\Url(); $url->setUrl($form->get('url')->getData()); + $url->setMessage($form->get('message')->getData()); $objQueue->setQueueDocument($url); } public function setFormData(Form $form, EventInterface $event, Queue $queueObj) { $form->get('url')->setData($queueObj->getQueueDocument()->getUrl()); + $form->get('message')->setData($queueObj->getQueueDocument()->getMessage()); } public function getTemplate() @@ -89,6 +114,7 @@ class Url implements QueueInterface, ConfigurableElementInterface public function execute(EventInterface $event, Queue $urlDoc) { + $templateVars = $this->_templateVars; /** @var \PSC\Shop\QueueBundle\Document\Queue\Url $doc */ $doc = $urlDoc->getQueueDocument(); try { @@ -102,6 +128,24 @@ class Url implements QueueInterface, ConfigurableElementInterface $client = new Client(); $res = $client->request('GET', $doc->getUrl()); } + if ($event instanceof Create) { + $client = new Client(); + $urlTemplate = $this->_template->createTemplate($doc->getUrl()); + $messageTemplate = $this->_template->createTemplate($doc->getMessage()); + $templateVars->loadOrder($event->getOrder()); + $urlString = $urlTemplate->render($templateVars->getTwigVars()); + $messageString = $messageTemplate->render($templateVars->getTwigVars()); + $res = $client->request( + 'POST', + $urlString, + [ + 'headers' => [ + 'Accept' => 'application/json', + ], + 'body' => $messageString + ] + ); + } } catch (\Exception $e) { $this->_error = $e->getMessage(); return false; diff --git a/src/new/src/PSC/Shop/UserBundle/Security/ApiKeyAuthenticator.php b/src/new/src/PSC/Shop/UserBundle/Security/ApiKeyAuthenticator.php index b7f794d95..0931ff119 100755 --- a/src/new/src/PSC/Shop/UserBundle/Security/ApiKeyAuthenticator.php +++ b/src/new/src/PSC/Shop/UserBundle/Security/ApiKeyAuthenticator.php @@ -23,7 +23,6 @@ use Symfony\Component\Security\Http\Authenticator\Passport\SelfValidatingPasspor class ApiKeyAuthenticator extends AbstractAuthenticator { - public function __construct(private readonly Instance $instance, private readonly EntityManagerInterface $entityManager, private readonly DocumentManager $documentManager) { } @@ -66,7 +65,11 @@ class ApiKeyAuthenticator extends AbstractAuthenticator $shop = $this->entityManager->getRepository(Shop::class)->findOneBy(['apiKey' => $apiToken]); if ($shop) { - return new UserBadge($apiToken); + return new SelfValidatingPassport( + new UserBadge($shop->getUid(), function () use ($shop) { + return $shop; + }) + ); } $instance = $this->documentManager @@ -74,7 +77,11 @@ class ApiKeyAuthenticator extends AbstractAuthenticator ->findOneBy(['supporttoken' => $apiToken]); if ($instance) { - return new UserBadge($apiToken); + return new SelfValidatingPassport( + new UserBadge($instance->getId(), function () use ($instance) { + return $instance; + }) + ); } throw new \Exception('No API token provided'); diff --git a/src/new/src/PSC/Shop/UserBundle/Security/ZendAuthenticator.php b/src/new/src/PSC/Shop/UserBundle/Security/ZendAuthenticator.php index 227ac4be7..b14160332 100755 --- a/src/new/src/PSC/Shop/UserBundle/Security/ZendAuthenticator.php +++ b/src/new/src/PSC/Shop/UserBundle/Security/ZendAuthenticator.php @@ -23,7 +23,6 @@ use Symfony\Component\Security\Http\Authenticator\Passport\SelfValidatingPasspor class ZendAuthenticator extends AbstractAuthenticator { - public function __construct(private readonly Instance $instance, private readonly EntityManagerInterface $entityManager, private readonly DocumentManager $documentManager) { } diff --git a/src/new/src/PSC/System/PluginBundle/Resources/views/backend/list/index.html.twig b/src/new/src/PSC/System/PluginBundle/Resources/views/backend/list/index.html.twig index 59c27e1a0..35af6e295 100755 --- a/src/new/src/PSC/System/PluginBundle/Resources/views/backend/list/index.html.twig +++ b/src/new/src/PSC/System/PluginBundle/Resources/views/backend/list/index.html.twig @@ -96,12 +96,12 @@ {% block javascripts %} {{ parent() }} -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/src/new/src/PSC/System/SettingsBundle/Resources/views/backend/settings/index.html.twig b/src/new/src/PSC/System/SettingsBundle/Resources/views/backend/settings/index.html.twig index 088bfb9b1..b46904e1e 100755 --- a/src/new/src/PSC/System/SettingsBundle/Resources/views/backend/settings/index.html.twig +++ b/src/new/src/PSC/System/SettingsBundle/Resources/views/backend/settings/index.html.twig @@ -435,12 +435,12 @@ {% block javascripts %} {{ parent() }} -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/src/new/src/PSC/System/UpdateBundle/Migrations/Version20250702215721.php b/src/new/src/PSC/System/UpdateBundle/Migrations/Version20250702215721.php new file mode 100644 index 000000000..90e35d387 --- /dev/null +++ b/src/new/src/PSC/System/UpdateBundle/Migrations/Version20250702215721.php @@ -0,0 +1,17 @@ +entityManager->getConnection()->exec("CREATE TABLE `account_cms` ( + `account_id` bigint(20) NOT NULL DEFAULT 0, + `cms_id` bigint(20) NOT NULL DEFAULT 0, + PRIMARY KEY (`account_id`,`cms_id`), + KEY `cms_id` (`cms_id`) + ) ENGINE=InnoDB DEFAULT CHARSET=utf8; + "); + } +} diff --git a/src/new/symfony.lock b/src/new/symfony.lock index 0e5dd2e0d..a65ecc906 100755 --- a/src/new/symfony.lock +++ b/src/new/symfony.lock @@ -997,6 +997,15 @@ "twig/twig": { "version": "v2.12.5" }, + "vincentlanglet/twig-cs-fixer": { + "version": "3.5", + "recipe": { + "repo": "github.com/symfony/recipes-contrib", + "branch": "main", + "version": "3.0", + "ref": "d42582ae1bce86fd43491d6264c738b0867f8ffe" + } + }, "webmozart/assert": { "version": "1.7.0" }, diff --git a/src/new/templates/form_div_layout_5.html.twig b/src/new/templates/form_div_layout_5.html.twig index 4cce59e2a..e9f102de8 100755 --- a/src/new/templates/form_div_layout_5.html.twig +++ b/src/new/templates/form_div_layout_5.html.twig @@ -59,7 +59,7 @@ {%- if required and placeholder is none and not placeholder_in_choices and not multiple and (attr.size is not defined or attr.size <= 1) -%} {% set required = false %} {%- endif -%} - {% if multiple %} + {% if false and multiple %}
+{%- endblock form_widget_simple -%} + +{%- block form_widget_compound -%} +
+ {%- if form is rootform -%} + {{ form_errors(form) }} + {%- endif -%} + {{- block('form_rows') -}} + {{- form_rest(form) -}} +
+{%- endblock form_widget_compound -%} + +{%- block collection_widget -%} + {% if prototype is defined and not prototype.rendered %} + {%- set attr = attr|merge({'data-prototype': form_row(prototype) }) -%} + {% endif %} + {{- block('form_widget') -}} +{%- endblock collection_widget -%} + +{%- block textarea_widget -%} + +{%- endblock textarea_widget -%} + +{%- block choice_widget -%} + {% if expanded %} + {{- block('choice_widget_expanded') -}} + {% else %} + {{- block('choice_widget_collapsed') -}} + {% endif %} +{%- endblock choice_widget -%} + +{%- block choice_widget_expanded -%} +
+ {%- for child in form %} + {{- form_widget(child) -}} + {{- form_label(child, null, {translation_domain: choice_translation_domain}) -}} + {% endfor -%} +
+{%- endblock choice_widget_expanded -%} + +{%- block choice_widget_collapsed -%} + {%- if required and placeholder is none and not placeholder_in_choices and not multiple and (attr.size is not defined or attr.size <= 1) -%} + {% set required = false %} + {%- endif -%} + {% if false and multiple %} +
+
+ +
+ +
+ + + + +
+ +
+ +
+
+ {% else %} + + {% endif %} +{%- endblock choice_widget_collapsed -%} + +{%- block choice_widget_options -%} + {% for group_label, choice in options %} + {%- if choice is iterable -%} + + {% set options = choice %} + {{- block('choice_widget_options') -}} + + {%- else -%} + + {%- endif -%} + {% endfor %} +{%- endblock choice_widget_options -%} + +{%- block checkbox_widget -%} + +{%- endblock checkbox_widget -%} + +{%- block radio_widget -%} + +{%- endblock radio_widget -%} + +{%- block datetime_widget -%} + {% if widget == 'single_text' %} + {{- block('form_widget_simple') -}} + {%- else -%} +
+ {{- form_errors(form.date) -}} + {{- form_errors(form.time) -}} + {{- form_widget(form.date) -}} + {{- form_widget(form.time) -}} +
+ {%- endif -%} +{%- endblock datetime_widget -%} + +{%- block date_widget -%} + {%- if widget == 'single_text' -%} + {{ block('form_widget_simple') }} + {%- else -%} +
+ {{- date_pattern|replace({ + '{{ year }}': form_widget(form.year), + '{{ month }}': form_widget(form.month), + '{{ day }}': form_widget(form.day), + })|raw -}} +
+ {%- endif -%} +{%- endblock date_widget -%} + +{%- block time_widget -%} + {%- if widget == 'single_text' -%} + {{ block('form_widget_simple') }} + {%- else -%} + {%- set vars = widget == 'text' ? { 'attr': { 'size': 1 }} : {} -%} +
+ {{ form_widget(form.hour, vars) }}{% if with_minutes %}:{{ form_widget(form.minute, vars) }}{% endif %}{% if with_seconds %}:{{ form_widget(form.second, vars) }}{% endif %} +
+ {%- endif -%} +{%- endblock time_widget -%} + +{%- block dateinterval_widget -%} + {%- if widget == 'single_text' -%} + {{- block('form_widget_simple') -}} + {%- else -%} +
+ {{- form_errors(form) -}} + + + + {%- if with_years %}{% endif -%} + {%- if with_months %}{% endif -%} + {%- if with_weeks %}{% endif -%} + {%- if with_days %}{% endif -%} + {%- if with_hours %}{% endif -%} + {%- if with_minutes %}{% endif -%} + {%- if with_seconds %}{% endif -%} + + + + + {%- if with_years %}{% endif -%} + {%- if with_months %}{% endif -%} + {%- if with_weeks %}{% endif -%} + {%- if with_days %}{% endif -%} + {%- if with_hours %}{% endif -%} + {%- if with_minutes %}{% endif -%} + {%- if with_seconds %}{% endif -%} + + + + {%- if with_invert %}{{ form_widget(form.invert) }}{% endif -%} +
+ {%- endif -%} +{%- endblock dateinterval_widget -%} + +{%- block number_widget -%} + {# type="number" doesn't work with floats in localized formats #} + {%- set type = type|default('text') -%} + {{ block('form_widget_simple') }} +{%- endblock number_widget -%} + +{%- block integer_widget -%} + {%- set type = type|default('number') -%} + {{ block('form_widget_simple') }} +{%- endblock integer_widget -%} + +{%- block money_widget -%} + {{ money_pattern|form_encode_currency(block('form_widget_simple')) }} +{%- endblock money_widget -%} + +{%- block url_widget -%} + {%- set type = type|default('url') -%} + {{ block('form_widget_simple') }} +{%- endblock url_widget -%} + +{%- block search_widget -%} + {%- set type = type|default('search') -%} + {{ block('form_widget_simple') }} +{%- endblock search_widget -%} + +{%- block percent_widget -%} + {%- set type = type|default('text') -%} + {{ block('form_widget_simple') }}{% if symbol %} {{ symbol|default('%') }}{% endif %} +{%- endblock percent_widget -%} + +{%- block password_widget -%} + {%- set type = type|default('password') -%} + {{ block('form_widget_simple') }} +{%- endblock password_widget -%} + +{%- block hidden_widget -%} + {%- set type = type|default('hidden') -%} + {{ block('form_widget_simple') }} +{%- endblock hidden_widget -%} + +{%- block email_widget -%} + {%- set type = type|default('email') -%} + {{ block('form_widget_simple') }} +{%- endblock email_widget -%} + +{%- block range_widget -%} + {% set type = type|default('range') %} + {{- block('form_widget_simple') -}} +{%- endblock range_widget %} + +{%- block button_widget -%} + {%- if label is empty -%} + {%- if label_format is not empty -%} + {% set label = label_format|replace({ + '%name%': name, + '%id%': id, + }) %} + {%- elseif label is not same as(false) -%} + {% set label = name|humanize %} + {%- endif -%} + {%- endif -%} + +{%- endblock button_widget -%} + +{%- block submit_widget -%} + {%- set type = type|default('submit') -%} + {{ block('button_widget') }} +{%- endblock submit_widget -%} + +{%- block reset_widget -%} + {%- set type = type|default('reset') -%} + {{ block('button_widget') }} +{%- endblock reset_widget -%} + +{%- block tel_widget -%} + {%- set type = type|default('tel') -%} + {{ block('form_widget_simple') }} +{%- endblock tel_widget -%} + +{%- block color_widget -%} + {%- set type = type|default('color') -%} + {{ block('form_widget_simple') }} +{%- endblock color_widget -%} + +{%- block week_widget -%} + {%- if widget == 'single_text' -%} + {{ block('form_widget_simple') }} + {%- else -%} + {%- set vars = widget == 'text' ? { 'attr': { 'size': 1 }} : {} -%} +
+ {{ form_widget(form.year, vars) }}-{{ form_widget(form.week, vars) }} +
+ {%- endif -%} +{%- endblock week_widget -%} + +{# Labels #} + +{%- block form_label -%} + {% if label is not same as(false) -%} + {% if not compound -%} + {% set label_attr = label_attr|merge({'for': id}) %} + {%- endif -%} + {% if required -%} + {% set label_attr = label_attr|merge({'class': (label_attr.class|default('') ~ ' required')|trim}) %} + {%- endif -%} + {% if label is empty -%} + {%- if label_format is not empty -%} + {% set label = label_format|replace({ + '%name%': name, + '%id%': id, + }) %} + {%- else -%} + {% set label = name|humanize %} + {%- endif -%} + {%- endif -%} + <{{ element|default('label') }}{% if label_attr %}{% with { attr: label_attr } %}{{ block('attributes') }}{% endwith %}{% endif %}> + {%- if translation_domain is same as(false) -%} + {%- if label_html is same as(false) -%} + {{- label -}} + {%- else -%} + {{- label|raw -}} + {%- endif -%} + {%- else -%} + {%- if label_html is same as(false) -%} + {{- label|trans(label_translation_parameters, translation_domain) -}} + {%- else -%} + {{- label|trans(label_translation_parameters, translation_domain)|raw -}} + {%- endif -%} + {%- endif -%} + + {%- endif -%} +{%- endblock form_label -%} + +{%- block button_label -%}{%- endblock -%} + +{# Help #} + +{% block form_help -%} + {%- if help is not empty -%} + {%- set help_attr = help_attr|merge({class: (help_attr.class|default('') ~ ' help-text')|trim}) -%} +

+ {%- if translation_domain is same as(false) -%} + {%- if help_html is same as(false) -%} + {{- help -}} + {%- else -%} + {{- help|raw -}} + {%- endif -%} + {%- else -%} + {%- if help_html is same as(false) -%} + {{- help|trans(help_translation_parameters, translation_domain) -}} + {%- else -%} + {{- help|trans(help_translation_parameters, translation_domain)|raw -}} + {%- endif -%} + {%- endif -%} +

+ {%- endif -%} +{%- endblock form_help %} + +{# Rows #} + +{%- block repeated_row -%} + {# + No need to render the errors here, as all errors are mapped + to the first child (see RepeatedTypeValidatorExtension). + #} + {{- block('form_rows') -}} +{%- endblock repeated_row -%} + +{%- block form_row -%} + {%- set widget_attr = {} -%} + {%- if help is not empty -%} + {%- set widget_attr = {attr: {'aria-describedby': id ~"_help"}} -%} + {%- endif -%} + + {{- form_label(form) -}} + {{- form_errors(form) -}} + {{- form_widget(form, widget_attr) -}} + {{- form_help(form) -}} +
+{%- endblock form_row -%} + +{%- block button_row -%} + + {{- form_widget(form) -}} +
+{%- endblock button_row -%} + +{%- block hidden_row -%} + {{ form_widget(form) }} +{%- endblock hidden_row -%} + +{# Misc #} + +{%- block form -%} + {{ form_start(form) }} + {{- form_widget(form) -}} + {{ form_end(form) }} +{%- endblock form -%} + +{%- block form_start -%} + {%- do form.setMethodRendered() -%} + {% set method = method|upper %} + {%- if method in ["GET", "POST"] -%} + {% set form_method = method %} + {%- else -%} + {% set form_method = "POST" %} + {%- endif -%} + + {%- if form_method != method -%} + + {%- endif -%} + {%- endblock form_start -%} + + {%- block form_end -%} + {%- if not render_rest is defined or render_rest -%} + {{ form_rest(form) }} + {%- endif -%} + +{%- endblock form_end -%} + +{%- block form_errors -%} + {%- if errors|length > 0 -%} +
    + {%- for error in errors -%} +
  • {{ error.message }}
  • + {%- endfor -%} +
+ {%- endif -%} +{%- endblock form_errors -%} + +{%- block form_rest -%} + {% for child in form -%} + {% if not child.rendered %} + {{- form_row(child) -}} + {% endif %} + {%- endfor -%} + + {% if not form.methodRendered and form is rootform %} + {%- do form.setMethodRendered() -%} + {% set method = method|upper %} + {%- if method in ["GET", "POST"] -%} + {% set form_method = method %} + {%- else -%} + {% set form_method = "POST" %} + {%- endif -%} + + {%- if form_method != method -%} + + {%- endif -%} + {% endif -%} +{% endblock form_rest %} + +{# Support #} + +{%- block form_rows -%} + {% for child in form|filter(child => not child.rendered) %} + {{- form_row(child) -}} + {% endfor %} +{%- endblock form_rows -%} + +{%- block widget_attributes -%} + id="{{ id }}" name="{{ full_name }}" + {%- if disabled %} disabled="disabled"{% endif -%} + {%- if required %} required="required"{% endif -%} + {{ block('attributes') }} +{%- endblock widget_attributes -%} + +{%- block widget_container_attributes -%} + {%- if id is not empty %}id="{{ id }}"{% endif -%} + {{ block('attributes') }} +{%- endblock widget_container_attributes -%} + +{%- block button_attributes -%} + id="{{ id }}" name="{{ full_name }}"{% if disabled %} disabled="disabled"{% endif -%} + {{ block('attributes') }} +{%- endblock button_attributes -%} + +{% block attributes -%} + {%- for attrname, attrvalue in attr -%} + {{- " " -}} + {%- if attrname in ['placeholder', 'title'] -%} + {{- attrname }}="{{ translation_domain is same as(false) or attrvalue is null ? attrvalue : attrvalue|trans(attr_translation_parameters, translation_domain) }}" + {%- elseif attrvalue is same as(true) -%} + {{- attrname }}="{{ attrname }}" + {%- elseif attrvalue is not same as(false) -%} + {{- attrname }}="{{ attrvalue }}" + {%- endif -%} + {%- endfor -%} +{%- endblock attributes -%} diff --git a/src/new/templates/tailwind_formtheme.html.twig b/src/new/templates/tailwind_formtheme.html.twig new file mode 100644 index 000000000..c8fc31ce5 --- /dev/null +++ b/src/new/templates/tailwind_formtheme.html.twig @@ -0,0 +1,468 @@ + +{%- block form_widget -%} + {% if compound %} + {{- block('form_widget_compound') -}} + {% else %} + {{- block('form_widget_simple') -}} + {% endif %} +{%- endblock form_widget -%} + +{%- block form_widget_simple -%} + {%- set type = type|default('text') -%} + {% if type == 'text' %} + {%- set attr = attr|merge({for: id}) -%} + {%- set attr = attr|merge({class: (attr.class|default('') ~ ' border-1 px-3 py-3 bg-white rounded text-sm shadow focus:outline-none focus:ring w-full ease-linear transition-all duration-150' )|trim}) -%} + {% endif %} + +{%- endblock form_widget_simple -%} + +{%- block form_widget_compound -%} +
+ {%- if form.parent is empty -%} + {{ form_errors(form) }} + {%- endif -%} + {{- block('form_rows') -}} + {{- form_rest(form) -}} +
+{%- endblock form_widget_compound -%} + + + +{%- block textarea_widget -%} + {%- set attr = attr|merge({class: (attr.class|default('') ~ ' border-1 px-3 py-3 bg-white rounded text-sm shadow focus:outline-none focus:ring w-full ease-linear transition-all duration-150' )|trim}) -%} + +{%- endblock textarea_widget -%} + +{%- block choice_widget -%} + {% if expanded %} + {{- block('choice_widget_expanded') -}} + {% else %} + {%- set attr = attr|merge({class: (attr.class|default('') ~ ' border-1 px-3 py-3 bg-white rounded text-sm shadow focus:outline-none focus:ring w-full ease-linear transition-all duration-150')|trim}) -%} + {{- block('choice_widget_collapsed') -}} + {% endif %} +{%- endblock choice_widget -%} + +{%- block choice_widget_expanded -%} +
+ {%- for child in form %} + {{- form_widget(child) -}} + {{- form_label(child, null, {translation_domain: choice_translation_domain}) -}} + {% endfor -%} +
+{%- endblock choice_widget_expanded -%} + +{%- block choice_widget_collapsed -%} + + {%- if required and placeholder is none and not placeholder_in_choices and not multiple and (attr.size is not defined or attr.size <= 1) -%} + {% set required = false %} + {%- endif -%} + {% if multiple %} +
+
+ +
+ +
+ + + + +
+ +
+ +
+
+ {% else %} + + {% endif %} +{%- endblock choice_widget_collapsed -%} + +{%- block choice_widget_options -%} + {% for group_label, choice in options %} + {%- if choice is iterable -%} + + {% set options = choice %} + {{- block('choice_widget_options') -}} + + {%- else -%} + + {%- endif -%} + {% endfor %} +{%- endblock choice_widget_options -%} + +{%- block checkbox_widget -%} +
+ + {{- form_label(form) -}} +
+{%- endblock checkbox_widget -%} + +{%- block radio_widget -%} + +{%- endblock radio_widget -%} + +{%- block datetime_widget -%} + {% if widget == 'single_text' %} + {{- block('form_widget_simple') -}} + {%- else -%} +
+ {{- form_errors(form.date) -}} + {{- form_errors(form.time) -}} + {{- form_widget(form.date) -}} + {{- form_widget(form.time) -}} +
+ {%- endif -%} +{%- endblock datetime_widget -%} + +{%- block date_widget -%} + {%- if widget == 'single_text' -%} + {{ block('form_widget_simple') }} + {%- else -%} +
+ {{- date_pattern|replace({ + '{{ year }}': form_widget(form.year), + '{{ month }}': form_widget(form.month), + '{{ day }}': form_widget(form.day), + })|raw -}} +
+ {%- endif -%} +{%- endblock date_widget -%} + +{%- block time_widget -%} + {%- if widget == 'single_text' -%} + {{ block('form_widget_simple') }} + {%- else -%} + {%- set vars = widget == 'text' ? { 'attr': { 'size': 1 }} : {} -%} +
+ {{ form_widget(form.hour, vars) }}{% if with_minutes %}:{{ form_widget(form.minute, vars) }}{% endif %}{% if with_seconds %}:{{ form_widget(form.second, vars) }}{% endif %} +
+ {%- endif -%} +{%- endblock time_widget -%} + +{%- block dateinterval_widget -%} + {%- if widget == 'single_text' -%} + {{- block('form_widget_simple') -}} + {%- else -%} +
+ {{- form_errors(form) -}} + + + + {%- if with_years %}{% endif -%} + {%- if with_months %}{% endif -%} + {%- if with_weeks %}{% endif -%} + {%- if with_days %}{% endif -%} + {%- if with_hours %}{% endif -%} + {%- if with_minutes %}{% endif -%} + {%- if with_seconds %}{% endif -%} + + + + + {%- if with_years %}{% endif -%} + {%- if with_months %}{% endif -%} + {%- if with_weeks %}{% endif -%} + {%- if with_days %}{% endif -%} + {%- if with_hours %}{% endif -%} + {%- if with_minutes %}{% endif -%} + {%- if with_seconds %}{% endif -%} + + +
{{ form_label(form.years) }}{{ form_label(form.months) }}{{ form_label(form.weeks) }}{{ form_label(form.days) }}{{ form_label(form.hours) }}{{ form_label(form.minutes) }}{{ form_label(form.seconds) }}
{{ form_widget(form.years) }}{{ form_widget(form.months) }}{{ form_widget(form.weeks) }}{{ form_widget(form.days) }}{{ form_widget(form.hours) }}{{ form_widget(form.minutes) }}{{ form_widget(form.seconds) }}
+ {%- if with_invert %}{{ form_widget(form.invert) }}{% endif -%} +
+ {%- endif -%} +{%- endblock dateinterval_widget -%} + +{%- block number_widget -%} + {# type="number" doesn't work with floats #} + {%- set type = type|default('text') -%} + {{ block('form_widget_simple') }} +{%- endblock number_widget -%} + +{%- block integer_widget -%} + {%- set type = type|default('number') -%} + {{ block('form_widget_simple') }} +{%- endblock integer_widget -%} + +{%- block money_widget -%} + {{ money_pattern|replace({ '{{ widget }}': block('form_widget_simple') })|raw }} +{%- endblock money_widget -%} + +{%- block url_widget -%} + {%- set type = type|default('url') -%} + {{ block('form_widget_simple') }} +{%- endblock url_widget -%} + +{%- block search_widget -%} + {%- set type = type|default('search') -%} + {{ block('form_widget_simple') }} +{%- endblock search_widget -%} + +{%- block percent_widget -%} + {%- set type = type|default('text') -%} + {{ block('form_widget_simple') }} % +{%- endblock percent_widget -%} + +{%- block password_widget -%} + {%- set type = type|default('password') -%} + {{ block('form_widget_simple') }} +{%- endblock password_widget -%} + +{%- block hidden_widget -%} + {%- set type = type|default('hidden') -%} + {{ block('form_widget_simple') }} +{%- endblock hidden_widget -%} + +{%- block email_widget -%} + {%- set type = type|default('email') -%} + {{ block('form_widget_simple') }} +{%- endblock email_widget -%} + +{%- block range_widget -%} + {% set type = type|default('range') %} + {{- block('form_widget_simple') -}} +{%- endblock range_widget %} + +{%- block button_widget -%} + {%- if label is empty -%} + {%- if label_format is not empty -%} + {% set label = label_format|replace({ + '%name%': name, + '%id%': id, + }) %} + {%- elseif label is same as(false) -%} + {% set translation_domain = false %} + {%- else -%} + {% set label = name|humanize %} + {%- endif -%} + {%- endif -%} + +{%- endblock button_widget -%} + {% block checkbox_radio_label -%} + {{- form_label(form) -}} + {% endblock %} +{%- block submit_widget -%} + {%- set type = type|default('submit') -%} + {{ block('button_widget') }} +{%- endblock submit_widget -%} + +{%- block reset_widget -%} + {%- set type = type|default('reset') -%} + {{ block('button_widget') }} +{%- endblock reset_widget -%} + +{%- block tel_widget -%} + {%- set type = type|default('tel') -%} + {{ block('form_widget_simple') }} +{%- endblock tel_widget -%} + +{%- block color_widget -%} + {%- set type = type|default('color') -%} + {{ block('form_widget_simple') }} +{%- endblock color_widget -%} + +{# Labels #} + +{%- block form_label -%} + {% if label is not same as(false) -%} + {% if not compound -%} + {% set label_attr = label_attr|merge({'for': id}) %} + {%- endif -%} + {% if required -%} + {% set label_attr = label_attr|merge({'class': (label_attr.class|default('') ~ ' required')|trim}) %} + {%- endif -%} + {% if label is empty -%} + {%- if label_format is not empty -%} + {% set label = label_format|replace({ + '%name%': name, + '%id%': id, + }) %} + {%- else -%} + {% set label = name|humanize %} + {%- endif -%} + {%- endif -%} + {%- set label_attr = label_attr|merge({for: id}) -%} + {%- set label_attr = label_attr|merge({class: (label_attr.class|default('') ~ ' block uppercase text-xs font-bold mb-2' )|trim}) -%} + <{{ element|default('label') }}{% if label_attr %}{% with { attr: label_attr } %}{{ block('attributes') }}{% endwith %}{% endif %}>{{ translation_domain is same as(false) ? label : label|trans({}, translation_domain) }} + {%- endif -%} +{%- endblock form_label -%} + +{%- block button_label -%}{%- endblock -%} + +{# Rows #} + +{%- block repeated_row -%} + {# + No need to render the errors here, as all errors are mapped + to the first child (see RepeatedTypeValidatorExtension). + #} + {{- block('form_rows') -}} +{%- endblock repeated_row -%} + +{%- block form_row -%} +
+ {{- form_label(form) -}} + {{- form_errors(form) -}} + {{- form_widget(form) -}} +
+{%- endblock form_row -%} + +{%- block button_row -%} +
+ {{- form_widget(form) -}} +
+{%- endblock button_row -%} + +{%- block hidden_row -%} + {{ form_widget(form) }} +{%- endblock hidden_row -%} + +{# Misc #} + +{%- block form -%} + {{ form_start(form) }} + {{- form_widget(form) -}} + {{ form_end(form) }} +{%- endblock form -%} + +{%- block form_start -%} + {%- do form.setMethodRendered() -%} + {% set method = method|upper %} + {%- if method in ["GET", "POST"] -%} + {% set form_method = method %} + {%- else -%} + {% set form_method = "POST" %} + {%- endif -%} +
+ {%- if form_method != method -%} + + {%- endif -%} +{%- endblock form_start -%} + +{%- block form_end -%} + {%- if not render_rest is defined or render_rest -%} + {{ form_rest(form) }} + {%- endif -%} +
+{%- endblock form_end -%} + +{%- block form_errors -%} + {%- if errors|length > 0 -%} +
    + {%- for error in errors -%} +
  • {{ error.message }}
  • + {%- endfor -%} +
+ {%- endif -%} +{%- endblock form_errors -%} + +{%- block form_rest -%} + {% for child in form -%} + {% if not child.rendered %} + {{- form_row(child) -}} + {% endif %} + {%- endfor %} + + {% if not form.methodRendered and form.parent is null %} + {%- do form.setMethodRendered() -%} + {% set method = method|upper %} + {%- if method in ["GET", "POST"] -%} + {% set form_method = method %} + {%- else -%} + {% set form_method = "POST" %} + {%- endif -%} + + {%- if form_method != method -%} + + {%- endif -%} + {% endif %} +{% endblock form_rest %} + +{# Support #} + +{%- block form_rows -%} + {% for child in form %} + {{- form_row(child) -}} + {% endfor %} +{%- endblock form_rows -%} + +{%- block widget_attributes -%} + id="{{ id }}" name="{{ full_name }}" + {%- if disabled %} disabled="disabled"{% endif -%} + {%- if required %} required="required"{% endif -%} + {{ block('attributes') }} +{%- endblock widget_attributes -%} + +{%- block widget_container_attributes -%} + {%- if id is not empty %}id="{{ id }}"{% endif -%} + {{ block('attributes') }} +{%- endblock widget_container_attributes -%} + +{%- block button_attributes -%} + id="{{ id }}" name="{{ full_name }}"{% if disabled %} disabled="disabled"{% endif -%} + {{ block('attributes') }} +{%- endblock button_attributes -%} + +{% block attributes -%} + {%- for attrname, attrvalue in attr -%} + {{- " " -}} + {%- if attrname in ['placeholder', 'title'] -%} + {{- attrname }}="{{ translation_domain is same as(false) ? attrvalue : attrvalue|trans({}, translation_domain) }}" + {%- elseif attrvalue is same as(true) -%} + {{- attrname }}="{{ attrname }}" + {%- elseif attrvalue is not same as(false) -%} + {{- attrname }}="{{ attrvalue }}" + {%- endif -%} + {%- endfor -%} +{%- endblock attributes -%} + diff --git a/src/new/tests/PSC/Shop/Basket/Lagacy/AddTest.php b/src/new/tests/PSC/Shop/Basket/Lagacy/AddTest.php new file mode 100644 index 000000000..8b2be6689 --- /dev/null +++ b/src/new/tests/PSC/Shop/Basket/Lagacy/AddTest.php @@ -0,0 +1,31 @@ +get(ContactRepository::class); + + $testUser = $userRepository->loadUserByUsername('company@shop.de'); + + $client->loginUser($testUser, 'api'); + $client->jsonRequest('POST', '/api/basket/legacy/add', [ + 'productUUId' => '01938686-0e4d-7da9-bae3-b2e1b1681f9f', + 'count' => 1 + ], []); + $this->assertResponseIsSuccessful(); + + $data = json_decode($client->getResponse()->getContent(), true); + var_dump($data); + self::assertSame(16640, $data['netto']); + } +} diff --git a/src/new/tests/PSC/Shop/Entity/OrdersTest.php b/src/new/tests/PSC/Shop/Entity/OrdersTest.php index db20904c8..e19ffd466 100755 --- a/src/new/tests/PSC/Shop/Entity/OrdersTest.php +++ b/src/new/tests/PSC/Shop/Entity/OrdersTest.php @@ -1,6 +1,6 @@ get(ShopRepository::class); /** - * @var Shop $shop + * @var Shop $shop */ $shop = $shopRepository->findOneBy(['title' => 'Printchampion']); @@ -30,9 +31,11 @@ class CopyAndChangeContactTest extends WebTestCase $paymentRepository = static::getContainer()->get(PaymentRepository::class); $client->jsonRequest( - 'POST', '/api/order/create', [ + 'POST', + '/api/order/create', + [ 'shop' => [ - 'uuid' => (String)$shop->getUuid() + 'uuid' => (string)$shop->getUuid() ], 'type' => 2, 'shipping' => [ @@ -96,15 +99,19 @@ class CopyAndChangeContactTest extends WebTestCase ] ] ] - ], ['HTTP_apiKey' => $shop->getApiKey()] + ], + ['HTTP_apiKey' => $shop->getApiKey()] ); self::assertSame(200, $client->getResponse()->getStatusCode()); $data = json_decode($client->getResponse()->getContent(), true); $client->jsonRequest( - 'POST', '/api/order/copy', [ + 'POST', + '/api/order/copy', + [ 'uuid' => $data['uuid'], - ], ['HTTP_apiKey' => $shop->getApiKey()] + ], + ['HTTP_apiKey' => $shop->getApiKey()] ); self::assertSame(200, $client->getResponse()->getStatusCode()); @@ -122,14 +129,17 @@ class CopyAndChangeContactTest extends WebTestCase self::assertNotSame($possitionUuid, $data['positions'][0]['uuid']); $contactRepository = static::getContainer()->get(ContactRepository::class); - + $contact = $contactRepository->findOneBy(['username' => 'test@shop.de']); $client->jsonRequest( - 'POST', '/api/order/changecontact', [ + 'POST', + '/api/order/changecontact', + [ 'uuid' => $data['uuid'], 'contact' => $contact->getUuid() - ], ['HTTP_apiKey' => $shop->getApiKey()] + ], + ['HTTP_apiKey' => $shop->getApiKey()] ); $data = json_decode($client->getResponse()->getContent(), true); self::assertNotSame($contactId, $data['contact']['uid']); diff --git a/src/new/tests/Plugins/System/PSC/XmlCalc/Api/GetPriceTest.php b/src/new/tests/Plugins/System/PSC/XmlCalc/Api/GetPriceTest.php index d03037c6d..a6c693f2f 100644 --- a/src/new/tests/Plugins/System/PSC/XmlCalc/Api/GetPriceTest.php +++ b/src/new/tests/Plugins/System/PSC/XmlCalc/Api/GetPriceTest.php @@ -36,7 +36,7 @@ class GetPriceTest extends WebTestCase $data = json_decode($client->getResponse()->getContent(), true); - self::assertSame(2080, $data['netto']); + self::assertSame(16640, $data['netto']); } public function testGetPriceWithAssociation(): void diff --git a/src/new/var/dart-sass/sass b/src/new/var/dart-sass/sass new file mode 100644 index 000000000..cb4fd2574 --- /dev/null +++ b/src/new/var/dart-sass/sass @@ -0,0 +1,20 @@ +#!/bin/sh + +# This script drives the standalone dart-sass package, which bundles together a +# Dart executable and a snapshot of dart-sass. + +follow_links() { + # Use `readlink -f` if it exists, but fall back to manually following symlnks + # for systems (like older Mac OS) where it doesn't. + file="$1" + if readlink -f "$file" 2>&-; then return; fi + + while [ -h "$file" ]; do + file="$(readlink "$file")" + done + echo "$file" +} + +# Unlike $0, $BASH_SOURCE points to the absolute path of this file. +path=`dirname "$(follow_links "$0")"` +exec "$path/src/dart" "$path/src/sass.snapshot" "$@" diff --git a/src/new/var/dart-sass/src/LICENSE b/src/new/var/dart-sass/src/LICENSE new file mode 100644 index 000000000..484f9550c --- /dev/null +++ b/src/new/var/dart-sass/src/LICENSE @@ -0,0 +1,1628 @@ +Dart Sass license: + +Copyright (c) 2016, Google Inc. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +-------------------------------------------------------------------------------- + +Dart SDK license: + +Copyright 2012, the Dart project authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +_fe_analyzer_shared license: + +Copyright 2019, the Dart project authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +analyzer, protobuf and protoc_plugin license: + +Copyright 2013, the Dart project authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +archive license: + +The MIT License + +Copyright (c) 2013-2021 Brendan Duncan. +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +-------------------------------------------------------------------------------- + +args, csslib and logging license: + +Copyright 2013, the Dart project authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +async, cli_util, collection, mime, source_map_stack_trace, stream_channel and +typed_data license: + +Copyright 2015, the Dart project authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +boolean_selector, meta and shelf_packages_handler license: + +Copyright 2016, the Dart project authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +charcode license: + +Copyright 2014, the Dart project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +checked_yaml license: + +Copyright 2019, the Dart project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +cli_pkg license: + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + +-------------------------------------------------------------------------------- + +cli_repl license: + +Copyright (c) 2018, Jennifer Thakar. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the project nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +convert, crypto, shelf_static and vm_service license: + +Copyright 2015, the Dart project authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +coverage, dart_style, dartdoc, glob, http, http_parser, matcher, path, pool, +pub_semver, source_span, string_scanner, test and watcher license: + +Copyright 2014, the Dart project authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +ffi and package_config license: + +Copyright 2019, the Dart project authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +file license: + +Copyright 2017, the Dart project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +-------------------------------------------------------------------------------- + +fixnum, http_multi_server, oauth2, shelf, shelf_web_socket, source_maps and +stack_trace license: + +Copyright 2014, the Dart project authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +frontend_server_client license: + +Copyright 2020, the Dart project authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +grinder and webkit_inspection_protocol license: + +Copyright 2013, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +html license: + +Copyright (c) 2006-2012 The Authors + +Contributors: +James Graham - jg307@cam.ac.uk +Anne van Kesteren - annevankesteren@gmail.com +Lachlan Hunt - lachlan.hunt@lachy.id.au +Matt McDonald - kanashii@kanashii.ca +Sam Ruby - rubys@intertwingly.net +Ian Hickson (Google) - ian@hixie.ch +Thomas Broyer - t.broyer@ltgt.net +Jacques Distler - distler@golem.ph.utexas.edu +Henri Sivonen - hsivonen@iki.fi +Adam Barth - abarth@webkit.org +Eric Seidel - eric@webkit.org +The Mozilla Foundation (contributions from Henri Sivonen since 2008) +David Flanagan (Mozilla) - dflanagan@mozilla.com +Google LLC (contributed the Dart port) - misc@dartlang.org + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +-------------------------------------------------------------------------------- + +io, stream_transform and term_glyph license: + +Copyright 2017, the Dart project authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +js license: + +Copyright 2012, the Dart project authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +json_annotation license: + +Copyright 2017, the Dart project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +lints license: + +Copyright 2021, the Dart project authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +markdown license: + +Copyright 2012, the Dart project authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +native_synchronization license: + +Copyright 2023, the Dart project authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +node_interop license: + +Copyright (c) 2017, Anatoly Pulyaevskiy. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +node_preamble license: + +The MIT License (MIT) + +Copyright (c) 2015 Michael Bullington + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +=== + +Copyright 2012, the Dart project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +petitparser and xml license: + +The MIT License + +Copyright (c) 2006-2023 Lukas Renggli. +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +-------------------------------------------------------------------------------- + +pointycastle license: + + +Copyright (c) 2000 - 2019 The Legion of the Bouncy Castle Inc. (https://www.bouncycastle.org) + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + + +-------------------------------------------------------------------------------- + +pub_api_client license: + +MIT License + +Copyright (c) 2020 Leo Farias + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +-------------------------------------------------------------------------------- + +pubspec license: + +Copyright (c) 2015, Anders Holmgren. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +pubspec_parse license: + +Copyright 2018, the Dart project authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +quiver and retry license: + + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +-------------------------------------------------------------------------------- + +test_api and test_core license: + +Copyright 2018, the Dart project authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +test_descriptor and web_socket_channel license: + +Copyright 2016, the Dart project authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +test_process license: + +Copyright 2017, the Dart project authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +uri license: + +Copyright 2013, the Dart project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +web license: + +Copyright 2023, the Dart project authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +yaml license: + +Copyright (c) 2014, the Dart project authors. +Copyright (c) 2006, Kirill Simonov. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/src/new/var/dart-sass/src/dart b/src/new/var/dart-sass/src/dart new file mode 100644 index 000000000..cf09fe5e9 Binary files /dev/null and b/src/new/var/dart-sass/src/dart differ diff --git a/src/new/var/dart-sass/src/sass.snapshot b/src/new/var/dart-sass/src/sass.snapshot new file mode 100644 index 000000000..1e5b6949b Binary files /dev/null and b/src/new/var/dart-sass/src/sass.snapshot differ diff --git a/src/new/var/plugins/Custom/PSC/CollectLayouter/Resources/views/backend/index/index.html.twig b/src/new/var/plugins/Custom/PSC/CollectLayouter/Resources/views/backend/index/index.html.twig index a6665a289..352bdf85e 100755 --- a/src/new/var/plugins/Custom/PSC/CollectLayouter/Resources/views/backend/index/index.html.twig +++ b/src/new/var/plugins/Custom/PSC/CollectLayouter/Resources/views/backend/index/index.html.twig @@ -314,7 +314,7 @@ .card-fullscreen { display: block; z-index: 9999; - position: fixed; + position: fixed !important; width: 100%; height: 100%; top: 0; @@ -328,6 +328,8 @@ {% block javascripts %} {{ parent() }} {% autoescape 'js' %} + + +
+
+
+ +
+ +
+
+
+
+
+
+
+ + article->file1 != "" && $this->layouterPreviewId == ""): ?> + image()->thumbnailImage($this->article->title, 'layouter', $this->article->file); ?> + + article->file != "" && $this->layouterPreviewId == ""): ?> + image()->thumbnailImage($this->article->title, 'layouter', $this->article->file); ?> + + + article->a6_org_article != 0 && $this->article->file == "" && $this->article->file1 == "") || $this->layouterPreviewId): ?> + articleObj->generatePreview($this->article->id, $this->layouterPreviewId); ?> + +
+
+ + + article->file1 != "" || $this->article->file2 != "" || $this->article->file3 != "" || $this->article->file4 != "" || $this->article->file5 != "" || $this->article->file6 != "" || $this->article->file7 != ""): ?> +
    + article->file1 != ""): ?> +
  • + + + +
  • + + + article->file2 != ""): ?> +
  • + + + +
  • + + + article->file3 != ""): ?> +
  • + + + +
  • + + + article->file4 != ""): ?> +
  • + + + +
  • + + + article->file5 != ""): ?> +
  • + + + +
  • + + + article->file6 != ""): ?> +
  • + + + +
  • + + + article->file7 != ""): ?> +
  • + + + +
  • + +
+ + + article->getInfo() != ""): ?> + article->getInfo() ?> + + +
    + layouterPreviewId && $this->article->getPluginSettings('hplayouter', 'hplayouter')): ?> +
  • + translate('Ändern')?> +
  • + + + article->upload_collecting_orders || $this->article->upload_article || $this->article->upload_weblayouter || $this->article->upload_templateprint || $this->article->upload_steplayouter || $this->article->upload_email || $this->article->upload_post || $this->article->upload_multi || $this->article->upload_steplayouter2 || $this->article->getPluginSettings('formlayouter', 'formlayouter') || $this->article->getPluginSettings('pitchprint', 'uploadPitchprint') || $this->article->getPluginSettings('pitchprint_r2', 'uploadPitchprint')): ?> + layouterPreviewId && !$this->load): /***** aus Bearbeitungsliste ENTFERNEN *****/ ?> +
  • + translate('Aus Bearbeitung löschen')?> +
  • + + + + + + + article->not_edit): ?> + layouterPreviewId && $this->article->resale && $this->article->a6_org_article == 0): ?> +
  • + translate('verkaufen')?> +
  • + article->a6_org_article != 0 && (isset($this->user) && $this->article->contact_id == $this->user->id) && $this->article->resale): ?> +
  • + + translate('verkaufen')?> +
  • + article->a6_org_article != 0 && $this->article->resale): ?> +
  • + translate('Ähnliches Prod. verkaufen')?> +
  • + + + + article->upload_collecting_orders || $this->article->upload_templateprint || $this->article->upload_steplayouter || $this->article->upload_article || $this->article->upload_weblayouter || $this->article->upload_templateprint): ?> + admin && $this->role->level >= 40) || (isset($this->user) && $this->article->contact_id == $this->user->id)) && !$this->layouterPreviewId && $this->article->upload_weblayouter): ?> +
  • + translate('gestalten als Eigentümer')?> +
  • + + + admin && $this->role->level >= 40)) && !$this->layouterPreviewId && ($this->article->upload_collecting_orders || $this->article->upload_templateprint)): ?> +
  • + translate('gestalten als Eigentümer')?> +
  • + + + admin && $this->role->level >= 40)) && !$this->layouterPreviewId && $this->article->upload_steplayouter): ?> +
  • + translate('gestalten als Eigentümer')?> +
  • + + + + admin && $this->role->level >= 40): ?> +
  • + Eigenschaften bearbeiten +
  • + +
+ + article->getYoutubeId() != '') : ?> +
+ +
+ + + article->getCustom1()) || !empty($this->article->getCustom2()) || !empty($this->article->getCustom3()) || !empty($this->article->getCustom4()) || !empty($this->article->getCustom5()) || !empty($this->article->getCustom6()) || !empty($this->article->getCustom7())): ?> +
    + + article->getCustom1())): ?> +
  • + + + article->getCustom2())): ?> +
  • + + + article->getCustom3())): ?> +
  • + + + article->getCustom4())): ?> +
  • + + + article->getCustom5())): ?> +
  • + + + article->getCustom6())): ?> +
  • + + + article->getCustom7())): ?> +
  • + + article->getCustom1()) || !empty($this->article->getCustom2()) || !empty($this->article->getCustom3()) || !empty($this->article->getCustom4()) || !empty($this->article->getCustom5()) || !empty($this->article->getCustom6()) || !empty($this->article->getCustom7())): ?> +
+ + + article->getCustom1()) || !empty($this->article->getCustom2()) || !empty($this->article->getCustom3()) || !empty($this->article->getCustom4()) || !empty($this->article->getCustom5()) || !empty($this->article->getCustom6()) || !empty($this->article->getCustom7())): ?> +
    +
  • + + article->getCustom8())): ?> +
  • article->getCustom8() ?>
  • + + + article->getCustom9())): ?> +
  • article->getCustom9() ?>
  • + + + article->getCustom10())): ?> +
  • article->getCustom10() ?>
  • + + + article->getCustom11())): ?> +
  • article->getCustom11() ?>
  • + + + article->getCustom12())): ?> +
  • article->getCustom12() ?>
  • + + article->getCustom1()) || !empty($this->article->getCustom2()) || !empty($this->article->getCustom3()) || !empty($this->article->getCustom4()) || !empty($this->article->getCustom5()) || !empty($this->article->getCustom6()) || !empty($this->article->getCustom7())): ?> +
+ +
+ + +
+ layouterSession && $this->layouterSession->getTitle() != ""): ?> +

layouterSession->getTitle() ?>

+ +

article->getTitle() ?>

+ + + article->text_art != ""):?> +
article->text_art ?>
+ + + article->text_format != ""):?> +
article->text_format ?>
+ + + shop->install_id == 7):?> + Die Lieferzeiten in der Übersicht + + + +
+
+
+
+
+ + +
+ article->display_no_price): ?> +

translate('Summe')?>

+ + + article->stock): ?> +
Aktueller Bestand: article->stock_count ?> article->getCustom11(); ?>
+ + + weight > 0): ?> +

Gewicht: weight ?>g

+ + + article->display_no_price): ?> + + + + + + + + + + + + + + + +
translate('Preis (netto)')?>:
translate('zzgl. ' . $this->article->mwert . '% MwSt.') ?>
translate('Preis (brutto)')?>: +

zzgl. Versand

+ + + article->not_buy): ?> + layouterPreviewId != "" AND $this->article->getPluginSettings('pitchprint', 'uploadPitchprint')): ?> +
+ + + + formHidden('load', $this->load) ?> + +
+ + layouterPreviewId != "" AND $this->article->getPluginSettings('pitchprint_r2', 'uploadPitchprint')): ?> +
+ + + + formHidden('load', $this->load) ?> + +
+ + article->getPluginSettings('pitchprint', 'uploadPitchprint') && !$this->article->getPluginSettings('pitchprint_r2', 'uploadPitchprint')): ?> +
+ + + + formHidden('load', $this->load) ?> + +
+ + article->not_edit && !$this->layouterPreviewId): /**** GESTALTEN / HOCHLADEN *****/ ?> + +
Keine Mindestbestellmenge, Lieferzeit bei fehlerfreien Druckdaten.
+ + article->not_edit && ($this->shop->id != 224)): /**** ÄNDERN / GESTALTEN *****/ ?> + + + + + + + article->as_offer): ?> + Angebot drucken + + + designsettings()->get('b2bshop')): ?>

Bitte prüfen Sie die von Ihnen eingegebenen Daten sorgfältig auf Richtigkeit. + Mit der Bestellung erteilen Sie automatisch die Druckfreigabe für Ihr Produkt. + Diese entbindet uns von jeder Haftung für evtl. stehengebliebene Fehler.

+ shop->install_id == 7):?>*inkl. MwSt. zzgl. Versand +
+
+ + precalc)): ?> +

translate('Vorkalkulation')?>

+ + precalc as $key => $row): ?> + next() ?>"> + + + + + + + +
Auflage: currency->toCurrency($row['sum']); ?>+mwert . '% ' . $this->translate('MwSt') ?> currency->toCurrency(($row['sum'] / 100 * $this->mwert)); ?>currency->toCurrency(($row['sum']) + ($row['sum'] / 100 * $this->mwert)); ?>
+ +
+
+
+ + article->OrgArticle->custom_1_text != ""): ?> +
+ article->OrgArticle->custom_1_text; ?> +
+ + + article->a6_org_article == 0 && (($this->article->vorlage_info != "" && $this->article->vorlage_info != "
") || $this->article->vorlage_file != ""))): ?> +
+
+
+ article->vorlage_file != ""): ?> + image()->getObj($this->article->vorlage_file); ?> + path != ""): ?> + name ?>
+ + + article->vorlage_file1 != ""): ?> + image()->getObj($this->article->vorlage_file1); ?> + path != ""): ?> + name ?>
+ + + article->vorlage_file2 != ""): ?> + image()->getObj($this->article->vorlage_file2); ?> + path != ""): ?> + name ?>
+ + + article->vorlage_file3 != ""): ?> + image()->getObj($this->article->vorlage_file3); ?> + path != ""): ?> + name ?>
+ + +
+
article->vorlage_info ?>
+
+
+ + + article->a6_org_article != 0 && (($this->article->OrgArticle->vorlage_info != "" && $this->article->OrgArticle->vorlage_info != "
") || $this->article->OrgArticle->vorlage_file != ""))): ?> +
+
+
+ article->OrgArticle->vorlage_file != ""): ?> + image()->getObj($this->article->OrgArticle->vorlage_file); ?> + path != ""): ?> + name ?>
+ + + article->OrgArticle->vorlage_file1 != ""): ?> + image()->getObj($this->article->OrgArticle->vorlage_file1); ?> + path != ""): ?> + name ?>
+ + + article->OrgArticle->vorlage_file2 != ""): ?> + image()->getObj($this->article->vOrgArticle->orlage_file2); ?> + path != ""): ?> + name ?>
+ + + article->OrgArticle->vorlage_file3 != ""): ?> + image()->getObj($this->article->OrgArticle->vorlage_file3); ?> + path != ""): ?> + name ?>
+ + +
+
article->OrgArticle->vorlage_info ?>
+
+
+ + + article->custom_1_title != ""): ?> +
+ article->getCustomTabText(); ?> +
+ + + designsettings()->get('einbetten')): ?> +
+

translate('Einbetten') ?>

+

translate('Teilen Sie dieses Produkt mit Anderen, bewerben Sie es im eigenen BLOG oder Ihrer Website') ?>

+
+ +
+
+ +
+
+
+
+ + + + + + + + + + +
+ */ + ?> + + + + + + + + + + ersetzt mit dem upload template +id="template-wizard" ~ 100 zeilen weiter unten +***********************************************************************/ +?> + + + + + + + + + +
+
+*/ + ?> + + + + + + + + + + + + + + +
+
+*/ +?> + + + ersetzt mit dem upload template +id="template-wizard" ~ 100 zeilen weiter unten +***********************************************************************/ +?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ */ +?> + + + + + + + + + + + + + + * + */?> + + article->upload_collecting_orders && $this->article->isCollectingOrdersIntegrated()): ?> + headScript()->prependFile('/'. $this->designPath . 'collecting_orders_integrated.js'); ?> + partial('article/_collecting_orders_integrated.phtml', array('article' => $this->article, 'basepath' => $this->basepath, 'addcontactform' => $this->addcontactform, 'shop' => $this->shop, 'user' => $this->user)) ?> + + headScript()->prependFile('/'. $this->designPath . 'collecting_orders.js'); ?> + partial('article/_collecting_orders.phtml', array('article' => $this->article, 'basepath' => $this->basepath, 'addcontactform' => $this->addcontactform, 'shop' => $this->shop, 'user' => $this->user)) ?> + + + article->upload_multi): ?> + partial('article/_upload_multi.phtml', array('article' => $this->article, 'basepath' => $this->basepath, 'addcontactform' => $this->addcontactform)) ?> + diff --git a/src/old/application/design/vorlagen/redesign-2019_api/articletemplates/scripts/6_basket_index.phtml b/src/old/application/design/vorlagen/redesign-2019_api/articletemplates/scripts/6_basket_index.phtml new file mode 100644 index 000000000..dc23a43d4 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/articletemplates/scripts/6_basket_index.phtml @@ -0,0 +1,67 @@ +article['article']; +$articleObj = new market_article(); +$filesOptions = $this->article['basketarticle']->getFiles(); +?> + + article['basketarticle']->getLayouterId() == "" || $this->article['basketarticle']->getLayouterId() == false)): ?> + image()->thumbnailImage($basketArticle['title'], 'articlelist', $basketArticle['file']); ?> + article['basketarticle']->getLayouterId() == "" || $this->article['basketarticle']->getLayouterId() == false)): ?> + image()->thumbnailImage($basketArticle['title'], 'articlelist', $basketArticle['file']); ?> + + generatePreview($basketArticle['id'], $this->article['basketarticle']->getLayouterId()); ?> + + + + article['basketarticle']->getLayouterId() == "" || $this->article['basketarticle']->getLayouterId() == false)): ?> +
+ + layouter()->getTitle($this->article['basketarticle']->getLayouterId()); ?>
+ + article['options'])): ?> + + + + shop->basketposfield1 != ""): ?>shop->basketposfield1 ?> +
+
+
+
+ + shop->basketposfield2 != ""): ?>shop->basketposfield2 ?> +
+
+
+
+ + + + + + + article['basketarticle']->getCount() ?> + + + + currency->toCurrency($this->article['basketarticle']->getBrutto() * $this->article['basketarticle']->getCount()) ?> +
translate('Löschen'); ?> +
translate('Bearbeiten') ?> + + + diff --git a/src/old/application/design/vorlagen/redesign-2019_api/config/._screenshot.png b/src/old/application/design/vorlagen/redesign-2019_api/config/._screenshot.png new file mode 100644 index 000000000..cff70e19f Binary files /dev/null and b/src/old/application/design/vorlagen/redesign-2019_api/config/._screenshot.png differ diff --git a/src/old/application/design/vorlagen/redesign-2019_api/config/article/approval.ini b/src/old/application/design/vorlagen/redesign-2019_api/config/article/approval.ini new file mode 100644 index 000000000..5a07ac5be --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/config/article/approval.ini @@ -0,0 +1,25 @@ +[approval] +; general form metainformation +user.approval.action = "/article/approval" +user.approval.method = "post" + +; approval element +user.approval.elements.type.type = "radio" +user.approval.elements.type.options.label = "Freigabe?" +user.approval.elements.type.options.required = true +user.approval.elements.type.options.multiOptions.2 = "freigeben" +user.approval.elements.type.options.multiOptions.1 = "Nicht freigeben" + + +; approval element +user.approval.elements.text.type = "textarea" +user.approval.elements.text.options.label = "Text" +user.approval.elements.text.options.rows = 20 +user.approval.elements.text.options.cols = 20 +user.approval.elements.text.options.style = "width: 470px;height: 100px;" + + +; submit element +user.approval.elements.submit.type = "submit" +user.approval.elements.submit.options.class = "submit" +user.approval.elements.submit.options.label = "Senden" \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/config/config.ini b/src/old/application/design/vorlagen/redesign-2019_api/config/config.ini new file mode 100644 index 000000000..e05197cd8 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/config/config.ini @@ -0,0 +1,12 @@ +elements.b2bshop.type = "checkbox" +elements.b2bshop.options.label = "B2B Shop ja/nein" +elements.b2bshop.options.required = false + + +elements.display_no_language.type = "checkbox" +elements.display_no_language.options.label = "Sprache nicht benutzen?" +elements.display_no_language.options.required = false + +elements.einbetten.type = "checkbox" +elements.einbetten.options.label = "Einbetten nicht anzeigen?" +elements.einbetten.options.required = false \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/config/images.ini b/src/old/application/design/vorlagen/redesign-2019_api/config/images.ini new file mode 100644 index 000000000..74dbd0d8b --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/config/images.ini @@ -0,0 +1,128 @@ +[production] + +mode = "imagick" + +languageDefault = "de_DE" + +images.motivelistoverview.scale.type = "scaleWidth" +images.motivelistoverview.scale.data.width = "240" +images.motivelistoverview.scale.data.direction = "SCALE_DOWN" +images.motivelistoverview.render_copyright = "1" + +images.motivelistoverviewbig.scale.type = "scaleWidth" +images.motivelistoverviewbig.scale.data.width = "600" +images.motivelistoverviewbig.scale.data.height = "300" +images.motivelistoverviewbig.scale.data.direction = "SCALE_DOWN" +images.motivelistoverviewbig.render_copyright = "1" + +images.articlelist.scale.type = "scaleWidth" +images.articlelist.scale.data.width = "512" +images.articlelist.scale.data.direction = "SCALE_BOTH" + +images.motivuploadlist.scale.type = "scaleWidth" +images.motivuploadlist.scale.data.width = "250" +images.motivuploadlist.scale.data.direction = "SCALE_BOTH" + +images.articlelist_overview_box.scale.type = "scaleWidth" +images.articlelist_overview_box.scale.data.width = "1410" +images.articlelist_overview_box.scale.data.direction = "SCALE_BOTH" + +images.articlelist_box.scale.type = "scaleWidth" +images.articlelist_box.scale.data.width = "525" +images.articlelist_box.scale.data.direction = "SCALE_BOTH" + +images.top_modul_list.scale.type = "scaleWidth" +images.top_modul_list.scale.data.width = "94" +images.top_modul_list.scale.data.height = "94" +images.top_modul_list.scale.data.direction = "SCALE_BOTH" + +images.motivelist.scale.type = "scaleWidth" +images.motivelist.scale.data.width = "170" +images.motivelist.scale.data.height = "131" +images.motivelist.scale.data.direction = "SCALE_BOTH" +images.motivelist.render_copyright = "1" + +images.sliderbg.scale.type = "scaleWidth" +images.sliderbg.scale.data.width = "700" +images.sliderbg.scale.data.direction = "SCALE_BOTH" + +images.sliderbgbig.scale.type = "scaleWidth" +images.sliderbgbig.scale.data.width = "1440" +images.sliderbgbig.scale.data.direction = "SCALE_BOTH" + +images.stepcrop.scale.type = "scaleWidth" +images.stepcrop.scale.data.width = "520" +images.stepcrop.scale.data.direction = "SCALE_BOTH" + +images.shoplist.scale.type = "scaleWidth" +images.shoplist.scale.data.width = "160" +images.shoplist.scale.data.height = "131" +images.shoplist.scale.data.direction = "SCALE_BOTH" + +images.articletop.scale.type = "scaleWidth" +images.articletop.scale.data.width = "20" +images.articletop.scale.data.direction = "SCALE_BOTH" + +images.admin.scale.type = "scaleWidth" +images.admin.scale.data.width = "90" +images.admin.scale.data.direction = "SCALE_BOTH" + +images.contact.scale.type = "scaleWidth" +images.contact.scale.data.height = "106" +images.contact.scale.data.direction = "SCALE_BOTH" + +images.account.scale.type = "scaleWidth" +images.account.scale.data.height = "106" +images.account.scale.data.direction = "SCALE_BOTH" + +images.logo1.scale.type = "scaleWidth" +images.logo1.scale.data.width = "1440" +images.logo1.scale.data.height = "250" +images.logo1.scale.data.direction = "SCALE_BOTH_MIN" + +images.logo2.scale.type = "scaleWidth" +images.logo2.scale.data.width = "1440" +images.logo2.scale.data.direction = "SCALE_BOTH" + +images.overview.scale.type = "scaleWidth" +images.overview.scale.data.width = "240" +images.overview.scale.data.direction = "SCALE_DOWN" + +images.productbarimage.scale.type = "scaleWidth" +images.productbarimage.scale.data.width = "170" +images.productbarimage.scale.data.height = "110" +images.productbarimage.scale.data.direction = "SCALE_BOTH" + +images.articlesingle.scale.type = "scaleWidth" +images.articlesingle.scale.data.width = "350" +images.articlesingle.scale.data.direction = "SCALE_BOTH" + +images.waren.scale.type = "scaleWidth" +images.waren.scale.data.width = "100" +images.waren.scale.data.direction = "SCALE_BOTH" + +images.layouter.scale.type = "scaleWidth" +images.layouter.scale.data.width = "600" +images.layouter.scale.data.direction = "SCALE_BOTH" + +images.designer.scale.type = "scaleWidth" +images.designer.scale.data.width = "300" +images.designer.scale.data.direction = "SCALE_BOTH" + +images.little.scale.type = "scaleWidth" +images.little.scale.data.width = "50" +images.little.scale.data.direction = "SCALE_BOTH" + +images.articlesinglegreater.scale.type = "scaleWidth" +images.articlesinglegreater.scale.data.width = "800" +images.articlesinglegreater.scale.data.direction = "SCALE_BOTH" + +images.product_overview.scale.type = "scaleWidth" +images.product_overview.scale.data.width = "1410" + +images.product_card.scale.type = "scaleWidth" +images.product_card.scale.data.width = "525" + +[development : production] + +[testing : production] \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/config/index/violation.ini b/src/old/application/design/vorlagen/redesign-2019_api/config/index/violation.ini new file mode 100644 index 000000000..097507163 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/config/index/violation.ini @@ -0,0 +1,29 @@ +[violation] + +violation.action = "/index/violation" +violation.method = "post" +violation.class = "niceform" + +violation.elements.what.type = "select" +violation.elements.what.options.label = "Vorauswahl" +violation.elements.what.options.required = true + +violation.elements.name.type = "text" +violation.elements.name.options.label = "Name" +violation.elements.name.options.required = true + +violation.elements.email.type = "text" +violation.elements.email.options.label = "EMail" +violation.elements.email.options.required = true + +violation.elements.text.type = "textarea" +violation.elements.text.options.label = "Text" +violation.elements.text.options.required = true +violation.elements.text.options.rows = 6 +violation.elements.text.options.cols = 39 + + + +violation.elements.submit.type = "submit" +violation.elements.submit.options.class = "submit" +violation.elements.submit.options.label = "Senden" \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/config/info.ini b/src/old/application/design/vorlagen/redesign-2019_api/config/info.ini new file mode 100644 index 000000000..083b4816c --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/config/info.ini @@ -0,0 +1,3 @@ +title = "Shopdesign" +version = "1.0" +author = "Primabu Presets" \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/config/screenshot.png b/src/old/application/design/vorlagen/redesign-2019_api/config/screenshot.png new file mode 100644 index 000000000..4fd177c47 Binary files /dev/null and b/src/old/application/design/vorlagen/redesign-2019_api/config/screenshot.png differ diff --git a/src/old/application/design/vorlagen/redesign-2019_api/config/user/addcontact.ini b/src/old/application/design/vorlagen/redesign-2019_api/config/user/addcontact.ini new file mode 100644 index 000000000..0eea22d63 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/config/user/addcontact.ini @@ -0,0 +1,132 @@ +[register] +global.class ="form-horizontal" + +; general form metainformation +user.login.method = "post" + +; username element +user.login.legend = "Allgemeines" + +user.login.prefixPath.element.prefix = "TP_Form_Element" +user.login.prefixPath.element.path = "TP/Form/Element" + +; email element +user.login.elements.self_email.type = "Helptext" +user.login.elements.self_email.options.label = "Email*" +user.login.elements.self_email.options.helptext = "Die Emailadresse dient dem Login. Der Anwender erhält automatisch eine Einladung an diese Emailadresse.." +user.login.elements.self_email.options.required = true +user.login.elements.self_email.options.validators.email.validator = "EmailAddress" +user.login.elements.self_email.options.validators.Db_RecordExists.validator = "Db_NoRecordExistsDoctrine" +user.login.elements.self_email.options.validators.Db_RecordExists.options.table = "Contact" +user.login.elements.self_email.options.validators.Db_RecordExists.options.field = "self_email" + +; firstname element +user.rech.legend = "Anschrift" + +user.rech.elements.self_anrede.type = "select" +user.rech.elements.self_anrede.options.label = "Anrede" +user.rech.elements.self_anrede.options.required = false +user.rech.elements.self_anrede.options.multiOptions.1 = "Herr" +user.rech.elements.self_anrede.options.multiOptions.2 = "Frau" +user.rech.elements.self_anrede.options.multiOptions.3 = "Firma" +user.rech.elements.self_anrede.options.multiOptions.4 = "Herr Dr." +user.rech.elements.self_anrede.options.multiOptions.5 = "Frau Dr." +user.rech.elements.self_anrede.options.multiOptions.6 = "Herr Prof." +user.rech.elements.self_anrede.options.multiOptions.7 = "Frau Prof." +user.rech.elements.self_anrede.options.multiOptions.8 = "Herr Prof. Dr." +user.rech.elements.self_anrede.options.multiOptions.9 = "Frau Prof. Dr." + +user.rech.elements.self_firstname.type = "text" +user.rech.elements.self_firstname.options.label = "Firstname*" +user.rech.elements.self_firstname.options.required = true + +; lastname element +user.rech.elements.self_lastname.type = "text" +user.rech.elements.self_lastname.options.label = "Lastname*" +user.rech.elements.self_lastname.options.required = true + +; lastname element +user.rech.elements.self_department.type = "text" +user.rech.elements.self_department.options.label = "Company" + + +; street element +user.rech.elements.self_street.type = "text" +user.rech.elements.self_street.options.label = "Street*" +user.rech.elements.self_street.options.required = true + +; housenumber element +user.rech.elements.self_house_number.type = "text" +user.rech.elements.self_house_number.options.label = "Housenumber*" +user.rech.elements.self_house_number.options.required = true + +; zip element +user.rech.elements.self_zip.type = "text" +user.rech.elements.self_zip.options.label = "Zip*" +user.rech.elements.self_zip.options.required = true + +; city element +user.rech.elements.self_city.type = "text" +user.rech.elements.self_city.options.label = "City*" +user.rech.elements.self_city.options.required = true + +; tel element +user.rech.elements.self_phone.type = "Mobile" +user.rech.elements.self_phone.options.label = "LV/Vor./Tel/Durch." + +; handy element +user.rech.elements.self_mobile.type = "Mobile" +user.rech.elements.self_mobile.options.label = "LV/Vor./Handy" + +; fax element +user.rech.elements.self_fax.type = "Mobile" +user.rech.elements.self_fax.options.label = "LV/Vor./Fax/Durch." + +; firstname element +user.liefer.legend = "Lieferanschrift" +user.liefer.elements.firstname.type = "text" +user.liefer.elements.firstname.options.label = "Firstname*" +user.liefer.elements.firstname.options.required = true + +; lastname element +user.liefer.elements.lastname.type = "text" +user.liefer.elements.lastname.options.label = "Lastname*" +user.liefer.elements.lastname.options.required = true + +; lastname element +user.liefer.elements.company.type = "text" +user.liefer.elements.company.options.label = "Firma" + +; street element +user.liefer.elements.street.type = "text" +user.liefer.elements.street.options.label = "Street*" +user.liefer.elements.street.options.required = true + +; housenumber element +user.liefer.elements.house_number.type = "text" +user.liefer.elements.house_number.options.label = "Housenumber*" +user.liefer.elements.house_number.options.required = true + +; zip element +user.liefer.elements.zip.type = "text" +user.liefer.elements.zip.options.label = "Zip*" +user.liefer.elements.zip.options.required = true + +; city element +user.liefer.elements.city.type = "text" +user.liefer.elements.city.options.label = "City*" +user.liefer.elements.city.options.required = true + +; tel element +user.liefer.elements.phone.type = "text" +user.liefer.elements.phone.options.label = "Tel" + +; submit element +user.submit.elements.submit.type = "submit" +user.submit.elements.submit.options.name = "submit" +user.submit.elements.submit.options.label = "Register" + +user.liefersubmit.elements.submit.type = "submit" +user.liefersubmit.elements.submit.options.class = "green" +user.liefersubmit.elements.submit.options.name = "st" +user.liefersubmit.elements.submit.options.label = "Use Delivery" \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/config/user/addcontactdp.ini b/src/old/application/design/vorlagen/redesign-2019_api/config/user/addcontactdp.ini new file mode 100644 index 000000000..b7f1de3aa --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/config/user/addcontactdp.ini @@ -0,0 +1,145 @@ +[register] +global.class ="form-horizontal" + +; general form metainformation +user.login.action = "/user/register" +user.login.method = "post" + +; username element +user.login.legend = "Allgemeines" + +user.login.prefixPath.element.prefix = "TP_Form_Element" +user.login.prefixPath.element.path = "TP/Form/Element" + +; email element +user.login.elements.self_email.type = "Helptext" +user.login.elements.self_email.options.label = "Email*" +user.login.elements.self_email.options.helptext = "Die Emailadresse dient dem Login. Der Anwender erhält automatisch eine Einladung an diese Emailadresse.." +user.login.elements.self_email.options.required = true +user.login.elements.self_email.options.validators.email.validator = "EmailAddress" +user.login.elements.self_email.options.validators.Db_RecordExists.validator = "Db_NoRecordExistsDoctrine" +user.login.elements.self_email.options.validators.Db_RecordExists.options.table = "Contact" +user.login.elements.self_email.options.validators.Db_RecordExists.options.field = "self_email" + +; firstname element +user.rech.legend = "Anschrift" + +user.rech.elements.self_anrede.type = "select" +user.rech.elements.self_anrede.options.label = "Anrede" +user.rech.elements.self_anrede.options.required = false +user.rech.elements.self_anrede.options.multiOptions.1 = "Herr" +user.rech.elements.self_anrede.options.multiOptions.2 = "Frau" +user.rech.elements.self_anrede.options.multiOptions.3 = "Firma" +user.rech.elements.self_anrede.options.multiOptions.4 = "Herr Dr." +user.rech.elements.self_anrede.options.multiOptions.5 = "Frau Dr." +user.rech.elements.self_anrede.options.multiOptions.6 = "Herr Prof." +user.rech.elements.self_anrede.options.multiOptions.7 = "Frau Prof." +user.rech.elements.self_anrede.options.multiOptions.8 = "Herr Prof. Dr." +user.rech.elements.self_anrede.options.multiOptions.9 = "Frau Prof. Dr." + +user.rech.elements.self_firstname.type = "text" +user.rech.elements.self_firstname.options.label = "Firstname*" +user.rech.elements.self_firstname.options.required = true + +; lastname element +user.rech.elements.self_lastname.type = "text" +user.rech.elements.self_lastname.options.label = "Lastname*" +user.rech.elements.self_lastname.options.required = true + +; lastname element +user.rech.elements.self_department.type = "text" +user.rech.elements.self_department.options.label = "Company" + + +; street element +user.rech.elements.self_street.type = "text" +user.rech.elements.self_street.options.label = "Street*" +user.rech.elements.self_street.options.required = true + +; housenumber element +user.rech.elements.self_house_number.type = "text" +user.rech.elements.self_house_number.options.label = "Housenumber*" +user.rech.elements.self_house_number.options.required = true + +; zip element +user.rech.elements.self_zip.type = "text" +user.rech.elements.self_zip.options.label = "Zip*" +user.rech.elements.self_zip.options.required = true + +; city element +user.rech.elements.self_city.type = "text" +user.rech.elements.self_city.options.label = "City*" +user.rech.elements.self_city.options.required = true + +; tel element +user.rech.elements.self_phone.type = "Mobile" +user.rech.elements.self_phone.options.label = "LV/Vor./Tel/Durch." + +; handy element +user.rech.elements.self_mobile.type = "Mobile" +user.rech.elements.self_mobile.options.label = "LV/Vor./Handy" + +; fax element +user.rech.elements.self_fax.type = "Mobile" +user.rech.elements.self_fax.options.label = "LV/Vor./Fax/Durch." + +user.addr2.legend = "Anschrift 2" +user.addr2.elements.department_2.type = "text" +user.addr2.elements.department_2.options.label = "Company" +user.addr2.elements.street_2.type = "text" +user.addr2.elements.street_2.options.label = "Straße" +user.addr2.elements.street_2.options.required = false +user.addr2.elements.house_number_2.type = "text" +user.addr2.elements.house_number_2.options.label = "Hausnummer" +user.addr2.elements.house_number_2.options.required = false +user.addr2.elements.zip_2.type = "text" +user.addr2.elements.zip_2.options.label = "PLZ" +user.addr2.elements.zip_2.options.required = false +user.addr2.elements.city_2.type = "text" +user.addr2.elements.city_2.options.label = "Ort" +user.addr2.elements.city_2.options.required = false +user.addr2.elements.phone_2.type = "Mobile" +user.addr2.elements.phone_2.options.label = "LV/Vor./Tel/Durch." +user.addr2.elements.mobile_2.type = "Mobile" +user.addr2.elements.mobile_2.options.label = "LV/Vor./Handy" +user.addr2.elements.fax_2.type = "Mobile" +user.addr2.elements.fax_2.options.label = "LV/Vor./Fax/Durch." +user.addr2.elements.internet_2.type = "text" +user.addr2.elements.internet_2.options.label = "Web" +user.addr2.elements.internet_2.options.required = false + +user.addr3.legend = "Anschrift 3" + +user.addr3.elements.department_3.type = "text" +user.addr3.elements.department_3.options.label = "Company" +user.addr3.elements.street_3.type = "text" +user.addr3.elements.street_3.options.label = "Straße" +user.addr3.elements.street_3.options.required = false +user.addr3.elements.house_number_3.type = "text" +user.addr3.elements.house_number_3.options.label = "Hausnummer" +user.addr3.elements.house_number_3.options.required = false +user.addr3.elements.zip_3.type = "text" +user.addr3.elements.zip_3.options.label = "PLZ" +user.addr3.elements.zip_3.options.required = false +user.addr3.elements.city_3.type = "text" +user.addr3.elements.city_3.options.label = "Ort" +user.addr3.elements.city_3.options.required = false +user.addr3.elements.phone_3.type = "Mobile" +user.addr3.elements.phone_3.options.label = "LV/Vor./Tel/Durch." +user.addr3.elements.mobile_3.type = "Mobile" +user.addr3.elements.mobile_3.options.label = "LV/Vor./Handy" +user.addr3.elements.fax_3.type = "Mobile" +user.addr3.elements.fax_3.options.label = "LV/Vor./Fax/Durch." +user.addr3.elements.internet_3.type = "text" +user.addr3.elements.internet_3.options.label = "Web" +user.addr3.elements.internet_3.options.required = false + +; submit element +user.submit.elements.submit.type = "submit" +user.submit.elements.submit.options.name = "submit" +user.submit.elements.submit.options.label = "Register" + +user.liefersubmit.elements.submit.type = "submit" +user.liefersubmit.elements.submit.options.class = "green" +user.liefersubmit.elements.submit.options.name = "st" +user.liefersubmit.elements.submit.options.label = "Use Delivery" \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/config/user/address.ini b/src/old/application/design/vorlagen/redesign-2019_api/config/user/address.ini new file mode 100644 index 000000000..d92d12892 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/config/user/address.ini @@ -0,0 +1,116 @@ +[add] +global.class ="form-horizontal" + +; firstname element +user.id ="register" +user.class ="form-horizontal" +user.legend = "Lieferanschrift" + +user.elements.anrede.type = "select" +user.elements.anrede.options.label = "Anrede" +user.elements.anrede.options.required = false +user.elements.anrede.options.multiOptions.1 = "Herr" +user.elements.anrede.options.multiOptions.2 = "Frau" +user.elements.anrede.options.multiOptions.3 = "Firma" +user.elements.anrede.options.multiOptions.4 = "Herr Dr." +user.elements.anrede.options.multiOptions.5 = "Frau Dr." +user.elements.anrede.options.multiOptions.6 = "Herr Prof." +user.elements.anrede.options.multiOptions.7 = "Frau Prof." +user.elements.anrede.options.multiOptions.8 = "Herr Prof. Dr." +user.elements.anrede.options.multiOptions.9 = "Frau Prof. Dr." +user.elements.anrede.options.class = "custom-select" + +user.elements.company.type = "text" +user.elements.company.options.label = "Firma" +user.elements.company.options.class = "form-control" + +user.elements.firstname.type = "text" +user.elements.firstname.options.label = "Firstname*" +user.elements.firstname.options.required = true +user.elements.firstname.options.class = "form-control" + +; lastname element +user.elements.lastname.type = "text" +user.elements.lastname.options.label = "Lastname*" +user.elements.lastname.options.required = true +user.elements.lastname.options.class = "form-control" + +; lastname element +user.elements.company.type = "text" +user.elements.company.options.label = "Firma" +user.elements.company.options.class = "form-control" + +; street element +user.elements.street.type = "text" +user.elements.street.options.label = "Street*" +user.elements.street.options.required = true +user.elements.street.options.class = "form-control" + +; housenumber element +user.elements.house_number.type = "text" +user.elements.house_number.options.label = "Housenumber*" +user.elements.house_number.options.required = true +user.elements.house_number.options.class = "form-control" + +; zip element +user.elements.zip.type = "text" +user.elements.zip.options.label = "Zip*" +user.elements.zip.options.required = true +user.elements.zip.options.class = "form-control" + +; city element +user.elements.city.type = "text" +user.elements.city.options.label = "City*" +user.elements.city.options.required = true +user.elements.city.options.class = "form-control" + +; city element +user.elements.country.type = "select" +user.elements.country.options.label = "Land*" +user.elements.country.options.required = true +user.elements.country.options.class = "custom-select" + +; tel element +user.elements.phone.type = "text" +user.elements.phone.options.label = "Telefon" +user.elements.phone.options.class = "form-control" + +; mobile phone +user.elements.fax.type = "text" +user.elements.fax.options.label = "Fax" +user.elements.fax.options.class = "form-control" + +; mobile phone +user.elements.mobil_phone.type = "text" +user.elements.mobil_phone.options.label = "Handy" +user.elements.mobil_phone.options.class = "form-control" + +; email phone +user.elements.email.type = "text" +user.elements.email.options.label = "E-Mail" +user.elements.email.options.class = "form-control" + +; ustid +user.elements.ustid.type = "text" +user.elements.ustid.options.label = "USt-IdNr." +user.elements.ustid.options.class = "form-control" + +; what element +user.elements.type.type = "MultiCheckbox" +user.elements.type.options.label = "Anlegen als" +user.elements.type.options.multiOptions.1 = "Rechnungsadresse" +user.elements.type.options.multiOptions.2 = "Lieferadresse" +user.elements.type.options.multiOptions.3 = "Absendeadresse" + +; submit element +user.elements.submit.type = "submit" +user.elements.submit.options.class = "btn btn-primary" +user.elements.submit.options.label = "Anlegen" + +user.elements.update.type = "submit" +user.elements.update.options.class = "btn btn-primary" +user.elements.update.options.label = "Speichern" + +user.elements.del.type = "submit" +user.elements.del.options.class = "btn btn-primary" +user.elements.del.options.label = "Löschen" diff --git a/src/old/application/design/vorlagen/redesign-2019_api/config/user/layouterlogin.ini b/src/old/application/design/vorlagen/redesign-2019_api/config/user/layouterlogin.ini new file mode 100644 index 000000000..62baa1279 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/config/user/layouterlogin.ini @@ -0,0 +1,22 @@ +[login] +; general form metainformation +user.login.action = "/user/layouterlogin" +user.login.method = "post" + +; username element +user.login.elements.name.type = "text" +user.login.elements.name.options.label = "Username" +user.login.elements.name.options.required = true +user.login.elements.name.options.validators.strlen.validator = "StringLength" +user.login.elements.name.options.validators.strlen.options.min = "1" +user.login.elements.name.options.validators.strlen.options.max = "255" + +; password element +user.login.elements.password.type = "password" +user.login.elements.password.options.label = "Password" +user.login.elements.password.options.required = true + +; submit element +user.login.elements.submit.type = "submit" +user.login.elements.submit.options.class = "submit" +user.login.elements.submit.options.label = "Login" \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/config/user/login.ini b/src/old/application/design/vorlagen/redesign-2019_api/config/user/login.ini new file mode 100644 index 000000000..f2f637c26 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/config/user/login.ini @@ -0,0 +1,25 @@ +[login] +; general form metainformation +global.class ="form-horizontal" + +user.login.method = "post" + +; username element +user.login.elements.name.type = "text" +user.login.elements.name.options.label = "E-Mail-Adresse" +user.login.elements.name.options.required = true +user.login.elements.name.options.validators.strlen.validator = "StringLength" +user.login.elements.name.options.validators.strlen.options.min = "1" +user.login.elements.name.options.validators.strlen.options.max = "255" +user.login.elements.name.options.class = "required" + +; password element +user.login.elements.password.type = "password" +user.login.elements.password.options.label = "Password" +user.login.elements.password.options.required = true +user.login.elements.password.options.class = "required" + +; submit element +user.login.elements.submit.type = "submit" +user.login.elements.submit.options.class = "btn btn-outline-primary btn-block my-4" +user.login.elements.submit.options.label = "Anmelden" \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/config/user/registeraccount.ini b/src/old/application/design/vorlagen/redesign-2019_api/config/user/registeraccount.ini new file mode 100644 index 000000000..d6891ac4b --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/config/user/registeraccount.ini @@ -0,0 +1,64 @@ +[register] +; general form metainformation +user.register.action = "/user/registeraccount" +user.register.method = "post" + +; username element +user.register.elements.name.type = "text" +user.register.elements.name.options.label = "Username" +user.register.elements.name.options.required = true + +; password element +user.register.elements.password.type = "password" +user.register.elements.password.options.label = "Password" +user.register.elements.password.options.required = true + +; company element +user.register.elements.company.type = "text" +user.register.elements.company.options.label = "Company" +user.register.elements.company.options.required = true + +; firstname element +user.register.elements.self_firstname.type = "text" +user.register.elements.self_firstname.options.label = "Firstname" +user.register.elements.self_firstname.options.required = true + +; lastname element +user.register.elements.self_lastname.type = "text" +user.register.elements.self_lastname.options.label = "Lastname" +user.register.elements.self_lastname.options.required = true + +; street element +user.register.elements.self_street.type = "text" +user.register.elements.self_street.options.label = "Street" +user.register.elements.self_street.options.required = true + +; housenumber element +user.register.elements.self_house_number.type = "text" +user.register.elements.self_house_number.options.label = "Housenumber" +user.register.elements.self_house_number.options.required = true + +; zip element +user.register.elements.self_zip.type = "text" +user.register.elements.self_zip.options.label = "Zip" +user.register.elements.self_zip.options.required = true + +; city element +user.register.elements.self_city.type = "text" +user.register.elements.self_city.options.label = "City" +user.register.elements.self_city.options.required = true + +; tel element +user.register.elements.self_phone.type = "text" +user.register.elements.self_phone.options.label = "Tel" +user.register.elements.self_phone.options.required = true + +; email element +user.register.elements.self_email.type = "text" +user.register.elements.self_email.options.label = "E-Mail" +user.register.elements.self_email.options.required = true + +; submit element +user.register.elements.submit.type = "submit" +user.register.elements.submit.options.class = "btn btn-primary btn-block my-4" +user.register.elements.submit.options.label = "Register" diff --git a/src/old/application/design/vorlagen/redesign-2019_api/config/user/registercontact.ini b/src/old/application/design/vorlagen/redesign-2019_api/config/user/registercontact.ini new file mode 100644 index 000000000..59fe57e0c --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/config/user/registercontact.ini @@ -0,0 +1,107 @@ +[register] +global.class ="form-horizontal" + +; general form metainformation +user.login.method = "post" + +; username element +user.login.legend = "Anmelde-Daten" + +user.login.prefixPath.element.prefix = "TP_Form_Element" +user.login.prefixPath.element.path = "TP/Form/Element" + +; email element +user.login.elements.self_email.type = "Helptext" +user.login.elements.self_email.options.label = "E-Mail-Adresse*" +user.login.elements.self_email.options.helptext = "Die Emailadresse dient dem Login und dem Kontakt zur Nutzung des Marktplates (z.B. Anmeldebestätigung). Die Emailadresse wird ohne Einwilligung nicht für Werbezwecke genutzt, außer Sie erteilen uns ausdrücklich Ihre Einwilligung zum Erhalt unseres Newsletters s.u.." +user.login.elements.self_email.options.required = true +user.login.elements.self_email.options.validators.email.validator = "EmailAddress" +user.login.elements.self_email.options.validators.Db_RecordExists.validator = "Db_NoRecordExistsDoctrine" +user.login.elements.self_email.options.validators.Db_RecordExists.options.table = "Contact" +user.login.elements.self_email.options.validators.Db_RecordExists.options.field = "self_email" + +; password element +user.login.elements.password.type = "password" +user.login.elements.password.options.label = "Passwort*" +user.login.elements.password.options.required = true +user.login.elements.password.options.renderPassword = true + +user.login.elements.password_re.type = "password" +user.login.elements.password_re.options.label = "Passwort Bestätigung*" +user.login.elements.password_re.options.required = true +user.login.elements.password_re.options.renderPassword = true +user.login.elements.password_re.options.validators.1.validator = "CompareToField" +user.login.elements.password_re.options.validators.1.options = "password" + +; firstname element +user.rech.legend = "Anschrift" + + +user.rech.elements.account.type = "select" +user.rech.elements.account.options.label = "Kontotyp" +user.rech.elements.account.options.required = true +user.rech.elements.account.options.MultiOptions.21 = "Privat" +user.rech.elements.account.options.MultiOptions.24 = "Firma" + +user.rech.elements.self_firstname.type = "text" +user.rech.elements.self_firstname.options.label = "Vorname*" +user.rech.elements.self_firstname.options.required = true + +; lastname element +user.rech.elements.self_lastname.type = "text" +user.rech.elements.self_lastname.options.label = "Nachname*" +user.rech.elements.self_lastname.options.required = true + +; lastname element +user.rech.elements.self_department.type = "text" +user.rech.elements.self_department.options.label = "Company" + +; street element +user.rech.elements.self_street.type = "text" +user.rech.elements.self_street.options.label = "Straße*" +user.rech.elements.self_street.options.required = true + +; housenumber element +user.rech.elements.self_house_number.type = "text" +user.rech.elements.self_house_number.options.label = "Hausnummer*" +user.rech.elements.self_house_number.options.required = true + +; zip element +user.rech.elements.self_zip.type = "text" +user.rech.elements.self_zip.options.label = "Postleitzahl*" +user.rech.elements.self_zip.options.required = true + +; city element +user.rech.elements.self_city.type = "text" +user.rech.elements.self_city.options.label = "Ort*" +user.rech.elements.self_city.options.required = true + +user.rech.elements.ustid.type = "text" +user.rech.elements.ustid.options.label = "UstId" + +user.rech.elements.steuerId.type = "text" +user.rech.elements.steuerId.options.label = "SteuerId" + + +user.rech.elements.self_country.type = "select" +user.rech.elements.self_country.options.label = "Land*" +user.rech.elements.self_country.options.required = true + +; tel element +user.rech.elements.self_phone.type = "text" +user.rech.elements.self_phone.options.label = "Tel" + +user.rech.elements.cp.type = "captcha" +user.rech.elements.cp.options.label = "" +user.rech.elements.cp.options.captcha.captcha = "Image" + +; submit element +user.submit.elements.submit.type = "submit" +user.submit.elements.submit.options.class = "btn btn-primary btn-block my-4" +user.submit.elements.submit.options.name = "submit" +user.submit.elements.submit.options.label = "Registrieren" + +user.liefersubmit.elements.submit.type = "submit" +user.liefersubmit.elements.submit.options.class = "green" +user.liefersubmit.elements.submit.options.name = "st" +user.liefersubmit.elements.submit.options.label = "Use Delivery" \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/config/user/registerguest.ini b/src/old/application/design/vorlagen/redesign-2019_api/config/user/registerguest.ini new file mode 100644 index 000000000..f9eb408fb --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/config/user/registerguest.ini @@ -0,0 +1,170 @@ +[register] +global.class ="form-horizontal" + +; general form metainformation +user.login.method = "post" + +user.rech.prefixPath.element.prefix = "TP_Form_Element" +user.rech.prefixPath.element.path = "TP/Form/Element" +user.rech.legend = "Rechnungsanschrift" +; email element +user.rech.elements.self_email.type = "Helptext" +user.rech.elements.self_email.options.label = "Email*" +user.rech.elements.self_email.options.required = true +user.rech.elements.self_email.options.validators.email.validator = "EmailAddress" +user.rech.elements.self_email.options.validators.Db_RecordExists.validator = "Db_NoRecordExistsDoctrine" +user.rech.elements.self_email.options.validators.Db_RecordExists.options.table = "Contact" +user.rech.elements.self_email.options.validators.Db_RecordExists.options.field = "self_email" + +; firstname element +; user.rech.legend = "Anschrift" + +user.rech.elements.self_anrede.type = "select" +user.rech.elements.self_anrede.options.label = "Anrede" +user.rech.elements.self_anrede.options.required = false +user.rech.elements.self_anrede.options.multiOptions.1 = "Herr" +user.rech.elements.self_anrede.options.multiOptions.2 = "Frau" +user.rech.elements.self_anrede.options.multiOptions.3 = "Firma" +user.rech.elements.self_anrede.options.multiOptions.4 = "Herr Dr." +user.rech.elements.self_anrede.options.multiOptions.5 = "Frau Dr." +user.rech.elements.self_anrede.options.multiOptions.6 = "Herr Prof." +user.rech.elements.self_anrede.options.multiOptions.7 = "Frau Prof." +user.rech.elements.self_anrede.options.multiOptions.8 = "Herr Prof. Dr." +user.rech.elements.self_anrede.options.multiOptions.9 = "Frau Prof. Dr." + +user.rech.elements.self_firstname.type = "text" +user.rech.elements.self_firstname.options.label = "Firstname*" +user.rech.elements.self_firstname.options.required = true + +; lastname element +user.rech.elements.self_lastname.type = "text" +user.rech.elements.self_lastname.options.label = "Lastname*" +user.rech.elements.self_lastname.options.required = true + +; lastname element +user.rech.elements.self_department.type = "text" +user.rech.elements.self_department.options.label = "Company" + +; street element +user.rech.elements.self_street.type = "text" +user.rech.elements.self_street.options.label = "Street*" +user.rech.elements.self_street.options.required = true + +; housenumber element +user.rech.elements.self_house_number.type = "text" +user.rech.elements.self_house_number.options.label = "Housenumber*" +user.rech.elements.self_house_number.options.required = true + +; zip element +user.rech.elements.self_zip.type = "text" +user.rech.elements.self_zip.options.label = "Zip*" +user.rech.elements.self_zip.options.required = true + +; city element +user.rech.elements.self_city.type = "text" +user.rech.elements.self_city.options.label = "City*" +user.rech.elements.self_city.options.required = true + +user.rech.elements.self_country.type = "select" +user.rech.elements.self_country.options.label = "Land*" +user.rech.elements.self_country.options.required = true +user.rech.elements.self_country.options.multiOptions.ALL = "Bitte wählen" +user.rech.elements.self_country.options.multiOptions.DE = "Deutschland" +user.rech.elements.self_country.options.multiOptions.BE = "Belgien" +user.rech.elements.self_country.options.multiOptions.BA = "Bosnien & Herzegowina" +user.rech.elements.self_country.options.multiOptions.BG = "Bulgarien" +user.rech.elements.self_country.options.multiOptions.DK = "Dänemark" +user.rech.elements.self_country.options.multiOptions.EE = "Estland" +user.rech.elements.self_country.options.multiOptions.FI = "Finnland" +user.rech.elements.self_country.options.multiOptions.FR = "Frankreich" +user.rech.elements.self_country.options.multiOptions.GR = "Griechenland" +user.rech.elements.self_country.options.multiOptions.GB = "Grossbritannien" +user.rech.elements.self_country.options.multiOptions.IE = "Irland" +user.rech.elements.self_country.options.multiOptions.IS = "Island" +user.rech.elements.self_country.options.multiOptions.IT = "Italien" +user.rech.elements.self_country.options.multiOptions.HR = "Kroatien" +user.rech.elements.self_country.options.multiOptions.LV = "Lettland" +user.rech.elements.self_country.options.multiOptions.LI = "Liechtenstein" +user.rech.elements.self_country.options.multiOptions.LT = "Litauen" +user.rech.elements.self_country.options.multiOptions.LU = "Luxemburg" +user.rech.elements.self_country.options.multiOptions.MC = "Monaco" +user.rech.elements.self_country.options.multiOptions.NL = "Niederlande" +user.rech.elements.self_country.options.multiOptions.NO = "Norwegen" +user.rech.elements.self_country.options.multiOptions.AT = "Österreich" +user.rech.elements.self_country.options.multiOptions.PL = "Polen" +user.rech.elements.self_country.options.multiOptions.PT = "Portugal" +user.rech.elements.self_country.options.multiOptions.RO = "Rumänien" +user.rech.elements.self_country.options.multiOptions.GB = "Schottland" +user.rech.elements.self_country.options.multiOptions.SE = "Schweden" +user.rech.elements.self_country.options.multiOptions.CH = "Schweiz" +user.rech.elements.self_country.options.multiOptions.BR = "Serbien" +user.rech.elements.self_country.options.multiOptions.SK = "Slowakei" +user.rech.elements.self_country.options.multiOptions.SI = "Slowenien" +user.rech.elements.self_country.options.multiOptions.ES = "Spanien" +user.rech.elements.self_country.options.multiOptions.CZ = "Tschechische Republik" +user.rech.elements.self_country.options.multiOptions.HU = "Ungarn" +user.rech.elements.self_country.options.multiOptions.GB = "Wales" +user.rech.elements.self_country.options.multiOptions.XX = "anderes Land" + +; tel element +user.rech.elements.self_phone.type = "text" +user.rech.elements.self_phone.options.label = "Tel" + +;user.rech.elements.cp.type = "captcha" +;user.rech.elements.cp.options.label = "Hier Captcha Code eintragen*" +;user.rech.elements.cp.options.captcha.captcha = "Image" + +; firstname element +user.liefer.legend = "Lieferanschrift" +user.liefer.elements.firstname.type = "text" +user.liefer.elements.firstname.options.label = "Firstname*" +user.liefer.elements.firstname.options.required = true + +; lastname element +user.liefer.elements.lastname.type = "text" +user.liefer.elements.lastname.options.label = "Lastname*" +user.liefer.elements.lastname.options.required = true + +; lastname element +user.liefer.elements.self_department.type = "text" +user.liefer.elements.self_department.options.label = "Firma" + +; street element +user.liefer.elements.street.type = "text" +user.liefer.elements.street.options.label = "Street*" +user.liefer.elements.street.options.required = true + +; housenumber element +user.liefer.elements.house_number.type = "text" +user.liefer.elements.house_number.options.label = "Housenumber*" +user.liefer.elements.house_number.options.required = true + +; zip element +user.liefer.elements.zip.type = "text" +user.liefer.elements.zip.options.label = "Zip*" +user.liefer.elements.zip.options.required = true + +; city element +user.liefer.elements.city.type = "text" +user.liefer.elements.city.options.label = "City*" +user.liefer.elements.city.options.required = true + +; tel element +user.liefer.elements.phone.type = "text" +user.liefer.elements.phone.options.label = "Tel" + +; ustid element +user.rech.elements.ustid.type = "text" +user.rech.elements.ustid.options.label = "UStID" +user.rech.elements.cp.type = "captcha" +user.rech.elements.cp.options.label = "" +user.rech.elements.cp.options.captcha.captcha = "Image" +; submit element +user.submit.elements.submit.type = "submit" +user.submit.elements.submit.options.name = "submit" +user.submit.elements.submit.options.label = "Weiter" + +user.liefersubmit.elements.submit.type = "submit" +user.liefersubmit.elements.submit.options.class = "green" +user.liefersubmit.elements.submit.options.name = "st" +user.liefersubmit.elements.submit.options.label = "Use Delivery" diff --git a/src/old/application/design/vorlagen/redesign-2019_api/config/user/resetpassword.ini b/src/old/application/design/vorlagen/redesign-2019_api/config/user/resetpassword.ini new file mode 100644 index 000000000..ebfb5bbb3 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/config/user/resetpassword.ini @@ -0,0 +1,21 @@ +[reset] +; general form metainformation +global.class ="form-horizontal" + +user.reset.method = "post" + +; username element +user.reset.legend = "Password reset" + +; email element +user.reset.elements.self_email.type = "text" +user.reset.elements.self_email.options.label = "E-Mail-Adresse" +user.reset.elements.self_email.options.required = true + +user.reset.elements.cp.type = "captcha" +user.reset.elements.cp.options.label = "" +user.reset.elements.cp.options.captcha.captcha = "Image" + +user.reset.elements.submit.type = "submit" +user.reset.elements.submit.options.class = "btn btn-primary btn-block" +user.reset.elements.submit.options.label = "Passwort zurücksetzten" diff --git a/src/old/application/design/vorlagen/redesign-2019_api/config/user/updatecontact.ini b/src/old/application/design/vorlagen/redesign-2019_api/config/user/updatecontact.ini new file mode 100644 index 000000000..350cdf635 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/config/user/updatecontact.ini @@ -0,0 +1,133 @@ +[register] +; general form metainformation +global.class ="form-horizontal" + +user.login.action = "/user/mysettng" +user.login.method = "post" + +user.login.legend = "Logindaten" + +; password element +user.login.elements.password.type = "password" +user.login.elements.password.options.label = "Passwort" +user.login.elements.password.options.class = "form-control" + +user.login.elements.password_re.type = "password" +user.login.elements.password_re.options.label = "Repeat password*" +user.login.elements.password_re.options.renderPassword = true +user.login.elements.password_re.options.validators.1.validator = "CompareToField" +user.login.elements.password_re.options.validators.1.options = "password" +user.login.elements.password_re.options.class = "form-control" + +; email element +user.login.elements.self_email.type = "text" +user.login.elements.self_email.options.label = "E-Mail" +user.login.elements.self_email.options.required = true +user.login.elements.self_email.options.class = "form-control" + +; firstname element +user.rech.legend = "Rechnungsanschrift" + +user.rech.elements.self_anrede.type = "select" +user.rech.elements.self_anrede.options.label = "Anrede" +user.rech.elements.self_anrede.options.required = false +user.rech.elements.self_anrede.options.multiOptions.1 = "Herr" +user.rech.elements.self_anrede.options.multiOptions.2 = "Frau" +user.rech.elements.self_anrede.options.multiOptions.3 = "Firma" +user.rech.elements.self_anrede.options.multiOptions.4 = "Herr Dr." +user.rech.elements.self_anrede.options.multiOptions.5 = "Frau Dr." +user.rech.elements.self_anrede.options.multiOptions.6 = "Herr Prof." +user.rech.elements.self_anrede.options.multiOptions.7 = "Frau Prof." +user.rech.elements.self_anrede.options.multiOptions.8 = "Herr Prof. Dr." +user.rech.elements.self_anrede.options.multiOptions.9 = "Frau Prof. Dr." +user.rech.elements.self_anrede.options.class = "custom-select" + +user.rech.elements.self_firstname.type = "text" +user.rech.elements.self_firstname.options.label = "Firstname*" +user.rech.elements.self_firstname.options.required = true +user.rech.elements.self_firstname.options.class = "form-control" + +; lastname element +user.rech.elements.self_lastname.type = "text" +user.rech.elements.self_lastname.options.label = "Lastname*" +user.rech.elements.self_lastname.options.required = true +user.rech.elements.self_lastname.options.class = "form-control" + +; lastname element +user.rech.elements.self_department.type = "text" +user.rech.elements.self_department.options.label = "Firma" +user.rech.elements.self_department.options.class = "form-control" + +; street element +user.rech.elements.self_street.type = "text" +user.rech.elements.self_street.options.label = "Street*" +user.rech.elements.self_street.options.required = true +user.rech.elements.self_street.options.class = "form-control" + +; housenumber element +user.rech.elements.self_house_number.type = "text" +user.rech.elements.self_house_number.options.label = "Housenumber*" +user.rech.elements.self_house_number.options.required = true +user.rech.elements.self_house_number.options.class = "form-control" + +; zip element +user.rech.elements.self_zip.type = "text" +user.rech.elements.self_zip.options.label = "Zip*" +user.rech.elements.self_zip.options.required = true +user.rech.elements.self_zip.options.class = "form-control" + +; city element +user.rech.elements.self_city.type = "text" +user.rech.elements.self_city.options.label = "City*" +user.rech.elements.self_city.options.required = true +user.rech.elements.self_city.options.class = "form-control" + +user.rech.elements.self_country.type = "select" +user.rech.elements.self_country.options.label = "Land*" +user.rech.elements.self_country.options.required = true +user.rech.elements.self_country.options.class = "custom-select" + +; tel element +user.rech.elements.self_phone.type = "text" +user.rech.elements.self_phone.options.label = "Tel*" +user.rech.elements.self_phone.options.class = "form-control" + +; handy element +user.rech.elements.self_phone_mobile.type = "text" +user.rech.elements.self_phone_mobile.options.label = "Handy" +user.rech.elements.self_phone_mobile.options.class = "form-control" + +; fax element +user.rech.elements.self_fax_phone.type = "text" +user.rech.elements.self_fax_phone.options.label = "Fax" +user.rech.elements.self_fax_phone.options.class = "form-control" + +; Azubicard element +user.rech.elements.custom1.type = "text" +user.rech.elements.custom1.options.label = "Azubicard" +user.rech.elements.custom1.options.class = "form-control" + +; Azubicard Datum element +user.rech.elements.custom2.type = "text" +user.rech.elements.custom2.options.label = "Azubicard Datum" +user.rech.elements.custom2.options.class = "form-control" + +; Ehrenamtskarte element +user.rech.elements.custom3.type = "text" +user.rech.elements.custom3.options.label = "Ehrenamtskarte" +user.rech.elements.custom3.options.class = "form-control" + +; Ehrenamtskarte Datum element +user.rech.elements.custom4.type = "text" +user.rech.elements.custom4.options.label = "Ehrenamtskarte Datum" +user.rech.elements.custom4.options.class = "form-control" + +; Registrierungscode element +user.rech.elements.custom24.type = "text" +user.rech.elements.custom24.options.label = "Registrierungscode" +user.rech.elements.custom24.options.class = "form-control" + +; submit element +user.submit.elements.submit.type = "submit" +user.submit.elements.submit.options.class = "btn-primary" +user.submit.elements.submit.options.label = "Aktualisieren" \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/config/user/verify.ini b/src/old/application/design/vorlagen/redesign-2019_api/config/user/verify.ini new file mode 100644 index 000000000..c1832d006 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/config/user/verify.ini @@ -0,0 +1,24 @@ +[verify] +; general form metainformation +user.verify.action = "/user/verify" +user.verify.method = "post" + +; username element +user.verify.elements.name.type = "text" +user.verify.elements.name.options.label = "Username" +user.verify.elements.name.options.required = true + +; password element +user.verify.elements.password.type = "password" +user.verify.elements.password.options.label = "Password" +user.verify.elements.password.options.required = true + +; hash element +user.verify.elements.hash.type = "text" +user.verify.elements.hash.options.label = "Freischaltcode" +user.verify.elements.hash.options.required = true + +; submit element +user.verify.elements.submit.type = "submit" +user.verify.elements.submit.options.class = "submit" +user.verify.elements.submit.options.label = "Freischalten" \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/layout/_hauptmenu.phtml b/src/old/application/design/vorlagen/redesign-2019_api/layout/_hauptmenu.phtml new file mode 100644 index 000000000..8135ce4a7 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/layout/_hauptmenu.phtml @@ -0,0 +1,123 @@ +
+
+ +
+
\ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/layout/_list-secondary.phtml b/src/old/application/design/vorlagen/redesign-2019_api/layout/_list-secondary.phtml new file mode 100644 index 000000000..29bc77326 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/layout/_list-secondary.phtml @@ -0,0 +1,56 @@ + diff --git a/src/old/application/design/vorlagen/redesign-2019_api/layout/default.phtml b/src/old/application/design/vorlagen/redesign-2019_api/layout/default.phtml new file mode 100644 index 000000000..edcf01686 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/layout/default.phtml @@ -0,0 +1,453 @@ + + + + + + + page_title != ''): ?> + <?= $this->page_title; ?> + + <?= $this->shop->name; ?> + + + shop->css != ""): ?> + + + + designsettings()->get('custom_css') != ""): ?> + + + + + + + + + + + + + + + + + + + + + + shop->private): ?> + + headMeta(); ?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image()->thumbnailImage('browsericon', 'browsericon', $this->shop->browsericon, true, true))): ?> + + + + + var slider_interval = 2000; + var uuid = ""; + var motive_modal_mode = 'shop->template_display_products_custom_layouter): ?>market'; + var motive_modal_bigimage = 'designsettings()->get('motiv_modal_big') == true): ?>motivelistoverviewbigmotivelist'; + designsettings()->get('b2bshop')): ?> + var b2bshop = false; + + var b2bshop = true; + + + + + + + + + + */ + ?> + + + + + + PriorityMessenger(); + if(count($PriorityMessenger)): ?> + $messages) { + if (count($messages)) { + foreach ($messages as $message) { + if($label == 'error') { + echo '
'.$this->translate($message).'
'; + } else { + echo '
'.$this->translate($message).'
'; + } + } + } + } + ?> + + + + + designsettings()->get('display_mainnav_top')) { + include_once '_hauptmenu.phtml'; + } + ?> + + navigation()->breadcrumbs()->setMinDepth(1)->setSeparator('', '', $_tmp_breadcrumb); + $_tmp_breadcrumb = str_replace('Home', 'Startseite', $_tmp_breadcrumb); + if (strlen($_tmp_breadcrumb) > 0): ?> + + + +
+ layout()->CONTENT; ?> +
+ +
+ + + + + +
+ + + + + + + + + +shop->fullbackground): ?> + + + + + + + + + + headScript()->prependFile('/scripts/templateprint.js'); + $this->headLink()->appendStylesheet('/scripts/jquery-loading/css/showLoading.css'); + $this->headScript()->prependFile('/scripts/jquery-loading/js/jquery.showLoading.min.js'); + $this->headScript()->prependFile('/scripts/jquery-multiselect/js/jquery.multi-select.js'); + $this->headLink()->appendStylesheet('/scripts/jquery-multiselect/css/multi-select.css'); + ?> + + headScript(); ?> + headLink(); ?> + + + debug) && count($this->debug) > 0): ?> +
+ debug as $value): ?> +

+ +
+ + + + + + + + + + diff --git a/src/old/application/design/vorlagen/redesign-2019_api/layout/private.phtml b/src/old/application/design/vorlagen/redesign-2019_api/layout/private.phtml new file mode 100644 index 000000000..9949f5c7a --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/layout/private.phtml @@ -0,0 +1,206 @@ + + + + + <?= $this->shop->name; ?> + + + + + + + + + + + + shop->css != ""): ?> + + + + designsettings()->get('custom_css') != ""): ?> + + + + + + + + + + + + + + schon wieder hoch gesetzt :( + */ + ?> + + + + + + + shop->private): ?> + + + headMeta(); ?> + + + designsettings()->get('preset') || $this->designsettings()->get('preset') == 1): ?> + + + designsettings()->get('preset') == 2): ?> + + + designsettings()->get('preset') == 3): ?> + + + designsettings()->get('preset') == 4): ?> + + + designsettings()->get('preset') == 5): ?> + + + designsettings()->get('preset') == 6): ?> + + + designsettings()->get('preset') == 7): ?> + + + designsettings()->get('preset') == 8): ?> + + + designsettings()->get('preset') == 9): ?> + + + designsettings()->get('preset') == 10): ?> + + + + + + + + + + + + +
+ +
+
+ shop->logo1): ?> + + +

shop->name; ?>

+ +
+
+ + +
+ PriorityMessenger(); + if(count($PriorityMessenger)): ?> + +
+ + $messages) { + if (count($messages)) { + foreach ($messages as $message) { + if($label == 'error') { + echo '
'.$this->translate($message).'
'; + }else{ + echo '
'.$this->translate($message).'
'; + } + } + } + } + ?> +
+ + layout()->CONTENT; ?> + +
+ +
+ + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + headScript()->prependFile('/scripts/jquery-achtung/ui.achtung.js'); + $this->headLink()->appendStylesheet('/scripts/jquery-achtung/ui.achtung.css'); + ?> + headScript()->prependFile('/scripts/jquery-multiselect/js/jquery.multi-select.js'); + $this->headLink()->appendStylesheet('/scripts/jquery-multiselect/css/multi-select.css'); + ?> + headScript(); ?> + headLink(); ?> + +
+ + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/layout/simple.phtml b/src/old/application/design/vorlagen/redesign-2019_api/layout/simple.phtml new file mode 100644 index 000000000..5ad974795 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/layout/simple.phtml @@ -0,0 +1 @@ +layout()->CONTENT; ?> \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/locale/de/all.csv b/src/old/application/design/vorlagen/redesign-2019_api/locale/de/all.csv new file mode 100644 index 000000000..c074ef95a --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/locale/de/all.csv @@ -0,0 +1,129 @@ +Start;Sartseite +Suche;Suche +Anmelden;Anmelden +Registrieren;Registrieren +Sprache;Language +Buy;Bestellen +Calc;Berechnen + +Order created;Bestellung abgeschickt +Article;Artikel +Please fill out the Form; +Forget password;Passwort vergessen +Articlegroups;Produktgruppen +User;Kunde +Resetmail successfull;Passwort zurücksetzen Aktion erfolgreich durchgeführt +Logout Success;Abmelden erfolgreich +Password;Passwort +Password*;Passwort* +Repeat password*;Passwort wiederholen* +Anrede;Anrede +Firstname*;Vorname* +Lastname*;Nachname* +Company;Firma +Street*;Strasse* +Housenumber*;Hausnummer* +Zip*;PLZ* +City*;Ort* +Land*;Land* +Tel;Telefon +Handy;Mobil +Fax;Fax +Register successfull;Registrierung erfolgreich +My Settings;Meine Einstellungen +My Address;Meine Adressen +My Orders;Meine Bestellungen + +k5gh8e;k5gh8e + +status10;Neue Bestellung +status50;Upload abgeschlossen +status140;Wartet auf Zahlungseingang +status145;Zahlungseingang erfolgt +status210;abgeschlossen + +org_status10;new order +org_status20;new request +org_status30;wait for upload +org_status40;files uploaded +org_status50;upload finshed +org_status60;upload in prove +org_status70;upload error +org_status80;preflightcheck error +org_status90;wait for approval one +org_status100;wait for approval all +org_status110;approval accepted +org_status120;approval non-accepted +org_status130;open offer +org_status140;wait for payment +org_status145;payment received +org_status150;downloadable +org_status160;In process +org_status170;canceled +org_status173;produced +org_status175;readyforpickup +org_status180;export to Hotfolder +org_status190;ready for shipping +org_status200;shipped +org_status210;finished +org_status220;request for payment + + +posstatus30;Datenupload offen/noch nicht abgeschlossen +posstatus50;Datenupload abgeschlossen +posstatus60;Daten werden geprüft +posstatus75;Daten OK +posstatus80;Daten Error +posstatus90;Wartet auf Entwurf +posstatus100;Entwurf wartet auf Freigabe +posstatus105;Freigabe durch Kunde abgelehnt +posstatus110;Korrektur wartet auf Freigabe +posstatus120;Freigabe durch Kunde erteilt +posstatus130;In Produktion +posstatus140;Im Transit +posstatus150;In der Weiterverarbeitung +posstatus155;im Grafikreview +posstatus158;in der Vorstufe +posstatus160;in Produktion +posstatus170;abgebrochen oder storniert +posstatus173;produziert +posstatus175;Zur Abholung bereit +posstatus177;in Versand +posstatus180;in Bearbeitung +posstatus190;wartet auf Versand +posstatus200;versendet +posstatus210;abgeschlossen +posstatus500;warted auf Entwurf +posstatus510;Entwurf wartet auf freigabe +posstatus520;Entwurf abgelehnt +posstatus530;Entwurf angenommen + +org_posstatus30;wait for upload +org_posstatus40;files uploaded +org_posstatus50;upload finshed +org_posstatus60;upload in prove +org_posstatus70;upload error +org_posstatus80;preflightcheck error +org_posstatus160;In process +org_posstatus173;produced +org_posstatus175;readyforpickup +org_posstatus180;export to Hotfolder +org_posstatus190;ready for shipping +org_posstatus200;shipped +org_posstatus210;finished + +custom_posstatus500;Wartet auf Datenupload +custom_posstatus550;Upload erfolgt +custom_posstatus600;Daten werden geprüft +custom_posstatus650;Daten OK +custom_posstatus700;Daten Error +custom_posstatus730;Wartet auf Zahlungseingang +custom_posstatus750;Wartet auf Entwurf +custom_posstatus800;Entwurf wartet auf Freigabe +custom_posstatus850;Korrektur wartet auf Freigabe +custom_posstatus900;Freigabe durch Kunde erteilt +custom_posstatus950;in Produktion +custom_posstatus1000;im Transit +custom_posstatus1050;in der Weiterverarbeitung +custom_posstatus1100;versendet +custom_posstatus1150;abgeschlossen diff --git a/src/old/application/design/vorlagen/redesign-2019_api/locale/en/all.csv b/src/old/application/design/vorlagen/redesign-2019_api/locale/en/all.csv new file mode 100644 index 000000000..7e3e72768 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/locale/en/all.csv @@ -0,0 +1,7 @@ +Start;Startseite +Suche;Search +Anmelden;Login +Registrieren;Register +Sprache;Language +Buy;Bestellen +Calc;Calc diff --git a/src/old/application/design/vorlagen/redesign-2019_api/reports/delivery.jrxml b/src/old/application/design/vorlagen/redesign-2019_api/reports/delivery.jrxml new file mode 100644 index 000000000..270eead82 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/reports/delivery.jrxml @@ -0,0 +1,300 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <band height="306"> + <staticText> + <reportElement x="63" y="284" width="90" height="20" uuid="163a4209-64a0-4524-b64c-58dcb9cbbf64"/> + <textElement> + <font fontName="Arial" size="10" isBold="true"/> + </textElement> + <text><![CDATA[Lieferschein Nr. ]]></text> + </staticText> + <textField isBlankWhenNull="false"> + <reportElement key="textField" x="151" y="284" width="156" height="20" uuid="7faca665-a425-4e4c-b8a3-4daf6704d454"/> + <textElement> + <font size="10" isBold="true" isItalic="false"/> + </textElement> + <textFieldExpression><![CDATA['L-'.$P{order}{alias}]]></textFieldExpression> + </textField> + <textField isBlankWhenNull="false"> + <reportElement key="textField" x="416" y="159" width="108" height="12" uuid="b8622653-39b6-4b7e-839c-0305b52b0da2"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[date('Y-m-d',time())]]></textFieldExpression> + </textField> + <staticText> + <reportElement x="354" y="159" width="62" height="12" uuid="03a09b72-9ab8-41ee-990e-6e6b1f79d7ca"/> + <textElement> + <font size="8"/> + </textElement> + <text><![CDATA[Datum:]]></text> + </staticText> + <staticText> + <reportElement x="354" y="147" width="62" height="12" uuid="f39cfb1f-23ac-4e56-890d-936eb759bbbc"/> + <textElement> + <font size="8"/> + </textElement> + <text><![CDATA[Bestellung vom:]]></text> + </staticText> + <staticText> + <reportElement x="354" y="135" width="62" height="12" uuid="f68ce87d-66b4-4b8a-be94-69344c5b42a6"/> + <textElement> + <font size="8"/> + </textElement> + <text><![CDATA[Ihre Kunden-Nr:]]></text> + </staticText> + <textField isBlankWhenNull="false"> + <reportElement key="textField" x="416" y="135" width="108" height="12" uuid="5539d1d1-f224-4ed8-9a7c-b57e778cada4"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$P{id}]]></textFieldExpression> + </textField> + <textField isBlankWhenNull="false"> + <reportElement key="textField" x="416" y="147" width="108" height="12" uuid="8827656b-b1d9-472f-88f4-726803963d23"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$P{order}{created}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="63" y="140" width="205" height="15" uuid="fa529790-4c45-4792-94c5-b4dfdcec7ae4"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$P{invoiceAddress}{company}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="355" y="206" width="205" height="15" uuid="e7796b6a-6a92-4f14-ae05-e89eff92c120"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$P{deliveryAddress}{firstname}.' '.$P{deliveryAddress}{lastname}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="63" y="170" width="205" height="15" uuid="4de95d7b-e085-4377-ac2a-ae60b0a02518"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$P{invoiceAddress}{street}.' '.$P{invoiceAddress}{house_umber}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="355" y="236" width="205" height="15" uuid="1ad6bbf5-672c-417c-bb5a-d532ded2a09d"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$P{deliveryAddress}{zip}.' '.$P{deliveryAddress}{city}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="355" y="191" width="205" height="15" uuid="febc074f-db9c-4f1e-b442-7c6597627eab"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$P{deliveryAddress}{company}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="63" y="155" width="205" height="15" uuid="2ec1e089-3eb8-45cd-a079-9b3a2191c090"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$P{invoiceAddress}{firstname}.' '.$P{invoiceAddress}{lastname}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="355" y="221" width="205" height="15" uuid="d29a48b9-761b-4865-89a7-98dfcebe6b5b"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$P{deliveryAddress}{street}.' '.$P{deliveryAddress}{house_number}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="63" y="185" width="205" height="15" uuid="eaadeb81-59dc-40e6-bc6d-4657c4251b8f"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$P{invoiceAddress}{zip}.' '.$P{invoiceAddress}{city}]]></textFieldExpression> + </textField> + <staticText> + <reportElement x="355" y="178" width="62" height="12" uuid="6c056d0c-3f44-46e2-858a-8d908688ea43"/> + <textElement> + <font size="8"/> + </textElement> + <text><![CDATA[Lieferadresse:]]></text> + </staticText> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/old/application/design/vorlagen/redesign-2019_api/reports/invoice.jrxml b/src/old/application/design/vorlagen/redesign-2019_api/reports/invoice.jrxml new file mode 100644 index 000000000..fa498cd1c --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/reports/invoice.jrxml @@ -0,0 +1,384 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + <band height="325"> + <staticText> + <reportElement x="338" y="132" width="62" height="12"/> + <textElement> + <font size="8"/> + </textElement> + <text><![CDATA[Ihre Kunden-Nr:]]></text> + </staticText> + <staticText> + <reportElement x="338" y="144" width="62" height="12"/> + <textElement> + <font size="8"/> + </textElement> + <text><![CDATA[Bestellung vom:]]></text> + </staticText> + <staticText> + <reportElement x="338" y="156" width="62" height="12"/> + <textElement> + <font size="8"/> + </textElement> + <text><![CDATA[Bestellt von:]]></text> + </staticText> + <staticText> + <reportElement x="338" y="180" width="62" height="12"/> + <textElement> + <font size="8"/> + </textElement> + <text><![CDATA[Lieferdatum:]]></text> + </staticText> + <staticText> + <reportElement x="338" y="192" width="62" height="12"/> + <textElement> + <font size="8"/> + </textElement> + <text><![CDATA[Paketinfo:]]></text> + </staticText> + <staticText> + <reportElement x="338" y="204" width="62" height="12"/> + <textElement> + <font size="8"/> + </textElement> + <text><![CDATA[Datum:]]></text> + </staticText> + <staticText> + <reportElement x="63" y="294" width="80" height="20"/> + <textElement> + <font fontName="Arial" size="10" isBold="true"/> + </textElement> + <text><![CDATA[Rechnung Nr. ]]></text> + </staticText> + <textField isBlankWhenNull="false"> + <reportElement key="textField" x="400" y="132" width="124" height="12"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression class="java.lang.String"><![CDATA[$P{id}]]></textFieldExpression> + </textField> + <textField isBlankWhenNull="false"> + <reportElement key="textField" x="400" y="144" width="124" height="12"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression class="java.util.Date"><![CDATA[$P{order}{created}]]></textFieldExpression> + </textField> + <textField isBlankWhenNull="false"> + <reportElement key="textField" x="338" y="168" width="186" height="12"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression class="java.lang.String"><![CDATA[$P{name}]]></textFieldExpression> + </textField> + <textField isBlankWhenNull="false"> + <reportElement key="textField" x="400" y="180" width="124" height="12"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression class="java.util.Date"><![CDATA[date('Y-m-d',time())]]></textFieldExpression> + </textField> + <textField isBlankWhenNull="false"> + <reportElement key="textField" x="400" y="204" width="124" height="12"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression class="java.util.Date"><![CDATA[date('Y-m-d',time())]]></textFieldExpression> + </textField> + <textField isBlankWhenNull="false"> + <reportElement key="textField" x="400" y="192" width="124" height="12"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression class="java.lang.String"><![CDATA[$P{order}{package}]]></textFieldExpression> + </textField> + <textField isBlankWhenNull="false"> + <reportElement key="textField" x="144" y="294" width="156" height="20"/> + <textElement> + <font size="10" isBold="true" isItalic="false"/> + </textElement> + <textFieldExpression class="java.lang.String"><![CDATA['R-'.$P{order}{alias}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="63" y="147" width="158" height="15"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression class="java.lang.String"><![CDATA[$P{self_department}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="63" y="162" width="158" height="15"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression class="java.lang.String"><![CDATA[$P{self_firstname}.' '.$P{self_lastname}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="63" y="177" width="158" height="15"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression class="java.lang.String"><![CDATA[$P{self_street}.' '.$P{self_house_number}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="63" y="192" width="158" height="15"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression class="java.lang.String"><![CDATA[$P{self_zip}.' '.$P{self_city}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="338" y="267" width="186" height="12"> + <printWhenExpression><![CDATA[$P{lieferissame}.equals(1)]]></printWhenExpression> + </reportElement> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression class="java.lang.String"><![CDATA[$P{liefer}{zip}.' '.$P{liefer}{city}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="338" y="255" width="186" height="12"> + <printWhenExpression><![CDATA[$P{lieferissame}.equals(1)]]></printWhenExpression> + </reportElement> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression class="java.lang.String"><![CDATA[$P{liefer}{street}.' '.$P{liefer}{house_number}]]></textFieldExpression> + </textField> + <staticText> + <reportElement x="338" y="219" width="62" height="12"> + <printWhenExpression><![CDATA[$P{lieferissame}.equals(1)]]></printWhenExpression> + </reportElement> + <textElement> + <font size="8" isBold="true"/> + </textElement> + <text><![CDATA[Lieferadresse:]]></text> + </staticText> + <textField> + <reportElement x="338" y="231" width="186" height="12"> + <printWhenExpression><![CDATA[$P{lieferissame}.equals(1)]]></printWhenExpression> + </reportElement> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression class="java.lang.String"><![CDATA[$P{liefer}{company}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="338" y="243" width="186" height="12"> + <printWhenExpression><![CDATA[$P{lieferissame}.equals(1)]]></printWhenExpression> + </reportElement> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression class="java.lang.String"><![CDATA[$P{liefer}{firstname}.' '.$P{liefer}{lastname}]]></textFieldExpression> + </textField> + <staticText> + <reportElement x="338" y="120" width="62" height="12"/> + <textElement> + <font size="8"/> + </textElement> + <text><![CDATA[Ref.:]]></text> + </staticText> + <textField isBlankWhenNull="false"> + <reportElement key="textField" x="400" y="120" width="124" height="12"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression class="java.lang.String"><![CDATA[$P{order}{basketfield2}]]></textFieldExpression> + </textField> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/old/application/design/vorlagen/redesign-2019_api/reports/jobtiket.jrxml b/src/old/application/design/vorlagen/redesign-2019_api/reports/jobtiket.jrxml new file mode 100644 index 000000000..c93bd7431 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/reports/jobtiket.jrxml @@ -0,0 +1,297 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + <band height="212"> + <staticText> + <reportElement x="300" y="34" width="100" height="15"/> + <textElement/> + <text><![CDATA[Ihre Kunden-Nr:]]></text> + </staticText> + <staticText> + <reportElement x="300" y="49" width="100" height="15"/> + <textElement/> + <text><![CDATA[Bestellung vom:]]></text> + </staticText> + <staticText> + <reportElement x="300" y="64" width="100" height="15"/> + <textElement/> + <text><![CDATA[Bestellt von:]]></text> + </staticText> + <staticText> + <reportElement x="300" y="116" width="100" height="15"/> + <textElement/> + <text><![CDATA[Lieferdatum:]]></text> + </staticText> + <staticText> + <reportElement x="300" y="134" width="100" height="15"/> + <textElement/> + <text><![CDATA[Paketinfo:]]></text> + </staticText> + <staticText> + <reportElement x="300" y="151" width="100" height="15"/> + <textElement/> + <text><![CDATA[Datum:]]></text> + </staticText> + <staticText> + <reportElement x="100" y="3" width="119" height="20"/> + <textElement> + <font fontName="Arial" size="14" isBold="true"/> + </textElement> + <text><![CDATA[Jobtiket Nr.]]></text> + </staticText> + <textField isBlankWhenNull="false"> + <reportElement key="textField" x="400" y="34" width="134" height="15"/> + <textElement/> + <textFieldExpression class="java.lang.String"><![CDATA[$P{id}]]></textFieldExpression> + </textField> + <textField isBlankWhenNull="false"> + <reportElement key="textField" x="400" y="49" width="134" height="15"/> + <textElement/> + <textFieldExpression class="java.util.Date"><![CDATA[$P{order}{created}]]></textFieldExpression> + </textField> + <textField isBlankWhenNull="false"> + <reportElement key="textField" x="300" y="80" width="233" height="15"/> + <textElement/> + <textFieldExpression class="java.lang.String"><![CDATA[$P{name}]]></textFieldExpression> + </textField> + <textField isBlankWhenNull="false"> + <reportElement key="textField" x="400" y="116" width="134" height="15"/> + <textElement/> + <textFieldExpression class="java.util.Date"><![CDATA[date('Y-m-d H:i:s',time())]]></textFieldExpression> + </textField> + <textField isBlankWhenNull="false"> + <reportElement key="textField" x="400" y="151" width="134" height="15"/> + <textElement/> + <textFieldExpression class="java.util.Date"><![CDATA[date('Y-m-d H:i:s',time())]]></textFieldExpression> + </textField> + <textField isBlankWhenNull="false"> + <reportElement key="textField" x="400" y="134" width="134" height="15"/> + <textElement/> + <textFieldExpression class="java.lang.String"><![CDATA[$P{order}{package}]]></textFieldExpression> + </textField> + <textField isBlankWhenNull="false"> + <reportElement key="textField" x="225" y="3" width="134" height="20"/> + <textElement> + <font size="14" isBold="true" isItalic="false"/> + </textElement> + <textFieldExpression class="java.lang.String"><![CDATA['J-'.$P{order}{alias}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="0" y="52" width="205" height="15"/> + <textElement/> + <textFieldExpression class="java.lang.String"><![CDATA[$P{self_department}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="0" y="67" width="205" height="15"/> + <textElement/> + <textFieldExpression class="java.lang.String"><![CDATA[$P{self_firstname}.' '.$P{self_lastname}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="0" y="82" width="205" height="15"/> + <textElement/> + <textFieldExpression class="java.lang.String"><![CDATA[$P{self_street}.' '.$P{self_house_number}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="0" y="97" width="205" height="15"/> + <textElement/> + <textFieldExpression class="java.lang.String"><![CDATA[$P{self_zip}.' '.$P{self_city}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="1" y="133" width="299" height="15"> + <printWhenExpression><![CDATA[$P{lieferissame}.equals(1)]]></printWhenExpression> + </reportElement> + <textElement/> + <textFieldExpression class="java.lang.String"><![CDATA[$P{liefer}{company}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="1" y="148" width="299" height="15"> + <printWhenExpression><![CDATA[$P{lieferissame}.equals(1)]]></printWhenExpression> + </reportElement> + <textElement/> + <textFieldExpression class="java.lang.String"><![CDATA[$P{liefer}{firstname}.' '.$P{liefer}{lastname}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="1" y="163" width="299" height="15"> + <printWhenExpression><![CDATA[$P{lieferissame}.equals(1)]]></printWhenExpression> + </reportElement> + <textElement/> + <textFieldExpression class="java.lang.String"><![CDATA[$P{liefer}{street}.' '.$P{liefer}{house_number}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="1" y="178" width="299" height="15"> + <printWhenExpression><![CDATA[$P{lieferissame}.equals(1)]]></printWhenExpression> + </reportElement> + <textElement/> + <textFieldExpression class="java.lang.String"><![CDATA[$P{liefer}{zip}.' '.$P{liefer}{city}]]></textFieldExpression> + </textField> + <staticText> + <reportElement x="0" y="34" width="100" height="15"/> + <textElement> + <font isBold="true"/> + </textElement> + <text><![CDATA[Rechnungsadresse]]></text> + </staticText> + <staticText> + <reportElement x="0" y="117" width="100" height="15"/> + <textElement> + <font isBold="true"/> + </textElement> + <text><![CDATA[Lieferadresse]]></text> + </staticText> + <textField isBlankWhenNull="false"> + <reportElement key="textField" x="300" y="95" width="233" height="15"/> + <textElement/> + <textFieldExpression class="java.lang.String"><![CDATA[$P{self_phone}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="400" y="166" width="134" height="15"/> + <textElement> + <font size="10" isBold="true"/> + </textElement> + <textFieldExpression class="java.lang.String"><![CDATA[$P{brutto}]]></textFieldExpression> + </textField> + <staticText> + <reportElement x="300" y="166" width="100" height="15"/> + <textElement> + <font size="10" isBold="true"/> + </textElement> + <text><![CDATA[Brutto-Betrag:]]></text> + </staticText> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/old/application/design/vorlagen/redesign-2019_api/reports/label.jrxml b/src/old/application/design/vorlagen/redesign-2019_api/reports/label.jrxml new file mode 100644 index 000000000..a3c82600e --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/reports/label.jrxml @@ -0,0 +1,59 @@ + + + + + + + <band height="0"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/old/application/design/vorlagen/redesign-2019_api/reports/logo.jpg b/src/old/application/design/vorlagen/redesign-2019_api/reports/logo.jpg new file mode 100644 index 000000000..182e8fe97 Binary files /dev/null and b/src/old/application/design/vorlagen/redesign-2019_api/reports/logo.jpg differ diff --git a/src/old/application/design/vorlagen/redesign-2019_api/reports/offer.jrxml b/src/old/application/design/vorlagen/redesign-2019_api/reports/offer.jrxml new file mode 100644 index 000000000..bffb2b134 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/reports/offer.jrxml @@ -0,0 +1,302 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + <band height="374"> + <staticText> + <reportElement x="282" y="114" width="100" height="15"/> + <textElement/> + <text><![CDATA[Ihre Kunden-Nr:]]></text> + </staticText> + <staticText> + <reportElement x="282" y="129" width="100" height="15"/> + <textElement/> + <text><![CDATA[Bestellung vom:]]></text> + </staticText> + <staticText> + <reportElement x="282" y="144" width="100" height="15"/> + <textElement/> + <text><![CDATA[Bestellt von:]]></text> + </staticText> + <staticText> + <reportElement x="282" y="159" width="100" height="15"/> + <textElement/> + <text><![CDATA[Lieferdatum:]]></text> + </staticText> + <staticText> + <reportElement x="282" y="193" width="100" height="15"/> + <textElement/> + <text><![CDATA[Paketinfo:]]></text> + </staticText> + <staticText> + <reportElement x="282" y="236" width="100" height="15"/> + <textElement/> + <text><![CDATA[Datum:]]></text> + </staticText> + <staticText> + <reportElement x="0" y="291" width="156" height="20"/> + <textElement> + <font fontName="Arial" size="14" isBold="true"/> + </textElement> + <text><![CDATA[Lieferschein Nr.]]></text> + </staticText> + <staticText> + <reportElement x="0" y="321" width="156" height="20"/> + <textElement> + <font isBold="true"/> + </textElement> + <text><![CDATA[Unsere Auftrags-Nummer: ]]></text> + </staticText> + <staticText> + <reportElement x="0" y="354" width="535" height="20"/> + <textElement/> + <text><![CDATA[Wir liefern Ihnen gemäß unseren allgemeinen Geschäftsbedingungen:]]></text> + </staticText> + <textField isBlankWhenNull="false"> + <reportElement key="textField" x="382" y="114" width="134" height="15"/> + <textElement/> + <textFieldExpression class="java.lang.String"><![CDATA[$P{id}]]></textFieldExpression> + </textField> + <textField isBlankWhenNull="false"> + <reportElement key="textField" x="382" y="129" width="134" height="15"/> + <textElement/> + <textFieldExpression class="java.util.Date"><![CDATA[$P{order}{created}]]></textFieldExpression> + </textField> + <textField isBlankWhenNull="false"> + <reportElement key="textField" x="382" y="144" width="134" height="15"/> + <textElement/> + <textFieldExpression class="java.lang.String"><![CDATA[$P{name}]]></textFieldExpression> + </textField> + <textField isBlankWhenNull="false"> + <reportElement key="textField" x="382" y="159" width="134" height="15"/> + <textElement/> + <textFieldExpression class="java.util.Date"><![CDATA[date('Y-m-d H:i:s',time())]]></textFieldExpression> + </textField> + <textField isBlankWhenNull="false"> + <reportElement key="textField" x="382" y="236" width="134" height="15"/> + <textElement/> + <textFieldExpression class="java.util.Date"><![CDATA[date('Y-m-d H:i:s',time())]]></textFieldExpression> + </textField> + <textField isBlankWhenNull="false"> + <reportElement key="textField" x="382" y="193" width="134" height="15"/> + <textElement/> + <textFieldExpression class="java.lang.String"><![CDATA[$P{order}{package}]]></textFieldExpression> + </textField> + <textField isBlankWhenNull="false"> + <reportElement key="textField" x="156" y="291" width="134" height="20"/> + <textElement> + <font size="14" isBold="true" isItalic="false"/> + </textElement> + <textFieldExpression class="java.lang.String"><![CDATA['L-'.$P{order}{alias}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="0" y="114" width="205" height="15"> + <printWhenExpression><![CDATA[$P{lieferissame}.equals(0)]]></printWhenExpression> + </reportElement> + <textElement/> + <textFieldExpression class="java.lang.String"><![CDATA[$P{self_department}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="0" y="129" width="205" height="15"> + <printWhenExpression><![CDATA[$P{lieferissame}.equals(0)]]></printWhenExpression> + </reportElement> + <textElement/> + <textFieldExpression class="java.lang.String"><![CDATA[$P{self_firstname}.' '.$P{self_lastname}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="0" y="144" width="205" height="15"> + <printWhenExpression><![CDATA[$P{lieferissame}.equals(0)]]></printWhenExpression> + </reportElement> + <textElement/> + <textFieldExpression class="java.lang.String"><![CDATA[$P{self_street}.' '.$P{self_house_number}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="0" y="159" width="205" height="15"> + <printWhenExpression><![CDATA[$P{lieferissame}.equals(0)]]></printWhenExpression> + </reportElement> + <textElement/> + <textFieldExpression class="java.lang.String"><![CDATA[$P{self_zip}.' '.$P{self_city}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="0" y="114" width="205" height="15"> + <printWhenExpression><![CDATA[$P{lieferissame}.equals(1)]]></printWhenExpression> + </reportElement> + <textElement/> + <textFieldExpression class="java.lang.String"><![CDATA[$P{liefer}{company}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="0" y="129" width="205" height="15"> + <printWhenExpression><![CDATA[$P{lieferissame}.equals(1)]]></printWhenExpression> + </reportElement> + <textElement/> + <textFieldExpression class="java.lang.String"><![CDATA[$P{liefer}{firstname}.' '.$P{liefer}{lastname}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="0" y="144" width="205" height="15"> + <printWhenExpression><![CDATA[$P{lieferissame}.equals(1)]]></printWhenExpression> + </reportElement> + <textElement/> + <textFieldExpression class="java.lang.String"><![CDATA[$P{liefer}{street}.' '.$P{liefer}{house_number}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="0" y="159" width="205" height="15"> + <printWhenExpression><![CDATA[$P{lieferissame}.equals(1)]]></printWhenExpression> + </reportElement> + <textElement/> + <textFieldExpression class="java.lang.String"><![CDATA[$P{liefer}{zip}.' '.$P{liefer}{city}]]></textFieldExpression> + </textField> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/old/application/design/vorlagen/redesign-2019_api/reports/offer_blank.jrxml b/src/old/application/design/vorlagen/redesign-2019_api/reports/offer_blank.jrxml new file mode 100644 index 000000000..5b349c22c --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/reports/offer_blank.jrxml @@ -0,0 +1,236 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <band height="383"> + <staticText> + <reportElement x="344" y="184" width="60" height="14" uuid="d82c084f-2ef3-44f9-b9a9-36d21675e01c"/> + <textElement> + <font fontName="Trebuchet MS" size="9" pdfFontName="trebuc.ttf"/> + </textElement> + <text><![CDATA[Kunden-Nr:]]></text> + </staticText> + <staticText> + <reportElement x="344" y="169" width="60" height="15" uuid="19809d7c-77a7-48f1-b87e-2e000b45cf98"/> + <textElement> + <font fontName="Trebuchet MS" size="9" pdfFontName="trebuc.ttf"/> + </textElement> + <text><![CDATA[Datum:]]></text> + </staticText> + <staticText> + <reportElement x="74" y="254" width="80" height="20" uuid="4897ede6-a494-453d-9874-930b32731dcb"/> + <textElement> + <font fontName="Trebuchet MS" size="11" isBold="true" pdfFontName="trebucbd.ttf" isPdfEmbedded="true"/> + </textElement> + <text><![CDATA[Angebot]]></text> + </staticText> + <textField isBlankWhenNull="false"> + <reportElement key="textField" x="404" y="184" width="75" height="14" uuid="8cef944e-9d13-4f6b-98e8-39d28bc620be"/> + <textElement> + <font fontName="Trebuchet MS" size="9" pdfFontName="trebuc.ttf"/> + </textElement> + <textFieldExpression><![CDATA[$P{id}]]></textFieldExpression> + </textField> + <textField isBlankWhenNull="false"> + <reportElement key="textField" x="404" y="169" width="76" height="15" uuid="3a437699-27ef-4a33-98ff-32689bcf1075"/> + <textElement> + <font fontName="Trebuchet MS" size="9" pdfFontName="trebuc.ttf"/> + </textElement> + <textFieldExpression><![CDATA[date('Y-m-d',time())]]></textFieldExpression> + </textField> + <staticText> + <reportElement x="75" y="325" width="69" height="13" uuid="836df0c6-80dc-4854-9b3b-cd86a25e4595"/> + <textElement> + <font fontName="Trebuchet MS" size="10" pdfFontName="trebuc.ttf"/> + </textElement> + <text><![CDATA[Sehr geehrte Damen und Herren,]]></text> + </staticText> + <staticText> + <reportElement x="75" y="342" width="405" height="14" uuid="816c65d6-c6af-4e8e-91e5-4a3fb4f8b800"/> + <textElement> + <font fontName="Trebuchet MS" size="10" pdfFontName="trebuc.ttf"/> + </textElement> + <text><![CDATA[vielen Dank für Ihr Interesse. Hiermit erhalten Sie eine Übersicht über Ihr gewünschtes Produkt:]]></text> + </staticText> + <textField pattern=""> + <reportElement x="74" y="136" width="270" height="18" uuid="5b14d88b-ba01-42e1-8032-9f5707d1fcba"/> + <textElement> + <font fontName="Trebuchet MS" size="11" pdfFontName="trebuc.ttf"/> + </textElement> + <textFieldExpression><![CDATA[$P{company}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="75" y="373" width="150" height="12" uuid="b6cc361a-479e-44cd-bd52-9e183a831052"/> + <textElement verticalAlignment="Top"> + <font fontName="Trebuchet MS" size="10" pdfFontName="trebuc.ttf" isPdfEmbedded="true"/> + </textElement> + <textFieldExpression><![CDATA[$P{article}{title}]]></textFieldExpression> + </textField> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/old/application/design/vorlagen/redesign-2019_api/reports/offer_contact.jrxml b/src/old/application/design/vorlagen/redesign-2019_api/reports/offer_contact.jrxml new file mode 100644 index 000000000..ceb1f7587 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/reports/offer_contact.jrxml @@ -0,0 +1,271 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <band height="410"> + <staticText> + <reportElement x="344" y="184" width="60" height="14" uuid="1f192dc1-96b1-4b90-b5fd-4f65ebb1f58e"/> + <textElement> + <font fontName="Trebuchet MS" size="9" pdfFontName="trebuc.ttf"/> + </textElement> + <text><![CDATA[Kunden-Nr:]]></text> + </staticText> + <staticText> + <reportElement x="344" y="169" width="60" height="15" uuid="b41f9ca6-08fc-4ca2-8354-0fe5f6cbf711"/> + <textElement> + <font fontName="Trebuchet MS" size="9" pdfFontName="trebuc.ttf"/> + </textElement> + <text><![CDATA[Datum:]]></text> + </staticText> + <textField isBlankWhenNull="false"> + <reportElement key="textField" x="404" y="184" width="75" height="14" uuid="30e732de-f6c2-4a59-8ef3-35685bea58c9"/> + <textElement> + <font fontName="Trebuchet MS" size="9" pdfFontName="trebuc.ttf"/> + </textElement> + <textFieldExpression><![CDATA[$P{id}]]></textFieldExpression> + </textField> + <textField isBlankWhenNull="false"> + <reportElement key="textField" x="404" y="169" width="76" height="15" uuid="39b225a1-f00f-4eb6-a832-3d312d4a3867"/> + <textElement> + <font fontName="Trebuchet MS" size="9" pdfFontName="trebuc.ttf"/> + </textElement> + <textFieldExpression><![CDATA[date('Y-m-d',time())]]></textFieldExpression> + </textField> + <textField> + <reportElement x="74" y="154" width="270" height="15" uuid="c2f7147a-0178-4713-8ba7-91e534be5bdc"/> + <textElement> + <font fontName="Trebuchet MS" size="11" pdfFontName="trebuc.ttf"/> + </textElement> + <textFieldExpression><![CDATA[$P{self_firstname}. ' '.$P{self_lastname}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="74" y="169" width="270" height="15" uuid="6567010a-0922-4cf2-967b-b6a02a6dff98"/> + <textElement> + <font fontName="Trebuchet MS" size="11" pdfFontName="trebuc.ttf"/> + </textElement> + <textFieldExpression><![CDATA[$P{self_street}. ' '.$P{self_house_number}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="74" y="184" width="270" height="15" uuid="37e14927-30b8-4ad3-9b0d-b248b11f0b7f"/> + <textElement> + <font fontName="Trebuchet MS" size="11" pdfFontName="trebuc.ttf"/> + </textElement> + <textFieldExpression><![CDATA[$P{self_zip}. ' '.$P{self_city}]]></textFieldExpression> + </textField> + <textField isBlankWhenNull="false"> + <reportElement key="textField" x="75" y="282" width="269" height="14" uuid="c3e03fe2-2b71-41f6-b32c-7a0ec5cca27b"/> + <textElement> + <font fontName="Trebuchet MS" size="12" isBold="true" pdfFontName="trebuc.ttf"/> + </textElement> + <textFieldExpression><![CDATA['Konfigurationsübersicht für ' . $P{article}{title}]]></textFieldExpression> + </textField> + <staticText> + <reportElement x="75" y="325" width="69" height="13" uuid="25dd0c4d-8bb3-4c42-9dc9-6bc46fbcc11c"/> + <textElement> + <font fontName="Trebuchet MS" size="10" pdfFontName="trebuc.ttf"/> + </textElement> + <text><![CDATA[Sehr geehrte Damen und Herren,]]></text> + </staticText> + <staticText> + <reportElement x="75" y="342" width="405" height="14" uuid="7c195572-8a6c-453a-b902-a4334426aa53"/> + <textElement> + <font fontName="Trebuchet MS" size="10" pdfFontName="trebuc.ttf"/> + </textElement> + <text><![CDATA[vielen Dank für Ihr Interesse. Hiermit erhalten Sie eine Übersicht über Ihr gewünschtes Produkt:]]></text> + </staticText> + <staticText> + <reportElement x="75" y="357" width="405" height="14" uuid="1535ce4e-e03e-4e3d-aa8a-6b04d249a22c"/> + <textElement> + <font fontName="Trebuchet MS" size="10" pdfFontName="trebuc.ttf"/> + </textElement> + <text><![CDATA[Diese Konfigurationsübersicht ist kein bindendes Angebot. Es spiegelt den Preis Ihrer Konfiguration]]></text> + </staticText> + <staticText> + <reportElement x="75" y="372" width="405" height="14" uuid="67444f81-310e-49c7-9ec5-4422a0516faf"/> + <textElement> + <font fontName="Trebuchet MS" size="10" pdfFontName="trebuc.ttf"/> + </textElement> + <text><![CDATA[zum Erstellungszeitpunkt wieder. Hierfür bitten wir um Verständnis.]]></text> + </staticText> + <textField pattern=""> + <reportElement x="74" y="136" width="270" height="18" uuid="fd173098-6e85-46e1-bc06-7c148c029447"/> + <textElement> + <font fontName="Trebuchet MS" size="11" pdfFontName="trebuc.ttf"/> + </textElement> + <textFieldExpression><![CDATA[$P{company}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="75" y="383" width="150" height="12" uuid="b6cc361a-479e-44cd-bd52-9e183a831052"/> + <textElement verticalAlignment="Top"> + <font fontName="Trebuchet MS" size="10" pdfFontName="trebuc.ttf" isPdfEmbedded="true"/> + </textElement> + <textFieldExpression><![CDATA[$P{article}{title}]]></textFieldExpression> + </textField> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/old/application/design/vorlagen/redesign-2019_api/reports/order.jrxml b/src/old/application/design/vorlagen/redesign-2019_api/reports/order.jrxml new file mode 100644 index 000000000..07f64992b --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/reports/order.jrxml @@ -0,0 +1,442 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + <band height="377"> + <staticText> + <reportElement x="63" y="294" width="122" height="20"/> + <textElement> + <font fontName="Arial" size="10" isBold="true"/> + </textElement> + <text><![CDATA[Auftragsbestätigung Nr. ]]></text> + </staticText> + <staticText> + <reportElement x="63" y="318" width="420" height="15"/> + <textElement> + <font size="8"/> + </textElement> + <text><![CDATA[Sehr geehrte Damen und Herren,]]></text> + </staticText> + <textField isBlankWhenNull="false"> + <reportElement key="textField" x="191" y="294" width="156" height="20"/> + <textElement> + <font size="10" isBold="true" isItalic="false"/> + </textElement> + <textFieldExpression class="java.lang.String"><![CDATA['A-'.$P{order}{alias}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="63" y="147" width="158" height="15"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression class="java.lang.String"><![CDATA[$P{self_department}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="63" y="162" width="158" height="15"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression class="java.lang.String"><![CDATA[$P{self_firstname}.' '.$P{self_lastname}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="63" y="177" width="158" height="15"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression class="java.lang.String"><![CDATA[$P{self_street}.' '.$P{self_house_number}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="63" y="192" width="158" height="15"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression class="java.lang.String"><![CDATA[$P{self_zip}.' '.$P{self_city}]]></textFieldExpression> + </textField> + <staticText> + <reportElement x="63" y="333" width="418" height="15"/> + <textElement> + <font size="8"/> + </textElement> + <text><![CDATA[vielen Dank für die Erteilung Ihres Auftrages, dessen Ausführung wir im einzelnen auf der Grundlage unserer Ihnen]]></text> + </staticText> + <staticText> + <reportElement x="63" y="348" width="413" height="15"/> + <textElement> + <font size="8"/> + </textElement> + <text><![CDATA[bekannten Geschäftsbedingungen wie folgt bestätigen:]]></text> + </staticText> + <textField> + <reportElement x="320" y="280" width="118" height="12"> + <printWhenExpression><![CDATA[$P{lieferissame}.equals(1)]]></printWhenExpression> + </reportElement> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression class="java.lang.String"><![CDATA[$P{liefer}{zip}.' '.$P{liefer}{city}]]></textFieldExpression> + </textField> + <textField isBlankWhenNull="false"> + <reportElement key="textField" x="382" y="217" width="140" height="12"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression class="java.util.Date"><![CDATA[date('Y-m-d',time())]]></textFieldExpression> + </textField> + <textField> + <reportElement x="320" y="268" width="118" height="12"> + <printWhenExpression><![CDATA[$P{lieferissame}.equals(1)]]></printWhenExpression> + </reportElement> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression class="java.lang.String"><![CDATA[$P{liefer}{street}.' '.$P{liefer}{house_number}]]></textFieldExpression> + </textField> + <staticText> + <reportElement x="320" y="218" width="62" height="12"/> + <textElement> + <font size="8"/> + </textElement> + <text><![CDATA[Datum:]]></text> + </staticText> + <staticText> + <reportElement x="320" y="156" width="62" height="12"/> + <textElement> + <font size="8"/> + </textElement> + <text><![CDATA[Bestellung vom:]]></text> + </staticText> + <staticText> + <reportElement x="320" y="144" width="62" height="12"/> + <textElement> + <font size="8"/> + </textElement> + <text><![CDATA[Ihre Kunden-Nr:]]></text> + </staticText> + <staticText> + <reportElement x="320" y="168" width="62" height="12"/> + <textElement> + <font size="8"/> + </textElement> + <text><![CDATA[Bestellt von:]]></text> + </staticText> + <textField> + <reportElement x="320" y="256" width="118" height="12"> + <printWhenExpression><![CDATA[$P{lieferissame}.equals(1)]]></printWhenExpression> + </reportElement> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression class="java.lang.String"><![CDATA[$P{liefer}{firstname}.' '.$P{liefer}{lastname}]]></textFieldExpression> + </textField> + <textField isBlankWhenNull="false"> + <reportElement key="textField" x="382" y="193" width="140" height="12"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression class="java.util.Date"><![CDATA[date('Y-m-d',time())]]></textFieldExpression> + </textField> + <textField isBlankWhenNull="false"> + <reportElement key="textField" x="320" y="180" width="202" height="12"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression class="java.lang.String"><![CDATA[$P{name}]]></textFieldExpression> + </textField> + <textField isBlankWhenNull="false"> + <reportElement key="textField" x="382" y="205" width="140" height="12"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression class="java.lang.String"><![CDATA[$P{order}{package}]]></textFieldExpression> + </textField> + <staticText> + <reportElement x="320" y="232" width="62" height="12"> + <printWhenExpression><![CDATA[$P{lieferissame}.equals(1)]]></printWhenExpression> + </reportElement> + <textElement> + <font size="8" isBold="true"/> + </textElement> + <text><![CDATA[Lieferadresse:]]></text> + </staticText> + <staticText> + <reportElement x="320" y="193" width="62" height="12"/> + <textElement> + <font size="8"/> + </textElement> + <text><![CDATA[Lieferdatum:]]></text> + </staticText> + <textField> + <reportElement x="320" y="244" width="118" height="12"> + <printWhenExpression><![CDATA[$P{lieferissame}.equals(1)]]></printWhenExpression> + </reportElement> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression class="java.lang.String"><![CDATA[$P{liefer}{company}]]></textFieldExpression> + </textField> + <textField isBlankWhenNull="false"> + <reportElement key="textField" x="382" y="144" width="140" height="12"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression class="java.lang.String"><![CDATA[$P{id}]]></textFieldExpression> + </textField> + <staticText> + <reportElement x="320" y="205" width="62" height="12"/> + <textElement> + <font size="8"/> + </textElement> + <text><![CDATA[Paketinfo:]]></text> + </staticText> + <textField isBlankWhenNull="false"> + <reportElement key="textField" x="382" y="156" width="140" height="12"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression class="java.util.Date"><![CDATA[$P{order}{created}]]></textFieldExpression> + </textField> + <staticText> + <reportElement x="320" y="132" width="62" height="12"/> + <textElement> + <font size="8"/> + </textElement> + <text><![CDATA[Ref.:]]></text> + </staticText> + <textField isBlankWhenNull="false"> + <reportElement key="textField" x="382" y="132" width="141" height="12"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression class="java.lang.String"><![CDATA[$P{order}{basketfield2}]]></textFieldExpression> + </textField> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/old/application/design/vorlagen/redesign-2019_api/step_layouter/footer.html.twig b/src/old/application/design/vorlagen/redesign-2019_api/step_layouter/footer.html.twig new file mode 100644 index 000000000..210ae9df3 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/step_layouter/footer.html.twig @@ -0,0 +1,193 @@ + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/step_layouter/header.html.twig b/src/old/application/design/vorlagen/redesign-2019_api/step_layouter/header.html.twig new file mode 100644 index 000000000..c119e0a5b --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/step_layouter/header.html.twig @@ -0,0 +1,55 @@ + + + + +
+
+ +
+
\ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/_carousel.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/_carousel.phtml new file mode 100644 index 000000000..45b1e46a6 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/_carousel.phtml @@ -0,0 +1,47 @@ +setting()->getSlides(); + $i = 0; + $counter = count($slides) +?> + + 0): ?> + + diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/_features.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/_features.phtml new file mode 100644 index 000000000..9d0de1ebd --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/_features.phtml @@ -0,0 +1,37 @@ +
+
+
+
+
Watch
+
+

Schnelligkeit ist unsere Spezialität. Die Lieferung ist bereits in wenigen Tagen bei Ihnen.

+
+
+
+
+
Messer
+
+

Top-Qualität zu fairen Preisen. Unser moderner Maschinenpark macht es Ihnen möglich.

+
+
+
+
+
Berg
+
+

Ihre Bestellung wird in Bayern entgegengenommen, geprüft und produziert!

+
+
+
+
+
Muetze
+
+

Sie finden etwas nicht im Shop? Wir sind gerne auch per Anfrage für Sie da und gehen auf Ihre individuellen Wünsche ein.

+
+
+
+
+ + +
+ +
\ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/_motivlistitem.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/_motivlistitem.phtml new file mode 100644 index 000000000..c79a4427a --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/_motivlistitem.phtml @@ -0,0 +1,25 @@ +
+
+ +
+
Text()->truncate_text($this->escape($this->motiv->title),25) ?>
+
+ + + +
+
+ motiv->copyright != "" && $this->designsettings()->get('motiv_copyright')): ?>© Text()->truncate_text($this->escape($this->motiv->copyright),15) ?> +   +
+
+ +
+
\ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/article/_article_slider.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/article/_article_slider.phtml new file mode 100644 index 000000000..412e3c50e --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/article/_article_slider.phtml @@ -0,0 +1,75 @@ +
+ + ' . $this->article->title .''?> + + +
+ article->getCustom1()) || !empty($this->article->getCustom2()) || !empty($this->article->getCustom3()) || !empty($this->article->getCustom4()) || !empty($this->article->getCustom5()) || !empty($this->article->getCustom6()) || !empty($this->article->getCustom7())): ?> +
    + + article->getCustom2())): ?> +
  • + + + article->getCustom4())): ?> +
  • + + + article->getCustom1())): ?> +
  • + + + article->getCustom3())): ?> +
  • + + + article->getCustom6())): ?> +
  • + + + article->getCustom7())): ?> +
  • + + + article->getCustom5())): ?> +
  • + + article->getCustom1()) || !empty($this->article->getCustom2()) || !empty($this->article->getCustom3()) || !empty($this->article->getCustom4()) || !empty($this->article->getCustom5()) || !empty($this->article->getCustom6()) || !empty($this->article->getCustom7())): ?> +
+ + + designsettings()->get('b2bshop') && + ($this->article->a4_abpreis_calc != 0 || + $this->article->OrgArticle->a4_abpreis_calc || + ($this->article->a6_org_article != 0 && $this->article->sum*1+($this->article->sum/100*$this->article->mwert) != 0) || + (($this->article->a4_abpreis + $this->article->a6_resale_price)*1+(($this->article->a4_abpreis + $this->article->a6_resale_price)/100*$this->article->mwert) != 0))): + ?> +
+ article->typ != 2 && $this->article->a4_abpreis_calc || $this->article->OrgArticle->a4_abpreis_calc):?> + translate('ab ') ?>currency->toCurrency($this->article->a4_abpreis) ?> + article->typ == 2): ?> + translate('ab ') ?>currency->toCurrency($this->article->preis*1+($this->article->preis/100*$this->article->mwert)) ?> + article->a6_org_article != 0):?> + translate('ab ') ?>currency->toCurrency($this->article->sum*1+($this->article->sum/100*$this->article->mwert)) ?> + + translate('ab ') ?>currency->toCurrency(($this->article->a4_abpreis + $this->article->a6_resale_price)*1+(($this->article->a4_abpreis + $this->article->a6_resale_price)/100*$this->article->mwert)) ?> + +
+ + +
Text()->truncate_text($this->escape($this->article->getTitle()),40) ?>
+ + article->getText())): ?> + article->getText() ?> + +
    +
  • Individuell gestalten
  • +
  • einfach online kalkulieren
  • +
  • Klein- & Großauflagen
  • +
+ + + Jetzt gestalten +
+
diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/article/_articlegrouplistitem.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/article/_articlegrouplistitem.phtml new file mode 100644 index 000000000..23c95e6d9 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/article/_articlegrouplistitem.phtml @@ -0,0 +1,20 @@ + + diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/article/_articlelistitem.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/article/_articlelistitem.phtml new file mode 100644 index 000000000..838eb5e0a --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/article/_articlelistitem.phtml @@ -0,0 +1,52 @@ + +
+
+ +
+ article->typ == 6 && $this->article->a6_org_article != 0) || $this->article->typ == 8 ) && $this->article->upload_steplayouter_data != ""): + echo $this->image()->thumbnailSteplayouter2Article($this->article->title, 'img-fluid embed-responsive-item', $this->article, false); + else: + echo $this->image()->thumbnailImage($this->article->title, 'product_card', $this->article->file); + endif; + ?> +
+
+ +
+
Text()->truncate_text($this->escape($this->article->getTitle()),40) ?>
+ + designsettings()->get('b2bshop') && + ($this->article->a4_abpreis_calc != 0 || + $this->article->OrgArticle->a4_abpreis_calc || + ($this->article->a6_org_article != 0 && $this->article->sum*1+($this->article->sum/100*$this->article->mwert) != 0) || + (($this->article->a4_abpreis + $this->article->a6_resale_price)*1+(($this->article->a4_abpreis + $this->article->a6_resale_price)/100*$this->article->mwert) != 0))): ?> + +
+ translate('ab') ?> + article->typ != 2 && $this->article->a4_abpreis_calc || $this->article->OrgArticle->a4_abpreis_calc):?> + currency->toCurrency($this->article->a4_abpreis) ?> + article->typ == 2): ?> + currency->toCurrency($this->article->preis*1+($this->article->preis/100*$this->article->mwert)) ?> + article->a6_org_article != 0):?> + currency->toCurrency($this->article->sum*1+($this->article->sum/100*$this->article->mwert)) ?> + + currency->toCurrency(($this->article->a4_abpreis + $this->article->a6_resale_price)*1+(($this->article->a4_abpreis + $this->article->a6_resale_price)/100*$this->article->mwert)) ?> + + +
+ + article->getText())): ?> + article->getText() ?> + +
    +
  • Individuell gestalten
  • +
  • einfach online kalkulieren
  • +
  • Klein- & Großauflagen
  • +
+ + translate('Jetzt gestalten')?> +
+
+
diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/article/_articlelistitem_produktuebersicht.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/article/_articlelistitem_produktuebersicht.phtml new file mode 100644 index 000000000..303a245c2 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/article/_articlelistitem_produktuebersicht.phtml @@ -0,0 +1,66 @@ +article->getCustom1() == "ja" ) { + $cssclass_neu = "neu"; +} +?> + +
"> + +
+ article->typ == 6 && $this->article->a6_org_article != 0) || $this->article->typ == 8 ) && $this->article->file == ""): + $_img_tmp = $this->image()->thumbnailFop($this->article->title, '', $this->article->getMarketFile(), false, $this->article->id); + else: + $_img_tmp = $this->image()->thumbnailImage($this->article->title, '', $this->article->file); + endif; + + empty($_img_tmp) ? print '
 
' : print str_replace('id=""','',$_img_tmp); + + ?> +
+ +
+

Text()->truncate_text($this->escape($this->article->getTitle()),40) ?>

+ + designsettings()->get('b2bshop') && + ($this->article->a4_abpreis_calc != 0 || + $this->article->OrgArticle->a4_abpreis_calc || + ($this->article->a6_org_article != 0 && $this->article->sum*1+($this->article->sum/100*$this->article->mwert) != 0) || + (($this->article->a4_abpreis + $this->article->a6_resale_price)*1+(($this->article->a4_abpreis + $this->article->a6_resale_price)/100*$this->article->mwert) != 0))): + ?> + +

+

+ article->typ != 2 && $this->article->a4_abpreis_calc || $this->article->OrgArticle->a4_abpreis_calc): + echo $this->translate('ab') ?> currency->toCurrency($this->article->a4_abpreis) ?> + + article->typ == 2): + echo $this->translate('ab') ?> currency->toCurrency($this->article->preis*1+($this->article->preis/100*$this->article->mwert)) ?> + + article->a6_org_article != 0): + echo $this->translate('ab') ?> currency->toCurrency($this->article->sum*1+($this->article->sum/100*$this->article->mwert)) ?> + + translate('ab') ?> currency->toCurrency(($this->article->a4_abpreis + $this->article->a6_resale_price)*1+(($this->article->a4_abpreis + $this->article->a6_resale_price)/100*$this->article->mwert)) ?> + + + +
+

+ + + translate('Bestellen')?> +
+
+
+ + diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/article/_collecting_orders.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/article/_collecting_orders.phtml new file mode 100644 index 000000000..8971aea20 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/article/_collecting_orders.phtml @@ -0,0 +1,101 @@ +headScript()->prependFile('/scripts/underscore183.js'); +$this->headScript()->prependFile('/scripts/list.js'); + +?> + + + + + + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/article/_collecting_orders_integrated.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/article/_collecting_orders_integrated.phtml new file mode 100644 index 000000000..5a4c970c8 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/article/_collecting_orders_integrated.phtml @@ -0,0 +1,55 @@ +headScript()->prependFile('/scripts/underscore183.js'); +$this->headScript()->prependFile('/scripts/list.js'); + +?> + + +
+
+
+
+
+
+
+
+
+
+ + article->isCollectingOrdersNewContact()): ?> + translate('Adresse für Standort hinzufügen')?> +
+
+
+
+
+ + + + +
+
+
+ \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/article/_upload_multi.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/article/_upload_multi.phtml new file mode 100644 index 000000000..cac6648fb --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/article/_upload_multi.phtml @@ -0,0 +1,83 @@ +headScript()->prependFile('/scripts/underscore.js'); +$this->headScript()->prependFile('/scripts/upload_multi.js'); +?> + + + + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/article/approval.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/article/approval.phtml new file mode 100644 index 000000000..131caedea --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/article/approval.phtml @@ -0,0 +1,44 @@ + + +
+
+
+ article->file1 != "" && $this->layouterPreviewId == ""): ?> + image()->thumbnailImage($this->article->title, 'layouter', $this->article->file); ?> + + article->file != "" && $this->layouterPreviewId == ""): ?> + image()->thumbnailImage($this->article->title, 'layouter', $this->article->file); ?> + + + article->a6_org_article != 0 && $this->article->file == "" && $this->article->file1 == "") || $this->layouterPreviewId): ?> + articleObj->generatePreview($this->article->id, $this->layouterPreviewId); ?> + +
+
+
+

article->getTitle() ?>

+ article->getInfo() ?> +
+
+form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); + +$this->form->setAttrib('class', 'niceform form-horizontal'); +echo $this->form ?> +
\ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/article/buy.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/article/buy.phtml new file mode 100644 index 000000000..d4ebec9e5 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/article/buy.phtml @@ -0,0 +1,7 @@ +

translate('Article Overview') ?>

+articles as $article): ?> +

title ?>

+

Preis price ?>

+Detail +
+ \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/article/create.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/article/create.phtml new file mode 100644 index 000000000..7ce82a817 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/article/create.phtml @@ -0,0 +1,36 @@ +headLink()->appendStylesheet('/styles/admin/base.css'); +$this->headLink()->appendStylesheet('/scripts/ext-3.0.0/resources/css/ext-all.css'); +$this->headLink()->appendStylesheet('/scripts/vendor/wizard/resources/css/ext-ux-wiz.css'); + +$this->headScript()->appendFile('/scripts/tp/Locale.js'); +$this->headScript()->appendFile('/scripts/tp/Locale/Gettext.js'); +$this->headScript()->appendFile('/scripts/ext-3.0.0/adapter/ext/ext-base.js'); +$this->headScript()->appendFile('/scripts/ext-3.0.0/ext-all-debug.js'); + +$this->headScript()->appendFile('/scripts/vendor/wizard/CardLayout.js'); +$this->headScript()->appendFile('/scripts/vendor/wizard/Wizard.js'); +$this->headScript()->appendFile('/scripts/vendor/wizard/Header.js'); +$this->headScript()->appendFile('/scripts/vendor/wizard/Card.js'); +$this->headScript()->appendFile('/scripts/admin/article/addarticle.js'); + +?> +doctype() ?> + + + headMeta(); ?> + headLink(); ?> + headScript(); ?> + getLanguage() == 'de'): ?> + + + + + + + PrintShopCreator + + +
+ + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/article/index.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/article/index.phtml new file mode 100644 index 000000000..820890d27 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/article/index.phtml @@ -0,0 +1,95 @@ + +
+ +
+filter->getArticleFilter()) > 0): ?> +

translate('Filter') ?>: +filter->getArticleFilter() as $key => $title): ?> + + +

+

 

+ +partial('doctrinepagination.phtml', array('paginator' => $this->paginator, 'sort' => $this->sort)) ?> +articles as $article): ?> +partial('article/_articlelistitem.phtml', array('admin' => $this->admin, 'user' => $this->user, 'currency' => $this->currency, 'article' => $article, 'designPath' => $this->designPath, 'shop' => $this->shop)) ?> + +
+partial('doctrinepagination.phtml', array('paginator' => $this->paginator, 'sort' => $this->sort)) ?> +
+
+
+
+
+
+
+
+
+
\ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/article/inwork.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/article/inwork.phtml new file mode 100644 index 000000000..f0de1da8a --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/article/inwork.phtml @@ -0,0 +1,36 @@ +
+
+
+ myarticles) > 0): + ?> + +

inworkCount; ?> translate('Produkte in Bearbeitung', 'text') ?>

+ +
+ +
    + myarticles as $article): + if($article['orginal'] == false) continue; + ?> +
  • +
    +
    Text()->truncate_text($this->escape($article['session']->getTitle()),40); ?>
    +
    getUpdated() ?>
    + +
    +
  • + +
+ + Alle löschen + + +

translate('Keine Produkte in der Bearbeitungsliste vorhanden')?>

+ +
+
+
diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/article/myarticle.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/article/myarticle.phtml new file mode 100644 index 000000000..04d3980ae --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/article/myarticle.phtml @@ -0,0 +1,13 @@ +
+
partial ( 'sidenav.phtml', array ('shop' => $this->shop)); ?>
+
partial ( 'product_tabs.phtml', array ('finisharticles' => $this->finisharticles, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath ) );?> + + +hasIdentity()==true): ?> +
    +myarticles as $article): ?> +partial('article/_articlelistitem.phtml', array('admin' => $this->admin, 'user' => $this->user, 'currency' => $this->currency, 'article' => $article, 'myarticle' => true, 'designPath' => $this->designPath, 'shop' => $this->shop)) ?> + +
+ +
diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/article/mypersarticle.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/article/mypersarticle.phtml new file mode 100644 index 000000000..b211918d8 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/article/mypersarticle.phtml @@ -0,0 +1,18 @@ +hasIdentity()==true): ?> + +
+
+
+ + myarticles as $article): ?> + partial('article/_articlelistitem.phtml', array('basepath' => $this->basepath, 'admin' => $this->admin, 'mode' => $this->mode, 'user' => $this->user, 'currency' => $this->currency, 'article' => $article, 'designPath' => $this->designPath, 'shop' => $this->shop)) + $this->partial('article/_articlelistitem_produktuebersicht.phtml', array('basepath' => $this->basepath, 'admin' => $this->admin, 'mode' => $this->mode, 'user' => $this->user, 'currency' => $this->currency, 'article' => $article, 'designPath' => $this->designPath, 'shop' => $this->shop)); + ?> + + +
+
+
+ + diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/article/preview.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/article/preview.phtml new file mode 100644 index 000000000..24cb2312d --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/article/preview.phtml @@ -0,0 +1,36 @@ + + +
+ +headScript()->prependFile('/scripts/artgallery/js/swfobject.js') ?> + +
+
\ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/article/show.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/article/show.phtml new file mode 100644 index 000000000..481962364 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/article/show.phtml @@ -0,0 +1,71 @@ +articleTemplate; ?> + +article->getRelated(6); +if ($this->shop->template_display_products_crossselling && !empty($relatedbuys)): + ?> + +
+
+
+ +
+
+
+
+

translate('Wir empfehlen auch folgende Produkte', 'text', 'releated_article_h1') ?>

+
+
+
+ +
+ +
+ partial('article/_articlelistitem.phtml', array('basepath' => $this->basepath, 'admin' => $this->admin, 'mode' => $this->mode, 'user' => $this->user, 'currency' => $this->currency, 'article' => $article, 'designPath' => $this->designPath, 'shop' => $this->shop)) ?> +
+ +
+ +
+
+
+ + +
+ diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/basket/_delivery_multi.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/basket/_delivery_multi.phtml new file mode 100644 index 000000000..9050bc100 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/basket/_delivery_multi.phtml @@ -0,0 +1,44 @@ +headScript()->prependFile('/scripts/underscore.js'); +$this->headScript()->prependFile('/scripts/list.js'); +$this->headScript()->prependFile('/'. $this->designPath . '/delivery_data.js'); +?> + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/basket/done.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/basket/done.phtml new file mode 100644 index 000000000..4822cf600 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/basket/done.phtml @@ -0,0 +1,21 @@ +
+ + + + + +
\ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/basket/finish.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/basket/finish.phtml new file mode 100644 index 000000000..987a45a50 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/basket/finish.phtml @@ -0,0 +1,365 @@ +
+
+
+

translate('Warenkorb / Bestellung') ?>

+
+
+ + basketIsEmpty): ?> +
+
+ translate('Sie haben keine Artikel im Warenkorb. Keine Bestellung möglich.')?> +
+
+ + + + + cms()->getCmsByIdMarket('template_display_orders')->text1 != ''): ?> +
+
+

cms()->getCmsByIdMarket('template_display_orders')->text1; ?>

+
+
+ + +
+
+
+
+

translate('Rechnungsadresse')?>

+ +
+ invoice_address->getAnrede() ?> invoice_address->getFirstname() ?> invoice_address->getLastname() ?> + invoice_address->getCompany() != ""): ?>
invoice_address->getCompany() ?> + invoice_address->getAbteilung() != ""): ?>
invoice_address->getAbteilung() ?> +
invoice_address->getStreet() ?> invoice_address->getHouseNumber() ?> +
invoice_address->getCountry() ?> invoice_address->getZip() ?> invoice_address->getCity() ?> +
+ +

+ translate('Ändern')?> +

+
+
+
+ + invoice_address != $this->delivery_address): ?> +
+
+
+

translate('Lieferadresse')?>

+ +
+ delivery_address): ?> + delivery_address->getAnrede() ?> delivery_address->getFirstname() ?> delivery_address->getLastname() ?> + delivery_address->getCompany() != ""): ?>
delivery_address->getCompany() ?> + delivery_address->getAbteilung() != ""): ?>
delivery_address->getAbteilung() ?> +
delivery_address->getStreet() ?> delivery_address->getHouseNumber() ?> +
delivery_address->getCountry() ?> delivery_address->getZip() ?> delivery_address->getCity() ?> + +
+ +

+ translate('Ändern')?> +

+
+
+
+ + + sender_address && $this->shop->display_sender): ?> +
+
+
+

translate('Absendeadresse auf Paketschein')?>

+ +
+ sender_address): ?> + sender_address->getAnrede() ?> sender_address->getFirstname() ?> sender_address->getLastname() ?> + sender_address->getCompany() != ""): ?>
sender_address->getCompany() ?> + sender_address->getAbteilung() != ""): ?>
sender_address->getAbteilung() ?> +
sender_address->getStreet() ?> sender_address->getHouseNumber() ?> +
sender_address->getCountry() ?> sender_address->getZip() ?> sender_address->getCity() ?> + +
+ +

+ translate('Ändern')?> +

+
+
+
+ + +
+
+
+

translate('Gewählte Versandart')?>

+

shippingtype->title ?>

+

+ translate('Ändern')?> +

+
+
+
+ +
+
+
+

translate('Gewählte Zahlungsart')?>

+

paymenttype->title ?>

+

+ translate('Ändern')?> +

+
+
+
+
+ +
+
+

translate('Warenkorb')?> translate('Produkte ändern')?>

+
+
+ +
+
+
+
+ + + + + + + + + + + + basket_articles_complete as $barticle): ?> + + + + + + + + + +
translate('Produktbild')?>translate('Produkt/Optionen')?>translate('Einzelpreis')?>translate('Anzahl')?>translate('Preis')?>
+ getLayouterId() == "" || $barticle['basketarticle']->getLayouterId() == false)): ?> + image()->thumbnailImage($barticle['article']['title'], 'little', $barticle['article']['file']); ?> + + + generatePreview($barticle['article']['id'],$barticle['basketarticle']->getLayouterId(), 'little'); ?> + + + getLayouterId() == "" || $barticle['basketarticle']->getLayouterId() == false)): ?> + + + layouter()->getTitle($barticle['basketarticle']->getLayouterId()); ?> + + + + +
    + $option): ?> + +
  • ,
  • + + + +
+ + +
+ 0): ?>currency->toCurrency($barticle['basketarticle']->getBrutto() / intval($count))?>currency->toCurrency($barticle['basketarticle']->getBrutto() / $barticle['basketarticle']->getCount())?> + + 0): ?>getCount() ?> + + withTax): ?> + currency->toCurrency($barticle['basketarticle']->getBrutto() * $barticle['basketarticle']->getCount()) ?> + + currency->toCurrency($barticle['basketarticle']->getNetto() * $barticle['basketarticle']->getCount()) ?> + +
+
+
+
+ + + +
+
+
+ + + withTax): ?> + + + + + + + + + + + + + + + + + + + + + no_payment): ?> + + + + + + + + withTax): ?> + getMWert() as $key => $mw): ?> + + + + + + +basket_gutschein_enable != ""): ?> + + + + + + + + + + + + + + + + + + + +
translate('Produktpreis (inkl. MwSt.)'); ?>:currency->toCurrency(TP_Basket::getBasket()->getProduktPreisBrutto()) ?>
translate('Produktpreis'); ?>:currency->toCurrency(TP_Basket::getBasket()->getProduktPreisNetto()) ?>
+ translate('zzgl. Versand'); ?>: + + currency->toCurrency(TP_Basket::getBasket()->getVersandBrutto()) ?> +
+ translate('zzgl. Zahlart'); ?>: + + currency->toCurrency(TP_Basket::getBasket()->getZahlartBrutto()) ?> +
+ translate('enth. MwSt.'); ?> %: + + currency->toCurrency($mw) ?> +
+ translate('Gesamtsumme Brutto'); ?>: + + withTax): ?> + currency->toCurrency($this->preisbrutto) ?> + + currency->toCurrency($this->preis) ?> + +
+ translate('abzgl. Gutschein'); ?>: + + currency->toCurrency($this->basket_gutschein) ?> +
+
translate('Preis abzgl. Gutschein'); ?>:
+
+
currency->toCurrency(TP_Basket::getBasket()->getPreisBrutto()-$this->basket_gutschein) ?>
+
+
translate('Gesamtsumme Brutto'); ?>:
+
+ withTax): ?> +
currency->toCurrency($this->preisbrutto) ?>
+ +
currency->toCurrency($this->preis) ?>
+ +
+
+
+
+ +
+
+ designsettings()->get('b2bshop')): ?> + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + + + + +
+
+ +
+
+ designsettings()->get('b2bshop')): ?> + + + + +
+
+
+
diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/basket/index.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/basket/index.phtml new file mode 100644 index 000000000..f146f3745 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/basket/index.phtml @@ -0,0 +1,279 @@ +
+
+
+

translate('Warenkorb / Bestellung') ?>

+
+
+ + basketIsEmpty): ?> +
+
+ translate('Sie haben keine Artikel im Warenkorb. Keine Bestellung möglich.')?> +
+
+ + + +
+
+
+ + + + + + + + + + + articles as $article): + if($article['article']->stock) { + $checkarray[] = $article['article']['title']; + $checkarray[$article['article']['title']] = $checkarray[$article['article']['title']]+$article['article']->stock_count; + if($checkarray[$article['article']['title']] > $article['article']->stock_count) { + if($stockcounter == 0) { + echo "
"; + } + echo $article['article']['title'] . "
"; + $stockcounter++; +?> + + + next()?>">partial($article['article']->typ.'_basket_index.phtml', array('article' => $article, 'currency' => $this->currency, 'shop' => $this->shop)) ?> + + +
translate('Produktbild')?>translate('Produkt/Optionen')?>translate('Anzahl'); ?>translate('Preis'); ?>
+
+
+
+shop->betreiber_register); +var_dump($teile); + +$curl = curl_init(); + +curl_setopt_array($curl, array( + CURLOPT_URL => "https://onlinedruckbayern.dockserver.de/apps/api/product/cd1ac80c-6f67-4d60-a233-cc0af8889124", + CURLOPT_RETURNTRANSFER => true, + CURLOPT_ENCODING => '', + CURLOPT_MAXREDIRS => 10, + CURLOPT_TIMEOUT => 0, + CURLOPT_FOLLOWLOCATION => true, + CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, + CURLOPT_CUSTOMREQUEST => 'GET', + CURLOPT_HTTPHEADER => array( + 'Accept: application/json', + 'apiKey: '. $keyAPI .'' + ), +)); + +$response = curl_exec($curl); + +curl_close($curl); + +$result = json_decode($response); +var_dump($result);*/ +?> + +
+
+
+ + + + + + + + + + + + + + + + + + no_payment): ?> + + + + + + + + designsettings()->get('b2bshop')): ?> + + + + + + + + mwertalle as $key => $mw): ?> + + + + + + + +errorGutscheincode == false && $this->gutscheincode != "" && (TP_Basket::getBasket()->getGutscheinAbzugTyp() == TP_Basket::GUTSCHEIN_ALL || TP_Basket::getBasket()->getGutscheinAbzugTyp() == TP_Basket::GUTSCHEIN_PRODUCT)): ?> + + + + + + + + + + + + + + + + + + + + + + + + shop->basketfield1): ?> + + + + + + + + + + + + +
translate('Produktpreis (inkl. MwSt.)'); ?>:currency->toCurrency($this->productbrutto) ?>
+ translate('zzgl. Versand'); ?>: + + + shippingtypeselected['description'] ?> + + currency->toCurrency($this->versandbrutto) ?> +
+ translate('zzgl. Zahlart'); ?>: + + + paymenttypeselected['description'] ?> + + currency->toCurrency($this->paymentwertbrutto) ?> +
+ translate('Gutscheincode')?>: + + + + +
+ translate('enth. MwSt.'); ?> %: + + currency->toCurrency($mw) ?> +
+
translate('Gesamtsumme Brutto'); ?>:
+
+
currency->toCurrency($this->brutto) ?>
+
+ translate('abzgl. Gutschein'); ?>: +   + currency->toCurrency($this->gutscheincodeabzug) ?> +
+
translate('Preis abzgl. Gutschein'); ?>:
+
  +
currency->toCurrency($this->productbruttogutschein) ?>
+
+
translate('Gesamtsumme Brutto'); ?>:
+
+
currency->toCurrency($this->brutto) ?>
+
+ shop->basketfield1 ?>: + + +
+ + +
+
+
+
+ +
\ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/basket/review.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/basket/review.phtml new file mode 100644 index 000000000..bece91a6f --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/basket/review.phtml @@ -0,0 +1,314 @@ +headScript()->prependFile('/scripts/underscore.js'); +$this->headScript()->prependFile('/'. $this->designPath . '/basket/review.js'); +?> + +
+
+
+

translate('Warenkorb / Bestellung') ?>

+
+
+ + basketIsEmpty): ?> +
+
+ translate('Sie haben keine Artikel im Warenkorb. Keine Bestellung möglich.')?> +
+
+ + + + +
+
+
+
+
+

translate('Rechnungsadresse')?>

+ +
+ invoice_address->getAnrede() ?> invoice_address->getFirstname() ?> invoice_address->getLastname() ?> + invoice_address->getCompany() != ""): ?>
invoice_address->getCompany() ?> + invoice_address->getAbteilung() != ""): ?>
invoice_address->getAbteilung() ?> +
invoice_address->getStreet() ?> invoice_address->getHouseNumber() ?> +
invoice_address->getCountry() ?> invoice_address->getZip() ?> invoice_address->getCity() ?> +
+ +

+ +

+
+
+
+ + shop->display_delivery): ?> +
+
+
+

translate('Lieferadresse')?>

+ +
+ deliveryIsSame)? '':'checked="checked"' ?> value="1"> + +
+ + +
+
+ delivery_address): ?> + delivery_address->getAnrede() ?> delivery_address->getFirstname() ?> delivery_address->getLastname() ?> + delivery_address->getCompany() != ""): ?>
delivery_address->getCompany() ?> + delivery_address->getAbteilung() != ""): ?>
delivery_address->getAbteilung() ?> +
delivery_address->getStreet() ?> delivery_address->getHouseNumber() ?> +
delivery_address->getCountry() ?> delivery_address->getZip() ?> delivery_address->getCity() ?> + +
+ +

+ +

+
+
+
+
+ + + shop->display_sender): ?> +
+
+
+

translate('Absendeadresse auf Paketschein')?>

+ +
+ senderIsSame)? '':'checked="checked"' ?> value="1"> + +
+ +
+
+ sender_address): ?> + sender_address->getAnrede() ?> sender_address->getFirstname() ?> sender_address->getLastname() ?> + sender_address->getCompany() != ""): ?>
sender_address->getCompany() ?> + sender_address->getAbteilung() != ""): ?>
sender_address->getAbteilung() ?> +
sender_address->getStreet() ?> sender_address->getHouseNumber() ?> +
sender_address->getCountry() ?> sender_address->getZip() ?> sender_address->getCity() ?> + +
+ +

+ +

+
+
+
+
+ +
+ + + + + +
+
+ +
+
+
+ + + + + + + + + + + + + + + + +
diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/breadcrumbs.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/breadcrumbs.phtml new file mode 100644 index 000000000..dbc90db30 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/breadcrumbs.phtml @@ -0,0 +1,3 @@ +
  • /
  • ', array_map( + create_function('$a', 'return $a->getLabel();'), + $this->pages));?>
  • diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/carousel.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/carousel.phtml new file mode 100644 index 000000000..cbb12812a --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/carousel.phtml @@ -0,0 +1,76 @@ +
    + setting()->getSlides(); + $i = 0; + + // Mehr als 1 Bild zum Sliden + if(count($slides) > 1): + ?> + + + + + +
    diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/cms/index.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/cms/index.phtml new file mode 100644 index 000000000..ee28eb4fc --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/cms/index.phtml @@ -0,0 +1,17 @@ +page->title == "Anfragen") { +echo $this->page->getText(); +} else { + ?> +
    +
    + page->display_title): ?> +
    +

    page->title ?>

    +
    + + +
    page->getText() ?>
    +
    +
    + + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/cms/simple.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/cms/simple.phtml new file mode 100644 index 000000000..91a22b23d --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/cms/simple.phtml @@ -0,0 +1,16 @@ +headLink()->appendStylesheet($this->designPath . '/css/cms.css'); +?> +page->display_title): ?> + + +
    +
    +
    page->getText() ?>
    +
    +
    +
    Jetzt wird simple.phtml in /templates/cms verwendet
    +
    +
    diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/doctrinepagination.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/doctrinepagination.phtml new file mode 100644 index 000000000..bfed6563b --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/doctrinepagination.phtml @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/doctrinepaginationmarket.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/doctrinepaginationmarket.phtml new file mode 100644 index 000000000..ea62ad76f --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/doctrinepaginationmarket.phtml @@ -0,0 +1,70 @@ +
    +
      +
    • translate('Ergebnisse')?> paginator->getPager ()->getFirstIndice (); +?>-paginator->getPager ()->getLastIndice (); +?> translate('von')?> paginator->getPager ()->getNumResults (); +?>
    • +
    • paginator->display (); +$ts = rand (); +?>
    • +
    • +
      +
    • +
    +
    + + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/doctrinepaginationmotiv.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/doctrinepaginationmotiv.phtml new file mode 100644 index 000000000..8b64b6cc9 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/doctrinepaginationmotiv.phtml @@ -0,0 +1,10 @@ + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/error/error.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/error/error.phtml new file mode 100644 index 000000000..43beb9f42 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/error/error.phtml @@ -0,0 +1,19 @@ +
    +

    translate('Oh je! Ein Fehler ist aufgetreten.')?>

    +

    translate('Anscheinend ist die Seite die Sie aufrufen wollten nicht erreichbar oder verfügbar, bzw. Ihre Adresse hat sich geändert.')?>

    +

    message ?> (code ?>)

    + env == 'development' ) { + if ( isset($this->info ) ) { ?> + code ) { ?> +

    Reason: info ?>

    + code) { ?> +

    Bad server, naughty server!
    No donut for you!

    +

    Exception information:

    +

    Message: info->getMessage() ?>

    +

    Stack trace:

    +
    info->getTraceAsString() ?>
    + + + +
    diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/error/noaccess.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/error/noaccess.phtml new file mode 100644 index 000000000..835882511 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/error/noaccess.phtml @@ -0,0 +1,4 @@ +
    +

    translate('Auf diesen Bereich haben Sie leider keinen Zugriff!')?>

    +

    translate('Sie besitzen nicht die erforderlichen Rechte.')?>

    +
    diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/error/notfound.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/error/notfound.phtml new file mode 100644 index 000000000..8e29df559 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/error/notfound.phtml @@ -0,0 +1,5 @@ +
    +

    translate('Uups! Diese Seite gibt es wohl nicht mehr.')?>

    +

    translate('Leider konnte die von Ihnen gewünschte Seite nicht aufgefunden werden. Vielleicht handelt es sich um einen veralteten Link oder einen Fehler.
    Eventuell hat sich auch der Fehlerteufel mit einem Tippfehler in der Adressleiste eingeschlichen.')?>

    + translate('Zur Startseite')?> +
    diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/features.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/features.phtml new file mode 100644 index 000000000..4d053d2ca --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/features.phtml @@ -0,0 +1,34 @@ +
    +
    +
    +
    +
    +
    Wir sind für Sie da
    +

    Im Onlineshop können Sie Drucksachen 24 Stunden, 7 Tage die Woche bestellen.

    +
    +
    +
    +
    +
    +
    Auf dem neusten Stand
    +

    Wir produzieren unsere angebotenen Drucksachen mit modernsten Maschinen.

    +
    +
    +
    +
    +
    +
    Qualität made in Germany
    +

    Unsere Flexibilität, Qualität und das zu fairen Preisen zeichnet uns aus.

    +
    +
    +
    +
    +
    +
    Individuelle Drucksachen
    +

    Finden Sie ein Produkt nicht im Webshop? Dann freuen wir uns über Ihre Anfrage.

    +
    +
    +
    +
    + +
    diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/index/---sliderproductsnosidenav.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/index/---sliderproductsnosidenav.phtml new file mode 100644 index 000000000..7e16cd247 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/index/---sliderproductsnosidenav.phtml @@ -0,0 +1,784 @@ +partial ('_carousel.phtml'); ?> + +partial ('_features.phtml'); ?> + + + +designsettings()->get('mc_start_products')): ?> +
    +
    +
    +
    +

    Entdecken Sie unsere Top-Produkte

    + Produkt auswählen +
    +
    +
    + +
    + article()->getArticleByArray($this->designsettings()->get('mc_start_products')); + if (count($articles) > 0 ) : ?> + "; + echo $this->partial('article/_article_slider.phtml', array('basepath' => $this->basepath, 'admin' => $this->admin, 'mode' => $this->mode, 'user' => $this->user, 'currency' => $this->currency, 'article' => $article, 'designPath' => $this->designPath, 'shop' => $this->shop)); + echo "
    "; + } + ?> + +
    + +
    +
    +
    + + + + +
    +
    +
    + + +news()->getShopNews(); ?> + +
    +
    +
    +

    Wichtige Bekanntmachungen

    +
    +
    + +
    + +
    +
    +
    +

    title ?>

    +

    date($news->sort_date)->toString(Zend_Date::DATE_MEDIUM) ?>

    +
    + +
    +

    einleitung ?>

    +
    + + +
    +
    + +
    + +
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + +
    + + Zufriedene Druckerei Günzburg Kunden. + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +designsettings()->get('mc_start_productgroups')): ?> +
    +
    +
    +

    Entdecken Sie unsere Kategorie-Highlights

    + +
    +
    + +
    + articlegroup()->getByArray($this->designsettings()->get('mc_start_productgroups')); ?> + + partial('article/_articlegrouplistitem.phtml', array('basepath' => $this->basepath, 'admin' => $this->admin, 'mode' => $this->mode, 'user' => $this->user, 'currency' => $this->currency, 'articlegroup' => $articlegroup, 'designPath' => $this->designPath, 'shop' => $this->shop)) ?> + +
    +
    +
    +

    Kontaktieren Sie uns.

    +
    + +
    + Fragen Sie Ihre Produktion individuell an, so können Sie mit einem fachkundigen Menschen alles genau besprechen! +
    +
    + individuelle Anfrage +
    + cms()->getCms("contentleft"); + foreach($cms as $c): ?> +
    +
    + text1 ?> +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +

    Unternehmen, die ONLINEDRUCK.BAYERN vertrauen.

    +'; + while (($file = readdir($handle)) !== false) { + $extension = pathinfo($file, PATHINFO_EXTENSION); + if (in_array($extension, $allowed_extensions)) { + //echo $file; + echo'
    '; + $filecount++; + } + } +echo''; + closedir($handle); + } +} + +//echo "Anzahl der Bilder: $filecount"; +?> +
    + +
    +
    +
    +
    +

    Unsere Highlights

    +
    +
    +
    +
    +
    +
    + + article()->getArticleByArray($this->designsettings()->get('mc_start_products')); + if (count($articles) > 0 ) : ?> + "; + echo $this->partial('article/_article_slider.phtml', array('basepath' => $this->basepath, 'admin' => $this->admin, 'mode' => $this->mode, 'user' => $this->user, 'currency' => $this->currency, 'article' => $article, 'designPath' => $this->designPath, 'shop' => $this->shop)); + echo "
    "; + } + ?> + + + +
    +
    +
    +
    +
    +
    +

    Ihre Vorteile bei ONLINEDRUCK.BAYERN

    +
    +
    +
    +
    +
    +
    Check
    +
    + Sie setzen auf einen einzigen Partner in allen Produktionsbereichen. Dadurch sparen Sie sich das wichtigste - nämlich Zeit.
    +
    +
    +
    +
    Check
    +
    + Sie haben jederzeit einen persönlichen Ansprechpartner bei allen Fragen rund um Ihre Produktion und Bestellung.
    +
    +
    +
    +
    +
    +
    Check
    +
    + Gehen Sie auf Nummer Sicher mit dem kostenloser Basis Datencheck, der bei allen Produkten inkludiert ist.
    +
    +
    +
    +
    Check
    +
    + Produkt nicht gefunden? Auflage nicht passend? Wir erfüllen Ihnen gerne auch Sonderwünsche. Denn Flexibilität und Individualität sind
    unsere Stärken.
    +
    +
    +
    +
    +
    +
    Check
    +
    + Bei uns findet jeder sein passendes Produkt. Einfach fertige Druckdaten hochladen, online gestalten oder von uns gestalten lassen.
    +
    +
    +
    +
    Check
    +
    + Als Behörde oder treuer Stammkunde – können Sie neben den gängigen Bezahlmethoden PayPal, Klarna,
    Kreditkarte und Vorkasse auch komfortabel auf Rechnung bestellen.
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    Check
    +
    + Was uns von den etlichen Online-Shops im Druckbereich unterscheidet? +Sie können uns erreichen und wir unterstützen Sie mit unserer Fachexpertise, damit Ihre Pläne komplett erfüllt werden. Wir besprechen mit Ihnen Ideen, klären die Umsetzbarkeit und setzen alles daran, dass Sie zufrieden sind! Sie sprechen nicht mit irgendeinem Service-Center, sondern mit den Menschen, die auch an Ihren Produkten arbeiten.
    +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +

    Kundenstimmen

    +
    +
    +
    +'; + foreach ($sections as $section) { + $lines = explode("\n", trim($section)); + $bild = $lines[0]; + $name = $lines[2] ."
    " . $lines[3]; + $company = $lines[5] ."
    " . $lines[6]; + $testimonial = implode("
    ", array_slice($lines, 7)); + $bild = str_replace('Bild ', '', $bild); + $testimonial = str_replace('-------------------------------------------------------------------------------------', '', $testimonial); + echo'
    '; + echo '

    '; + echo '
    '; + echo '
    '; + } + echo''; +} else { + echo "Could not open file: $filename"; +} +?> + +
    + +
    +
    +

    Wie kommst du zu deinem Produkt?

    +
    +
    +
    +
    Hochladen
    +

    Design hochladen
    + Nutze unseren OnlineDesigner
    + Von uns gestalten lassen

    +
    +
    +
    +
    +
    Datenscheck
    +

    Datencheck
    + Produktion mit modernsten
    +Maschinen

    +
    +
    +
    +
    +
    Versand
    +

    Abholung oder
    + Versand direkt zu
    +dir nach hause

    +
    +
    +
    +
    +
    Druckprodukte
    +

    Du freust dich über
    +deine tollen
    +Druckprodukte

    +
    +
    +
    +
    +
    +
    + + +
    + + +
    +
    + + + '; + $filecount++; + } + } + closedir($handle); + } + } + + //echo "Anzahl der Bilder: $filecount"; + ?> + + +
    +
    +
    +
    + + + + + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/index/--sliderproductsnosidenav.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/index/--sliderproductsnosidenav.phtml new file mode 100644 index 000000000..75c8f6fa2 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/index/--sliderproductsnosidenav.phtml @@ -0,0 +1,229 @@ + + + + + +designsettings()->get('mc_start_products')): ?> +
    +
    +
    +
    +

    Entdecken Sie unsere Top-Produkte

    + Produkt auswählen +
    +
    +
    + +
    + article()->getArticleByArray($this->designsettings()->get('mc_start_products')); + if (count($articles) > 0 ) : ?> + "; + echo $this->partial('article/_article_slider.phtml', array('basepath' => $this->basepath, 'admin' => $this->admin, 'mode' => $this->mode, 'user' => $this->user, 'currency' => $this->currency, 'article' => $article, 'designPath' => $this->designPath, 'shop' => $this->shop)); + echo "
    "; + } + ?> + + + +
    +
    +
    + + +
    + +
    +
    +
    + + + + +designsettings()->get('mc_start_productgroups')): ?> +
    +
    +
    +

    Entdecken Sie unsere Kategorie-Highlights

    + Highlights entdecken +
    +
    + +
    + articlegroup()->getByArray($this->designsettings()->get('mc_start_productgroups')); ?> + + partial('article/_articlegrouplistitem.phtml', array('basepath' => $this->basepath, 'admin' => $this->admin, 'mode' => $this->mode, 'user' => $this->user, 'currency' => $this->currency, 'articlegroup' => $articlegroup, 'designPath' => $this->designPath, 'shop' => $this->shop)) ?> + +
    + + cms()->getCms("contentleft"); + foreach($cms as $c): ?> +
    +
    + text1 ?> +
    +
    + +
    + +
    +
    +
    + + + + + +partial ('_carousel.phtml'); ?> + + + +news()->getShopNews(); ?> + +
    +
    +
    +

    Wichtige Bekanntmachungen

    +
    +
    + +
    + +
    +
    +
    +

    title ?>

    +

    date($news->sort_date)->toString(Zend_Date::DATE_MEDIUM) ?>

    +
    + +
    +

    einleitung ?>

    +
    + + +
    +
    + +
    + +
    + + +
    + +
    +
    +
    + + + + + +
    +
    +
    +

    Aktuelles von der Druckerei – Unser Blog

    +
    +
    + +
    + cms()->getCms("contentbottom"); + foreach($cms as $c): ?> +
    +
    +
    + <?php echo $c->title ?> +
    + +
    +

    title ?>

    +

    meta_og_description ?>

    + Weiterlesen +
    +
    +
    + +
    + +
    + + +
    + +partial ('_features.phtml'); ?> \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/index/-sliderproductsnosidenav.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/index/-sliderproductsnosidenav.phtml new file mode 100644 index 000000000..9d7d130cb --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/index/-sliderproductsnosidenav.phtml @@ -0,0 +1,784 @@ +partial ('_carousel.phtml'); ?> + +partial ('_features.phtml'); ?> + + + +designsettings()->get('mc_start_products')): ?> +
    +
    +
    +
    +

    Entdecken Sie unsere Top-Produkte

    + Produkt auswählen +
    +
    +
    + +
    + article()->getArticleByArray($this->designsettings()->get('mc_start_products')); + if (count($articles) > 0 ) : ?> + "; + echo $this->partial('article/_article_slider.phtml', array('basepath' => $this->basepath, 'admin' => $this->admin, 'mode' => $this->mode, 'user' => $this->user, 'currency' => $this->currency, 'article' => $article, 'designPath' => $this->designPath, 'shop' => $this->shop)); + echo "
    "; + } + ?> + + + +
    +
    +
    + + +
    + +
    +
    +
    + + +news()->getShopNews(); ?> + +
    +
    +
    +

    Wichtige Bekanntmachungen

    +
    +
    + +
    + +
    +
    +
    +

    title ?>

    +

    date($news->sort_date)->toString(Zend_Date::DATE_MEDIUM) ?>

    +
    + +
    +

    einleitung ?>

    +
    + + +
    +
    + +
    + +
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + +
    + + Zufriedene Druckerei Günzburg Kunden. + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +designsettings()->get('mc_start_productgroups')): ?> +
    +
    +
    +

    Entdecken Sie unsere Kategorie-Highlights

    + +
    +
    + +
    + articlegroup()->getByArray($this->designsettings()->get('mc_start_productgroups')); ?> + + partial('article/_articlegrouplistitem.phtml', array('basepath' => $this->basepath, 'admin' => $this->admin, 'mode' => $this->mode, 'user' => $this->user, 'currency' => $this->currency, 'articlegroup' => $articlegroup, 'designPath' => $this->designPath, 'shop' => $this->shop)) ?> + +
    +
    +
    +

    Kontaktieren Sie uns.

    +
    + +
    + Fragen Sie Ihre Produktion individuell an, so können Sie mit einem fachkundigen Menschen alles genau besprechen! +
    +
    + individuelle Anfrage +
    + cms()->getCms("contentleft"); + foreach($cms as $c): ?> +
    +
    + text1 ?> +
    +
    + +
    + +
    +
    + +
    +
    +
    +

    Unternehmen, die ONLINEDRUCK.BAYERN vertrauen.

    +'; + while (($file = readdir($handle)) !== false) { + $extension = pathinfo($file, PATHINFO_EXTENSION); + if (in_array($extension, $allowed_extensions)) { + //echo $file; + echo'
    '; + $filecount++; + } + } +echo''; + closedir($handle); + } +} + +//echo "Anzahl der Bilder: $filecount"; +?> +
    + +
    +
    +
    +
    +

    Unsere Highlights

    +
    +
    +
    +
    +
    +
    + + article()->getArticleByArray($this->designsettings()->get('mc_start_products')); + if (count($articles) > 0 ) : ?> + "; + echo $this->partial('article/_article_slider.phtml', array('basepath' => $this->basepath, 'admin' => $this->admin, 'mode' => $this->mode, 'user' => $this->user, 'currency' => $this->currency, 'article' => $article, 'designPath' => $this->designPath, 'shop' => $this->shop)); + echo "
    "; + } + ?> + + + +
    +
    +
    +
    +
    +
    +

    Ihre Vorteile bei ONLINEDRUCK.BAYERN

    +
    +
    +
    +
    +
    +
    Check
    +
    + Sie setzen auf einen einzigen Partner in allen Produktionsbereichen. Dadurch sparen Sie sich das wichtigste - nämlich Zeit.
    +
    +
    +
    +
    Check
    +
    + Sie haben jederzeit einen persönlichen Ansprechpartner bei allen Fragen rund um Ihre Produktion und Bestellung.
    +
    +
    +
    +
    +
    +
    Check
    +
    + Gehen Sie auf Nummer Sicher mit dem kostenloser Basis Datencheck,der bei allen Produkten inkludiert ist.
    +
    +
    +
    +
    Check
    +
    + Produkt nicht gefunden? Auflage nicht passend? Wir erfüllen Ihnen gerne auch Sonderwünsche.Denn Flexibilität und Individualität sind unsere Stärken.
    +
    +
    +
    +
    +
    +
    Check
    +
    + Bei uns findet jeder sein passendes Produkt.Einfach fertige Druckdaten hochladen, online gestalten oder von uns gestalten lassen.
    +
    +
    +
    +
    Check
    +
    + Als Behörde oder treuer Stammkunde – können Sie neben den gängigen Bezahlmethoden PayPal, Sofortüberweisung, Kreditkarte und Vorkasse auch komfortabel auf Rechnung bestellen.
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    Check
    +
    + Was uns von den etlichen Online-Shops im Druckbereich unterscheidet? +Sie können uns erreichen und wir unterstützen Sie mit unserer Fachexpertise, damit Ihre Pläne komplett erfüllt werden. Wir besprechen mit Ihnen Ideen, klären die Umsetzbarkeit und setzen alles daran, dass Sie zufrieden sind!Sie sprechen nicht mit irgendeinem Service-Center, sondern mit den Menschen, die auch an Ihren Produkten arbeiten.
    +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +

    Kundenstimmen

    +
    +
    +
    +'; + foreach ($sections as $section) { + $lines = explode("\n", trim($section)); + $bild = $lines[0]; + $name = $lines[2] ."
    " . $lines[3]; + $company = $lines[5] ."
    " . $lines[6]; + $testimonial = implode("
    ", array_slice($lines, 7)); + $bild = str_replace('Bild ', '', $bild); + $testimonial = str_replace('-------------------------------------------------------------------------------------', '', $testimonial); + echo'
    '; + echo '

    '; + echo '
    '; + echo '
    '; + } + echo''; +} else { + echo "Could not open file: $filename"; +} +?> + +
    + +
    +
    +

    Wie kommst du zu deinem Produkt?

    +
    +
    +
    +
    Hochladen
    +

    Design hochladen
    + Nutze unseren OnlineDesigner
    + Von uns gestalten lassen

    +
    +
    +
    +
    +
    Datenscheck
    +

    Datencheck
    + Produktion mit modernsten
    +Maschinen

    +
    +
    +
    +
    +
    Versand
    +

    Abholung oder
    + Versand direkt zu
    +dir nach hause

    +
    +
    +
    +
    +
    Druckprodukte
    +

    Du freust dich über
    +deine tollen
    +Druckprodukte

    +
    +
    +
    +
    +
    +
    + + +
    + + +
    +
    + + + '; + $filecount++; + } + } + closedir($handle); + } + } + + //echo "Anzahl der Bilder: $filecount"; + ?> + + +
    +
    +
    +
    + + + + + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/index/about.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/index/about.phtml new file mode 100644 index 000000000..b2cc1a053 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/index/about.phtml @@ -0,0 +1,2 @@ +

    translate('Über uns')?>

    +shop->betreiber_description ?> \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/index/agb.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/index/agb.phtml new file mode 100644 index 000000000..9aa33fb1a --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/index/agb.phtml @@ -0,0 +1,3 @@ +
    + agb ?> +
    diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/index/contact.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/index/contact.phtml new file mode 100644 index 000000000..e1b0c6d57 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/index/contact.phtml @@ -0,0 +1,45 @@ + + +
    +
    + form->send->setAttrib('class', 'btn btn-success'); + echo $this->form->render();?> +
    +
    +

    translate('Shopbetreiber')?>

    + shop->betreiber_company ?>
    + shop->betreiber_name ?>

    + + shop->betreiber_street ?>
    + shop->betreiber_address ?>

    + + shop->betreiber_tel !=''): ?>Tel: shop->betreiber_tel ?>
    + shop->betreiber_uid != ""): ?>translate('Umsatzsteuer-ID')?>: shop->betreiber_uid ?>
    + shop->betreiber_sid != ""): ?>translate('Steuernummer')?>: shop->betreiber_sid ?>
    + + shop->betreiber_register !=''): ?>
    shop->betreiber_register?>,shop->betreiber_hid != ""): ?> shop->betreiber_hid ?> + + shop->betreiber_vb!=''): ?>
    shop->betreiber_vb ?> + +
    +
    + + market_shop && $this->shop->market): ?> +

    translate('Marktplatzbetreiber')?>

    + market_shop['betreiber_company'] ?>
    + market_shop['betreiber_name'] ?>

    + + market_shop['betreiber_street'] ?>
    + market_shop['betreiber_address'] ?>

    + + market_shop['betreiber_tel'] !=''): ?>Tel: market_shop['betreiber_tel'] ?>
    + market_shop['betreiber_uid'] != ""): ?>translate('Umsatzsteuer-ID')?>: market_shop['betreiber_uid'] ?>
    + market_shop['betreiber_sid'] != ""): ?>translate('Steuernummer')?>: market_shop['betreiber_sid'] ?>
    + + market_shop['betreiber_register'] !=''): ?>
    market_shop['betreiber_register']?>,market_shop['betreiber_hid'] != ""): ?> market_shop['betreiber_hid'] ?> + + market_shop['betreiber_vb'] !=''): ?>
    market_shop['betreiber_vb'] ?> + +
    +
    \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/index/impress.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/index/impress.phtml new file mode 100644 index 000000000..27d2e3500 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/index/impress.phtml @@ -0,0 +1,3 @@ +
    + impress ?> +
    diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/index/index.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/index/index.phtml new file mode 100644 index 000000000..c4d5df2dd --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/index/index.phtml @@ -0,0 +1,14 @@ +shop->logo2 != ""): ?> +
    +
    +

    designsettings()->get('index_slogan')): ?>Herzlich Willkommendesignsettings()->get('index_slogan') ?>

    + +
    + +
    +

    + + translate('Zu den Produkten')?> + +

    +

    diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/index/privacy.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/index/privacy.phtml new file mode 100644 index 000000000..e7b4c40a7 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/index/privacy.phtml @@ -0,0 +1,3 @@ +
    + privacy ?> +
    diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/index/psc.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/index/psc.phtml new file mode 100644 index 000000000..f6d2ee591 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/index/psc.phtml @@ -0,0 +1,63 @@ + partial ( 'carousel.phtml'); + + + /***************************************************************************** + * Shop-Descrioption - soll nicht mehr angezeigt werden kC6nnen 23.09.2014 + ***************************************************************************** + if($this->shop->description): ?> + +
    +
    +

    shop->description ?>

    +
    +
    + + cms()->getCms("contentleft"); + foreach($cms as $c){ + echo '
    +
    '; + echo $c->text1; + echo '
    +
    '; + } + + + /** + * TODO ...: + */ + ?> + +
    +
    + designsettings()->get('mc_start_products')): ?> +

    translate('Produkthighlights') ?>

    +
      + article()->getArticleByArray($this->designsettings()->get('mc_start_products')); ?> + + partial('article/_articlelistitem.phtml', array('basepath' => $this->basepath, 'admin' => $this->admin, 'mode' => $this->mode, 'user' => $this->user, 'currency' => $this->currency, 'article' => $article, 'designPath' => $this->designPath, 'shop' => $this->shop)) ?> + +
    + + designsettings()->get('mc_start_productgroups')): ?> +

    translate('Produktsortiment') ?>

    +
      + articlegroup()->getByArray($this->designsettings()->get('mc_start_productgroups')); ?> + + partial('article/_articlegrouplistitem.phtml', array('basepath' => $this->basepath, 'admin' => $this->admin, 'mode' => $this->mode, 'user' => $this->user, 'currency' => $this->currency, 'articlegroup' => $articlegroup, 'designPath' => $this->designPath, 'shop' => $this->shop)) ?> + +
    + +
    +
    diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/index/psctopseller.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/index/psctopseller.phtml new file mode 100644 index 000000000..b9508adf1 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/index/psctopseller.phtml @@ -0,0 +1,150 @@ +partial ( 'carousel.phtml'); + + + /***************************************************************************** + * Shop-Descrioption - soll nicht mehr angezeigt werden können 23.09.2014 + ***************************************************************************** + if($this->shop->description): ?> + +
    +
    +

    shop->description ?>

    +
    +
    + + cms()->getCms("contentleft"); + foreach($cms as $c){ + echo '
    +
    '; + echo $c->text1; + echo '
    +
    '; + } + +?> + + + + + + + +
    +

    translate('Produkthighlights') ?>

    +
    + + article()->TopSeller(6); + foreach ($articles as $article) + { + echo $this->partial('article/_articlelistitem.phtml', array('basepath' => $this->basepath, 'admin' => $this->admin, 'mode' => $this->mode, 'user' => $this->user, 'currency' => $this->currency, 'article' => $article, 'designPath' => $this->designPath, 'shop' => $this->shop)); + } + ?> + +
    +
    + + designsettings()->get('mc_start_productgroups')): + + ?> + +
    +
    + + articlegroup()->getByArray($this->designsettings()->get('mc_start_productgroups')); ?> + + partial('article/_articlegrouplistitem.phtml', array('basepath' => $this->basepath, 'admin' => $this->admin, 'mode' => $this->mode, 'user' => $this->user, 'currency' => $this->currency, 'articlegroup' => $articlegroup, 'designPath' => $this->designPath, 'shop' => $this->shop)) ?> + + +
    +
    + + + + + +
    +
    +
    + +
    + +
    + +
    +
    +
    + Produkt - SLIDER +
    + + +
    + +
    + +
    +
    +
    diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/index/recovation.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/index/recovation.phtml new file mode 100644 index 000000000..b57614860 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/index/recovation.phtml @@ -0,0 +1,3 @@ +
    + revocation ?> +
    diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/index/revocation.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/index/revocation.phtml new file mode 100644 index 000000000..b57614860 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/index/revocation.phtml @@ -0,0 +1,3 @@ +
    + revocation ?> +
    diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/index/sliderproductsnosidenav.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/index/sliderproductsnosidenav.phtml new file mode 100644 index 000000000..5cde9a398 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/index/sliderproductsnosidenav.phtml @@ -0,0 +1,784 @@ +partial ('_carousel.phtml'); ?> + +partial ('_features.phtml'); ?> + + + +designsettings()->get('mc_start_products')): ?> +
    +
    +
    +
    +

    Entdecken Sie unsere Top-Produkte

    + Produkt auswählen +
    +
    +
    + +
    + article()->getArticleByArray($this->designsettings()->get('mc_start_products')); + if (count($articles) > 0 ) : ?> + "; + echo $this->partial('article/_article_slider.phtml', array('basepath' => $this->basepath, 'admin' => $this->admin, 'mode' => $this->mode, 'user' => $this->user, 'currency' => $this->currency, 'article' => $article, 'designPath' => $this->designPath, 'shop' => $this->shop)); + echo "
    "; + } + ?> + + + +
    +
    +
    + + +
    + +
    +
    +
    + + +news()->getShopNews(); ?> + +
    +
    +
    +

    Wichtige Bekanntmachungen

    +
    +
    + +
    + +
    +
    +
    +

    title ?>

    +

    date($news->sort_date)->toString(Zend_Date::DATE_MEDIUM) ?>

    +
    + +
    +

    einleitung ?>

    +
    + + +
    +
    + +
    + +
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + +
    + + Zufriedene Druckerei Günzburg Kunden. + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +designsettings()->get('mc_start_productgroups')): ?> +
    +
    +
    +

    Entdecken Sie unsere Kategorie-Highlights

    + +
    +
    + +
    + articlegroup()->getByArray($this->designsettings()->get('mc_start_productgroups')); ?> + + partial('article/_articlegrouplistitem.phtml', array('basepath' => $this->basepath, 'admin' => $this->admin, 'mode' => $this->mode, 'user' => $this->user, 'currency' => $this->currency, 'articlegroup' => $articlegroup, 'designPath' => $this->designPath, 'shop' => $this->shop)) ?> + +
    +
    +
    +

    Kontaktieren Sie uns.

    +
    + +
    + Fragen Sie Ihre Produktion individuell an, so können Sie mit einem fachkundigen Menschen alles genau besprechen! +
    +
    + individuelle Anfrage +
    + cms()->getCms("contentleft"); + foreach($cms as $c): ?> +
    +
    + text1 ?> +
    +
    + +
    + +
    +
    + +
    +
    +
    +

    Unternehmen, die ONLINEDRUCK.BAYERN vertrauen.

    +'; + while (($file = readdir($handle)) !== false) { + $extension = pathinfo($file, PATHINFO_EXTENSION); + if (in_array($extension, $allowed_extensions)) { + //echo $file; + echo'
    '; + $filecount++; + } + } +echo''; + closedir($handle); + } +} + +//echo "Anzahl der Bilder: $filecount"; +?> +
    + +
    +
    +
    +
    +

    Unsere Highlights

    +
    +
    +
    +
    +
    +
    + + article()->getArticleByArray($this->designsettings()->get('mc_start_products')); + if (count($articles) > 0 ) : ?> + "; + echo $this->partial('article/_article_slider.phtml', array('basepath' => $this->basepath, 'admin' => $this->admin, 'mode' => $this->mode, 'user' => $this->user, 'currency' => $this->currency, 'article' => $article, 'designPath' => $this->designPath, 'shop' => $this->shop)); + echo "
    "; + } + ?> + + + +
    +
    +
    +
    +
    +
    +

    Ihre Vorteile bei ONLINEDRUCK.BAYERN

    +
    +
    +
    +
    +
    +
    Check
    +
    + Sie setzen auf einen einzigen Partner in allen Produktionsbereichen. Dadurch sparen Sie sich das wichtigste - nämlich Zeit.
    +
    +
    +
    +
    Check
    +
    + Sie haben jederzeit einen persönlichen Ansprechpartner bei allen Fragen rund um Ihre Produktion und Bestellung.
    +
    +
    +
    +
    +
    +
    Check
    +
    + Gehen Sie auf Nummer sicher mit dem kostenlosen Basis Datencheck, der bei allen Produkten inkludiert ist.
    +
    +
    +
    +
    Check
    +
    + Produkt nicht gefunden? Auflage nicht passend? Wir erfüllen Ihnen gerne auch Sonderwünsche. Denn Flexibilität und Individualität sind
    unsere Stärken.
    +
    +
    +
    +
    +
    +
    Check
    +
    + Bei uns findet jeder sein passendes Produkt. Einfach fertige Druckdaten hochladen, online gestalten oder von uns gestalten lassen.
    +
    +
    +
    +
    Check
    +
    + Als Behörde oder treuer Stammkunde – können Sie neben den gängigen Bezahlmethoden PayPal, Klarna,
    Kreditkarte und Vorkasse auch komfortabel auf Rechnung bestellen.
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    Check
    +
    + Was uns von den etlichen Online-Shops im Druckbereich unterscheidet? +Sie können uns erreichen und wir unterstützen Sie mit unserer Fachexpertise, damit Ihre Pläne komplett erfüllt werden. Wir besprechen mit Ihnen Ideen, klären die Umsetzbarkeit und setzen alles daran, dass Sie zufrieden sind! Sie sprechen nicht mit irgendeinem Service-Center, sondern mit den Menschen, die auch an Ihren Produkten arbeiten.
    +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +

    Kundenstimmen

    +
    +
    +
    +'; + foreach ($sections as $section) { + $lines = explode("\n", trim($section)); + $bild = $lines[0]; + $name = $lines[2] ."
    " . $lines[3]; + $company = $lines[5] ."
    " . $lines[6]; + $testimonial = implode("
    ", array_slice($lines, 7)); + $bild = str_replace('Bild ', '', $bild); + $testimonial = str_replace('-------------------------------------------------------------------------------------', '', $testimonial); + echo'
    '; + echo '

    '; + echo '
    '; + echo '
    '; + } + echo''; +} else { + echo "Could not open file: $filename"; +} +?> + +
    + +
    +
    +

    Wie kommst du zu deinem Produkt?

    +
    +
    +
    +
    Hochladen
    +

    Design hochladen
    + Nutze unseren OnlineDesigner
    + Von uns gestalten lassen

    +
    +
    +
    +
    +
    Datenscheck
    +

    Datencheck
    + Produktion mit modernsten
    +Maschinen

    +
    +
    +
    +
    +
    Versand
    +

    Abholung oder
    + Versand direkt zu
    +dir nach Hause

    +
    +
    +
    +
    +
    Druckprodukte
    +

    Du freust dich über
    +deine tollen
    +Druckprodukte

    +
    +
    +
    +
    +
    +
    + + +
    + + +
    +
    + + + '; + $filecount++; + } + } + closedir($handle); + } + } + + //echo "Anzahl der Bilder: $filecount"; + ?> + + +
    +
    +
    +
    + + + + + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/index/violation.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/index/violation.phtml new file mode 100644 index 000000000..2821e5ea9 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/index/violation.phtml @@ -0,0 +1,26 @@ +
    +

    translate('Verstoß melden')?>

    + ​
    +
    +

    element ?>

    + +
    +
    +

    translate('Sollte Ihnen beim Besuch unseres Marktplatzes oder bei angeschlossenen Online-Shops ein Verstoß auffallen, bitten wir Sie uns dies hier zu melden.')?> +

    + translate('Gründe für einen möglichen Verstoß')?>
    + translate('Copyright und Urheberrechts Verletzung.')?>

    +
    +
    +
    + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/layouter/index.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/layouter/index.phtml new file mode 100644 index 000000000..24b618134 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/layouter/index.phtml @@ -0,0 +1,121 @@ + + + + + + + + + +
    +

    Die Nutzung des Onlinedesigners erfordert die aktuelle Version des Flashplayers.

    Sie haben keinen Flashplayer installiert oder ihre Version ist nicht aktuell.
    Den aktuellen Player können Sie hier kostenlos herunterladen.

    Downloadlink Flashplayer +
    + + + diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/market/_marketlistitem.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/market/_marketlistitem.phtml new file mode 100644 index 000000000..42b799685 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/market/_marketlistitem.phtml @@ -0,0 +1,14 @@ +
  • + +
  • \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/market/index.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/market/index.phtml new file mode 100644 index 000000000..9f72e2388 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/market/index.phtml @@ -0,0 +1,12 @@ + +
    +
    partial ( 'sidenav.phtml', array ('shop' => $this->shop, 'showShop' => $this->showShop)); ?>
    +

    Weitere Themenshops

    partial ( 'market_tabs.phtml', array ('shop' => $this->shop, 'showShop' => $this->showShop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath ) );?> + +
      + shops as $shopdetail): ?> +partial('market/_marketlistitem.phtml', array('shopdetail' => $shopdetail, 'shop' => $this->shop, 'designPath' => $this->designPath, 'action' => 'index')) ?> + +
    +
    +
    \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/market/myshop.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/market/myshop.phtml new file mode 100644 index 000000000..6fca58db0 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/market/myshop.phtml @@ -0,0 +1,10 @@ +
    +
    partial ( 'sidenav.phtml', array ('shop' => $this->shop, 'showShop' => $this->showShop)); ?>
    +

    Meine Themenshops

    partial ( 'market_tabs.phtml', array ('shop' => $this->shop, 'showShop' => $this->showShop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath ) );?> +
      +myshops as $shopdetail): ?> +partial('market/_marketlistitem.phtml', array('shopdetail' => $shopdetail, 'shop' => $this->shop, 'designPath' => $this->designPath, 'action' => 'index')) ?> + +
    +
    +
    \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/market_tabs.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/market_tabs.phtml new file mode 100644 index 000000000..218c3f730 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/market_tabs.phtml @@ -0,0 +1,6 @@ +hasIdentity()==true): ?> + + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/marketoverview/index.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/marketoverview/index.phtml new file mode 100644 index 000000000..4ef339062 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/marketoverview/index.phtml @@ -0,0 +1,13 @@ +
    +
    partial ( 'sidenav.phtml', array ('shop' => $this->shop, 'showMarketProduct' => $this->showMarketProduct)); ?>
    +
    partial ( 'product_tabs.phtml', array ('finisharticles' => $this->finisharticles, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath ) );?> + +
      + articles as $article): ?> + partial('article/_articlelistitem.phtml', array('basepath' => $this->basepath, 'admin' => $this->admin, 'mode' => $this->mode, 'user' => $this->user, 'currency' => $this->currency, 'article' => $article, 'designPath' => $this->designPath, 'shop' => $this->shop)) ?> + + + +
    +
    +
    \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/motiv/_motivlistitem.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/motiv/_motivlistitem.phtml new file mode 100644 index 000000000..285ce66ed --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/motiv/_motivlistitem.phtml @@ -0,0 +1,25 @@ +
    +
    + +
    +
    Text()->truncate_text($this->escape($this->motiv->title),25) ?>
    +
    + + + +
    +
    + motiv->copyright != "" && $this->designsettings()->get('motiv_copyright')): ?>© Text()->truncate_text($this->escape($this->motiv->copyright),15) ?> +   +
    +
    + +
    +
    \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/motiv/_myfav_mymotiv_modals.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/motiv/_myfav_mymotiv_modals.phtml new file mode 100644 index 000000000..0832a47a7 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/motiv/_myfav_mymotiv_modals.phtml @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/motiv/delete.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/motiv/delete.phtml new file mode 100644 index 000000000..c680d253f --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/motiv/delete.phtml @@ -0,0 +1,7 @@ +
    +

    "motiv->title ?>" Motiv löschen

    + +
    + +
    +
    \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/motiv/index.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/motiv/index.phtml new file mode 100644 index 000000000..2ed63646a --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/motiv/index.phtml @@ -0,0 +1,158 @@ +
    + + + partial ( 'sidenav.phtml', array ('shop' => $this->shop, 'showMotiv' => $this->showMotiv)); ?> +
    + */ + ?> + +
    +

    translate('Wählen Sie ihr Lieblingsmotiv')?>

    + partial ( 'motiv_tabs.phtml', array ('shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'myfavcount' => $this->myfavcount, 'currency' => $this->currency, 'designPath' => $this->designPath ) ); + /* Pagination für Motive */ echo $_motivpagination = $this->partial('doctrinepaginationmotiv.phtml', array('sort' => $this->sort, 'paginator' => $this->paginator, 'sort' => $this->sort, 'dir' => $this->dir, 'tag' => $this->tag)); + ?> + + +
    +
    + motive as $motiv): ?> + + partial('motiv/_motivlistitem.phtml', array('shop' => $this->shop, 'user' => $this->user, 'motiv' => $motiv, 'designPath' => $this->designPath, 'myfav' => $this->myfav, 'action' => 'index', 'currency' => $this->currency)) ?> + + +
    +
    + + partial('doctrinepaginationmotiv.phtml', array('sort' => $this->sort, 'paginator' => $this->paginator, 'sort' => $this->sort, 'dir' => $this->dir, 'tag' => $this->tag)); + ?> + +
    + + + + + partial ( 'motiv/_myfav_mymotiv_modals.phtml', array ('shop' => $this->shop)); ?> + + + + + + + + + + + + + + + + + * + */ + ?> \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/motiv/myfav.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/motiv/myfav.phtml new file mode 100644 index 000000000..5fad2e63f --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/motiv/myfav.phtml @@ -0,0 +1,161 @@ +
    + + + partial ( 'sidenav.phtml', array ('shop' => $this->shop, 'showMotiv' => $this->showMotiv)); ?> +
    + */ + ?> + +
    +

    translate('Ihre persönliche Motiv Merkliste')?>

    + partial ( 'motiv_tabs.phtml', array ('shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'myfavcount' => $this->myfavcount, 'currency' => $this->currency, 'designPath' => $this->designPath ) );?> + + + hasIdentity()==true): ?> + + partial('doctrinepaginationmotiv.phtml', array('sort' => $this->sort, 'paginator' => $this->paginator, 'sort' => $this->sort, 'dir' => $this->dir, 'tag' => $this->tag)) ?> +
    +
    + mymotive as $motiv): ?> + Motiv): ?> + partial('motiv/_motivlistitem.phtml', array('shop' => $this->shop, 'user' => $this->user, 'motiv' => $motiv->Motiv, 'designPath' => $this->designPath, 'myfav' => $this->myfav, 'action' => 'myfav', 'currency' => $this->currency)) ?> + + delete(); ?> + + +
    +
    + + + + +
    +
    + mymotive as $motiv): ?> + + partial('motiv/_motivlistitem.phtml', array('shop' => $this->shop, 'user' => $this->user, 'motiv' => $motiv, 'designPath' => $this->designPath, 'myfav' => $this->myfav, 'action' => 'myfav', 'currency' => $this->currency)) ?> + + +
    +
    + + + +
    + + + + partial ( 'motiv/_myfav_mymotiv_modals.phtml', array ('shop' => $this->shop)); ?> + + + + + + + + + + + */ + ?> + + + + + + + + + + */ +?> + + + + + + + +*/ +?> + + + + + + + + */ + ?> \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/motiv/mymotiv.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/motiv/mymotiv.phtml new file mode 100644 index 000000000..0a10cc322 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/motiv/mymotiv.phtml @@ -0,0 +1,126 @@ +
    + + + partial ( 'sidenav.phtml', array ('shop' => $this->shop, 'showMotiv' => $this->showMotiv)); ?> +
    + */ + ?> + +
    +

    Ihre persönlichen Motive

    + partial ( 'motiv_tabs.phtml', array ('shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'myfavcount' => $this->myfavcount, 'currency' => $this->currency, 'designPath' => $this->designPath ) );?> + + hasIdentity()==true): ?> + partial('doctrinepaginationmotiv.phtml', array('sort' => $this->sort, 'paginator' => $this->paginator, 'sort' => $this->sort, 'dir' => $this->dir, 'tag' => $this->tag)) ?> + +
    +
    + + mymotive as $motiv): ?> + + partial('motiv/_motivlistitem.phtml', array('shop' => $this->shop, 'user' => $this->user, 'motiv' => $motiv, 'designPath' => $this->designPath, 'myfav' => $this->myfav, 'action' => 'mymotiv', 'currency' => $this->currency)) ?> + + + +
    +
    + +
    + + + + partial ( 'motiv/_myfav_mymotiv_modals.phtml', array ('shop' => $this->shop)); ?> + + + + + + + + + + * + */ + ?> \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/motiv/resale.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/motiv/resale.phtml new file mode 100644 index 000000000..1ebaa4240 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/motiv/resale.phtml @@ -0,0 +1,27 @@ +
    +

    translate('Motive verkaufen')?>

    +

    translate('Wie möchten Sie vorgehen')?>?

    +
    +
    +

    translate('Upload-Manager')?>

    + +

    translate('Mehrere Motive hochladen und auf Wunsch direkt zum Verkauf anbieten.')?>

    + translate("Los geht's")?> +
    + +
    +

    translate('Online-Designer Upload')?>

    + +

    translate('Laden Sie Motive direkt beim Gestalten im Online-Designer hoch. Wählen Sie einfach ein Produkt und starten Sie den Designer. Zum Verkauf empfehlen wir den Upload-Manager.')?>

    + translate("Los geht's")?> +
    +

    translate('Nutzen Sie eigene Fotos und Grafiken zum Gestalten und Verkaufen.")?>

    +

    Als Dateiformat können Sie JPEG, Tiff, PNG, Gif und Ai (Adobe Illustrator) nutzen. +Andere Formate werden nicht unterstützt.

    +

    Infos zu Vektor-Grafiken

    +

    Sollten Sie eine Vektor-Grafik Vorlage besitzen und wollen diese für die Produktion z.B. für ein T-Shirt nutzen, + wenden Sie sich bitte hier an unseren Grafik-Support

    +
    +
    +
    +
    \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/motiv/resaleupload.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/motiv/resaleupload.phtml new file mode 100644 index 000000000..42e3fb152 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/motiv/resaleupload.phtml @@ -0,0 +1,269 @@ +headLink()->appendStylesheet('/scripts/jquery-uploadify/uploadify.css'); +$this->headScript()->prependFile('/scripts/upload.js'); + +$this->headScript()->prependFile('/scripts/jquery-uploadify/jquery.uploadify.v2.1.0.js'); +$this->headScript()->prependFile('/scripts/jquery-uploadify/swfobject.js'); +?> +headScript()->prependFile('/scripts/jquery-optiontree/jquery.optionTree.js'); +?> +headScript()->prependFile('/scripts/jquery-tag/jquery-tag.js'); +?> + +
    +

    + +
    +
    + + +
    +
    +
    +
    +
    +

    translate('Motiv Upload') ?>

    + + +
    + +

    Hochladen starten | Liste löschen

    + + + +

    translate('Einstellungen') ?>

    + + hasIdentity()): ?> + +
    + +
    + form->resale_shop ?> + + form->price ?> + + form->resale_download ?> + + form->download_price ?> + + form->title ?> + + form->copyright ?> + + + + form->tags ?> + + form->shop ?> + +
    +

    + + + + + + + + + + +
    + Motivtheme 1:
    + Motivtheme 2:
    + Motivtheme 3: +
     
    +shop->pmb || $this->shop->market): ?> +
    + form->resale_market ?> +
    + + + + + + +
    + Markettheme 1:
    + Markettheme 2:
    + Markettheme 3: +
    + + +
    + form->submit ?> +
    +
    + + +

    translate('Bitte melden Sie sich an um mit dem Upload fortzufahren. Hier entlang', 'rte', 'motive_upload') ?>

    + + + +
    +
    + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/motiv_tabs.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/motiv_tabs.phtml new file mode 100644 index 000000000..e8c875dc5 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/motiv_tabs.phtml @@ -0,0 +1,15 @@ + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/_head.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/_head.phtml new file mode 100644 index 000000000..1cd0cc39c --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/_head.phtml @@ -0,0 +1,20 @@ +headLink()->appendStylesheet($this->designPath . '/css/myshops.css'); +?> +partial ( 'user_tabs.phtml', array ('shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath ) );?> +
    +
    +
    +
    + myshop_selector->setLabel($this->translate('Shopauswahl') . ': '. $this->current_shop->name); echo $this->myshop_selector ?> + +
    + +
    +
    +
    diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/articlegroups.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/articlegroups.phtml new file mode 100644 index 000000000..24b4512c3 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/articlegroups.phtml @@ -0,0 +1,18 @@ +partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> + + +

    Produktgruppen

    + Neue Produktgruppe anlegen + + + + articlegroups as $articlegroup): ?> + + + +
    AktivTitlePos
    enable): ?>JaNeintitle ?>pos ?> + +
    +
    +
    +
    \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/articles.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/articles.phtml new file mode 100644 index 000000000..dc8054789 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/articles.phtml @@ -0,0 +1,25 @@ +partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> + + +

    Produkte

    + Neues Produkt anlegen + + + + articles as $article): ?> + + + +
    AktivTitlePos
    typ == 6 && $article->a6_org_article != 0) || $article->typ == 8 ) && $article->file == ""): + echo $this->image()->thumbnailFop($article->title, 'articlelist_overview_box', $article->getMarketFile(), false, $this->article->id); + else: + echo $this->image()->thumbnailImage($article->title, 'articlelist_overview_box', $article->file); + endif; + ?>enable): ?>JaNeintitle ?>pos ?> + + + +
    + + + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/config.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/config.phtml new file mode 100644 index 000000000..869292005 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/config.phtml @@ -0,0 +1,19 @@ +partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> + + form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); + $this->form->setAttrib('class', 'form-horizontal'); + $this->form->save->setAttrib('class', 'btn-success btn-large'); + + //echo $this->form; + + $owd_FORM = $this->form->setAttrib('class', 'niceform form-horizontal')->render(); + + echo str_replace( array('control-group','control-label','class="controls"', ' + + +
    diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/configaboutus.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/configaboutus.phtml new file mode 100644 index 000000000..8b94f3bc7 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/configaboutus.phtml @@ -0,0 +1,29 @@ +partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> +headScript()->prependFile('/'.$this->designPath.'assets/js/mce-link.js'); +$this->headScript()->prependFile('/'.$this->designPath.'assets/js/mce-image.js'); +$this->headScript()->prependFile('/'.$this->designPath.'assets/js/mce-csswrap.js'); +$this->headScript()->prependFile('/'.$this->designPath.'assets/js/mce-table.js'); +$this->headScript()->prependFile('/'.$this->designPath.'assets/js/mce-colorpicker.js'); +$this->headScript()->prependFile('/'.$this->designPath.'assets/js/mce.js'); +$this->headScript()->prependFile('/'.$this->designPath.'assets/js/jquery-ui.js'); +$this->headLink()->appendStylesheet('/'.$this->designPath.'assets/css/mce.css'); +$this->headLink()->appendStylesheet('/'.$this->designPath.'assets/css/custom-theme/jquery-ui-1.8.16.custom.css'); +?> +

    Über uns

    + form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); + $this->form->setAttrib('class', 'form-horizontal'); + $this->form->beschreibung->setAttrib('style','height: 440px;width: 440px;'); + $this->form->save->setAttrib('class', 'btn-success btn-large'); + + echo $this->form; ?> + + + + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/configstart.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/configstart.phtml new file mode 100644 index 000000000..c4b801fd1 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/configstart.phtml @@ -0,0 +1,36 @@ +partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> + + +

    Einstellungen für die Startseite

    + form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); + $this->form->setAttrib('class', 'form-horizontal'); + $this->form->save->setAttrib('class', 'btn-success btn-large'); + + echo $this->form; ?> + showSlider): ?> +

    Slider

    + Neues Element anlegen + + + + slides as $slide): ?> + + + + +
    BildTextLink
    image()->thumbnailImage($slide['text'], 'articlelist_overview_box', $slide['image']); ?>LinkText()->truncate_text($this->escape($slide['text']),50) ?> + +
    + + + + + + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/delarticlegroup.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/delarticlegroup.phtml new file mode 100644 index 000000000..f7b93fa0a --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/delarticlegroup.phtml @@ -0,0 +1,13 @@ +partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> + + + Zurück

    Produktgruppen löschen

    +

    articlegroup->title ?>

    + form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); + $this->form->setAttrib('class', 'form-horizontal'); + $this->form->save->setAttrib('class', 'btn-success btn-large'); + + echo $this->form; ?> + + + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/deldomain.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/deldomain.phtml new file mode 100644 index 000000000..cff6cc0b9 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/deldomain.phtml @@ -0,0 +1,13 @@ +partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> + + + Zurück

    Domain löschen

    +

    domain->name ?>

    + form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); + $this->form->setAttrib('class', 'form-horizontal'); + $this->form->save->setAttrib('class', 'btn-success btn-large'); + + echo $this->form; ?> + + + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/delmotiv.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/delmotiv.phtml new file mode 100644 index 000000000..5f90c8b35 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/delmotiv.phtml @@ -0,0 +1,15 @@ +partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> + +Zurück

    "motiv->title ?>" translate('Motiv löschen')?>

    + +motiv_in_use > 0): ?> +

    translate("Motiv ist in Benutzung, löschen nicht möglich"); ?>

    + + +
    + +
    + + + + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/delslide.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/delslide.phtml new file mode 100644 index 000000000..8b3a02d58 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/delslide.phtml @@ -0,0 +1,12 @@ +partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> + + + Zurück

    Slide löschen

    + form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); + $this->form->setAttrib('class', 'form-horizontal'); + $this->form->save->setAttrib('class', 'btn-success btn-large'); + + echo $this->form; ?> + + + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/delthemearticle.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/delthemearticle.phtml new file mode 100644 index 000000000..82fdc3da6 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/delthemearticle.phtml @@ -0,0 +1,13 @@ +partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> + + + Zurück

    Produktthema löschen

    +

    theme->title ?>

    + form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); + $this->form->setAttrib('class', 'form-horizontal'); + $this->form->save->setAttrib('class', 'btn-success btn-large'); + + echo $this->form; ?> + + + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/delthememotiv.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/delthememotiv.phtml new file mode 100644 index 000000000..96261b05e --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/delthememotiv.phtml @@ -0,0 +1,13 @@ +partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> + + + Zurück

    Motivthema löschen

    +

    theme->title ?>

    + form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); + $this->form->setAttrib('class', 'form-horizontal'); + $this->form->save->setAttrib('class', 'btn-success btn-large'); + + echo $this->form; ?> + + + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/design.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/design.phtml new file mode 100644 index 000000000..f126e95c0 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/design.phtml @@ -0,0 +1,15 @@ +partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> + + +

    Konfigurieren Sie Ihr Design.

    + form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); + $this->form->setAttrib('class', 'form-horizontal'); + $this->form->save->setAttrib('class', 'btn-success btn-large'); + + echo $this->form; ?> + +
    + + + + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/domains.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/domains.phtml new file mode 100644 index 000000000..19acb684e --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/domains.phtml @@ -0,0 +1,17 @@ +partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> + +

    Domains.

    + Neue Domain anlegen + + + + domains as $domain): ?> + + + +
    Domain
    + +
    + + + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/editarticle.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/editarticle.phtml new file mode 100644 index 000000000..b7794865d --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/editarticle.phtml @@ -0,0 +1,15 @@ +partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> +headScript()->prependFile('/scripts/jquery-multiselect/js/jquery.multi-select.js'); + $this->headLink()->appendStylesheet('/scripts/jquery-multiselect/css/multi-select.css'); +?> + +Zurück

    Produkt bearbeiten

    + form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); + $this->form->setAttrib('class', 'form-horizontal'); + $this->form->save->setAttrib('class', 'btn-success btn-large'); + + echo $this->form; ?> + + + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/editarticlegroup.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/editarticlegroup.phtml new file mode 100644 index 000000000..a92a9bf0d --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/editarticlegroup.phtml @@ -0,0 +1,12 @@ +partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> + + +Zurück

    Produktgruppen bearbeiten

    + form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); + $this->form->setAttrib('class', 'form-horizontal'); + $this->form->save->setAttrib('class', 'btn-success btn-large'); + + echo $this->form; ?> + + + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/editdomain.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/editdomain.phtml new file mode 100644 index 000000000..aa395fa8b --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/editdomain.phtml @@ -0,0 +1,12 @@ +partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> + + +Zurück

    Domain bearbeiten

    + form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); + $this->form->setAttrib('class', 'form-horizontal'); + $this->form->save->setAttrib('class', 'btn-success btn-large'); + + echo $this->form; ?> + + + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/editmotiv.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/editmotiv.phtml new file mode 100644 index 000000000..fadea31ef --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/editmotiv.phtml @@ -0,0 +1,15 @@ +partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> + +headScript()->prependFile('/scripts/jquery-multiselect/js/jquery.multi-select.js'); + $this->headLink()->appendStylesheet('/scripts/jquery-multiselect/css/multi-select.css'); +?> +Zurück

    Motiv bearbeiten

    + form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); + $this->form->setAttrib('class', 'form-horizontal'); + $this->form->save->setAttrib('class', 'btn-success btn-large'); + + echo $this->form; ?> + + + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/editslide.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/editslide.phtml new file mode 100644 index 000000000..ec01a2178 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/editslide.phtml @@ -0,0 +1,13 @@ +partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> + + +Zurück

    Slide bearbeiten

    + form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); + $this->form->setAttrib('class', 'form-horizontal'); + $this->form->text->setAttrib('style','height: 440px;width: 440px;'); + $this->form->save->setAttrib('class', 'btn-success btn-large'); + + echo $this->form; ?> + + + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/editthemearticle.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/editthemearticle.phtml new file mode 100644 index 000000000..171e3a110 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/editthemearticle.phtml @@ -0,0 +1,12 @@ +partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> + + +Zurück

    Produktthema bearbeiten

    + form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); + $this->form->setAttrib('class', 'form-horizontal'); + $this->form->save->setAttrib('class', 'btn-success btn-large'); + + echo $this->form; ?> + + + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/editthememotiv.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/editthememotiv.phtml new file mode 100644 index 000000000..a4afd5704 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/editthememotiv.phtml @@ -0,0 +1,13 @@ +partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> + + +Zurück

    Motivthema bearbeiten

    + form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); + $this->form->setAttrib('class', 'form-horizontal'); + $this->form->save->setAttrib('class', 'btn-success btn-large'); + + echo $this->form; ?> + + + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/index.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/index.phtml new file mode 100644 index 000000000..650ed7205 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/index.phtml @@ -0,0 +1,8 @@ +partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> + + + +

    Shopübersicht

    + +
    + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/motive.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/motive.phtml new file mode 100644 index 000000000..a5370f5e9 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/motive.phtml @@ -0,0 +1,20 @@ +partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> + + +

    Motive

    + Neues Motiv hochladen + + + + motive as $motiv): ?> + + + +
    Title
    image()->thumbnailMotiv($motiv->title, 'motivelist', $motiv->file_thumb, false, $motiv); ?>title ?>
    + UUID: uuid ?>
    + + +
    + + + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/orders.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/orders.phtml new file mode 100644 index 000000000..7c8c5e1dd --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/orders.phtml @@ -0,0 +1,8 @@ +partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> + + +

    Aufträge

    + + +
    + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/themesarticles.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/themesarticles.phtml new file mode 100644 index 000000000..83a832869 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/themesarticles.phtml @@ -0,0 +1,18 @@ +partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> + + +

    Produktthemen

    + Neues Thema anlegen + + + + themes as $theme): ?> + + + +
    Title
    title ?> + +
    + +
    + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/themesmotive.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/themesmotive.phtml new file mode 100644 index 000000000..1b7686883 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/myshop/themesmotive.phtml @@ -0,0 +1,18 @@ +partial ( 'myshop/_head.phtml', array ('role' => $this->role, 'shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath, 'current_shop' => $this->current_shop, 'myshop_selector' => $this->myshop_selector ) );?> + + +

    Motivthemen

    + Neues Thema anlegen + + + + themes as $theme): ?> + + + +
    Title
    title ?> + +
    + + + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/news/index.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/news/index.phtml new file mode 100644 index 000000000..ddf655e7a --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/news/index.phtml @@ -0,0 +1,20 @@ +
    +
    +
    +

    Neuigkeiten

    +
    + + news as $news): ?> +
    +

    title ?>

    +

    date($news->sort_date)->toString(Zend_Date::DATE_MEDIUM) ?>

    +

    + einleitung ?> + Weiterlesen +

    + +
    +
    + +
    +
    diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/news/show.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/news/show.phtml new file mode 100644 index 000000000..119acd585 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/news/show.phtml @@ -0,0 +1,13 @@ +
    +
    +
    +

    news->title ?>

    +
    + +
    +

    date($this->news->sort_date)->toString(Zend_Date::DATE_MEDIUM) ?>

    +

    news->text ?>

    + Zurück +
    +
    +
    diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/overview/index.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/overview/index.phtml new file mode 100644 index 000000000..32abd0225 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/overview/index.phtml @@ -0,0 +1,107 @@ + +
    +
    +
    + articlegroup && $this->articlegroup->title) { + if($this->articlegroup->display_title) { + + if ($this->articlegroup->image != "") { + echo '
    ' . $this->articlegroup->title .' +
    +

    ' . $this->articlegroup->title . '

    '; + if ($this->articlegroup->text != "") { + echo '

    '.$this->articlegroup->text . '

    '; + } + echo '
    +
    '; + } else { + echo '

    ' . $this->articlegroup->title . '

    '; + if ($this->articlegroup->text != "") { + echo '

    '.$this->articlegroup->text . '

    '; + } + } + } + }; ?> +
    +
    +
    + +articlegroupss) > 0):?> +
    +
    +
    +

    Kategorien in articlegroup->title ?>

    +
    +
    + +
    + articlegroupss as $articlegroup): ?> + partial('article/_articlegrouplistitem.phtml', array('basepath' => $this->basepath, 'admin' => $this->admin, 'mode' => $this->mode, 'user' => $this->user, 'currency' => $this->currency, 'articlegroup' => $articlegroup, 'designPath' => $this->designPath, 'shop' => $this->shop)) ?> + +
    + +
    + +
    +
    +
    + + +articles) > 0 ): ?> +
    +
    +
    + articlegroup->title): ?> +

    Produkte in articlegroup->title ?>

    + +
    + + articles as $article): ?> +
    + partial('article/_article_slider.phtml', array('basepath' => $this->basepath, 'admin' => $this->admin, 'mode' => $this->mode, 'user' => $this->user, 'currency' => $this->currency, 'article' => $article, 'designPath' => $this->designPath, 'shop' => $this->shop)); + ?> +
    + +
    +
    + + +hasIdentity()==true :' . Zend_Auth::getInstance()->hasIdentity()==true ; + echo '
    '; + echo 'count($this->myarticles):' . count($this->myarticles); + echo '
    '; + */ +if(Zend_Auth::getInstance()->hasIdentity()==true AND count($this->myarticles) > 0 ): ?> +
    +
    +
    + myarticles as $article): ?> + partial('article/_articlelistitem.phtml', array('admin' => $this->admin, 'user' => $this->user, 'currency' => $this->currency, 'article' => $article, 'myarticle' => true, 'designPath' => $this->designPath, 'shop' => $this->shop)) + $this->partial('article/_articlelistitem_produktuebersicht.phtml', array('basepath' => $this->basepath, 'admin' => $this->admin, 'mode' => $this->mode, 'user' => $this->user, 'currency' => $this->currency, 'article' => $article, 'myarticle' => true, 'designPath' => $this->designPath, 'shop' => $this->shop)); + ?> + +
    +
    +
    + diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/pagination.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/pagination.phtml new file mode 100644 index 000000000..0b8a3c89e --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/pagination.phtml @@ -0,0 +1,44 @@ +pagesInRange) > 1): ?> + +
    + +
    + diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/product_tabs.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/product_tabs.phtml new file mode 100644 index 000000000..755f48b82 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/product_tabs.phtml @@ -0,0 +1,22 @@ + \ No newline at end of file diff --git "a/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/articlestep1 (07.10.11 13\"10).phtml" "b/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/articlestep1 (07.10.11 13\"10).phtml" new file mode 100644 index 000000000..d913340a1 --- /dev/null +++ "b/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/articlestep1 (07.10.11 13\"10).phtml" @@ -0,0 +1,133 @@ +headScript()->prependFile('/scripts/jquery-tag/jquery-tag.js'); +?> +

    translate('Selling product') ?>

    + + +
    +
    +
    +
    +
    + + +
    +

    Stellen Sie (mit Hilfe des Assistenten) Ihr Produkt zum Verkauf bereit

    + +
    +
    +

    A. translate('Ihr Produkt') ?>

    +

    Wählen Sie bitte einen möglichst eindeutigen Namen. Z.B. "T-Shirt "Südsee" " wenn Sie ein T-Shirt mit Ihrem Südseemotiv gestaltet haben.
    Bei der Beschreibung brauchen Sie Details des Grundproduktes nicht noch einmal zu erwähnen. Die Details des Grundproduktes können später auch bei Ihrem gestalteten Produkt eingesehen werden.

    +
    +
    + +
    + form->name->getDecorator('viewHelper')->setElement($this->form->name)->render(''); ?> + +
    +
    +
    + form->description->getDecorator('viewHelper')->setElement($this->form->description)->render(''); ?> +
    +
    +

    B. translate('Zusatzinfomationen') ?>

    +

    Unter Tags tragen Sie bitte einige Stichwörter ein, unter denen Ihr Produkt gefunden werden soll.

    +
    + form->tags->getDecorator('viewHelper')->setElement($this->form->tags)->render(''); ?> +
    +
    +

    C. translate('Shop auswählen') ?>

    +

    Falls Sie mehrere Shops auf unserem Marktplatz haben, prüfen Sie bitte ob der gewünschte Shop ausgewählt ist.

    +
    + form->shop->getDecorator('viewHelper')->setElement($this->form->shop)->render(''); ?> +
    +
    +
    +

    D. translate('Gewinn definieren') ?>

    +

    Bei Verkaufsaufschlag geben Sie bitte den Betrag in Euro ein, der auf den Grundpreis gerechnet werden soll. Hier bestimmen Sie wieviel der Artikel in Ihrem Shop kostet. Details zur Abrechnung finden Sie hier.

    +
    +
    inkl. 19% MwSt
    +
    +
    +

    E. translate('Verkaufsform') ?>

    +

    Wenn Sie den Artikel als Produkt verkaufen, kann dieser vom Kunden nicht weiter gestaltet werden. Wenn Sie den Artikel als Designvorlage verkaufen, kann der Kunde Ihren Artikel nach seinen Wünschen gestalten. Z.B. noch einen Text oder ein Persönliches Bild einfügen

    +

    Als Designvorlage anbieten

    + +

    Als Produkt verkaufen

    + + +
    + +
    + + +
    + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/articlestep1.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/articlestep1.phtml new file mode 100644 index 000000000..14799386e --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/articlestep1.phtml @@ -0,0 +1,86 @@ + +
    + Schritt 1: translate('Allgemeine Daten', null, 'article_step_1_pfeil') ?>
    + Schritt 2: translate('Kategorien', null, 'article_step_2_pfeil') ?>
    + Schritt 3: translate('Martkplatz', null, 'article_step_3_pfeil') ?>
    + Schritt 4: translate('Fertigstellen', null, 'article_step_5_pfeil') ?>
    +
    +
    +headScript()->prependFile('/scripts/jquery-tag/jquery-tag.js'); +?> + + +
    + article->a6_org_article != 0 || $this->layouterPreviewId): ?> + articleObj->generatePreview($this->article->id, $this->layouterPreviewId); ?> + + image()->thumbnailImage($this->article->title, 'articlelist_overview_box', $this->article->file); ?> + + + + article->a6_org_article != 0 || $this->layouterPreviewId): ?> +

    article->OrgArticle->title; ?>

    + +

    article->title; ?>

    + + article->a6_org_article != 0 || $this->layouterPreviewId): ?> +

    article->OrgArticle->info; ?>

    + +

    article->info; ?>

    + +
    +

    +form->setAttrib('class', 'form-horizontal'); +EasyBib_Form_Decorator::setFormDecorator($this->form, \EasyBib_Form_Decorator::BOOTSTRAP, 'Weiter'); ?> +
    +
    +
    +

    Allgemeine Daten

    + form->name ?> + + form->description ?> + + form->tags ?> + + form->shop ?> + + form->prodpreis ?> + + form->resale_price->setAttrib('class', 'span1');echo $this->form->resale_price ?> + + form->allow_layouter ?> +
    +

    + So geht's

    + Vergeben Sie einen eindeutigen Namen. Die Beschreibung gibt + anderen Besuchern eine erste Information über Ihr Produkt. + Falls Sie mehrere Shops haben, wählen Sie einen davon aus. + Mit dem Verkaufsaufschlag legen Sie fest wie hoch Ihr Gewinn + sein wird. +

    +
    + +
    \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/articlestep2.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/articlestep2.phtml new file mode 100644 index 000000000..6fdbc5074 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/articlestep2.phtml @@ -0,0 +1,178 @@ +headScript()->prependFile('/'.$this->designPath . 'assets/js/ot.js'); +?> + +
    + Schritt 1: translate('Allgemeine Daten', null, 'article_step_1_pfeil') ?>
    + Schritt 2: translate('Kategorien', null, 'article_step_2_pfeil') ?>
    + Schritt 3: translate('Martkplatz', null, 'article_step_3_pfeil') ?>
    + Schritt 4: translate('Fertigstellen', null, 'article_step_5_pfeil') ?>
    +
    +
    + + +
    +
    +
    +

    A: translate('Produktgruppen') ?>

    +
    + Produktgruppe 1:articlegroup1name; ?>
    + Produktgruppe 2:articlegroup2name; ?>
    + Produktgruppe 3:articlegroup3name; ?> +
    +
    +

    Wieso brauchen Sie eine Produktgruppe?

    Wählen Sie die Produktgruppe aus Ihrer Navigation, unter der Ihr Produkt zu finden ist oder legen Sie mit hinzufügen eine neue Produktgruppe an. Soll Ihr Produkt unter mehreren Produktgruppen zu finden sein nutzen Sie das Plus-Icon um eine weitere Produktgruppe zu bestimmen.

    +
    +
    +
    +
    +
    +

    B: translate('Produktthemen') ?>

    +
    + Produktthema 1:articletheme1name; ?>
    + Produktthema 2:articletheme2name; ?>
    + Produktthema 3:articletheme3name; ?> +
    +
    +

    Wieso brauchen Sie ein Produktthema?

    Wählen Sie die Produktthema aus Ihrer Navigation, unter der Ihr Produkt zu finden ist oder legen Sie mit hinzufügen eine neues Produktthema an. Soll Ihr Produkt unter mehreren Produktthemen zu finden sein nutzen Sie das Plus-Icon um eine weiteres Produktthema zu bestimmen.

    +
    +
    + +
    + "/> +
    + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/articlestep3.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/articlestep3.phtml new file mode 100644 index 000000000..684ab9354 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/articlestep3.phtml @@ -0,0 +1,63 @@ +headScript()->prependFile('/'.$this->designPath . 'assets/js/ot.js'); +?> + +
    + Schritt 1: translate('Allgemeine Daten', null, 'article_step_1_pfeil') ?>
    + Schritt 2: translate('Kategorien', null, 'article_step_2_pfeil') ?>
    + Schritt 3: translate('Martkplatz', null, 'article_step_3_pfeil') ?>
    + Schritt 4: translate('Fertigstellen', null, 'article_step_5_pfeil') ?>
    +
    +
    + + +form->setAttrib('class', 'form-horizontal'); +EasyBib_Form_Decorator::setFormDecorator($this->form, \EasyBib_Form_Decorator::BOOTSTRAP, 'Weiter'); ?> +
    +

    Was ist der Marktplatz?

    +

    Der Marktplatz wird auf der Startseite von primabu.de angezeigt und ist für jeden sichtbar und zugänglich. Hier erscheinen die neusten und beliebtesten Produkte, Motive und Shops.

    + form->resale ?> + +

    Wieso brauchen Sie ein Produktthema?

    +

    + Ordnen Sie hier Ihrem Produkt einer oder mehrere Kategorien zu. Damit erleichtern Sie Interessierten Ihr neues Produkt + im öffentlichen Marktplatz leichter zu finden. Sie können ein weiteres Thema auswählen in dem Sie auf das Plus (+) Symbol klicken. +

    +

    Produktthema wählen

    +
    +
    +
    +
    Produkttheme 1:articlemarkettheme1name; ?>
    +
    Produkttheme 2:articlemarkettheme2name; ?> +
    Produkttheme 3:articlemarkettheme3name; ?> +

    + "/> +
    \ No newline at end of file diff --git "a/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/articlestep4 (25.10.11 09\"32).phtml" "b/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/articlestep4 (25.10.11 09\"32).phtml" new file mode 100644 index 000000000..420c5884f --- /dev/null +++ "b/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/articlestep4 (25.10.11 09\"32).phtml" @@ -0,0 +1,98 @@ +headLink()->appendStylesheet($this->designPath . '/css/resalearticle2.css'); +?> +
    +

    translate('Selling product') ?>

    + + + +
    +

    +
    +
    +
    +
    +

    translate('Was bedeutet privatisieren') ?>?

    Mit dem privatisieren Button können Sie ein Produkt an eine bestimmte Firma und eine bestimmte Person binden. Somit kann nur diese Frima bzw. Person das Produkt sehen. Des Weiteren erscheint diese Produkt nicht mehr auf dem Marktplatz. +

    +

    translate('Produkt privatisieren?') ?>

    form->private->getDecorator('viewHelper')->setElement($this->form->private)->render(''); ?> + form->getMessages()) ?> +
    +
    +
    +
      +
    • +
      + Firma +
      +
    • +
    • +
      + Mitglieder +
      +
    • +
    +
    +
    +
      +
    • form->account->getDecorator('viewHelper')->setElement($this->form->account)->render(''); ?>
    • +
    • form->contact->getDecorator('viewHelper')->setElement($this->form->contact)->render(''); ?>
    • +
    +
    +
    +
    +
    +
    +
    +"/> +
    + + diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/articlestep4.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/articlestep4.phtml new file mode 100644 index 000000000..96cb3729e --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/articlestep4.phtml @@ -0,0 +1,98 @@ +headLink()->appendStylesheet($this->designPath . '/css/resalearticle2.css'); +?> +
    +

    translate('Selling product') ?>

    + + + +
    +

    +
    +
    +
    +
    +

    translate('Was bedeutet privatisieren') ?>?

    Mit dem privatisieren Button können Sie ein Produkt an eine bestimmte Firma und eine bestimmte Person binden. Somit kann nur diese Frima bzw. Person das Produkt sehen. Des Weiteren erscheint diese Produkt nicht mehr auf dem Marktplatz. +

    +

    translate('Produkt privatisieren?') ?>

    form->private->getDecorator('viewHelper')->setElement($this->form->private)->render(''); ?> + form->getMessages()) ?> +
    +
    +
    +
      +
    • +
      + Firma +
      +
    • +
    • +
      + Mitglieder +
      +
    • +
    +
    +
    +
      +
    • form->account->getDecorator('viewHelper')->setElement($this->form->account)->render(''); ?>
    • +
    • form->contact->getDecorator('viewHelper')->setElement($this->form->contact)->render(''); ?>
    • +
    +
    +
    +
    +
    +
    +
    +"/> +
    + + diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/articlestep5.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/articlestep5.phtml new file mode 100644 index 000000000..465c344d0 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/articlestep5.phtml @@ -0,0 +1,26 @@ + +
    + Schritt 1: translate('Allgemeine Daten', null, 'article_step_1_pfeil') ?>
    + Schritt 2: translate('Kategorien', null, 'article_step_2_pfeil') ?>
    + Schritt 3: translate('Martkplatz', null, 'article_step_3_pfeil') ?>
    + Schritt 4: translate('Fertigstellen', null, 'article_step_5_pfeil') ?>
    +
    +
    +

    +Alles OK? Wenn nicht gelangen Sie über die Bestellschritte wieder zurück und können Ihre Daten überarbeiten.
    +Hier können Sie sich über unsere allgemeinen Geschäftsbedingungen informieren und Ihre Bestellung abschließn. +

    +
    shop->Install->agb ?>
    +
    +

    translate('Bitte akzeptieren Sie unsere allg. Geschäftsbedingungen:') ?>

    +
    +

    +
    +form->cp ?> +
    + + "/> +
    + diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/begin.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/begin.phtml new file mode 100644 index 000000000..4d4b90b2a --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/begin.phtml @@ -0,0 +1,221 @@ +
    +

    Verkaufen

    +

    Jetzt durchstarten und mit dem eigenen, kostenlosen Shop Geld verdienen!

    +
    +
    +

    Neuen Themenshop eröffnen

    + +

    Eröffnen Sie kostenlos einen Themenshop und verkaufen Sie Motive, Designvorlagen und Produkte.

    + Los geht's +
    + +
    +

    Motive hochladen

    + +

    Laden Sie zum Gestalten oder zum Verkauf eigene Fotos oder Grafiken hoch. Zum Verkaufen benötigen Sie einen eigenen Themenshop.

    + Los geht's +
    + +
    +

    Produkt verkaufen

    + +

    Erstellen Sie aus unserer Produktpalette mit Ihren Ideen und Motiven eigene Produkte die Sie einfach über Ihren Themenshop verkaufen können.

    + Los geht's +
    +
    +
    +
    + +translate(" + + + + +
    +

    Aller Anfang ist (bei uns) kinderleicht

    +

    Eröffne Deinen eigenen Online-Shop und verkaufe Deine Produkte!

    +
    + + + +
    + + +
    +

    Sie sind ein Fotograf oder eine Fotoagentur?

    +
    +Auf myprintmall kann jeder einfach und kostenlos eigene Fotos präsentieren und verkaufen. Ihre Motive werden von einem besonders dankbaren Publikum wahrgenommen, denn die Plattform bietet eine Vielzahl von Produkten, die mit diesen Motiven online gestaltet werden können. Vom Fotobuch bis T-Shirts - im Prinzip alles, was sich bedrucken lässt. +Was zählt ist die eigene Idee und Kreativität. +

    +Richten Sie jetzt kostenlos Ihren eigenen Motiv-Shop und Fotoprodukte-Shop ein. z.B.: +
      +
    • Event - Foto & Fotoprodukte-Shop
    • +
    • Sport - Foto & Fotoprodukte-Shop
    • +
    • Themen - Foto & Fotoprodukte
    • +
    +
    +Exklusive Bilder von Veranstaltungen anzubieten und diese auf ausgewählten Druckprodukten zu präsentieren erhöht die Verkaufschancen mit einem Schlag um ein Vielfaches. +Als registrierter Nutzer können Sie unsere Features wie z.B. Fotos verkaufen in vollem Umfang kostenlos nutzen, die frei gewählte Provision definieren - den Rest macht myprintmall: Vermarktung, Produktion, Versand und Service. +
    +
    + + + +
    +

    Sie sind ein Gestalter, ein Grafiker oder Illustrator?

    +\"Jeder Mensch ist ein Künstler\", so Joseph Beuys im November 1985 in einem Vortrag. Das stimmt heute mehr denn je. +
    +Sie haben Ideen, die bei anderen gut ankommen? Jedoch war Ihnen der entscheidende Schritt, daraus vermarktbare Produkte zu machen, mit einem zu hohem finanziellen Risiko verbunden? +
    +Das ist jetzt vorbei. Gestalten Sie völlig kostenfrei eigene Produkte und verkaufen jetzt Designvorlagen und fertige Produkte ggf. auf Basis bereits bestehender Layouts und Ideen, den Rest macht myprintmall: +
    +Vermarktung, Produktion, Versand und Service. +

    +Sie verdienen bei jedem Produkt die frei gewählte Provision und sind jederzeit im Bilde, wie sich Ihre Produkte verkaufen. +
    +Richten Sie sich Ihren persönlichen Account auf myprintmall ein. Als registrierter Nutzer können Sie unsere Features wie z.B. Motive verkaufen und Designs verkaufen in vollem Umfang nutzen. + +
    +
    + + +
    +

    Sie sind eine Werbeagentur?

    +BtoB Mandantenshops: +
    +Verwöhnen Sie Ihre Kunden mit einem passwortgeschützen Web2Print-Shop im LookAndFeel der eigenen Agentur und Ihres Kunden. Der BtoB Mandantenshop ist praktizierte Kundenbindung. Sie richten kostenfrei Ihren eigenen Onlineshop ein und stellen die Druckprodukte (CD-konforme Visitenkarten, Produktflyer und Imagebroschüren) für Ihren Kunden ein, die dieser einfach anpassen und bestellen kann. Fertige Printprodukte können als HTML CodeSnippet in der Firmenhomepage Ihres Kunden zum direkten Bestellen durch deren Besucher angezeigt werden (z.B. Produktbroschüre). Ein perfekter Kundenservice, der beeindrucken wird. +Ohne Arbeit für Sie oder Ihre Mitarbeiter wird die komplette Historie des Workflows inkl. Freigabeprozesse automatisch dokumentiert den Rest macht myprintmall: Produktion, Versand und Service. +

    +Zweitvermarktung: +
    +Bieten Sie auch in Ihrem offenen Shop z.B. branchenorientiert vorgestaltete Visitenkarten an oder eröffnen kostenlos eigene Spezialshops z.B. für Veranstaltungsplakate oder Einladungs- und Grusskarten. + +
    +
    + + + +
    +

    Sie sind Webmaster?

    +Sie wenden sich über die von Ihnen administrierte Portalsite professionell an eine attraktive Zielgruppe? Richten Sie jetzt Ihren eigenen, offenen Themenmarktplatz ein und überlassen es der Fantasie und Dynamik Ihrer Besucher eigene Produkte, Inhalte, Motive anzulegen und zu verkaufen. +Für spezifische Anpassungen oder Implementierungen unserer Technologie in Ihre Plattform oder umgekehrt können Sie uns zwecks einer Kooperation auch direkt ansprechen. + +
    +
    + + +
    +

    Sie haben einfach Ideen?

    +Eröffnen Sie jetzt Ihren kostenfreien Online-Shop bei myprintmall und vedienen Geld mit Ihren Ideen. Das geht schnell und ist kinderleicht. Der Shop-Assistent hilft dabei Schritt für Schritt mit Tipps, Tricks und Tutorials. +Eigene Produkte (z. B. Kalender mit den Rezepten Ihrer Lieblingscocktails oder selbstgestaltete T-Shirts) lassen sich aus der groflen Auswahl gestalten und dann im eigenen Shop verkaufen. Wählen Sie einfach ein Bestandsprodukt und gestalten es online mit Ihren Motiven und nach Ihren Vorstellungen. Verdienen Sie Geld mit Ihren Ideen, Designs und Motiven. +

    +Sie können aber auch einfach Produkte für sich selbst bestellen + +
    +
    + + +
    +

    Ralf S., Fotograf:

    +\"Ich fotografiere seit Jahren beruflich und mit Leidenschaft. Dabei sind natürlich auch viele freie Arbeiten entstanden. Meine Bilder sind sehr speziell und passen nicht unbedingt in das Schubladendenken vieler Menschen. Und in meinen Schubladen sollten die Bilder natürlich nicht bleiben. Es war oft nicht einfach eine kommerzielle Verwendung dafür zu finden. +Doch jetzt habe ich endlich die ideale Plattform für meine Bilder gefunden - myprintmall. Dort werden lediglich geringauflösende Thumbnails gezeigt und keine Downlods angeboten, dass der elektronische Bilderklau ausgeschlossen ist. Jedoch lassen sich dort mit meinen Motiven tolle Druckprodukte erstellen, die die Leute liebe, als Geschenk oder für sich selbst. +Und ich verdiene an jedem Exemplar mit.\" +
    +
    + + +
    +

    Sascha B. Grafikdesigner:

    +\"Prima Idee von den Leuten von myprintmall! Ich kann jetzt all die guten Entwürfe, die leider nie gedruckt wurden, weil der Auftraggeber sie nicht verstanden hat oder weil er was anderes schöner fand, neuen potenziellen Kunden anbieten. Das nenne ich mal einen Synergieeffekt! +Und der eigene Web2Printshop ist für mich völlig kostenlos. Ich habe mich einfach registriert und meine Sachen online gestellt. Den Shop habe ich in meine Homepage eingebunden, aber auch gleich die Freigabe für die Plattform gegeben. Da kommt mehr, als ich zunächst dachte.\" +
    +
    + + +
    +

    Max M., Fuflballklub Kick e. V.:

    +\"Die haben da ein einfaches Layout-Gestaltungsprogramm. Das ist online und damit mache ich jetzt seit zwei Ausgaben unsere Vereinszeitung. Die Bilder lade ich einfach hoch und die Texte kopiere ich in die Textboxen. Wenn ich meinen Artikel fertig habe, schicke ich den anderen einfach eine eMail. So kann unsere Redaktionsteam der Reihe nach die Ausgabe fertig stellen. +Ist die Zeitung fertig schicke ich eine Rundmail mit dem Bestelllink - den Rest macht myprintmall: Produktion, Versand und Service.\" +
    +
    + + +
    +

    Ansgar B., Jazzfan:

    +\"Manchmal passen die Dinge einfach zusammen. Ich bin Webdesigner und betreue das Jazzfestival Münster (www.jazzfestival-muenster.de), mein Hobby ist die Fotografie und ich liebe Musik. Das sieht man meinen Fotos auch an, glaube ich. Ich wurde von vielen Seite auf meine Fotos angeprochen und habe kurzerhand ein Fotobuch daraus gemacht, das ich jetzt auf dem Marktplatz myprintmall, meinem eigenen Shop und die offizielle Jazzfestivalsite vertreibe - den Rest macht myprintmall: Produktion, Versand und Service.\" +
    +
    + +
    ", 'textarea', 'resalebegin'); \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/finish.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/finish.phtml new file mode 100644 index 000000000..ac559dfe4 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/finish.phtml @@ -0,0 +1,10 @@ + +mode == 'product'): ?> +

    Vielen Dank für die Einstellung eines Verkaufsprodukt.

    +uuid) && $article->uuid != ""): ?> +Verkauften Artikel im entsprechenden Shop aufrufen Zur Startseite + +

    Vielen Dank für Ihren Upload.

    +

    Ihre Motive können Sie nun in Ihrem Kundenaccount unter Meine Motive verwalten.

    +Zu meinen Motiven Zur Startseite + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/index.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/index.phtml new file mode 100644 index 000000000..278bef63e --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/index.phtml @@ -0,0 +1,34 @@ + + +
    + + hasShop): ?> +
    +

    translate('Verkaufen in meinem Shop')?>

    +

    translate('Sie möchten dieses Produkt in Ihr Sortiment aufnehmen, weil Sie bereits einen Shop über primabu.de eröffnet haben? Dann sind Sie hier richtig!')?>

    + translate("Los geht's")?> +
    + + + uuid != ""): ?> + layouter !=""):?> +
    +

    translate('Produkt gestalten')?>

    +

    translate('Über die Detailansicht dieses Produkts gelangen Sie zum Online-Layouter. Dort können Sie Ihr Produkt individuell gestalten.')?>

    + translate("Los geht's")?> +
    + +
    +

    translate('Produkt gestalten')?>

    +

    translate('Über die Detailansicht dieses Produkts gelangen Sie zum Online-Layouter. Dort können Sie Ihr Produkt individuell gestalten.')?>

    + translate("Los geht's")?> +
    + + + +
    +

    translate('Verkaufen in neuem Shop')?>

    +

    translate('Sie möchten einen kostenfreien Shop eröffnen? Dazu müssen Sie sich registrieren. Unser Assistent wird Sie schrittweiße bei der Eingabe der Details begleiten.')?>

    + translate("Los geht's")?> +
    +
    diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/layouterindex.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/layouterindex.phtml new file mode 100644 index 000000000..91b8a806b --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/layouterindex.phtml @@ -0,0 +1,25 @@ + + +
    + hasShop): ?> +
    +

    translate('Vorhanden Shop verwenden') ?>

    +

    + translate('resale box 1') ?> +

    + translate('Los geht´s') ?> +
    + + + +
    +

    translate('Neuen Shop erstellen') ?>

    +

    + translate('resale box 3') ?> +

    + translate('Los geht´s') ?> +
    + +
    + + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/motivstep1.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/motivstep1.phtml new file mode 100644 index 000000000..24b3276d4 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/motivstep1.phtml @@ -0,0 +1,154 @@ + +headScript()->prependFile('/'. $this->designPath . '/motivstep1.js'); +$this->headScript()->prependFile('/'. $this->designPath . '/assets/uploader/js/locale.js'); +$this->headScript()->prependFile('/'. $this->designPath . '/assets/uploader/js/jquery.fileupload-video.js'); +$this->headScript()->prependFile('/'. $this->designPath . '/assets/uploader/js/jquery.fileupload-audio.js'); +$this->headScript()->prependFile('/'. $this->designPath . '/assets/uploader/js/jquery.fileupload-image.js'); +$this->headScript()->prependFile('/'. $this->designPath . '/assets/uploader/js/jquery.fileupload-process.js'); +$this->headScript()->prependFile('/'. $this->designPath . '/assets/uploader/js/jquery.fileupload-ui.js'); +$this->headScript()->prependFile('/'. $this->designPath . '/assets/uploader/js/jquery.fileupload.js'); + +$this->headScript()->prependFile('/'. $this->designPath . '/assets/uploader/js/jquery.iframe-transport.js'); +$this->headScript()->prependFile('/'. $this->designPath . '/assets/uploader/js/vendor/jquery.ui.widget.js'); +$this->headLink()->appendStylesheet('/'. $this->designPath . '/assets/uploader/css/jquery.fileupload-ui.css'); +?> + +
    + +

    translate('Motiv Upload') ?>

    + + partial ( 'motiv_tabs.phtml', array ('shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => 4, 'myfavcount' => $this->myfavcount, 'currency' => $this->currency, 'designPath' => $this->designPath ) );?> +
    +

    So fügen Sie eigene Motive hinzu:

    +
      +
    1. Wählen Sie Dateien von Ihrem Rechner aus, indem Sie auf "Dateien hinzufügen" klicken.
    2. +
    3. Klicken Sie auf "Hochladen starten"
    4. +
    5. Wenn Sie mit den hochgeladenen Dateien zufrieden sind, bestätigen Sie zuletzt mit "Motive speichern"
    6. +
    +
    +
    + +
    + +
    + + + + Dateien hinzufügen... + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
     
    +
    + +
    + + +
    +
    + +
    +
    + + + + + + + + + + + + + + +
    +
    +
    + +
    \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/motivstep2.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/motivstep2.phtml new file mode 100644 index 000000000..72335b957 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/motivstep2.phtml @@ -0,0 +1,103 @@ + + +
    +headScript()->prependFile('/scripts/jquery-tag/jquery-tag.js'); +?> + +

    A. Ihre Motivauswahl

    +
    +

    So geht's

    Stellen Sie (mit Hilfe des Assistenten) Motive zum Verkauf bereit. Hier sehen Sie Ihre ausgewählten Motive und können die Namen noch einmal korrigieren.

    + hasIdentity()): ?> + +
    +
    + + + + +

    B. Shop auswählen

    +

    Wählen Sie hier den Shop, in dem Sie Ihre Motive verkaufen möchten.

    + form->shop->getDecorator('viewHelper')->setElement($this->form->shop)->render(''); ?> + +

    C. Gewinn definieren

    +

    Wählen Sie die von Ihnen gewünschten Preise für Ihre Motive. Die Preise sind für alle hier abgebildeten Motive gültig. Sie können diese Informationen jederzeit unter den Motiveigenschaften ändern. Genauere Informationen zu den Größen können Sie über das Info-Symbol einsehen.

    + + + + +
    kleinform->price1->getDecorator('viewHelper')->setElement($this->form->price1)->render(''); ?>
    mittelform->price2->getDecorator('viewHelper')->setElement($this->form->price2)->render(''); ?>
    großform->price3->getDecorator('viewHelper')->setElement($this->form->price3)->render(''); ?>
    + + +

    D. Zusatzinformationen festlegen

    +

    Hier können Sie das Copyright für Ihre Bilder eintragen und Stichworte (sogenannte Tags) vergeben.

    + + + +
    Copyrightform->copyright->getDecorator('viewHelper')->setElement($this->form->copyright)->render(''); ?>
    Tagsform->tags->getDecorator('viewHelper')->setElement($this->form->tags)->render(''); ?> Eingabe: tag1, tag2, tag3, ...
    + + "/> +
    + + + + +

    translate('Bitte melden Sie sich an um mit dem Upload fortzufahren. Hier entlang', 'rte', 'motive_upload') ?>

    + + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/motivstep21.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/motivstep21.phtml new file mode 100644 index 000000000..1458358df --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/motivstep21.phtml @@ -0,0 +1,207 @@ +headScript()->prependFile('/'.$this->designPath . 'assets/js/ot.js'); +?> + + +
    + + + + + hasIdentity()): ?> + +
    + +

    translate('A. Motivthema für Ihren Shop wählen','RTE') ?>

    +

    Wieso brauchen Sie ein Motivthema?

    Unter welchem Thema sollen Ihre Motive zu finden sein? +(Für Ihren eigenen Shop können Sie auch neue Themen anlegen.) Sie können ein weitere Gruppe auswählen in dem Sie das Plus (+) Symbol klicken.

    + + + + + + + + + + +
    + Motivthema 1:motivtheme1name; ?>
    + Motivthema 2:motivtheme2name; ?>
    + Motivthema 3:motivtheme3name; ?> +
     
    +

    translate('B. Motivthema für den Marktplatz wählen','RTE') ?>

    +

    Was ist der Marktplatz?

    Der Marktplatz wird auf der Startseite von primabu.de angezeigt und ist für jeden sichtbar und zugänglich. Hier erscheinen die neusten und beliebtesten Produkte, Motive und Shops.

    Wieso brauchen Sie ein Marktthema?

    Sie möchten Ihre Motive auch auf dem Marktplatz anbieten? Dann setzen Sie den Haken und wählen hier ein geeignetes Thema aus. (Beim Marktplatz ist Ihre Auswahl auf die bestehenden Themen begrenzt.) Sie können eine weitere Gruppe auswählen in dem Sie auf das Plus (+) Symbol klicken.

    +shop->pmb || $this->shop->market): ?> +
    + + + +

    form->resale_market->isChecked()): ?>checked="checked" value="1" id="resale_market" name="resale_market" /> auf dem Marktplatz anbieten

    +
    +
    + + + + + +
    + Marktthema 1:markettheme1name; ?>
    + Marktthema 2:markettheme2name; ?>
    + Marktthema 3:markettheme3name; ?> +
    + +
    + "/> +
    + + +

    translate('Bitte melden Sie sich an um mit dem Upload fortzufahren. Hier entlang', 'rte', 'motive_upload') ?>

    + + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/motivstep3.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/motivstep3.phtml new file mode 100644 index 000000000..6cc7ca351 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/motivstep3.phtml @@ -0,0 +1,24 @@ + + +
    +

    +Alles OK? Wenn nicht gelangen Sie über die Bestellschritte wieder zurück und können Ihre Daten überarbeiten.
    +Hier können Sie sich über unseren Nutzungsvertrag für Bildrechte informieren und Ihren Motiv Verkauf abschließen. +

    +
    shop->Install->getMotivAgb() ?>
    +
    +

    translate('Bitte akzeptieren Sie unseren Nutzungsvertrag für Bildrechte:') ?>

    +
    +

    +
    +form->cp ?> +
    + + "/> +
    diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/shopstep0.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/shopstep0.phtml new file mode 100644 index 000000000..1ad86453e --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/shopstep0.phtml @@ -0,0 +1,22 @@ + + +
    +
    +
    +
    + + form->setAttrib('class', 'form-horizontal'); + EasyBib_Form_Decorator::setFormDecorator($this->form, \EasyBib_Form_Decorator::BOOTSTRAP, 'Weiter'); + echo $this->form->type ?> + + +
    +
    +

    So geht's

    Wenn sie einen für jeden zugänglichen Shop eröffnen möchten und Ihre Produkte und Motive eventuell auch auf dem Marktplatz anbieten möchten, dann ist ein "Offener Themenshop" die richtige Wahl für Sie.

    Möchten Sie einen Shop eröffnen, in dem z.B. nur Mitarbeiter Ihrer Firma einkaufen können, dann wählen Sie "Passwortgeschützter Mandantenshop" aus.

    + +
    \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/shopstep1.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/shopstep1.phtml new file mode 100644 index 000000000..6aa40bf2f --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/shopstep1.phtml @@ -0,0 +1,110 @@ +headScript()->prependFile('/'.$this->designPath . 'assets/js/ot.js'); +?> + + + +
    +form->setAttrib('class', 'form-horizontal'); +EasyBib_Form_Decorator::setFormDecorator($this->form, \EasyBib_Form_Decorator::BOOTSTRAP, 'Weiter'); ?> +shoptype != 2 && $this->shoptype != 3 && $this->shoptype != 4): ?> +
    +

    Geben Sie die Grundinformationen zu Ihrem Shop ein

    +
    +
    +
    +

    A. translate('Shopdaten eingeben') ?>

    + form->name ?> + form->keywords ?> + form->description ?> +
    +
    +
    +

    Vergeben Sie einen eindeutigen Namen.
    + Keywords helfen Anderen Ihren Shop zu finden.
    + Mit einer kurzen Beschreibung stellen Sie ihren Themenshop vor +
    und geben Besuchern eine erste Information was Sie erwartet.

    +
    +

    +
    +
    +

    B. translate('Logo hochladen') ?>

    + form->logo ?> +
    +
    +
    +

    Hinweise zum Shop-Logo/Shop-Banner:

    +

    Dateifomate: JPG, Gif oder PNG
    + Max. Größe: 980px x 120px

    +
    +

    +
    +
    +

    C. translate('Choose your shopthemes') ?>

    +

    + Shopthema 1:shoptheme1name; ?>
    + Shopthema 2:shoptheme2name; ?>
    + Shopthema 3:shoptheme3name; ?> +
    +
    +
    +

    Ordnen Sie hier Ihrem Shop einer oder mehrere Kategorien zu. Damit erleichtern Sie Interessierten Sie leichter zu finden. + Sie können ein weiteres Thema auswählen in dem Sie das Plus (+) Symbol klicken.

    +
    +
    +form->shop_bank): ?>
    +
    +
    +

    D.translate("Bankverbindung zur Abrechnung") ?>

    + form->shop_bank->shop_kto ?> + form->shop_bank->shop_bank_name ?> + form->shop_bank->shop_blz ?> + form->shop_bank->shop_bic ?> + form->shop_bank->shop_iban ?> +
    +
    +
    +

    Zur Abrechnung Ihrer Verkäufe benötigen wir eine Bankverbindung von Ihnen. Bitte geben Sie dass Konto an, auf Ihre eingenommene Provision überwiesen haben möchten.

    +
    + +
    + + + zurück "/> +
    + + +form ?> + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/shopstep2.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/shopstep2.phtml new file mode 100644 index 000000000..f645159ba --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/shopstep2.phtml @@ -0,0 +1,25 @@ +
    +

    3 Schritte zu Ihrem Shop

    + +
    +



    + +
    +
    + translate('Auswahl Design') ?> + + designs as $design): ?> + + + + +

    + +
    + +
    diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/shopstep3.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/shopstep3.phtml new file mode 100644 index 000000000..f08082b3e --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/resale/shopstep3.phtml @@ -0,0 +1,24 @@ + + +
    +

    +Alles OK? Wenn nicht gelangen Sie über die Bestellschritte wieder zurück und können Ihre Daten überarbeiten.
    +Hier können Sie sich über unsere allgemeinen Geschäftsbedingungen informieren und Ihre Bestellung abschließen. +

    +
    shop->Install->agb ?>
    +
    +

    translate('Bitte akzeptieren Sie unsere allg. Geschäftsbedingungen:') ?>

    +
    +

    +
    +form->cp ?> +
    + + "/> +
    \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/search/index.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/search/index.phtml new file mode 100644 index 000000000..76030fb68 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/search/index.phtml @@ -0,0 +1,58 @@ + +
    + + +error): ?> + +

    translate('Die Suche ist im Moment nicht verfügbar.')?>

    + + + +cms) > 0): ?> + cms as $cms): ?> +

    Seite:

    +

    + ", "")); + $text = str_replace($substring1,"",$text); + $text = str_replace(array("\t","\r","\n"),"",$text); + $text = trim($text); + + echo $this->text()->truncate_text($text, 400, '') ?> translate('mehr')?>...

    +
    + + + +article) > 0): ?> +

    translate('Produktliste') ?>

    +
    + article as $article): ?> + partial('article/_articlelistitem.phtml', array('admin' => $this->admin, 'user' => $this->user, 'currency' => $this->currency, 'article' => $article, 'designPath' => $this->designPath, 'shop' => $this->shop)) ?> + +
    + + +
    + + motive) > 0): ?> +

    translate('Motivliste') ?>

    +
      + motive as $motiv): ?> + partial('motiv/_motivlistitem.phtml', array('admin' => $this->admin, 'user' => $this->user, 'currency' => $this->currency, 'motiv' => $motiv, 'designPath' => $this->designPath, 'shop' => $this->shop, 'currency' => $this->currency)) ?> +
    + + + + +
    +
    \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/sidenav.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/sidenav.phtml new file mode 100644 index 000000000..9f0cb805c --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/sidenav.phtml @@ -0,0 +1,125 @@ + + +cms()->getCms('left'); + + if(count($help)): +?> + + + +cms()->getCms('contentleft'); ?> + 0): ?> + getFirst()->notinmenu): ?>getFirst()->display_title): ?>

    getFirst()->title ?>

    + getFirst()->getText(); ?> + + + * + * + */ +?> \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/slider.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/slider.phtml new file mode 100644 index 000000000..5487d23f8 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/slider.phtml @@ -0,0 +1,65 @@ + +shop->slider_logo != ""): ?> +
    + + + + diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/top_modul.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/top_modul.phtml new file mode 100644 index 000000000..965b740d9 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/top_modul.phtml @@ -0,0 +1,46 @@ +headLink()->appendStylesheet($this->designPath . 'css/motivindex.css'); ?> +top_modul as $modul): ?> + + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/uploadcenter/index.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/uploadcenter/index.phtml new file mode 100644 index 000000000..e02fd1d64 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/uploadcenter/index.phtml @@ -0,0 +1,180 @@ +headScript()->prependFile('/'. $this->designPath . '/upload_center.js'); +$this->headScript()->prependFile('/'. $this->designPath . '/assets/uploader/js/locale.js'); +$this->headScript()->prependFile('/'. $this->designPath . '/assets/uploader/js/jquery.fileupload-process.js'); +$this->headScript()->prependFile('/'. $this->designPath . '/assets/uploader/js/jquery.fileupload-ui.js'); +$this->headScript()->prependFile('/'. $this->designPath . '/assets/uploader/js/jquery.fileupload.js'); +$this->headScript()->prependFile('/'. $this->designPath . '/assets/uploader/js/jquery.iframe-transport.js'); +$this->headScript()->prependFile('/'. $this->designPath . '/assets/uploader/js/vendor/jquery.ui.widget.js'); +$this->headLink()->appendStylesheet('/'. $this->designPath . '/assets/uploader/css/jquery.fileupload-ui.css'); +?> +
    +
    + +
    + +

    translate('Uploadcenter') ?>

    + +

    cms()->getCmsById(33)->text1; ?>

    + + hasIdentity()==true): ?> + +

    translate('Auftragsdetails')?>

    + +
    + + + + + + + + + + +
    + translate('Bestellt:')?> + + order->created, Zend_Date::ISO_8601); ?> +
    translate('Status:')?>order->status) ?>
    +
    + + + articles as $article): ?> +

    Pos: - id; echo $article['article']['title'] ?>

    +
    + +

    Druckdaten für auswählen

    +
    +
    + + + + +
    +
    + + + + Dateien hinzufügen... + + + + + status >= 30 || $article['orderpos']->status < 50) && ( $article['article_org']->typ != 9 ) && $article['orderpos']->layouter_mode != 3 && $article['orderpos']->layouter_mode != 2): ?>translate('Upload fertig')?> +
    + +
    + +
    +
    +
    + +
     
    +
    +
    + +
    +
    + + + +
    +
    +
    + +
    + + + +

    translate('Zurück zur Liste')?>

    + +
    +
    +
    + + + + + + + + + diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/user/addaddress.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/user/addaddress.phtml new file mode 100644 index 000000000..fef276b4b --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/user/addaddress.phtml @@ -0,0 +1,12 @@ +partial ( 'user_tabs.phtml', array ('shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath ) );?> + +
    +
    +
    +

    translate('Adresse hinzufügen')?>

    + + form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); + echo $this->form ?> +
    +
    +
    diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/user/deladdress.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/user/deladdress.phtml new file mode 100644 index 000000000..3a361e2ac --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/user/deladdress.phtml @@ -0,0 +1,8 @@ +partial ( 'user_tabs.phtml', array ('shop' => $this->shop, 'showShop' => $this->showShop, 'admin' => $this->admin, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath ) );?> + +
    +

    translate('Adresse löschen')?>

    + + form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); + echo $this->form ?> +
    diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/user/editaddress.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/user/editaddress.phtml new file mode 100644 index 000000000..71e0d4ea9 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/user/editaddress.phtml @@ -0,0 +1,12 @@ +partial ( 'user_tabs.phtml', array ('shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath ) );?> + +
    +
    +
    +

    translate('Adresse bearbeiten')?>

    + + form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); + echo $this->form ?> +
    +
    +
    diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/user/guest.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/user/guest.phtml new file mode 100644 index 000000000..420c096e1 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/user/guest.phtml @@ -0,0 +1,64 @@ + + +
    +
    +
    +
    +

    translate('Als Gast bestellen') ?>

    + + + + finish != true): ?> +
    + translate('Bitte geben Sie Ihre Daten ein!') . ' – ' . $this->translate('Mit * gekennzeichnete Felder sind Pflichtfelder!'); ?> +
    + + +
    + form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); + + //echo $this->form->render(); + $owd_FORM = $this->form->setAttrib('class', 'niceform form-horizontal')->render(); + echo str_replace( + array('control-group','control-label','class="controls"', ' +
    + + + +
    + translate('Thank you for register') ?> +
    + + +
    +
    +
    +
    diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/user/layouterlogin.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/user/layouterlogin.phtml new file mode 100644 index 000000000..a91799527 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/user/layouterlogin.phtml @@ -0,0 +1,14 @@ +

    translate('Login') ?>

    +hasIdentity()==false): ?> +
    translate('Please fill out the Form') ?>
    +form->render();?> + + +
    translate('You are logged in') ?>
    +
    + + diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/user/login.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/user/login.phtml new file mode 100644 index 000000000..1d59b9a84 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/user/login.phtml @@ -0,0 +1,53 @@ +
    +
    +
    +
    +

    Anmelden

    +

    Wenn Sie bereits Kunde sind:

    + + form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); + // echo $this->form->render(); + $owd_FORM = $this->form->setAttrib('class', '')->render(); + + echo str_replace( + array('control-group','control-label','class="controls"', ' + + translate('Forget password') ?> + +
    + + shop->registration): ?> +

    Wenn Sie noch kein Kunde sind:

    +

    Nutzen Sie die Vorteile eines registrierten Accounts.

    + + shop->market): ?> +
      +
    • translate('Eigener Online-Shop eröffnen')?>
    • +
    • translate('Produkte und Motive verkaufen')?>
    • +
    • translate('Produkte verwalten')?>
    • +
    + + + Registrieren + +
    + +

    Oder als Gast bestellen:

    + + shop->market): ?> +
      +
    • translate('Eigener Online-Shop eröffnen')?>
    • +
    • translate('Produkte und Motive verkaufen')?>
    • +
    • translate('Produkte verwalten')?>
    • +
    + + + Als Gast bestellen +
    +
    +
    +
    \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/user/myaddress.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/user/myaddress.phtml new file mode 100644 index 000000000..0cf169e0a --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/user/myaddress.phtml @@ -0,0 +1,104 @@ +partial ( 'user_tabs.phtml', array ('shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath ) );?> + +
    +

    translate('Rechnungsadressen')?>

    + +
    + + + + + + + + + + + + invoice_addresses as $address): ?> + next() ?>"> + + + + + +
    translate('Firma')?>translate('Name')?>translate('Adresse')?>translate('Land')?>Einstellungen
    text()->truncate_text($address->company,27) ?>firstname . ' ' . $address->lastname ?>street . ' ' . $address->house_number . ' ' . $address->zip . ' ' . $address->city ?>country ?> + user->standart_invoice == $address->id)? 'title="'.$this->translate('Adresse ist Standard').'" class="btn-sm btn-primary"': 'title="'.$this->translate('Adresse als Standard setzen').'" class="btn-sm btn-warning"'; ?> href="/user/setaddressasdefault/invoice/uuid ?>"> + + +
    +
    + + +
    + +shop->display_delivery): ?> +
    +

    translate('Lieferadressen')?>

    + +
    + + + + + + + + + + + + delivery_addresses as $address): ?> + next() ?>"> + + + + + + + + +
    translate('Firma')?>translate('Name')?>translate('Adresse')?>translate('Land')?>Einstellungen
    text()->truncate_text($address->company,27) ?>firstname . ' ' . $address->lastname ?>street . ' ' . $address->house_number . ' ' . $address->zip . ' ' . $address->city ?>country ?> + user->standart_delivery == $address->id)? 'title="'.$this->translate('Adresse ist Standard').'" class="btn-sm btn-primary"': 'title="'.$this->translate('Adresse als Standard setzen').'" class="btn-sm btn-warning"'; ?> href="/user/setaddressasdefault/delivery/uuid ?>"> + + +
    +
    + + +
    + + +shop->display_sender): ?> +
    +

    translate('Absendeadressen')?>

    + +
    + + + + + + + + + + + + sender_addresses as $address): ?> + next() ?>"> + + + + + +
    translate('Firma')?>translate('Name')?>translate('Adresse')?>translate('Land')?>Einstellungen
    text()->truncate_text($address->company,27) ?>firstname . ' ' . $address->lastname ?>street . ' ' . $address->house_number . ' ' . $address->zip . ' ' . $address->city ?>country ?> + user->standart_sender == $address->id)? 'title="'.$this->translate('Adresse ist Standard').'" class="btn-sm btn-primary"': 'title="'.$this->translate('Adresse als Standard setzen').'" class="btn-sm btn-warning"'; ?> href="/user/setaddressasdefault/sender/uuid ?>"> + + +
    +
    + + +
    + diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/user/myapproval.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/user/myapproval.phtml new file mode 100644 index 000000000..08b08b31d --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/user/myapproval.phtml @@ -0,0 +1,66 @@ +partial ( 'user_tabs.phtml', array ('shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath ) );?> +hasIdentity()==true): ?> +
    +
    + + + + + + + + + + + + + orders as $order): ?> + next()?>"> + + + + + + + + + "> + + + + + + + + + +
    translate('Auftragsnummer') ?>translate('Datum') ?>translate('Zahlart') ?>
    date($order['created'])->toString(Zend_Date::DATE_SHORT) ?>
    Position + Article->typ == 6 && $pos->Article->a6_org_article != 0) || ($pos->Article->typ == 8 && $pos->layouter_mode == true)): + echo $this->image()->thumbnailFop($pos->Article->title, 'motivuploadlist', $pos->Article->getMarketFile(), false, $pos->Article->id); + else: + echo $this->image()->thumbnailImage($pos->Article->title, 'motivuploadlist', $pos->Article->file); + endif; + ?> + + translate('Preis Netto').' '.$this->currency->toCurrency($pos['priceallbrutto']-$pos['priceallsteuer']+0) ?>
    + translate('Preis Brutto').' '.$this->currency->toCurrency($pos['priceallbrutto']+0) ?>
    + translate('Dateien:')?>
    + Upload as $upload): ?> + name; ?>
    + +
    + translate('Eigenschaften') ?>
    + Article->getOptArray($pos->data) as $key => $value): ?> +
    + +
    translate('Aktionen'); ?>
    + translate('Freigabe'); ?> +
    +
    +
    + + diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/user/myorders.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/user/myorders.phtml new file mode 100644 index 000000000..1f10a5349 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/user/myorders.phtml @@ -0,0 +1,82 @@ +partial ( 'user_tabs.phtml', array ('shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath ) );?> + +hasIdentity()==true): ?> +
    + paginationControl($this->paginator, 'Sliding', 'pagination.phtml'); ?> +
    + + + + + + + + + + + + + paginator as $order): ?> + next()?>"> + + + + + + + + + + positions"> + + + + + + + + +
    translate('Auftragsnummer') ?>translate('Datum') ?>translate('Referenz') ?>translate('Wert') ?>translate('Zahlart') ?>translate('Auftragsstatus') ?>
    date($order['created'])->toString(Zend_Date::DATE_SHORT) ?> + shop->basketfield1 ?>:
    + shop->basketfield2 ?>:
    +
    currency->toCurrency($order['preisbrutto']+0) ?>
    Position

    Nachbestellen
    Article->title ?>
    + Article->typ == 6 && $pos->Article->a6_org_article != 0) && $pos->layouter_mode == 2): + echo ''; + elseif(($pos->Article->typ == 6 && $pos->Article->a6_org_article != 0) && $pos->layouter_mode == 4): + echo ''; + elseif(($pos->Article->typ == 6 && $pos->Article->a6_org_article != 0) && $pos->layouter_mode == 11): + echo ''; + else: + echo $this->image()->thumbnailImage($pos->Article->title, 'articlelist', $pos->Article->file); + endif; + ?> +
    + shop->basketposfield1 ?>:
    + shop->basketposfield2 ?>:
    + translate('Preis Netto').' '.$this->currency->toCurrency($pos['priceallbrutto']-$pos['priceallsteuer']+0) ?>
    + translate('Preis Brutto').' '.$this->currency->toCurrency($pos['priceallbrutto']+0) ?>
    + layouter_mode != 2): ?>translate('Dateien:')?>
    + Upload as $upload): ?> + name; ?>
    + +

    + = 10 && $pos['status'] < 50) && ( $pos->Article->typ != 9 ) && $pos->layouter_mode != 3 && $pos->layouter_mode != 2): ?>translate('Hochladen'); ?> +

    +
    + Status: +
    + translate('Eigenschaften') ?>
    + Article->getOptArray($pos->data) as $key => $value): ?> +
    + +
    +
    + + paginationControl($this->paginator, 'Sliding', 'pagination.phtml'); ?> +
    + diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/user/myoverview.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/user/myoverview.phtml new file mode 100644 index 000000000..21e2885cf --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/user/myoverview.phtml @@ -0,0 +1,141 @@ +partial ( 'user_tabs.phtml', array ('shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath ) );?> + +
    +
    +
    +

    translate('Hallo')?> user->self_firstname ?> user->self_lastname ?>, translate('verwalten Sie hier Ihr Benutzerkonto')?>

    +
    +
    + + + designsettings()->get('myoverview_random_products')): ?> +
    +
    +
    +
    +
    translate('Meine Einstellungen')?>
    + translate("Los geht's")?> +
    +
    +
    +
    +
    +
    +
    translate('Meine Adressen')?>
    + translate("Los geht's")?> +
    +
    +
    +
    +
    +
    +
    translate('Meine Bestellungen')?>
    + translate("Los geht's")?> +
    +
    +
    +
    +
    Produktempfehlungen
    + article()->getRandomArticle(5); + ?> +
      + + partial('article/_articlelistitem.phtml', array('basepath' => $this->basepath, 'admin' => $this->admin, 'mode' => $this->mode, 'user' => $this->user, 'currency' => $this->currency, 'article' => $article, 'designPath' => $this->designPath, 'shop' => $this->shop)) ?> + +
    + + + shop->private): ?> +
    +
    +
    +
    +
    translate('Zu den Produkten')?>
    +

    translate('Hier gelangen Sie zu allen Produkten, die Sie bestellen können.')?>

    + translate("Los geht's")?> +
    +
    +
    +
    +
    +
    +
    translate('Meine Bestellungen')?>
    +

    translate('Hier erhalten Sie eine Übersicht über alle Ihre Bestellungen und des jeweiligen Auftragsstatus.')?>

    + translate("Los geht's")?> +
    +
    +
    + shop->template_display_user_approval): ?> +
    +
    +
    +
    translate('Meine Freigaben')?>
    +

    translate('Hier erhalten Sie eine übersicht über alle Bestellungen, für die Sie eine "Freigabe" erteilen oder die "Freigabe" ablehnen müssen.')?>

    + translate("Los geht's")?> +
    +
    +
    + +
    +
    +
    +
    translate('Meine Einstellungen')?>
    +

    translate('Hier können Sie Ihre Zugangs- und Benutzerdaten sowie Ihre Kontoeinstellungen bearbeiten.')?>

    + translate("Los geht's")?> +
    +
    +
    + +
    +
    +
    +
    translate('Persönliche Produkte')?>
    +

    translate('Hier gelangen Sie zu den "privatisierten" Produkten, für deren Bestellung Sie ein Sonderrecht haben.')?>

    + translate("Los geht's")?> +
    +
    +
    +
    + +
    +
    +
    +
    +
    translate('Zur Startseite')?>
    + translate("Los geht's")?> +
    +
    +
    +
    +
    +
    +
    translate('Meine Bestellungen')?>
    +

    translate('Hier erhalten Sie eine Übersicht über alle Ihre Bestellungen und des jeweiligen Auftragsstatus.')?>

    + translate("Los geht's")?> +
    +
    +
    +
    +
    +
    +
    translate('Meine Einstellungen')?>
    +

    translate('Hier können Sie Ihre Zugangs- und Benutzerdaten sowie Ihre Kontoeinstellungen bearbeiten.')?>

    + translate("Los geht's")?> +
    +
    +
    + +
    +
    +
    +
    translate('Persönliche Produkte')?>
    +

    translate('Hier gelangen Sie zu den "privatisierten" Produkten, für deren Bestellung Sie ein Sonderrecht haben.')?>

    + translate("Los geht's")?> +
    +
    +
    +
    + + +
    \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/user/mysettings.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/user/mysettings.phtml new file mode 100644 index 000000000..419e8f0ef --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/user/mysettings.phtml @@ -0,0 +1,12 @@ +partial ( 'user_tabs.phtml', array ('shop' => $this->shop, 'articlegroup' => $this->articlegroup, 'mode' => $this->mode, 'inworkCount' => $this->inworkCount, 'currency' => $this->currency, 'designPath' => $this->designPath ) );?> + +hasIdentity()==true): ?> +
    +
    +
    + form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); + echo $this->form; ?> +
    +
    +
    + diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/user/register.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/user/register.phtml new file mode 100644 index 000000000..4de9875c0 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/user/register.phtml @@ -0,0 +1,33 @@ +
    +
    +
    +
    +
    +

    Registrieren

    +

    Wir freuen uns, dass Sie Teil unserer
    kreativen Gemeinschaft werden möchten.
    Die Erstellung eines Kontos ist
    der erste Schritt zu einer einfacheren und
    personalisierten Bestellerfahrung.
    Nutzen Sie die Vorteile eines Accounts.

    + + form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); + // echo $this->form->render(); + $owd_FORM = $this->form->setAttrib('class', '')->render(); + + echo str_replace( + array('control-group','control-label','class="controls"', ' +
    +
    +
    +
    + + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/user/registeraccount.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/user/registeraccount.phtml new file mode 100644 index 000000000..34b48512d --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/user/registeraccount.phtml @@ -0,0 +1,19 @@ +
    + +

    translate('Register') ?>

    + +finish != true): ?> + +
    + translate('Please fill out the Form') ?> +
    + + form; ?> + + + +
    + translate('Thank you for register') ?> +
    + + \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/user/resetpassword.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/user/resetpassword.phtml new file mode 100644 index 000000000..e87c7286f --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/user/resetpassword.phtml @@ -0,0 +1,21 @@ +
    +
    +
    +
    +

    Passwort zurücksetzten

    +

    Geben Sie bitte die E-Mail-Adresse Ihres registrierten Accounts und das abgebildete Captcha ein.

    + + form, \EasyBib_Form_Decorator::BOOTSTRAP, 'submit'); + // echo $this->form->render(); + $owd_FORM = $this->form->setAttrib('class', 'niceform form-horizontal')->render(); + + echo str_replace( + array('control-group','control-label','class="controls"', ' +
    +
    +
    +
    diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/user/resetpassworddone.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/user/resetpassworddone.phtml new file mode 100644 index 000000000..b47ba264f --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/user/resetpassworddone.phtml @@ -0,0 +1,21 @@ +
    +
    +
    +

    translate('Passwort vergessen') ?>

    +
    +
    +

    + translate('Wir haben Ihnen eine Email an die Emailadresse Ihres Accounts gesendet. Folgen Sie bitte dem darin enthaltenen Link.')?> + +
    + translate('Daraufhin erhalten Sie eine Email mit Ihren neuen Zugangsdaten.')?> +

    + +
    + +

    + translate('Durch die Bestätigungsemail versichern wir uns, dass Sie auch wirklich ein neues Passwort angefordert haben und
    fremde Personen keinen Blick auf Ihre persönlichen Daten erhalten.')?> +

    +
    +
    +
    diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/user/resetpasswordfinish.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/user/resetpasswordfinish.phtml new file mode 100644 index 000000000..60ef3dce0 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/user/resetpasswordfinish.phtml @@ -0,0 +1,24 @@ +
    + +
    +
    + +

    translate('Ihr Passwort wurde erfolgreich zurückgesetzt') ?>

    + +
    + + +

    + translate('Sie erhalten jetzt eine zweite Email mit Ihren neuen Zugangsdaten.')?> +

    + +
    + + +

    + translate('Weiterhin viel Spaß bei')?> shop->name ?> +

    + + +
    +
    \ No newline at end of file diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/user/verify.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/user/verify.phtml new file mode 100644 index 000000000..b6a86fa49 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/user/verify.phtml @@ -0,0 +1,49 @@ + + +
    + +
    +
    +

    translate('Freischalten') ?>

    +hasIdentity()==false): ?> +
    translate('Please fill out the Form') ?>
    +form->render();?> +
    +
    + +
    translate('You are logged in') ?>
    +
    + + +
    diff --git a/src/old/application/design/vorlagen/redesign-2019_api/templates/user_tabs.phtml b/src/old/application/design/vorlagen/redesign-2019_api/templates/user_tabs.phtml new file mode 100644 index 000000000..bd6d51889 --- /dev/null +++ b/src/old/application/design/vorlagen/redesign-2019_api/templates/user_tabs.phtml @@ -0,0 +1,18 @@ +
    + +
    diff --git a/src/old/application/design/vorlagen/tailwindcss/articletemplates/scripts/100_basket_index.phtml b/src/old/application/design/vorlagen/tailwindcss/articletemplates/scripts/100_basket_index.phtml index de28fe9fe..0791756c3 100755 --- a/src/old/application/design/vorlagen/tailwindcss/articletemplates/scripts/100_basket_index.phtml +++ b/src/old/application/design/vorlagen/tailwindcss/articletemplates/scripts/100_basket_index.phtml @@ -43,13 +43,13 @@ $filesOptions = $this->article['basketarticle']->getFiles(); shop->basketposfield1 != ""): ?>shop->basketposfield1 ?>
    - showButton): ?>
    + showButton): ?>
    shop->basketposfield2 != ""): ?>shop->basketposfield2 ?>
    - showButton): ?>
    + showButton): ?>
    diff --git a/src/old/application/design/vorlagen/tailwindcss/articletemplates/scripts/6.phtml b/src/old/application/design/vorlagen/tailwindcss/articletemplates/scripts/6.phtml index 30b608ae3..629865f12 100755 --- a/src/old/application/design/vorlagen/tailwindcss/articletemplates/scripts/6.phtml +++ b/src/old/application/design/vorlagen/tailwindcss/articletemplates/scripts/6.phtml @@ -15,43 +15,41 @@ } echo '$("#upload_mode").val("' . TP_Basket::getBasket()->getTempProduct($this->article->uuid)->getUploadMode() . '");'; } - if($this->layouterSession) { - echo '$("#upload_mode").val("' . $this->layouterSession->layouter_modus . '");'; - } +if($this->layouterSession) { + echo '$("#upload_mode").val("' . $this->layouterSession->layouter_modus . '");'; +} - ?> +?> window.onload = function() { load || $this->rebuy) { - echo '$("#upload_mode").val("' . TP_Basket::getBasket()->getTempProduct($this->article->uuid)->getUploadMode() . '");'; - } - if($this->layouterSession) { - echo '$("#upload_mode").val("' . $this->layouterSession->layouter_modus . '");'; - } + if ($this->load || $this->rebuy) { + echo '$("#upload_mode").val("' . TP_Basket::getBasket()->getTempProduct($this->article->uuid)->getUploadMode() . '");'; + } +if($this->layouterSession) { + echo '$("#upload_mode").val("' . $this->layouterSession->layouter_modus . '");'; +} - ?> +?> $('#in_basket').removeClass('disabled'); } -
    -
    +
    +
    article->file != "" && $this->layouterPreviewId == "") : ?> - image()->thumbnailImage($this->article->title, 'productdetail', $this->article->file); ?> +
    -
    -

    article->title ?>

    -

    article->einleitung ?>

    +
    +
    article->title ?>
    +
    article->getInfo() ?>
    +
    -
    -
    -
    -
    -

    Summe

    - +
    +

    Summe

    +
    @@ -69,10 +67,9 @@
    translate('Preis (netto)') ?>:
    article->not_buy) : ?> - + - article->as_offer) : ?> -
    -
    -
    -
    article->getText() ?>
    + article->as_offer) : ?> + +
    +
    diff --git a/src/old/application/design/vorlagen/tailwindcss/articletemplates/scripts/6_basket_index.phtml b/src/old/application/design/vorlagen/tailwindcss/articletemplates/scripts/6_basket_index.phtml index 59936b595..32b089959 100755 --- a/src/old/application/design/vorlagen/tailwindcss/articletemplates/scripts/6_basket_index.phtml +++ b/src/old/application/design/vorlagen/tailwindcss/articletemplates/scripts/6_basket_index.phtml @@ -5,9 +5,9 @@ $filesOptions = $this->article['basketarticle']->getFiles(); ?>
    article['basketarticle']->getLayouterId() == "" || $this->article['basketarticle']->getLayouterId() == false)): ?> - image()->thumbnailImage($basketArticle['title'], 'articlelist', $basketArticle['file']); ?> + image()->thumbnailImage($basketArticle['title'], 'layouter', $basketArticle['file']); ?> article['basketarticle']->getLayouterId() == "" || $this->article['basketarticle']->getLayouterId() == false)): ?> - image()->thumbnailImage($basketArticle['title'], 'articlelist', $basketArticle['file']); ?> + image()->thumbnailImage($basketArticle['title'], 'layouter', $basketArticle['file']); ?> generatePreview($basketArticle['id'], $this->article['basketarticle']->getLayouterId()); ?> @@ -26,7 +26,7 @@ $filesOptions = $this->article['basketarticle']->getFiles(); article['options'])): ?> -
      +
        article['options'] as $key => $option): ?> article['basketarticle']->getFiles(); shop->basketposfield1 != ""): ?>shop->basketposfield1 ?>
        -
        - showButton): ?>
        +
        + showButton): ?>
        shop->basketposfield2 != ""): ?>shop->basketposfield2 ?>
        -
        - showButton): ?>
        +
        + showButton): ?>
        Gewicht: article['basketarticle']->getWeight() ?>
    - designsettings()->get('display_no_price')) { ?>currency->toCurrency($this->article['basketarticle']->getNetto() * $this->article['basketarticle']->getCount()) ?>
    currency->toCurrency($this->article['basketarticle']->getBrutto() * $this->article['basketarticle']->getCount()) ?> + designsettings()->get('display_no_price')) { ?>currency->toCurrency($this->article['basketarticle']->getNetto() * $this->article['basketarticle']->getCount()) ?>
    currency->toCurrency($this->article['basketarticle']->getBrutto() * $this->article['basketarticle']->getCount()) ?>
    translate('Löschen'); ?> article['basketarticle']->getLayouterId() != "" && !$this->article()->checkIfCollectionOrdersForTemplatePrint($this->article['basketarticle']->getLayouterId())): ?>
    translate('Bearbeiten') ?> diff --git a/src/old/application/design/vorlagen/tailwindcss/config/user/registercontact.ini b/src/old/application/design/vorlagen/tailwindcss/config/user/registercontact.ini index b8fb90b6f..300e605e0 100755 --- a/src/old/application/design/vorlagen/tailwindcss/config/user/registercontact.ini +++ b/src/old/application/design/vorlagen/tailwindcss/config/user/registercontact.ini @@ -93,7 +93,7 @@ user.rech.elements.self_phone.type = "text" user.rech.elements.self_phone.options.label = "Tel" user.rech.elements.cp.type = "captcha" -user.rech.elements.cp.options.label = "" +user.rech.elements.cp.options.label = "Bitte tragen Sie den 4-stelligen Code ein*" user.rech.elements.cp.options.captcha.captcha = "Image" ; firstname element diff --git a/src/old/application/design/vorlagen/tailwindcss/config/user/registerguest.ini b/src/old/application/design/vorlagen/tailwindcss/config/user/registerguest.ini index 0dddbe902..4be76230f 100755 --- a/src/old/application/design/vorlagen/tailwindcss/config/user/registerguest.ini +++ b/src/old/application/design/vorlagen/tailwindcss/config/user/registerguest.ini @@ -108,9 +108,13 @@ user.rech.elements.self_country.options.multiOptions.XX = "anderes Land" user.rech.elements.self_phone.type = "text" user.rech.elements.self_phone.options.label = "Tel" -;user.rech.elements.cp.type = "captcha" -;user.rech.elements.cp.options.label = "Hier Captcha Code eintragen*" -;user.rech.elements.cp.options.captcha.captcha = "Image" +; ustid element +user.rech.elements.ustid.type = "text" +user.rech.elements.ustid.options.label = "UStID" + +user.rech.elements.cp.type = "captcha" +user.rech.elements.cp.options.label = "Bitte tragen Sie den 4-stelligen Code ein*" +user.rech.elements.cp.options.captcha.captcha = "Image" ; firstname element user.liefer.legend = "Lieferanschrift" @@ -151,10 +155,6 @@ user.liefer.elements.city.options.required = true user.liefer.elements.phone.type = "text" user.liefer.elements.phone.options.label = "Tel" -; ustid element -user.rech.elements.ustid.type = "text" -user.rech.elements.ustid.options.label = "UStID" - ; submit element user.submit.elements.submit.type = "submit" user.submit.elements.submit.options.name = "submit" diff --git a/src/old/application/design/vorlagen/tailwindcss/layout/_hauptmenu.phtml b/src/old/application/design/vorlagen/tailwindcss/layout/_hauptmenu.phtml index 336fcfce9..a455db7c6 100755 --- a/src/old/application/design/vorlagen/tailwindcss/layout/_hauptmenu.phtml +++ b/src/old/application/design/vorlagen/tailwindcss/layout/_hauptmenu.phtml @@ -1,45 +1,97 @@ - +
    - image()->thumbnailImage($this->shop->name, 'logo1', $this->shop->logo1); ?> + + -
    -
    + + PriorityMessenger(); if(count($PriorityMessenger)): ?>
    @@ -143,10 +113,9 @@ layout()->CONTENT; ?>
    -
    +
    - + headScript(); ?> headLink(); ?> diff --git a/src/old/application/design/vorlagen/tailwindcss/templates/article/inwork.phtml b/src/old/application/design/vorlagen/tailwindcss/templates/article/inwork.phtml index 932cdb70b..ca38f2022 100755 --- a/src/old/application/design/vorlagen/tailwindcss/templates/article/inwork.phtml +++ b/src/old/application/design/vorlagen/tailwindcss/templates/article/inwork.phtml @@ -1,11 +1,11 @@ -
    +
    myarticles) > 0): ?> -

    inworkCount; ?> translate('Produkte in Bearbeitung', 'text') ?>

    +

    inworkCount; ?> translate('Produkte in Bearbeitung', 'text') ?>

    translate('Alle löschen')?> @@ -30,8 +30,8 @@ translate('Alle löschen')?> -
    -

    translate('Keine Produkte in der Bearbeitungsliste vorhanden')?>

    +
    +

    translate('Keine Produkte in der Bearbeitungsliste vorhanden')?>

    diff --git a/src/old/application/design/vorlagen/tailwindcss/templates/article/show.phtml b/src/old/application/design/vorlagen/tailwindcss/templates/article/show.phtml index a2bf2f6a3..f9aa835a9 100755 --- a/src/old/application/design/vorlagen/tailwindcss/templates/article/show.phtml +++ b/src/old/application/design/vorlagen/tailwindcss/templates/article/show.phtml @@ -1,4 +1,5 @@ -
    +
    +
    1. @@ -8,9 +9,9 @@ Home
    2. - article->ArticleGroup) >0): ?> - article->ArticleGroup[0]->ArticleGroup): ?> -
      + article->ArticleGroup) > 0): ?> + article->ArticleGroup[0]->ArticleGroup && $this->article->ArticleGroup[0]->ArticleGroup->id != ""): ?> +
    3. @@ -33,23 +34,14 @@ article->title ?>
    4. -
      -
    + articleTemplate; ?> -
    -
    -

    Nicht das passende gefunden?

    -

    Wir stehen Ihnen von 8.00 bis 17.00 Uhr für Fragen jeder Art zur Verfügung.

    - Rufen Sie uns an! -
    -
    - article->getRelated(); -if (!empty($relatedbuys)): - ?> + if (!empty($relatedbuys)): + ?>

    translate('Wir empfehlen auch', 'text', 'releated_article_h1') ?>

    @@ -63,4 +55,5 @@ if (!empty($relatedbuys)):
    - \ No newline at end of file + +
    diff --git a/src/old/application/design/vorlagen/tailwindcss/templates/basket/done.phtml b/src/old/application/design/vorlagen/tailwindcss/templates/basket/done.phtml index da2f5d4a8..60e9d5fb9 100755 --- a/src/old/application/design/vorlagen/tailwindcss/templates/basket/done.phtml +++ b/src/old/application/design/vorlagen/tailwindcss/templates/basket/done.phtml @@ -2,8 +2,8 @@

    translate('Vielen Dank für Ihre Bestellung') ?>

    translate('Sie erhalten in Kürze eine Bestätigungsmail Ihrer Bestellung.')?>

    diff --git a/src/old/application/design/vorlagen/tailwindcss/templates/basket/finish.phtml b/src/old/application/design/vorlagen/tailwindcss/templates/basket/finish.phtml index ed2d868c7..f8d70156b 100755 --- a/src/old/application/design/vorlagen/tailwindcss/templates/basket/finish.phtml +++ b/src/old/application/design/vorlagen/tailwindcss/templates/basket/finish.phtml @@ -1,5 +1,5 @@
    -
    +
    basketIsEmpty) : ?> @@ -10,20 +10,20 @@

    translate('Vielleicht möchten Sie einfach auf der Startseite beginnen?')?>


    - translate('Zur Startseite') ?> + translate('Zur Startseite') ?>
    -
    -