InternInhaltsverzeichnisGlossarBausteineLinklisteTutorialsKommentare

Thema: Schlagwörter-Box Artikel anzeigen

Tommy ✶✶✶✶✶ schrieb am Mittwoch, den 15 August 2018 #1
Hallo Werner,

vielen Dank für dieses tolle Skript. Ich habe es beispielhaft in die Software "Mobirise" eingebaut 🙂

mobirise-tutorials.com/L[…]Tutorials/
Rainer ✶✶✶✶✶ schrieb am Donnerstag, den 23 August 2018 #2
Hallo Werner,
Ich habe die Schlagwörter-Box erfolgreich eingebaut, funzt prima. Wie lässt sich das so erweitern, dass die URL per Zufall aus einem array generiert wird?
Ich habe damit gebastelt, es aber nicht hingekriegt. Ansonsten ein tolles Script - vielen Dank für deine großartige Arbeit - Chapeau!
Werner schrieb am Donnerstag, den 23 August 2018 #3
Hallo Rainer,
komische Frage, weil die Funktion genau das macht😀
Die Elemente eines Arrays werden mit shuffle() gemischt (siehe Script oben) und dann wird der erste Wert des Arrays ausgegeben:

1
2
3
4
5
<?php
$cd 
$array = ["url1""url2""url3", ];
shuffle($cd);
echo 
$cd[0];
?>
Rainer ✶✶✶✶✶ schrieb am Freitag, den 24 August 2018 #4
Hallo Werner,
Danke für deine schnelle Antwortund den Lösungsvorschlag, ich habe mich wohl missverständlich ausgedrückt.
Bisher enthält z.B. $cd[0] eine einzige URL.
Ich möchte aber in dieser Variablen mehrere zufällige generierte Urls anbieten. Es soll eben nicht immer der gleichen Link zum Schlagwort erscheinen.
Die Box ist hier eingebunden: ewnor.de
Werner schrieb am Freitag, den 24 August 2018 #5
Ich habe leider keinen Lösungsvorschlag für dein Problem!

$cd[0]['tag'] = 'Schlagwort 1';
$cd[0]['url'] = 'seite1.php';

$cd[1]['tag'] = 'Schlagwort 1';
$cd[1]['url'] = 'seite2.php';

Hier wird das Schlagwort mehrfach angezeigt, was wahrscheinlich auch nicht die Lösung ist ...
Rainer ✶✶✶✶✶ schrieb am Samstag, den 25 August 2018 #6
Hallo Werner
Danke dafür, ich habe jetzt eine Lösung gefunden, die funzt einwandfrei 😀:

$cd[0]['tag'] = 'Schlagwort';

// vorher: $cd[0]['url'] = 'Pfad zur Datei';

// neu:
$id = ['Pfad zur Datei-1','Pfad zur Datei-2','Pfad zur Datei-3'];
mt_srand ((double)microtime()*1000000);
$zahl = mt_rand(0,2);
$cd[0]['url'] = $id[$zahl];

ergänzt habe ich noch:

$cssStyle = array(...
...
'background: #ff6; opacity:0.7',
'background: #a0ffff; opacity:0.7',
'background: #f99; opacity:0.8',
'background: #004699; opacity:0.8',);

Wahrscheinlich geht das auch einfacher, mit "shuffle" habe ich es aber nicht hingekriegt, als Wert wurde dann "Array" ausgegeben.

Die SchlagwörterBox ist hier: ewnor.de
Werner schrieb am Sonntag, den 26 August 2018 #7
Das gefällt mir :up:
besonders der Teil mit: 'background: #f99; opacity:0.8'

Zitat:
Wahrscheinlich geht das auch einfacher, mit "shuffle" habe ich es aber nicht hingekriegt, als Wert wurde dann "Array" ausgegeben.

Wenn da "Array" ausgegeben wird, dann enthält die Variable auch ein Array.
Teste dies mit: print_r($variable);
Durch ein Array kannst du mit der PHP-Funktion: foreach() iterieren.
Rainer schrieb am Mittwoch, den 3 Oktober 2018 #8
Hallo Werner,
Noch einen Nachtrag zum Thema Schlagwörterbox. Ich habe ein wenig weitergebastelt, um Schlagwörter mit unterschiedlichen URLs anzubieten. Herausgekommen ist dieser Quelltext:

1
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
<?php 
/*
 * Schlagwörter-Box - schlagwoerter_box.php (utf-8)
 * &raquo; <a href="https://werner-zenk.de" title="https://werner-zenk.de"> https://werner-zenk.de</a> - 24.08.2018
 * »<a href="https://ewnor.de" rel="nofollow" target="_blank" title="https://ewnor.de"> ewnor.de</a> - erweitert H.Kennhöfer 3.10.2018
 */

$cssSize = [
 
'font-size:37px',
 
'font-size:34px',
 
'font-size:31px',
 
'font-size:28px',
 
'font-size:25px',
 
'font-size:22px',
 
'font-size:19px',
 
'font-size:16px',
 
'font-size:13px',
 
'font-size:10px',
];

$cssStyle = [
 
'font-family:Arial',
 
'font-family:cursive',
 
'font-family:monospace',
 
'font-stretch:ultra-condensed',
 
'font-stretch:ultra-expanded',
 
'font-style:oblique',
 
'font-variant:small-caps',
 
'font-weight:bold',
 
'letter-spacing:1px',
 
'letter-spacing:2px',
 
'letter-spacing:3px',
 
'vertical-align:middle',
 
'vertical-align:super',
 
'vertical-align:bottom',
 
'vertical-align:sub',
 
'vertical-align:top',
 
'background: #ff6; opacity:0.6',
 
'background: #a0ffff; opacity:0.6',
 
'background: #f99; opacity:0.6',
 
'background: #004699; opacity:0.6',
 
'background: #d6f0cf; opacity:0.6',
 
'background: #e8b4e7; opacity:0.6',
];

$cd[0]['tag'] = 'Schlagwort-1'// Schlagwort
$url0 = ['url-1','url-2','url-3'];
shuffle($url0);
foreach (
$url0 as $cd[0]['url']);

$cd[1]['tag'] = 'Schlagwort-2';
$url1 = ['url-1','url-2','url-3'];
shuffle($url1);
foreach (
$url1 as $cd[1]['url']);

$cd[2]['tag'] = 'Schlagwort-3';
$url2 = ['url-1','url-2','url-3'];
shuffle($url2);
foreach (
$url2 as $cd[2]['url']);

$cd[3]['tag'] = 'Schlagwort-4';
$cd[3]['url'] = 'url';

$cd[4]['tag'] = 'Schlagwort-5';
$url3 = ['url-1','url-2','url-3'];
shuffle($url3);
foreach (
$url3 as $cd[4]['url']);

shuffle($cd);

// Begrenzung auf 20 Einträge
$cd array_slice($cd20);

echo
'<div id="cloudBox">' cloudBox($cd$cssSize$cssStyle) . '</div>';

function 
cloudBox($cd$cssSize$cssStyle) {
 
$cloudTags '';
 foreach (
$cd as $value) {
  
shuffle($cssSize);
  
shuffle($cssStyle);
  
$style $cssSize[0] . ';' $cssStyle[0];
  
$cloudTags .= ' <a href="' $value['url'] . '"' ' style="' $style '">' $value['tag'] . '</a> ';
 }
 return 
$cloudTags;
}
?>
Werner schrieb am Freitag, den 5 Oktober 2018 #9
Vielen Dank Rainer für die tolle Anpassung :up:
Entschuldige Bitte, das im Script die URLs automatisch umgewandelt werden!
Hans ✶✶✶✶ schrieb am Sonntag, den 10 Mai 2020 #10
Wie bekomme ich diese schräge Box hin?