Menü

  Login

  Shoutbox

  Forum » Fragen zu Ilch » Andere Dinge » Links mit Screenhot


Links mit Screenhot
Der Lotse
Grünschnabel

User Pic

Posts: 19
# 25.03.2010 - 22:33:33
    zitieren



Hi Mairu,

ich hab ein kleines Problem...
Und zwar wollte ich gerne bei meinen Links das so gestalten das ich zu jeden Linkbanner/ Link einen Screenshot der Seite dazu habe.
Nun ich dachte eigentlich sollte ja nicht so schwer sein das da rein zubekommen. In der links.htm die Tabelle erweitert. Soweit kein Problem.
Jetzt bin von der Logik her so rangegangen das ich dann die Screenshots so nennen wie auch der Name der Links ist.

Hier mal mein Codeschnippsel den ich in der links.php dazu gefügt habe:
 Php von Datei links
103:
  $row['screen'] = '<img src="include/Linkbanner/src/{_lang_category}.jpg" border="0" >';


Nur leider klappt das nicht so wie ich mir das gedacht hab...

Kannst du mir vielleicht weiterhelfen?

Gruß Der Lotse

Es gibt keine Probleme die man nicht lösen kann...man braucht nur genug Zigaretten...
Der Lotse
Grünschnabel

User Pic

Posts: 19
# 26.03.2010 - 10:03:59
    zitieren



Also ich hab mir fast die ganze Nacht um die Ohren geschlagen... Leider ist PHP nicht meine stärke.
Wäre echt nett wenn mir einer weiterhelfen könnte.
Habe jetzt schon viele Sachen ausprobiert und nichts führt zum Ergebnis...

Es gibt keine Probleme die man nicht lösen kann...man braucht nur genug Zigaretten...
blakedj06
Jungspund

User Pic

Posts: 34
# 26.03.2010 - 10:58:08
    zitieren



Ich würde Dir echt gern helfen nur weiss ich grad nicht was Du genau willst. ^^

Vielleicht ma nen Screenshot machen und mal kennzeichen wo hin was genau soll.

Sorry ich steh da grad wirklich aufn Schlauch. Smilie

greetz: BLaKe
Der Lotse
Grünschnabel

User Pic

Posts: 19
# 26.03.2010 - 11:59:06
    zitieren





Ich wollte gerne in der Liste der Links neben dem Linkbanner immer einen Screenshot der jeweiligen Seite anbieten. Hab daher wie auf dem Bild zu sehen schon mal die Tabelle erweitert. Jetzt geht es nur noch darum das jeweilige Bild dazu zu bekommen. Bin daher so an die Sache rangegangen den jeweiligen Screenshot so zu benennen wie auch schon der Linkname ist. Nur leider kriege ich das nicht so recht hin...

Es gibt keine Probleme die man nicht lösen kann...man braucht nur genug Zigaretten...
blakedj06
Jungspund

User Pic

Posts: 34
# 26.03.2010 - 15:25:02
    zitieren



Ahhh nun weiss ich bescheid das mache ich Dir muss nun aber erstmal schnell weg bin gegen 19 Uhr Heute wieder da und dann mache ich dir das schnell mit Anleitung.

Hoffe Du hast solange Geduld!

Bis später!

greetz: BLaKe
Der Lotse
Grünschnabel

User Pic

Posts: 19
# 26.03.2010 - 15:28:56
    zitieren



Klar danke bin um jede Hilfe dankbar Lachen

Es gibt keine Probleme die man nicht lösen kann...man braucht nur genug Zigaretten...
blakedj06
Jungspund

User Pic

Posts: 34
# 26.03.2010 - 19:39:08
    zitieren



So dann legen wa ma los.

Vorab es gibt sicher noch andere Wege das umzusetzen aber ich denke das kann sich sehen lassen.

Als erstes erstellst Du im Ordner include/images/

"links/screens" muss dann also so aussehen include/images/links/screens

Dort machste dann Deine Bilddateien rein.

Dann öffnest Du die include/admin/archiv.php

da findest Du bei Zeile 533 ca. folgende Einträge:

# link eintraege speichern oder aendern.

 Php
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
  <?php
if ( !empty($_POST['sub']) ) {

      
$_POST['screen'] = escape($_POST['screen'], 'string');
      
$_POST['cat'] = escape($_POST['cat'], 'integer');
      
$_POST['name'] = escape($_POST['name'], 'string');
      
$_POST['banner'] = escape($_POST['banner'], 'string');
      
$_POST['desc'] = escape($_POST['desc'], 'string');
      
$_POST['link'] = get_homepage(escape($_POST['link'], 'string'));
?>


Dort fügst Du die Zeile:

$_POST['screen'] = escape($_POST['screen'], 'string');

egal ob drüber oder drunter ein muss dann so aussehen wie Du oben schon erkennen kannst.

Dann die INSERT INTO Zeile bei 553 ca.

 Php
1:
2:
3:
  <?php
db_query
("INSERT INTO prefix_links (cat,name,banner,`desc`,link,pos,screen) VALUES ('".$_POST['cat']."','".$_POST['name']."','".$_POST['screen']."','".$_POST['banner']."','".$_POST['desc']."','".$_POST['link']."','".$pos."')");
?>


Dort fügst Du ebenfalls

Als erstes in der ersten Klammerfolge am besten zum Schluss wobei das egal ist "screen" ein aber das Komma nach "pos" nicht vergessen!

Dann noch in der nächsten Klammerfolge bei den Values

".$_POST['screen']."',

irgendwo dazwischen ein muss halt dann so aussehen wie Du oben schon erkennen kannst.


Etwas weiter drunter befindet sich die UPDATE Zeile bei 561 ca.

 Php
1:
2:
3:
  <?php
db_query
("UPDATE prefix_links SET cat = '".$_POST['cat']."',name = '".$_POST['name']."',screen = '".$_POST['screen']."',pos = ".$pos.", banner = '".$_POST['banner']."',`desc` = '".$_POST['desc']."',link = '".$_POST['link']."' WHERE id = '".$_POST['pkey']."'");
?>


dort fügst Du

screen = '".$_POST['screen']."',

irgendwo dazwischen ein siehst Du ja anhand meines Beispiels.


Dann haste noch Zeile 644 ca.

# links
if ( $menu->getA(2) == 'e' ) {
$erg = db_query("SELECT id,cat,`desc`,name,banner,screen,link FROM prefix_links WHERE id = '".$menu->getE(2)."'"Zwinker;

da fügste auch irgendwo dazwischen oder dahinter "screen" ein das es dann so aussieht wie die Zeile drüber.


Dann abspeichern und die include/admin/templates/archiv/links.htm öffnen

Dort haste ab Zeile 43 ein Formular was Du einfach mit meinem ersetzt:

 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:
  <?php
<form action="admin.php?archiv-links" method="POST" name="form">
    <
input type="hidden" name="pkey" value="{pkey}">

    <
table class="border" cellpadding="3" cellspacing="1" border="0">
    <
tr class="Chead">
          <
td colspan="2"><b>Links</b></td>
        </
tr>
            <
tr>
      <
td class="Cmite">Name</td>
            <
td class="Cnorm"><input type="text" name="name" value="{name}" /></td>
    </
tr><tr>
      <
td class="Cmite">Kategorie</td>
            <
td class="Cnorm"><select name="cat">{cat}</select></td>
    </
tr>
        <
tr>
      <
td class="Cmite">Banner</td>
            <
td class="Cnorm"><input type="text" size="50" name="banner" value="{banner}" /></td>
    </
tr>
    <
tr>
      <
td class="Cmite">Screen</td>
            <
td class="Cnorm"><input type="text" size="50" name="screen" value="{screen}" /></td>
    </
tr>
        <
tr>
      <
td class="Cmite">Link</td>
            <
td class="Cnorm"><input type="text" size="50" name="link" value="{link}" /></td>
    </
tr>
        <
tr>
      <
td class="Cmite">Text</td>
            <
td class="Cnorm"><textarea cols="50" rows="2" name="desc">{desc}</textarea></td>
    </
tr>
        <
tr class="Cdark">
          <
td></td>
            <
td><input type="submit" value="Absenden" name="sub" /></td>
        </
tr>
  </
table>
</
form>
?>


So das wars auch schon für den Adminbereich.

Nun noch die include/contents/links.php öffnen und ab Zeile 94 ca.

 Php
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
  <?php
    $erg 
db_query("select id,name,link,banner,screen,`desc`,hits from prefix_links WHERE cat = $cid ORDER BY pos");
        if ( 
db_num_rows($erg) > ) {
          
$tpl->set_out('catname',$catname2,4); $class 'Cnorm';
            while(
$row db_fetch_assoc($erg) ) {
                
$class = ( $class == 'Cmite' 'Cnorm' 'Cmite' );
                
$row['class'] = $class;
                
$row['desc'] = ( !empty($row['desc']) ? '<br /><span class="smalfont">&raquo;&nbsp;'.$row['desc'].'</span>' '' );
                if ( !empty(
$row['banner'] ) ) {
                  
$row['name'] = '<img src="'.$row['banner'].'" border="0" alt="'.$row['name'].'" title="'.$row['name'].'">';
                  
$row['screen'] ='<img src="include/images/links/screens/'.$row['screen'].'">';

?>


in die Datenbank Abfrage bei $erg ganz oben "screen" einfügen und unten dann nochmal screen als Bild mit folgender Zeile definieren.

$row['screen'] ='<img src="include/images/links/screens/'.$row['screen'].'">';

Mus dann halt so aussehen wie bei mir oben genannt.

Dann kannste auch die Datei abspeichern und nur noch die include/templates/links.htm öffnen und ab dem 4ten EXPLODE also nach den 2 x<br>

einfach mit folgenden ersetzen:
 Php
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
  <?php

{EXPLODE}
<
table width="100%" class="border" border="0" cellspacing="1" cellpadding="3">
  <
tr class="Chead">
        <
td width="30%" align="center">Screen</td>
        <
td width="60%" align="center"><b>{_lang_links}{catname}</b></td>
        <
td width="10%" align="center">{_lang_hits}</td>
    </
tr>
  {
EXPLODE}
   <
tr class="{class}"><td>{screen}</td>
       <
td><a target="_blank" href="index.php?links-s{id}">{name}</a>{desc}</td>
         <
td align="center">{hits}</td>
     </
tr>
   {
EXPLODE}
</
table>
?>


So dann abspeichern und fertig.

Nun findest Du im Adminbereich bei den Links ein neues Feld unter Banner was screen heisst. Da schreibst Du nur den Dateinamen rein den Du im von mir o.g. Ordner reinkopiert hast.

Dadurch das wir den Pfad zu den Bildern schon in der php Datei definiert haben reicht wie gesagt nur der Dateiname!


Wenn Du nun bestimmte Größen für die Screens brauchst bzw. sollen sie ja sicher alle gleich groß sein weils sonst blöd aussieht dann kannst Du entweder die Grafiken was optimal wäre in der beliebten Größe erstellen oder aber einfach in der include/contents/links.php in der letzten Zeile die das Bild definiert:

$row['screen'] ='<img src="include/images/links/screens/'.$row['screen'].'">';

einfach folgende Werte noch mit einfügen:

$row['screen'] ='<img src="include/images/links/screens/'.$row['screen'].'" width="xxx" height="xxx">';

anstatt des xxx halt deine Größen!

So ich hoffe ich kann Dir damit etwas helfen das war mein erstes Tuto in solchen Sachen und hoffe dennoch das es verständlich rüberkam und evtl. auch Anderen hilft.

Viel Fun!

greetz: BLaKe

EDIT: Sorry hatte noch was vergessen. ^^

in phpmyadmin auf die Tabelle ic1_links gehen dann auf anzeigen dann auf Struktur und ganz unten ein neues Feld mit folgenden Werten erstellen.

name: screen
type: varchar
Länge 100

und dann auf Speichern!

Das ist wichtig weil sonst gar nix geht. ^^

Wie es dann fertig aussehen kann siehst Du bei mir http://comgaming.de/index.php?links-1

Hab da nur mal schnell nen simples Bild reingemacht. ^^

Ergänzung hatte ich vergessen:

in der include/admin/archiv.php bei Zeile 652 ca. "'screen' => ''," dem Array hinzufügen das ganze muss dann so aussehen!

 Php
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
  <?php
      $_ilch 
= array (
              
'pkey' => '',
                
'id' => '',
                
'banner' => '',
                
'name' => '',
                
'desc' => '',
                
'screen' => '',
                
'link' => '',
                
'cat' => $c
            
);
?>



Zuletzt modifiziert von blakedj06 am 27.03.2010 - 00:06:50
Der Lotse
Grünschnabel

User Pic

Posts: 19
# 26.03.2010 - 23:00:14
    zitieren



Also ich hab alle deine Anweisungen erfüllt. Soweit war es eigentlich auch gut verständlich. Nur leider wird kein Bild angezeigt...
Jetzt ist nur die Frage was ich falsch gemacht habe.
Ich hab noch einmal alle zu Dateien die zu ändern waren überprüft. Nur bei myphpadmin bin ich mir nicht sicher. Aber da bin genauso vorgegangen wie du es beschrieben hast.

Naja ich schau noch mal nach. Wäre ja nun echt doof wenn es nicht gehen würde Zwinker

Es gibt keine Probleme die man nicht lösen kann...man braucht nur genug Zigaretten...
blakedj06
Jungspund

User Pic

Posts: 34
# 26.03.2010 - 23:05:46
    zitieren



Du kannst mir auch ne PM mit FTP Daten schicken dann schau ich da ma rein. Kann ebenfalls auch im phpmyadmin schauen und dir das einstellen.
Der Lotse
Grünschnabel

User Pic

Posts: 19
# 26.03.2010 - 23:19:03
    zitieren



Pm abgeschickt Lachen Hoffe du siehst bei mir durch Zwinker

Es gibt keine Probleme die man nicht lösen kann...man braucht nur genug Zigaretten...
blakedj06
Jungspund

User Pic

Posts: 34
# 27.03.2010 - 00:03:50
    zitieren



Jo sollte nun funktionieren Du hattest bei der $erg Abfrage in der include/contents/links.php vergessen screen abzufragen.