форум vBSupport.ru > vBulletin > vBulletin 3.8.x > Вопросы по vBulletin 3.8
Register Меню vBsupport Изображения Files Manager О рекламе Today's Posts Search
  • Родная гавань
  • Блок РКН снят
  • Premoderation
  • For English speaking users
  • Каталог Фрилансеров
  • If you want to buy some product or script
  • Администраторам
VBsupport перешел с домена .ORG на родной .RU Ура! Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей

Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
for English speaking users:
You may be surprised with restriction of access to the attachments of the forum. The reason is the recent change in vbsupport.org strategy:

- users with reputation < 10 belong to "simple_users" users' group
- if your reputation > 10 then administrator (kerk, Luvilla) can decide to move you into an "improved" group, but only manually

Main idea is to increase motivation of community members to share their ideas and willingness to support to each other. You may write an article for the subject where you are good enough, you may answer questions, you may share vbulletin.com/org content with vbsupport.org users, receiving "thanks" equal your reputation points. We should not only consume, we should produce something.

- you may:
* increase your reputation (doing something useful for another members of community) and being improved
* purchase temporary access to the improved category:
10 $ for 3 months. - this group can download attachments, reputation/posts do not matter.
20 $ for 3 months. - this group can download attachments, reputation/posts do not matter + adds eliminated + Inbox capacity increased + files manager increased permissions.

Please contact kerk or Luvilla regarding payments.

Important!:
- if your reputation will become less then 0, you will be moved into "simple_users" users' group automatically.*
*for temporary groups (pre-paid for 3 months) reputation/posts do not matter.
Уважаемые пользователи!

На форуме открыт новый раздел "Каталог фрилансеров"

и отдельный раздел для платных заказов "Куплю/Закажу"

Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже:
Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота.
Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
 
 
 
 
Gostemilov
Специалист
Default Как вывести контент текстового вложения?
0

Допустим, в аттач загружен файл TXT и на его скачивание имеют права все группы

Я хочу вывести этот текст (а, может быть даже и HTML, если получится) где-то в зоне аттачей

В известном хаке применительно к MP3 это выглядит так:

PHP Code:
          <if condition="$attachment[attachmentextension] == 'mp3'"
            <!-- 
MP3 -->
             <
embed src="pl.swf" width="300" height="20" allowscriptaccess="always" allowfullscreen="true" 
flashvars="type=mp3&amp;volume=50&amp;width=300&amp;height=20&amp;file=attachment.php?$session[sessionurl]attachmentid=$attachment[attachmentid]&amp;d=$attachment[dateline]&amp;showstop=true&amp;autostart=false" />
            <!-- 
MP3 -->
         </if> 
ОК, пишем по аналогии - ничего не выводит. Хорощо, делаем так

PHP Code:
<div>
<
object data="engine.php?file=attachment.php?$session[sessionurl]attachmentid=$attachment[attachmentid]type="text/plain"
width="800px" style="height: 400px">
</
object>
</
div
и уж в engine.php получаем искомое

Ага, как же!

PHP Code:
$text="http://".$_SERVER['SERVER_NAME'] ."/".$_GET["file"];
echo 
"<br /><b>URL: </b> ".$text;
$data file_get_contents($text);
echo 
"<hr>".$data."<hr>"
не пашет

Ладно, пробуем простой файл

PHP Code:
$filename="robots.txt";
echo 
'<object data="'.$filename.'" type="text/plain"
width="500" style="height: 300px">
<a href="/path_to_text_file/text.txt">No Support?</a>
</object>'

- все работает расчудесно.

Так каким образом можно вытащить искомое? Голова не варит уже в принципе... Заранее спасибо

Gostemilov добавил 02.04.2017 в 18:00
Вероятно, это называется "Через задницу",

PHP Code:
<?PHP
$text
="http://".$_SERVER['SERVER_NAME'] ."/".$_GET["file"];

$filename=$text;

$array file($filename);
$str implode("<br>",$array);

echo 
$str;
?>
Работает, но можно ли сделать как-то лучше?

Last edited by Gostemilov : 04-02-2017 at 07:00 PM. Reason: Добавлено сообщение
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
 
 
kerk
k0t
 
kerk's Avatar
Default
0

вроде такой вопрос уже задавался и ответ был... =)
не помню
и тему найти не могу (может и не выкладывал в паблик)
я писал хак, он установлен на саппорте
просмотр инлайн всех текстовых файлов прикрепленных как вложение к посту
пример можно посмотреть в любой теме, где есть вложения с "текстовыми" типами файлов: txt, js, php, xml, html, htm...
или в этом сообщении (прицепил тестовые файлы)

а идея, показать содержимое вот прямо при загрузке страницы, не совсем хорошая, это дополнительные ресурсы и, как следствие, тормоза при загрузке страницы
Attached Files
File Type: php test.php (670 Bytes, 16 views)
File Type: xml spiders_vbulletin.xml (1.0 KB, 14 views)
File Type: txt fish.txt (1.2 KB, 12 views)
File Type: txt fish-over.100KB.txt (120.6 KB, 0 views)
 
 
Catlord Meow
Специалист
 
Catlord Meow's Avatar
Default
1

Quote:
Originally Posted by kerk View Post
и тему найти не могу (может и не выкладывал в паблик)
http://vbsupport.ru/forum/showthread...679#post510679
 
 
kerk
k0t
 
kerk's Avatar
Default
0

ок
значит не выкладывал =)
 
 
Gostemilov
Специалист
Default
0

В общем, сделал так - файл classs_postbit.ptp

после строки 424

PHP Code:
$attachment['filesize'] = vb_number_format($attachment['filesize'], 1true); 
вставил

PHP Code:
                //Просмотр аттачей
                
if($attachment['attachmentextension']="txt")
                    {
                        
$filename="http://".$_SERVER['SERVER_NAME'] ."/attachment.php?".$session['sessionurl']."attachmentid=".$attachment['attachmentid'];
                        
$txtarray file($filename);
                        
$txtstr implode("<br>",$txtarray);
                    }
                
//Просмотр аттачей 
и в шаблоне postbit_attachment завернул все это в спойлер

PHP Code:
<if condition="$attachment[attachmentextension] == 'txt'"
<
tr><td colspan="2">
    <
div class="spoiler">
        <
h2>Просмотреть вложение $attachment[filename]</h2>
            <
div>
                
$txtstr
                    
<div class="sphide">
                        [
свернуть]
                    </
div>
            </
div>
    </
div>
</
td></tr>
</if> 
Што дало нам

Этараз



Этадва



В тоге для моих целей это то, что надо, осталось только еще fb2 парсить научиться, тоже есть там пара мыслей

Gostemilov добавил 03.04.2017 в 10:59
Quote:
Originally Posted by kerk View Post
а идея, показать содержимое вот прямо при загрузке страницы, не совсем хорошая, это дополнительные ресурсы и, как следствие, тормоза при загрузке страницы
- тут вот в чем дело - допустим, хочу я сделать на базе форума ну, к примеру справочник на , гм, пусть будет 100 000 000 статей (условно) весом гигабайт 50 (условно) текста. Мне что, это все в базу пихать? Да провались она пропадом! Или опять же несколько книжек в FB2 выложить, да так, чтоб не скачивая читать можно было (теперь это реально уже)

Last edited by Gostemilov : 04-03-2017 at 11:59 AM. Reason: Добавлено сообщение
 
 
kerk
k0t
 
kerk's Avatar
Default
0

ну не знаю, на сколько быстрей такое решение
PHP Code:
$txtarray file($filename); 
$txtstr implode("<br>",$txtarray); 
я бы сделал так
PHP Code:
$content file_get_contents(fetch_attachment_path($attachment['userid'], $attachment['attachmentid'])); 
а $content уже выводить как текст в спойлере
или еще лучше, если уж задействован спойлер, то запрашивать содержимое только при клике на спойлере, но в таком случае, это ничем не будет отличаться от скрипта, о котором я упоминал выше =)
 
 
kerk
k0t
 
kerk's Avatar
Default
0

Quote:
Originally Posted by Gostemilov View Post
осталось только еще fb2 парсить научиться
по сути, это обычный текстовый файл, который имеет структуру XML
можно задействовать вобловские инструменты для этого
их достаточно, что бы распарсить документ и выдать содержимое на страницу
 
 
Gostemilov
Специалист
Default
0

Quote:
Originally Posted by kerk View Post
можно задействовать вобловские инструменты для этого
их достаточно, что бы распарсить документ и выдать содержимое на страницу
Опа! Это какие такие вобловские инструменты???!!!


Quote:
Originally Posted by kerk View Post
$content = file_get_contents(fetch_attachment_path($attachment['userid'], $attachment['attachmentid']));
Выводит текст в строку, теряются переводы строк, пробовал...
 
 
kerk
k0t
 
kerk's Avatar
Default
0

гифка большая
если файл более 100-150 КБ, скрипт начинает тормозить, много текста, который нужно распарсить

Quote:
Originally Posted by Gostemilov View Post
Выводит текст в строку, теряются переводы строк
PHP Code:
$string nl2br($string); 
и все переводы строк сохраняются
Quote:
Originally Posted by Gostemilov View Post
какие такие вобловские инструменты?
includes/class_xml.php
PHP Code:
class vB_XML_Parser
{
    
// ......

но я использовал класс DOMDocument
 
 
Gostemilov
Специалист
Default
0

Хорошая гифка. Познавательная. Я б даже сказал - симпатишная. А продукт ейный где? Или оно платное? А если да, то почем оно?

И сразу вопрос вдогон. Допустим, есть каталог, а нем миллион (условно) текстовых файлов. Я быстренько пишу скрипт, который прочесывает этот каталог, формирует тему, создает ее и удаляет нафиг использованный файл, чтоб не мешался. Это есть сейчас и оно работает. Но - текст файла уходит в базу, что меня категорически не устраивает.

Да, я видел, что есть функция создания аттачей.

Вопрос - как подключить ее так, чтобы

1. Читаем файл /var/www/1.txt
2. Средствами PHP формируем из него тему
3. Создаем тему и этот файл присобачиваем к теме в качестве аттача
4. Удаляем файл за ненадобностью
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off




All times are GMT +4. The time now is 05:43 AM.


Powered by vBulletin® Version Random
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.