Вы не зашли.
Здесь название категории для изображения не равно названию категории, где находится новость.
Как работает процесс формирования news.embed.images[X]:
1. Берется весь текст и внутри него ищутся все вхождения вида img=
2. Формируется массив из таких ссылок.
Соответственно:
1. Если у вас в {{news.embed.images[X]}} ссылки только /uploads/images/ - это сведетельствует только о том, что вы загружаете только оригиналы изображений, без превью или вставляете в новость только полные изображения. Т.е. превью откуда-нивозьмись сами не появятся, их тоже нужно создавать в "Управление изображениями".
2. Если все же уменьшенная копия создается, но просто в теле новости добавляется только ссылка на полное изображение, то для формирования ссылки на уменьшенную копию можно, например, использовать конструкцию вида:
{{ news.embed.images[0]|replace({ '/uploads/images/news/': '/uploads/images/news/thumb/' }) }}
Где news - название категории, куда загружаются изображения
уже писал, повторяться не буду.
Нужно чтобы было слитно:
{% set text_news = news.short~news.full %}
{% for text in text_news|split('.') %}
{{text}}{% if loop.index and not(loop.last) %}.{% endif %}{% if loop.index == 3 %}Текст 3{% endif %}
{% endfor %}
{% set text_news = news.short~news.full %}
{% for text in text_news|split('.') %}
{{text}}{% if loop.index and not(loop.last) %}.{% endif %} {% if loop.index == 3 %}После 3{% endif %}{% if loop.index == 7 %}После 7{% endif %}
{% endfor %}
По середине текста без учёта точек:
{% set text_news = news.short~news.full %}
{{ text_news|slice(0,text_news|length/2) }}
TextText
{{ text_news|slice(text_news|length/2,text_news|length) }}
После 3 точки:
{% set text_news = news.short~news.full %}
{% for text in text_news|split('.') %}
{{text}}{% if loop.index and not(loop.last) %}.{% endif %} {% if loop.index == 3 %}123{% endif %}
{% endfor %}
Может есть и более правильное решение (скорее всего регистрировать свой фильтр), но влом думать.
Я не знаю, что у тебя где не работает, я проверял на последней SVN из каталога плагина из директории шаблона.
Ты же знаешь twig, дак в чем проблема сделать?
оно должно работать только на страницах просмотра и редактирования профиля.
{% if (userRec.loginza_id) %}
{{ userRec.loginza_id }}
{% else %}
{% endif %}
Или просто:
{{vars.loginza_account}}
Смысл их переписывать? Они если раньше работали, то и сейчас будут работать.
Влом ставить плагины, если дашь доступы то можно попробовать.
Как вариант идея такая:
0. В add.tpl и/или в edit.tpl добавить функцию getTitle() в блок с JS:
function getTitle(){
var form = document.getElementById("postForm");
currentNewsTitle = form.title.value;
setCookie('ng_title_img', unescape(currentNewsTitle));
return true;
}
1. В qt_news.tpl дописать вызов getTitle()
<a onclick="try{document.forms['DATA_tmp_storage'].area.value={area};} catch(err){;} window.open('{php_self}?mod=images&ifield='+{area}+getTitle(), '_Addimage', 'height=600,resizable=yes,scrollbars=yes,width=800');return false;" target="DATA_Addimage" title='{l_tags.image}'><img src="{skins_url}/tags/image.gif" width="16" height="16" alt="{l_tags.image}" /></a>
2. В file_managment.php сделать вывод содержимого куки {news_title}
$news_title = $_COOKIE['ng_title_img']!='' ? $_COOKIE['ng_title_img'] : '';
list($html_thumb, $html_file, $html_preview) = str_replace(
array ('{file_url}', '{thumb_url}', '{file_name}', '{fsize}', '{news_title}', '{image_height}', '{image_width}'),
array ( $fileurl, $thumburl, $row['name'], $fsize, $news_title, $row['height'], $row['width']),
array($lang['insert_thumb'], $lang['insert_file'], $lang['insert_preview']));
3. В images.ini прописать {news_title}:
insert_preview = "[url="{file_url}" target="_blank"][img="{thumb_url}" border="0" align=""]{news_title}[/img][/url]"
Соответственно при таком подходе при открытии менеджера загрузок из новости будет писать текущий введенный заголовок в куку. У этого способа есть недостатки, но кто понял, тот сделает себе на ajax'e.
Сложно сказать в чем проблема, т.к. нету данных и так на растоянии сложно установить.
Возможно, стоит попробовать какие-нибудь инструменты профилирования, чтобы замерить на каких участках возникают большие задержки и уже по ним устанавливать причины.
Т.е. проблема "подвисания" проявляется только при определенных действиях?
Например при просмотре главной страницы, страницы новости, оставлении комментария всё работает быстро, а при добавлении новости возникают проблемы?
Ищи в файлах вхождения &$ и меняй их на $
infinity237, можно и не тестировать, неработает однозначо, надо в индексе исправить назад, но кроме этой фичи еще чтото может неработать?
Я же написал, что никто не тестировал её в таких условиях, поэтому данных нет.
Это нормальное поведение для страниц типа /plugin/dsadas/, которые не существуют.
Просто можно закоментировать строки:
register_plugin_page('voting','','plugin_voting_page',0);
function plugin_voting_page() {
plugin_voting_screen(false);
}
И перезапустить плагин.
Перезалил.
Был изменен формат хранения данных в БД. Раньше там хранился полный путь, теперь хранится только имя файла.
В связи с этим требуется поменять JS код в add.tpl и edit.tpl. Подробнее в readme.
Перезалил. Теперь полоса в 1 пиксель должна пропасть.
Это для определение размеров изображения после обрезания.
В videothumb.class.php в класс добавить:
function img_crop($file_input, $file_output, $crop = 'square', $percent = false) {
list($w_i, $h_i, $type) = getimagesize($file_input);
if (!$w_i || !$h_i) {
// echo 'Невозможно получить длину и ширину изображения';
return false;
}
$types = array('','gif','jpeg','png');
$ext = $types[$type];
if ($ext) {
$func = 'imagecreatefrom'.$ext;
$img = $func($file_input);
} else {
echo 'Некорректный формат файла';
return;
}
if ($crop == 'square') {
$min = $w_i;
if ($w_i > $h_i) $min = $h_i;
$w_o = $h_o = $min;
} else {
list($x_o, $y_o, $w_o, $h_o) = $crop;
if ($percent) {
$w_o *= $w_i / 100;
$h_o *= $h_i / 100;
$x_o *= $w_i / 100;
$y_o *= $h_i / 100;
}
if ($w_o < 0) $w_o += $w_i;
$w_o -= $x_o;
if ($h_o < 0) $h_o += $h_i;
$h_o -= $y_o;
}
$img_o = imagecreatetruecolor($w_o, $h_o);
imagecopy($img_o, $img, 0, 0, $x_o, $y_o, $w_o, $h_o);
if ($type == 2) {
imagejpeg($img_o,$file_output,100);
} else {
$func = 'image'.$ext;
$func($img_o,$file_output);
}
imagedestroy($img);
imagedestroy($img_o);
return true;
}
Перед вызовом:
$this->img_resize($this->config['imagesPath'] . $filename, $this->config['imagesPath'] . $filename, 100, 60);
Добавить:
$this->img_crop($this->config['imagesPath'] . $filename, $this->config['imagesPath'] . $filename, array(0, 45, -45, -45));
Или просто перезалить.
infinity237 пишет:В videothumb.class.php есть строка:
//$this->img_resize($this->config['imagesPath'] . $filename, $this->config['imagesPath'] . $filename, 100, 60);
Если её раскоментировать, то будет ресайзить, последние 2 параметра - указывают размеры.
спасибо )
А можете подключить обрезку? Скрин с ютуба имеет сверху и снизу чёрную зону, можно ли обрезать эти зоны, а потом уже ресайзить?
Сколько пикселей обрезать?
В videothumb.class.php есть строка:
//$this->img_resize($this->config['imagesPath'] . $filename, $this->config['imagesPath'] . $filename, 100, 60);
Если её раскоментировать, то будет ресайзить, последние 2 параметра - указывают размеры.
Никто тестировать специально не будет. Если тебе нужно, можешь поставить посмотреть.
Скорее всего, что первая ошибка, которая выскочит - это ошибка в auth_basic.php, связанная с изменением http://trac.assembla.com/ngcms/changeset/1145 Там в фиче RPC проверки логина/email'a используется оператор goto, который можно использовать только начиная с версии 5.3