4images Forum & Community

4images Issues / Ausgaben => Discussion & Troubleshooting => Topic started by: Sunny C. on August 13, 2009, 11:59:52 PM

Title: Clickstream verändern
Post by: Sunny C. on August 13, 2009, 11:59:52 PM
Hallo zusammen,

ich hoffe das ich auf meine Frage eine Antwort und Hilfe bekommen kann.
Und zwar geht es um das Clickstream "{clickstream}"

Wenn ich z.B in eine Unterkategorie gehe, dann sieht das Clickstream so aus:

"Home / Test 2 / Unterkategorie1"

Da ich ein eigens entwickeltes Design nutze, wollte ich das Clickstream auch optisch in die Seite pflegen, demnach sollte das ganze so aussehen:

(http://s7.directupload.net/images/090813/aj4d8bxj.png)

Nur leider weis ich nicht wie und wo.

Wenn man z.B in Unterkategorie 1 gerade drinne ist, dann sieht der Clickstream (wie oben) ja so aus:
"Home / Test 2 / Unterkategorie1"

Allerdings soll das ganze dann so aufgebaut sein, dass der letzte Link bzw. Clickstream mit dem CSS "aktiv" belegt sein, damit der Effeckt auch zustande kommt.

Code: [Select]
                   <ul>
<li><a href="home-link" title="Home" target="_self">Home</a></li>
<li><a href="cat-link" title="Test 2" target="_self">Test 2</a></li>
<li><a href="subcat-link" class="aktiv" title="Unterkategorie1" target="_self">Unterkategorie1</a></li>
</ul>
Der Code wäre dieser.

Für eine Schritt für Schritt Anleitung wäre ich sehr sehr dankbar!

Sorry, aber weis da niemand etwas?
Title: Re: Clickstream verändern
Post by: Patrick_Diehl on August 14, 2009, 04:31:10 PM
Da musst ddu in die php dateien rein, ganz unten zb in der categories.php steht da folgendes:

Code: [Select]
//-----------------------------------------------------
//--- Clickstream -------------------------------------
//-----------------------------------------------------
$clickstream = "<span class=\"clickstream\"><a href=\"".$site_sess->url(ROOT_PATH."index.php")."\" class=\"clickstream\">".$lang['home']."</a>".$config['category_separator'].get_category_path($cat_id)."</span>";


Vielleicht kannst du es lösen in dem du in den Einstellungen: Zeichen zur Trennung der Kategorien in den Kategoriepfaden -> dort <li> einstelltst?

Einfach mal probieren.
Title: Re: Clickstream verändern
Post by: Sunny C. on August 14, 2009, 06:51:39 PM
Ja, du hast nicht ganz unrecht!
Aber das klappt dann dennoch nicht wie oben beschrieben!

Sonst würde ich ja nicht fragen! Wenn da jemand mehr Erfahrung hat, dann bitte melden, ich weis leider nicht wie ich das lösen kann!

Ps.: Dennoch vielen Dank für deine Idee!
Title: Re: Clickstream verändern
Post by: Patrick_Diehl on August 14, 2009, 07:56:41 PM
Das geht schon, gerade selbst getestet, es sieht jetzt so aus wie du möchtest (bis auf die Klasse aktiv).

<ul><li><a href="./" class="clickstream">Home</a></li><li>lustige Cartoons</li></ul>

Geh doch mal in die Categories und ändere (vorher alles sichern)
Code: [Select]
<span class=\"clickstream\"><a href=\"".$site_sess->url(ROOT_PATH."index.php")."\" class=\"clickstream\">".$lang['home']."</a>".$config['category_separator'].get_category_path($cat_id)."</span>
in das

Code: [Select]
<ul><li><a href=\"".$site_sess->url(ROOT_PATH."index.php")."\" class=\"clickstream\">".$lang['home']."</a>".$config['category_separator'].get_category_path($cat_id)."</li></ul>
Dann gehe ins admin in die Einstellungen und ändere den Punkt Zeichen zur Trennung der Kategorien in den Kategoriepfaden &nbsp;/&nbsp; in folgendes: </li><li>

Deine styles und classes musst natürlich noch mit einbauen so wie du es brauchst.

Um jetzt noch den style aktiv in die letzte instanz zu bekommen musste in die funktions.php, dort einfach mal nach clickstream suchen und dort vermutlich bei        $path = format_text($cat_cache[$cat_id]['cat_name'], 2); die Klasse aktiv mitgeben, hab ich jetzt nicht getestet, musste mal ein bisschen probieren.

Den Schritt 1 musst du nun noch für alle php Dateien machen wo clickstream drin ist.


edit: den aktiv style könnte so aussehen in der funktiins.php

$path = "<span class=\"aktiv\">".format_text($cat_cache[$cat_id]['cat_name'], 2)."</span>";

habs getestet, sieht dann so aus <span class="aktiv">lustige Cartoons</span>

Noch mehr Schritt für Schritt gibts von mir nicht  :wink:
Title: Re: Clickstream verändern
Post by: Sunny C. on August 15, 2009, 01:23:23 PM
WOW!
Das werde ich nachher mal testen! Ich danke dir jetzt schon einmal!

Melde mich dann :D

Edit://
Also es steht jetzt schon untereinander, aber der Code wird so ausgegeben:
Code: [Select]
<span class="clickstream"><a href="./index.php" class="clickstream">Home</a><li><a href="./categories.php?cat_id=2" class="clickstream">Test 2</a></li><li><a href="./categories.php?cat_id=3" class="clickstream">Unterkategorie1</a></li><li>Test3</li></span>
Demnach fehlen:

<ul>
</ul>

Und bei Test3 sollte das eigentlich so aussehen:

Code: [Select]
<li class="aktiv">Test3</li>oder
Code: [Select]
<li><span class="aktiv>Test3</span></li>

Edit 2://

So,
da ich gemerkt habe, dass noch mehr geändert werden muss, habe ich folgendes getan!

includes/functions.php
function get_category_path($cat_id = 0, $detail_path = 0) {
  global $site_sess, $config, $cat_cache, $url;
  $parent_id = 1;
  while ($parent_id) {
    if (!isset($cat_cache[$cat_id]['cat_parent_id'])) {
      return false;
    }
    $parent_id = $cat_cache[$cat_id]['cat_parent_id'];

    if (empty($path)) {
      if ($detail_path) {
        $cat_url = ROOT_PATH."categories.php?".URL_CAT_ID."=".$cat_id;
        if (preg_match("/".URL_PAGE."=([0-9]+)/", $url, $regs)) {
          if (!empty($regs[1]) && $regs[1] != 1) {
            $cat_url .= "&amp;".URL_PAGE."=".$regs[1];
          }
        }
        $path = "<a href=\"".$site_sess->url($cat_url)."\">".format_text($cat_cache[$cat_id]['cat_name'], 2)."</a>";
      }
      else  {
        $path = "".format_text($cat_cache[$cat_id]['cat_name'], 2)."";
      }
    }
    else {
      $path = "<a href=\"".$site_sess->url(ROOT_PATH."categories.php?".URL_CAT_ID."=".$cat_id)."\">".format_text($cat_cache[$cat_id]['cat_name'], 2)."</a>".$config['category_separator'].$path;
    }
    $cat_id = $parent_id;
  } // end while
  return $path;
}

details.html

Code: [Select]
               <ul>
{clickstream}
</ul>

Categories.php
//-----------------------------------------------------
//--- Clickstream -------------------------------------
//-----------------------------------------------------
$clickstream = "<a href=\"".$site_sess->url(ROOT_PATH."index.php")."\">".$lang['home']."</a>".$config['category_separator'].get_category_path($cat_id)."";

details.php
//-----------------------------------------------------
//---Clickstream---------------------------------------
//-----------------------------------------------------
$clickstream = "<li><a href=\"".$site_sess->url(ROOT_PATH."index.php")."\" class=\"clickstream\">".$lang['home']."</a>".$config['category_separator'];

if ($mode == "lightbox" && $in_mode) {
  $page_url = "";
 if (preg_match("/".URL_PAGE."=([0-9]+)/", $url, $regs)) {
    if (!empty($regs[1]) && $regs[1] != 1) {
      $page_url = "?".URL_PAGE."=".$regs[1];
    }
  }
  $clickstream .= "<a href=\"".$site_sess->url(ROOT_PATH."lightbox.php".$page_url)."\" class=\"clickstream\">".$lang['lightbox']."</a>".$config['category_separator'];
}
elseif ($mode == "search" && $in_mode) {
  $page_url = "";
  if (preg_match("/".URL_PAGE."=([0-9]+)/", $url, $regs)) {
    if (!empty($regs[1]) && $regs[1] != 1) {
      $page_url = "&amp;".URL_PAGE."=".$regs[1];
    }
  }
  $clickstream .= "<a href=\"".$site_sess->url(ROOT_PATH."search.php?show_result=1".$page_url)."\" class=\"clickstream\">".$lang['search']."</a>".$config['category_separator'];
}
else {
  $clickstream .= get_category_path($cat_id, 1).$config['category_separator'];
}
$clickstream .= $image_name."</li>";

Nun wird das ganze schon richtig ausgegeben

Code: [Select]
               <ul>
<li><a href="./index.php" class="clickstream">Home</a></li><li><a href="./categories.php?cat_id=2">Test 2</a></li><li><a href="./categories.php?cat_id=3">Unterkategorie1</a></li><li>Test3</li></ul>

Das Problem was nun noch besteht ist, in diesem Fall "Test3" das muss definitiv mit der Klasse "aktiv" belegt werden, aber da weis ich absolut nicht weiter....

Edit 3://
Und wieder einmal, ich musste den Code der details.php so abändern:
//-----------------------------------------------------
//---Clickstream---------------------------------------
//-----------------------------------------------------
$clickstream = "<li><a href=\"".$site_sess->url(ROOT_PATH."index.php")."\" class=\"clickstream\">".$lang['home']."</a>".$config['category_separator'];

if ($mode == "lightbox" && $in_mode) {
  $page_url = "";
 if (preg_match("/".URL_PAGE."=([0-9]+)/", $url, $regs)) {
    if (!empty($regs[1]) && $regs[1] != 1) {
      $page_url = "?".URL_PAGE."=".$regs[1];
    }
  }
  $clickstream .= "<a href=\"".$site_sess->url(ROOT_PATH."lightbox.php".$page_url)."\" class=\"clickstream\">".$lang['lightbox']."</a>".$config['category_separator'];
}
elseif ($mode == "search" && $in_mode) {
  $page_url = "";
  if (preg_match("/".URL_PAGE."=([0-9]+)/", $url, $regs)) {
    if (!empty($regs[1]) && $regs[1] != 1) {
      $page_url = "&amp;".URL_PAGE."=".$regs[1];
    }
  }
  $clickstream .= "<a href=\"".$site_sess->url(ROOT_PATH."search.php?show_result=1".$page_url)."\" class=\"clickstream\">".$lang['search']."</a>".$config['category_separator'];
}
else {
  $clickstream .= get_category_path($cat_id, 1).$config['category_separator'];
}
$clickstream .= "<a href=\"#\" class=\"aktiv\">".$image_name."</a></li>";

Das Problem war, dass meine CSS Angaben mit Span in einer <ul> nicht arbeiten.
Musste demnach auf das li.a achten und musste um genau zu sein, den Code so ändern:
$clickstream .= "<a href=\"#\" class=\"aktiv\">".$image_name."</a></li>";

Nun klappt alles. Ich danke für deine Anfangshilfe :D

LG
Title: Re: Clickstream verändern
Post by: Patrick_Diehl on August 16, 2009, 09:43:19 PM
Sieht kompliziert aus, aber wenns geht :wink:

Bin mir sicher meine Lösung wäre mit deinen Anpassungen ( li halt direkt in die Codes mit klasse rein usw.) leichter geworden aber wie geasgt, wenns geht.

Man muss sich eben nur hinsetzen und machen  :D
Title: Re: Clickstream verändern
Post by: Sunny C. on August 16, 2009, 09:57:04 PM
Ja kompliziert ist das aber nicht ganz!
Deine Idee war ok und hat soweit auch funktioniert, aber man muss einiges in den entsprechenden Dateien immer wieder extra abändern.
Eventuell mache ich mal eine Direkte-Lösung dafür und schreibe dazu mal eine Anleitung.
Aber derweil keine Zeit dafür!