Home
Download
Add-ons
Help
Forum
Organisation
Project
Welcome,
Guest
. Please
login
or
register
.
Did you miss your
activation email?
May 25, 2012, 08:11:39 PM
1 Hour
1 Day
1 Week
1 Month
Forever
Login with username, password and session length
Search:
Advanced search
Interested in joining the WebsiteBaker team?
For more Information read
here
or on our
new website
.
155528
Posts in
21713
Topics by
7737
Members
Latest Member:
chris85
WebsiteBaker Community Forum
Deutsch (German)
Hilfe/Support
(Moderator:
badknight
)
Sections zufällig auswählen
Pages: [
1
]
2
Go Down
Author
Topic: Sections zufällig auswählen (Read 4016 times)
Ralf (Berlin)
Offline
Posts: 1314
Sections zufällig auswählen
«
on:
July 24, 2009, 08:22:47 AM »
Stefek schrieb am 23.07.09 auf
phpManufaktur
zu dem Thema "Zufälliger Inhalt":
Quote
Hallo Ralf, könntest Du bitte eine etwas variierte Methode zeigen, die aus einer Reihe vorgegebener Section IDs immer einer random ausgibt? Also stattper dieser Trennung innerhalb der Textdatei... etwa so gebe ich sie vor: meine Sections { 12, 13, 14, 15, 16} und dann gibt er jeweils eine per random aus. Das wäre toll. Noch besser, wenn man nur die PageID angeben müsste und er sich dann die Wysiwyg Sections automatisch rauspickt. Grüße aus Bremen, Stefek
Da ich der Meinung bin, dass die Antwort besser ins Forum passt antworte ich hier:
Das ist keine Aufgabenstellung für das Random Script, die Lösung die ich vorschlage verwendet eine Datenbankabfrage:
Code:
$pageID = 1; // gewuenschte PageID
$database = new database();
$query = "SELECT section_id FROM ".TABLE_PREFIX."sections WHERE page_id='$pageID' AND module='wysiwyg' ORDER BY RAND() LIMIT 1";
$results = $database->query($query);
if($database->is_error()) {
// Fehler bei der Abfrage
echo $database->get_error();
}
else {
// Ergebnis ausgeben
$section = $results->fetchRow();
echo $section[0];
}
$pageID ist die gewünschte PageID. Die Abfrage gibt eine zufällig ausgewählte Section vom Typ WYSIWYG zu der gewünschten PageID zurück, existiert keine Section wird nichts zurückgegeben.
Gruß
Ralf
«
Last Edit: July 24, 2009, 08:26:09 AM by Ralf (Berlin)
»
Logged
Stefek
WebsiteBaker Org e.V.
Offline
Posts: 4884
Re: Sections zufällig auswählen
«
Reply #1 on:
July 24, 2009, 11:02:31 AM »
Hallo Ralf.
Du hast mich total verstanden.
vielen Dank.
Schönen Gruß,
Stefek
Logged
"In a time of universal deceit, telling the truth becomes a revolutionary act."
- George Orwell, Nineteen eighty-four (1984)
Stefek
WebsiteBaker Org e.V.
Offline
Posts: 4884
Re: Sections zufällig auswählen
«
Reply #2 on:
August 02, 2009, 04:57:30 PM »
Hallo Ralf,
ich bin heute dazu gekommen, das Snippet auszuprobieren.
Es stellt die Verbindung gut zusammen, gibt mir aber nur die [Zahl] der Section ID aus.
Ich hätte schon gern den Inhalt der Section, nicht (nur) die SectionID
Wie mache ich das bitte?
Gruß,
Stefek
Logged
"In a time of universal deceit, telling the truth becomes a revolutionary act."
- George Orwell, Nineteen eighty-four (1984)
doc
Guest
Re: Sections zufällig auswählen
«
Reply #3 on:
August 02, 2009, 05:01:16 PM »
@Stefek:
Verwende mal statt folgender Zeile:
Code:
echo $section[0];
eine leicht modifizierte Ausgabe wie:
Code:
print_r($section);
Dann siehst Du, was überhaupt zurückgeliefert wird und kannst das gewünschte dann mit $section[xxx] ansprechen.
Doc
Logged
WebBird
Guest
Re: Sections zufällig auswählen
«
Reply #4 on:
August 02, 2009, 05:01:39 PM »
Brauchst Du nur nen Schubs, oder den kompletten Code?
Logged
WebBird
Guest
Re: Sections zufällig auswählen
«
Reply #5 on:
August 02, 2009, 05:02:14 PM »
Quote from: doc on August 02, 2009, 05:01:16 PM
@Stefek:
Verwende mal statt folgender Zeile:
Code:
echo $section[0];
eine leicht modifizierte Ausgabe wie:
Code:
print_r($section);
Da der SELECT nur auf section_id geht, wird er auch nur section_id bekommen.
Logged
Stefek
WebsiteBaker Org e.V.
Offline
Posts: 4884
Re: Sections zufällig auswählen
«
Reply #6 on:
August 02, 2009, 05:04:10 PM »
Ich bekomme sowas:
Array (
=> 21 [section_id] => 21 )
Ich hätte gerne den Inhalt der Wysiwyg Sections, samt "Bild und Ton"
Gruß,
Stefek
Logged
"In a time of universal deceit, telling the truth becomes a revolutionary act."
- George Orwell, Nineteen eighty-four (1984)
doc
Guest
Re: Sections zufällig auswählen
«
Reply #7 on:
August 02, 2009, 05:22:55 PM »
@Stefek:
Ändere das MySQL Statement wie von WebBird beschrieben in SELECT * um und probiers nochmal. Alternativ einfach mal phpMyAdmin starten und die Query nachbauen und schauen was passiert. Einmal verstanden, lässt sich damit schon allerhand anfangen.
Doc
Logged
WebBird
Guest
Re: Sections zufällig auswählen
«
Reply #8 on:
August 02, 2009, 05:47:42 PM »
doc und Stefek, ich glaube, Ihr redet aneinander vorbei.
Mit Hilfe der section_id kannst Du Dir auch den Inhalt der Section holen. Hier die entsprechende Funktion aus dem Tabber-Modul:
Code:
/**
* Get sections contents
**/
function _tabber_get_section($id) {
global $wb, $database;
// get the section data
$result = $database->query("SELECT section_id,module,publ_start,publ_end FROM ".TABLE_PREFIX."sections WHERE section_id = '".$id."'");
if ( $section = $result->fetchRow() ) {
// skip this section if it is out of publication-date
$now = time();
if( !(($now<=$section['publ_end'] || $section['publ_end']==0) && ($now>=$section['publ_start'] || $section['publ_start']==0)) ) {
return;
}
$section_id = $section['section_id'];
$module = $section['module'];
ob_start(); //start output buffer
require(WB_PATH.'/modules/'.$module.'/view.php');
$foo = ob_get_contents(); // put outputbuffer in $foo
ob_end_clean(); // clear outputbuffer
return $foo;
}
} // end function _tabber_get_section
In der Rückgabe $foo ist die fertig gerenderte Sektion enthalten. Kannst Du dann an beliebiger Stelle ausgeben.
Logged
Stefek
WebsiteBaker Org e.V.
Offline
Posts: 4884
Re: Sections zufällig auswählen
«
Reply #9 on:
August 02, 2009, 06:04:05 PM »
Hallo Bianca,
ich sehe, wenn man die beiden Teile verknüpft, geht da sogar noch mehr als nur WYSIWYG Sections und die Zeitlich ausgeschloßenen Sections werden nicht mit ausgegeben.
Wunderbar.
Doch weiß ich echt nicht, wie man diese beiden Teile kombiniert
Gruß,
Stefek
Logged
"In a time of universal deceit, telling the truth becomes a revolutionary act."
- George Orwell, Nineteen eighty-four (1984)
WebBird
Guest
Re: Sections zufällig auswählen
«
Reply #10 on:
August 02, 2009, 06:30:31 PM »
Du mußt der Funktion aus Tabber nur die ermittelte section_id geben, und sie gibt Dir die gerenderte Sektion zurück. Pack beides zusammen in das Template, dann hast Du es auf jeder Seite. Oder pack es in eine Code-Sektion, dann hast Du es nur auf einer Seite.
Der einzige Haken ist, daß Ralfs Code das Publikationsdatum nicht berücksichtigt. Das müßte man in der SELECT-Anweisung noch mit aufnehmen.
Vielleicht hab ich morgen Zeit, ein komplettes Snippet daraus zu machen. "RandomSection".
Logged
Stefek
WebsiteBaker Org e.V.
Offline
Posts: 4884
Re: Sections zufällig auswählen
«
Reply #11 on:
August 02, 2009, 06:36:00 PM »
PHP ist ein Gebiet, auf den ich mich mit großer Zurückhaltung heranwage.
Thorn hat mir neulich ein gutes Buch empfohlen, für Einsteiger, und ich werde mich etwas mehr damit beschäftigen, einfach weil ich gesehen habe, dass es zum Webdesign dazu gehört und meine Fähigkeiten im Umgang mit und Beiträge zu WB steigert.
Da hast Du es
Ich kriege nicht mal so was einfaches auf die Reih.
Danke und lG,
Stefek
Logged
"In a time of universal deceit, telling the truth becomes a revolutionary act."
- George Orwell, Nineteen eighty-four (1984)
WebBird
Guest
Re: Sections zufällig auswählen
«
Reply #12 on:
August 02, 2009, 07:17:45 PM »
Naja, eigentlich bin ich auch noch Anfänger. Ich hab nur den Vorteil, schon andere Sprachen zu beherrschen, da ist der Einstieg natürlich leichter.
Ich bau Dir Dein RandomSection Snippet.
Irgendwann im Lauf der Woche kriegst Du was zum Testen.
Logged
Stefek
WebsiteBaker Org e.V.
Offline
Posts: 4884
Re: Sections zufällig auswählen
«
Reply #13 on:
August 03, 2009, 01:50:49 AM »
Hallo Bianca,
für die Zwischenzeit habe ich mir jetzt das daraus generiert, und es klappt:
Code:
<?php
$pageID
=
777
;
// PageID der Page, aus der die Inhalte der Sections ausgegeben werden sollen
global
$wb
,
$database
;
// get the section data
$result
=
$database
->
query
(
"SELECT section_id,module,publ_start,publ_end FROM "
.
TABLE_PREFIX
.
"sections WHERE page_id = '"
.
$pageID
.
"' ORDER BY RAND() LIMIT 1"
);
if (
$section
=
$result
->
fetchRow
() )
{
$section_id
=
$section
[
'section_id'
];
$module
=
$section
[
'module'
];
ob_start
();
// Output Buffer start
require(
WB_PATH
.
'/modules/'
.
$module
.
'/view.php'
);
$foo
=
ob_get_contents
();
// put Output Buffer in $foo
ob_end_clean
();
// end and clean the Output Buffer
echo
$foo
;
}
?>
Vielen Dank an alle fürs Mithelfen.
Ein Snippet wäre toll, aber nur wenn Du Zeit hast.
EasyMenu braucht wohl mehr Aufmerksamkeit
Gruß,
Stefek
«
Last Edit: August 03, 2009, 01:58:16 AM by Stefek
»
Logged
"In a time of universal deceit, telling the truth becomes a revolutionary act."
- George Orwell, Nineteen eighty-four (1984)
WebBird
Guest
Re: Sections zufällig auswählen
«
Reply #14 on:
August 03, 2009, 12:33:10 PM »
Ich stelle gerade fest, so ein Snippet gibt's schon.
http://www.websitebakers.com/pages/modules/listings/section-pages/random-section.php
Logged
WebBird
Guest
Re: Sections zufällig auswählen
«
Reply #15 on:
August 03, 2009, 01:49:42 PM »
So, ich hab trotzdem mal was gebastelt. Man kann eine gewünschte Seitennummer, eine Liste von Modultypen und eine Anzahl angeben. Details in der Readme.
Da es ein Modul "randomsection" schon gibt, heißt dieses "wbrandomsection".
Edit: Download entfernt. Neue Version auf Seite 2.
«
Last Edit: August 03, 2009, 05:42:10 PM by WebBird
»
Logged
WebBird
Guest
Re: Sections zufällig auswählen
«
Reply #16 on:
August 03, 2009, 02:02:30 PM »
Droplet Code:
Name: WBRandomSection
Code:
Code:
include_once WB_PATH.'/modules/wbrandomsection/include.php';
$options = array();
if ( isset( $page_id ) ) {
$options['page_id'] = $page_id;
}
if ( isset( $types ) ) {
$options['types'] = explode( ',', $types );
}
if ( isset( $limit ) ) {
$options['limit'] = $limit;
}
ob_start();
show_random( $options );
$return = ob_get_clean();
return $return;
Kommentar: [[WBRandomSection?page_id=<ID>;types=<Type(s)>;limit=<Int>]]
Logged
Stefek
WebsiteBaker Org e.V.
Offline
Posts: 4884
Re: Sections zufällig auswählen
«
Reply #17 on:
August 03, 2009, 02:36:34 PM »
Hallo Bianca!
Wunderbar.
Ich finde das andere Modul ist schon etwas anderes.
Da muss man zu Fuss auswählen, welche Sections dargestellt werden können (nicht gut für den Standarduser) und nur WYSIWYG ist möglich.
Dein Snippet muss nur einmal in die Index.php oder sonstwo eingebunden werden und im Backend zeig man dem Standarduser, wie er sich einzelne Sectionen schreibt.
Gut zum Beispiel für Rezensionen (Kundenstimmen), aber auch allerlei anderes.
Auch das Droplet ist cool.
Eine Frage (technisch) habe ich noch.
Bei Zeile 95 herum der view.php gibts den folgenden Code:
$output
.=
'<div class="randomsection">'
.
$foo
.
'</div>'
;
Dann ab Zeile 108 definierst Du das Template (HTT-File)
Wie kommt es, dass Du die <div class="randomsection"> doppelt drin hast?
Wird die dennoch nur einmal ausgegeben?
Gruß,
Stefek
Logged
"In a time of universal deceit, telling the truth becomes a revolutionary act."
- George Orwell, Nineteen eighty-four (1984)
WebBird
Guest
Re: Sections zufällig auswählen
«
Reply #18 on:
August 03, 2009, 02:39:47 PM »
Hab ich gar nicht. Im Template heißt das randomsectionwrap.
Im Code ist das ja eine Schleife, das heißt, wenn man mehrere Sections ausgeben läßt, wird jede einzelne in den div gepackt. So kann man z. B. einen Rahmen drum machen oder so.
Die view.htt ist dann nur dazu da, wenn man das ganze noch komplett mit Schleifchen oder ähnlichem garnieren möchte.
Logged
Stefek
WebsiteBaker Org e.V.
Offline
Posts: 4884
Re: Sections zufällig auswählen
«
Reply #19 on:
August 03, 2009, 02:55:24 PM »
Ich verstehe. (Hab nicht richtig hingeschaut auf den Classennamen.)
Quote from: WebBird on August 03, 2009, 02:39:47 PM
Die view.htt ist dann nur dazu da, wenn man das ganze noch komplett mit Schleifchen oder ähnlichem garnieren möchte.
Ja, das macht Sinn und ist Cool mit HTT File.
Eine leider noch nicht so gängige Technik unter (selbst vielen neuen) WB Modulen.
Super gemacht und Super danke.
Wenn mal eine Grafik brauchst, sag bescheid
Jetzt aber noch zu dem fest codiertem CSS File.
Vielleicht ist es besser, einen if file exist Abfrage zu machen.
Denn dann lösche ich die CSS daraus, dann knallt er mir die nicht in den Content Bereich. (Ist nicht so valide.)
Und ein Link zu dem Modul_Ordner wäre auch gut (für das verwenden im HTT File), nur Proforma, falls man auch mit kleinen Grafiken arbeiten will.
Eine Bitte wäre noch, vielleicht kann man noch einen Parameter angeben, in dem Angegeben wird, wieviele der ersten Zeichen einer Section ausgegeben werden sollen, wenn es WYSIWYG Sections sind?
Die ersten Beiden kann ich eben machen, aber nicht das letzte Teil.
Oder ich könnte mich dran versuchen...
Was meinst Du?
Gruß,
Stefek
Logged
"In a time of universal deceit, telling the truth becomes a revolutionary act."
- George Orwell, Nineteen eighty-four (1984)
WebBird
Guest
Re: Sections zufällig auswählen
«
Reply #20 on:
August 03, 2009, 04:46:13 PM »
Quote from: Stefek on August 03, 2009, 02:55:24 PM
Jetzt aber noch zu dem fest codiertem CSS File.
Vielleicht ist es besser, einen if file exist Abfrage zu machen.
Denn dann lösche ich die CSS daraus, dann knallt er mir die nicht in den Content Bereich. (Ist nicht so valide.)
Ich glaube, das Problem ist eher, daß die frontend.css derzeit nicht automatisch geladen wird. Hab dazu vorhin einen Forenthread gesehen.
Vielleicht sollte man die einfach komplett weglassen und nur in der Doku darauf eingehen, daß man über die beiden Klassen die Sections per CSS aufhübschen kann, wenn man will.
Quote from: Stefek on August 03, 2009, 02:55:24 PM
Und ein Link zu dem Modul_Ordner wäre auch gut (für das verwenden im HTT File), nur Proforma, falls man auch mit kleinen Grafiken arbeiten will.
Hö? Wo gez?
Quote from: Stefek on August 03, 2009, 02:55:24 PM
Eine Bitte wäre noch, vielleicht kann man noch einen Parameter angeben, in dem Angegeben wird, wieviele der ersten Zeichen einer Section ausgegeben werden sollen, wenn es WYSIWYG Sections sind?
Puh, bist Du anspruchsvoll.
Da gibt's aber ein Problem. Man stelle sich vor, im WYSIWYG ist ein Textblock mit 'ner Farbe oder ähnlichem versehen. Wenn ich nun mitten in dem Textblock das Modul durchschneide, fehlt das schließende Tag. (Etwa </span>) Das gibt Murks.
Logged
WebBird
Guest
Re: Sections zufällig auswählen
«
Reply #21 on:
August 03, 2009, 04:46:54 PM »
Mitten in einer Überschrift wäre auch nicht schön.
Logged
Stefek
WebsiteBaker Org e.V.
Offline
Posts: 4884
Re: Sections zufällig auswählen
«
Reply #22 on:
August 03, 2009, 05:03:28 PM »
Quote from: WebBird on August 03, 2009, 04:46:13 PM
Quote from: Stefek on August 03, 2009, 02:55:24 PM
Jetzt aber noch zu dem fest codiertem CSS File.
Vielleicht ist es besser, einen if file exist Abfrage zu machen.
Denn dann lösche ich die CSS daraus, dann knallt er mir die nicht in den Content Bereich. (Ist nicht so valide.)
Ich glaube, das Problem ist eher, daß die frontend.css derzeit nicht automatisch geladen wird. Hab dazu vorhin einen Forenthread gesehen.
Ja, das ist das Problem.
Die CSS Files von Snippets werden nicht im Head eingelesen.
Ich weiß auch nicht, was dazu notwendig wäre (Coremäßig), wäre aber gut.
Quote
Vielleicht sollte man die einfach komplett weglassen und nur in der Doku darauf eingehen, daß man über die beiden Klassen die Sections per CSS aufhübschen kann, wenn man will.
Ja, das kann man sogar in die HTT in einen
<!-- kommentar -->
schreiben.
Quote
Quote from: Stefek on August 03, 2009, 02:55:24 PM
Und ein Link zu dem Modul_Ordner wäre auch gut (für das verwenden im HTT File), nur Proforma, falls man auch mit kleinen Grafiken arbeiten will.
Hö? Wo gez?
Ist nicht so wichtig.
Kann man alles schön mit CSS regulieren.
Quote
Quote from: Stefek on August 03, 2009, 02:55:24 PM
Eine Bitte wäre noch, vielleicht kann man noch einen Parameter angeben, in dem Angegeben wird, wieviele der ersten Zeichen einer Section ausgegeben werden sollen, wenn es WYSIWYG Sections sind?
Puh, bist Du anspruchsvoll.
Keine Sorge, die größten Ansprüche stelle ich immer noch an mich selbst
Quote
Da gibt's aber ein Problem. Man stelle sich vor, im WYSIWYG ist ein Textblock mit 'ner Farbe oder ähnlichem versehen. Wenn ich nun mitten in dem Textblock das Modul durchschneide, fehlt das schließende Tag. (Etwa </span>) Das gibt Murks.
Ja, ist klar.
Verwerfen wir das ganze.
Snippet ist super.
Gruß,
Stefek
Logged
"In a time of universal deceit, telling the truth becomes a revolutionary act."
- George Orwell, Nineteen eighty-four (1984)
WebBird
Guest
Re: Sections zufällig auswählen
«
Reply #23 on:
August 03, 2009, 05:29:51 PM »
Quote
Die CSS Files von Snippets werden nicht im Head eingelesen.
Luisehahne hatte das für 2.8 eingeplant. Ein gewisser Jemand hat das aber noch nicht getestet. *hust*
Logged
Stefek
WebsiteBaker Org e.V.
Offline
Posts: 4884
Re: Sections zufällig auswählen
«
Reply #24 on:
August 03, 2009, 05:33:18 PM »
Quote from: WebBird on August 03, 2009, 05:29:51 PM
Quote
Die CSS Files von Snippets werden nicht im Head eingelesen.
Luisehahne hatte das für 2.8 eingeplant. Ein gewisser Jemand hat das aber noch nicht getestet. *hust*
Dann sollte der mal Gas geben
//EDIT
Sehe aber grade:
http://www.websitebaker2.org/forum/index.php/topic,14751.msg93377.html#msg93377
Doc hat ein Ticket dafür erstellt.
Stefek
mein Edit kam zwischenzeitlich...
«
Last Edit: August 03, 2009, 05:35:30 PM by Stefek
»
Logged
"In a time of universal deceit, telling the truth becomes a revolutionary act."
- George Orwell, Nineteen eighty-four (1984)
Pages: [
1
]
2
Go Up
Jump to:
Please select a destination:
-----------------------------
General
-----------------------------
=> General Announcements
=> Security Announcements
=> Documentation
=> WebsiteBaker Website Showcase
=> Guest Area & Off-Topic
-----------------------------
English
-----------------------------
=> WebsiteBaker 2.9
===> Announcements
===> Help/Support
=====> Modules / Extensions
===> Suggestions
===> Software bugs
=> Help & Support
=> Modules
=> Droplets (PHP code for use with Droplet module) & Snippets (raw PHP code)
=> jQuery
=> Templates, Menus & Design
=> WebsiteBaker Language Files
=> WebsiteBaker 2.x discussion
=> WebsiteBaker 3
=> Archive (posts up to 2007)
-----------------------------
Deutsch (German)
-----------------------------
=> Ankündigungen
=> WebsiteBaker 2.9
===> Ankündigungen
===> Hilfe/Support
=====> Module / Extensions
===> Vorschläge
===> Softwarefehler
===> Erfahrungs und Testberichte
=> Hilfe/Support
=> Module & Snippets
=> Templates & Design
=> Tutorials
=> jQuery
=> Diskussion über WB
=> Off-Topic
=> Archiv für Themen bis 2007
-----------------------------
Nederlands (Dutch)
-----------------------------
=> Aankondigingen
=> Hulp & Ondersteuning
=> Niet-Terzake (Off Topic)
-----------------------------
Francais (French)
-----------------------------
=> Help/Support
-----------------------------
Italiano (Italian)
-----------------------------
=> Help/Support
-----------------------------
Bakery (WB shop module)
-----------------------------
=> Bakery English
=> Bakery Deutsch
-----------------------------
KeepInTouch (Multi Contact Module)
-----------------------------
=> KeepInTouch English
=> KeepInTouch Deutsch
Loading...