Archiv

Posts Tagged ‘PHP’

bezahlte Downloads anbieten

Bei der Joomla Erweiterung DOCman habe ich die Möglichkeit vermisst sich Downloads bezahlen zu lassen.

Hier also ein kleines Plugin für DOCman mit dem dieser Mangel behoben wird.

  • Es können für jedes Dokument eigene Preise und eigenen Steuern angegeben werden.
  • Steuern können in % oder in ganzen Werten angegeben werden
  • Preise können mit oder ohne Steuern berechnet bzw. angezeigt werden
  • Es können flexible Preise angeben werden. d.h. der Kunde entscheidet wie viel er zahlen will.

Download DOCman payperdownload

Installationsanweisungen

Wenn euch das Plugin gefällt, stimmt doch dafür ab

Kategorien:Deutsch Schlagwörter: , , ,

Joomla Dropbox Plugin mit Ajax

In der aktuellen Version (0.9) des Dropbox Plugins für Joomla werden die Bilder (pic und gallery Funktion) asyncron per Ajax geladen. Das beschleunigt den Seitenaufbau, weil jetzt nicht mehr gewartet werden muss bis alle Bilder geladen sind.

Kategorien:Deutsch Schlagwörter: , , , ,

Eventlist Plugin für Joomla mit neuen Funktionen

Kategorien:Deutsch Schlagwörter: ,

Ein Experiment

Ich habe eine neue Version des Joomla Dropbox Plugins online gestellt

Diese Version hat einige interessante Neuerungen:

  • die Bilder werden nach dem Download von dropbox zwischengespeichert und nur erneut runtergeladen, wenn sie bei Dropbox geändert wurden, das beschleunigt die „gallery“ und die „pic“ Funktion
  • ein ganzes Verzeichnis kann als ZIP-Datei runtergeladen werden
  • einige Icons werden angezeigt
  • die Dateigröße wird angezeigt
  • bei der Anzeige von einzelnen Bilder kann eine Bildüberschrift angegeben werden
  • die Verzeichnisnavigation ist verbessert woden
  • besserer Umgang mit Sonderzeichen in Datei- und Verzeichnisnamen
  • Fehlerbehebung: lange Datei und Verzeichnisnamen werden korrekt dargestellt
  • einige kleine Fehler wurden behoben
  • etwas mehr Hilfe und Dokumentation

Da ich aber Geld verdienen  muss starte ich mit dieser Version ein Experiment. Das Plugin muss bezahlt werden, aber jeder darf selber entscheiden wie viel es wert ist. Wenn du min 1EUR zahlst kannst du die neue Version runterladen.

Demo

Forum

Kategorien:Deutsch Schlagwörter: , ,

Joomla Dropbox Plugin mit neuer Funktion

Ich habe Zeit gefunden an dem Dropbox Plugin weiter zu arbeiten.

In der Version 0.7 ist es mögliche, einzelne Bilder anzuzeigen. Für die Anzeige wird Enlarge It 1.1 verwendet.

Ausserdem gibt es eine Schwedische Übersetzung, mehr übersetze Texte, eine bessere Fehleranzeige und ein paar Kleinigkeiten mehr.

Also testen und bei Gefallen abstimmen.

Bei Problemen gibt es hier ein Support-Forum

Kategorien:Deutsch Schlagwörter: , ,

Joomla Dropbox Plugin mit Galery Option

Die neueste Version des Dropbox Plugins kann jetzt ein Dropbox Verzeichnis als Galerie anzeigen. Dazu habe ich die Very Simple Image Gallery von http://www.bretteleben.de verwendet.

Demo der Galerie Option

Zusätzlich wurden deutsche und englische Sprachdateien hinzugefügt.

Anmerkungen und Kommetare sind erwünscht

Kategorien:Deutsch Schlagwörter: , , ,

Everntlist Plugin mit neuer Funktion

Bei der neuen Version des Joomla Eventlist Plugins können jetzt alle Termine eines Ortes angezeigt werden

Kategorien:Deutsch Schlagwörter: , , ,

Neue Version des Eventlist Plugins

November 24, 2009 4 Kommentare

Ein paar Bugs entfernt: Eventlist Plugin

Kategorien:Deutsch Schlagwörter: , , ,

Preview auf die nächste Version des Joomla Dropbox Plugins

Hier könnt ihr die nächste Version des Joomla Dropbox Plugins sehen: http://www.individual-it.net/Dropbox-Plugin-Demo-Seite-Preview-next-version.html

Diese Version hat eine Galerie Funktion, damit werde alle Bilder im Verzeichnis in einer einfachen Galerie angezeigt.

Für Anregungen und Feedback wäre ich dankbar: Dropbox Forum

Kategorien:Deutsch Schlagwörter: , , ,

Joomla Community Builder Multipage Registration

November 24, 2009 3 Kommentare

Wie bereits angekündigt möchte ich nun beschreiben wie es möglich ist mit Community Builder eine Registration einzurichten, die sich über mehrere Seiten erstreckt.

Einige Grundlegende Sachen

  1. Gleich zum Anfang eine Warnung: dies ist keine Out-of-the-box Lösung, sondern ein Hack.
  2. Ich versehe alle Änderungen mit Kommentaren um diese wieder zu finden, natürlich können diese enfernt oder weggelassen werden
  3. Ich übernehme natürlich keine Garantie für die Funktion, also erst mal BACKUP machen
  4. die Lösung funktioniert nicht ohne Javascript
  5. bei einer anderen CB Version als 1.2.1 kann alles ganz anders aussehen

Kommen wir nun zum Ablauf

  1. Zunächst installiert man normal die CB Komponente und das CB Login Modul. Ich benutze jeweils die aktuelle Version 1.2.1
  2. im „CB Tab Manager“ werden nun die Tabs angelegt die bei der Registration angezeigt werden sollen.
    • mit „Registration ordering“ die Reihenfolge festlegen
    • „Position“: Main area
    • „Display type“  Tabbed pane
  3. der nächste Schritt ist immer noch nicht ungewöhnlich: im „CB Field Manager“ die gewünschten Felder anlegen
  4. Jetzt gehts los mit hacken in der Datei: components/com_comprofiler/comprofiler.html.php diese Zeile suchen:
    $tabcontent  =    $tabs->getEditTabs( $user, $postvars, $output, 'tabletrs', 'register', false );

    diese Zeile muss ersetzt werden durch:

    //Versuche einer Multipage Registration
    //die Registration als divs anzeigen
    $tabcontent = $tabs->getEditTabs( $user, $postvars, $output, 'divs', 'register', true );
  5. In die Datei: components/com_comprofiler/plugin/templates/default/default.php kommt ab Zeile 222 dieser Code
    <!--
    www.individual-it.net
    22.10.2009
    Versuche einer Multipage Registration
    Javascript zur Ausblendung bzw. Einblendung der aktullen cbtab
    -->
    <script type="text/javascript">
    
    function validate_and_switch_page(thisid,direction)
    {
    var nextid;
    
    for(i = 0; i < CBdivsAry.length; i++)
    {
    
    if (CBdivsAry[i] == thisid && direction=="forward")
    nextid=CBdivsAry[i+1];
    if (CBdivsAry[i] == thisid && direction=="backward")
    nextid=CBdivsAry[i-1];
    
    }
    
    allOK=true;
    var oldclassName;
    $A(document.getElementById("cbcheckedadminForm").elements).each(function(el)
    {
    el = $(el);
    
    if ((el.getTag() == 'input' || el.getTag() == 'select' ) && el.className.match("required") != null)
    {
    
    //validate just this page
    if (el.parentNode.parentNode.parentNode.parentNode.parentNode.id == thisid)
    {
    
    if (el.value.length<=0 || (el.getTag() == 'select' && el.value=='---')   )
    {
    thisOK=false;
    if (el.className.match("invalid") == null)
    el.className = el.className + " invalid";
    }
    else
    {
    thisOK=true;
    oldclassName=el.className;
    el.className = oldclassName.replace(/invalid/g,"");
    }
    
    if (allOK && thisOK)
    allOK=true;
    else
    allOK=false;
    
    }
    
    }
    });
    
    if (allOK)
    //if (true)
    {
    //auf der letzten seite ein "Submit" senden
    if (thisid==CBdivsAry[(CBdivsAry.length-1)] && direction=="forward")
    
    {
    document.getElementById("cbcheckedadminForm").submit();
    }
    else
    {
    document.getElementById(thisid).style.display="none";
    document.getElementById(nextid).style.display="block";
    }
    
    //Back Button nicht auf der ersten Seite anzeigen
    if (nextid==CBdivsAry[0])
    {
    document.getElementById("Back").style.display="none";
    }
    else
    {
    document.getElementById("Back").style.display="block";
    }
    
    }
    
    }
    
    </script>
  6. In der gleichen Datei diese Zeilen suchen:
    // outputs all tabs, including contact tab and Terms & Conditions:
    echo $this->tabcontent;
    
    // outputs conclusion text and different default values:

    diese Zeilen müssen gelöscht und einige Zeilen höher wieder eingefügt werden.
    und zwar oberhalb von:

    ?>
    <table id="registrationTable">
    

    der ganze Abschnitt muss danach so aussehen:

    <?php
     if ( $this->topIcons ) {
     echo '<div id="cbIconsTop">';
     echo $this->topIcons;
     echo '</div>';
     }
     echo $this->regFormTag;        // '<form...>'
    
     // outputs all tabs, including contact tab and Terms & Conditions:
     echo $this->tabcontent;
    
     // outputs conclusion text and different default values:
    ?>
    <table id="registrationTable">
    <?php
     if ( $this->introMessage && ( ! $this->moduleContent ) ) {
    ?>
     <tr>
     <td colspan="2"><?php echo $this->introMessage; ?></td>
     </tr>
    <?php
     }
    
    ?>
     <tr>
  7. Jetzt noch ein wenig CSS. In die Datei: components/com_comprofiler/plugin/templates/default/template.css dieses am Ende einfügen:
    /*Artur Neumann
    www.individual-it.net
    23.10.2010
    der Versuch einer Multipage Registration
    registration table nicht anzeigen
    */
    table#registrationTable    {    display:none; width:98%;    border-width: 0px;    border-collapse: collapse;    margin: 0px;    padding: 0px;    }
  8. Jetz muss noch die CB Klasse angepasst werden. In der Datei administrator/components/com_comprofiler/comprofiler.class.php diese Zeile suchen:
    function endPane( ) {

    in diese Funktion, also zwischen { und } kommt ein wenig Javascript:

    //Artur Neumann
    //info@individual-it.net
    //22.10.2009
    //Versuche einer Multipage Registration
    //alle Tabs, bis auf das erste auf display:none setzen
    
    return '
    <script type="text/javascript">
    
    var liste = document.getElementById("CB");
    var first=0;
    var CBdivsAry;
    listElements = liste.getElementsByTagName("div");
    
    CBdivsAry = new Array();
    for(var i = 0; i < listElements.length; i++)
    {
    if (listElements[i].id.search (/^cbtab\d+/)!=-1)
    {
    CBdivsAry.push( listElements[i].id );
    if (first == 0)
    first=1;
    else
    document.getElementById(listElements[i].id).style.display="none";
    }
    }
    
    //auf der ersten Seite kein Back Button anzeigen
    document.getElementById("Back").style.display="none";
    
    </script>
    </div>';
  9. Und noch ein mal die gleiche Datei (administrator/components/com_comprofiler/comprofiler.class.php)
    Suche die Zeile:

    function endTab( ) {

    und füge hier wieder zwischen { und } diesen Code:

    //Artur Neumann
    //info@individual-it.net
    //22.10.2009
    //Versuche einer Multipage Registration
    //Vor und zurück Buttons anzeigen (nur beim registrieren)
    if ($_GET['task']=='registers')
    {
    return '
    <input type="button" id="Back" value="Back to previous Step" onclick="validate_and_switch_page(this.parentNode.id,\'backward\');">
    <input type="button" id="Proceed" value="Proceed" onclick="validate_and_switch_page(this.parentNode.id,\'forward\');">
    
    </div>';
    }
    else
    return '</div>';
    

Wenn man sich jetzt über das CB Login Modul registriert müsste ein mehrseitiges Formular erscheinen. Würde mich über Feedback freuen.

Kategorien:Deutsch Schlagwörter: , , ,