Intellect Board Pro
Расширяемый движок форума с разделами разных типов
Объявление
Вышла версия 3.05 с фотогалереей и поддержкой PostgreSQL и SQLite.
Перейти к скачиванию
Привет, гость!

Плавающие блоки (+ 'рыночные' отношения)

придают веб-страницам особую функциональность…

Настройки отображения темы Показывать по сообщений с сортировкой .
Выводить , отправленные .
Правила раздела
Страницы:
  • 1
  • 2
Распечатать
_1_
Сомнительный тип
Всего сообщений: 346
Зарегистрирован: 14 окт. 2014 г., 09:11
Рейтинг пользователя: 17
Штрафных баллов: 1

0
. Редактировалось 6 раз, последний — #1
Уж больше года жду появления нижеследующих возможностей. Чтоб они появились, попробую поторговаться. ))


У меня есть материалы о плавающих блоках. Их можно применить к форумам.
Это эксклюзив! Ещё нигде такого не встречал. Здесь «продам» его за какие-либо существенные шаги в сторону воплощения альтернативных планов: (; хотя бы – п.13)

Но главное – это платёжно-оценочный сервис... Таких возможностей здесь пока нет. Вообще, платёжные и оценочные функции в этом движке практически отсутствуют Поэтому – предлагаю бартер ...

-


У плавающих блоков применение очень широкое..!
Странно, что пока до них всерьёз ещё не дошло внимание разработчиков и пользователей

В частности, планирую применять их для оглавлений и для виртуальных тем.

_1_
Сомнительный тип
Всего сообщений: 346
Зарегистрирован: 14 окт. 2014 г., 09:11
Рейтинг пользователя: 17
Штрафных баллов: 1

0
. Редактировалось 4 раза, последний — #2
<  от nikola2278:
А можно сделать так: когда я нажимаю на кнопку [цитировать], в мое сообщение добавляется ID_поста из базы. Потом, когда я нажимаю над цитатой на стрелочку-ссылку, меня перекидывает на новую вкладку где одно это цитируемое сообщение появится полностью. А рядом с ним будет форма ответа.


Я бы в этом случае вместо "новой вкладки" попросил плавающий блок. Он похож на всплывающее окно, но на объектном уровне принадлежит этой же вкладке. Удобство в том, что его можно таскать по странице, и открывать рядом с цитируемым сообщением. Кроме того, разными методами (...) можно частично копировать в блок содержимое с цитируемой страницы. При этом, скрипты и стили, которые действуют на странице, будут действовать и внутри плавающего блока.


Блок правающий. А это значит, что он сам 'плывёт' в ту часть страницы, куда вы перемещаетесь. И, для удобства ответов, такое псевдоfixed-позиционирование  можно использовать двумя способами:
      


1)Переместить готовый контент блока поближе к  кнопчкам-инструментам (которые сейчас находятся внизу страницы), и там их использовать для оформления уже форматированного ответа.
2) Переместить форму ответов внутрь плавающего блока. Тогда она будет плавать по странице, и появится там, где отвечаете.


nikola2278
Новичок
Нет Всего сообщений: 7
Зарегистрирован: 2 янв. 2016 г., 23:59
Рейтинг пользователя: 2

0
#3
_1_ написал(а):
[tree]<JSON- или HTML-формат>[/tree] 
как вариант

В /lib/bbcode.php добавь self::$ext_search[]='|\[object=([^\]"\']+)\](.*?)\[/object\]|s'; self::$ext_replace[]='<object type="text/html" width=100% height="$1" data="$2"></object>'; потом в сообщении если [object=100]http://site.ru/vstavkahtml/stranika.htm[/object] по адресу естественно должна быть страница в сообщении изменится на <object type="text/html" width=100% height="100" data="http://site.ru/vstavkahtml/stranika.htm"></object> проще говоря мы вставим страницу в сообщение, ну а в сообщении уже что душе угодно.


nikola2278
Новичок
Нет Всего сообщений: 7
Зарегистрирован: 2 янв. 2016 г., 23:59
Рейтинг пользователя: 2

0
#4
_1_ написал(а):
[tree]<JSON- или HTML-формат>[/tree]  - для вставки динамических деревьев непосредственно в посты.


как вариант.
в CSS

ul { padding-left: 20px; }

потом в /lib/bbcode.php

self::$search[]='|\[ul\](.*?)\[/ul\]|s'; self::$replace[]='<ul>$1</ul>'; self::$search[]='|\[li\](.*?)\[/li\]|s'; self::$replace[]='<li>$1</li>';

можно в тот блок там где u i и так далее теги типа так

self::$search[]='|\[b\](.*?)\[/b\]|s'; self::$replace[]='<b>$1</b>'; self::$search[]='|\[i\](.*?)\[/i\]|s'; self::$replace[]='<i>$1</i>'; self::$search[]='|\[u\](.*?)\[/u\]|s'; self::$replace[]='<u>$1</u>'; self::$search[]='|\[s\](.*?)\[/s\]|s'; self::$replace[]='<s>$1</s>'; self::$search[]='|\[sup\](.*?)\[/sup\]|s'; self::$replace[]='<sup>$1</sup>'; self::$search[]='|\[sub\](.*?)\[/sub\]|s'; self::$replace[]='<sub>$1</sub>'; self::$search[]='!\[color=([a-z\-]+|#[0-9a-f]{3,6})\](.*?)\[/color\]!s'; self::$replace[]='<span style="color: $1">$2</span>'; [color=#ff6666] self::$search[]='|\[ul\](.*?)\[/ul\]|s'; self::$replace[]='<ul>$1</ul>'; self::$search[]='|\[li\](.*?)\[/li\]|s'; self::$replace[]='<li>$1</li>';[/color]

потом в сообщении

[ul] tyuuytuyuytuyuyuuytu [li]1111111111[/li] [li]2222222222[/li] [ul] [li]qqqqqq[/li] [li]wwwww[/li] [/ul] [/ul]

выглядеть будет как то так


Прикрепленные файлы:

_1_
Сомнительный тип
Всего сообщений: 346
Зарегистрирован: 14 окт. 2014 г., 09:11
Рейтинг пользователя: 17
Штрафных баллов: 1

0
. Редактировалось 7 раз, последний — #5
 
nikola2278: в постах (#3, #4)  писал о возможностях представления деревьев средствами форумского движка.
Но я пришёл к пониманию, что деревья лучше генерировать на стороне пользователя. И не на странице форума, а в плавающем окне. То есть, интерактивное дерево ссылок должно плавать поверх страницы форума. Все эти задачи решены. Причём, решены разными способами:

1)Самый функциональный способ: представлять дерево во фрейме
    <iframe style="width: 100%; height: 100%;" src="..."></iframe>

(то есть, в виде специально сгенерированной  html-страницы, которая управляет каталогом файлов. Тут возможности безграничны!... Вопрос только в файловом хостинге, где пользователь сможет разместить этот массив файлов. Повторюсь, что вполне логично предоставлять хостинг средствами форума (так как вся информация будет в одном месте).
2)Деревья представлять иерархическим списком: <li><ul> со скриптовой обвязкой. Тут напрашиваются два варианта скриптов:
  • Две простейших функции, которые используются в ScrapBook: (i)
     
    i
        <script><!--
        function toggle(aID) {
            var listElt = document.getElementById(aID);
            listElt.style.display = ( listElt.style.display == "none" ) ? "block" : "none";
        }
        function toggleAll(willOpen) {
            var ulElems = document.getElementsByTagName("UL");
            for ( var i = 1; i < ulElems.length; i++ ) {
                ulElems[i].style.display = willOpen ? "block" : "none";
            }
        }
        //--></script>
     
    <body onload="toggleAll(false);">
     
    <ul id="folder-root">
        <li class="depth1"><a class="folder" href="javascript:toggle('folder-20160103141912');"><img src="./folder.png"></a>
        <ul id="folder-20160103141912"><a href="../data/20160122160110/index.html" target="main" class=""><img src="../data/20160122160110/favicon.ico">Sprosi.Su: личный форум 4X_Pro</a>
            <li class="depth2"><a class="folder" href="javascript:toggle('folder-20160121144355');"><img src="./folder.png">Обновившиеся темы</a>
                <ul id="folder-20160121144355">
                    <li class="depth3"><a href="..." target="main"><img src="...">_1_</a>
                    <li class="depth3"><a href="..." target="main"><img src="...">_2_</a>
                    <li class="depth3"><a href="..." target="main"><img src="...">_3_</a>
                    <li class="depth3"><a href="..." target="main"><img src="...">_4_</a>
                </ul>
          </ul>
    </ul>



  • Очень навороченный функционал DinaTree ().
    Здесь такая технология: а) список вставляется в плавающий блок,  б) контекстной кнопкой этот список из блока копируется в html-шаблон (где уже есть все скрипты), и созданная таким способом html-страница открывается в отдельном плавающем окне.


 
--

В общем, вопрос о древовидных оглавлениях решён до стадии практического пользования. Это решение базируется на следующих гениальных придумках:
 
1.
 Подобно адресной строке броузера, каждый блок имеет универсальную строку ввода. Кроме URL  и  javaScript  туда можно вводить HTML-код.
А к скриптовому способу относится, например, ввод id: если такой DOM-блок есть на текущей странице, то соответствующий innerHTML  появится внутри плавающей contentarea.
 
 
2.
 Оглавления наиболее эффективны вне страниц, которыми они управляют. Это похоже на технологию фреймов: когда из одного фрейма ссылки открываются в другом.
Плавающие блоки позволяют открывать своё содержимое в отдельном окне (и из этого плавающего окна управлять другими вкладками броузера). Чтобы вытащить контент в отдельное окно, сначала нужно надёргать чего-нибудь в плавающий блок, а потом нажать контекстную кнопку.



==
         



Итак, насчёт любых оглавлений вопрос решился.
Теперь, для полноценного форумского плагина осталось выполнить важнейшую работу: создать платёжно-оценочный интерфейс. Ну и + создать всякую мелочь, типа персонального хостинга форумских файлов ().


_1_
Сомнительный тип
Всего сообщений: 346
Зарегистрирован: 14 окт. 2014 г., 09:11
Рейтинг пользователя: 17
Штрафных баллов: 1

0
. Редактировалось 1 раз, последний — #6

   
   html-страница   – в роли БД   %-)



 
В этом режиме схема применения плавающих
блоков продолжает концепцию комплексного
использования TreeView совместно с фреймами:   
  
 
 
Отличия и усовершенствования:
 
1.  В плавающем блоке можно открывать не только ссылки, но и  DOM id  с текущей страницы. Это позволяет выбирать конкретные посты из множества загруженных сообщений. Если блок полностью развёрнут, то сама страница не видна. Она выступает в роли базы данных: innerHTML поступает из неё  в любой из блоков (которые в ней плавают). А из блока уже можно поднять контент поверх страницы (в плавающее окно).

2.  Но блоки не связаны с этой базой однозначно. Контент в них можно грузить и вручную (разными способами…). Например, через универсальную строку в блок можно ввести innerHTML сразу нескольких постов, которые, на самом деле, находятся в разных темах (лишь бы css более-менее совпадали).
 
В связи с этими возможностями надо бы разрешить пакетную загрузку списка сообщений. Например, такой список можно сформировать из всех узлов TreeView. То есть, потребуется формировать html-страницы из сообщений, идентификаторы которых последовательно расположены в списке-запросе (пусть даже эти посты не из одной темы).
Чтобы не спутать такие страницы с обычными страницами форумов, достаточно изменить цвет их фона.
 
Понятно же, что, в нижнем пределе, этот список может состоять из единственного id. => Опять вернулись к старому разговору о возможности получить от сервера страницу, состоящую из одного поста:  ().

   Система адресации постов и вложений
   # сам не раз ругался, сталкиваясь с подобным
 
Спец.интерфейс тут ни при чём. Он весьма перспективен. Ругаться надо на тех, кто неправильно его применяет. Например, Вы же не станете наказывать разработчика СУРБД за то, что кто-то из пользователей выложил базу без интерфейса? 'Голые таблицы' неудобны для просмотра; из них ничего невозможно понять. Но разработчик СУРБД тут не виноват. Виноват безграмотный пользователь.

_1_
Сомнительный тип
Всего сообщений: 346
Зарегистрирован: 14 окт. 2014 г., 09:11
Рейтинг пользователя: 17
Штрафных баллов: 1

0
#7

Предыдущий пост можно было бы озаглавить иначе:
        Плавающие блоки – как способ выделения контента

До сих пор имелось в виду, что 
выделить фрагмент – значит: сфокусироваться на нём,  + маркировать инверсией или цветом.


    Но плавющие блоки дают альтернативный способ.
    Выделить блоком – значит: переместить или скопировать соответствующие фрагменты в этот блок.
Одна из особенностей:
    при таком "выделении" возможен 'адаптивный дизайн'. Например, менять размеры или масшатб блока без изменения масштаба текущей страницы (и без перегруппировки её содержимого).


_1_
Сомнительный тип
Всего сообщений: 346
Зарегистрирован: 14 окт. 2014 г., 09:11
Рейтинг пользователя: 17
Штрафных баллов: 1

0
#8


 
Пример кода интерактивного меню, которое  можно в txt-режиме добавить к любой html-странице:
Код интерактивного Оглавления<div style="width: 250px; display: block; opacity: 1; visibility: visible; left: 15px; top: 147px; z-index: 105;" class="jaw_skin_windowsxp_blue" id="window1"><table width="100%" height="100%" style="position:relative;"><tbody><tr><td class="border00"><div></div></td><td width="100%" class="border10"><div class="jaw_handle"><div class="jaw_header">iframe</div><div class="jaw_skin_windowsxp_blue_controls"><table><tbody><tr><td><div style="display: block;" class="jaw_minimize" title="Minimize"></div></td><td><div style="display: block;" class="jaw_close" title="close"></div></td></tr></tbody></table></div></div></td><td class="border20"><div></div></td></tr><tr><td class="border01"></td><td height="100%"><div style="height: 150px; width: 240px; overflow: hidden; display: block;" class="jaw_contentarea">&nbsp;<iframe src="http://test1.ru/html%20TreeView/html/TreeView%20%20_2016_12_18__23_28_49.html" style="border: 0px none; margin: 0px; padding: 0px; width: 100%; height: 100%; visibility: visible;" id="_iframe-window1" name="_iframe-window1"></iframe></div><div style="display: block;" class="jaw_statusarea"><div title="text" class="jaw_menu" onclick="Jw = this.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode; return dm_popup(0, 500, event, Jw.offsetLeft + 5, Jw.offsetTop + Jw.offsetHeight - 60);" oncontextmenu="return dm_popup(1, 2000, event);" style="cursor: pointer;"></div><input><div class="jaw_resizearea">&nbsp;</div></div></td><td class="border21"></td></tr><tr><td class="border02"></td><td class="border12"></td><td class="border22"></td></tr></tbody></table></div>

И даже не важно: локальная она или загружена из Интернета.
 
Как видите, иерархически-сворачиваемые оглавления можно передавать, публикуя их html-код.
 
Другой очень важный момент:
Интерактивное оглавление может быть либо плавающим, либо – внешним. Внешнее не принадлежит вкладке, но управляет активной. Причём, эти типы оглавлений можно взаимно преобразовать… Например, плавающее сделать внешним.
 
Два основных преимущества внешних оглавлений:
   1)Они не исчезают при обновлении целевой вкладки;
 2)Каждое такое оглавление может управлять несколькими вкладками. Чтобы назначить вкладку оглавлению, надо лишь перейти в неё (то есть, сделать её активной).


ПнБ
Начинающий
Всего сообщений: 150
Зарегистрирован: 5 мая 2015 г., 11:37
Рейтинг пользователя: 0

0
#9
_1_ написал(а):
Как видите, иерархически-сворачиваемые оглавления можно передавать, публикуя их html-код.

Снежок, ты в курсе, что процентов 90 юзверей в инете понятия не имеют, что такое html? Я смотрю в яндекс-метрике, что большая половина на моём сайте вообще между тремя кнопками теряются ))

Всё, что мне известно о PHP-меня научил 4X_Pro
Опрос пользователей о деятельности _1_ http://intbpro.ru/flood/119/

_1_
Сомнительный тип
Всего сообщений: 346
Зарегистрирован: 14 окт. 2014 г., 09:11
Рейтинг пользователя: 17
Штрафных баллов: 1

0
. Редактировалось 1 раз, последний — #10
ПнБ написал(а):
Снежок, ты в курсе, что ...


Ну, так и Оруэлла не каждый читал. А ты цитируешь. Мы друг друга поняли, и это главное!)

-

На форумах и в соцсетях востребовано общение в группах. Группы можно создавать техническими средствами. А можно и проще: апеллируя к специальным знаниям. Кто не имеет доступа к ключевой информации, сидит тихонько . Таким же способом можно закрыть доступ даже на чтение...

Чем больше методов модерации знает форумчанин, тем проще организовать конструктивное общение. Было бы о чём и с кем ... )
Чтоб управлять дискуссией, не обязательно иметь специальные полномочия.

Прикрепленные файлы:

Следующие сообщения >>>
Страницы:
  • 1
  • 2
Распечатать

У вас нет прав для отправки сообщений в эту тему.