Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
MyCode TableGenerator
#1
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!
Zitieren
#2
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;
    });
});
Zitieren
#3
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.
viele Grüße
Jockl
übersetzte und eigene Plugins
Zitieren
#4
Mit diesem Plugin kann man aber dein Design schön einfach zerschiessen, nur mal so als Info.
Mit freundlichen Grüßen

MrBrechreiz
Zitieren
#5
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;
    });
});
Zitieren
#6
Verabschiede dich lieber von dieser Idee, denn Du wirst damit keine Freude haben, Glaube mir.
Mit freundlichen Grüßen

MrBrechreiz
Zitieren
#7
Gibts Alternativen?
Zitieren
#8
Kommt darauf an was Du vor hast.
Mit freundlichen Grüßen

MrBrechreiz
Zitieren
#9
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
Zitieren
#10
(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.
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  MyCode TableGenerator MyBB.de Bot 34 8.876 09.12.2019, 00:31
Letzter Beitrag: Kammi_