MyBB.de Forum

Normale Version: MyCode TableGenerator
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4
Eine neue Erweiterung wurde veröffentlicht: MyCode TableGenerator

Zitat:Während dem Antworten oder Erstellen eines neuen Threads, erscheint dort eine Schaltfläche unter der Smiliebox, die einen JavaScript-Basierten Generator für das Erstellen von Tabellen öffnet.

Dieses Plugin fügt automatisch alle notwendigen MyCodes hinzu.

ACHTUNG: Vor der installation dieses Plugins entfernen sie bitte alle von ihnen hinzugefügten MyCodes!
Hi,

ich habe mir gerade diese Erweiterung installiert, aber ich habe damit ein paar Probleme.
Meine erstellten Tabellen sehen so aus:

http://www.grillerforum.de/Thread-Tabellentest

Code:
[table=95][tr][td]<input type="checkbox"> TH[/td][th]hjdjg[/th][th]dfhjdf[/th][/tr][tr][td]<input type="checkbox"> TH[/td][th]dfgj[/th][th]dfgjh[/th][/tr][/table]

Mein Problem damit ist, ich habe nie die Option "Checkbox" ausgewählt und möchte sie auch nicht haben.
Das ganze funktioniert nur, wenn man nochmal nachträglich den Code bearbeitet, wie im ersten Thread.

So sieht die tablegenerator.js aus.
Was könnte man da rausnehmen, damit man nur die Option "Tabellenerstellung" ohne Schnickschnack hat?

Code:
$(document).ready(function($){
    
    var col = 2;
    var row = 2;
    
    var makeCol = '<td><textarea cols="15" rows="3"></textarea></td>';
    var makeRow = '<tr><td><input type="checkbox" /> TH</td></tr>';
    
    var blocker = 0;
    
    // add column
    $('#addCol').live('click', function() {
        if(blocker > 0) {
            alert('Please remove all table head markings.');
        }
        else {
        col++;
        $('#container table tr').append(makeCol);
        }
    });
    
    // remove column until 2 left
    $('#delCol').live('click', function() {
        if(blocker > 0) {
            alert('Please remove all table head markings.');
        }
        else {
            if(col > 2) {
                $('#container table td:nth-child('+col+')').remove();
                col--;
            }
        }
    });
    
    // add row
    $('#addRow').live('click', function() {
        row++;
        var colCounter = col;
        
        $('#container table').append(makeRow);
        
        while(colCounter > 0) {
            $('#container table tr:last').append(makeCol);
            colCounter--;
        }
    });
    
    // remove row until 2 left
    $('#delRow').live('click', function() {
        if(row > 2) {
            $('#container table tr:last').remove();
            row--;
        }
    });
    
    // make tablehead
    $('input[type=checkbox]').live('click', function() {
        if($(this).parent().siblings().is('td')) {
            $(this).parent().siblings().replaceWith('<th><input type="text" size="15" /></th>');
            blocker++;
        }
        else {
            $(this).parent().siblings().replaceWith('<td><textarea cols="15" rows="3"></textarea></td>');
            blocker--;
        }
    });
    
    // generate code
    $('#tabCreate').live('click', function() {
        
        var width = $('#tabWidth').val();
        if(width == "") {
            var width = 95;
        }
        
        $('#container textarea').each(function() {
                            var textarea = $(this);
                            textarea.replaceWith(textarea.val());
                        });
        
        $('#container input[type="text"]').each(function() {
                            var input = $(this);
                            input.replaceWith(input.val());
                        });
                        
        var oldValue = $('#container').clone().html().replace(/\r\n|\r|\n/g, '') //new line
                                                    .replace(/\t/g, '') //tab
                                                    .replace(/<td><input type="checkbox"> TH<\/td>/g, '')
                                                    .replace(/<td class="deleteMe"><\/td>/g, '')
                                                    .replace(/<table>/g, '[table='+width+']')
                                                    .replace(/<\/table>/g, '[\/table]')
                                                    .replace(/<tr>/g, '[tr]')
                                                    .replace(/<\/tr>/g, '[\/tr]')
                                                    .replace(/<th>/g, '[th]')
                                                    .replace(/<\/th>/g, '[\/th]')
                                                    .replace(/<td>/g, '[td]')
                                                    .replace(/<\/td>/g, '[\/td]')
                                                    .replace(/<tbody>/g, '')
                                                    .replace(/<\/tbody>/g, '');
                                                    
        $('#container table').replaceWith('<textarea>');
        $('#container textarea').attr('cols','70').attr('rows','15').text(oldValue);
    });
    
    // close window
    $('#tabClose').live('click', function() {
        window.close();
        return false;
    });
});
Du könntest mal folgendes probieren:

ersetze die Zeile
Code:
var makeRow = '<tr><td><input type="checkbox" /> TH</td></tr>';
durch
Code:
//var makeRow = '<tr><td><input type="checkbox" /> TH</td></tr>';
und/oder kommentiere die Zeile
Code:
$('#container table').append(makeRow);
aus.
Mit diesem Plugin kann man aber dein Design schön einfach zerschiessen, nur mal so als Info.
Jo, das mit dem Design zerschießen hab ich gerade mal simuliert.
Gäbe es den eine Alternative zum Tabellen erstellen?


Leider klappt das mit den Checkboxen rausnehmen nicht.
So sieht der Code jetzt aus:

Code:
$(document).ready(function($){
    
    //var col = 2;
    //var row = 2;
    
    //var makeCol = '<td><textarea cols="15" rows="3"></textarea></td>';
    //var makeRow = '<tr><td><input type="checkbox" /> TH</td></tr>';
    
    var blocker = 0;
    
    // add column
    $('#addCol').live('click', function() {
        if(blocker > 0) {
            alert('Please remove all table head markings.');
        }
        else {
        col++;
        $('#container table tr').append(makeCol);
        }
    });
    
    // remove column until 2 left
    $('#delCol').live('click', function() {
        if(blocker > 0) {
            alert('Please remove all table head markings.');
        }
        else {
            if(col > 2) {
                $('#container table td:nth-child('+col+')').remove();
                col--;
            }
        }
    });
    
    // add row
    $('#addRow').live('click', function() {
        //row++;
        var colCounter = col;
        
        //$('#container table').append(makeRow);
        
        while(colCounter > 0) {
            $('#container table tr:last').append(makeCol);
            colCounter--;
        }
    });
    
    // remove row until 2 left
    $('#delRow').live('click', function() {
        if(row > 2) {
            $('#container table tr:last').remove();
            row--;
        }
    });
    
    // make tablehead
    $('input[type=checkbox]').live('click', function() {
        if($(this).parent().siblings().is('td')) {
            $(this).parent().siblings().replaceWith('<th><input type="text" size="15" /></th>');
            blocker++;
        }
        else {
            $(this).parent().siblings().replaceWith('<td><textarea cols="15" rows="3"></textarea></td>');
            blocker--;
        }
    });
    
    // generate code
    $('#tabCreate').live('click', function() {
        
        var width = $('#tabWidth').val();
        if(width == "") {
            var width = 95;
        }
        
        $('#container textarea').each(function() {
                            var textarea = $(this);
                            textarea.replaceWith(textarea.val());
                        });
        
        $('#container input[type="text"]').each(function() {
                            var input = $(this);
                            input.replaceWith(input.val());
                        });
                        
        var oldValue = $('#container').clone().html().replace(/\r\n|\r|\n/g, '') //new line
                                                    .replace(/\t/g, '') //tab
                                                    //.replace(/<td><input type="checkbox"> TH<\/td>/g, '')
                                                    .replace(/<td class="deleteMe"><\/td>/g, '')
                                                    .replace(/<table>/g, '[table='+width+']')
                                                    .replace(/<\/table>/g, '[\/table]')
                                                    .replace(/<tr>/g, '[tr]')
                                                    .replace(/<\/tr>/g, '[\/tr]')
                                                    .replace(/<th>/g, '[th]')
                                                    .replace(/<\/th>/g, '[\/th]')
                                                    .replace(/<td>/g, '[td]')
                                                    .replace(/<\/td>/g, '[\/td]')
                                                    .replace(/<tbody>/g, '')
                                                    .replace(/<\/tbody>/g, '');
                                                    
        $('#container table').replaceWith('<textarea>');
        $('#container textarea').attr('cols','70').attr('rows','15').text(oldValue);
    });
    
    // close window
    $('#tabClose').live('click', function() {
        window.close();
        return false;
    });
});
Verabschiede dich lieber von dieser Idee, denn Du wirst damit keine Freude haben, Glaube mir.
Gibts Alternativen?
Kommt darauf an was Du vor hast.
Ich suche einen ganz einfachen Tabellengenerator, womit ich die Anzahl der Spalten und Zeilen komfortabel vorgeben kann und auch füllen kann. Ohne jeglichen Schnickschnack

Wie diese Tabelle im ersten Beitrag ---> http://www.grillerforum.de/Thread-Tabellentest
(29.12.2012, 17:30)thomas01 schrieb: [ -> ]Gäbe es den eine Alternative zum Tabellen erstellen?

Für einfache Ansprüche könntest du auch ein span mit einer gewissen Mindestbreite nehmen.


Tab-MyCode

\[tab\](.*?)\[/tab\]

<span style="min-width: 15em; padding: 2px; margin-top: 2px; margin-bottom: 2px; display: inline-block; background: #ded;">$1</span>


Das Ergebnis sieht aber nur dann wie eine Tabelle aus, wenn die Inhalte der Tabs entsprechend kurz sind.

Kommt eben darauf an, was du erreichen willst.
Seiten: 1 2 3 4