Bitte geben Sie einen Grund für die Verwarnung an
Der Grund erscheint unter dem Beitrag.Bei einer weiteren Verwarnung wird das Mitglied automatisch gesperrt.
Virtueller Friedhof
#16 RE: Virtueller Friedhof
#17 RE: Virtueller Friedhof
#18 RE: Virtueller Friedhof
#19 RE: Virtueller Friedhof
habe jetzt kein passendes Bild zur Hand.
Nehmen wir dieses Motiv (ca 1300*600)
ab Punkt (x/y 700/150) wäre Platz für Beschriftung
css
2
3
4
5
6
7
div.hg2 {
padding-left:700px ;
padding-top:150px;
background: white no-repeat url(//files.homepagemodules.de/b214495/f11769157t547427p7346819n3_gFblTopD.png);
color:brown;
}
und Forencode
bbc | [gedenkB] | [/gedenkB] |
---|---|---|
HTML | <div class="hg2"> | </div> |
bleibt noch die Frage, wo das Bild hochladen? Finde jetzt nicht die Seite in der (neuen) Admin,
diese Adresse musst du anpassen: meinforum.xobor.de/admin/fileupload.php
#20 RE: Virtueller Friedhof
div.hg2 {
padding-left:500px ;
padding-top:500px;
background: white no-repeat url(//files.homepagemodules.de/b916951/a_9_32eba669.png);
color:brown;
}
hab ich gemacht, allerdings folgende Fehlermeldung:
Fehlermeldung: parse error: failed at `background: white no-repeat url(//files.homepagemodules.de/b916951/a_9_32eba669.png); ` (stdin) on line
3935
#21 RE: Virtueller Friedhof
wie immer habe ich die Gänsefüßchen oder Apostroph vergessen
background: white no-repeat url(//files.homepagemodules.de/b916951/a_9_32eba669.png);
2
background: white no-repeat url("//files.homepagemodules.de/b916951/a_9_32eba669.png");
#22 RE: Virtueller Friedhof
Ich habe hier mal ein Script geschrieben, dieses funktioniert nur auf meiner Homepage.
Für die Forensoftware muss sie noch angepasst werden, da ich mich mit der v6 null auskenne und die Codes da anders sind, fällt das Anpassen für mich sehr schwer.
So für das Business tempelte 4 muss es noch angepasst werden, wie ich schon weis sind es die Classes die das Forum so verzerren.
Es ist ein Script, der alles auf dem Grabstein meißelt, und wenn man fertig ist, kann man es downloaden.
Habe es in meinem Forum getestet, das funktioniert so weit, nur liegt es an den Classes, da es das Forum stark beeinflusst, und verändert.
Jetzt hier mal eine lieb gemeinte und nette Frage an die lieben und netten Kollegen, die hier gerne ihre Zeit und Geduld investieren und immer Hilf bereit sind. Ob sie so nett wären und sich mal den Code anschauen würden, und so lieb und hilfsbereit wären und helfen würden, für alle tempelte anpassen würden.
Hier mal mein Code:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
<style>
html, body {
width: 100%;
height: 100%;
}
body {
background: #f0f0f0;
}
div {
position: relative;
width: 95%;
max-width: 600px;
margin: 1rem auto;
}
div::after {
content: "";
padding-bottom: 69%;
display: block;
}
div canvas {
position: absolute;
top: 50%;
left: 50%;
height: auto;
width: 100%;
transform: translate(-50%, -50%);
}
div canvas#render {
display: none;
}
section {
width: 95%;
margin: 1rem auto;
max-width: 400px;
}
section a,
section input {
display: block;
width: 100%;
box-sizing: border-box;
font-size: 0.8rem;
}
section a {
padding: 0.6em 0.5em 0.5em;
border: none;
background: #121212;
color: white;
cursor: pointer;
text-align: center;
text-decoration: none;
text-transform: uppercase;
letter-spacing: 0.025em;
}
section a:hover {
opacity: 0.9;
}
section input {
padding: 0.25em 0.5em;
font-family: Times, sans-serif;
letter-spacing: 0.025em;
text-transform: uppercase;
border: 1px solid #e9e9e9;
text-align: center;
}
section input::-moz-placeholder {
color: #ccc;
}
section input:-ms-input-placeholder {
color: #ccc;
}
section input::placeholder {
color: #ccc;
}
section input + * {
margin-top: 0.5rem;
}
</style>
<div>
<canvas id="background"></canvas>
<canvas id="text"></canvas>
<canvas id="render"></canvas>
</div>
<section>
<input id="name" type="text" placeholder="Geliebte/ Geliebter/ Haustier" maxlength="24" />
<input id="line1" type="text" placeholder="Line 1" maxlength="40" />
<input id="line2" type="text" placeholder="Line 2" maxlength="40" />
<input id="line3" type="text" placeholder="Line 3" maxlength="40" />
<input id="year" type="text" placeholder="Januar 1, 1980 - December 31, 2020" maxlength="40" />
<a id="load" href="#">Download</a>
</section>
<script>
console.clear();
class GrabsteinGenerator {
constructor() {
this.initializeGlobals();
this.initializeDOM();
this.initialize();
}
initializeGlobals() {
let ogw = 833;
let ogh = 576;
let ar = ogh / ogw;
this.w = 600;
this.h = this.w * ar;
}
initializeDOM() {
this.$cvsBackground = document.querySelector('#background');
this.$ctxBackground = this.$cvsBackground.getContext('2d');
this.$cvsText = document.querySelector('#text');
this.$ctxText = this.$cvsText.getContext('2d');
this.$cvsRender = document.querySelector('#render');
this.$ctxRender = this.$cvsRender.getContext('2d');
this.$name = document.querySelector('#name');
this.$name.addEventListener('input', () => {this.onChange();});
this.$line1 = document.querySelector('#line1');
this.$line1.addEventListener('input', () => {this.onChange();});
this.$line2 = document.querySelector('#line2');
this.$line2.addEventListener('input', () => {this.onChange();});
this.$line3 = document.querySelector('#line3');
this.$line3.addEventListener('input', () => {this.onChange();});
this.$year = document.querySelector('#year');
this.$year.addEventListener('input', () => {this.onChange();});
this.$load = document.querySelector('#load');
this.$load.addEventListener('click', () => {this.onRender();});
this.$cvsBackground.height = this.h;
this.$cvsBackground.width = this.w;
this.$cvsText.height = this.h;
this.$cvsText.width = this.w;
this.$cvsRender.height = this.h;
this.$cvsRender.width = this.w;
}
initialize() {
let url = '//files.homepagemodules.de/b906480/a_309_74461be2.jpeg';
this.$img = new Image();
this.$img.src = url;
this.$img.addEventListener('load', () => {
this.onLoad();
});
}
onLoad() {
this.$ctxBackground.drawImage(this.$img, 0, 0, this.w, this.h);
}
onChange() {
this.drawText([
this.$name.value,
this.$line1.value,
this.$line2.value,
this.$line3.value,
this.$year.value]);
}
onRender() {
this.$ctxRender.drawImage(this.$cvsBackground, 0, 0);
this.$ctxRender.drawImage(this.$cvsText, 0, 0);
this.$load.href = this.$cvsRender.toDataURL();
this.$load.download = 'Grabstein.png';
}
drawText(text) {
this.$ctxText.shadowColor = 'rgba(255, 255, 255, 0.4)';
this.$ctxText.shadowOffsetX = 1;
this.$ctxText.shadowOffsetY = 1;
this.$ctxText.shadowBlur = 0.5;
this.$ctxText.clearRect(0, 0, this.w, this.h);
let sizes = [24, 15, 15, 15, 12];
let top = this.h * 0.35;
text.forEach((line, i) => {
line = line.toUpperCase();
let fontSize = sizes[i];
this.$ctxText.fillStyle = 'rgba(0, 0, 0, 0.55)';
this.$ctxText.font = `${fontSize}px Times`;
this.$ctxText.textAlign = 'center';
this.$ctxText.textBaseline = 'top';
this.$ctxText.fillText(line, this.w / 2, top);
top += fontSize * 1.3;
if (i === text.length - 2) top += 10;
});
}}
let tg = new GrabsteinGenerator();
</script>
Ich habe lange daran gesessen und geschrieben und bin froh, dass das so weit funktioniert, nur habe ich Probleme sie an das Forum anzupassen zwecks Classes. Und für das V6 bin ich machtlos da es andere Codes sind wie in Business Tempelte 4
Um zu zeigen, dass mein Script funktioniert hier der Link:
Grabstein meißeln!
Ich hoffe, ich habe es nett und verständlich erklärt und liebevoll ausgedrückt, Ich bedanke mich im Voraus für die Hilfe.
Nette Grüße
Enricos
#24 RE: Virtueller Friedhof
Hallo @Enricos,
ich habe es ausprobiert, klasse !!
Kann zwar nicht helfen, aber ich drücke alle verfügbaren Daumen, dass unsere emsigen Experten eine Lösung finden.
es grüßt Franz-Jupp
https://www.zur-blende.de/ = Board-Nr, 854674
nutzt Template V3
#25 RE: Virtueller Friedhof
monellos Grabstein muß leider noch etwas warten, weil dein Script @Enricos viel spannender ist.
die Grafik ist wirklich überzeugend ...
Zitat von Enricos im Beitrag #23
Es ist ein Script, der alles auf dem Grabstein meißelt, und wenn man fertig ist, kann man es downloaden.
... denke, dass funkioniert nur, wenn du Schreibrechte auf dem Server hast.
Loggst du dich bei https://codepen.io/ aus, wird dir wie uns kein Download gelingen.
habe deinen Code für eine eigene Seite angepasst https://test-v6.xobor.de/page-enricos.html
Trotz des Download-Dilemmas ist deine Arbeit nicht umsonst!
Wenn man auch keine Grafik auf xobor speichern kann, so läßt sich das neue Bild doch dynamisch im Beitrag/Thread erzeugen.
Mit einem Forencode, der die Bildinformationen und die Texteingaben enthält, stelle ich mir das gar nicht schwierig vor.
Danke erstmal für die tolle Idee und die überzeugende Umsetzung.
Ein neuer Grundstein ist gelegt ...
... würde es „Fussball spielen” heissen
vG Bernd
Ups habe den Fehler gefunden, ich habe vergessen das Bild zu codieren.
l2otbart_57 vielen lieben dank, für die schnelle Hilfe, kam gerade von der Arbeit zurück und schaute schnell nach, habe dein Code benutzt und das Bild vom Server genommen und nochmal codiert, jetzt geht der Download. Wer gerne testen möchte, kann das gerne nochmal tun.
Ich muss gleich wieder los auf mein Nebenjob arbeiten als Hausmeister, werde mich später nochmal melden.
Ich bedanke mich recht herzlich an alle helfenden Kollegen, vielen lieben Dank.
Der codierte Code kann ich hier nicht posten. Er ist zu lang, das Forum meckert zu viele Zeichen
Ich hoffe das es jetzt mit dem Download funktioniert, in CodePen habe ich es auch geändert und im Forum funktioniert es auch.
Hier in mein Forum:
Grabstein meißeln!
Nette Grüße
Enricos
P.S. Vielen vielen Dank für die schnelle hilfe und unterstützung
#27 RE: Virtueller Friedhof
Danke @Enricos der Test funktionierte
es grüßt Franz-Jupp
https://www.zur-blende.de/ = Board-Nr, 854674
nutzt Template V3
#28 RE: Virtueller Friedhof
Zitat von monello-tierurnen im Beitrag #22
line 1
line 2
line 3
so überzeugend
finde ich das CSS noch nicht.
auf schmalen Displays treffen die Zeilen
nicht den vorgesehenen Ort.
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
div.hg3 {
display:inline-block;
width:400px;
max-width:100%;
height:400px;
font-size:1.0em;
float:left;
}
div.var3 {
background: url("//files.homepagemodules.de/b916951/a_9_32eba669.png" );
background-size: cover;
padding-left:33%;
padding-right:33%;
padding-top:42%;
display:inline-block;
width:100%;
height:100%;
text-align:center;
color:black;
}
bbc | [gedenkC] | [/gedenkC] |
---|---|---|
HTML | <div class="hg3"><div class="var3"> | </div></div> |
Hallo, l2otbart_57
Habe mich nochmal ein bisschen damit befasst. Man kann also eigentlich jedes Bild dafür nehmen, nur muss das codiert werden.
Also mit Dateianweisung laden, das Bild ist dann vom PC, wird aber in eine Vielzahl von Nummern und Zahlen codiert, kann man im eigenen Forum eintragen, die Adresse.
Bild blank sieht so aus:
sieht zum Beispiel so aus:
'data:image/png;base64,iVBORw0KGgoAAA
Ich kann hier leider nicht den vollständigen Code angeben, da die Zahlenzeilen sehr begrenzt sind für Texteingabe und nicht angezeigt werden kann.
Ich habe mal von dem Bild die Zeilen und Überschrift entfernt.
ausgefüllt sieht zum Beispiel so aus:
Habe es mal in meinem Script eingebaut, wie gesagt man kann dafür jedes Bild verwenden muss bei manchen Sachen in der CSS Anpassungen machen je nach Bild.
Wie gesagt, mit Codierung kann man auch Downloaden.
Hier nochmal der Code:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
<style>
/* ---------- Version: 12.01.2024
html, body {
width: 100%;
height: 100%;
}
body {
background: #f0f0f0;
}
----------- */
div.daishi {
position: relative;
width: 95%;
max-width: 600px;
margin: 1rem auto;
}
div.daishi::after {
content: "";
padding-bottom: 69%;
display: block;
}
div.daishi canvas {
position: absolute;
top: 50%;
left: 50%;
height: auto;
width: 100%;
transform: translate(-50%, -50%);
}
div.daishi canvas#render {
display: none;
}
section.daishi {
width: 95%;
margin: 1rem auto;
max-width: 400px;
}
section.daishi a,
section.daishi input {
display: block;
width: 100%;
box-sizing: border-box;
font-size: 0.8rem;
}
section.daishi a {
padding: 0.6em 0.5em 0.5em;
border: none;
background: #121212;
color: white;
cursor: pointer;
text-align: center;
text-decoration: none;
text-transform: uppercase;
letter-spacing: 0.025em;
}
section.daishi a:hover {
opacity: 0.9;
}
section.daishi input {
padding: 0.25em 0.5em;
font-family: Times, sans-serif;
letter-spacing: 0.025em;
text-transform: uppercase;
border: 1px solid #e9e9e9;
text-align: center;
max-width:20em;
margin:auto;
}
section.daishi input::-moz-placeholder {
color: #ccc;
}
section.daishi input:-ms-input-placeholder {
color: #ccc;
}
section.daishi input::placeholder {
color: #ccc;
}
section.daishi input + * {
margin-top: 0.5rem;
}
</style>
<div class="daishi">
<canvas id="background" height="414" width="600"></canvas>
<canvas id="text" height="414" width="600"></canvas>
<canvas id="render" height="414" width="600"></canvas>
</div>
<section class="daishi">
<input id="name" type="text" placeholder="Geliebte/ Geliebter/ Haustier" maxlength="28">
<input id="line1" type="text" placeholder="Line 1" maxlength="40">
<input id="line2" type="text" placeholder="Line 2" maxlength="40">
<input id="line3" type="text" placeholder="Line 3" maxlength="40">
<input id="year" type="text" placeholder="Januar 1, 1980 - December 31, 2020" maxlength="40">
<a id="load" href="#">Download</a>
</section>
<script>
console.clear();
class GrabsteinGenerator {
constructor() {
this.initializeGlobals();
this.initializeDOM();
this.initialize();
}
initializeGlobals() {
let ogw = 833;
let ogh = 576;
let ar = ogh / ogw;
this.w = 600;
this.h = this.w * ar;
}
initializeDOM() {
this.$cvsBackground = document.querySelector('#background');
this.$ctxBackground = this.$cvsBackground.getContext('2d');
this.$cvsText = document.querySelector('#text');
this.$ctxText = this.$cvsText.getContext('2d');
this.$cvsRender = document.querySelector('#render');
this.$ctxRender = this.$cvsRender.getContext('2d');
this.$name = document.querySelector('#name');
this.$name.addEventListener('input', () => {this.onChange();});
this.$line1 = document.querySelector('#line1');
this.$line1.addEventListener('input', () => {this.onChange();});
this.$line2 = document.querySelector('#line2');
this.$line2.addEventListener('input', () => {this.onChange();});
this.$line3 = document.querySelector('#line3');
this.$line3.addEventListener('input', () => {this.onChange();});
this.$year = document.querySelector('#year');
this.$year.addEventListener('input', () => {this.onChange();});
this.$load = document.querySelector('#load');
this.$load.addEventListener('click', () => {this.onRender();});
this.$cvsBackground.height = this.h;
this.$cvsBackground.width = this.w;
this.$cvsText.height = this.h;
this.$cvsText.width = this.w;
this.$cvsRender.height = this.h;
this.$cvsRender.width = this.w;
}
initialize() {
let url = 'Hier data:image/png;base64, Eingeben';
this.$img = new Image();
this.$img.src = url;
this.$img.addEventListener('load', () => {
this.onLoad();
});
}
onLoad() {
this.$ctxBackground.drawImage(this.$img, 0, 0, this.w, this.h);
}
onChange() {
this.drawText([
this.$name.value,
this.$line1.value,
this.$line2.value,
this.$line3.value,
this.$year.value,
]);
}
onRender() {
this.$ctxRender.drawImage(this.$cvsBackground, 0, 0);
this.$ctxRender.drawImage(this.$cvsText, 0, 0);
this.$load.href = this.$cvsRender.toDataURL();
this.$load.download = 'Grabstein.png';
}
drawText(text) {
this.$ctxText.shadowColor = 'rgba(255, 255, 255, 0.4)';
this.$ctxText.shadowOffsetX = 1;
this.$ctxText.shadowOffsetY = 1;
this.$ctxText.shadowBlur = 0.5;
this.$ctxText.clearRect(0, 0, this.w, this.h);
let sizes = [24, 15, 15, 15, 12];
let top = this.h * 0.35;
text.forEach((line, i) => {
line = line.toUpperCase();
let fontSize = sizes[i];
this.$ctxText.fillStyle = 'rgba(0, 0, 0, 0.55)';
this.$ctxText.font = `${fontSize}px Times`;
this.$ctxText.textAlign = 'center';
this.$ctxText.textBaseline = 'top';
this.$ctxText.fillText(line, this.w / 2, top);
top += fontSize * 1.3;
if (i === text.length - 2) top += 10;
});
}}
let tg = new GrabsteinGenerator();
</script>
In Zeile 151 die Adresse von Dateianweisung laden eintragen.
Ich hoffe, ich konnte es gut und verständlich erklären.
Bei meinem guten freund auch installiert, hier kann man testen.
Test Grabstein meißeln mit download!
- Informationen
- Aktuelle News
- Forum Tutorials - Tipps und Anleitungen
- SEO / Werbung fürs Forum
- Verwaltung
- Extras
- Design
- Plugin(system)
- Eure Fragen zu Tutorials
- Forum Support
- Fragen und Antworten
- Pluginsystem
- Plugins
- Templates & Sprachen
- Bugreport
- Verbesserungsvorschläge
- Sponsoren gesucht
- Das neue Xobor Business-Template
- News und Updates
- Bugreport
- Allgemeines Feedback
- Verbesserungsvorschläge
- Sonstiges
- Kaffeeklatsch
- Lob & Kritik
- Verbesserungsvorschläge
- Allgemeine Fragen
- Fehlermeldungen
- Verbesserungsvorschläge Responsive Design
- Bugreport Responsive Design
- Archiv - Alter Betatest
- Responsive Design - Verbesserungsvorschläge
- Responsive Design - Bugreport
- Fragen zum neuen Template
- Neue Administration Beta Test
- Bugreport Neue Administration
- Allgemeines Fragen & Feedback
- Verbesserungsvorschläge zur neuen Administration
- Shoutbox
Ähnliche Themen
Jetzt anmelden!
Jetzt registrieren!
© 2017 Xobor | Forum-Software