php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 28.04.2008, 21:13  
Neuer Benutzer
 
Registriert seit: 28.04.2008
Beiträge: 14
cybermailer befindet sich auf einem aufstrebenden Ast
Standard kleine Frage zu Einfärben von Kategorie

Hallo,

ich habe ein css & php script welches automatisch die Kategorien erstellt und dann natürlich auch das Layout zuweist.

Jetzt würde ich aber gerne einzelne Kategorien herausnehmen und farblich ändern. Wie müsste dazu der hardcode lauten welchen ich unter php brauche damit ich z.B. category id 1 = red machen kann ....???

Hat jemand einen Plan?

danke,
lg@all
cybermailer ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 29.04.2008, 08:34  
Erfahrener Benutzer
 
Benutzerbild von Hu5eL
 
Registriert seit: 26.02.2008
Beiträge: 342
Hu5eL befindet sich auf einem aufstrebenden Ast
Hu5eL eine Nachricht über ICQ schicken
Standard

PHP-Code:
if($kategorie=="red") echo "color:red;"
Hu5eL ist offline  
Alt 29.04.2008, 10:06  
Neuer Benutzer
 
Registriert seit: 28.04.2008
Beiträge: 14
cybermailer befindet sich auf einem aufstrebenden Ast
Standard

aha....also muss in meinem Falle das Ganze so aussehen oder?

if($kategorie=="red") echo "color:red;";



if ($categorie id==67) echo "color:#000000";

ich bin mir sicher das stimmt so noch nicht ganz ....

hoffe aber ihr könnt mir helfen .. das es so geht

Danke an alle....
cybermailer ist offline  
Alt 29.04.2008, 10:31  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von cybermailer Beitrag anzeigen
ich bin mir sicher das stimmt so noch nicht ganz ....
Doch, doch, solange wir nicht wissen was du willst, stimmt das sicher. Wenn du uns allerdings konkretere Angaben machst oder gar einen Ausschnitt aus deinem Code zeigst, dann stimmt es wahrscheinlich nicht mehr.
PS
Ist ja eigentlich keine PHP-Frage
__________________
Gruss
L
lazydog ist offline  
Alt 29.04.2008, 10:46  
Neuer Benutzer
 
Registriert seit: 28.04.2008
Beiträge: 14
cybermailer befindet sich auf einem aufstrebenden Ast
Standard

also zur erklärung ich nutze xt commerce und bei mir werden die kategorien automatisch generiert auf Grundlage der css.

Das heißt die Kategorienamen sind i.d. mysql Datenbank abgegelegt.
Die Tabelle dazu heißt categories....die Zuweisung z.B. Kategoriename HAUS erfolgt so: categories_id 67 (67 entspricht der Kategorie HAUS)

das ist mein css:

PHP-Code:
/* ########## Menu ########## */
ul.navilist { list-style-type:nonemargin:0px;padding:0px;}
li.maincat {padding:0pxmargin0;}
/* ##########Hauptkategorie ########## */
.maincat { list-style-type:nonemargin0padding0border-bottom1px dashed #b2bc73;}
.maincat a {font-size11pxcolor:#000000; padding: 3px 0 2px 14px; display: block; background-image: url(img/menupfeil.jpg); background-repeat: no-repeat; }
.maincat a:hover{font-size11pxcolor:#ce402c; padding: 3px 0 2px 14px; display: block; background-image: url(img/menupfeilh.jpg); background-repeat: no-repeat; }
.maincat a.gewaehlt{font-size11pxcolor:#ce402c; padding: 3px 0 2px 14px; display: block; background-image: url(img/menupfeilh.jpg); background-repeat: no-repeat; }
.maincat a.gewaehlt:hover{font-size11pxcolor:#ce402c; padding: 3px 0 2px 14px; display: block; background-image: url(img/menupfeilh.jpg); background-repeat: no-repeat; }
 
/* ##########Unterkategorie 1 Eben ########## */
.subcatlevel1 {margin0padding0border-bottom1px dashed #b2bc73;}
.subcatlevel1 a{font-size11pxcolor:#000000; padding: 3px 0 2px 14px; display: block; background-image: url(img/menupfeil.jpg); background-repeat: no-repeat; margin: 0 0 0 6px;}
.subcatlevel1 a:hover {font-size11pxcolor:#ce402c; padding: 3px 0 2px 14px; display: block; background-image: url(img/menupfeilh.jpg); background-repeat: no-repeat; margin: 0 0 0 6px;}
.subcatlevel1 a.gewaehlt{color:#ce402c; background-image: url(img/menupfeilh.jpg); background-repeat: no-repeat;}
.subcatlevel1 a.gewaehlt:hover{color:#ce402c; background-image: url(img/menupfeilh.jpg); background-repeat: no-repeat;}
 
/* ##########Unterkategorie 2 Eben ########## */
.subcatlevel2 {margin0padding0border-bottom1px dashed #f1f7fa;}
.subcatlevel2 a{font-size11pxcolor:#000000; padding: 3px 0 2px 14px; display: block; background-image: url(img/menupfeil.jpg); background-repeat: no-repeat; margin: 0 0 0 12px;}
.subcatlevel2 a:hover {font-size11pxcolor:#ce402c; padding: 3px 0 2px 14px; display: block; background-image: url(img/menupfeilh.jpg); background-repeat: no-repeat; margin: 0 0 0 12px;}
.subcatlevel2 a.gewaehlt{color:#ce402c; background-image: url(img/menupfeilh.jpg); background-repeat: no-repeat;}
.subcatlevel2 a.gewaehlt:hover{color:#ce402c; background-image: url(img/menupfeilh.jpg); background-repeat: no-repeat;} 
und hier meine xt_show_category

PHP-Code:
function xtc_show_category($counter) {
global 
$foo$categories_string$id;
 
//start the loop
for ($a=0$a<$foo[$counter]['level']; $a++) 
{}
 
if (
$foo[$counter]['level']==''//maincat
{
if (
strlen($categories_string)=='0'
{
$categories_string .='<ul class="navilist">';

$categories_string .='
<li class="maincat'
;
$categories_string .= '"><a class="';
if ( (
$id) && (in_array($counter$id)) ) 
{
$categories_string .= 'gewaehlt';
}
$categories_string .= '" href="';

else 
//subcat
{
$categories_string .= '
<li class="subcatlevel'
.$foo[$counter]['level'];
$categories_string .= '"><a class="';
if ( (
$id) && (in_array($counter$id)) ) 
{
$categories_string .= 'gewaehlt';
}
$categories_string .= '" href="';
}
$cPath_new=xtc_category_link($counter,$foo[$counter]['name']);
$categories_string .= xtc_href_link(FILENAME_DEFAULT$cPath_new);
$categories_string .= '">';
$categories_string .= $foo[$counter]['name'];
if (
SHOW_COUNTS == 'true'
{
$products_in_category xtc_count_products_in_category($counter);
if (
$products_in_category 0
{
$categories_string .= ' <span class="catcount">(' $products_in_category ')</span>';
}
}
$categories_string .= '</a></li>';
if (
$foo[$counter]['next_id']) 
{
xtc_show_category($foo[$counter]['next_id']);

else 
{
$categories_string .= '</ul>';
}
}
?> 
Ich hoffe jetzt konnt eich Klarheit schaffen )
Danke für eure hilfe...

bin dankbar für jeden tipp.
cybermailer ist offline  
Alt 29.04.2008, 11:37  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Als allererstes, schau mal, wie man Code vernünftig formatieren kann, so kann ja kein Mensch deinen Code lesen. Das gilt sinngemäss auch für den CSS-Code.
Globale Variablen in Funktionen sind eigentlich immer überflüssig.
Ich weiss jetzt natürlich immer noch nicht, was du z.B. rot ausgeben willst. Aber grundsätzlich machst du mal in deinem Stylesheet ein zusätzliche Klasse mit roter Schrift. Und wenn dann die entsprechende Kategorie auftritt, weist du dem gewünschten Element die entsprechende Klasse zu.
__________________
Gruss
L
lazydog ist offline  
Alt 29.04.2008, 13:51  
Erfahrener Benutzer
 
Benutzerbild von Hu5eL
 
Registriert seit: 26.02.2008
Beiträge: 342
Hu5eL befindet sich auf einem aufstrebenden Ast
Hu5eL eine Nachricht über ICQ schicken
Standard

natürlich das color:red in den style="" dings bums von deiner schrift... einfach so wird es nicht funktionieren....
Hu5eL ist offline  
Alt 29.04.2008, 13:58  
Neuer Benutzer
 
Registriert seit: 28.04.2008
Beiträge: 14
cybermailer befindet sich auf einem aufstrebenden Ast
Standard

das ist das Problem. das css dient nur für die allgemeine formatierung
siehe ElectronicStore.at ... es wäre aber von vorteil wenn ich gewissen Kategorien zb. ElectronicStore.at eine eigene Farbe geben könnte.

Da die Kategorien dynamisch erstellt werden und nicht hardcode sind glaub ich dass ich mit css da nichts machen kann ... sondern einfach hergehen muss und manuell ins php file die Zeile code. (je nachdem welche Kategorie ich einfärben will ändere ich die categories id....)


so sieht meine sql tabelle aus... und von hier kann ich entnehmen welche kategorie welche id hat...

wie kann ich in php nun sagen dass immer wenn die categorie mit jener id zum vorschein kommt einfärbt wird in die von mir gewünschte Farbe...

lg


diese php datei bindet die kategorien ein ...


PHP-Code:
global $MaxLevel$HideEmpty$ShowAktSub;
$MaxLevel 2;
$HideEmpty true;
$ShowAktSub true;
function 
xtc_show_category($cid$level$foo$cpath) {
global 
$old_level$categories_string//, $HTTP_GET_VARS; // Brauchen wir nicht
global $MaxLevel$HideEmpty$ShowAktSub;
// 1) Überprüfen, ob Kategorie Produkte enthält
$Empty true;
$pInCat xtc_count_products_in_category($cid);
if (
$pInCat 0)
$Empty false;

// 2) Überprüfen, ob Kategorie gezeigt werden soll
$Show false;
if (
$HideEmpty) {
if (!
$Empty)
$Show true;
} else {
$Show true;
}
// 3) Überprüfen, ob Unterkategorien gezeigt werden sollen
$ShowSub false;
if (
$MaxLevel) {
if (
$level $MaxLevel)
$ShowSub true;
} else {
$ShowSub true;
}

if(
$Show) { // Wenn Kategorie gezeigt werden soll ....

if ($cid != 0) {

// 24.06.2007 BugFix
// Auf "product_info"-Seiten wurde Kategorie nicht erkannt 
// $category_path = explode('_',$HTTP_GET_VARS['cPath']);
$category_path explode('_',$GLOBALS['cPath']); 
$in_path in_array($cid$category_path);
$this_category array_pop($category_path);

for (
$a 0$a $level$a++) ;

// Produktzählung
$ProductsCount false;
// Lange gerätselt, aber das ist tatsächlich 
// ein String und kein Boolean. 
if (SHOW_COUNTS == 'true'
$ProductsCount ' <em>(' $pInCat ')</em>'

// Aktiv - Nicht Aktiv
$Aktiv false;
if (
$this_category == $cid
// Wenn Kategorie aktiv ist
$Aktiv ' class="gewaehlt"'
elseif (
$in_path
// Wenn Oberkategorie aktiv ist
$Aktiv ' class="gewaehlt"';

// Hat ein SubMenue - hat kein SubMenue
// CSS-Klasse festlegen
$SubMenue false;
if (
xtc_has_category_subcategories($cid)) 
$SubMenue " SubMenue";

 
// Listenpunkt
// CSS-Klasse festlegen
$MainStyle 'CatLevel'.$level;

// Quelltext einrücken
$Tabulator str_repeat("\t",$level-1);

// Navigations-Liste ist jetzt hierarchisch!
if($old_level) { 
if (
$old_level $level) {
$Pre "\n<ul>";
$Pre str_replace("\n","\n".$Tabulator$Pre)."\n";
} else {
$Pre "</li>\n";
if (
$old_level $level) {
// Listenpunkte schließen
// Quelltext einrücken
for ($counter 0$counter $old_level $level$counter++) {
$Pre .= str_repeat("\t"$old_level $counter -1)."</ul>\n".str_repeat("\t"$old_level $counter2)."</li>\n";
}
}

}

// Listenpunkte zusammensetzen
$categories_string .= $Pre.$Tabulator.
'<li class="'.$MainStyle.$SubMenue.'">'.
// Bugfix, 12. Juli 2007
//'<a href="' . xtc_href_link(FILENAME_DEFAULT, 'cPath=' . $cpath . $cid) . '">'.
'<a'.$Aktiv.' href="' xtc_href_link(FILENAME_DEFAULTxtc_category_link($cid$foo[$cid]['name']) ) . '">'.
$foo[$cid]['name'].$ProductsCount.
'</a>';
}

// für den nächsten Durchgang ...
$old_level $level;

// Unterkategorien durchsteppen
foreach ($foo as $key => $value) {

if (
$foo[$key]['parent'] == $cid) {

// Sollen Unterkategorien gezeigt werden?
if ($ShowAktSub && $Aktiv)
$ShowSub true;

if (
$ShowSub
xtc_show_category($key$level+1$foo, ($level != $cpath $cid '_' ''));

}
// Ende if($Show)

?> 
cybermailer ist offline  
Alt 29.04.2008, 15:24  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von cybermailer Beitrag anzeigen
wie kann ich in php nun sagen dass immer wenn die categorie mit jener id zum vorschein kommt einfärbt wird in die von mir gewünschte Farbe...
Vermutlich genau so, wie ich schon gesagt habe. Aber ein zweites mal schaue ich zum gleichen Thema keinen unformatierten Code an.
__________________
Gruss
L
lazydog ist offline  
Alt 29.04.2008, 18:27  
Neuer Benutzer
 
Registriert seit: 28.04.2008
Beiträge: 14
cybermailer befindet sich auf einem aufstrebenden Ast
Standard

den code habe ich leider nicht geschrieben ...
anscheinend dürfte das problem ohnehin nicht so einfach zu lösen sein wie ich dachte ... schade..
cybermailer ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
kleine Frage zu "ORDER BY" [erledigt] PHP Tipps 2005-2 21 23.08.2005 15:18
kleine frage zu funtionen PHP Tipps 2005-2 3 08.08.2005 00:27
usort Funktion, kleine Frage zur Arbeitsweise. PHP Tipps 2005-2 4 25.07.2005 23:08
Kleine Frage eines Kleinen Neulings O.o Datenbanken 3 08.06.2005 19:49
Kleine Frage HTML, Usability und Barrierefreiheit 2 05.06.2005 13:19
eine kleine frage zu ordner und select tag -=Slider=- PHP Tipps 2005 10 15.05.2005 13:26
Performence Frage PHP-Fortgeschrittene 10 06.05.2005 19:00
kleine frage PHP Tipps 2004 7 15.09.2004 22:52
Kleine frage zu einem Pulldownmenü PHP Tipps 2004 2 03.09.2004 03:31
[Erledigt] Frage! PHP Tipps 2004 4 27.07.2004 11:25
kleine frage! Datenbanken 7 25.07.2004 16:18
Witze Off-Topic Diskussionen 7 09.07.2004 20:51
Kleine Include Frage PHP Tipps 2004 4 06.07.2004 22:54
[Erledigt] Kleine Frage PHP Tipps 2004 29 02.07.2004 18:12

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
navilist maincat, xtc_show_category unterkategorie farbe, hauptkategorie unterkategorie quelltext html pulldownmenü, xtcc 4 unterkategorie einrücken, xtc, mit kategorie id einzelne kategorien färben, xtc_count_products_in_category(), maincat subcat anpassen xtc, xtc kategorie level, stylesheet.css xtc 4 kategorie schriftgrösse, xtc unterkategorie einrücken, xtc unterkategorien einrücken, xtc categories $showsub = false;, xtc aktive kategorie level1 farbe, php kategorien per id, function xtc_show_category($counter), listenpunkte einfärben, listenpunkt einfärben, xtc_href_link, if ($showsub) xtc_show_category($key, $level 1, $foo, ($level != 0 ? $cpath . $cid . \'_\' : \'\'));, html listenpunkte einfärben

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:55 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum