рубрика: Интернет

Django youtube video template filter

Фильтр выковыривает ссылки из текста и вставляет как oembed объект. Можно задать длину-ширину опционально: {{ content|youtube:»320×240″ }} по дефолту 320×240.

# -*- coding: utf-8 -*-

from django.template.defaultfilters import stringfilter
from django import template
import re

register = template.Library()

@register.filter
@stringfilter
def youtube(url, size=None):
    regex = re.compile(r".*(http://)?(www\.)?(youtube\.com/watch\?)?v=(?P[A-Za-z0-9\-=_]{11})(\&)?.*", re.UNICODE)
    match = regex.match(url)
    if not match: return url
    video_id = match.group('id')

    video_w = "320"
    video_h = "240"
    if size and "x" in size:
        (video_w, video_h) = size.split('x')

    youtube_iframe = """
    <iframe src="http://www.youtube.com/embed/%s?fs=1&feature=oembed" frameborder="0" allowfullscreen width="%spx" height="%spx"></iframe>
    """ % (video_id, video_w, video_h)

    repl = re.compile(r"(http://)?(www\.)?(youtube\.com/watch\?v=)?(?P[A-Za-z0-9\-=_]{11}[^\b]*)", re.UNICODE)
    text = re.sub(repl, youtube_iframe, url)
    return text
youtube.is_safe = True # Don't escape HTML

TinyMCE для Django

Прикручиваем tinymce к django. Я случайно наткнулся на такое исполнение прикручивания tinymce к django.

1. Создаем в папке проекта папку wysiwyg, а в ней файл __init__.py (код которого приведен ниже)

#!/usr/bin/python
# -*- encoding: utf-8 -*-

from django.db.models import Field
from django.forms import Textarea
from settings import MEDIA_URL

class WidgetWYSIWYG(Textarea):
    def __init__(self, *args, **kwargs):
        super(WidgetWYSIWYG, self).__init__(attrs={'class': 'wysiwygEditor vLargeTextField'}, *args, **kwargs)
    class Media:
        js = (
            MEDIA_URL+'common/tiny_mce/tiny_mce.js',
            MEDIA_URL+'common/filebrowser/js/TinyMCEAdmin.js',
            )

class WYSIWYGField(Field):
    def get_internal_type(self):
        return "TextField"

    def formfield(self, **kwargs):
        defaults = {'widget': WidgetWYSIWYG}
        defaults.update(kwargs)
        return super(WYSIWYGField, self).formfield(**defaults)

2. Теперь мы можем создать свою модель и вместо поля models.TextField использовать WYSIWYGField. Смотрим код models.py ниже.

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from django.db import models
import datetime
from wysiwyg import WYSIWYGField

# Create your models here.
class News(models.Model):
    """
    Новости
    """
    publish = models.BooleanField(verbose_name=u"Опубликовать", default=True)
    created = models.DateField(verbose_name=u"Дата", default=datetime.date.today)
    title = models.CharField(verbose_name=u"Заголовок", max_length=250)
    preview = models.TextField(verbose_name=u"Краткое описание")
    text = WYSIWYGField(verbose_name=u"Текст")

    def __unicode__(self):
        return self.title

    class Meta:
        ordering = ('-created',)
        verbose_name = u"Новость"
        verbose_name_plural = u"Новости"

Русифицируем D-Link DIR 320

Пользуюсь вот таким зверьком уже много времени и только сегодня захотелось его русифицировать.

Моя прошивка 1.10 а модель само сабой D-Link DIR 320.

Русификатор работает на версиях от 1.1 и выше Для русификации интерфейса скачайте специальный Language Pack (langpack_ru.bin) с FTP
сервера D-Link ftp.dlink.ru/pub/Router/DIR-320/Firmware/ и сохраните файл на жестком диске
компьютера. Еще раз зайдите в меню Maintenance ? Firmware Update. В пункте Language Pack
Upgrade нажмите на кнопку Обзор и укажите путь к файлу русификатора и нажмите Apply.

Вот и все после роутер ребутнется и станет рускоговорящим.

Поиск по умолчанию в мазиле

Задолбали меня программы которые без ведома в моем браузере меняют настройки. Я как правило сразу удаляю такой софт не дающий право на выбор. В топку их с чертями небесными. А вот как я это исправляю в мазиле:
в адресной строке вбиваем «about:config».
ставим значения
browser.search.defaultenginename = Google
browser.search.selectedengine = Google
keyword.URL = http://www.google.ru/search?hl=ru&q=

Стандартные шрифты Windows

На веб‑страницах имеет смысл использовать только те шрифты, которые установлены на компьютерах пользователей. Вот перечень таких шрифтов.

Шрифт Семейство Windows Office Образец шрифта
(изображение)
Образец шрифта
(текст)
Arial sans‑serif 3.1, 95, NТ 3.5 97 Arial Образец шрифта
Arial Black sans‑serif 95, 2000 97 Arial Black Образец шрифта
Arial Narrow sans‑serif 4.3 Arial Narrow Образец шрифта
Arial Unicode MS sans‑serif 2000 Arial Unicode MS Образец шрифта
Book Antiqua serif 98 4.3 Book Antiqua Образец шрифта
Bookman Old Style serif 4.3 Bookman Old Style Образец шрифта
Calibri sans‑serif Vista 2007 Calibri Образец шрифта
Cambria serif Vista 2007 Cambria Образец шрифта
Candara sans‑serif Vista 2007 Candara Образец шрифта
Century serif 2000 Century Образец шрифта
Century Gothic sans‑serif 95 4.3 Century Gothic Образец шрифта
Comic Sans MS cursive 95, 2000 97 Comic Sans MS Образец шрифта
Consolas monospace Vista 2007 Consolas Образец шрифта
Constantia serif Vista 2007 Constantia Образец шрифта
Corbel sans‑serif Vista 2007 Corbel Образец шрифта
Courier New monospace 3.1, 95, NT 3.5 97 Courier New Образец шрифта
Franklin Gothic Medium sans‑serif XP 97 Franklin Gothic Medium Образец шрифта
Garamond serif 97 Garamond Образец шрифта
Georgia serif 95, 2000 97 Georgia Образец шрифта
Impact sans‑serif 95, 2000 4.3 Impact Образец шрифта
Lucida Console monospace 95, NT 3.5 Lucida Console Образец шрифта
Lucida Sans Unicode sans‑serif 95, NT 3.5 Lucida Sans Unicode Образец шрифта
Microsoft Sans Serif sans‑serif 2000 Microsoft Sans Serif Образец шрифта
Mistral cursive 97 Mistral Образец шрифта
Monotype Corsiva cursive 4.3 Monotype Corsiva Образец шрифта
Palatino Linotype serif 2000 2003 Palatino Linotype Образец шрифта
Segoe Print cursive Vista 2007 Segoe Print Образец шрифта
Segoe Script cursive Vista 2007 Segoe Script Образец шрифта
Segoe UI sans‑serif Vista 2007 Segoe UI Образец шрифта
Sylfaen serif XP Sylfaen Образец шрифта
Tahoma sans‑serif 98, 2000 97 Tahoma Образец шрифта
Times New Roman serif 3.1, 95, NT 3.5 97 Times New Roman Образец шрифта
Trebuchet MS sans‑serif 95, 2000 97 Trebuchet MS Образец шрифта
Verdana sans‑serif 95, 2000 97 Verdana Образец шрифта

Резайл (Thumbnail) изображения в bitrix №2

Метод создает уменьшенную копию изображения sourcePath.

bool
CreateThumbnail(
 string sourcePath,
 string previewPath,
 int maxWidth,
 int maxHeight
);
sourcePath Абсолютный путь к исходному изображению, для которого необходимо сделать уменьшенную копию.
previewPath Абсолютный путь к файлу, в который будет сохранена уменьшенная копия изображения.
maxWidth Максимальная ширина уменьшенного изображения.
maxHeight Максимальная высота уменьшенного изображения
<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/wizard.php");

$success = CWizardUtil::CreateThumbnail($_SERVER["DOCUMENT_ROOT"]."/big.gif",$_SERVER["DOCUMENT_ROOT"]."/small.gif", 100, 100);

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");
?>

Пост с iPhone

ТЕстирую официальный софт от вордпресс для постинга с айфона. Честно сказать впечатление на все сто;) Я думаю эта софтина у меня на айфоне задержится на долго=)

Плавающий блок с помощью jQuery

В одно время сталкивался с такой задачей, но до постинга так и не доходило дело, а сегодня старый добрый товарищь натолкнулся на данную вещицу=) Так что пришло время постить. В общем как это делается:

CSS

.left {
	width: 70%;
	float: left;
	height: 1500px;
}
.right {
	margin-top: 10px;
	float: right;
	width: 20%;
}
#fixed {
	background: #CCC;
	padding: 20px;
}

Подключение jQuery

<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>

JavaScript

Добавляем в <head> тег

<script type="text/javascript">
	$(function() {
		var offset = $("#fixed").offset();
		var topPadding = 15;
		$(window).scroll(function() {
			if ($(window).scrollTop() > offset.top) {
				$("#fixed").stop().animate({marginTop: $(window).scrollTop() - offset.top + topPadding});
			}
			else {$("#fixed").stop().animate({marginTop: 0});};});
	});
</script>

HTML

<div class="left">
	<!-- Содержание -->
</div>
<div class="right">
	<div id="fixed">Текст фиксированного блока.</div>
</div>

Format DateTime in Django Admin

If you are trying to format a DateTimeField() field in the Django admin you may find it harder than you think. You would think that the DATE_FORMAT and DATETIME_FORMAT in settings.py would apply to the admin BUT it only applies to date formatting in the template.

At present there is no easy way to format the date but the following example of one method of how to do it:

class News(models.Model):
    headline = models.CharField(max_length=100)
    date = models.DateTimeField()
    article = models.TextField()
    published = models.BooleanField()

class NewsAdmin(admin.ModelAdmin):
    list_display = ('headline', 'format_date', 'published')

    def format_date(self, obj):
        return obj.date.strftime('%d %b %Y %H:%M')
    format_date.short_description = 'Date'

Google Talk на своем домене [в простонароде ;) jabber ]

Как известно паркуя свой домен в Google на сервисы Вам не дается описание что и как сделать для работы jabber на своем  домене. Если возник такой вопрос у кого то еще то спешите прописать для домена следующие SRV записи

_xmpp-server._tcp.gmail.com. IN SRV 5 0 5269 xmpp-server.l.google.com.
 _xmpp-server._tcp.gmail.com. IN SRV 20 0 5269 xmpp-server1.l.google.com.
 _xmpp-server._tcp.gmail.com. IN SRV 20 0 5269 xmpp-server2.l.google.com.
 _xmpp-server._tcp.gmail.com. IN SRV 20 0 5269 xmpp-server3.l.google.com.
 _xmpp-server._tcp.gmail.com. IN SRV 20 0 5269 xmpp-server4.l.google.com.
 _jabber._tcp.gmail.com. IN SRV 5 0 5269 xmpp-server.l.google.com.
 _jabber._tcp.gmail.com. IN SRV 20 0 5269 xmpp-server1.l.google.com.
 _jabber._tcp.gmail.com. IN SRV 20 0 5269 xmpp-server2.l.google.com.
 _jabber._tcp.gmail.com. IN SRV 20 0 5269 xmpp-server3.l.google.com.
 _jabber._tcp.gmail.com. IN SRV 20 0 5269 xmpp-server4.l.google.com.