Кнопка “Разместить в блоге/форуме”

Доброго времени суток.
Помогите, пожалуйста, найти плагин, который позволяет поставить кнопку "Разместить в блоге/форуме" в конце каждой записи, как это сделано на http://www.etoday.ru/

есть плагин от макса, добавляет "фишку под каждый пост":) воспользуйтесь поиском по форуму/сайту

есть плагин от макса, добавляет "фишку под каждый пост":) воспользуйтесь поиском по форуму/сайту

как разместить что-то под постом – это понятно, мне нужна кнопка, по клику на которую будет генерироваться текст для вставки в блог-форум со ссылкой на первоисточник, как это реализовано на etoday

есть такая штука как ява и css. поясню:
onclick="javascript:fishka.style.display=’none’;"
onclick="javascript:fishka.style.display=’block’;"

как приспособить думаю разберешься?

искал на форуме и сайте – ничего про "фишку" не нашел(

мне нужна кнопка, по клику на которую будет генерироваться текст для вставки в блог-форум со ссылкой на первоисточник, как это реализовано на etoday

Да ничего она не генерирует, всё уже лежит на странице, только спрятано до нажатия "кнопки" (<div id="to-blog" style="display:none;">)

[quote=brainsolid]мне нужна кнопка, по клику на которую будет генерироваться текст для вставки в блог-форум со ссылкой на первоисточник, как это реализовано на etoday

Да ничего она не генерирует, всё уже лежит на странице, только спрятано до нажатия "кнопки" (<div id="to-blog" style="display:none;">)[/quote]
ну сам текст, с тагами <blockquote> и ссылкой на первоисточник не ручками же прописывается, я это имел ввиду, когда говорил про генерацию.

<?php
/*
Plugin Name: MaxSite Links for all :-)
Version: 1.0
Plugin URI: http://forum.maxsite.org/
Description: Добавляет фичу под каждый пост :)
Author: Пользователей форума русского WordPress'а
Author URI: http://forum.maxsite.org/viewtopic.php?id=1237
*/

/*******************************************************************************
Инструкция. 

1. Загрузите плагин в каталог плагинов WordPress.
2. Активируйте его в админ-панели.

*******************************************************************************/

$maxsite_addlink_auto = true; // false = ручное размещение, true - автоматом

if ( $maxsite_addlink_auto ) add_action('the_content', 'maxsite_add_link'); 

function maxsite_add_link($content = '') {
    global $post, $maxsite_addlink_auto;
    
    if (!is_single()) return $content;
    
    $post_link = get_permalink($post->ID);
    $post_title = stripslashes($post->post_title);
    
    $out = 'Послать ссылку на этот обзор другу по ICQ или E-Mail:<br /><input size="60" type="text" value="' .
            $post_link .'" />';
    
    $out .= '<br /><br />Разместить у себя на ресурсе или в ЖЖ:<br /><input size="60" type="text" value="&lt;a href=&quot;' . $post_link . '&quot;&gt;'.$post_title.'&lt;/a&gt;" />';
    
    $out .= '<br /><br />На любом форуме в своем сообщении:<br /><input size="60" type="text" value="'.$post_title.'" />';    
    
    
    if ( $maxsite_addlink_auto ) return $content . "\n<div class=\"addlink\">" . $out . "</div>\n";
        else echo $out;
    
}

?>

вот плагин добавления, достаточно его немного дописать, добавив тег <a onclick="javascript:fishka.style.display=’block’; return false;">Разместить в блоге/форуме</a> а сам код вывода ссылок (читай: фишек) заключив в <div id="fishka" style="display:none;">…</div>

А можно и без плагина, рихтануть немного single.php. Небольшая конструкция из вызовов get_permalink(), the_title() и the_excerpt() прекрасно сгенерирует то что надо.

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

спасибо всем большое)
а как добавить аналог кода, который на etoday называется "Ссылка с описанием"?

Посмотреть код на etoday и сделать так же, заменив ссылку, название и описание вызовом функций.

Посмотреть код на etoday и сделать так же, заменив ссылку, название и описание вызовом функций.

эм… если бы я знал, какие это функции, я наверное не спрашивал бы здесь, верно?

Тремя постами выше я перечислил эти функции.

Тремя постами выше я перечислил эти функции.

the_excerpt() вызывает что?

*показывая грозным видом на ссылку* http://codex.wordpress.org/Tag_Templates

В итоге написал простенькое решение.

<a onclick="javascript:fishka.style.display='block'; return false;">Разместить в блоге/форуме</a>
<div id="fishka" style="display:none;">		
Ссылка с описанием:<br><textarea cols="50" rows="5" readonly="readonly" onfocus="this.select();"><blockquote><p><strong>binaries.ru &mdash; <a href="<?php the_permalink() ?>"><?php the_title() ?></a></strong><br/><?php the_excerpt(); ?> </p></blockquote></textarea>
Постоянная ссылка:<input onfocus="this.select();" value="<?php the_permalink() ?>" readonly="true" type="text">
</div>

Но, есть проблема. В обычном html-файле эта конструкция работает: нажав на "Разместить в блоге/форуме", появляются все нужные формы.
В блоге же почему-то (код вставил в single.pgp) нажатие на ссылку не ведет к "раскрытию" – просто ничего не происходит.
Кто может подсказать, в чем проблема?

сот, собственно, немного модифицированный плагин от макса:

$maxsite_addlink_auto = false; // false = ручное размещение, true - автоматом
if ( $maxsite_addlink_auto ) add_action('the_content', 'maxsite_add_link');
function maxsite_add_link($content = '') {
        global $post, $maxsite_addlink_auto;
        if (!is_single()) return $content;
        $post_link = get_permalink($post->ID);
        $post_title = stripslashes($post->post_title);
        $out = '
        <script type="text/javascript">
function show_hide_text(divObj, msg)
{
   with (divObj.parentNode.getElementsByTagName(\'DIV\')[1])
     if (style.display == \'none\')
     {
        style.display = \'block\';
        divObj.innerHTML = msg[1];
     }
     else
     {
        style.display = \'none\';
        divObj.innerHTML = msg[0];
     }
}
</script>
<div>
   <div class="showmorelink" onclick="show_hide_text(this, [\'<a>Показать ссылку на материал &raquo;</a>\',\'<a>Скрыть ссылку на материал &laquo;</a>\'])"><a>Показать ссылку на материал &raquo;</a></div>
  <div style="display: none">';
        $out .= 'Послать ссылку на этот обзор другу по ICQ или E-Mail:<br /><input size="100" type="text" value="' .
                        $post_link .'" class="addmorelink" />';
        $out .= '<br /><br />Разместить у себя на ресурсе или в ЖЖ:<br /><input size="100" type="text" value="&lt;a href=&quot;' . $post_link . '&quot;&gt;'.$post_title.'&lt;/a&gt;" class="addmorelink" />';
        $out .= '<br /><br />На любом форуме в своем сообщении:<br /><input size="100" type="text" value="'.$post_title.'" class="addmorelink" /></div>
</div>';
        if ( $maxsite_addlink_auto ) return $content . "\n<div class=\"addlink\">" . $out . "</div>\n";
                else echo $out;
}

и к нему-же ксс-ка:

.showmorelink {
background:url(images/add.png) no-repeat left center;
padding-left: 10px;
cursor: pointer; display: inline;
}
.showmorelink a {margin: 10px;}

.addmorelink {
color: #090; background-color: #fcfcfc; border-style: solid; border-color: #888; border-width: 1px; padding: 2px; margin: 1px;
}

спасибо большое)

а как же добавить в Ваш плагин функцию и ввод the_excerpt() ? Я не силен в этом… Подскажите, пожалуйста.
Т.е нужно сделать аналог вот этого:

<textarea cols="50" rows="5" readonly="readonly" onfocus="this.select();"><blockquote><p><strong>binaries.ru &mdash; <a href="<?php the_permalink() ?>"><?php the_title() ?></a></strong><br/><?php the_excerpt(); ?> </p></blockquote></textarea>

весь приведенный выше код – в functions.php нежно ложи и в utf-8 сохраняй, при этом не забудь стандартный плагин от макса выключить.

потом, после твоего the_except или the_content пишешь: <?php maxsite_add_link(); ?>

при желании перепиши код, кривой до ужаса, но работает каг часы

весь приведенный выше код - в functions.php нежно ложи и в utf-8 сохраняй, при этом не забудь стандартный плагин от макса выключить.

потом, после твоего the_except или the_content пишешь: <?php maxsite_add_link(); ?>

при желании перепиши код, кривой до ужаса, но работает каг часы

да он отлично работает, только я никак не могу понять, как туда включить the_excerpt() – у Вас в коде его нет)
Чтобы сделать как в etoday "Ссылка с описанием"/
т.е. вот для вывода <?php the_permalink() ?> есть строчка $post_link = get_permalink($post->ID);
а что нужно для <?php the_excerpt(); ?> ?

в page.php, single.php или index.php, те что лежат у тебя в папке с темой (как найти папку с темой? о.. это сложно, но думаю ты справишься), открываешь, смотришь. если нашел там the_content или the_except – ура, считай пол-дела сделано. теперь можешь не спеша, собраться с силами и приведенный мною выше код вызова функции, которая выводит заветные ссылки, аккуратненько положить после. ах да, повторюсь, про то что в functions.php должно лежать не забывайте. ну а мало ли – если что – попросите меня ещё раз 10 повторить – повторю с превеликим, мне это такое удовольствие доставляет

да. без сарказма никаг. и вы будьте людьми

Да нет же, это вы никак не поймете сути проблемы, и еще стараетесь съязвить.
Показываю в картинках.

Вот к чему привел код, который вы любезно предоставили, за что вам огромное спасибо. (там у вас ошибка в коде для форума, вместо $post_link стоит $post_title, но это не важно).
Я же спрашиваю, что нужно добавить в ваш код, чтобы реализовать вот такую форму с текстом

вы уж не серчайте за язвость, мы тоже люди.. попытайтесь заменить строки

[...]  <div style="display: none">';
        $out .= 'Послать[...]

на

[...]  <div style="display: none">';
        $out .= '<textarea cols="10" rows="10"><blockquote><p><strong><a href="'.the_permalink().'" title="'.the_title().'">'.the_title().'</a></strong><br />'.the_excerpt().'</p></blockquote></textarea><br /><br />';
        $out .= 'Послать[...]

ну, вроде как всё верно написал. и ещё, подгоните параметры <input size="100"… под себя, или вынести ширину в класс css.

нет, что-то с the_excerpt не так. Я уже и так, и эдак пробовал – не получается.

неужели никто не подскажет решение проблемы?

прошу прощения за ап темы, но все же.
Может кто-нибудь помочь с рабочим кодом?

В single.php

<h3 id="to-blog-header"><a id="post-to-blog" href="#post-to-blog" onclick="document.getElementById('to-blog').style.display='block'; return(false);">Разместить в блоге/форуме</a></h3>

                  <div id="to-blog" style="display:none;">
                  <p>Ссылка с описанием:<br />

                  <textarea cols="50" rows="6" readonly="readonly" class="border-input" onfocus="this.select();">&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;<?php bloginfo('name'); ?> &mdash; &lt;a href=&quot;<?php the_permalink(); ?>&quot;&gt;<?php the_title(); ?>&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt; <?php the_excerpt(); ?>&lt;/p&gt;&lt;/blockquote&gt;</textarea>
                  <br />
                  </p>
                  <p>Ссылка для блога: <br />
                  <input type="text" class="border-input" onfocus="this.select();" value='&lt;a href=&quot;<?php the_permalink(); ?>&quot;&gt;<?php the_title(); ?>&lt;/a&gt;' readonly="true" />
                  </p>
                  <p>Ссылка для форума: <br />

                  <input type="text" class="border-input" onfocus="this.select();" value='<?php the_title(); ?>' readonly="true" />
                  </p>
                  <p>Постоянная ссылка: <br />
                  <input type="text" class="border-input" onfocus="this.select();" value='<?php the_permalink(); ?>' readonly="true" />
                  </p>
                  </div>

Одна моя знакомая говорила: "Нудный мужчина – это такой мужчина, которому легче дать, чем объяснить, что тебе этого не хочется".

эмм… спасибо все же.

Ю.Б., последний вопрос: пинайте как хотите, но помогите, очень прошу.
Как вставить этот Ваш код в плагин от Макса? Чтобы выводить это рядом с кнопками для закладок и отключать вместе с плагином Макса)

Считайте это домашним заданием. Приду – проверю! 😀

Считайте это домашним заданием. Приду - проверю! :D

дык пробовал

$out .= '<br /><br />Разместить у себя на ресурсе или в ЖЖ:<br /><input size="100" type="text" value="&lt;a href=&quot;' . $post_link .  '&quot;&gt;'.$post_title.'&lt;/a&gt;" class="addmorelink" />';

– работает, а функция ‘.the_excerpt().’ никак не удается.

$out .= '<textarea cols="10" rows="10"><blockquote><p><strong><a href="'.the_permalink().'" title="'.the_title().'">'.the_title().'</a></strong><br />'.the_excerpt().'</p></blockquote></textarea><br /><br />';

– не работает.

Конечно, так не работает. И не будет никогда. the_excerpt(), the_title() и the_permalink() выводят в поток информацию, а не возвращают значение, которое можно поместить в переменную. Зря, что ли, Макс делал $post_link = get_permalink($post->ID), а не вставлял вызов the_permalink() прямо в строку, сохраняемую в $out?

ну это как раз то, что мне посоветовал один из спецов форума) Смертник
Подскажите как уж)

brainsolid, надеюсь, Вы не думаете, что "один из спецов форума" только и занят тем, чтобы отвечать на вопросы и тестировать коды? Он дал идею, направление, а доводить до ума – это уже дела того, кому оно надо.

Как? Попробуйте включить вывод в буфер (группа функций ob_), а если не получится, напишите свой обрезатель-excerpt, если, конечно, внутри WP не найдется готовой функции, которую можно вызвать. А нет – так ставьте код прямо в single.php и заморачивайтесь с плагином.

brainsolid, надеюсь, Вы не думаете, что "один из спецов форума" только и занят тем, чтобы отвечать на вопросы и тестировать коды? Он дал идею, направление, а доводить до ума - это уже дела того, кому оно надо.

Как? Попробуйте включить вывод в буфер (группа функций ob_), а если не получится, напишите свой обрезатель-excerpt, если, конечно, внутри WP не найдется готовой функции, которую можно вызвать. А нет - так ставьте код прямо в single.php и заморачивайтесь с плагином.

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

Вы еще не в белых тапочках? Тогда мы идем к вам! 😀

Вот подсказка:

    $excerpt_length = 55;
    $post_excerpt = strip_tags($post->post_content);
    $words = explode(' ', $post_excerpt, $excerpt_length + 1);
    if (count($words) > $excerpt_length) {
        array_pop($words);
        array_push($words, '[...]');
        $post_excerpt = implode(' ', $words);
    }

Куда вставлять и что дальше делать, думаю, ясно.

Вы еще не в белых тапочках? Тогда мы идем к вам! :D

Вот подсказка:
    $excerpt_length = 55;
    $post_excerpt = strip_tags($post->post_content);
    $words = explode(' ', $post_excerpt, $excerpt_length + 1);
    if (count($words) > $excerpt_length) {
        array_pop($words);
        array_push($words, '[...]');
        $post_excerpt = implode(' ', $words);
    }

Куда вставлять и что дальше делать, думаю, ясно.

честно – нет)
Я не программист, с php дел вообще не имел до WP. Можете мне код в личку хотя бы написать или здесь?

<?php
/*
Plugin Name: MaxSite Links for all :-)
Version: 1.0+
Plugin URI: http://forum.maxsite.org/
Description: Добавляет фичу под каждый пост :)
Author: Пользователей форума русского WordPress'а
Author URI: http://forum.maxsite.org/viewtopic.php?id=1237
*/

/*******************************************************************************
Инструкция.

1. Загрузите плагин в каталог плагинов WordPress.
2. Активируйте его в админ-панели.

*******************************************************************************/

$maxsite_addlink_auto = true; // false = ручное размещение, true - автоматом

if ( $maxsite_addlink_auto ) add_action('the_content', 'maxsite_add_link');

function maxsite_add_link($content = '') {
    global $post, $maxsite_addlink_auto;

    if (!is_single()) return $content;

    $post_link = get_permalink($post->ID);
    $post_title = stripslashes($post->post_title);
    $excerpt_length = 55;
    $post_excerpt = strip_tags($post->post_content);
    $words = explode(' ', $post_excerpt, $excerpt_length + 1);
    if (count($words) > $excerpt_length) {
        array_pop($words);
        array_push($words, '[...]');
        $post_excerpt = implode(' ', $words);
    }

    $out = 'Послать ссылку на этот обзор другу по ICQ или E-Mail:<br /><input size="60" type="text" value="' .
            $post_link .'" />';

    $out .= '<br /><br />Разместить у себя на ресурсе или в ЖЖ:<br /><input size="60" type="text" value="&lt;a href=&quot;' . $post_link . '&quot;&gt;'.$post_title.'&lt;/a&gt;" />';

    $out .= '<br /><br />На любом форуме в своем сообщении:<br /><input size="60" type="text" value="'.$post_title.'" />';

    $out .= '<br /><br />На могильной плите:<br /><textarea cols="50" rows="10"><blockquote><p><strong><a href="'. $post_link .'" title="'.$post_title.'">'. $post_title . '</a></strong><br />'.$post_excerpt.'</p></blockquote></textarea><br /><br />';

    if ( $maxsite_addlink_auto ) return $content . "\n<div class=\"addlink\">" . $out . "</div>\n";
        else echo $out;

}

?>

Огромное человеческое спасибо!

Anonymous
Отправить
Ответ на: