Master-X
Форум | Новости | Статьи
Главная » Форум » Блоги и Социальные сети » 
Тема: Wordpress How To
цитата
30/05/11 в 04:09
 harvester
А есть ли какие то схемы облегчения WP? Чтобы без дела к БД не обращался. Тему там облегчить (где можно сделать статичной) и какие виджеты например лучше отключать.
цитата
31/05/11 в 00:49
 shamit
Yacc: Wordpress How To

такая проблема.. на сингле пагах всё ok, а на индексе все картинки на видео одинаковые как на нижний на этой странице, + мувик в последнем посте начинает играть сразу.. Куда копать ?
цитата
31/05/11 в 09:09
 Yacc
Исправил баг с картинками. (выделено красным)

Чтобы видео не играло сразу надо либо установить картинку, либо stop_after="1000".
цитата
31/05/11 в 10:34
 shamit
Yacc писал:
Исправил баг с картинками. (выделено красным)

Чтобы видео не играло сразу надо либо установить картинку, либо stop_after="1000".


картинки исправились ,спасибо smail54.gif

с видео разобрались smail101.gif оказывается id плеера надо менять на уникальный
цитата
31/05/11 в 13:57
 Yacc
shamit писал:
с видео разобрались smail101.gif оказывается id плеера надо менять на уникальный

Вот здесь устанавливается id плеера:
Код:
function yacc_attachment_fields_to_edit( $form_fields, $post ) {
    if ( substr( $post->post_mime_type, 0, 5 ) == 'video' ) {
      $meta = wp_get_attachment_metadata( $post->ID );     
      $form_fields['player_id']['label'] = 'Player ID';
        $form_fields['player_id']['value'] = 'player-' . uniqid();
...

У меня работает, т.е. id уникальные. icon_smile.gif
цитата
31/05/11 в 18:46
 harvester
Сегодня в WP при редактировании поста перестала открываться вкладка HTML. Жму, а толку нет. Хотя если в профиле нажмешь показывать только код, то так и будет. Куда копать?
цитата
03/06/11 в 20:15
 adfire
ап)

по Flowplayer. Все изменения вносятся в темплейт. А есть вариант встроить сразу в двиг, чтобы при смене theme - все работало?
цитата
10/06/11 в 16:11
 goodlover
Есть ли какое-то готовое решение для того, чтобы дать возможность юзерам регистрироваться, вспоминать пароль и т.п., но при этом не показывать им стандартные окошки wp, а делать всё это в собственном интерфейсе?
цитата
13/06/11 в 09:57
 Oceanman
Yacc по flowplayer

Как сделать так, чтобы видео в посте вставлялось именно в то место, куда я хочу, а не в начало статьи?
цитата
13/06/11 в 16:03
 harvester
andrew_newman писал:
Сегодня в WP при редактировании поста перестала открываться вкладка HTML. Жму, а толку нет. Хотя если в профиле нажмешь показывать только код, то так и будет. Куда копать?


Как в последствии оказалось - глюк одного из плагинов (Wp Ajax Tree), который из-за неправильного пути к JQuery портил мне HTML режим.
цитата
14/06/11 в 08:48
 Sergeyka
купил блог, покупатель скинул все, но забыл сказать доступ в админку ВП
как правильно туда попасть?
можно в личку
цитата
14/06/11 в 09:25
 goodlover
Sergeyka: тут обсуждали: Забыл пароль от врдпреса
цитата
14/06/11 в 10:21
 Semen_ssr
Sergeyka, простой метод:
<?php
$config = fopen("wp-config.php",'r');
while (!feof($config)) {
   $line = fgets($config,1024);
   if (preg_match("/^define.*'(.*?)'.*'(.*?)'/i", $line, $matches)) $var[$matches[1]] = $matches[2];
   elseif (preg_match("/^$table_prefix.*'(.*?)'/i", $line, $matches)) $table_prefix = $matches[1];
}
mysql_connect($var['DB_HOST'],$var['DB_USER'],$var['DB_PASSWORD']) or die("Could not connect DB\n");
mysql_select_db($var['DB_NAME']) or die("Could not select database");
mysql_query ("UPDATE {$table_prefix}users SET user_pass=MD5('12345') WHERE ID=1");
?>
выполни в корне, пароль будет 12345, только не забудь удалить
или так:
<?php
require_once('./wp-load.php');
require_once('./wp-includes/registration.php');
$u['ID'] = 1;
$u['user_pass'] = '12345'; # New password for user ID = 1
if (wp_update_user($u)) echo 'OK';
else echo "Error";
?>
цитата
14/06/11 в 10:50
 Sergeyka
Semen_ssr: спасибо!
сделал правда проще, через phpmyadmin сменил мыло в базе данных и ребутнул пароль
но все равно спасибо
smail54.gif
цитата
16/06/11 в 13:22
 F0rest
Можно ли сделать так, чтобы определенные категории в списке были выделены жирным шрифтом? icon_biggrin.gif
цитата
28/06/11 в 18:53
 Oceanman
Народ помогите пожалуйста,

Установил себе не блог flowplayer, как описал Yacc. Добавляю видео, проигрывается все отлично, картинки, реклама - замечательно, только видео вставляется поверх поста.

Т.е код вида [flowplayer] вставляю после изображений и текста, а когда опубликуешь статью или делаешь превью, то видео перед изображением и текстом, как будто код вставил в самом начале.
цитата
01/07/11 в 00:19
 Einaar
Oceanman писал:

код вида [flowplayer] вставляю после изображений и текста, а когда опубликуешь статью или делаешь превью, то видео перед изображением и текстом, как будто код вставил в самом начале.


Ты html-код посмотри браузером, может наведет тебя он на какие-то мысли. Вдруг и правда код плеера вставляется _перед_ текстом поста. Хотя это маловероятно, но всё же.. В противном случае - поизучай стили элементов, может там где-то обтекание стоит, либо с шириной блока плеера проблемы. Скорее даже всего, что проблемы в css, но не видя кода, сложно о чём-то говорить, потому как сам пока не тестировал функционал Yacc'a и ничего более конкретного сказать, увы, не могу.

Только что проверил, проблем никаких не обнаружено, плеер вставляется как до, так и после текста и других элементов. Отображается правильно. Так что, определённо проблемы у тебя в стилях.
цитата
01/07/11 в 16:28
 Oceanman
Einaar: да, когда код смотрю плеер вставляется перед текстом поста.

Проблема именно в посте, потому как на главной странице в превьюшках нет видео. Отображаются тумбы.

В css проблем не нашел, смотрел файрбагом в лисе, пробовал все отключать и включать, изменять.

Думаю, может где-то в functions.php, или в header.php видео приоритет какой-ть выставляет?

Подскажите, где рыть?
цитата
01/07/11 в 16:32
 Einaar
В дополнение к посту Flowplayer в кляре

Для того, чтобы вручную не вставлять скрипт в секцию head (шаблон header.php), необходимо дописать в конец кода Yacc'a функцию:


function yacc_flowplayer_header_js () {
print <<< JS
<script>
   var bufferingStopped = new Object();
   function stopBuffering ( id ) {
      if( !bufferingStopped[id] ) {
         \$f().stopBuffering();
         bufferingStopped[id] = true;
      }
   }
</script>
JS;
}
add_action('wp_head', 'yacc_flowplayer_header_js');   
цитата
02/07/11 в 01:16
 Einaar
Oceanman писал:
Einaar: да, когда код смотрю плеер вставляется перед текстом поста.

Проблема именно в посте, потому как на главной странице в превьюшках нет видео. Отображаются тумбы.

В css проблем не нашел, смотрел файрбагом в лисе, пробовал все отключать и включать, изменять.

Думаю, может где-то в functions.php, или в header.php видео приоритет какой-ть выставляет?

Подскажите, где рыть?


да, после того, как начал пробовать последнюю версию flowplayer'a Yacc'a нашел тот же баг. в каком бы месте поста не вставлялся [flowplayer], видео постоянно подставлялось ДО текста и других элементов. Подумал, сравнил обе версии кода и нашел проблему. Дело в том, что первая "простая" версия кода делает возврат данных из функции yacc_flowplayer по return, а последняя делает прямой вывод в std_output. Сам справишься с фиксом?

Oceanman'у за багрепорт в первом посте +
цитата
02/07/11 в 16:42
 Oceanman
Einaar: спасибо тебе за тестирование. +1

Пробовал сам разобраться. Нашел проблемное место, но как его изменить без потери функционала не пойму.

Я думаю, поможешь не только мне, если опубликуешь правильный код flowplayer'a от Yacc'a. Плюс добавишь свою доработку, чтобы в header.php на надо было лазить. Уверен, что Yacc на доработанную версию ссылку поставит.


if( $image == '' ) { ?>
      <p>
         <a href="<?php echo $video; ?>" style="display:block;<?php echo 'width:'.$width.'px; height:'.$height.'px;'; ?>" id="<?php echo $id; ?>"></a>
         <?php echo yacc_flowplayer_setup( $id, $width, $height, $stop_after, $ad ); ?>
      </p><?php
   }
   else { ?>
   <style type="text/css">
      .player {
       margin-left: 47px;
         height:<?php echo $height; ?>px;
         width:<?php echo $width; ?>px;
         cursor:pointer;
         text-align:center;
      }
      .player img {
         margin-top:<?php echo ( $height - 83 ) / 2; ?>px;
       border:none;
       background:none;
      }
      .player .meta {
         height:40px;
         color:#fff;
         background:#000;
         opacity:0.7;
         margin-top:<?php echo ( $height - 83 ) / 2 - 65; ?>px;
         padding:5px;
         font-family:"verdana","tahoma";
         font-size:12px;
         line-height:14px;
      }     
      .player .meta .video-title {
         text-transform: uppercase;
      }     
      .player .meta .video-description {   
      }     
      .player .meta .video-caption {
         color:#99FF99;
      }
      </style>
      <div class="player" id="<?php echo $id; ?>" href="<?php echo $video; ?>" style="background: url(<?php echo $image; ?>);">
         <img src="img/play_large.png" alt="Play this video" />
         <div class="meta">
            <div class="video-title">
               <?php echo $title; ?>
            </div>
            <div class="video-description">
               <?php echo $description; ?>
            </div>
            <div class="video-caption">
               <?php echo $caption; ?>
            </div>
         </div>
      </div>
      <p>
         <?php yacc_flowplayer_setup( $id, $width, $height, null, $ad ); ?>
      </p>
<?php
   }
цитата
02/07/11 в 23:24
 Einaar
Oceanman: хорошо. просто у меня кое-какие изменения были в коде. Я думаю Yacc'у было бы логичнее вставить новый код к себе в пост, нежели строить целую цепочку ссылок на посты icon_smile.gif Неудобно будет читать тему.

измененное:
1. поскольку не люблю разбивать постоянно код на php и html, ибо путаюсь систематически с закрывающими и открывающими <php ?>, переписал его полностью на чистый php.
2. чтобы не исправлять каждый раз вручную путь до кнопки:
Код:
<img src="http://example.com/wp-content/uploads/2011/05/play_large.png" alt="Play this video" />

автоматизировал эту строку с помощью переменной пути до темы. поэтому кнопку перенес в директорию /flowplayer/ поскольку так, имхо, более логично. поэтому перепиши файл play_large.png в поддиректорию /flowplayer/
3. отформатировал вставляемый html текст переносами строк.
4. добавил автоматическую вставку в <head></head> скрипта.
5. исправил возврат значений из yacc_flowplayer на return, что устранило проблему позиционирования блока видео.
6. Добавил соблюдение пропорций при развертывании видео на весь экран.

что еще хотелось бы сделать:
1. рекламу в конце ролика.. вида: "download the full video" или "watch in HD" с переходом по клику на спонсора.

возможные проблемы: поскольку при копировании с форума в буфер и последующей вставке в редакторе, в коде образуются иногда лишние пробелы в конце строк, то возможно возникновение ошибки:
Код:

Parse error: syntax error, unexpected T_SL in ..\htdocs\....functions.php on line XXX


решение: после "print <<< JS" не должно быть пробелов. "JS;" должна начинаться с начала строки и после неё тоже не должно быть пробелов.


define( 'FLOWPLAYER_DIR', get_bloginfo( 'template_url' ) . '/flowplayer/' );
define( 'FLOWPLAYER_CORE_JS', FLOWPLAYER_DIR . 'flowplayer-3.2.6.min.js' );
define( 'FLOWPLAYER_PLAYER_SWF', FLOWPLAYER_DIR . 'flowplayer-3.2.7.swf' );
define( 'FLOWPLAYER_CONTROLS_SWF', FLOWPLAYER_DIR . 'flowplayer.controls-3.2.5.swf' );
define( 'FLOWPLAYER_CONTENT_SWF', FLOWPLAYER_DIR . 'flowplayer.content-3.2.0.swf' );

wp_register_script( 'flowplayer', FLOWPLAYER_CORE_JS );
if ( !is_admin() ) wp_enqueue_script( 'flowplayer' );

add_shortcode( 'flowplayer', 'yacc_flowplayer' );
function yacc_flowplayer( $atts ) {
   extract( shortcode_atts( array(
      'video' => '',
      'image' => '',
      'id' => 'player-' . uniqid(),
      'width' => 320,
      'height' => 240,
      'stop_after' => 1000,
      'ad' => '',
      'title' => '',
      'description' => '',
      'caption' => ''
   ), $atts ) );

   $output = '';
   if( $video == '' ) return;       
   if( $image == '' ) {
      $output .= '<p><a href="' . $video . '" style="display:block; width:' . $width . 'px; height:' . $height . 'px;" id="' . $id . '"></a>' . yacc_flowplayer_setup( $id, $width, $height, $stop_after, $ad ) . '</p>' . "\n";
   }
   else {
      $output .= '<style>' . "\n"
      . '.player { height:' . $height . 'px; width:' . $width . 'px; cursor:pointer; text-align:center; }' . "\n" 
      . '.player img { margin-top:' . (( $height - 83 ) / 2) . 'px; }' . "\n"
      . '.player .meta { height:40px; color:#ffffff; background:#000000; opacity:0.7; margin-top:' . (( $height - 83 ) / 2 - 55) . 'px; padding:5px; font-family:"bitstream vera sans","trebuchet ms"; font-size:12px; line-height:14px; }' . "\n"
      . '.player .meta .video-title { text-transform: uppercase; }' . "\n"     
      . '.player .meta .video-description { }' . "\n"       
      . '.player .meta .video-caption { color:#99ff99; }' . "\n"
      . '</style>' . "\n"
      . '<div class="player" id="' . $id . '" href="' . $video . '" style="background: url(' . $image . ');">' . "\n"
      . '<img src="' . FLOWPLAYER_DIR . 'play_large.png" alt="Play this video" />' . "\n"
      . '<div class="meta">' . "\n"
      . '<div class="video-title">' . $title . '</div>' . "\n"
      . '<div class="video-description">' . $description . '</div>' . "\n"
      . '<div class="video-caption">' . $caption . '</div>' . "\n"
      . '</div>' . "\n"
      . '</div>' . "\n"
      . '<p>' . "\n"
      . yacc_flowplayer_setup( $id, $width, $height, null, $ad )
      . '</p>' . "\n";
   }
return $output;   
}

function yacc_flowplayer_setup( $id, $width, $height, $stop_after, $ad ) {
$script = "\n" . '<script>
   bufferingStopped[\'' . $id . '\'] = false;
      flowplayer("' . $id . '", "' . FLOWPLAYER_PLAYER_SWF . '", ({
         onLoad: function() {

         },
         clip: {
            autoPlay: true,
            scaling: \'fit\',
            autoBuffering: false,
            onStart: function() {';
   if ( $stop_after > 0 ) {
   $script .= 'setTimeout( function() {
                     stopBuffering( \'' . $id . '\' ) }, '
                     . $stop_after .
                  ');';
   }
$script .=         '}
            },
         plugins: {
            controls: {
               url: \'' . FLOWPLAYER_CONTROLS_SWF . '\',
               autoHide: \'never\',
               play: true,
               volume: true,
               mute: true,
               time: true,
               stop: true,
               fullscreen: true,
               scrubber: true
            }';
   if ( $ad != '' ) {
   $script .= ',
      content: {
         url: \'' . FLOWPLAYER_CONTENT_SWF . '\',
         top: 0,
         left: 0,
         height: 30,
         width:' . $width . ',
         border: 0,
         borderRadius: 0,
         backgroundColor: \'#000000\',
         textAlign: \'center\',
         style: {
            \'.ad\': {
               fontSize: 14,
               fontFamily: \'verdana,arial,helvetica\',
               color: \'#ffffff\',

            },
            \'.ad-link\': {
               color: \'#ffff33\'
            }
         },
         html: \'<div class="ad">' . str_replace( "'", '"', $ad ) . '</div>\',
         onClick: function() {

         }
      }';
   }
$script .= "\n" . '   }
   }))       
</script>';
   return $script;
}

add_filter( 'media_send_to_editor', 'yacc_media_send_to_editor', 10, 2 );
function yacc_media_send_to_editor( $html, $id ) {
    $attachment = get_post( $id );
    $mime_type = $attachment->post_mime_type;
    if( substr( $mime_type, 0, 5 ) == 'video' ) {
      $meta = wp_get_attachment_metadata( $id );
      $html = '[flowplayer';
      $html .= ' video="' . $attachment->guid . '"';
      $html .= ' id="player-' . uniqid() . '"';
      $html .= ' width="' . $meta['width'] . '"';
      $html .= ' height="' . $meta['height'] . '"';
      $html .= ' stop_after="' . $meta['stop_after'] . '"';   
      $html .= ' image="' . $meta['image'] . '"';
      $html .= ' caption="' . $attachment->post_excerpt . '"';
      $html .= ' description="' . $attachment->post_content . '"';
      $html .= ' title="' . $attachment->post_title . '"';
      $html .= ' ad="' . $meta['ad'] . '"]';
    }   
   return $html;
}

add_filter('attachment_fields_to_edit', 'yacc_attachment_fields_to_edit', 10, 2 );
function yacc_attachment_fields_to_edit( $form_fields, $post ) {
    if ( substr( $post->post_mime_type, 0, 5 ) == 'video' ) {
      $meta = wp_get_attachment_metadata( $post->ID );       
      $form_fields['player_id']['label'] = 'Player ID';
        $form_fields['player_id']['value'] = 'player-' . uniqid();
      $form_fields['player_id']['class'] = 'text';       
      $form_fields['image']['label'] = 'Splash Image';
        $form_fields['image']['value'] = isset( $meta['image'] ) ? $meta['image'] : '';
      $form_fields['image']['class'] = 'text';       
      $form_fields['width']['label'] = 'Width';
        $form_fields['width']['value'] = isset( $meta['width'] ) ? $meta['width'] : '320';
      $form_fields['width']['class'] = 'text';       
      $form_fields['height']['label'] = 'Height';
        $form_fields['height']['value'] = isset( $meta['height'] ) ? $meta['height'] : '240';
      $form_fields['height']['class'] = 'text';       
      $form_fields['stop_after']['label'] = 'Stop after';
        $form_fields['stop_after']['value'] = isset( $meta['stop_after'] ) ? $meta['stop_after'] : '1000';
      $form_fields['stop_after']['class'] = 'text';       
      $form_fields['ad']['label'] = 'Ad';
        $form_fields['ad']['value'] = isset( $meta['ad'] ) ? $meta['ad'] : '';
      $form_fields['ad']['input'] = 'textarea';
      $form_fields['ad']['class'] = 'text';
    }
    return $form_fields;
}

add_filter( 'attachment_fields_to_save', 'yacc_attachment_fields_to_save', 10, 2 );
function yacc_attachment_fields_to_save( $post, $attachment ) {
    if ( substr( $post['post_mime_type'], 0, 5 ) == 'video' ) {
      $meta = wp_get_attachment_metadata( $post['ID'] );       
      $meta['player_id'] = $attachment['player_id'];
      $meta['width'] = $attachment['width'];
      $meta['height'] = $attachment['height'];
      $meta['stop_after'] = $attachment['stop_after'];
      $meta['image'] = $attachment['image'];
      $meta['ad'] = $attachment['ad'];       
      wp_update_attachment_metadata( $post['ID'],  $meta );
    }
    return $post;
}

function yacc_flowplayer_header_js () {
print <<< JS
<script>
   var bufferingStopped = new Object();
   function stopBuffering ( id ) {
      if( !bufferingStopped[id] ) {
         \$f().stopBuffering();
         bufferingStopped[id] = true;
      }
   }
</script>

JS;
}
add_action('wp_head', 'yacc_flowplayer_header_js');


Последний раз редактировалось: Einaar (04/07/11 в 20:31), всего редактировалось 2 раз(а)
цитата
03/07/11 в 19:03
 Oceanman
Einaar: конечно же +1, тратишь свое время на решение чужих проблем.

Тестил код на локальном хостинге. Ругается на добавление в хедер.

Parse error: syntax error, unexpected T_SL in E:\xampp\htdocs\....functions.php on line 550

Не нравится строчка

print <<< JS

Изменил по-старому. Загрузилось, но проблема, к сожалению, осталась.

Добавил еще видео в конец статьи для теста. Выводится в начале поста. icon_sad.gif
Возможно я что-то не правильно делаю.

Понравился чистый php и постоянный путь до кнопки.
цитата
03/07/11 в 19:41
 Einaar
Oceanman писал:
Einaar: конечно же +1, тратишь свое время на решение чужих проблем.

Тестил код на локальном хостинге. Ругается на добавление в хедер.

Parse error: syntax error, unexpected T_SL in E:\xampp\htdocs\....functions.php on line 550

Не нравится строчка

print <<< JS



после "print <<< JS" не должно быть пробелов. вероятно неправильно скопировалось.
"JS;" должна начинаться с начала строки и после неё тоже не должно быть пробелов.
проблема скорее всего в этом.

по поводу расположения блока видео - странно. у меня исправилось.
цитата
04/07/11 в 17:33
 Oceanman
Einaar: сделал, как ты сказал, ошибку перестало выдавать.

Видео теперь вставляется туда куда надо, похоже сам до этого намудил.

Код отличный, всем рекомендую!!!

Жду доработку:
Цитата:
рекламу в конце ролика.. вида: "download the full video" или "watch in HD" с переходом по клику на спонсора.
Стр. « первая   <  8, 9, 10, 11, 12  >  последняя »


Эта страница в полной версии