function curl_file_get_contents($url)
{
$c = curl_init(); // iniciuje práci s curl
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_URL, $url);
$contents = curl_exec($c);
curl_close($c);
return $contents;
}
function better_curl($url)
{
$curl = curl_init();
$header[0] = "Accept: text/xml,application/xml,application/xhtml+xml,";
$header[0] .= "text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
$header[] = "Cache-Control: max-age=0";
$header[] = "Connection: keep-alive";
$header[] = "Keep-Alive: 300";
$header[] = "Accept-Charset: ISO-8859-1,utf-8,utf-16;q=0.7,*;q=0.7";
$header[] = "Accept-Language: en-us,en;q=0.5";
$header[] = "Pragma: "; // browsers keep this blank.
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.1.1) Gecko/20061223 Firefox/2.0.0.1');
// curl_setopt($curl, CURLOPT_USERAGENT, 'Googlebot/2.1 (+http://www.google.com/bot.html)');
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
// curl_setopt($curl, CURLOPT_REFERER, 'http://www.google.com');
curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate');
curl_setopt($curl, CURLOPT_AUTOREFERER, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
$html = curl_exec($curl); // execute the curl command
curl_close($curl); // close the connection
return $html; // and finally, return $html
}
<?php
$pathToFile = $this->context->expand("%wwwDir%/files/soubor.pdf");
// <a style="color: red;" onclick="..." href="https://phpfashion.com">blogísek</a>
var $el = $('<a>', {
href: url,
text: title,
click: function(e) {
alert(this.href);
},
css: {
color: 'red'
}
});
// <a href="https://phpfashion.com"><img alt="Logo" src="images/logo.gif"></a>
var $el = $('<a>', {
href: url,
html: $('<img>', {
src: 'images/logo.gif',
alt: 'Logo'
})
});
{foreach $polls as $id => $poll}
<h2>Anketa {$poll->name}</h2>
{control poll-$id}
{/foreach}
<?php
namespace App\FrontModule\Components;
use Nette\Application\UI,
Nette,
Nette\Mail\Message,
Nette\Mail\SendmailMailer,
App,
CardBook;
interface IContactUsFormFactory
{
/** @return ContactUsForm */
public function create ();
}
class ContactUsForm extends UI\Control
{
protected $userModel;
protected $mailer;
protected $messageFactory;
/** @persistent */
public $view;
public function __construct (App\Model\User $user, Nette\Mail\IMailer $mailer, App\FrontModule\Factory\MessageFactory $messageFactory)
{
parent::__construct();
$this->userModel = $user;
$this->mailer = $mailer;
$this->messageFactory = $messageFactory;
}
public function render()
{
if (!$this->view)
$this->template->setFile(__DIR__ . '/../templates/components/ContactUsForm/form.latte');
else
$this->template->setFile(__DIR__ . '/../templates/components/ContactUsForm/'.$this->view.'.latte');
$this->template->render();
}
public function createComponentForm()
{
$form = new UI\Form;
$form->addText("name", "Vaše jméno")
->addRule($form::FILLED, "Vyplňte prosím jméno");
$form->addText("email", "E-mail")
->addRule($form::FILLED, "Vyplňte prosím email")
->addRule($form::EMAIL, "Email není ve správném formátu");
$form->addTextArea("message", "Vaše zpráva")
->addRule($form::FILLED, "Vyplňte prosím Váš dotaz");
$form->addSubmit("send", "Odeslat");
$form->onSuccess[] = array($this, 'submitted');
return $form;
}
public function submitted($form)
{
$values = $form->getValues();
$template = $this->createTemplate();
$template->setFile(__DIR__ . '/../templates/emails/contactus.latte');
$template->title = 'Napište nám';
$template->values = $values;
$mail = $this->messageFactory->create();
//$mail = new Message;
$mail->setFrom($values->email)
->addTo(CardBook\Settings::ADMIN_EMAIL)
->setSubject('Cardbook - napište nám')
->setHtmlBody($template);
$this->mailer->send($mail);
// $mailer = new SendmailMailer; 1)
// $mailer = new Nette\Mail\SmtpMailer(array( 2)
// 'host' => 'smtp.savana.cz',
// 'username' => 'podpora@cardbook.cz',
// 'password' => 'uL$g4GHl6AR'
// ));
// $mailer->send($mail);
// 3)
//
// arguments: [..., ..., %foo%, %bar%] #ano, opravdu dvojtecky
// nebo:
// arguments: [foo: %foo%, bar: %bar%]
// nebo:
// arguments: [2: %foo%, 3: %bar%]
if ($this->presenter->isAjax())
{
$this->view = 'save';
$this->redrawControl('contactUsForm');
}
else
{
$this->redirect("this", array('view' => 'save'));
}
}
}
nette:
latte:
macros: [Img\ImgMacro]
services:
imageStorage: Img\ImageStorage(%tempDir%)
imagePipe: Img\ImagePipe(%wwwDir%)
jQuery.fn.extend({
insertAtCaret: function(myValue){
return this.each(function(i) {
if (document.selection) {
//For browsers like Internet Explorer
this.focus();
sel = document.selection.createRange();
sel.text = myValue;
this.focus();
}
else if (this.selectionStart || this.selectionStart == '0') {
//For browsers like Firefox and Webkit based
var startPos = this.selectionStart;
var endPos = this.selectionEnd;
var scrollTop = this.scrollTop;
this.value = this.value.substring(0, startPos)+myValue+this.value.substring(endPos,this.value.length);
this.focus();
this.selectionStart = startPos + myValue.length;
this.selectionEnd = startPos + myValue.length;
this.scrollTop = scrollTop;
} else {
this.value += myValue;
this.focus();
}
})
}
});
services:
nette.latteFactory:
setup:
- addFilter(abs, @petrjirasek\Latte\AbsFilter)
- petrjirasek\Latte\AbsFilter
{$form[name]->errors} - vraci pole chyb toho inputu
{$form[name]->error} - vraci retezec s chybami spojenych mezerou (obvykle ma input jen jeden error, takze tohle je asi nejlepsi)
{inputError name} - makro, ktere vypise chybu inputu
{$form[name]->hasErrors()}
<input n:name="number">
<span class=error n:ifcontent>{inputError number}</span>