Next Generation CMS :: Форум поддержки

Заинтересовала наша система? Тогда этот форум для Вас!

Вы не зашли.

#26 Re: Новый функционал » НОВАЯ админка к следующему релизу товарищи!! - пожелания, идеи. » 2012-05-11 19:55:29

t3s

если "по стилю и логике от Bootstrap" то другое дело

вот некоторые моменты, которые понравились лично мне в бутстрепе:
1. CSS-спрайты - т.е. для всех иконок в админке будет использоваться лишь одна (!) картинка... ну или две, если к примеру будет решено делать два стиля (допустим светлый и темный)
2. наследование - т.е. если просто кнопка это "btn" то зеленая кнопка это "btn btn-success" а рыжая "btn btn-warning"
3. использование сетки - т.е. располагать элементы в нужном порядке сможет даже ребенок, для этого достаточно запомнить имена span1, span2 и т.д.

что не понравилось, говорил выше

а если взять от бутстрепа только хорошее и с похожими принципами сделать свое, которое пусть будет меньше и проще но зато
1. нормально будет работать с border-radius и с градиентами в 7 и 8 глюксплорерах
2. не будет иметь проблем с оперой и хромом
3. не будет настолько "жирным" и уж тем более не будет требовать подключения дополнительных js

то лично я только за... более того, готов принять участие независимо от того имеются готовые наработки или нет... и еще более того - его же можно использовать не только для админки, но как минимум еще и для оформления плагинов и для дефолтного шаблона (я про всякие кнопки и прочую чушь)

#27 Re: "А как сделать..." » как получить ид новости в результате поиска? » 2012-05-11 18:29:17

t3s

требовался аналог вот этого плагина
http://ngcms.ru/forum/viewtopic.php?pid=29274
только не для добавления а для редактирования, т.е. пользователя нельзя пускать в админку но нужно предоставить возможность редактировать "свои" новости

уже неактуально т.к. сделал немного хакнув includes/news.php, т.е. по аналогии с

$tvars['vars']['[edit-news]']

добавил

if ($row['author_id'] == $userROW['id']){
$tvars['vars']['[edit-news2]'] = blablabla;
}

но если есть варианты реализации без хаков движка, то с удовольствием выслушаю

#29 Re: Страницы плагинов » Добавление новостей с сайта ( nsm ) » 2012-05-11 15:52:22

t3s

ну так поскольку у нас xvalue_foto содержит имя картинки - то просто пишем в шаблоне для полной картинки

[xfield_foto]<img src="сайт.ком/requests/[xvalue_foto]" alt="{title}" title="{title}" />[/xfield_foto]

для превьюшек

[xfield_foto]<img src="http://сайт.ком/requests/s_[xvalue_foto]" alt="{title}" title="{title}" />[/xfield_foto]

#30 Re: Страницы плагинов » Добавление новостей с сайта ( nsm ) » 2012-05-11 03:28:03

t3s

еще раз прочти внимательно, где ты видел намек на [xvalue_foto]?

там же черным по белому:

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

...
а

<input type="file" name="filename" class="field">

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

#32 Re: Новый функционал » НОВАЯ админка к следующему релизу товарищи!! - пожелания, идеи. » 2012-05-08 17:57:04

t3s
Евгений пишет:

Скорее всего возможно будет использоваться фреймворк Bootstrap. Так что можно предлагать многие вещи с учетом его возможностей.

недавно делал верстку, заказчик потребовал Bootstrap...

при более детальном знакомстве он оказался очень сырым продуктом - хваленая кроссбраузерность работает только для простых вещей, такое впечатление что разрабы слышали лишь о файрфоксе и айфоне (для айфонов/айпадов шикарно, не спорю)

тем не менее, обнаружились глюки в
- гуглохроме с формами (btn и его производные)
- опере с классами для слайдеров (carousel, carousel-inner и т.д.)
- ыксплорере ниже 9-ого, там вобще тихий 3.14здец творится...

учитывая что хром+опера+ыксплореры 7/8 в настоящее время это более 50% пользователей, то Bootstrap оправдан в 2-ух случаях:

1. для относительно простый проектов в стиле "мегаблог и суперварезник Василия Пупкина"
2. для "типа чиста канкретных поцонов", которые знают о правильной распальцовке больше чем о верстке и запомнят фразу "отныне мой сайт юзает Bootstrap", которую будут повторять друг перед другом

для админки он явно сырой, во всяком случае 2-ая версия

#33 Re: Новый функционал » Отсрочка публикации RSS-ленты » 2012-05-08 12:12:31

t3s

не улавливаем

отсрочка - зло, смотрите сами:

а если используется кросспостинг в кучу сервисов через RSS?
а если NG работает в симбиозе с другим двигом? - например на данном форуме проще всего выводить последние новости через RSS

а таких примеров гораздо больше

в плане СЕО - просто нужно отдавать через фид не всю новость а только ее анонс... идеал для сеошников - это если будет спец. поле для RSS, или к примеру новый бб-код, т.е. фид будет показывать лишь то что между [rss] и [/rss]... кстати, это была бы бомба для сеошников

а в плане защиты - RSS не для того нужен и тырить будут даже если его отключить

#34 "А как сделать..." » как получить ид новости в результате поиска? » 2012-05-08 00:05:31

t3s
Ответов: 2

в новостной ленте  работает

$SYSTEM_FLAGS['news']['db.id']

а вот в результатах поиска массив $SYSTEM_FLAGS ничего похожего не содержит...
как взять ид для каждого из результатов?

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

#35 Re: Страницы плагинов » Добавление новостей с сайта ( nsm ) » 2012-05-07 19:39:52

t3s

раз пошла такая пьянка, держите и от меня костыль cool
основан на плагине KhadeR-а, а поскольку он говорил что перестает поддерживать плагин, то надеюсь не будет сердиться за мою доработку напильником

принцип похож с тем что планировал, но по какой-то причине не реализовал KhadeR, т.е. для хранения имен файлов будет использоваться плагин xfields
это с одной стороны создаст некоторые неудобства - т.к. создавать 10 полей для 10 картинок не есть гуд, но также дает и плюсы - например при выводе в шаблоне мы можем к картинке добавлять alt и title на автомате - т.е. получаем ключи...

вобщем не претендую на гениальность и если кто может сделать лучше то пусть делает, я описываю как делал я

1. создаем поле foto (можете дать свое название, у в примере foto)
2. создаем в корне папку requests (можно любую другую, в примере указана requests), на всяк. случай ставим права 777 (зависит от хостинга) и обязательно закрываем htaccess-oм от выполнения в ней скриптов
3. открываем addnews.php и в самый конец дописываем 2 функции:
первой будем проверять расширение

  function getExtension($filename) {
    $path_info = pathinfo($filename);
    return $path_info['extension'];
  }

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

function image_resize(
    $source_path, 
    $destination_path, 
    $newwidth,
    $newheight = FALSE, 
    $quality = FALSE // качество для формата jpeg
    ) {

    ini_set("gd.jpeg_ignore_warning", 1); // иначе на некотоых jpeg-файлах не работает
    
    list($oldwidth, $oldheight, $type) = getimagesize($source_path);
    
    switch ($type) {
        case 1: $typestr = 'gif' ;break;
        case 2: $typestr = 'jpeg'; break;
        case 3: $typestr = 'png'; break;
    }
    $function = "imagecreatefrom$typestr";
    $src_resource = $function($source_path);
    
    if (!$newheight) { $newheight = round($newwidth * $oldheight/$oldwidth); }
    elseif (!$newwidth) { $newwidth = round($newheight * $oldwidth/$oldheight); }
    $destination_resource = imagecreatetruecolor($newwidth,$newheight);
    
    imagecopyresampled($destination_resource, $src_resource, 0, 0, 0, 0, $newwidth, $newheight, $oldwidth, $oldheight);
    
    if ($type = 2) { # jpeg
        imageinterlace($destination_resource, 1); // чересстрочное формирование изображение
        if ($quality) imagejpeg($destination_resource, $destination_path, $quality);
        else imagejpeg($destination_resource, $destination_path);
    }
    else { # gif, png
        $function = "image$typestr";
        $function($destination_resource, $destination_path);
    }
    
    imagedestroy($destination_resource);
    imagedestroy($src_resource);
}

4. далее внутри функции doAdd() добавим немного вот такого кода:

//если юзер не дал файл то никаких операций с картинками не делаем
if ($_FILES['filename']['name'] == ''){
$name_image = '';
}else{

// проверяю  содержание (mime-тип) загруженного файла
 $imageinfo = getimagesize($_FILES['filename']['tmp_name']);
 if($imageinfo['mime'] != 'image/gif' && $imageinfo['mime'] != 'image/jpeg' && $imageinfo['mime'] != 'image/png') {
	header ("Location: http://google.com");
 }

// проверяю расширение
  $imageext = getExtension($_FILES['filename']['name']);
  if ($imageext != 'gif' && $imageext != 'jpg' && $imageext != 'jpeg' && $imageext != 'png') {
	header ("Location: http://google.com");
 }

   if($_FILES["filename"]["size"] > 1024*0.3*1024)
   {
     echo ("Размер файла превышает 300 килобайт");
     exit;
   }
   // Проверяем загружен ли файл
   if(is_uploaded_file($_FILES["filename"]["tmp_name"]))
   {
     // Если файл загружен успешно, перемещаем его
     // из временной директории в конечную и переименовываем
     move_uploaded_file($_FILES["filename"]["tmp_name"], "./requests/".md5(time()).".".getExtension($_FILES['filename']['name']));


//
$name_image = md5(time()).".".getExtension($_FILES['filename']['name']);
$_REQUEST['xfields']['foto'] = $name_image;
$old_image = "./requests/".$name_image;
$small_image = "./requests/s_".$name_image;

//делаем ресайз

image_resize ($old_image, $small_image, 100 );

$small_image = str_replace("./","/", $small_image);
 
   } else {
   
      echo("Ошибка загрузки файла 1");
   }

}

если у вас свое название поля, то измените его в строке

$_REQUEST['xfields']['foto'] = $name_image;

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

<input id="xfields[foto]" name="xfields[foto]" value="" class="field" />

а

<input type="file" name="filename" class="field">

5. В шаблоне для добавления чтобы у формы обязательно стояло enctype="multipart/form-data"
иначе не заработает

для ленивых приаттачен модернизированный файл addnews.php - если вас устраивают предложенные пути к картинкам и имя доп.поля, можете просто заменить ним оригинал... дополнительно там еще одна модернизация - он автоматом режет на полную и короткую новость, т.е. через 26 слов добавляет

<!--more-->

если нужно больше файлов для загрузки - вижу 3 варианта:
либо делаем больше доп. полей
либо изменяем по-своему, чтоб в поле foto хранилась не одна картинка, а массив из нескольких
либо изменяем по-своему, чтобы юзать функции движка

cool опен сорц все-таки

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

......

#36 Re: Страницы плагинов » Добавление новостей с сайта ( nsm ) » 2012-04-30 23:53:44

t3s
ROZARD пишет:
legenda пишет:

нету загрузки изображений

Есть.

кажется я понял в из-за чего такие разногласия )))

на скрине четко видно "доступ к загрузке изображений" - а в архиве из 75-го поста в настройках этой опции нету

т.е. речь идет просто о разных версиях

#37 Re: "А как сделать..." » Доп. поля для пользователей » 2012-04-30 17:32:58

t3s

спасибо, действительно не хватало всего лишь {plugin_xfields_N}

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

#38 Re: "А как сделать..." » Доп. поля для пользователей » 2012-04-30 16:52:50

t3s

что "работает"?

ок, еще раз - допустим, мне нужны поля "цвет волос" и "размер сисек" - я их создаю в xfield (вкладка пользователи)
причем просматривая мускул через phpmyadmin четко видно что поля xfields, xfields_volosy, xfields_siski имеются

как при просмотре профиля показать xvalue_siski? [xvalue_поле] не работает - может для пользователей надо как-то иначе? и где их редактировать?

#39 "А как сделать..." » Доп. поля для пользователей » 2012-04-30 15:13:34

t3s
Ответов: 9

где они?

использую 0.9.3 Release [SVN880+FIX01] + xfields 0.13
на вкладке Пользователи: поля создаю поля для пользователей - в базе они появляются, но ни при редактировании ни при просмотре профиля ничего нету (делаю как с новостями, т.е. [xfield_поле][xvalue_поле][/xfield_поле])

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

#40 Re: "А как сделать..." » Custom fields с панелью интсрументов » 2012-04-28 00:44:01

t3s

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

#41 Re: Флейм » Admantium » 2012-04-17 23:44:14

t3s

$14 для одного сайта и $700 неограниченно cool

#42 Re: "А как сделать..." » отличить страницу от рубрики » 2012-04-11 23:04:26

t3s

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

#43 "А как сделать..." » отличить страницу от рубрики » 2012-04-11 13:22:00

t3s
Ответов: 3

плагин должен делать определенные действия на странице новости, но должен игнорировать категории, страницы плагинов, и т.д.
действия происходят за пределами {mainblock} (в данном случае внутри head)

можно попытаться получить ид или имя новости - если оно отсутствует то значит мы не на странице новости...
а есть ли более красивое решение - например аналог вордпрессовского is_single?
т.е. если это новость - делаем, иначе - не делаем...

#44 Re: "А как сделать..." » Именно так ! » 2012-04-11 13:15:26

t3s

1. байан (в оригинале то ли молдавские, то ли казахские были)
2. флеш

т.е. нужно было назвать топик "именно так нельзя делать"

#45 Re: Флейм » Защита ориг.контента от воровства. New Idea » 2012-04-10 22:41:08

t3s

овчинка выделки не стоит
гс-ы давно не наполняются руками (разве что руками школьников-двоешников) - для остального существуют парсеры

если служил в армии, то должен знать что тактическое преимущество (выбор времени, места, вида атаки и т.д.) всегда на стороне атакующего
воришка в данном случае - атакующий

ты убьешь вечер (два, три и т.д. - зависит от твоих знаний и от "хитрости" алгоритма) на свою "суперзащиту"
воришка потратит от пары минут (обычный str_replace) до пары часов (curl = емуляция браузера с отключенным js)
а можно еще и рсс парсить - пару секунд получается cool

поверь, было бы так просто - на всяких CNN или BBC давно бы стояло нечто подобное

#46 Re: Вопросы функционирования системы в целом » И снова о ЧПУ... » 2012-03-25 19:00:34

t3s
Dron пишет:

Как я понял выбранные категории хранятся в поле catid таблицы _news. Можно добавить ещё поле, например, maincatid - в нём будет хранится выбор главной категории...
После исправления, у кого было выбрано несколько категорий, так и останется ссылка со всеми выбранными категориями. А кому надо в ссылке одну категория, тот может выбрать главную... И у него в ссылке будет только главная, но и в другие категории эта новость тоже попадёт...
Это моё личное мнение и никому его сильно не навязываю... Автор захочет - исправит, ну а нет, как говорится и суда нет...
Просто подумал, что раз выбор главной и дополнительных категорий были разделены, то это кому-то надо было... Вот и хотелось бы услышать от автора: для чего они были разделены и как они должны были работать...

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

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

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

#47 Re: "А как сделать..." » как получить $newsID в плагине? » 2012-03-22 21:10:03

t3s
ROZARD пишет:

шустрый ты)))

угу cool
я уже сделал, только беру не ид, а название ($SYSTEM_FLAGS['info']['title']['item']) - так работает и в старой и в новой версии

кстати, по ид ищет быстрее - поэтому отказался от универсальности-совместимости, для 9.3 + буду юзать $SYSTEM_FLAGS['news']['db.id'];

с $newsID тоже разобрался - если кому-то понадобится, то вот

class myNewsFilter extends NewsFilter {
  function showNews($newsID, $SQLnews, &$tvars, $mode = array()) {
	global $mysql, $config, $tpl;


	print $newsID;//наш искомый ид


	}
}
register_filter('news', 'my_function', new myNewsFilter);

#48 Re: "А как сделать..." » как получить $newsID в плагине? » 2012-03-22 19:03:10

t3s
ROZARD пишет:
t3s пишет:

так это ид категории, а мне нужна сама новость

Это не ид категории... У категории $SYSTEM_FLAGS['news']['currentCategory.id']...

просто я набирал ответ до того как ты отредактировал - изначально и было написано  ['news']['currentCategory.id'] ))

а нету этих самых страрых хлебных крошек? или хоть нужный кусочек примера с $newsID?

просто часть на старой версии, а часть на новой и хочется универсального решения... обновлять все старые нецелесообразно из-за множества изменений

#49 Re: "А как сделать..." » как получить $newsID в плагине? » 2012-03-22 18:38:35

t3s

так это ид категории, а мне нужна сама новость

в 9.3 новость - это $SYSTEM_FLAGS['news']['db.id']
но в более старых версиях не хочет работать

#50 "А как сделать..." » как получить $newsID в плагине? » 2012-03-22 15:32:05

t3s
Ответов: 6

сабж в заголовке - что и где нужно обьявить, чтобы внутри функции можно было работать с ид новости?

Подвал раздела

Работает на FluxBB