Skocz do zawartości

Witamy na polskim forum Contao
Zarejestruj się teraz, aby skorzystać ze wszystkich funkcji forum. Kiedy się zalogujesz, będziesz mógł tworzyć tematy, pisać posty, rozdawać punkty reputacji, korzystać z prywatnych wiadomości i zarządzać swoim profilem. Jeśli posiadasz już konto, zaloguj się - w przeciwnym wypadku zarejestruj się już teraz!
Zdjęcie

pytania początkującego


  • Proszę się zalogować aby odpowiedzieć
28 odpowiedzi na ten temat

#1
ctom

ctom

    Doświadczony

  • Zarejestrowani
  • PipPipPip
  • 77 postów
jak się dobrać do ID (z tl_member) zalogowanego usera w FE we własnym rozszerzeniu ? a najlepiej do całego rekordu bez potrzeby wykonywania kolejnego zapytania
  • 0

#2
ORLONnet

ORLONnet

    Znawca

  • Zarejestrowani
  • PipPipPipPip
  • 235 postów
  • Strona www:zobacz
  • LokalizacjaCiechanów

jak się dobrać do ID (z tl_member) zalogowanego usera w FE we własnym rozszerzeniu ? a najlepiej do całego rekordu bez potrzeby wykonywania kolejnego zapytania

{{user:id}} nie wystarcza? ;)
  • 0

#3
ctom

ctom

    Doświadczony

  • Zarejestrowani
  • PipPipPip
  • 77 postów
dzięki za odpowiedź, ale znalazłem rozwiązanie .... może komuś się przyda


$this->import('FrontendUser', 'User');
$user_id = $this->User->id;

  • 0

#4
Kamil

Kamil

    Contao ambassador

  • Administratorzy
  • 1538 postów
  • Strona www:zobacz
  • LokalizacjaLidzbark Warminski
Cała klasa FrontendUser jest modelem, czyli możemy dostać się do odpowiedniego pola tl_member, tak samo łatwo jak do ID:

// Pierwsze imię
$this->User->firstname;
 
// Adres e-mail
$this->User->email;
Co więcej, możemy szybko zaktualizować odpowiednie pole użytkownika poprzez:

if (!$this->User->country)
{
	$this->User->country = 'pl';
	$this->User->save();
}

  • 1

Codefog - Contao web development


#5
ctom

ctom

    Doświadczony

  • Zarejestrowani
  • PipPipPip
  • 77 postów
@Kamil każda Twoja odpowiedź to poza rozwiązaniem jakaś porcja nowej wiedzy :-)

a możesz mi podpowiedzieć czy dla konkretnego FORM, który robi upload pliku można zmienić :

$GLOBALS['TL_CONFIG']['imageWidth'] = 800;
$GLOBALS['TL_CONFIG']['imageHeight'] = 600;

chodzi mi tylko o jedno FORM reszta ma mieć takie ograniczenia
  • 0

#6
Kamil

Kamil

    Contao ambassador

  • Administratorzy
  • 1538 postów
  • Strona www:zobacz
  • LokalizacjaLidzbark Warminski
Domyślam się, że chodzi ci o front end. Ja bym to zrobił tak:

// config.php
$GLOBALS['TL_HOOKS']['validateFormField'][] = array('MyClass', 'validateImageUpload');
 
// MyClass.php
class MyClass extends Frontend
{
	 public function validateImageUpload(Widget $objWidget, $intId)
	 {
		  if ($intId == 5 && $objWidget instanceof FormFileUpload)
		  {
			  $GLOBALS['TL_CONFIG']['imageWidth'] = 1280;
			  $GLOBALS['TL_CONFIG']['imageHeight'] = 1024;
			  #$objWidget->validate();
		  }
 
		  return $objWidget;
	 }
}
Gdzie 5 to ID tego formularza. Zakomentowałem ponowną walidację - być może bez niej zadziała, być może nie. W razie czego po prostu usuń znak #.

Jak byś chciał te same wymiary obrazka dopasować do innych formularzy, wtedy użyj in_array():

$arrForms = array(5, 8, 9);
 
if (in_array($intId, $arrForms) && $objWidget instanceof FormFileUpload)
{
	// ...
}

  • 0

Codefog - Contao web development


#7
ctom

ctom

    Doświadczony

  • Zarejestrowani
  • PipPipPip
  • 77 postów
problem z kolejnym ID ...
FE -> formularz -> zapis do DB

czy jest możliwość w HOOKS[processFormData] "dobrać" się do insert_id z zapisu danych z formularz do DB ?
  • 0

#8
Kamil

Kamil

    Contao ambassador

  • Administratorzy
  • 1538 postów
  • Strona www:zobacz
  • LokalizacjaLidzbark Warminski
Domyślnie insert_id nie jest przekazywane do HOOka w żaden sposób. Ale myślę, że możesz zrobić to tak:

$insertId = $this->Database->prepare("SELECT id FROM tl_news ORDER BY id DESC")
                           ->limit(1)
                           ->execute()
                           ->id;

  • 0

Codefog - Contao web development


#9
ctom

ctom

    Doświadczony

  • Zarejestrowani
  • PipPipPip
  • 77 postów

Domyślnie insert_id nie jest przekazywane do HOOka w żaden sposób.


dzięki - tego się obawiałem .... teraz zapisuję "token" z formularz do tabeli i w HOOKS robię selecta , ale myślałem, że da się pozbyć kolejnego zapytania do DB.
Twój kod zwróci mi najwyższy ID a nie ostatni :-)
  • 0

#10
ctom

ctom

    Doświadczony

  • Zarejestrowani
  • PipPipPip
  • 77 postów
@Kamil a tak z ciekawości czy to normalne, że przy generacji 1 strony w FE system robi ~35 SQLi (z mojego modułu są może z 3 )
  • 0

#11
Kamil

Kamil

    Contao ambassador

  • Administratorzy
  • 1538 postów
  • Strona www:zobacz
  • LokalizacjaLidzbark Warminski
Mój kod zwróci najwyższy, czyli niby ostatni. Niby, bo zanim to zapytanie się wykona, może pojawić się inny rekord w bazie i wtedy klops.

Prawdę mówiąc nigdy na to nie zwróciłem uwagi ile zapytań generuje Contao. Jak do tej pory nie słyszałem by się ktoś skarżył na wydajność, a dosyć spore serwisy już stawiali. Poza tym możesz włączyć sobie cache dla stron typowo statycznych (tak jak to mamy na Contao.pl), zaoszczędzisz w ten sposób sporo zasobów.
  • 0

Codefog - Contao web development


#12
ctom

ctom

    Doświadczony

  • Zarejestrowani
  • PipPipPip
  • 77 postów
"Pytanie kontrolne" - zmiana kolejności

wie ktoś może jak zmienić kolejność tak by było : {pytanie} {input} - no za #$% nie mogę dojść jak to zrobić .... w template.form_captcha jest tylko generateQuestion() a w pliku FormCaptcha .... hmmm... jak ???
  • 0

#13
Kamil

Kamil

    Contao ambassador

  • Administratorzy
  • 1538 postów
  • Strona www:zobacz
  • LokalizacjaLidzbark Warminski
Wg mnie to z tego

<?php echo $this->generateWithError(); ?> <?php echo $this->generateQuestion(); ?>
na to

<?php echo $this->generateQuestion(); ?> <?php echo $this->generateWithError(); ?>
Oczywiście w templatce.
  • 0

Codefog - Contao web development


#14
ctom

ctom

    Doświadczony

  • Zarejestrowani
  • PipPipPip
  • 77 postów
też już tak próbowałem ale nie działa .... rozwiązałem to na sztywno w css

może komuś się przyda :-)


form table td {line-height: Xpx;vertical-align: middle;}
form span.captcha_text {float:left;}
form input.captcha {margin-left:Ypx;}

  • 0

#15
ctom

ctom

    Doświadczony

  • Zarejestrowani
  • PipPipPip
  • 77 postów
@Kamil szybkie pytanko ( nie z lenistwa pytam :- ) )

gdzie jest funkcja, która ta ładnie zmienia TITLE -> ALIAS
  • 0

#16
Kamil

Kamil

    Contao ambassador

  • Administratorzy
  • 1538 postów
  • Strona www:zobacz
  • LokalizacjaLidzbark Warminski
Przykładowo dla niusów w /system/modules/news/dca/tl_news.php masz dla pola "alias" przypisany save_callback, a kilkadziesiąt linijek niżej funkcję generateAlias().
  • 0

Codefog - Contao web development


#17
ctom

ctom

    Doświadczony

  • Zarejestrowani
  • PipPipPip
  • 77 postów
dzięki !!

o to właśnie standardize() mi chodziło
  • 0

#18
ctom

ctom

    Doświadczony

  • Zarejestrowani
  • PipPipPip
  • 77 postów
FE zakończyłem to teraz w BE mam dwa pytanka :-)

-> DCA -> Fields ...


'nazwaV' => array
(
'label' => array('Zatwierdzić zmiany ?',''),
'inputType' => 'radio',
'options' => array(0,1),
'reference' => array(0=>'nie',1=>'tak'),
'eval'					=> array( 'tl_class' => 'clr'),
'save_callback' => array(array('tl_doradcy','SaveZmN'))

1/ czy można w zależności od wartości pokazać lub nie dane pole - coś z load_callback ale nie wiem jak to rozgryźć ?
2/ czy do save_callback -> jest możliwość przekazania dodatkowego parametry ?
  • 0

#19
Kamil

Kamil

    Contao ambassador

  • Administratorzy
  • 1538 postów
  • Strona www:zobacz
  • LokalizacjaLidzbark Warminski
1) Jest niby taka metoda, choć raczej niezby elegancka. Możesz to zrobić za pomocą palet. Robiłem coś takiego na starszej wersji Contao, nie wiem czy na 2.10 zadziała. http://pstbn.com/ucSwohg

2) Chyba nie, a co Ci potrzeba?
  • 0

Codefog - Contao web development


#20
ctom

ctom

    Doświadczony

  • Zarejestrowani
  • PipPipPip
  • 77 postów

1) Jest niby taka metoda, choć raczej niezby elegancka. Możesz to zrobić za pomocą palet. Robiłem coś takiego na starszej wersji Contao, nie wiem czy na 2.10 zadziała. http://pstbn.com/ucSwohg

fajne...fajne.... obie "palettes" przygotowuję w jednej array bo CMS i tak będzie działać na default , tak?


2) Chyba nie, a co Ci potrzeba?


chciałem zrobić jedne function dla 3 callback i potrzebowałem jakiś parametr identyfikujący Fields ....ale nie poszło... także zrobiłem 3 x function
  • 0




1 użytkowników czyta ten temat

0 użytkowników, 1 gości, 0 anonimowych użytkowników