+ Antworten
Ergebnis 1 bis 8 von 8

Thema: JCE Editor, eigene CSS Klassen für Tabellen (odd/even)

  1. #1
    Neu an Board
    Registriert seit
    18.09.2011
    Beiträge
    7
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard JCE Editor, eigene CSS Klassen für Tabellen (odd/even)

    Hallo,


    ich verwende den JCE Editor und habe 3 Tabellenklassen angelegt. Zum Beispiel

    Code:
    table.horizontal .tr-even {
    background-color: yellow;
    }
    Als Effekt hätte ich gerne, dass JCE alle geraden Tabellenzeilen automatisch mit der Klasse tr-even versieht. Macht er aber nicht. Kann ich natürlich auch manuell machen, ist aber nicht im Sinne des Erfinders Dazu hätte ich gerne, dass der User nur diese fertigen Klassen auswählen kann. Ich hätte gerne, dass die Tabellen alle gleich aussehen.

    Danke für eure Hilfe!

    Grüße
    Geändert von saedelaere (19.09.2011 um 18:40 Uhr)

  2. #2
    Gute Seele des Boards Avatar von keraM
    Registriert seit
    12.03.2006
    Ort
    Dresden
    Beiträge
    10.587
    Bedankte sich
    152
    Erhielt 2.557 Danksagungen
    in 2.359 Beiträgen

    Standard

    Als Effekt hätte ich gerne, dass JCE alle geraden Tabellenzeilen automatisch mit der Klasse tr-even versieht.
    http://www.ich-lerne-css.de/Style/Ex...7/evenodd.html
    Gruß keraM
    Joomla-FAQ: --> Klick!
    Support per PN: --> Klick!

  3. #3
    Neu an Board
    Registriert seit
    18.09.2011
    Beiträge
    7
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Danke! Das hatte ich auch schon gefunden. Problem ist, dafür brauche ich die Pseudo-Klassen aus CSS3. Das unterstützen aber nur neuere Browser.

    EDIT: Hier zum Beipiel hat einer eine Liste zusammengestellt wo man sieht wer alles nth-child unterstützt.
    http://kimblim.dk/css-tests/selectors/#history

    Der IE bis einschließlich Version 8 natürlich nicht :/
    Geändert von saedelaere (18.09.2011 um 14:38 Uhr)

  4. #4
    Neu an Board
    Registriert seit
    18.09.2011
    Beiträge
    7
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Vielleicht mal noch eine zusätzliche Frage. Wie kann ich denn für alle Tabellen die ich einfüge schon gewisse Styles vorgeben? Problem ist, packe ich sowas wie
    Code:
    .tr {
    border: 1px solid black;
    }
    In meine template.css dann gilt das natürlich für alle Tabellenzeilen. Also auch für den restlichen Content, den Joomla 1.5 ja leider immer noch in Tabellenform anlegt.

  5. #5
    Neu an Board
    Registriert seit
    18.09.2011
    Beiträge
    7
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Also ich habe das Problem gelöst.

    Was habe ich gemacht. Erst mal kann der JCE leider nicht das was ich eigentlich haben will. Denn ich will, dass die entsprechenden CSS Klassen bereits beim erstellen der Tabelle eingefügt werden. Entsprechend habe ich als erstes die table.js angepasst

    Code:
    for (var y=0; y<rows; y++) {
    		//html += "<tr>";
    		//Give all odd and even rows the appropriate css class
    		modulo = (y+1) % 2
    		if (modulo != 0)
    			html += "<tr class=\"tr-odd\">";
    		else
    			html += "<tr class=\"tr-even\">";
    
    		for (var x=0; x<cols; x++) {
    			if (!tinymce.isIE)
    				html += '<td><br data-mce-bogus="1"/></td>';
    			else
    				html += '<td></td>';
    		}
    
    		html += "</tr>";
    	}
    Ich habe in die for schleife einen Mechanismus über den Modulo Operator eingebaut. Dementsprechend werden die Zeilen bereits mit einer Klasse versehen.
    Jetzt kommt diese Reihenfolge natürlich durcheinander wenn ich Zeilen einfüge oder lösche. Dazu habe ich in die editor_plugin.js eine neue Feunktion eingebaut.

    Code:
    function updateRowsClass() {
    			//var rows = table.rows;
    			var rows = table.getElementsByTagName("tr");
    			//console.log("rows.length", rows.length);
    			for (var i=0; i<rows.length; i++) {
    				modulo = (i+1) % 2
    				if (modulo != 0) {
    					//console.log("odd rows[",i ,"] ", rows[i]);
    					dom.setAttrib(rows[i], 'class', "tr-odd");
    					//updateRowAfterInsDel(rows[i], ".tr-odd");
    				} else {
    					//console.log("even rows[",i ,"] ", rows[i]);
    					dom.setAttrib(rows[i], 'class', "tr-even");
    					//updateRowAfterInsDel(rows[i], ".tr-even");
    				}
    			}
    		};
    Die wird jetzt immer aufgerufen wenn an den Zeilen etwas geändert wird. Funktioniert bisher einwandfrei. Jetzt entschlacke ich noch die Dialoge und am Schluss gibt es auf der ganzen Seite noch 4 unterschiedliche Tabellenlayouts
    Allerdings dürfte der Aufwand mit Tabellenzellen noch deutlich größer werden...

    Grüße

  6. #6
    Gute Seele des Boards Avatar von keraM
    Registriert seit
    12.03.2006
    Ort
    Dresden
    Beiträge
    10.587
    Bedankte sich
    152
    Erhielt 2.557 Danksagungen
    in 2.359 Beiträgen

    Standard

    Und was passiert bei einem Joomla Update?
    Gruß keraM
    Joomla-FAQ: --> Klick!
    Support per PN: --> Klick!

  7. #7
    Neu an Board
    Registriert seit
    18.09.2011
    Beiträge
    7
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Ja gute Frage Wobei hier ein Update des JCE wohl eher das Problem wäre. Ich muss mal herausfinden ob ich das als Override ins Template Verzeichnis kopieren kann.

  8. #8
    Neu an Board
    Registriert seit
    08.01.2012
    Beiträge
    1
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Hallo saedelaere,

    der code ist ja super! Hab den ersten Codeteil schon in table.js eingefügt und funktioniert! Leider hab ich es nicht geschafft die richtige Stelle für updateRowsClass() zu finden. Wo füge ich das richtig ein?

    Danke schon mal!

+ Antworten

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein