Menü

  Login

  Shoutbox

  Forum » Fragen zu Ilch » Module von dieser Seite » Top News Box


Top News Box
Peter
Jungspund

User Pic

Posts: 25
# 11.03.2015 - 15:59:15
    zitieren



Hallo,
ich nutze dein News Extendes Modul, was super genial ist.

Das einzige was ich dazu bräuchte wäre eine Box für die Top News. Das wenn eine News als Top News deklariert ist diese in der Box angezeigt werden.

ist es einfach solch eine Box zu erstellen in der immer die aktuellen Top News angezeigt werden?..

Danke

Gruß
Peter


Zuletzt modifiziert von Peter am 11.03.2015 - 18:26:49
Mairu
Administrator

User Pic

Posts: 1908
# 11.03.2015 - 18:46:34
    zitieren



Soll denn nur der Titel oder die komplette News angezeigt werden?

Von der Sache her müsste quasi nur der Code, der dafür zuständig ist aus der contents/news/news.php in eine Datei kopiert und im boxes Ordner eingefügt werden.
Peter
Jungspund

User Pic

Posts: 25
# 11.03.2015 - 19:01:26
    zitieren



also die kompletten news.. bis [previewende]

ja so ähnlich hatte ich das versucht wollte leider nur nicht so..

ich habe zumindest top news aus den standart news entfernt.. das hat auch geklappt.. weil ich will ja nicht 2 mal diese news. ^^
Mairu
Administrator

User Pic

Posts: 1908
# 12.03.2015 - 09:05:45
    zitieren



Ok die Funktion für die Gruppenrechte fehlt dann, aber das ist ja kein großes Hindernis.

 Php von Datei boxes/topnews.php
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:
  <?php
/**
 * Topnewsbox for NewsExtended
 */

//Gruppenrechte
$groups 0;
foreach (
$_SESSION['authgrp'] as $id => $bool){
    
$groups $groups pow(2$id);
}

// Topnews ausgeben
$tn_id intval(@db_result($news_opts db_query("SELECT v1, v2 FROM prefix_allg WHERE k = 'news' LIMIT 1"), 00));
$tn_koms = @db_result($news_opts01);
$tn_sql db_query("SELECT a.news_title as title, a.news_text, a.news_kat, a.news_recht, a.news_groups, a.html,
                DATE_FORMAT(a.news_time,'%d. %m. %Y - %H:%i Uhr') as datum,
                DATE_FORMAT(a.news_time,'%W') as dayofweek,
                b.name as username,
                c.name as editorname,
                a.html,
                a.edit_time,
                a.klicks,
                b.id as uid
            FROM prefix_news a
            LEFT JOIN prefix_user as b ON a.user_id = b.id
            LEFT JOIN prefix_user as c ON a.editor_id = c.id
            WHERE a.news_id = 
$tn_id AND a.`show` > 0 AND a.`show` <= UNIX_TIMESTAMP() AND (a.endtime IS NULL OR a.endtime > UNIX_TIMESTAMP()) AND
            (((" 
pow(2abs($_SESSION['authright'])) . " | a.news_recht) = a.news_recht) OR
            (a.news_groups != 0 AND ((a.news_groups ^ 
$groups) != (a.news_groups | $groups))))");
if (
db_num_rows($tn_sql) > 0) {
    
$tn_r db_fetch_assoc($tn_sql);

    
$dontShow false;
    if ((
pow(2abs($_SESSION['authright'])) | $tn_r['news_recht']) != $tn_r['news_recht']) {
        
$dontShow true;
    }
    if (
$dontShow) {
        foreach(
$_SESSION['authgrp'] as $id => $bool) {
            if (
$bool and (pow(2abs($id)) | $tn_r['news_groups'] == $tn_r['news_groups'])) {
                
$dontShow false;
                break;
            }
        }
    }
    if (!
$dontShow) {
        
$tn_tpl = new tpl ('news/top');
        if (
$tn_koms) {
            
$tn_r['kom'] = db_count_query("SELECT COUNT(id) FROM prefix_koms WHERE uid = $tn_id AND cat = 'NEWS'");
        }
        
$tn_r['showkom'] = $tn_koms;
        if (
strpos ($tn_r['news_text'], '[PREVIEWENDE]') !== false) {
            
$a explode('[PREVIEWENDE]' $tn_r['news_text']);
            
$tn_r['news_text']= $a[0];
            
$tn_r['readwholenews'] = '<a href="index.php?news-' $tn_id '" alt="mehr lesen" title="mehr lesen"><img src="include/images/icons/news/more.gif" alt="mehr lesen" border="0"></a>';
        } else {
            
$tn_r['readwholenews'] = '';
        }
        
$tn_r['id'] = $tn_id;
        
$tn_r['klicks'] = '<img src="include/images/icons/news/counter.gif" alt="' $tn_r['klicks']. ' mal gelesen" title="' $tn_r['klicks']. ' mal gelesen" border="0">';
        
$tn_r['datum']  = $lang[$tn_r['dayofweek']] . ' ' $tn_r['datum'];
        
$tn_r['edit']   = is_null($tn_r['edit_time']) ? '' '<br /><i>zuletzt ge&auml;ndert am ' date('d.m.Y - H:i'strtotime($tn_r['edit_time'])) . '&nbsp;Uhr';
        if (!empty(
$tn_r['edit']) and $tn_r['editorname'] != $tn_r['username']) {
            
$tn_r['edit'].= ' von ' $tn_r['editorname']. '</i>';
        } elseif (!empty(
$tn_r['edit'])) {
            
$tn_r['edit'].= '</i>';
        }

        
$tn_r['kate'] = news_find_kat($tn_r['news_kat']);
        
$tn_r['text'] = $tn_r['html']? $tn_r['news_text']: bbcode($tn_r['news_text']);
        
$tn_tpl->set_ar_out($tn_r0);
        unset(
$tn_tpl);
    }
} else {
    echo 
'Keine aktuelle Topnews';
}
Peter
Jungspund

User Pic

Posts: 25
# 12.03.2015 - 13:45:14
    zitieren



hammer!

vielen dank!

ehm in zeile 69 kommt bbcode klammer vor, wird an der stelle der text von bbcode in html umgewandelt?

ich würde gern den text anpassen, wenn zB ein Bild vor die news kommt. das ich in der topnews.htm eine variable {bild} habe dann könnte ich das besser positionieren.

zurzeit sprengt die box je nachdem was alles vor dem preview steht das design.

derzeit sieht meine top.htm so aus
 HTML
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
 <div style='background-image: url(include/contents/news/img/lastnewsbg.png); background-repeat:no-repeat; color: #fff; padding-left:15px; height:325px;'>
<div class='container img-rounded' style='background-color: #222; font-size:14px; color: #fff; padding-top:2px; padding-bottom:2px;'>Top News</div>
<div class='img-rounded' style='padding-top:10px;'>
<div style="font-size:14px; color:#000;">{title}</div>
<div style="font-size:12px; color:#000;">
<?php
$text = {text};
$new_string = substr($text, 1, 10);
echo $new_string;
?>

</div>
<!--<div style="font-size:12px; color:#000;">{text}</div>-->
<div>{readwholenews}</div>
<div>{_if_{showkom}=='1'}<br /><a href="index.php?news-{id}">{kom} {_lang_comments} </a>{/_endif}</div>
</div>
</div>


bei dem php teil würde ich gern die {text} bearbeiten. Das substr ist derzeit nur ein test. man könnte dann mit preg_replace arbeiten um das bild rauszunehmen oder andere dinge am text anzupassen.

meine frage wäre nur wie bekomme ich den {text} nochmal in php bearbeitet

Zuletzt modifiziert von Peter am 12.03.2015 - 14:05:25
Mairu
Administrator

User Pic

Posts: 1908
# 12.03.2015 - 15:20:40
    zitieren



In dem Template kannst du auf jeden Fall kein php verwenden. Letztendlich kannst du aber genau das machen, was du wolltest, musst es halt in der php machen.

Die Variablen werden mit $tn_tpl->set_ar_out($tn_r, 0); ans Template übergeben, wenn du kannst also vorher $tn_r['text'] beliebig anpassen. (Ggf. darauf achten, dass der BBCode noch angwandt wird, also entsprechend davor (noch kein HTML) oder danach BBCode ist zu HTML umgewandelt) ansetzen.

Mir erschließt sich allerdings nicht ganz, warum du überhaupt ein Bild in der Topnews vor [PREVIEWENDE] einfügen willst, wenn du genau weiß, dass du damit die Box sprengst?

Ansonsten kann man auch einiges mit CSS lösen, indem du z.B. eine Klasse für die topnew box nutzt und dann z.B. Bilder eine maximale Größe gibst oder Text automatisch umbrechen willst.
Peter
Jungspund

User Pic

Posts: 25
# 12.03.2015 - 16:02:49
    zitieren



anders rum wenn die News die ich zu Top News machen möchte ein Bild enthält dann wird das bild auch in die Top News box übernommen und das sprengt dann das Design.

Deshalb würde ich gern den news_text anpassen z.B. tags rauszunehmen etc.

so hab das mal eingefügt geift aber irgendwie nicht..

 Php
1:
2:
3:
4:
5:
6:
7:
  <?php
        $tn_r
['kate'] = news_find_kat($tn_r['news_kat']);
        
$tn_r['text'] = preg_replace("#\[img](.*)\[/img\]#Uis"""$tn_r['text']);
        
$tn_r['text'] = preg_replace("#\[b](.*)\[/b\]#Uis"""$tn_r['text']);
        
$tn_r['text'] = $tn_r['html']? $tn_r['news_text']: bbcode($tn_r['news_text']); 
        
$tn_tpl->set_ar_out($tn_r0); 
?>


ps.: noch was anderes in der news extended 1.4c schreibst du es gibt einen filemanager.. wo find ich den? im news modul?
habs gefunden aber leider stimmt da was nicht.


Zuletzt modifiziert von Peter am 12.03.2015 - 18:56:20
Mairu
Administrator

User Pic

Posts: 1908
# 12.03.2015 - 18:53:12
    zitieren



Der Filemanager wird bei CKEditor verwendet. (Also HTML).

Was ich gerade erst in deinem Code gesehen hab, vor der letzten Zeile mit dem BBCode ist der Text nicht in $tn_r['text'] sondern in $tn_r['news_text'], also müsste diese angepasst werden. Wenn du BBCode ersetzt, solltest du es ggf. gleich mit if und else lösen, dass es nur ersetzt wird, wenn es auch eine BBCode News ist. Zumindest solltest du darauf achten, falls du beide Arten (BBCode und HTML) einsetzt.
Peter
Jungspund

User Pic

Posts: 25
# 12.03.2015 - 18:59:00
    zitieren



jap jetzt funktioniert das.. ist es möglich was ich da weg schneide als neue variable auch zu senden?
Mairu
Administrator

User Pic

Posts: 1908
# 12.03.2015 - 22:12:28
    zitieren



Weiß jetzt nicht genau, was du mit senden meinst?

Aber du könntest zum einen mit preg_match_all erst die Vorkommen suchen, bevor du sie ersetzt, oder alternativ mit preg_replace_callback das Ersetzen durch eine Callback durchführen lassen, die den Eingabewert speichert, aber trotzdem am Ende ein leeren String zurückgibt, also es komplett ersetzt.
Peter
Jungspund

User Pic

Posts: 25
# 13.03.2015 - 08:36:47
    zitieren



ja sorry manchmal druck ich mich zu blöde aus..

ich meine ans template übergeben.

wir können ja dann mit {text} den übergebenen Text aufrufen.

könnte man den teil den ich replace
 Code
1:
 [img]...[/img]
dann auch übergeben und evtl mit {bild} oder so aufrufen?

ich bin noch nicht so super fit in php und ich weiß das man mit POST und GET dinge übergeben kann aber an der stelle funktioniert das ja irgendwie anders.


PS.: da scheint was nicht mit dem Filemanager zu stimmen.


Zuletzt modifiziert von Peter am 13.03.2015 - 14:33:53
Mairu
Administrator

User Pic

Posts: 1908
# 13.03.2015 - 18:14:56
    zitieren



Also das mit {bild} hab ich mal umgesetzt.

 Php
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
          $tn_r['kate'] = news_find_kat($tn_r['news_kat']);

        
$tn_r['text'] = $tn_r['news_text'];
        
$tn_r['bild'] = '';
        if (!
$tn_r['html']) {
            
//$tn_r['text'] = preg_replace("#\[img](.*)\[/img\]#Uis", "", $tn_r['text']);
            
$tn_r['text'] = preg_replace_callback(
                
"#\[img](.*)\[/img\]#Uis",
                function(
$matches) use (&$tn_r) {
                    if (empty(
$tn_r['bild'])) {
                        
$tn_r['bild'] = '<img src="' $matches[1] . '" />';
                    }
                    return 
'';
                },
                
$tn_r['text']
            );

            
$tn_r['text'] = preg_replace("#\[b](.*)\[/b\]#Uis"""$tn_r['text']);
            
$tn_r['text'] = bbcode($tn_r['text']);
        }


        
$tn_tpl->set_ar_out($tn_r0);
        unset(
$tn_tpl);


Das mit dem Filemanager kommt da in der Browserkonsole ein Fehler (F12 in den meisten Browsern) bzw. geht es in allen Browsern nicht, bzw. welchen benutzt du Auslachen
Peter
Jungspund

User Pic

Posts: 25
# 13.03.2015 - 20:19:58
    zitieren



jo geil funktioniert super!

zum Filemanager Problem:
ich habe das Problem in Mozilla und Chrome. In Mozilla habe ich keine meldung
ins Chrome diese:
 Zitat
Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check http://xhr.spec.whatwg.org/.


es sieht so aus als sei da eine box aber die höhe der box passt nicht..
joek0114
Grünschnabel

User Pic

Posts: 20
# 15.09.2018 - 13:21:48
    zitieren



Goyard Handbags
Pandora Jewelry Store
Bottega Veneta
Red Bottom Shoes
Pandora Charms
Christian Louboutin Shoes
Skechers Sneakers
Fila Sneakers
Valentino
Pandora Rings
Air Max 98
Asics Shoes Outlet
Adidas Superstar
Black Timberland
Balenciaga Shoes
Yeezy 500 Black
Yeezy Boost
Puma Outlet Store
Moncler Outlet
Asics Sneakers
Air Max 97
Adidas Superstar
Pandora Charm Bracelet
Yeezys Shoes
Yeezy Boost 350
Fitflops Sale Clearance
KD 11
NMDS
Louboutin shoes
Pandora Rings Official Site
Pandora Charms
Timberland Store
Nike Clearance
Louboutin Outlet
Jordan Retro 11
Yeezy 500
Pandora Charms
Nike Cortez Women
Nike Clearance Store
Asics Gel Nimbus 19
Asics Gel Nimbus
Lebron 16
Timberland Boots
Valentino
Nike Air Max 270 Flyknit
Nike Cortez
Kevin Durant Shoes
Nike Shoes
Red Valentino
Christian Louboutin Shoes Outlet
Adidas Yeezy
Pandora Bracelets Charms
Timberland Outlet Store
Fjallraven Kanken Backpack
Adidas NMD R1
Hermes Handbags
Air Max 270
Pandora Jewelry Official Site
Yeezy
Nike Air Max 95 Essential
Puma Shoes
Pandora Charms
Nike Air Max 95
Ferragamo
New Nike Shoes 2018
Pandora Necklace For Women
Adidas Sneakers
Christian Louboutin Outlet
Asics Shoes
Pandora Jewelry
Air Max 270 Men
Pandora Charms Outlet
Nike Air Max 270 Men
Longchamp Handbags
Asics Gel Kayano 25
Adidas Original
Asics Outlet Store Online
Pandora Earrings
Nike Running Shoes For Men
Yeezy Shoes
Fila Disruptor ii
Timberland Boots
Nike Outlet
Nike Outlet
Yeezys
Fjallraven Kanken Backpack
Timberland Outlet Store
Ferragamo Shoes
NMDS
Lebron James Shoes
Christian Louboutin Outlet
Nike Air Max 98
Goyard Bag
Fila Shoes For Women
Adidas Outlet
Ferragamo Belt
Nike Sneakers For Women
Christian Louboutin Shoes
Adidas NMD
Hermes Belt
Adidas Shoes Outlet
Vans Shoes Outlet
Balenciaga Shoes
Kanken Backpack
Adidas Yeezys
Adidas Yeezy Shoes
joek0114
Grünschnabel

User Pic

Posts: 20
# 18.09.2018 - 19:46:57
    zitieren



Fitflop Sandals
Pandora Jewelry Official Site
Christian Louboutin
Pandora Charms Outlet
ECCO Shoes
Christian Louboutin Outlet
Kyrie 4 Shoes
Nike Air Max
Retro Jordan
Ralph Lauren UK
Nike Factory Store
Pandora Jewelry Outlet
Air Jordan Retro 10
Pandora Charms
Air Max
Adidas UK
Balenciaga
Adidas Yeezy
Bottega Veneta Wallet
ECCO Shoes
Fitflops
Pandora Charms Jewelry
Jordan 14
Pandora Jewelry
Jordan 11 Low
Pandora
Pandora Ring
Pandora Jewelry Official Site
Kate Spade Purses
Pandora
Pandora Charms
Nike Air Max 98 Cone
Kyrie Shoes
Pandora Outlet
Jordan Shoes
Christian Louboutin shoes
Fitflop Shoes
Fitflop Sale Clearance
Moncler
Pandora Jewelry Official Site
Christian Louboutin Shoes
NMD R1
Valentino Sandals
Pandora Charms
Pandora Jewelry Official Site
Ferragamo
Jordan 4
Pandora Bracelet
Nike Outlet
Jordan Win Like 96
Birkenstock Sandals
Birkenstock Sandals
Vans Sneakers For Women
Air Jordans
Pandora Charms
Pandora Bracelets
Balenciaga
Jordan 11
Red Bottom Shoes
Pandora Jewelry
Nike Roshe One
Kate Spade Outlet
Bottega Veneta
Birkenstock Outlet Store
Christian Louboutin
Pandora Bracelet
Kate Spade Outlet
Yeezy
Timberland Outlet Store
Pandora Charms
Pandora Jewelry
Pandora Jewelry
Pandora
Adidas NMD
Nike Air Vapormax
Pandora Disney
Louboutin
Nike Shoes
Goyard Handbags
Ferragamo Outlet
Nike Outlet
Adidas NMD XR1
Jordan 11
Goyard Handbags
Moncler Jacket
Red Bottom Shoes
Pandora
Pandora Jewelry
Nike Roshe
Air Jordan
Pandora Official Site
Nike Air Force 1
Pandora Jewelry
Adidas NMD
Skechers
Birkenstock Shoes
Air Max 270
Kate Spade Handbags
Jordan 12
Pandora Charms
Balenciaga Sneakers
Pandora Jewelry Official Site
Moncler Outlet Online
Adidas Yeezy Boost 350
Pandora Jewelry CZ
Jordan Retro
Moncler Outlet Online
Adidas Superstar
Adidas Yeezy
Ed Hardy
Ferragamo Belt
Yeezys
Fitflop Sandals
Air Jordan 9
Christian Louboutin Shoes
Pandora Jewelry Charms
Jordan Sneakers
Pandora Charms
Nike Air Max 270
Valentino Shoes
Pandora Jewelry
Jordan Shoes
Nike Sneakers
Birkenstock Sandals
Curry 5
Balenciaga Sneakers
Yeezy Boost
Pandora Bracelet
Longchamp Outlet
Moncler Jackets
Nike Outlet Store
Kate Spade
Fitflop
Adidas Human Race
Pandora Jewelry
Pandora Jewelry Outlet
Jordan 8