+24.26
Рейтинг
60.32
Сила

Владимир

youtu.be

Код обработки новых share-ссылок с youtube.com

/engine/modules/text/Text.class.php
public function VideoParser($sText) {
/**
 * youtu.be
 */
$sText = preg_replace(
        '/<video>http:\/\/(?:www\.|)youtu.be\/([a-zA-Z0-9_\-]+)(&.+)?<\/video>/Ui', 
        '<iframe width="560" height="315" src="http://www.youtube.com/embed/$1?rel=0" frameborder="0" allowfullscreen></iframe>', 
        $sText);

Оптимизация шаблонов

Пролог


Наброски по данной статье лежали ещё с конца зимы и все никак не было времени на её написание, поэтому решил опубликовать её почти «как есть» т.е. с сухими выжимками фактов, без расписанных деталей. Это поможет остальным членам сообщества совершенствовать свои шаблоны.

Читать дальше →

Не работает вставка с ютюб

Опять 25. Понимаю проблема исписана. Я тоже знаю причину. Нужно только доработать код.

Видео вставляется вот так:
<iframe width="560" height="315" src="//www.youtube.com/embed/-uT1H6RslEE" frameborder="0" allowfullscreen></iframe>


В src нет протокола, а дживикс требует указать протокол. Т.е. с http: вот так:
<iframe width="560" height="315" src="http://www.youtube.com/embed/-uT1H6RslEE" frameborder="0" allowfullscreen></iframe>

Всё работает.

Ответ почти нашёл: livestreet.ru/blog/15641.html, но ссылка на первохабр битая, и я так и не узнал как нужно изменить код, что бы можно было вставлять без указания протокола.

Нужна ваша помощь. Спасибо!

в jevix.php у меня видео вставляется вот так:
array(
'iframe',
array('width' => '#int', 'height' => '#int', 'src' => array('#domain'=>array('youtube.com','youtu.be','rutube.ru','vimeo.com')))
),

[Решено] Помогите с оптимизацией LS 1.0.2

Вот мои средние показатели открытия главной страницы:








Активные плагины:
  • aceAdminPanel
  • AutoAlt
  • Blogtopics
  • Пингатор (исправленный)
  • Native
  • NiceURL
  • No WWW
  • Static page
  • Reserved Users
  • skdatedit
  • TinyMce
  • Viewcount

Как узнать где затуп, и что тянет ресурсы? Хостинг платный, хороший. Другие сайты на нём летают.

Вспомнил, что на сайте работал парсер, и загрузка зависела от скорости парсинга с другого сайта.

Все топики на главной, поднятие прокомментированого топика

Собственно необходимо все топики выводить на главную (решить можно с помощью конфига, на сколько мне известно). При комментирование топика, топик должен подниматься наверх (есть плагин commentup если не ошибаюсь называется, но он немного не подходит, объясню почему)

Читать дальше →

Sphinx и PHP 5.3.21

Пытаюсь завести сфинкс на PHP 5.3.21, где API сфинкса уже впилено в сам PHP:
sphinx support	enabled
Version	1.1.0

Конечно, стало ругаться на то, что классы уже определены. Закомментил следующую строку в /classes/modules/sphinx/Sphinx.class.php:
require_once(Config::Get('path.root.engine').'/lib/external/Sphinx/sphinxapi.php');

Ошибки ушли, но поиск не дает результатов.

Самое странное, что подобной ситуации со встроенным в PHP сфинксапи вообще не гуглится.

Индексы создаются, но на сайте поиск выдает пустой результат. В какую сторону копать?

config.php поиска:
source site1
{
    type				= mysql
	sql_host			= localhost
	sql_user			= site1_user
	sql_pass			= 123123123
	sql_db				= site1
	sql_port			= 3306	# optional, default is 3306
	sql_query_pre		= SET CHARACTER_SET_RESULTS=cp1251
}

source elements: site1
{
    sql_query_range		= SELECT MIN(topic_id), MAX(topic_id) FROM phpbb_topics
    sql_range_step		= 1000

	sql_query = SELECT \
                    topic_id, \
                    forum_id, \
                    topic_title, \
                    topic_poster, \
                    topic_replies, \
                    topic_views, \
                    topic_last_post_id  \
                FROM \
                    phpbb_topics \
                WHERE topic_id >= $start AND topic_id <= $end

	sql_attr_uint	= topic_poster
    sql_attr_uint   = topic_replies
    sql_attr_uint   = topic_views
	sql_attr_uint	= forum_id
    sql_attr_uint	= topic_last_post_id
}

source posts: site1
{
    sql_query_pre		= SET CHARACTER_SET_RESULTS=cp1251
    sql_query_pre       = REPLACE INTO sph_counter SELECT 1, MAX(post_id) FROM phpbb_posts_text
    
    sql_query_range		= SELECT MIN(post_id), (select max_doc_id from sph_counter) FROM phpbb_posts_text
    sql_range_step		= 1000

	sql_query = SELECT \
                    pt.post_id, \
                    p.poster_id, \
                    p.post_time, \
                    t.topic_id, \
                    t.forum_id, \
                    f.cat_id, \
                    p2.post_time as last_post_in_topic_time, \
                    pt.post_text as text, \
                    t.topic_title as title \
                FROM \
                    phpbb_posts_text pt \
                INNER JOIN \
                    phpbb_posts p on p.post_id = pt.post_id \
                INNER JOIN \
                    phpbb_topics t on p.topic_id = t.topic_id \
                INNER JOIN \
                    phpbb_posts p2 on t.topic_last_post_id = p2.post_id \
                INNER JOIN \
                    phpbb_forums f on t.forum_id = f.forum_id \
                WHERE pt.post_id >= $start AND pt.post_id <= $end

    sql_attr_uint       = last_post_in_topic_time
	sql_attr_uint       = poster_id
    sql_attr_uint       = topic_id
    sql_attr_uint       = forum_id
    sql_attr_uint       = cat_id
	sql_attr_timestamp	= post_time
}

source delta: posts
{
    sql_query_pre		= SET CHARACTER_SET_RESULTS=cp1251
    sql_query_range		= SELECT (select max_doc_id from sph_counter), MAX(post_id) FROM phpbb_posts_text
}

index topics
{
    docinfo			= extern
	morphology		= stem_enru
	stopwords			=
	min_word_len		= 1
	charset_type		= sbcs
	charset_table		= 0..9, A..Z->a..z, _, a..z, U+A8->U+E5, U+B8->U+E5, U+C0..U+DF->U+E0..U+FF, U+E0..U+FF
	min_prefix_len		= 0
	min_infix_len		= 0
    
    path			= /var/lib/sphinx/site1/topics
    source			= elements
    
    html_strip      = 1
}

index doubles: topics
{
    source          = elements
    path			= /var/lib/sphinx/site1/doubles
}

index posts: topics
{
	path			= /var/lib/sphinx/site1/posts
    source			= posts
}

index delta: posts
{
    path			= /var/lib/sphinx/site1/delta
    source			= delta
}

source site2
{
        type            = mysql
        sql_host        = localhost
        sql_user        = site2ls_user
        sql_pass        = 123123123
        sql_db          = site2ls
        sql_port        = 3306
#        sql_sock        = /var/run/mysqld/mysqld.sock
   
       
        mysql_connect_flags     = 32 
   
        sql_query_pre                   = SET NAMES utf8
        sql_query_pre                   = SET SESSION query_cache_type=OFF    
}
 
source topicsSource : site2
{
        sql_query               = \
                SELECT t_fast.topic_id, t_fast.topic_title, UNIX_TIMESTAMP(t_fast.topic_date_add) as topic_date_add, \
                tc.topic_text, t_fast.topic_publish \
                FROM prefix_topic as t_fast, prefix_topic_content AS tc \
                WHERE t_fast.topic_id=tc.topic_id AND t_fast.topic_id>=$start AND t_fast.topic_id<=$end
 
        sql_query_range         = SELECT MIN(topic_id),MAX(topic_id) FROM prefix_topic
        sql_range_step          = 1000
        sql_attr_uint = topic_publish
        sql_attr_timestamp      = topic_date_add
        sql_attr_multi  = uint tag from query; SELECT topic_id, topic_tag_id FROM prefix_topic_tag
        sql_ranged_throttle     = 0
}
 
source commentsSource : site2
{
        sql_query               = \
                        SELECT comment_id, comment_text, UNIX_TIMESTAMP(comment_date) as comment_date, comment_delete \
                        FROM prefix_comment \
                        WHERE target_type='topic' AND comment_id>=$start AND comment_id<=$end AND comment_publish=1
 
        sql_query_range         = SELECT MIN(comment_id),MAX(comment_id) FROM prefix_comment
        sql_range_step          = 5000
 
        sql_attr_uint = comment_delete
        sql_attr_timestamp      = comment_date
}
 
index topicsIndex
{
        source                  = topicsSource
        path                    = /var/lib/sphinx/site2/topicIndex
        docinfo                 = extern
        mlock                   = 0
        morphology = stem_enru
        charset_type            = utf-8
        html_strip                              = 1
        html_remove_elements = style, script, code
}
 
index commentsIndex
{
        source                  = commentsSource
        path                    = /var/lib/sphinx/site2/commentsIndex
        docinfo                 = extern
        mlock                   = 0
        morphology = stem_enru
        charset_type            = utf-8
        html_strip                              = 1
        html_remove_elements = style, script, code
}

indexer
{
    mem_limit           = 100M
}

searchd
{
    listen                  = localhost:3312
    log                     = /var/log/sphinx/searchd.log
    query_log               = /var/log/sphinx/query.log
    read_timeout            = 5
    max_children            = 30
    pid_file                = /var/run/sphinx/searchd.pid
    max_matches             = 10000
    seamless_rotate         = 1
    preopen_indexes         = 0
    unlink_old              = 1
}
 

Эксперементируем с responsive design на Livestreet

Может кому то пригодится или кто то хочет попробовать, название говорит само за себя.

В каждый тег
@media (max-width: XXXpx) { }
можем вставить тег стилей которые мы хотим уменьшит, увеличить, изменит.

             /** Эксперементируем с responsive design all %) **/
             
             
             /* Для мониторов больше 1300, ширина сайта будет 1200px */
             #container { width:1200px; min-width:600px;/* background: aqua; */}
             #content   { margin-right:20px; width:840px;}
            
             
             
             @media (max-width: 1300px) { 
             	#container { width:1130px; /*background: green; */}
             	#content   { margin-right:20px; width:770px;}
             }
             
             
             @media (max-width: 1200px) { 
             	#container { width:1030px; /*background: pink; */}
             	#content   { margin-right:20px; width:658px;}
             }
             
             @media (max-width: 1100px) { 
             	#container { width:950px;/*background: red;*/} 
             	#content   { margin-right:20px; width:568px;}
               
             	#header .nav.nav-main li     { font-size:26px;}	
             	#header .nav.nav-main li a   { margin-right:15px;}
             	
             
             }

Что сделать с AceAdminPanel для того, чтобы она отключалась в мобильном шаблоне

Поскольку адаптация плагинов к мобильному шаблону, вернее их отключение, вызывает большие проблемы у очень многих (в том числе и у меня), публикую способ отключения админки, за что отдельное спасибо rsmike , объяснил, подсказал.

Читать дальше →