Zprovoznění Facebook loginu

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
MadManGoesWild
Člen | 7
+
0
-

Dobrý den,
na začátek bych chtěl říct, že nejsem nějak dobrý v tomto oboru, jsem spíše začátečník, takže trpělivost a shovívavost :).
Řeším přihlášení pomocí Facebooku ve své webové aplikaci a dostávám exception:
The signal receiver component ‚fbLogin‘ is not found.

Postupoval jsem podle dokumentace Kdyby/Facebook od pana F. Procházky, ale nevím, jak tento problém fixnout.
Děkuji.

Felix
Nette Core | 1270
+
0
-

Ahoj,

muzes ukazat jak registrujes komponentu fbLogin? Po navratu z Facebooku se vracis na jaky presenter? Ten, ve kterem vytvarits fbLogin komponentu nebo nejaky jiny?

MadManGoesWild
Člen | 7
+
0
-

fbLogin vytvářím v LoginPresenteru, redirect je daný na tento presenter.

https://codeshare.io/nette

MadManGoesWild
Člen | 7
+
0
-

Nikdo neví?
Prosím, potřeboval bych pomoci. Za pár dní musím odevzdat práci a tahle věc by se mi tam skvěle hodila.

Felix
Nette Core | 1270
+
0
-

Bohuzel Kdyby\Facebook nepouzivam, tak nemuzu poradit, ani v kodu jsem nevidel zadnou chybu, vypada to jako z README.

CZechBoY
Člen | 3608
+
0
-

A určitě je tahle metoda v presenteru, který hlásí že tu komponentu nemůže najít? Nemáš náhodou tu komponentu v @layout.latte a komponentu vytváříš někde jinde než v BasePresenteru (od kterého dědí všechny presentery)?

David Matějka
Moderator | 6445
+
0
-

ukaz kdyztak celou proklikavaci ladenku s chybou

MadManGoesWild
Člen | 7
+
0
-

class HomepagePresenter extends BasePresenter
{
private $database;

public function __construct(\Nette\Database\Context $database) {
$this->database = $database;
 }

public function renderDefault($order = ‚destinace‘, $direction = ‚ASC‘)
{
$this->template->data = $this->database->table(‚nabidka‘)->order($order.' '.$direction);
 }

public function renderView($id){
if(!$this->template->data = $this->database->table(‚nabidka‘)->get($id)){
$this->error(‚Záznam nebyl nalezen.‘);
};
 }

public function actionDelete($id){
if(!$data = $this->database->table(‚nabidka‘)->get($id)){
$this->error(‚Záznam nebyl nalezen.‘);
}
$data->delete();
$this->flashMessage(‚Záznam byl smazán.‘);
$this->redirect(‚Homepage:default‘);
 }

MadManGoesWild
Člen | 7
+
-2
-

{* This is the welcome page, you can delete it *}

{block content}
<div class=„container“>
<table class=„table table-bordered table-hover table-responsive table-striped“>
<thead>
<tr>
<th><a n:href=„default destinace“>Destinace</a></th>
<th><a n:href=„default datum“>Den odjezdu</a></th>
<th><a n:href=„default delka“>Pošet nocí</a></th>
<th><a n:href=„default cena“>Cena</a></th>
<th>Akce</th>
</tr>
</thead>
<tbody>
<tr n:foreach=„$data as $nabidka“>
<td><a n:href=„view $nabidka->id“>{$nabidka->destinace}</a></td>
<td>{$nabidka->datum}</td>
<td>{$nabidka->delka}</td>
<td>{$nabidka->cena}</td>
<td><a n:href=„delete $nabidka->id“><button>Smazat</button></a></td>
</tr>
</tbody>

</table>
</div>
{/block}

{block scripts}
{include parent}
{/block}

{block head}
{/block}

MadManGoesWild
Člen | 7
+
-2
-

INSERT
{block content}
<div class=„container“>
<h2>Nový záznam</h2>

{control nabidkaForm}

</div>
{/block}

{block scripts}
{include parent}
{/block}

{block head}
{/block}

MadManGoesWild
Člen | 7
+
-2
-

protected function createComponentNabidkaForm()
{
$form = new Form;
$form->addText(‚destinace‘, ‚Destinace:‘);
$form->addText(‚datum‘, ‚Datum:‘)->setType(‚date‘)->setRequired();
$form->addInteger(‚delka‘, ‚Počet nocí:‘);
$form->addInteger(‚cena‘, ‚Cena:‘);
$form->addSubmit(‚send‘, ‚Uložit‘);
$form->onSuccess[] = [$this, ‚nabidkaFormSucceeded‘];
return $form;
 }

// volá se po úspěšném odeslání formuláře
public function nabidkaFormSucceeded($form, $values)
{
$id = $this->getParameter(‚id‘);
if($id){
$data = $this->database->table(‚nabidka‘)->get($id);
$data->update($values);
} else {
$film = $this->database->table(‚nabidka‘)->insert($values);

}
$this->flashMessage(‚Byl jste úspěšně registrován.‘);
$this->redirect(‚Homepage:default‘);
 }

public function actionInsert(){

}

public function actionUpdate($id){
if(!$data = $this->database->table(‚nabidka‘)->get($id)){
$this->error(‚Záznam nebyl nalezen.‘);
}
$this[‚nabidkaForm‘]->setDefaults($data->toArray());
 }