PDA

Zobacz pełną wersję : Fabrik - przesyłanie zmiennych



senseipg
10-02-2012, 16:59
Witam.

Jak można w fabrik-u np za pomocą buttona lub linku przekierować do innego formularza i przekazać pewne dane z poprzedniego formularza?

Raveren
11-02-2012, 08:01
Fabrik pracuje na tabelach danych. Powiązania między tabelami realizowane są za pomocą pola klucza. Przy prawidłowym zbudowaniu bazy dane z formularza mogą być zapisane do jednej lub kilku tabel, a następnie z pomocą tego samego lub drugiego formularza odczytane z bazy. Button to oczywiście "SAVE", którego wyświetlanie definiujesz w ustawieniach.

senseipg
11-02-2012, 12:38
Button to także wtyczka która niestety nie działa w widoku szczegółów i w tym cały problem także link nie działa w widoku szczegółów. Jakby się dało przejść za pomocą pola klucza do innego formularza zachowując przy tym choćby jedną zmienną to by było super, ale chyba to niemożliwe.

Raveren
11-02-2012, 14:39
Nie wiem co zmienili w wersji 3 dla Joomla 1.7/2.5, ale w 2.1.1 (Joomla 1.5) nadal działa Table-> Table settings-> Link to detail dla wskazanego elementu tabeli. Chyba, że nie całkiem się rozumiemy jeśli chodzi o istotę problemu. Sprawdź ewentualnie uprawnienia dostępu dla tabel

senseipg
11-02-2012, 19:37
No oczywiście tak działa ale tu ciągle dochodzimy do widoku szczegółów tej samej tabeli. Może napiszę jaśniej żeby nie było wątpliwości.

Mam jeden formularz w którym dodaje domek.
Fabrik wyświetla mi lieste wszystkich domków.
Klikam w szczegóły i w tym miejscu chciałbym mieć link 'rezerwuj' który przekieruje mnie do innego formularza(rejestracyjnego) i prześle także id domku.
Wtedy klikając zapisz na tym drugim formularzu mam wszystkie dane, rezerwującego i id domku który rezerwuje.

Raveren
12-02-2012, 18:41
Mam dla Ciebie dwie wiadomości - chyba obie złe.
Pierwsza: zainstalowałem na localhost najnowszą Joomlę i najnowszy Fabrik - nie wiem po czyjej stronie leży wina, ale ten zestaw ma przed sobą jeszcze długa drogę rozwoju.
Druga wiadomość: Na starej Joomli (1.5.25) i z Fabrik 2.1.1 możesz zdefiniować tabelę z danymi domku i jako ostatnie dodać pole typu "user" ( dane pobierane z bazy użytkowników). Wszystkie dane masz na jednym formularzu. Nie jest to niestety najszczęśliwsze rozwiązanie ze względu na możliwość przeglądanie całej listy userów.
Możliwe jest działanie odwrotne - stworzenie tabeli rezerwujących i dodanie do niej pola listy rozwijanej typu "join", co pozwoli na wyświetlenie np listy domków. Problemem jest wyświetlenie następnej wartości (np ceny).
Jak by nie patrzył oba sposoby są "kulawe".
Jest jeszcze trzecia możliwość - że brak mi umiejętności :wstyd:. Korzystam z tego komponentu w zupełnie inny sposób i nie zajmowałem się opcjami, które nie są mi potrzebne

senseipg
12-02-2012, 23:35
Ty chyba nie o umiejętności chodzi tylko fabrik jest troche kulawy. Ale sprawe rozwiązałem i odrazu opiszę gdyby ktoś miał podobny problem:
Sposób 1 Fabrik i Chronoforms:
Oczywiście po zainstalowaniu dwóch komponentów robimy tak:
Instalujemy wtyczkę umożliwiającą obsługe php wewnątrz artykułu.
Tworzymy w fabriku formularz dodający poszczgólne obiekty w powyższym problemie domki z wszystkimi dotyczącymi ich danami.
Dodajemy odpowiednie elementy min pola tekstowe i na końcu dodajemy pole link. do label walimy poniższy kod php:

<?php
$url=$_SERVER['REQUEST_URI'];
$ilosc=strlen($url);
$id=substr($url, $ilosc-1, 1);
echo "$id";
echo "<a href='http://adres.pl/index.php?option=com_chronoforms&chronoform=Dom&id=$id'>Rezerwacja</a>";
?>
Powyższy kod tworzy link Rezerwacja który po kliknięciu w szczegóły pobiera z url id konkretnej pozycji(konkretnego dokmku).
Oczywiście sam link przenosi juz do formularza rejestracyjnego stworzonego w chrono foms, zawierając ciągle ID domku.
Przeciągamy pole 'custome element' i wbijamy kod:


<?php
$iddom=$_GET['id'];
echo"<input type='text' name='iddom' readonly='readonly' value='$iddom>";
?>

Kod pozwala nam złapać do formularza id domku ktore przypiszemy do osoby rejestrujacej.
I jeszcze jedną rzecz jaką możemy zrobić to dodać kod na pozycji Code -> after emails

ktory np bedzie nam odejmowal z tabeli domkow wolne miejsca lub realizowal rozne inne zadania według uznania.

Ważne tez aby w chrono forms ustawić aby oprócz e-mail system wysyłał do bazy danych ale raczaj nikomu nie sprawi to wiekszej trudności wiec może nie będę się rozpisywał, no chyba że ktoś bardzo potrzebuje to oczywiście szybka odpowiedz w poscie i pomogę.

W każdym razie Raveren dzięki za wsparcie.

Po