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

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

Вы не зашли.

#76 Re: PHP/HTML/JS/CSS » Как вставить конкретный блок на конкретную страницу? » 2012-01-20 19:46:22

t3s

точно так же как и в твоем - просто у тебя идет

echo '<a href="http://рекламируемыйсайт2/" target="_blank">анкорсайта2</a>';

а в плагине

$side_show = '<a href="http://рекламируемыйсайт2/" target="_blank">анкорсайта2</a>';

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

но как подметил Wolverine - для большого кол-ва это урлов это не самое удачное решение, лучше искать другое...

#77 Re: PHP/HTML/JS/CSS » Как вставить конкретный блок на конкретную страницу? » 2012-01-20 17:15:55

t3s

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

$side_show = '{plugin_lastcomments}';

соответственно плагин ласт коментс должен быть включен

#78 Re: PHP/HTML/JS/CSS » Как вставить конкретный блок на конкретную страницу? » 2012-01-20 11:45:20

t3s

legenda, пока что для аналагичной задачи использую вот такой костыль ввиде вот такого простейшего плагина:

<?php
if (!defined('NGCMS')) die ('HAL');
add_act('index', 'mysidebar');

	function mysidebar(){
		global $tvars, $template, $tpl;

	$ref = $_SERVER['REQUEST_URI'];
	$ref = explode("/", $ref);
	$url_id = $ref[2];


if ($url_id == 'тут_урл_на_котором_надо_что-то_вывести' ){// вместо http://мой сайт/2012-01-01.html ставим 2012-01-01.html
$side_show = 'блаблабла, тут пишем инфу для конкретного урла';
//вопрос - почему не использую адс или адс про?
//ответ ver.1 - адс и адс про не работают со страницами плагинов, т.е. вывести инфу на зтранице плагина нельзя
//ответ ver.2 - тут я могу взять не только текстовую инфу, но и вообще все что угодно (RSS, XML, YML, подключиться к другой базе и т.д.), затем сделать с ней все что угодно, а затем вывести то что нужно... 

}else{
$side_show = '';
}


		$tvars['vars'] = array	(
				'my_data'	=>	$side_show
								);

			$tpl -> template('mysidebar', extras_dir."/mysidebar/tpl");
			$tpl -> vars('mysidebar', $tvars);
			$output .= $tpl -> show('mysidebar');
			$template['vars']['data_mysidebar'] = $output;

}

если подходит, то

1. создаешь папку mysidebar, в которой создаешь файл mysidebar.php и вставляешь данный код
2. в ней создаешь папку tpl, в которой должен быть файлик mysidebar.tpl, содержащий вот такое:

{my_data}

3. в шаблоне в main.tpl в том месте где хочешь вівести пишешь {data_mysidebar}


если есть решение более элегантное то присоеденяюсь к вопросу Легенды, поскольку с твигом не сложилось (http://ngcms.ru/forum/viewtopic.php?pid=27177#p27177)

#79 Re: Платные шаблоны NGCMS » FAQ » 2012-01-20 10:58:06

t3s
vadim008 пишет:

Можно поподробней 30 wmz только верстка или диз тож рисуете?

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

hot пишет:

---но это из практики - НЕ РЕАЛЬНО---, любой 'движок' Вам - это не предоставит smile

из практики - реально

infinity237 пишет:

1. Нарисовать 1 страницу (главную) + 1 внутряк это ~60$.

скромно молчим если страниц не 2 а допустим 5-10 smile (а к примеру для е-комерции это обычная практика)
Ahatomik, а почему бы не попробовать самому? план действий описан в ответе vadim008-у, а30 баксов возьмешь у папы как честно заработанные и положишь в свой карман smile
и это может быть быстрее чем поиск исполнителя

#80 Re: FAQ » TWIG - что надо о нём знать для успешного создания шаблонов » 2012-01-20 10:34:08

t3s

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

#81 Re: FAQ » TWIG - что надо о нём знать для успешного создания шаблонов » 2012-01-19 18:41:41

t3s

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

Достаточно существующего функционана? Продолжаем использовать то что есть.
Хочется что-то новое? Переходим на TWIG, причём только в нужных файлах-шаблонах.

#82 Re: FAQ » TWIG - что надо о нём знать для успешного создания шаблонов » 2012-01-19 16:03:38

t3s

ммм... а как подключить твиг к шаблону? в "новом" default не обнаружил - плохо искал или он тоже "нетвиганутый"?

#83 Re: FAQ » TWIG - что надо о нём знать для успешного создания шаблонов » 2012-01-19 15:33:09

t3s

Wolverine, нифига не понял если честно... гугл говорит что-то про getRequestUri - но ведь это для фреймворка Symfony?

блин, возможно из-за того что у меня в шаблоне вообще не работает твиг - если прописать

{% if pluginIsActive('xfields') %}...{% endif %}

то это же и выводится, хотя долно быть лишь многоточие... как его включить?

#84 Re: FAQ » TWIG - что надо о нём знать для успешного создания шаблонов » 2012-01-19 14:53:17

t3s
vitaly пишет:

Ваши вопросы/предложения жду в этой теме...

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

в смарти есть такая возможность - надеюсь что должна быть и в твиге
и еще - почему не работает {%  debug %}? было бы удобно отлавливать... в вер. 0.93/880 точно не работает

#85 Re: "А как сделать..." » разбираюсь в плагинной системе, есть вопрос » 2012-01-17 22:47:31

t3s

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

{if $smarty.get.ukey eq 'блаблабла'}
тут выводим, если джет.юкей соответствует блаблабла
{/if}

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

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

{if условие1 eq 'блаблабла'}инфа для условия 1 {if условие2 eq 'блаблабла'}инфа для условия 2 {if условие3 eq 'блаблабла'}инфа для условия 3 {/if}{/if}{/if}

//оффтоп енд

т.е. второй вопрос - как "правильно" для твига сделать сложные условия?

#86 Re: "А как сделать..." » как получить категорию в плагине » 2012-01-15 01:54:49

t3s

нет, это не результат апгрейда - 0.93 ставилась изначально

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

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

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

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

#87 Re: "А как сделать..." » как получить категорию в плагине » 2012-01-15 01:15:10

t3s

выглядет так же, SVN880

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

#88 Re: "А как сделать..." » Как закрыть все ссылки определенного типа в nofollow ? » 2012-01-15 01:09:09

t3s

easmik, вообще-то я полагал что вопрос касается существующих новостей

#89 Re: "А как сделать..." » Как закрыть все ссылки определенного типа в nofollow ? » 2012-01-15 01:04:27

t3s

самое первое что пришло в голову:
1. делаешь экспорт базы (интересует таблица ng_news)
2. открываешь ее в notepad2 или notepad++
3. ищешь в меню "найти и заменить" и заменяешь все a href="http://letitbit на a rel="nofollow" href="http://letitbit
4. импортируешь обратно

зы
ток сделай резервную копию на всякий пожарный

#90 Re: "А как сделать..." » как получить категорию в плагине » 2012-01-15 00:49:27

t3s

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

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

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

#91 Re: "А как сделать..." » как получить категорию в плагине » 2012-01-15 00:18:04

t3s

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

если делать лайком - то мне придется делать два запроса, к примеру для первой части

$cats_1 = 'AND catid LIKE %10%'

и для второй

$cats_2 = 'AND catid LIKE %20%'

и соответственно выводить

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

$cats = explode(",", $row['catid']);

или так

$cats = explode(",", $row['catid']);
$cats = array_shift($cats);

и вывожу если $cats[0] = 10 первую часть, а если $cats[0] = 20 то вторую (во втором варианте соответственно сравниваю $cats)
специально не проверял, но по-моему так должно быть быстрее... во-первых сам запрос выполнится быстрее, а во вторых в случае с array_shift это не будет зависеть от кол-ва категорий, в которых находится данная новость




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

#92 Re: "А как сделать..." » как получить категорию в плагине » 2012-01-14 23:53:36

t3s

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

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

#93 Re: "А как сделать..." » как получить категорию в плагине » 2012-01-14 22:48:04

t3s

catid это не совсем то - когда материал размещен в неск. категориях, то они выводятся в том порядке, в каком были нажаты "галочки" в админке
например 40,3,10 - "главная" которая мне нужна это 10

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

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


$SYSTEM_FLAGS['news']['db.categories'] работает только в новостях? в страницах, созданных плагином ее использование возможно? или она не подойдет под мою задачу?

#95 Re: "А как сделать..." » как получить категорию в плагине » 2012-01-14 21:18:19

t3s

есть ли у движка готовая функция для вывода категорий?

#96 "А как сделать..." » как получить категорию в плагине » 2012-01-14 21:10:55

t3s
Ответов: 20

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

		$cats_select = 'AND catid LIKE ';
		$cats_select .= db_squote('%'.$get_cats.'%');

но надеюсь что имеется готовый вариант для категорий

#97 "А как сделать..." » конвертер новостей из жумлы/жустины в NGCMS » 2012-01-14 19:04:45

t3s
Ответов: 0

как пользоваться?

1. редактируем

$server = 'localhost';//хост
$user = 'root';//юзер
$password = '';//пароль

$database1 = '';//жумла или жустина, имя базы
$database2 = '';//ngcms, имя базы

2. запускаем


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


конвертер писался весной 2011-го, т.е. во времена расцвета джумлы 1.5 (теоретически должен работать и на 1.6, а на 1.7 не тестировался - там отличается работа с категориями)
поэтому если что-то не получается, просьба не писать "не работает" а хотя бы приаттачить базу, с которой не работает - постараюсь разобраться...

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

#98 Re: "А как сделать..." » разбираюсь в плагинной системе, есть вопрос » 2012-01-14 18:34:06

t3s

все, разобрался - с первым вопросом ошибка была из-за того что

	$xg = $twig->loadTemplate($tpath['plugin'].'plugin.tpl');

был внутри цикла, а надо было до него...

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

если кому интересно - с твигом получился чуть меньший размер плагина (3060 кб против 3218) но увеличился размер шаблона - один файл на 1029 кб против двух файлов 393кб + 450кб
первое преимущество лежит на поверхности - верстальщику будет проще изменять/создавать шаблон, особенно если он раньше имел дело со SMARTY (не нужно париться с пхп)
буду благодарен если накидаете в меня другими преимуществами твига

#99 Re: "А как сделать..." » разбираюсь в плагинной системе, есть вопрос » 2012-01-14 17:53:16

t3s

ROZARD, $twig добавлен - полагаю что без него вообще плагин бы не работал...

а по поводу компилирования - что-то подозрительно много раз компилирует - могу скинуть урл в личку, сам глянешь... хотя стоп - если я сделал изменения в плагине - то он компилирует заново?

#100 Re: "А как сделать..." » разбираюсь в плагинной системе, есть вопрос » 2012-01-14 16:27:13

t3s

ROZARD, vitaly - спасибо, буду переходить на твиг...
но появились новые вопросы:
1. когда данные имеются то все нормально, работает отлично
но когда в массиве пусто - получаю ошибку

[ 1]: Call to a member function render() on a non-object

- ругается на строку     

$template['vars']['mainblock'] = $xg->render($tVars);

в голову лезет такое решение - проверять массив и если он пустой то вместо

'entries'      =>    $favEntries

ставить

'entries'      =>    'ничего нету'

но если уже взялся делать "правильно" - хочется знать, почему не работает условие в шаблоне? так как в примере Виталия:

{% for entry in entries %}
тут данные
...
{% else %}
тут сообщение что данных нету
{% endfor %}

2. на старом шаблонизаторе время генерации было примерно одинаковое и если несколько раз обновлять одну и туже страницу отличалось незначительно (использовал {queries} и {exectime})... когда сделал на твиге - то если пообновлять  страницу, значение {exectime} может отличаться в несколько раз - лично у меня получалось от 0.11 до 0.99 сек... почему такой большой разброс? это нормально? 0.99 считаю неприемлимым - как бороться?

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

Работает на FluxBB