×

Notice

The forum is in read only mode.
Welcome, Guest
Username: Password: Remember me
  • Page:
  • 1

TOPIC: Registration dirket in Matukio anstatt Joomla

Registration dirket in Matukio anstatt Joomla 11 years 6 months ago #21386

  • Thomas Baumgartner
  • Thomas Baumgartner's Avatar Topic Author
  • Offline
  • Fresh Boarder
  • Fresh Boarder
  • Posts: 11
  • Thank you received: 2
Hallo Yves

Ich verwende die Matukio Komponente für verschiedenste Ferienkurse von Schülern. Die Kursleiter sind alles Freiwillige und wechseln auch jedes Jahr wieder. Die Kurse werden immer zentral von unserem Sekretariat für die Kursleiter erfasst.

Die Kursleiter erhalten anschliessend direkt die Buchungen der Teilnehmer und können sich als Editoren im Frontend einloggen und die Teilnehmerlisten auszudrucken.

Die Schüler müssen sich zuerst registrieren um einem Kurs buchen zu können.

Damit die Kursleiter auch Angaben wie Adresse, Telefonnummer, Geburtsdatum usw. erhalten muss im Moment jeder Schüler seine Angaben bei jedem einzelnen Kurs immer wieder eingeben was sehr mühsam ist.

Nun wäre es wünschenswert, wenn bei der Registration durch Matukio statt Joomla diese Angaben gleich mit erfasst werden könnten so wie in einem Shop (Kundenkonto). So müssten die persönlichen Angaben nur einmal gemacht werden und würden bei jeder Kursanmeldung automatisch vorhanden sein.

Könnt Ihr so was in zukünftigen Versionen implementieren?

Registration dirket in Matukio anstatt Joomla 11 years 6 months ago #21392

  • Yves Hoppe
  • Yves Hoppe's Avatar
  • Offline
  • Administrator
  • Administrator
  • Posts: 3519
  • Karma: 71
  • Thank you received: 556
Hallo Thomas,

schwierig - einfacher und ordentlicher wäre es das Joomla Registrationsformular um die gewünschten Daten zu erweitern und dann diese nicht mehr in Matukio abzufragen (und die Buchung nur als registrierter Benutzer zuzulassen), da diese dann ja sowieso in Joomla hinterlegt sind.

Hab es mir trotzdem mal auf die Wunschliste gesetzt, eventuell könnten wir falls der Benutzer sich schon mal für eine Veranstaltung registriert hat, die Daten abrufen und das Formular entsprechend vorbelegen.

Viele Grüße

Yves

Registration dirket in Matukio anstatt Joomla 11 years 5 months ago #21440

  • Thomas Baumgartner
  • Thomas Baumgartner's Avatar Topic Author
  • Offline
  • Fresh Boarder
  • Fresh Boarder
  • Posts: 11
  • Thank you received: 2
Hallo Yves

Vielen Dank für deine Antwort. Ich nutze jetzt schon die erweiterte Registration von Joomla. So dass ich die Adresse und das Geburtsdatum erfassen kann.

Was Du angesprochen hast, dass diese erweiterten Daten von Matukio abgefragt werden könnten wäre eigentlich schon genau das was ich benötige.

In der Seminarkomponente von Dirk Vollmar hatte ich diese Felder nicht bei der Anmeldung abgefragt, sondern direkt ins Mail gepackt, so dass diese jeweils an den Kursleiter mit übermittelt wurden. Was aber auch nicht das gelbe vom Ei war.

Wo (Datei) könnte ich dies allenfalls selber einbauen, damit die erweiterten Formularfelder von Joomla abgefragt würden?

Gruss Thomas

Registration dirket in Matukio anstatt Joomla 11 years 5 months ago #21450

  • Yves Hoppe
  • Yves Hoppe's Avatar
  • Offline
  • Administrator
  • Administrator
  • Posts: 3519
  • Karma: 71
  • Thank you received: 556
Hallo Thomas,

im neuen Buchungsformular ist die entscheidende Datei die components\com_matukio\views\bookevent\tmpl\default.php

Ist eigentlich relativ einfach zu implementieren, kannst dir ein Beispiel an der E-Mail Adresse nehmen:

var email = document.id('email');
var usermail = '<?php echo $this->user->email; ?>';

email.set('value', usermail );

Also einfach JavaScript für die Vorbelegung benutzen - Und die Daten kannst du aus dem User Objekt ($this->user) abfragen.

Yves
The following user(s) said Thank You: Thomas Baumgartner

Registration dirket in Matukio anstatt Joomla 11 years 3 months ago #22683

  • Thomas Baumgartner
  • Thomas Baumgartner's Avatar Topic Author
  • Offline
  • Fresh Boarder
  • Fresh Boarder
  • Posts: 11
  • Thank you received: 2
Hallo Yves

Ich habe nun endlich Zeit gefunden, mich an die Abfragen der Formularfelder von Joomla zu wagen.
Beim Namensfeld ist mir dies problemlos gelungen, da dies über $this->user->name abgefragt werden kann, aber bei den restlichen Felder stehe ich an.

Ich habe es nun hingekriegt, dass ich die Daten von _users_profil abfragen kann, erhalte jedoch alle Werte in der selben Ausgabe.

Das sieht dann so aus:



Was ich auch noch nicht wegbekommen habe, sind die "" bei den einzelnen Inhalten.
Ich bin kein Profiprogrammierer und komme nicht mehr weiter, eventuell kannst Du mir dabei helfen?

Ich denke es ist schon korrekt, alle Werte auf einmal abzufragen, nur sollte ich die einzelnen Werte, anschliessend einzeln auflisten können.

Habe dies nun mal so gelöst: :whistle:

Code display:
$usermail = $this->user->email;
 
 
/* Create Array named $profile with contents of jos_users */
$user =& JFactory::getUser();
 
 
/* Extract jos_user_profiles data and add to $profile */
$db = JFactory::getDBO();
$query = $db->getQuery(true);
$query->select('profile_key, profile_value');
$query->from('#__user_profiles');
$query->where('user_id = '. (int) $user->id);
$db->setQuery($query);
$rows = $db->loadObjectList();
foreach ($rows as $row)
 {
 $profile[$row->profile_key] = $row->profile_value;
 }
 
 
 ?>
 
        <script type="text/javascript">
        window.addEvent('domready', function () {
                var steps = <?php echo $this->steps; ?>;
                var intro = document.id('mat_intro');
                var current_step = 1;
 
                var btn_next = document.id('btn_next');
                var btn_back = document.id('btn_back');
                var btn_submit = document.id('btn_submit');
 
                var page_one = document.id('mat_pageone');
                var page_two = document.id('mat_pagetwo');
                var page_three = document.id('mat_pagethree');
                var payment = document.id('payment');
 
                var usermail = '<?php echo $usermail; ?>';
                var firstname = '<?php echo $this->user->name;?>';
                var street = '<?php foreach ($profile as $key => $value)
 {
 echo $key = $value;
 } ?>';
 
                var email = document.id('email');
                var name = document.id('firstname');
                var userstreet = document.id('street');
                var agb = document.id('agb');
 
                var nrbooked = document.id('nrbooked');
 
                <?php
                if (MatukioHelperSettings::getSettings("payment_coupon", 1) == 1 && !empty($this->event->fees)) {
                ?>
                var coupon_code = document.id('coupon_code');
                <?php
                        }
                ?>
 
                if (email) {
                        email.set('value', usermail);
 
                        if (usermail != "") {
                                // email.set('disabled', true); // TODO add a setting for this
                        }
                }
 
                if (name) {
                          name.set('value', firstname);
 
                          if (firstname != "") {
                             // name.set('disabled', true); // TODO add a setting for this
                        }
                }
 
                if (userstreet) {
                         userstreet.set('value', street);
 
                         if (street != "") {
                            // userstreet.set('disabled', true); // TODO add a setting for this
                       }
                }

Gruss Thomas
Attachments:
The following user(s) said Thank You: Michael uhlig

Registration dirket in Matukio anstatt Joomla 11 years 3 months ago #22686

  • Yves Hoppe
  • Yves Hoppe's Avatar
  • Offline
  • Administrator
  • Administrator
  • Posts: 3519
  • Karma: 71
  • Thank you received: 556
Hallo Thomas,

du gibst sie ja auch alle in die variable street:

var street = '<?php foreach ($profile as $key => $value)
{
echo $key = $value;
} ?>';


ich an deiner stelle würde die Matukio Feldnamen genauso nennen wie die Felder in Community Builder und dann kannst du in der obigen foreach schleife alle Felder befüllen.

Also zum Beispiel:

echo "document.id('" . $key . "').set('value', '" . $value . "');";

Viele Grüße

Yves

Registration dirket in Matukio anstatt Joomla 11 years 3 months ago #22693

  • Thomas Baumgartner
  • Thomas Baumgartner's Avatar Topic Author
  • Offline
  • Fresh Boarder
  • Fresh Boarder
  • Posts: 11
  • Thank you received: 2
Hallo Yves

Vielen Dank für deine Antwort. Das ich Momentan alle Werte in das Feld Street ausgeben, weiss ich. Denn genau da liegt ja mein Problem, dass ich die Werte nun aufsplitten möchte. Zudem benütze ich ja nicht Community Builder sondern das Joomla eigene Plugin für die Benutzererweiterung.

Leider komme ich mit deiner Lösung immer noch nicht viel weiter. :(

Die Feldname in der Table _users_profile heissen z.b. profile.adress1 oder profile.postale_code

Kannst Du mir so eventuell noch etwas weiter helfen?

Vielen Dank für deine super Komponente.

Gruss Thomas

Registration dirket in Matukio anstatt Joomla 11 years 2 months ago #22834

  • Thomas Baumgartner
  • Thomas Baumgartner's Avatar Topic Author
  • Offline
  • Fresh Boarder
  • Fresh Boarder
  • Posts: 11
  • Thank you received: 2
Hallo Matukio User
Hallo Yves

Nun endlich habe ich es geschafft, die Daten von dem Joomla! eigenen Plugin für die erweiterte Registration zusammen mit Matukio zu nützen.

Ich verlange von den Kursteilnehmern bei der Registration folgende zusätzliche Daten:

Strasse, PLZ, Ort, Telefon, Geburtsdatum

All diese Informationen plus der Name werden beim buchen von einem Kurs automatisch in die Felder eingefügt, so wie schon die Mailadresse automatisch eingetragen wurde. Dies bietet folgenden Vorteil, dass der registrierte User seine Daten nicht bei jedem Kurs einzeln eingeben muss.

Hier findet Ihr den abgeänderten Code (Zeilen 1-137).
Pfad: components/com_matukio/views/bookevent/tmpl/default.php
<?php
/**
 * Matukio
 * @package Joomla!
 * @Copyright (C) 2012 - Yves Hoppe - compojoom.com
 * @All rights reserved
 * @Joomla! is Free Software
 * @Released under GNU/GPL License : http://www.gnu.org/copyleft/gpl.html
 * @version $Revision: 1.0.0 $
 **/
 
defined('_JEXEC') or die('Restricted access');
 
JHTML::_('behavior.modal');
JHTML::_('behavior.tooltip');
JHTML::_('stylesheet', 'media/com_matukio/css/matukio.css');
JHTML::_('stylesheet', 'media/com_matukio/css/booking.css');
 
$usermail = $this->user->email;
 
$user = JFactory::getUser();
$profile = JUserHelper::getProfile($user->id);
 
 
?>
 
 
 
        <script type="text/javascript">
        window.addEvent('domready', function () {
                var steps = <?php echo $this->steps; ?>;
                var intro = document.id('mat_intro');
                var current_step = 1;
 
                var btn_next = document.id('btn_next');
                var btn_back = document.id('btn_back');
                var btn_submit = document.id('btn_submit');
 
                var page_one = document.id('mat_pageone');
                var page_two = document.id('mat_pagetwo');
                var page_three = document.id('mat_pagethree');
                var payment = document.id('payment');
 
                var usermail = '<?php echo $usermail; ?>';
                var firstname = '<?php echo $this->user->name;?>';
                var street = '<?php echo $profile->profile['address1'];?>';
                var zip = '<?php echo $profile->profile['postal_code'];?>';
                var city = '<?php echo $profile->profile['city'];?>';
                var phone = '<?php echo $profile->profile['phone'];?>';
                var dob = '<?php echo $profile->profile['dob'];?>';
 
                var email = document.id('email');
                var name = document.id('firstname');
                var userstreet = document.id('street');
                var usercity = document.id('city');
                var userzip = document.id ('zip');
                var userphone = document.id ('phone');
                var userdob =document.id ('dob');
                var agb = document.id('agb');
 
                var nrbooked = document.id('nrbooked');
 
                <?php
                if (MatukioHelperSettings::getSettings("payment_coupon", 1) == 1 && !empty($this->event->fees)) {
                ?>
                var coupon_code = document.id('coupon_code');
                <?php
                        }
                ?>
 
                if (email) {
                        email.set('value', usermail);
 
                        if (usermail != "") {
                                // email.set('disabled', true); // TODO add a setting for this
                        }
                }
 
                if (name) {
                          name.set('value', firstname);
 
                          if (firstname != "") {
                             // name.set('disabled', true); // TODO add a setting for this
                        }
                }
 
                if (userstreet) {
                         userstreet.set('value', street);
 
                         if (street != "") {
                            // userstreet.set('disabled', true); // TODO add a setting for this
                       }
                }
 
 
                if (userzip) {
                         userzip.set('value', zip);
 
                         if (zip != "") {
                            // userzip.set('disabled', true); // TODO add a setting for this
                       }
                }
 
 
 
                if (usercity) {
                         usercity.set('value', city);
 
                         if (city != "") {
                            // usercity.set('disabled', true); // TODO add a setting for this
                       }
                }
 
                if (userphone) {
                         userphone.set('value', phone);
 
                         if (phone != "") {
                            // userphone.set('disabled', true); // TODO add a setting for this
                       }
                }
 
                if (userdob) {
                         userdob.set('value', dob);
 
                         if (dob != "") {
                            // userdob.set('disabled', true); // TODO add a setting for this
                       }
                }
 
 
                <?php
                if (MatukioHelperSettings::getSettings("payment_coupon", 1) == 1 && !empty($this->event->fees)) {
                        echo "var coupon = true;\n";
                } else {
                        echo "var coupon = false;\n";
                }
                ?>
The following user(s) said Thank You: Yves Hoppe

Registration dirket in Matukio anstatt Joomla 11 years 2 months ago #22836

  • Yves Hoppe
  • Yves Hoppe's Avatar
  • Offline
  • Administrator
  • Administrator
  • Posts: 3519
  • Karma: 71
  • Thank you received: 556
Hallo Thomas,

sehr schön, könnte man zwar noch etwas optimieren aber sollte anderen Benutzern einen guten Einstiegspunkt in die Verknüpfung mit der Registrierung geben! Vielen Dank!

Bin immer noch am überlegen wie man so eine Vorbelegung dynamisch für alle einbauen könnte.

Viele Grüße

Yves

// Sticky

Registration dirket in Matukio anstatt Joomla 11 years 2 weeks ago #23836

  • Lydia Borgers
  • Lydia Borgers's Avatar
  • Offline
  • Gold Boarder
  • Gold Boarder
  • Posts: 243
  • Thank you received: 8
Hallo Thomas,
ich habe den Code mal in der Version 3.0.2 eingefügt ( allerdings endet der Code hier nicht bei Zeile 137 sondern bei 140 ) - die Ausgabe der Felder funktioniert aber im Feld "Vorname" wird der Nutzername ausgegeben, "Nachname" und "Mobil" bleibt leider frei.

Kannst Du mir weiterhelfen?

Danke

Thomas

Registration dirket in Matukio anstatt Joomla 11 years 2 weeks ago #23840

  • Yves Hoppe
  • Yves Hoppe's Avatar
  • Offline
  • Administrator
  • Administrator
  • Posts: 3519
  • Karma: 71
  • Thank you received: 556
Hallo Lydia,

hast du einen Link zur Seite wo du es eingefügt hast? Funktioniert der Rest des Formulars noch wenn du auf weiter klickst?

VG Yves

Registration dirket in Matukio anstatt Joomla 11 years 2 weeks ago #23841

  • Lydia Borgers
  • Lydia Borgers's Avatar
  • Offline
  • Gold Boarder
  • Gold Boarder
  • Posts: 243
  • Thank you received: 8
Hallo Yves,

stimmt, der "Weiter"-Button ist dann tatsächlich ohne Funktion.
Ich hab die "alte" default.php wieder eingespielt dann gehts wieder

Wo hab ich den Fehler?

Danke
Ly

Registration dirket in Matukio anstatt Joomla 11 years 2 weeks ago #23842

  • Yves Hoppe
  • Yves Hoppe's Avatar
  • Offline
  • Administrator
  • Administrator
  • Posts: 3519
  • Karma: 71
  • Thank you received: 556
Müsst ich die Seite mit dem Fehler sehen, sonst kann ich das nicht beurteilen. Wenn der Weiter Button nicht funktioniert dann irgendwo im JavaScript Code (Semikolon, Klammer vergessen etc. - mit Firebug kann man das debuggen / sich anzeigen lassen) .

Viele Grüße

Yves

Registration dirket in Matukio anstatt Joomla 11 years 2 weeks ago #23843

  • Lydia Borgers
  • Lydia Borgers's Avatar
  • Offline
  • Gold Boarder
  • Gold Boarder
  • Posts: 243
  • Thank you received: 8
Ich hab den Fehler mal wieder eingebaut ;)
Die modifizierte default.php ist unter lobaline.de/index.php/veranstaltungen

Registration dirket in Matukio anstatt Joomla 11 years 2 weeks ago #23844

  • Yves Hoppe
  • Yves Hoppe's Avatar
  • Offline
  • Administrator
  • Administrator
  • Posts: 3519
  • Karma: 71
  • Thank you received: 556
Sicher das du die modifizierte Default PHP eingebaut hast? Geht bei mir ohne Probleme :)

Yves

Registration dirket in Matukio anstatt Joomla 11 years 2 weeks ago #23845

  • Yves Hoppe
  • Yves Hoppe's Avatar
  • Offline
  • Administrator
  • Administrator
  • Posts: 3519
  • Karma: 71
  • Thank you received: 556
Ach seh es grad, du musst mir dann auch noch die Daten eines Benutzeraccounts schicken - sonst kann ich das nicht testen.. ;) (An This email address is being protected from spambots. You need JavaScript enabled to view it.)

Yves

Registration dirket in Matukio anstatt Joomla 10 years 11 months ago #24272

  • Lydia Borgers
  • Lydia Borgers's Avatar
  • Offline
  • Gold Boarder
  • Gold Boarder
  • Posts: 243
  • Thank you received: 8
Hat mittlerweile schon jemand versucht die Benutzerregistrierung von Joomla in die Buchung bei Matukio 3.0.3 zu implementieren???
Ich habe mit meinen eher laienahften Programmierkenntnissen in PHP zwar schon die Nutzerdaten "Name", "Straße", "PLZ", Ort", "email" in den richtigen feldern, auch der Weiter-Button hat Funktion aber es wird nicht die zweite Buchungsseite angezeigt sondern nur ne Fehlermeldung ich solle ne Zahlungsart wählen...

Vielleicht muss ich ja nicht bis zum Ende mit "try-and-error" alles durch fummeln.

Danke Danke Danke!

bisher bin ich so weit (Zeilen 1-138):

<?php
/**
* Matukio
* @package Joomla!
* @Copyright (C) 2012 - Yves Hoppe - compojoom.com
* @All rights reserved
* @Joomla! is Free Software
* @Released under GNU/GPL License : www.gnu.org/copyleft/gpl.html
* @version $Revision: 1.0.0 $
**/

defined('_JEXEC') or die('Restricted access');

JHTML::_('behavior.modal');
JHTML::_('behavior.tooltip');
JHTML::_('stylesheet', 'media/com_matukio/css/matukio.css');
JHTML::_('stylesheet', 'media/com_matukio/css/booking.css');

$usermail = $this->user->email;

$user = JFactory::getUser();
$profile = JUserHelper::getProfile($user->id);


?>



<script type="text/javascript">
window.addEvent('domready', function () {
var steps = <?php echo $this->steps; ?>;
var intro = document.id('mat_intro');
var current_step = 1;

var btn_next = document.id('btn_next');
var btn_back = document.id('btn_back');
var btn_submit = document.id('btn_submit');

var page_one = document.id('mat_pageone');
var page_two = document.id('mat_pagetwo');
var page_three = document.id('mat_pagethree');
var payment = document.id('payment');

var usermail = '<?php echo $usermail; ?>';
var firstname = '<?php echo $this->user->name;?>';
var street = '<?php echo $profile->profile;?>';
var zip = '<?php echo $profile->profile;?>';
var city = '<?php echo $profile->profile;?>';
var phone = '<?php echo $profile->profile;?>';
var dob = '<?php echo $profile->profile;?>';

var email = document.id('email');
var name = document.id('firstname');
var userstreet = document.id('street');
var usercity = document.id('city');
var userzip = document.id ('zip');
var userphone = document.id ('phone');
var userdob =document.id ('dob');
var agb = document.id('agb');

var nrbooked = document.id('nrbooked');

<?php
if (MatukioHelperSettings::getSettings("payment_coupon", 1) == 1 && !empty($this->event->fees)) {
?>
var coupon_code = document.id('coupon_code');
<?php
}
?>

if (email) {
email.set('value', usermail);

if (usermail != "") {
// email.set('disabled', true); // TODO add a setting for this
}
}

if (name) {
name.set('value', firstname);

if (firstname != "") {
// name.set('disabled', true); // TODO add a setting for this
}
}

if (userstreet) {
userstreet.set('value', street);

if (street != "") {
// userstreet.set('disabled', true); // TODO add a setting for this
}
}


if (userzip) {
userzip.set('value', zip);

if (zip != "") {
// userzip.set('disabled', true); // TODO add a setting for this
}
}



if (usercity) {
usercity.set('value', city);

if (city != "") {
// usercity.set('disabled', true); // TODO add a setting for this
}
}

if (userphone) {
userphone.set('value', phone);

if (phone != "") {
// userphone.set('disabled', true); // TODO add a setting for this
}
}

if (userdob) {
userdob.set('value', dob);

if (dob != "") {
// userdob.set('disabled', true); // TODO add a setting for this
}
}


<?php
if (MatukioHelperSettings::getSettings("payment_coupon", 1) == 1 && !empty($this->event->fees)) {
echo "var coupon = true;\n";
} else {
echo "var coupon = false;\n";
}
?>
<?php

Registration dirket in Matukio anstatt Joomla 10 years 11 months ago #24275

  • Yves Hoppe
  • Yves Hoppe's Avatar
  • Offline
  • Administrator
  • Administrator
  • Posts: 3519
  • Karma: 71
  • Thank you received: 556
Hallo Lydia,

hab jetzt auf die schnelle keinen Fehler gesehen (ausser das du es dir ziemlich schwer gemacht hast). Als Tipp installier dir folgende zwei Firefox Extensions:

Firebug
Web Developer (Auf Schreibweise achten)

Damit kannst du sehen in welcher Zeile dein JavaScript Fehler liegt.

Viele Grüße

Yves

P.S.: Die ganzen if Bedingungen (if (firstname != "") {// name.set('disabled', true); // TODO add a setting for this} benötigst du nicht!
  • Page:
  • 1
Time to create page: 0.171 seconds