Welcome, Guest. Please login or register.
Did you miss your activation email?
May 16, 2012, 11:53:05 PM

Login with username, password and session length
Search:     Advanced search
Wollen Sie dem WebsiteBaker Team beitreten?
Nähere Informationen finden Sie unter hier und auf unserer neuen Webseite.
155098 Posts in 21664 Topics by 7721 Members
Latest Member: arrow345
* Home Help Search Login Register
Pages: [1] 2   Go Down
Print
Author Topic: wechselnde anynews items ?  (Read 3224 times)
kirk
WebsiteBaker Org e.V.

Offline Offline

Posts: 204



WWW
« on: April 14, 2009, 11:11:14 AM »

Hallo Freunde,

Ich möchte gern das anynews Modul dazu bewegen nur eine Meldung zu zeigen und zwar zufällig aus einer Gruppe nach jedem Seitenaufruf.

Hat das jemand so schon mal realisiert oder hat eine Idee ?

Kirk
Logged
kweitzel
Forum administrator
*****
Offline Offline

Posts: 6974


WWW
« Reply #1 on: April 14, 2009, 06:27:08 PM »

Das SQL Statement einfach ein wenig umbauen. MySQL bietet die RAND Funktion für zufälligkeit ... zusammen mit einem gesetzten Limit sollte das möglich sein.

http://dev.mysql.com/doc/refman/5.0/en/mathematical-functions.html#function_rand

Quote
RAND(), RAND(N)

Returns a random floating-point value v in the range 0 <= v < 1.0. If a constant integer argument N is specified, it is used as the seed value, which produces a repeatable sequence of column values. In the following example, note that the sequences of values produced by RAND(3) is the same both places where it occurs.

mysql> CREATE TABLE t (i INT);
Query OK, 0 rows affected (0.42 sec)

mysql> INSERT INTO t VALUES(1),(2),(3);
Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> SELECT i, RAND() FROM t;
+------+------------------+
| i    | RAND()           |
+------+------------------+
|    1 | 0.61914388706828 |
|    2 | 0.93845168309142 |
|    3 | 0.83482678498591 |
+------+------------------+
3 rows in set (0.00 sec)

mysql> SELECT i, RAND(3) FROM t;
+------+------------------+
| i    | RAND(3)          |
+------+------------------+
|    1 | 0.90576975597606 |
|    2 | 0.37307905813035 |
|    3 | 0.14808605345719 |
+------+------------------+
3 rows in set (0.00 sec)

mysql> SELECT i, RAND() FROM t;
+------+------------------+
| i    | RAND()           |
+------+------------------+
|    1 | 0.35877890638893 |
|    2 | 0.28941420772058 |
|    3 | 0.37073435016976 |
+------+------------------+
3 rows in set (0.00 sec)

mysql> SELECT i, RAND(3) FROM t;
+------+------------------+
| i    | RAND(3)          |
+------+------------------+
|    1 | 0.90576975597606 |
|    2 | 0.37307905813035 |
|    3 | 0.14808605345719 |
+------+------------------+
3 rows in set (0.01 sec)

The effect of using a non-constant argument is undefined. As of MySQL 5.0.13, non-constant arguments are disallowed.

To obtain a random integer R in the range i <= R < j, use the expression FLOOR(i + RAND() * (j – i)). For example, to obtain a random integer in the range the range 7 <= R < 12, you could use the following statement:

SELECT FLOOR(7 + (RAND() * 5));

RAND() in a WHERE clause is re-evaluated every time the WHERE is executed.

You cannot use a column with RAND() values in an ORDER BY clause, because ORDER BY would evaluate the column multiple times. However, you can retrieve rows in random order like this:

mysql> SELECT * FROM tbl_name ORDER BY RAND();

ORDER BY RAND() combined with LIMIT is useful for selecting a random sample from a set of rows:

mysql> SELECT * FROM table1, table2 WHERE a=b AND c<d -> ORDER BY RAND() LIMIT 1000;

RAND() is not meant to be a perfect random generator, but instead is a fast way to generate ad hoc random numbers which is portable between platforms for the same MySQL version.

Gruß

Klaus
Logged

WebsiteBaker Org e.V. - for WebsiteBaker

kirk
WebsiteBaker Org e.V.

Offline Offline

Posts: 204



WWW
« Reply #2 on: April 14, 2009, 06:31:42 PM »

Hallo Klaus,
vielen Dank für deine Antwort.
Leider bin ich nicht (noch nicht) im Stande deine Infos um zusetzen.
Da fehlen mir noch einige PHP Kenntnisse.

Ich hoffe das hier im Forum das any news schon mal so umgebaut hat und es zur Verfügung stellt.

Kirk
Logged
mr-fan

Offline Offline

Posts: 1555


WWW
« Reply #3 on: April 14, 2009, 08:10:53 PM »

hier mal ein sehr guter ansatz für eine zufallsberechnung die ich schon einige mal gebrauchen konnte - besser und leichter verständlich als auf manchen php-hilfe seiten....

http://phpmanufaktur.de/pages/tipps-tricks/zufaelliger-inhalt.php

zwar hier in einem anderen zusammenhang ABER der zufallsgenerator ist für deine zwecke bestimmt nutzbar!

mfg martin
Logged

 
BlackTiger

Offline Offline

Posts: 166


« Reply #4 on: April 14, 2009, 08:29:00 PM »

Hallo Kirk,

das Select mit dem RAND() ist recht einfach einzubauen, indem du die include.php (der aktuellen Version 0.50) folgendermaßen anpasst:

Zeile 65:
Code:
                        'sort_by' => 'i{1;1;3}', 'sort_order' => 'i{1;1;2}', 'not_older_than' => 'd{0;0;999}'

ersetzen durch:
Code:
                        'sort_by' => 'i{1;1;4}', 'sort_order' => 'i{1;1;2}', 'not_older_than' => 'd{0;0;999}'

Dann fügst du nach der Zeile 129:
Code:
                // evaluate sort by and sort order fields
                $sql_sort_by = ($sort_by == 1) ? 'position' : (($sort_by == 3 && $add_sql != '') ? 'published_when' : 'posted_when');
                $sql_sort_order = ($sort_order == 1) ? 'DESC' : 'ASC';

folgendes an:
Code:
                // evaluate sort by and sort order fields
                $sql_sort_by = ($sort_by == 1) ? 'position' : (($sort_by == 3 && $add_sql != '') ? 'published_when' : 'posted_when');
                $sql_sort_order = ($sort_order == 1) ? 'DESC' : 'ASC';
                $sql_sort_str = ($sort_by == 4) ? 'RAND()' : "`$sql_sort_by` $sql_sort_order";

Danach musst du noch die beiden SQL-Strings ab Zeile 144

Code:
                // build SQL query to obtain news items for the selected group
                if ($group_id < 1) {
                        $sql = "SELECT * FROM `$table`
                                WHERE `active` = '1' $add_sql $add_sql_2
                                ORDER BY `$sql_sort_by` $sql_sort_order
                                LIMIT 0, $max_news_items";
                } else {
                        $sql = "SELECT * FROM `$table`
                                WHERE `group_id` = '$group_id' AND `active` = '1' $add_sql $add_sql_2
                                ORDER BY `$sql_sort_by` $sql_sort_order
                                LIMIT 0, $max_news_items";
                }

ersetzen/anpassen durch

Code:
                // build SQL query to obtain news items for the selected group
                if ($group_id < 1) {
                        $sql = "SELECT * FROM `$table`
                                WHERE `active` = '1' $add_sql $add_sql_2
                                ORDER BY $sql_sort_str
                                LIMIT 0, $max_news_items";
                } else {
                        $sql = "SELECT * FROM `$table`
                                WHERE `group_id` = '$group_id' AND `active` = '1' $add_sql $add_sql_2
                                ORDER BY $sql_sort_str
                                LIMIT 0, $max_news_items";
                }

Nun kannst du bei dem Parameter $sort_by auch den Wert 4 verwenden, bei dem die News zufällig sortiert werden.

Gruß
Michael
Logged
kirk
WebsiteBaker Org e.V.

Offline Offline

Posts: 204



WWW
« Reply #5 on: April 14, 2009, 08:36:50 PM »

BOAHH EIHH

Das ist doch mal eine super Anleitung werde mich gleich dran setzen und melde mich wenn es geklappt hat.

Bis dahin vielen Dank

Kirk
Logged
doc
Guest
« Reply #6 on: April 14, 2009, 08:46:34 PM »

Hi,

bevor Du das ganze einbaust, eventuell einfach die aktuelle Version v0.70 von der Addons Seite verwenden. Eine Anleitung was zu beachten ist, gibt es im englischsprachigen Anynews Thread.

Habe dort auch die MySQL Funktion RAND() in der SQL Abfrage verwendet. Denke so bis ca. 500 Newbeiträge dürfte das ganze nicht wirklich auf die Performance gehen, wenn es aber deutlich mehr News Beiträge sind, kann die Performance etwas leiden.

Zusätzlich habe ich alle Textausgaben in die Sprachdateien ausgelagert, die Parameter müssen in der letzen Version also angepasst werden. Eine detailierte Beschreibung in English gibt es hier.

Gruss Christian
« Last Edit: April 14, 2009, 09:25:09 PM by doc » Logged
BlackTiger

Offline Offline

Posts: 166


« Reply #7 on: April 14, 2009, 09:02:27 PM »

Hmpf da war ich wohl ein wenig zu flott mit meinem Änderungsvorschlag.  cool

Das ist jetzt natürlich die elegantere Lösung.

Gruß
Michael
Logged
kirk
WebsiteBaker Org e.V.

Offline Offline

Posts: 204



WWW
« Reply #8 on: April 14, 2009, 10:08:25 PM »

Hallo Christian,

Habe die 0.7 Version installiert. Hat sich ja ne Menge entwickelt super.

Meine alte Version war noch 0.35.

Ich habe eine News Leiste in der ich 5 mal unter einander das any news aufrufe die jeweils eine News aus einer Gruppe
zeigen.

Mit der 0.7 Version wird jetzt aber der "weiter lesen" Link nur noch einmal in der obersten any news gezeigt.

Die darunter liegenden zeigen diesen nicht. Sonst ist alles in Ordnung auch das random funktioniert bestens.

Was mach ich Falsch? Hier der code wie ich die any news aufrufe:


displayNewsItems(1, 1, -1, 3, 'auto', false, '<a><img>', false, 4, 1, 0);


displayNewsItems(2, 1, -1, 3, 'auto', false, '<a><img>', false, 4, 1, 0);


displayNewsItems(3, 1, -1, 3, 'auto', false, '<a><img>', false, 4, 1, 0);

usw. Jede Zeile steht natürlich in einer eigenen Code Section



Kirk
Logged
doc
Guest
« Reply #9 on: April 14, 2009, 10:24:24 PM »

Hi Kirk,

wohl noch ein Bug in der letzten Version wenn Anynews mehrmals pro Seite aufgerufen wird.
Habe auf der Add-ons Seite mal v0.71 hochgeladen.

Werde das ganze in den nächsten Tagen noch weiter testen bzw. noch einige weitere Änderungen einbauen.

Gruss Christian
« Last Edit: April 14, 2009, 10:30:50 PM by doc » Logged
kirk
WebsiteBaker Org e.V.

Offline Offline

Posts: 204



WWW
« Reply #10 on: April 14, 2009, 10:32:21 PM »

ok Danke,

hatte dir eben eine Message geschickt hat sich jetzt überschnitten Ich warte auf weiteres von Dir und wünsch einen angenehmen Feierabend.

Kirk
Logged
kirk
WebsiteBaker Org e.V.

Offline Offline

Posts: 204



WWW
« Reply #11 on: April 14, 2009, 10:38:50 PM »

Jawoll jetzt geid datt

Daaaaaanke


Kirk
Logged
kirk
WebsiteBaker Org e.V.

Offline Offline

Posts: 204



WWW
« Reply #12 on: April 15, 2009, 09:12:02 PM »

Hallo Christian,
hier noch ein kleines Problem.

Setze ich den strip_tags... Parameter auf true verschwinden die  p tags um ein img und meine Formatierung wird zerschossen.

<p>Internet Auftritt gomeralounge.de</p>
<p><a title="Gomera Lounge Urlaub auf La Gomera" target="_blank" href="http://www.gomeralounge.de"><img width="150" height="175" border="0" alt="Gomera Lounge Apartments Pianobar Wellness" src="http://www.km-p.de/media/news/loungede.jpg" /></a>
Eine Hotel- und Touristik Seite mit&nbsp;Content Management System.</p>
<p><a href="http://localhost/km-p/pages/posts/internet-auftritt-gomeralounge.de19.php">weiter lesen</a></p>
<hr />

Setze ich den trip_tags... Parameter auf false tauchen doppelte p tags um das img auf und der Validator meckert.

<p>Musik für Media Frankfurt</p>
<p><p><img alt="Media Frankfurt" width="150" height="111" border="0" src="http://www.km-p.de/media/news/media-frankfurt.jpg" /></p>
<p>Media Frankfurt Excellence in airport advertising</p></p>
<p><a href="http://localhost/km-p/pages/posts/musik-fuer-media-frankfurt55.php">weiter lesen</a></p>
<hr />

Kann mann da was machen ?

kirk
Logged
doc
Guest
« Reply #13 on: April 15, 2009, 09:18:23 PM »

Hi Kirk,

ein bekannter Fehler, in Kombination mit max_news_lenghts. Wenn am Anfang eines Strings ein Starttag wie z.B. a oder img kommt, aber max_news_length das Ende abschneidet, zerschiesst es ab und an das Layout. Bei strip tags kannst Du definieren, welche Tags nicht gestript werden sollen.

Meine Empfehlung. Entweder strip_tags verwenden, dann aber keine Ausnahmen, oder strip tags, Ausnahmen und max news lenghts aufeinander abstimmen. Auch bei UTF-8 kann es zu Problemen kommen, da die normalen PHP Stringfunktionen dann nicht wirklich fehlerfrei funktionieren. Das ganze ist ein wenig "experimentell".

Wenn was doppelt vorkommt, schau mal im verwendeten Template nach, eventuell liegt es daran (zu finden in /modules/anynews/htt).

Gruss Christian
Logged
kirk
WebsiteBaker Org e.V.

Offline Offline

Posts: 204



WWW
« Reply #14 on: April 15, 2009, 09:28:13 PM »

hmmm
maximal lenght steht auf -1 und in der 0.35 Version ist alles bestens mit dem selben Template.  huh

Kirk
Logged
kirk
WebsiteBaker Org e.V.

Offline Offline

Posts: 204



WWW
« Reply #15 on: April 15, 2009, 09:44:16 PM »

HAAAAALT Stopp

Ich hab´s kapiert alles SUPER  cheesy cheesy

Kirk
Logged
doc
Guest
« Reply #16 on: April 15, 2009, 09:46:53 PM »

Hi Kirk,

kannst Du mir nochmal kurz auf die Sprünge helfen, wollte gerade nochmal über den Quellcode schauen. Kann es sein dass Du bei allowed tags das '<p>' vergessen hast oder so? Auf jeden Fall schön dass es klappt.

Gruss Christian
Logged
kirk
WebsiteBaker Org e.V.

Offline Offline

Posts: 204



WWW
« Reply #17 on: April 15, 2009, 10:30:30 PM »

Das mit dem erlaubten p war mir schon klar nur musste ich in der custom htt ein das p um short content wieder raus nehmen sonst doppelt.
Code:
<div class="anynews">
<!-- BEGIN news_block -->
<p>{TITLE}</p>
{CONTENT_SHORT}
<p><a href="{LINK}">{TXT_READMORE}</a></p>
<hr />
<!-- END news_block -->
</div>
Logged
doc
Guest
« Reply #18 on: April 15, 2009, 10:34:00 PM »

Hi,

danke für den Hinweis. Hilft vielleicht auch anderen, die über einen ähnlichen Fehler stolpern.

Vielleicht nehme ich in einer nächsten Version in den Templatedateien die umschliessenden <p>Tags raus und setze dafür bei $allowed_tags = '<a>' auf $allowed_tags = '<p><div><a>'.

Mal schaun.

Gruss Christian
« Last Edit: April 15, 2009, 10:36:00 PM by doc » Logged
kirk
WebsiteBaker Org e.V.

Offline Offline

Posts: 204



WWW
« Reply #19 on: April 15, 2009, 10:54:51 PM »

aber gerne doch.

Mal was ganz anderes.

Könntest Du dir vorstellen dem Any News mit jquery ein wenig Animation bei zu bringen.

z.B. Überblenden von news zu news item ?

Kirk
« Last Edit: April 16, 2009, 01:06:35 AM by kirk » Logged
doc
Guest
« Reply #20 on: April 16, 2009, 06:44:28 AM »

Hi Kirk,

Quote from: Kirk
Könntest Du dir vorstellen dem Any News mit jquery ein wenig Animation bei zu bringen.
Wäre machbar, habe ich aber nicht vor. Anynews soll ein einfach zu benutzendes Snippet bleiben und kein "eigenständiges" Modul werden.

Bevor ich sowas überhaupt angehen würde, sollte jQuery erstmal in WebsiteBaker als zentrale Lösung integriert werden. Dann müsste nicht jedes x-te Modul die jQuery Dateien eigenständig mitbringen. Schaut man sich die Beiträge der letzten Wochen / Monate an, gibt es immer mehr Module oder Templates, die auf jQuery setzen - warum auch nicht ist ein Sau geiles Framework. Verwende es selbst recht oft und gerne.

Schau dir mal das WYSIWYG Slider Modul an (im Forum suchen). Das könnte man umbauen, um Newsbeiträge statt WYSIWYG Abschnitt einzublenden. Eventuell kann diese Überblendung aber auch mit Anynews und den Templatedateien gelöst werden (div, vor- zurückbutton, einbinden von jQuery).

Also ich für meinen Teil halte nichts davon, aus Anynews die "Eierlegende Wollmichsau" zu machen, die dann auch noch Newsbeiträge als RSS Feed oder was auch immer ausgibt smiley

Gruss Christian
« Last Edit: April 16, 2009, 06:54:29 AM by doc » Logged
kirk
WebsiteBaker Org e.V.

Offline Offline

Posts: 204



WWW
« Reply #21 on: April 16, 2009, 09:41:46 AM »

Hallo Christian,
vielen Dank für deine Antwort.

Quote
Bevor ich sowas überhaupt angehen würde, sollte jQuery erstmal in WebsiteBaker als zentrale Lösung integriert werden. Dann müsste nicht jedes x-te Modul die jQuery Dateien eigenständig mitbringen.

Das wäre eine super Sache.

Kirk
Logged
doc
Guest
« Reply #22 on: April 18, 2009, 06:58:36 PM »

Vorsicht Off-Topic (geht eigentlich um jQuery):

Quote from: doc
Bevor ich sowas überhaupt angehen würde, sollte jQuery erstmal in WebsiteBaker als zentrale Lösung integriert werden. Dann müsste nicht jedes x-te Modul die jQuery Dateien eigenständig mitbringen.

Quote from: Kirk
Das wäre eine super Sache.
Gerade gesehen, den aktuellen Stand der Dinge zu jQuery & Co. findet man auf der WB Projektseite.

Gruss Christian
Logged
Stefek
WebsiteBaker Org e.V.

Offline Offline

Posts: 4868



« Reply #23 on: April 18, 2009, 07:47:25 PM »

Hallo. (Schließe mich dem OT ein wenig an.)
Das ändert ein wenig die Zukunft von WB und seinen Modulen.

Wie sieht es aus mit dem PageTree? Ich meine die Seitenbaum übersicht im Backend?
Ist angedacht, es auch auf jQuery umzustellen?

Könnte jemand dazu stellung beziehen?

Gruß,
Christian
Logged

"In a time of universal deceit, telling the truth becomes a revolutionary act."
- George Orwell, Nineteen eighty-four (1984)
escpro

Offline Offline

Posts: 651



WWW
« Reply #24 on: May 12, 2009, 01:55:39 PM »

Hi
haben mal für einen Kunden diese in div. News_Ausführungen mittels JQuery umgesetzt alles ohne Anynews.
a: JQuery Tabs - wie auf gmx.de
b: JQuery scroller carousell

kann dir gerne mal den Link dazu senden.

Gruss Michael

aber gerne doch.

Mal was ganz anderes.

Könntest Du dir vorstellen dem Any News mit jquery ein wenig Animation bei zu bringen.

z.B. Überblenden von news zu news item ?

Kirk
« Last Edit: May 14, 2009, 03:05:16 AM by escpro » Logged

Pages: [1] 2   Go Up
Print
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2011, Simple Machines Valid XHTML 1.0! Valid CSS!