Supportnet / Forum / Webseiten/HTML
Jokaaa
Frage
Servus!
Bin gerade an einer Homepage fürs Intranet. Jetzt möchte ich gerne an die rechte Seite meiner Homepage Newseinträge haben: Ich habe das per HTML so realisiert:
HTML:
[code]
<div id="sidebar">
<div class="title">News<br /></div>
<span class="date">[12.04.2007]</span>
<br />
Dies ist der erste Eintrag in meiner Newsleiste.
<br /><br />
<span class="date">[12.04.2007]</span>
<br />
...und das ist der 2te.
<br /><br />
</div>
[/code]
CSS:
[code]#sidebar
{
width: 180px;
border-left: 1px solid #CECECE;
float: right;
margin-left: 9px;
margin-top: 5px;
padding-left: 8px;
text-align: left;
clear: both;
}[/code]
Ich möchte gerne, dass auch ein DAU/ Chef, ohne Programmierkenntnisse später News implementieren kann. Wie realisiere ich das am besten????
Ich kenn mich nur gut mit CSS und HTML aus. Kann ich da jetzt ein PHP Script reinquetschen, oder ein asp, oder kann man das irgendwie anders ELEGANT! realisieren?????
Dankeschöööön!
Joka
Antwort 1 von some1unknown
hi
wenn du wirklich nur möchtest dass jede neuigkeit einfach ganz oben eingefügt wird, kannst des enfach mit php und ohne mysql machen
dafür müsste dein script von ner html seite mit nem formular die neuigkeit entgegennehmen. Dan kannst dir in ner textdatei n template anlegen, dass deinen aufbau der news bestimmt, also zum beispiel so:
dann machst dir eine textdatei in der der gesamte inhalt des divs steht. ganz oben setzt du dir dann nen marker rein
Immer wenn dann ein DAU ein News anlegen will gibt er seine Daten ins formular ein, das php script übernimmt die dann, lädt das template und ersetzt die Marker durch die daten(str_replace()). Dann setzt es an den <nfang des striings den <!--###TOP###-->-Marker. ANschließend wird die 2.txtfile mit dem div-inhalt geladen und der marker ###top### mit der str_replace funktion durch deinen string mit dem neuen eintrag ersetzt. Dadurch erreichst du, dass der neuste eintrag immer zuerst stehen.
Naja und zuletzt liest du über php den div-inhalt in deine seite ein:
hoffe ich konnte dir helfen
mfg
some1unknown
PS: regt euch net über irgendwelche fehler auf, hab seit nem halben jahr nix mehr mit php gemacht
wenn du wirklich nur möchtest dass jede neuigkeit einfach ganz oben eingefügt wird, kannst des enfach mit php und ohne mysql machen
dafür müsste dein script von ner html seite mit nem formular die neuigkeit entgegennehmen. Dan kannst dir in ner textdatei n template anlegen, dass deinen aufbau der news bestimmt, also zum beispiel so:
<span class="date">[###DATUM###]</span>
<br />
###EINTRAG###
<br /><br />dann machst dir eine textdatei in der der gesamte inhalt des divs steht. ganz oben setzt du dir dann nen marker rein
<!--###TOP###-->
<span class="date">[12.04.2007]</span>
<br />
Dies ist der erste Eintrag in meiner Newsleiste.
<br /><br />
<span class="date">[12.04.2007]</span>
<br />
...und das ist der 2te.
<br /><br />Immer wenn dann ein DAU ein News anlegen will gibt er seine Daten ins formular ein, das php script übernimmt die dann, lädt das template und ersetzt die Marker durch die daten(str_replace()). Dann setzt es an den <nfang des striings den <!--###TOP###-->-Marker. ANschließend wird die 2.txtfile mit dem div-inhalt geladen und der marker ###top### mit der str_replace funktion durch deinen string mit dem neuen eintrag ersetzt. Dadurch erreichst du, dass der neuste eintrag immer zuerst stehen.
Naja und zuletzt liest du über php den div-inhalt in deine seite ein:
<div id="sidebar">
<div class="title">News<br /></div>
<?php
readfile("news.txt")
or die("EIn Fehler ist aufgetreten");
?>
</div>hoffe ich konnte dir helfen
mfg
some1unknown
PS: regt euch net über irgendwelche fehler auf, hab seit nem halben jahr nix mehr mit php gemacht
Antwort 2 von some1unknown
also hast du am ende folgende dateien:
1.: index.php, deine eigentliche seite auf der die news angezeigt werden:
2.: styles.css, o deine styles drinn stehn:
3.: news.txt, wo deine news gespeichert sind:
3.: news_template.txt, wo dein news-template drin liegt:
4.: news.html, wo das formular für den news-ersteller liegt:
5.: news_write.php, die deine news einträgt
mfg some1unknown
PS: siehe mein PS beim ersten post
1.: index.php, deine eigentliche seite auf der die news angezeigt werden:
<html><head></head><body>
...
<div id="sidebar">
<div class="title">News<br /></div>
<?php
readfile("news.txt")
or die("FEHLER");
?>
</div>
...
</body>
</html>2.: styles.css, o deine styles drinn stehn:
#sidebar
{
width: 180px;
border-left: 1px solid #CECECE;
float: right;
margin-left: 9px;
margin-top: 5px;
padding-left: 8px;
text-align: left;
clear: both;
}3.: news.txt, wo deine news gespeichert sind:
<!--###TOP###-->
<span class="date">[12.04.2007]</span>
<br />
Dies ist der erste Eintrag in meiner Newsleiste.
<br /><br />
<span class="date">[12.04.2007]</span>
<br />
...und das ist der 2te.
<br /><br />3.: news_template.txt, wo dein news-template drin liegt:
<span class="date">[###DATUM###]</span>
<br />
###EINTRAG###
<br /><br />4.: news.html, wo das formular für den news-ersteller liegt:
<html><head></head><body>
<h1>News anlegen</h1>
<form action = "news_write.php" method = "post">
<textarea name = "news_text"></textarea>
</form>
</body>
</html>5.: news_write.php, die deine news einträgt
<?php
$news_text = $HTTP_POST_VARS['news_text'];
$template_file = "news_template.txt";
$news_file = "news.txt";
$date = "DATUM VON HEUTE;";
$file = fopen($template_file);
$template = fread($file, filesize($file));
$template = str_replace($template, "###DATUM###", $date);
$template = str_replace($template, "###EINTRAG###", $news_text);
$file = fopen($news_file);
$news = fread($file, filesize($file));
$text2write = "<!--###TOP###-->";
$text2write .= $template;
$news = str_replace($news, "<!---###TOP###--->", $text2write);
ftruncate($file, 0);
fwrite($file, $news);
print("News erfolgreich geschreiben");
?>mfg some1unknown
PS: siehe mein PS beim ersten post
Antwort 3 von some1unknown
is natürlich nich unbedingt elegant^^
Antwort 4 von some1unknown
eine weitaus elegantere(und auch weitaus aufwendigere) Lösung wär TYPO3 oder ein anderes cms.
dafür bräuchtest dann ein bissel mehr zeit und knowhow
also viel glück^^
mfg someûnknown
dafür bräuchtest dann ein bissel mehr zeit und knowhow
also viel glück^^
mfg someûnknown
Antwort 5 von Jokaaa
Servus und danke für die erschöpfende und geniale Erklärung!!!
Echt goil! Ich werde es gleich ausprobieren.
Also ich habe wie gesagt noch nicht viel mit PHP am Hut, aber eine Frage habe ich jetzt nach dem Durchlesen:
...Action auf was? Brauch ich nicht noch ein 'submit' Button, damit die news_write.php gestartet wird? Oder passiert das auf die Enter-Taste????
Dankeschöööön!!!
jokaaa
Echt goil! Ich werde es gleich ausprobieren.
Also ich habe wie gesagt noch nicht viel mit PHP am Hut, aber eine Frage habe ich jetzt nach dem Durchlesen:
<form action = "news_write.php" method = "post">
...Action auf was? Brauch ich nicht noch ein 'submit' Button, damit die news_write.php gestartet wird? Oder passiert das auf die Enter-Taste????
Dankeschöööön!!!
jokaaa
Antwort 6 von some1unknown
hi
jo hast recht, hab den submit-button vergessen^^
mfg
jo hast recht, hab den submit-button vergessen^^
mfg
Antwort 7 von some1unknown
desweiteren must du die zeile
ändern, so dass dem string $date halt ein korrektes Datum zugewiesen wird, also zum beispiel:
dies solltes
$date = "DATUM VON HEUTE;";ändern, so dass dem string $date halt ein korrektes Datum zugewiesen wird, also zum beispiel:
$date = date("d");
$date .= ".";
$date .= date("m");
$date .= ".";
$date .= date("Y");
dies solltes
Antwort 8 von some1unknown
..sry für die un terbrechung^^...
das datum im format dd.mm.yyyy. anzeigen, kannst ja mit der date() funktion n bissel experimentieren^^
mfg
das datum im format dd.mm.yyyy. anzeigen, kannst ja mit der date() funktion n bissel experimentieren^^
mfg

