Вы не зашли.
Страницы 1
Всё решено!:cool: То что не заполнялся mainblock - проблема в вызове [font=Courier]_MASTER_URL_PROCESSOR[/font],
если перейти в раздел редактирования статей, то в списке статей у некоторых (по ходу без видимой закономерности) не показывается Title - просто пустое место. Там где в шаблоне админки есть entry.title, в то время как другие параметры работают.
а здесь проблема у меня, потому что utf8 и [font=Courier]substr [/font]не контачат, в результате [font=Courier]htmlspecialchars[/font] видела "битую строку " и возвращала пустую.
Меняется просто на &$arg1 => $arg1
В самом деле никак не просто! Вы этим меня "ввели в заблуждение". Передать ссылки в php 5.3+ можно только при статическом вызове, а при [font=Courier]call_user_func[/font] - подвох получается, надо использовать [font=Courier]call_user_func_array[/font] - всё-таки как я предлагал, иначе никак..
Но в общем помогли, спасибо.
Пф... Естественно передача аргументов по ссылке не будет работать в php >= 5.3
Меняется просто на &$arg1 => $arg1Поискать по всем сорцам вхождения &$ не так уж и сложно.
Спасибо. Вы мне очень помогли. Есть продвижения Были вхождения вызова функций с передачей по ссылке в cmodules.php, extras.inc.php Как поставил обычные переменные, движок запустился, даже в админку зашёл. НО! Сайт не работает как надо. Например в админке если перейти в раздел редактирования статей, то в списке статей у некоторых (по ходу без видимой закономерности) не показывается Title - просто пустое место. Там где в шаблоне админки есть entry.title, в то время как другие параметры работают.
При переходе на сайт, только каркас есть: шапка, сайдбар, а основное содержимое - лента новостей - нет, пусто вместо неё. Что может быть, куда копать?
Копайте...
Только почему то у большинства все работает, а у вас нет
Да ну. Можете продемонстрировать, как NG 0/9/3 работает? например здесь (PHP 5.5) стоит. Или на хостингере можно.
Файл extras.inc.php, функция exec_acts, вот этот кусок кода:
foreach($functions as $func) {
$tX = $timer->stop(4);
if ($func['arguments'] == 0) {
$sth.=call_user_func($func['function']);
}
if ($func['arguments'] == 1) {
$sth.=call_user_func($func['function'],$sth);
}
if ($func['arguments'] == 2) {
$sth.=call_user_func($func['function'],$sth, &$arg1);
}
if ($func['arguments'] == 3) {
$sth.=call_user_func($func['function'],$sth, &$arg1, &$arg2);
}
if ($func['arguments'] == 4) {
$sth.=call_user_func($func['function'],$sth, &$arg1, &$arg2, &$arg3);
}
if ($func['arguments'] == 5) {
$sth.=call_user_func($func['function'],$sth, &$arg1, &$arg2, &$arg3, &$arg4);
}
$timer->registerEvent('func EXEC_ACTS ('.$item.'): call function "'.$func['function'].'" ['.$func['arguments'].' params] for '.($timer->stop(4) - $tX)." sec");
}
Сбой я так понял вызывает call_user_func, а именно когда аргументы по ссылке передаются. Первые 2 случая нет, а последующие - крах. Если вызов заменить например так:
call_user_func_array($func['function'],array($sth, &$arg1));
то есть продвижение, хотя в целом сайт так и не работает. Можно ли так заменить и дальше искать?
Если сравнить с версией 0.9.4, то там этот фрагмент кода вообще сделан просто так:
$output.=call_user_func($func);
т.е. аргументы никакие не разбираются, не передаются.. Но это может компенсировано как-то другими наработками?... Хотелось бы комментарий разработчиков или кто хорошо знает ядро. Спасибо.
В php.ini нужно отключать
Не нужно, т.е. во-первых - это не решение, так как на хостинге никто к этому файлу доступ не даст, во-вторых я отключил, появилось :
Directive 'magic_quotes_gpc' is no longer available in PHP in Unknown on line 0
Потом:
Directive 'register_long_arrays' is no longer available in PHP in Unknown on line 0
А потом то что в начале - ошибок больше нет и белая страница. php.ini тут ни при чём. Если бы проблема была в нём, то другие движки тоже не работали бы, но WP успешно работает, да и не может же на всех хостингах быть "плохой" php.ini Копать надо где-то в движке, но где?...
=======
Так, в файле core.php идёт процесс до
@include_once root.'includes/inc/extras.inc.php';
После этой строчки - всё, гаплык! Пока столько накопал.
А где последнюю версию 0.9.3 1147 скачать? Что-то не могу найти. На странице загрузки SVN880, такая как у меня.
Поставил на Денвер PHP 5.4.31, включил логи: при загрузке белая страница, а в логах вот такое:
[22-Oct-2015 15:38:10 UTC] PHP Fatal error: Directive 'allow_call_time_pass_reference' is no longer available in PHP in Unknown on line 0
[22-Oct-2015 15:38:13 UTC] PHP Fatal error: Directive 'allow_call_time_pass_reference' is no longer available in PHP in Unknown on line 0
В .htaccess эта директива закомментирована, т.е. не может быть причиной. Есть там в install.php что-то об этом.
Пробовал закомментить вот это:
foreach (array('allow_call_time_pass_reference') as $flag) {
$tvars['vars']['flag:'.$flag] = ini_get($flag)?'Включено':'<font color="red">Отключено</font>';
if (!ini_get($flag)) { $warning++; }
}
В error.log больше ничего не пишет, но страница всё равно пустая белая
Спасибо за ответы.
По первому случаю - что в логах? Пусто там не может быть.
По второму случаю - нужно смотреть chmod'ы и вообще установлен ли плагин auth_basic.
Так в том то и дело, что логи я смотреть не могу на хостинге - нет их.
Плагин auth_basic стоит, активен ли - не знаю, потому что войти надо. шмоды - такие же как везде стандартные 755 или 775.
Версия 0.9.3 работает на PHP 5.2, а ее последние оновления (вроде с SVN1178+) на 5.3
У меня 880 вроде. Надо покопать эту сборку, правда снова придётся в utf8 переделывать
Версия 0.9.3 работает на PHP 5.2 но на 5.3 не хочет запускаться - белый экран. Включал вывод ошибок - ничего не выводит только пустая белая страница. Кто может подсказать в чём несовместимость, может немного подправить надо? 0.9.4 наполовину запускается на 5.5 -пишет: Fatal error: no auth module found (плагин стоит). Я просто боюсь, что если как то перенесу на новую версию, то хостинги разные - если PHP попадется 5.2, то 0.9.4 на нём работать не будет, а если 5.3 то 0.9.3 не работает. Не каждый хостинг даёт версию выбрать. Вот я и хотел подправить, может бы 0.9.3 как-то с PHP 5.3 удалось совместить?
Здравствуйте. Нужно определить выводится ли список статей на странице с номером, т.е. задействована ли постраничная навигация. [ifhandler:news:main] и дальше мне надо проверить задан ли номер страницы {page} или нахожусь на главной. Можно ли такое сделать?
Не знаю стоило ли открывать отдельную тему. Решил здесь написать.
Есть предложение к усовершенствованию плагина comments. Дело в том, что комментарий при добавлении сохраняется в базе данных в виде BBCode, а при каждом выводе идёт преобразование его в HTML-вид для вывода на сайте через
$parse->bbcodes(...);
Считаю это нерационально. А произвести разбор ББ кодов при добавлении комментария, и таким образом хранить их в БД в HTML, и выводить без всяких приготовлений.
Строку в comments.add.php
$SQL['text'] = secure_html(convert(trim($_POST['content'])));
заменить на:
$SQL['text'] = $parse->bbcodes(secure_html(trim($_POST['content'])));
а из comments.show.php убрать вызовы:
if ($config['use_bbcodes']) { $text = $parse -> bbcodes($text); }
Насколько знаю Опера комментарии не смотрит. Поэтому через Javascript, проверив условие:
if(window.opera) {
x=document.getElementById("some_cool_div");
x=x.parentNode.removeChild(x);
}
Или я не понял вопроса...
Knopik, спасибо, но там как понимаю только регистрируется добавочный элемент для настройки ЧПУ. До этого этапа у меня получается - адрес назначаю. Дело в том, что тот адрес который я указываю на странице ЧПУ не работает.
irbees2008 наверно это:
add_act('admin_header', 'tblank');
Ну а как я пример дам? Это весь сайт с установленным плагином и своими настройками. Мне нужно просто ЧПУ настроить для моего плагина.
Вот пример, как делать для gsmg. И для gsmg это тметод работает, а когда я таким же способом задаю URL для своего плагина, выдаётся ошибка 404, а не та страница.
Дело в парсере переменных вида plugin_
Спасибо. В шаблоне убрал plugin_ заработало! Никогда бы не подумал, что подчеркивание может быть причиной..
Так, вроде теперь все пашет как я хотел, но с УРЛами проблемы.
Вобщем у меня есть страница плагина. Теперь имеет вид:
/plugins/tags_keywords/?tag=something
и работает.
Я хочу сделать, чтобы было более короткое, типа:
/tags/?tag=something
и никак не работает.
Здесь на форуме нашел пример для gsmg чтобы в urlconf.php добавить строчки и можно настроить в админке свой адрес. Для него работает.
А я также сделал для своего плагина - и ошибка 404, я уже переносил в списке выше, как раньше решал такую проблему, но всё безрезультатно.
Вот пожалуйста,
Ещё раз благодарю за помощь, но ещё раз вынужден просить.
Написал я как-то первую версию своего плагина, добился лишь того, что на сайте не выбивает ошибок php, плагин нифига не хочет работать. причём даже не сама логика, а вообще не интегрируется что-ли.
Дело такое:
В шаблон news.full ставлю
[isplugin plugin_name]{plugin_name}[/isplugin]
Надо отметить, что условие срабатывает, но вместо {plugin_name} постоянно выдаётся пустая строка.
В самом коде плагина я написал самое элементарное:
class TKNewsFilter extends NewsFilter {
function showNews($newsID, $SQLnews, &$tvars,$mode = array()) {
global $tpl;
$tvars['vars']['plugin_name'] = "Плагин";
}
}
register_filter('news','plugin_name', new TKNewsFilter);
Т.е. без всяких шаблонов и запросов, просто вывести статический текст на месте плагина. А выводит ровно NULL
Почему не работает, можете подсказать куда копать? Смотрел в других плагинах - код аналогичный и работают а мой нет...
Спасибо. Требуется выполнить такую задачу: вывести на странице плагина на сайте список новостей в короткой форме, соответствующих некоторому критерию.
Я так понял, что надо использовать наилучше будет функцию news_showlist(). Её можно в плагине использовать? Нужны ли load_extras или что-то в этом роде? И она строку возвращает сформированную по шаблону news.short.tpl?
В каком формате надо задать первый параметр? Это должен быть массив, но какой... У меня условие SQL
WHERE $var IN `column_name`
Или я на ложном пути, так не пойдёт?
$alink = checkLinkAvailable('uprofile', 'show')? generateLink('uprofile', 'show', array('name' => $row['uname'], 'id' => $row['uid'])): generateLink('core', 'plugin', array('plugin' => 'uprofile', 'handler' => 'show'), array('name' => $row['uname'], 'id' => $row['uid']));
Спасибо, кстати я заметил, что точно такой код используется в функции generatePluginLink - т.е. надо наверно её использовать вместо этой конструкции?
Ещё есть вопрос по функции register_plugin_page() - она в админке страницу для плагина делает или на сайте, или вообще что-то другое?
И в реализации последний параметр почему-то не используется. Зачем он тогда нужен?
Wolverine, огромное спасибо. Уже прояснилось намного
Ещё эти функции мутными остаются:
checkLinkAvailable()
generateLink()
Из названия предполагаю, что они генерируют ссылки, только как ими правильно пользоваться и ссылка уже в виде тэга или только адрес получается?
И ещё такой вопрос: как выделить для плагина свою страницу, чтобы он имел свой ЧПУ (как архивы), и как генерировать ссылки на эти его страницы?
Спасибо.
Вопрос на первый взгляд нелепый, но нехватает документации. В вики примеры есть, но что конкретно делает каждая инструкция неясно.
Поэтому здесь хочу задавать конкретные вопросы, что мне не ясно, чтобы написать свой плагин. Прошу тех, кто знает, помочь разобраться в этой всей структуре.
Итак первые вопросы:
Что делает функция locatePluginTemplates? Что за аргументы, и что возвращает?
Методы:
$tpl -> template()
$tpl -> vars()
$output = $tpl -> show()
Что каждый из них делает? Вижу это в каждом плагине, но как ими пользоваться - не знаю.
Ну скажите как сделать
сбросить все -transform:
.menu a {
-webkit-transform:none
...
}
Вот такое сработало:
[ifhandler:news:news][/ifhandler]
Правда с аргументами сложновато
Спасибо, то что надо А можно ещё пнуть меня в документацию по ТВИГУ? На той странице только примеры, а список всех доступных функций, тэгов и аргументов? Конкретно для NGCMS.
UPD:
У меня это не работает, тупо выводится символами. Если заключаю в [TWIG][/TWIG] = то же самое - выводится текст, а не обрабатывается.
Версия: ng_093_Release_cs880-fix01
Здравствуйте.
Подскажите как можно определить тип текущей страницы, которая загружается в шаблоне? например: выводится ли архив, или статическая страница, или пост.
Смотрел Вики по переменным - ничего такого нет.
Мне нужно что-то наподобие Вордпрессовских is_category() и т.п.
Нужно для того, чтобы вставлять разный контент в зависимости от текущей страницы. Например на странице с тэгами или архивом вставить robots="noindex"
Вы были невнимательны при регистрации на форуме, в следствие чего не поставили галочку в нужном месте (проверка на спам-бота-робота).
Рекомендуется зарегистироваться снова.
Ставил я галочку, почему не засчитало не знаю. Зарегил новый аккаунт - работает. Спасибо за помощь.
Страницы 1