Дружим DropBox и KDE (Public link context menu)

Как-то занесло меня установить себе последнюю kubuntu и как-то двоякие чувства, что-то удобно что-то хорошо, но до сих пор могу с лёгкостью вызвать segmentation fault.
Но это всё отхождения от темы.

Люблю я в папочку Public моего дропбокса кидать файлик и скидывать прямую ссылку друзьям.

в gnome всё нормально, а вот в КДЕ нифига нету…

но не беда
идём в /usr/share/kde4/services/ServiceMenus
создаём там файл под именем
dropboxpublic.desktop

и в него запульнём вот такое содержимое

[Desktop Action Dropbox Public URL]                                                                                              
Exec=dropbox puburl %u | xclip -selection clipboard                                                                              
Name=Get Public URL

[Desktop Entry]
Actions=Dropbox Public URL;
MimeType=application/octet-stream;
ServiceTypes=KonqPopupMenu/Plugin;
Type=Service
X-KDE-ServiceTypes=KonqPopupMenu/Plugin,

и не забываем что нам нужна ещё программка
xclip
если её нет то устанавливаем

apt-get install xclip

Вот и всё теперь в папке Паблик кликаем по файлу правой кнопкой Действия – Get Public URL
и ссылка на файл у нас в буфере обмена

profit!!!!111

Кэширование в Django ( Johnny Cache )

Тема очень разнообразна и широка, но постепенно я попробую рассказать о тех, которые пробовал.

Сегодня случилось чудо и я попробовал Johnny Cache

Суть его такова, что берём тупо все SELECT и складываем их в memcached. Кэш автоматически обнуляется при UPDATE или INSERT

Устанавливаем

pip install johnny-cache

или

easy_install johnny-cache

Кому как удобнее.

Дальше всё предельно просто, просто невероятно :) )

На сайте в документации приведён вот такой вариант настройки
1 Добавим две строки в MIDDLEWARE_CLASSES

# add johnny's middleware
MIDDLEWARE_CLASSES = (
    'johnny.middleware.LocalStoreClearMiddleware',
    'johnny.middleware.QueryCacheMiddleware',
    # ...
)

Также опишем бэкЭнд

# some johnny settings
CACHES = {
    'default' : dict(
        BACKEND = 'johnny.backends.memcached.MemcachedCache',
        LOCATION = ['127.0.0.1:11211'],
        JOHNNY_CACHE = True,
    )
}
JOHNNY_MIDDLEWARE_KEY_PREFIX='jc_myproj'

JOHNNY_MIDDLEWARE_KEY_PREFIX – надеюсь и так понятно для чего, если вдруг у нас несколько проектов используют mamcached и чтоб объекты не путались, используем префикс для текущего проекта.

Вот собственно и всё, на типовых сайтах с 7-10 запросов на страницу остался одни.
На нагруженных проектах, где на страницу было 20-30 запросов стало также 1-2.

Общее снижение числа запросов в рамках одного сервера тоже значительное в среднем раньше было 100 запросов в секунду, сейчас стало 30-40

прикручиваем filebrowser к tinyMCE без grappelli (django filebrowser no grappelli)

Продолжаю прошлую статью про tinyMCE
почему-то меня не радовала перспектива grappelli, когда можно без неё, поэтому я воспользовался вот этим проектом

https://github.com/wardi/django-filebrowser-no-grappelli

скачиваем распаковываем, устанавливаем

python setup.py install

установился он у меня вот сюда

/usr/lib/python2.5/site-packages/django_filebrowser-3.0-py2.5.egg

Дописываем
filebrowser в INSTALLED APPS
в urls.py перед «admin» добавим

(r'^admin/filebrowser/', include('filebrowser.urls')),

а вот с настройками у меня как-то не сложилось, как не пытался он всё ломится в /media/ а у меня MEDIA_ROOT = /static/
поэтому я поправил файл settings.py в каталоге

/usr/lib/python2.5/site-packages/django_filebrowser-3.0-py2.5.egg

и вместо media/ написал static
вот в этой строке

URL_FILEBROWSER_MEDIA = getattr(settings, "FILEBROWSER_URL_FILEBROWSER_MEDIA", "/static/filebrowser/")

ещё не знаю нужно или нет, в каком мануале найдено не смог найти
в каталоге templates я создал каталог admin
в него скопировал файл index.html из
/usr/lib/python2.5/site-packages/django/contrib/admin/templates/admin

и там перед строкой

    {% for app in app_list %}

добавил

{% include 'filebrowser/append.html' %}

Вот и всё появилась мелкая иконочка при выборе картинки в tinyMCE

Визуальный редаткор для Django

И так господа, в процессе написания блога на Django (да да изобретаем велосипед)

возникла резонная задача = визуальный редактор

вариантов подключения много, мне понравился больше вот этот.

ставим tinyMCE

easy_install django-tinymce

установилось оно у меня вот сюда
/usr/lib/python2.5/site-packages/django_tinymce-1.5.1a2-py2.5.egg

далее в каталоге tinymce есть каталог static, копируем содержимое в свою media_dir у меня это тоже static.

теперь в нужной нам модели можно заменить поля textarea на что-то такое

from django.db import models
from tinymce import models as tinymce_model

class MyModel(models.Model):
myField=tinymce_model.HTMLField()

теперь в settings.py

INSTALLED_APPS= (

‘tinymce’,

)

чуть ниже настройки

я использовал вот такие

#TinyMCE widget configuration
TINYMCE_JS_URL = MEDIA_URL + "tiny_mce/tiny_mce.js"
TINYMCE_JS_ROOT = MEDIA_URL + "/tiny_mce"
TINYMCE_SPELLCHECKER=False
TINYMCE_PLUGINS = [
    'safari',
    'table',
    'advlink',
    'advimage',
    'iespell',
    'inlinepopups',
    'media',
    'searchreplace',
    'contextmenu',
    'paste',
    'wordcount'
]

TINYMCE_DEFAULT_CONFIG={
    'theme' : "advanced",
    'plugins' : ",".join(TINYMCE_PLUGINS), # django-cms
    'language' : 'ru',
    "theme_advanced_buttons1" : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect,fontselect,fontsizeselect,|,spellchecker",
    "theme_advanced_buttons2" : "cut,copy,paste,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,image,cleanup,code,|,forecolor,backcolor,|,insertfile,insertimage",
    "theme_advanced_buttons3" : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr",
    'theme_advanced_toolbar_location' : "top",
    'theme_advanced_toolbar_align' : "left",
    'theme_advanced_statusbar_location' : "bottom",
    'theme_advanced_resizing' : True,
    'table_default_cellpadding': 2,
    'table_default_cellspacing': 2,
    'cleanup_on_startup' : False,
    'cleanup' : False,
    'paste_auto_cleanup_on_paste' : False,
    'paste_block_drop' : False,
    'paste_remove_spans' : False,
    'paste_strip_class_attributes' : False,
    'paste_retain_style_properties' : "",
    'forced_root_block' : False,
    'force_br_newlines' : False,
    'force_p_newlines' : False,
    'remove_linebreaks' : False,
    'convert_newlines_to_brs' : False,
    'inline_styles' : False,
    'relative_urls' : False,
    'formats' : {
        'alignleft' : {'selector' : 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img', 'classes' : 'align-left'},
        'aligncenter' : {'selector' : 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img', 'classes' : 'align-center'},
        'alignright' : {'selector' : 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img', 'classes' : 'align-right'},
        'alignfull' : {'selector' : 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img', 'classes' : 'align-justify'},
        'strikethrough' : {'inline' : 'del'},
        'italic' : {'inline' : 'em'},
        'bold' : {'inline' : 'strong'},
        'underline' : {'inline' : 'u'}
    },
    'pagebreak_separator' : "",
    # Drop lists for link/image/media/template dialogs
    'template_external_list_url': 'lists/template_list.js',
    'external_link_list_url': 'lists/link_list.js',
    'external_image_list_url': 'lists/image_list.js',
    'media_external_list_url': 'lists/media_list.js',
    #
    #'file_browser_callback':'tinyDjangoBrowser'
}

также в urls.py добавим

(r’^tinymce/’,include(’tinymce.urls)),

теперь по хорошему всё, в админке нужное поле будет отображено как ТиниМЦЕ редактор.

если не будет я удалил таблицу в котором эти поля и сделал сункДБ.
потом появилось.

Ещё будет пост о том как к нему прикрутить возможность заливки файлов и картинок.

Убрать поле email в комментариях WordPress (remove email from comments)

А вот с этим полем сложнее.

для начала делаем так, чтоб поле емейл было не обязательно это в Настройка- Обсуждение снимаем нужную галочку
потом идём в код в каталог и файл wp-includes/comment-template.php

там находим

'email'  => '<p class="comment-form-email">' .
                '<label for="email">' . __( 'Your Email' ) . '</label> ' .
                ( $req ? '<span class="required">*</span>' : '' ) .
                '<input id="email" name="email" type="text" value="' . esc_attr(  $commenter['comment_author_email'] ) . '" size="30"' . $aria_req . ' />' .
        '</p><!-- #form-section-email .form-section -->',

я на том месте сделал

'email'  => '',
Страница 2 из 3212345102030...Последняя »