[WIP] #8374: Limit post content by rendered height instead of number of characters #968
|
@ -1,8 +1,3 @@
|
||||||
.limit-height {
|
|
||||||
max-height: 250px;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.wall-item-body-toggle {
|
.wall-item-body-toggle {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
|
|
@ -1,4 +1,8 @@
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
|
$("head").append('<style type="text/css"></style>');
|
||||||
|
var newStyleElement = $("head").children(':last');
|
||||||
|
newStyleElement.html('.limit-height{max-height: ' + postLimitHeight + 'px; overflow: hidden;}');
|
||||||
|
|
||||||
handleNewWallItemBodies();
|
handleNewWallItemBodies();
|
||||||
|
|
||||||
document.addEventListener("postprocess_liveupdate", function() {
|
document.addEventListener("postprocess_liveupdate", function() {
|
||||||
|
@ -60,7 +64,7 @@ function processHeightLimit($item) {
|
||||||
|
|
||||||
var itemId = $item.data("item-id");
|
var itemId = $item.data("item-id");
|
||||||
var $toggle = $("#wall-item-body-toggle-" + itemId);
|
var $toggle = $("#wall-item-body-toggle-" + itemId);
|
||||||
if ($item.height() < 250) {
|
if ($item.height() < postLimitHeight) {
|
||||||
$item.removeClass("limit-height");
|
$item.removeClass("limit-height");
|
||||||
$toggle.hide();
|
$toggle.hide();
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -9,17 +9,27 @@
|
||||||
|
|
||||||
use Friendica\App;
|
use Friendica\App;
|
||||||
use Friendica\Core\Hook;
|
use Friendica\Core\Hook;
|
||||||
|
use Friendica\Core\L10n;
|
||||||
|
use Friendica\Core\Logger;
|
||||||
|
use Friendica\Core\Renderer;
|
||||||
|
use Friendica\Database\DBA;
|
||||||
use Friendica\DI;
|
use Friendica\DI;
|
||||||
|
|
||||||
function showmore_dyn_install() {
|
function showmore_dyn_install() {
|
||||||
|
Hook::register('page_end', 'addon/showmore_dyn.php/showmore_dyn.php', 'showmore_dyn_script');
|
||||||
Hook::register('head' , __FILE__, 'showmore_dyn_head');
|
Hook::register('head' , __FILE__, 'showmore_dyn_head');
|
||||||
Hook::register('footer', __FILE__, 'showmore_dyn_footer');
|
Hook::register('footer', __FILE__, 'showmore_dyn_footer');
|
||||||
|
Hook::register('addon_settings', 'addon/showmore_dyn/showmore_dyn.php', 'showmore_dyn_settings');
|
||||||
|
Hook::register('addon_settings_post', 'addon/showmore_dyn/showmore_dyn.php', 'showmore_dyn_settings_post');
|
||||||
}
|
}
|
||||||
|
|
||||||
function showmore_dyn_uninstall()
|
function showmore_dyn_uninstall()
|
||||||
{
|
{
|
||||||
|
Hook::unregister('page_end', 'addon/jappixmini/jappixmini.php', 'jappixmini_script');
|
||||||
Hook::unregister('head' , __FILE__, 'showmore_dyn_head');
|
Hook::unregister('head' , __FILE__, 'showmore_dyn_head');
|
||||||
Hook::unregister('footer', __FILE__, 'showmore_dyn_footer');
|
Hook::unregister('footer', __FILE__, 'showmore_dyn_footer');
|
||||||
|
Hook::unregister('addon_settings', 'addon/showmore_dyn/showmore_dyn.php', 'showmore_dyn_settings');
|
||||||
|
Hook::unregister('addon_settings_post', 'addon/showmore_dyn/showmore_dyn.php', 'showmore_dyn_settings_post');
|
||||||
}
|
}
|
||||||
|
|
||||||
function showmore_dyn_head(App $a, &$b)
|
function showmore_dyn_head(App $a, &$b)
|
||||||
|
@ -32,3 +42,43 @@ function showmore_dyn_footer(App $a, &$b)
|
||||||
DI::page()->registerFooterScript(__DIR__ . '/showmore_dyn.js');
|
DI::page()->registerFooterScript(__DIR__ . '/showmore_dyn.js');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function showmore_dyn_settings_post(){
|
||||||
|
if(! local_user())
|
||||||
|
return;
|
||||||
|
if (isset($_POST['showmore_dyn-submit'])){
|
||||||
|
$limitHeight = $_POST['showmore_dyn_height'];
|
||||||
|
DI::pConfig()->set(local_user(), 'showmore_dyn', 'limitHeight', $limitHeight);
|
||||||
|
|
||||||
|
/*
|
||||||
|
$str=file_get_contents('addon/showmore_dyn/showmore_dyn.css');
|
||||||
|
$str=preg_replace("/(max-height: )\d+(px;)/i", "max-height: " . $limitHeight . "px;" ,$str);
|
||||||
|
file_put_contents('addon/showmore_dyn/showmore_dyn.css', $str);
|
||||||
|
|
||||||
|
$str=file_get_contents('addon/showmore_dyn/showmore_dyn.js');
|
||||||
|
$str=preg_replace('/if \(\$item.height\(\) \< \d+\) \{/i', 'if ($item.height() < ' . $limitHeight . ') {' ,$str);
|
||||||
|
file_put_contents('addon/showmore_dyn/showmore_dyn2.js', $str);*/
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function showmore_dyn_settings(&$a,&$o) {
|
||||||
|
if(! local_user())
|
||||||
|
return;
|
||||||
|
|
||||||
|
|
||||||
|
$limitHeight = DI::pConfig()->get(local_user(), 'showmore_dyn', 'limitHeight' );
|
||||||
|
if ($limitHeight=='') { $limitHeight = 250; DI::pConfig()->set(local_user(), 'showmore_dyn', 'limitHeight', $limitHeight); }
|
||||||
|
|
||||||
|
$t = Renderer::getMarkupTemplate("settings.tpl", "addon/showmore_dyn/");
|
||||||
|
$o .= Renderer::replaceMacros($t, [
|
||||||
|
'$submit' => DI::l10n()->t('Save Settings'),
|
||||||
|
'$title' => "Showmore Dynamic",
|
||||||
|
'$label' => DI::l10n()->t('Limit Height'),
|
||||||
|
'$limitHeight' => $limitHeight,
|
||||||
|
]);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function showmore_dyn_script() {
|
||||||
|
$limitHeight = DI::pConfig()->get(local_user(), 'showmore_dyn', 'limitHeight' );
|
||||||
|
DI::page()['htmlhead'] .= '<script>var postLimitHeight = ' . intval($limitHeight) . ';</script>';
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue