<title><?=stripslashes($post['title']); ?></title>если не поможет, то:
<title><?=str_replace('\','',$post['title']); ?> </title>А откуда они вообще взялись экранированные кавычки в $post['title']? Вроде не должно там их быть.
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Strawberry форум » Сообщения от ANT-Soft
<title><?=stripslashes($post['title']); ?></title>если не поможет, то:
<title><?=str_replace('\','',$post['title']); ?> </title>А откуда они вообще взялись экранированные кавычки в $post['title']? Вроде не должно там их быть.
от чтения на форуме никакой пользы все как-то туманно...
Надо просто запросы корректные давать, так как даже по вашему вопросу в форуме всё тоже "как-то туманно". Зачем, например, нам знать на чём вы сделали страницы и как там у вас всё устроено? Если бы вы сформулировали задачу, например, так: "как сделать, чтобы полная новость открывалась не на главной странице, а на той же самой, где нажали на ссылку "читать полностью"?", то все сразу бы всё поняли.
Итак, в шаблоне Default в файле active.tpl вместо:
<div class="full_link"><a href="<?=$tpl['post']['link']['post']; ?>">читать полностью</a></div>напишите:
<div class="full_link"><a href="?id=<?=$tpl['post']['id']; ?>">читать полностью</a></div>Поскольку шаблонная переменная <?=$tpl['post']['link']['post']; ?> динамически формирует ссылку вида:
http://сайт.ru/главная_страница_сайта.php?id=id_номер_новости
а нам для решения задачи нужно удалить из уравнения главную_страницу_сайта.php
но лучше включите Format Switcher и не морочьте голову...
Andrey_1cov ...и проанализируйте свой файл data/xfields-data.php, если он слишком большой, то "Format Switcher" действительно может тормозить.
Если вы не используете плагин "XFields" и не балуетесь особо разрешением/запрещением комментов для новостей, то содержимое файла data/xfields-data.php можно безболезненно очистить.
Если вы используете какой-нибудь визуальный редактор, например "FCKeditorPHP", то у вас все новости должны выводиться в формате "HTML", тогда плагин "Format Switcher" действительно не нужен, просто нужно установить формат "HTML" по умолчанию для всех новостей. А как обойтись без "Format Switcher" - поищите в форуме, где-то было.
А можно поменять штатный плагин "XFields" на "XFields для MySQL" (поищите в форуме "Дополнения: готовые"). Тогда и "Format Switcher" тормозить не будет и доп.поля можно спокойно использовать, и форматы новостей менять хоть через одну и комменты включать/отключать хоть для каждой новости.
Andrey_1cov, наверное у вас формат новости "HTML с переносом строк"? Включите (если не включен) плагин "Format Switcher" и выставьте для этой новости формат "HTML".
Ну и что улыбнуло:
как-то не подумал, что в файле шаблона сможет выполняться скрипт
А это по-вашему не скрипт?:
<? if ($tpl['post']['prev-next']['prev']['title']){ ?>
<small><a href="<?=$tpl['post']['prev-next']['prev']['link']; ?>">« <?=$tpl['post']['prev-next']['prev']['title']; ?></a></small>
<? } ?> (приведён фрагмент из шаблона Default/full.tpl)
Andrey_1cov, сумбурно как-то, давайте сначала:
1. Вы хотите вставить код в тело новости и нужно, чтобы он выводился только в шаблоне для печати? Следовательно, в обычном шаблоне этого кода быть не должно.
2. "Плагин для вставки php" - это, как я понимаю, либо "Eval" (выполнение php-кода в тексте новости), либо "Post Type" (тип поста "чистый php-код")? Однако, вас не интересует выполнение кода нигде, кроме шаблона печати.
Я приблизительно правильно понял?
Ну тогда вставьте ваш php-код в нужное место шаблона Print/full.tpl
GuzElena, ок, но причём здесь Strawberry? Этот раздел для презентации сайтов сделанных только на нашем движке.
Вот такая нехитрая конструкция...
Большое человеческое спасибо!
HumanQ, 1321963875time это:
1321963875 - реакция на echo time();
time - реакция на echo time; почему-то, хрен знает.
cmd, главное преимущество: если открывается полная новость, то выполняется только один запрос к таблице story с выбором одной записи. Ну и ещё несколько не столь очевидных преимуществ, таких, например, как: количество новостей в категории, "активные даты" календаря, "все статьи автора" и т.п.; то есть везде, где не нужны поля short и full, а достаточно только id, или заголовка новости, или даты создания, или наличия/отсутствия комментариев, или авторства и т.п.
olafsen, я редко предлагаю непроверенные решения, в-основном, когда оно (решение) интуитивно понятно и "вертится на кончике пера". В данном же случае, решение мне нихрена не понятно, выдрано мною из интернета и на моих сайтах отлично работает. Так что за него я ручаюсь. Может быть дело в версиях джей-куэри и прототайпа, в порядке их подключения и прочих нюансах? Не скажу, потому что сам не до конца разбираюсь.
yukon и cmd, если внимательно пороетесь по форуму (не помню где, простите), то увидите, что я готовое решение уже давал.
Upd вспомнил: http://strawberry.goodgirl.ru/forum/topic/3921/
По статистике, более 50% сайтов используют jQuery
Я бы акцентировал: "намного более 50%"...
Лекарство: ставим в начале кода сразу после открывающего тега java-скрипта jQuery-функцию $.noConflict(); вот так:
<script type="text/javascript">
$.noConflict();
...jQuery-функции...
</script>и навсегда забываем о конфликтах jQuery с другими библиотеками (типа prototype и п.х.).
Не видел Quixplorer под Клубничку. Что это?
http://strawberry.goodgirl.ru/forum/topic/4000/
anubees, или в админке видны, а на сайте нет? Такое бывает, если для категории установлен какой-то несуществующий или нерабочий шаблон.
Как быть?
Порыться по форуму.
meekoka, {rule=1.}
yukon, пароли и явки - мне на мыло или в личку.
cmd, у меня нет конкретных замеров, только "на глазок", но с тех пор, как мой любимый хостинг произвёл некоторый апргейд своего железа и софта, я вообще повырубал кэш на всех сайтах, которые там находились. Результаты меня просто поразили.
Теперь конкретно: давайте не будем забывать, что "кэширование" - это запись некоторой информации в файл и последующее чтение её из файла. Два запроса к БД и чтение содержимого одного файла (пусть даже самого маленького) - величины совершенно несопоставимые. Десять, двадцать, пятьдесят запросов к БД по-любому менее ресурсоёмки, чем поиск в папке cashe одного из сотен и даже тысяч других файлов (т.е. операция идентификации файла по имени), чтение файла и его выгрузка через тот же поток, через который загружалась страница (ведь файлы кэша, движок, страницы, графика и п.х. находятся физически на одном сервере). А, с учётом того, что информация, находящаяся в кэше, может молниеносно устаревать (следовательно, вынуждена постоянно обновляться), то выигрыш в борьбе кэша против запросов вообще сводится к нулю... даже к отрицательным величинам.
По моему скромному мнению, кэширование в том виде, в котором оно представлено в Strawberry, - это историческая реликвия, оставшаяся от более ранних версий движка, когда [s]деревья были большими,[/s] сервера были слабыми, каналы узкими, интернет медленным, и даже txtSQL мог составить достойную конкуренцию майэскуэлю.
Zomb1e, если он именно это имел в виду, то ни в одном плагине или моде вы этого не найдёте. Для этого есть такие понятия как cute_get_rights и usergroups.
А что касается конкретно плагина keywords, то в админке: "Настройка - Группы пользователей - Разрешить установки поля "Добавить ключевые слова"" настраивается разрешение/запрет показа в режиме добавления/редактирования контейнера "Добавить ключевые слова" из функции keywords_AddEdit() плагина keywords.php:
<fieldset id="add_keywords">
...
</fieldset>Данная функция, в свою очередь, запускается экшенами "new-advanced-options" и "edit-advanced-options" в режиме добавления/редактирования новостей.
Вот начало фрагмента кода из inc/mod/usergroups.mdu, который формирует этот список:
<td><b><?=t('Права на поля в добавить/редактировать новость'); ?></b>
<?
preg_match_all('/fieldset id="(.*?)"><legend>(.*?)<\/legend>/i', run_actions('new-advanced-options'), $fields['new']);
preg_match_all('/fieldset id="(.*?)"><legend>(.*?)<\/legend>/i', run_actions('edit-advanced-options'), $fields['edit']);
$fields[1] = array_merge($fields['new'][1], $fields['edit'][1]);
$fields[1] = array_unique($fields[1]);
$fields[2] = array_merge($fields['new'][2], $fields['edit'][2]);
$fields[2] = array_unique($fields[2]);
unset($fields[0], $fields['new'], $fields['edit']);
foreach ($fields[2] as $k => $field){
?>
и так далее...И всё, и никаких секретов!
cmd и Zomb1e, проверка как раз есть. Проверяется, какой именно плагин запущен в админке:
if ($_GET['plugin'] == 'keywords'){Постараюсь объяснить по-русски.
Когда активизируется любой экшн, например "plugins", то админка проверяет все функции, описанные в этом экшене, например:
add_action('plugins', 'keywords_CheckAdminOptions');
add_action('plugins', 'adepto_CheckAdminOptions');
add_action('plugins', 'xfields_CheckAdminOptions');
и так далее - все включенные плагины, в которых есть экшн "plugins"
Дело в том, что процедуре run_action('plugins'); совершенно пофигу какая именно нам функция нужна, она запускает их все по признаку экшена. Поэтому строка:
if ($_GET['plugin'] == 'имя_плагина'){определяет - какой плагин запущен из командной строки, то есть в каком именно плагине мы в данный момент работаем. Остальные функции не сработают.
cmd, теперь "читаем" ваш фрагмент полностью:
function keywords_CheckAdminOptions(){
//если работаем в плагине "keywords"
if ($_GET['plugin'] == 'keywords'){
//то, если включен экшн "add"
if ($_GET['action'] == 'add'){
keywords_ajax_add(); //запустить эту функцию
//иначе, если включен экшн "remove"
} elseif ($_GET['action'] == 'remove'){
keywords_ajax_remove(); //запустить эту функцию
}
}
}поскольку экшены "add" и "remove" есть и в других плагинах, то первая строка проверки очень даже полезна.
Лирическое отступление. В плагинах существует общий принцип именования функций:
Функции с суффиксом _CheckAdminOptions - это определение того, в каком плагине мы работаем
_AddToOptions - доступ к настройкам плагина в меню "Настройки"
_AdminOptions - сама функция обработки настроек
и т.д.
mixerden, варианты:
1. В таблице стилей (фрагмент):
<style>
table.excel {
border-style:ridge;
border-width:1;
border-color:#808080;
border-collapse:collapse;
font-family:sans-serif;
font-size:10pt;
width:100%;
}замените в параметре width значение 100% на нужную вам ширину.
2. Выводите функцию excel_view в контейнере с заданной шириной, например:
<div style="width:450px">
<? excel_view('sample.xls'); ?>
</div>Turned,
<link><?=htmlspecialchars('http://www.название_сайта.ru/index2.php?id='.$tpl['post']['id']); ?></link>Amdi, вот здесь пост #30.
{rule=1.2.}
olafsen, попробуйте заменить в коде функцию strtoupper на mb_strtoupper (посмотрите в справочнике, как выглядят параметры mb_strtoupper). Если получится, то, скорее всего, версия php здесь не причём, виновата локаль. Для определения правильной локали вашего хоста поищите по слову "setlocale*" в форуме (без кавычек, естественно).
olafsen, а что здесь неясного? Функция mysql_list_tables() устарела и в версии php 5.3.1 не используется. Поищите в гугле или в Яндексе как с этим бороться.
Но есть более дельный совет: один хрен "родной" бэкапер от Strawberry - отстой, лучше пользуйтесь каким-нибудь "сторонним" дампером. Вот например, Sypex Dumper - отличная вещь.
yukon,
$cat = str_replace(' ', '', $_GET['cat']); //Удаляем все пробелы из $_GET['cat']
$cat_m = explode(",", $cat); //Делаем из результата массивStrawberry форум » Сообщения от ANT-Soft