Miesięczne archiwum: Maj 2015

zamiana kanału YouTube na feed RSS

kiedyś dało się to zrobić przez link typu:


http://gdata.youtube.com/feeds/api/users/xxxx/uploads

Niestety od kwietnia 2015 jest to przez YT systematycznie wycofywane i kanały przestają działać w ten sposób.

Pomocnym może okazać się ten skrypt PHP. Znaleźliśmy to na tej stronie i poprawiliśmy w nim błędy. Został także dostosowany do polskich realiów (m.in. pod kątem kodowania polskich znaków).

Enjoy.


<?php

libxml_use_internal_errors(true);

if (!isset($_GET['url'])) {
?>
<!DOCTYPE html>
<meta charset="utf-8">
<title>Youtube RSS creator</title>
<form>
<p>Create an RSS feed for the videos on the following page:
<p><input name="url" placeholder="E.g. https://www.youtube.com/user/scishow/videos" style="width: 30em">
<p><input type="submit" value="Create">
</form>
<?php
exit;
}

$url = $_GET['url'];

$host = preg_replace('#^(https?://[^/]+).*#', '$1', $url);
$author = preg_replace('#^(https?://[^/])/user/([^/]+).*#', '$1', $url);

$html = file_get_contents($url);
$doc = new DOMDocument();
$doc->loadHTML($html);

$xpath = new DOMXpath($doc);

$mainTitle = $xpath->query('//title')->item(0)->nodeValue;
$links = $xpath->query('//a[starts-with(@href, "/watch")]');

$entries = array();

if (!is_null($links)) {
foreach ($links as $link) {
$href = $link->getAttribute('href');
$title = $link->getAttribute('title');

$title= iconv("UTF-8","ISO-8859-1",$title);

if ($title === '')
$title = trim($link->nodeValue);

if (!isset($entries[$href]) || strlen($entries[$href]) < strlen($title))
$entries[$href] = $title;
}
}

header('Content-Type: application/atom+xml; charset=utf-8');

$mainTitle = htmlspecialchars($mainTitle);

$protocol = $_SERVER['HTTPS'] === 'on' ? 'https' : 'http';
$port = ":$_SERVER[SERVER_PORT]";
if (($protocol === 'http' && $port === ":80") || ($protocol === 'https' && $port === ":443"))
$port = '';
$self = htmlspecialchars("$protocol://$_SERVER[SERVER_NAME]$port$_SERVER[REQUEST_URI]");

$url = htmlspecialchars($url);

$author = htmlspecialchars($author);

$updated = time();
$updated -= $updated % 60;

echo '<?xml version="1.0" encoding="utf-8"?>';

?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title type="text"><?= $mainTitle ?></title>
<link rel="self" href="<?= $self ?>" type="application/atom+xml" />
<link rel="alternate" href="<?= $url ?>" type="text/html" />
<updated><?= date('c', $updated) ?></updated>
<id><?= $url ?></id>
<?php

$skip = array('Alle wiedergeben','Wiedergeben');

foreach ($entries as $entryUrl => $title) {
$entryUrl = htmlspecialchars("$host$entryUrl");
$title = htmlspecialchars($title);
$updated -= 60;

if (!in_array(trim($title),$skip)) {

?>
<entry>
<id><?= $entryUrl ?></id>
<title type="text"><?= $title ?></title>
<link rel="alternate" href="<?= $entryUrl ?>" />
<author>
<name><?= $author ?></name>
</author>
<updated><?= date('c', $updated) ?></updated>
</entry>
<?php

}

}
?>
</feed>

 

 

jak dodać stopkę z kodu HTML do programu ThunderBird

Z racji, że nasi Klienci często pytają w jaki sposób można to wykonać – przedstawiamy ten krótki tutorial.

W programie wybieramy konto pocztowe w którym chcemy wstawić stopkę i klikamy na jego nazwę i prawym przyciskiem myszy wybierając „Ustawienia”:

stopka-z-kodu-html-thunterbird

Następnie w oknie które się pojawi wskazujemy plik na naszym dysku twardym, gdzie mamy kod ze stopką:

stopka-z-kodu-html-thunterbird-2

(Możemy także w oknie wyżej wkleić go bezpośrednio, ale zalecamy ten sposób. Łatwiej można wykonać zmiany np. numeru telefonu w takim pliku)

Uwaga, nie możemy pliku z kodem usunąć z dysku, zmienić jego nazwy lub go przenieść. W takim wypadku stopka nie będzie wyświetlana. Należy w takim wypadku umieścić go w miarę „bezpiecznym” miejscu na dysku twardym 😉

WordPress – wyświetlenie w dowolnym miejscu treści postu lub strony o określonym ID

Wystarczy w szablonie wstawić ten kod:


// Powiedzmy że taki ID ma nasza strona
$my_postid = 12;
$content_post = get_post($my_postid);
$content = $content_post->post_content;
$content = apply_filters('the_content', $content);

// uwalniamy od znaków
$content = str_replace(']]>', ']]&gt;', $content);

// wyświetlamy treść
echo $content;

jak definitywnie przekierować stronę pod inny adres?

Najlepiej użyć pliku .htaccess w katalogu głównym strony. Takie przekierowanie powinno działać niezależnie od zainstalowanego na serwerze oprogramowania (np. wersji PHP albo czy w ogóle PHP jest dostępne).

Dodatkowo takie rozwiązanie jest przyjazne dla pozycjonowania, ponieważ cały ruch jest przekierowany na inną lokalizację. Do tego stopnia, że jak inną domenę przekierujemy na naszą stronę w ten sposób – może ona także przejąź negatygne pozycjonowanie domeny która na nią wskazuje. Ale to osobna historia 😉

Wróćmy do naszego pliku. Jedyny wpis w który w nim umieszczamy to:


Redirect 301 / http://www.adres-na-ktory-chcemy-przekierowac.pl

Czyli np.


Redirect 301 / http://www.onet.pl