/ Gists

Gists

On gists

jQuery - reverse each

jQuery Helpers-Filters-Plugins

reverse-each.js #

$(function(){
	var reversedSet = $("li").get().reverse();
	//Use get() to return an array of elements, and then reverse it
 
	$(reversedSet).each(function(){
		//Now we can plug our reversed set right into the each function. Could it be easier?
	});
});

On gists

Mysql variables run like query

MySql

mysql-query-variable.sql #

SET @table = 'article_lang';

SET @q1 = CONCAT('UPDATE ', @table,' SET language_id = 1000 WHERE language_id = 1');
SET @q2 = CONCAT('UPDATE ', @table,' SET language_id = 1 WHERE language_id = 2');
SET @q3 = CONCAT('UPDATE ', @table,' SET language_id = 2 WHERE language_id = 1000');

PREPARE stmt FROM @q1;
EXECUTE stmt;

PREPARE stmt FROM @q2;
EXECUTE stmt;

PREPARE stmt FROM @q3;
EXECUTE stmt;

On gists

From https://forum.nette.org/cs/24327-jak-ve-formulari-vypnout-editaci-pole-ale-zobrazit-data#p162878

Nette Nette-Forms Nette-Tricks

nette-readonly.php #

$input = $form->addInput('text');
$input->setDisabled(true); // nejdřív vypnout editaci
$input->setOmitted(false); // potom vypnout neodesílání

On gists

Helper když díky vazbám nejde použít spojení ...

Nette Helpers-Filters-Plugins

andweb-datatype-helper.php #

	public function helperImage($id, $size = 'original'){

		$imageDataType = new \Andweb\Datatypes\Image('image');

		$imageDataType->setValue($id);

		return $imageDataType->getImageElement($size);

	}

On gists

From https://forum.nette.org/cs/20267-jde-nejak-zmenit-data-v-active-row-kdyz-jsou-ted-read-only#p139460 Wrapper nad ActiveRow, Nette

Nette Nette-Tricks

nette-wrapper-active-row.php #

class RowWrapper extends Nette\Object
{
    protected $row;

    protected $data;

    public function __construct(Nette\Database\Table\ActiveRow $row)
    {
        $this->row = $row;
    }

    public function &__get($key)
    {
        if(isset($this->data[$key]) {
            $value = $this->data[$key];
        }
        $value = $this->row->$key;

        return $value;
    }

    public function __set($key, $value)
    {
        $this->data[$key] = $value;
    }

    //pripadne jeste related a ref

}

On gists

From https://diskuse.jakpsatweb.cz/?action=vthread&forum=9&topic=109986#7 fotbal-dom-parsování

PHP-PHPDOM

parsovani-dom.php #

$data = <<< DATA
  <tr>
    <td rowspan=6 align="center" valign="middle"><font size=-2>12. KOLO</font></td>
    <td align="center"><font size=-2>10.9.</font></td>
    <td align="center"><font size=-2>17:00</font></td>
    <td align="left"><font size=-2>FC ŠEBÁNEK</font></td>
    <td align="left"><font size=-2>ROZJETEJ STROJ</font></td>
    <td align="right"><font size=-2><B> </B></font></td>
    <td align="right"><font size=-2> </font></td>
    <td align="left"><font size=-2> </font></td>
  </tr>
  <tr>
    <td align="center"><font size=-2>10.9.</font></td>
    <td align="center"><font size=-2>17:53</font></td>
    <td align="left"><font size=-2>BOMBERS TEAM</font></td>
    <td align="left"><font size=-2>STATUS QUO</font></td>
    <td align="right"><font size=-2><B> </B></font></td>
    <td align="right"><font size=-2> </font></td>
    <td align="left"><font size=-2> </font></td>
  </tr>
  <tr>
    <td align="center"><font size=-2>10.9.</font></td>
    <td align="center"><font size=-2>18:46</font></td>
    <td align="left"><font size=-2>ELITA CHASERS</font></td>
    <td align="left"><font size=-2>VIPER TEAM</font></td>
    <td align="right"><font size=-2><B> </B></font></td>
    <td align="right"><font size=-2> </font></td>
    <td align="left"><font size=-2> </font></td>
  </tr>
  <tr>
    <td align="center"><font size=-2>10.9.</font></td>
    <td align="center"><font size=-2>19:39</font></td>
    <td align="left"><font size=-2>PROŠLÝ MLÍKA</font></td>
    <td align="left"><font size=-2>RVHP</font></td>
    <td align="right"><font size=-2><B> </B></font></td>
    <td align="right"><font size=-2> </font></td>
    <td align="left"><font size=-2> </font></td>
  </tr>
  <tr>
    <td align="center"><font size=-2>10.9.</font></td>
    <td align="center"><font size=-2>20:32</font></td>
    <td align="left"><font size=-2>OSPLPPOTR.</font></td>
    <td align="left"><font size=-2>FC KEBOURY</font></td>
    <td align="right"><font size=-2><B> </B></font></td>
    <td align="right"><font size=-2> </font></td>
    <td align="left"><font size=-2> </font></td>
  </tr>
  <tr>
    <td align="center"><font size=-2>10.9.</font></td>
    <td align="center"><font size=-2>21:25</font></td>
    <td align="left"><font size=-2>AC PELYŇKOVÝ DESTILÁT UNITED</font></td>
    <td align="left"><font size=-2>LOSERS OF UFTALAND</font></td>
    <td align="right"><font size=-2><B> </B></font></td>
    <td align="right"><font size=-2> </font></td>
    <td align="left"><font size=-2> </font></td>
  </tr>
  <tr>
    <td rowspan=6 align="center" valign="middle"><font size=-2>13. KOLO</font></td>
    <td align="center"><font size=-2>17.9.</font></td>
    <td align="center"><font size=-2>17:00</font></td>
    <td align="left"><font size=-2>LOSERS OF UFTALAND</font></td>
    <td align="left"><font size=-2>OSPLPPOTR.</font></td>
    <td align="right"><font size=-2><B> </B></font></td>
    <td align="right"><font size=-2> </font></td>
    <td align="left"><font size=-2> </font></td>
  </tr>
  <tr>
    <td align="center"><font size=-2>17.9.</font></td>
    <td align="center"><font size=-2>17:53</font></td>
    <td align="left"><font size=-2>FC KEBOURY</font></td>
    <td align="left"><font size=-2>PROŠLÝ MLÍKA</font></td>
    <td align="right"><font size=-2><B> </B></font></td>
    <td align="right"><font size=-2> </font></td>
    <td align="left"><font size=-2> </font></td>
  </tr>
  <tr>
    <td align="center"><font size=-2>17.9.</font></td>
    <td align="center"><font size=-2>18:46</font></td>
    <td align="left"><font size=-2>AC PELYŇKOVÝ DESTILÁT UNITED</font></td>
    <td align="left"><font size=-2>FC ŠEBÁNEK</font></td>
    <td align="right"><font size=-2><B> </B></font></td>
    <td align="right"><font size=-2> </font></td>
    <td align="left"><font size=-2> </font></td>
  </tr>
  <tr>
    <td align="center"><font size=-2>17.9.</font></td>
    <td align="center"><font size=-2>19:39</font></td>
    <td align="left"><font size=-2>RVHP</font></td>
    <td align="left"><font size=-2>ELITA CHASERS</font></td>
    <td align="right"><font size=-2><B> </B></font></td>
    <td align="right"><font size=-2> </font></td>
    <td align="left"><font size=-2> </font></td>
  </tr>
  <tr>
    <td align="center"><font size=-2>17.9.</font></td>
    <td align="center"><font size=-2>20:32</font></td>
    <td align="left"><font size=-2>VIPER TEAM</font></td>
    <td align="left"><font size=-2>BOMBERS TEAM</font></td>
    <td align="right"><font size=-2><B> </B></font></td>
    <td align="right"><font size=-2> </font></td>
    <td align="left"><font size=-2> </font></td>
  </tr>
  <tr>
    <td align="center"><font size=-2>17.9.</font></td>
    <td align="center"><font size=-2>21:25</font></td>
    <td align="left"><font size=-2>STATUS QUO</font></td>
    <td align="left"><font size=-2>ROZJETEJ STROJ</font></td>
    <td align="right"><font size=-2><B> </B></font></td>
    <td align="right"><font size=-2> </font></td>
    <td align="left"><font size=-2> </font></td>
  </tr>
DATA;
 
$ary = array();
 
$dom = new DOMDocument();
$dom->loadHTML('<?xml encoding="UTF-8">' . $data);
$trs = $dom->getElementsByTagName('tr');
for ($i = 0; $i < $trs->length; $i++) {
    $tds = $trs->item($i)->getElementsbyTagName('td');
    for ($j = 0; $j < $tds->length; $j++) {
        $ary[$i][$j] = $tds->item($j)->getElementsByTagName('font')->item(0)->nodeValue;
    }
}
 
var_dump($ary);

On gists

Ruční vykreslení formuláře v Nette (skoro ruční)

Nette Nette-Forms Nette-Tricks Nette-Latte

semi-manual-form-renderning.latt #

{form $form}
<ul class=error n:if="$form->ownErrors">
	<li n:foreach="$form->ownErrors as $error">{$error}</li>
</ul>

<table>
<tr n:foreach="$form->controls as $input" n:class="$input->required ? required">
	<th>{label $input /}</th>
	<td>{input $input} <span class=error n:ifcontent>{$input->error}</span></td>
</tr>
</table>
{/form}

On gists

From http://programujte.com/forum/vlakno/30409-csfd-api/

PHP-PHPDOM

csfd-dom-xpath.php #

<?php

$dom = new domDocument;
$csfd = file_get_contents("http://www.csfd.cz/film/$csfd_id");
$html = (ord($csfd[0]) == 31) ? gzdecode($csfd) : $csfd;
@$dom->loadHTML($html);
$dom->preserveWhiteSpace = false;

$xpath = new DOMXPath($dom);
$nazvy = array();
$zeme = array();
$names_other = "";
$nodes = $xpath->query("//h1[@itemprop='name']");
$names_cs = $nodes->item(0)->nodeValue;

foreach($xpath->query("//ul[@class='names']/li/h3") as $li) {
    $nazvy[] = $li->nodeValue;
}
foreach($xpath->query("//ul[@class='names']/li/img") as $li) {
    $zeme[] = $li->getAttribute('alt');
}
for($i=0;$i<count($nazvy);$i++){
    if($i==count($nazvy)-1)
        $names_other .= $zeme[$i]."-".$nazvy[$i];
    else
        $names_other .= $zeme[$i]."-".$nazvy[$i].";";
}

$nodes = $xpath->query("//h2[@class='average']");
$hodnoceni = str_replace('%', '', $nodes->item(0)->nodeValue);

$nodes = $xpath->query("//p[@class='origin']");
$podrobnosti = explode(", ", $nodes->item(0)->nodeValue);

$nodes = $xpath->query("//p[@class='genre']");
$genre = str_replace(' / ', '@;@', $nodes->item(0)->nodeValue);

$nodes = $xpath->query("//span[@data-truncate='340']");
$hraji = $nodes->item(0)->nodeValue;

$nodes = $xpath->query("//div[@data-truncate='570']");
$popis = $nodes->item(0)->nodeValue;

$nodes = $xpath->query("//img[@class='film-poster']");
$poster_url = "http:".$nodes->item(0)->getAttribute('src');

On gists

Human Readable File Size with PHP

PHP Helpers-Filters-Plugins

gistfile1.php #

<?php
# http://jeffreysambells.com/2012/10/25/human-readable-filesize-php
function human_filesize($bytes, $decimals = 2) {
    $size = array('B','kB','MB','GB','TB','PB','EB','ZB','YB');
    $factor = floor((strlen($bytes) - 1) / 3);
    return sprintf("%.{$decimals}f", $bytes / pow(1024, $factor)) . @$size[$factor];
}

echo human_filesize(filesize('example.zip'));

On gists

PHP Curl to check if url is alive

PHP

curl_example.php #

<?php

function check_alive($url, $timeout = 10, $successOn = array(200, 301)) {
  $ch = curl_init($url);

  // Set request options
  curl_setopt_array($ch, array(
    CURLOPT_FOLLOWLOCATION => false,
    CURLOPT_NOBODY => true,
    CURLOPT_TIMEOUT => $timeout,
    CURLOPT_USERAGENT => "page-check/1.0"
  ));

  // Execute request
  curl_exec($ch);

  // Check if an error occurred
  if(curl_errno($ch)) {
    curl_close($ch);
    return false;
  }

  // Get HTTP response code
  $code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
  curl_close($ch);

  // Page is alive if 200 OK is received
  //return $code;
  return in_array( $code, $successOn );
}

$checks = array(
	'http://www.google.co.uk',
	'http://www.facebook.com',
	'http://www.bbc.co.uk',
	'http://photogabble.co.uk',
	'http://youtube.com'
	);

foreach($checks as $check)
{
	echo $check . ' is ' . ( (check_alive($check) ) ? 'Alive' : 'Dead' ) . "\n";
}