Koobi 5.x Fixies
Кривое отображение
кодировки русского языка Жанров и Названий Игр в разделе Игры
Открывай admin/cheats.php и ищи:
$CheatTitle = htmlentities($_REQUEST['CheatTitle']);
заменяй на:
$CheatTitle = $_REQUEST['CheatTitle'];
опять ищи:
$CheatTitle =
htmlentities($_REQUEST['CheatTitle']);
заменяй на:
$CheatTitle
= $_REQUEST['CheatTitle'];
ищи:
CheatTitle =
'".htmlentities($_POST['CheatTitle'][$CheatId])."'
заменяй на:
CheatTitle = '".$_POST['CheatTitle'][$CheatId]."'
Thanks
Censsored
Где отключить лимит
разделов на странице галереи.
После создания 10 разделов появляется 2-я
страница, а мне так не надо...
Будем работать с
файлом inc\functions.php, так что иди в него
1) Есть такая функция
limit называется, она возвращает значение в переменную $limit и вызывается
везде, где нужно...вот она....в этом условии, если пользователь не указал
количество элементов на странице, по умолчанию выводится 10 (последняя цифра)
вот и измени ее на сколько тебе надо, например на 100
function
limit()
{
$limit = ($_REQUEST['pp'] != '') ?
$_REQUEST['pp'] : 10 ;
return $limit;
}
2) Второй вариант, в этом же файле можешь просто перейти
вот к такой функции
function getGallery2($id, $area, $active,
$orderby, $ascdesc, $sorting = "0")
чуть ниже нее (примерно строк
50) будет вот это
$limit = limit(); и это ты можеш заменить
на это
$limit = 40; ну или 100 поставить....т.е. ты не
привязываешь возвращаемое значение функции limit, а указываеш конкретное
значение...
Thanks Arcanum
Прямой порядок
сортировки галерей
Заходи в папку inc\functions.php
ищи там function getGallery2 , в ней
switch
($_REQUEST['ascdesc']) {
case "asc": $ascdesc =
"ASC";
break;
case "desc": $ascdesc = "DESC";
break;
default : $ascdesc =
"DESC";
break;
}
и вот это default : $ascdesc = "DESC"; меняй на
это default : $ascdesc = "ASC";
Thanks Arcanum
Корректное отображение
новых тем форума на главной странице
Проблема легко решаема, странно, что сохранилась в последних
версиях Koobi.
Смотрим на файлик, отвечающий за вывод половины главной
страницы, находящийся в
templates/standart/start/startpage.tpl
Находим вывод
форумов:
{lastthreads forums='1,2,3,4,5'
limit='5'}
...которая говорит нам, что собирается показывать вместо себя
новые темы из фидов № 1,2,3,4,5, количеством не более 5 штук.
Для
коректного вывода всех последних тем из всех фидов, смотрим на собственно,
последний номер фида, вот стандартная ссылка с указанием
номера:
http://www.overdoze.ru/index.php?p=showforum&fid=10&area=1
...где мы видим фид №10.
Следовательно, правленная строка
корректного вывода последниз тем форума выглядит так:
{lastthreads forums='1,2,3,4,5,6,7,8,9,10' limit='Х'}
...где Х
- значения количества показываемых тем, принимает значения от 1 до разумного
предела.
Помните, что темы 11-го фида эта строка показывать не будет, а
конструкция вида lastthreads forums='1-10' не
работает.
Thanks Master Daemon
Корректный перенос
Кооби-сайта с Денвера в паблик.
Бесспорно, кроме тестирования, удобно было бы использовать
Денвер в качестве подготовки сайта к выкладке в сеть - набил полезной инфой,
статьями, файлами и новостями, заточил дезигн и слил в сетку.
Все было
бы здорово, но сделать это корректно не у всех получается, а многие вообще не
представляют себе такой возможности.
Однако, вопрос оказывается довольно
простым и быстрым.
В дистрибутивах Koobi 5.x, любезно предоставленныx
Censsored-ом на тестирование, в корне системы лежит чудесный инструмент -
dumper.php, вот он-то и пригодится нам для переноса готовой базы на веб. У
кого его нет, возьмите дистрибутив из нашего каталога.
Порядок
действия.
1. убеждаемся, что на Денвере все работает и нас
устраивает.
2. сливаем весь проект в сеть, не забывая о том, что
предельной вверх папкой для нас на веб сервере скорее всего будут www или htpd,
следовательно, сливаем только те файлы и папки, что лежат на нашем Денвере
под www.
3. запускаем на Денвере из папки проекта (www)
dumper.php, логинимся (для Денвера обычно root без пароля) и просим сохранить
архив с базой нашего проекта.
Не все хостинги понимают gz архивирование,
определяется это опытным путем, и если вы не знаете ситуации с вашим, стоит
сделать два варианта архива базы - с сжатием и без, это занимает не более пары
минут.
4. копируем папочку backup, созданную dumper-ом в корне
нашего проекта на веб.
5. создаем базу даных нашего вебсайта
средствами PHP My Admin или показываем свою крутость через командную
строку.
не забываем на вебе
поправить в /inc/config.php значения следующих переменных:
$dbhost = "localhost";
$dbuser = "твое имя пользователя MySQL";
$dbpass = "твой пароль";
$dbname = "имя
твоей базы";
$dbprefix = "kpro"; (или другой
префикс, если менял)
6. запускаем
http://mysite/dumper.php , вписываем соответствующие логин\пароль к базе, на
следующей странице восстанавливаем нашу проектную базу из скопированного архива.
7. проверяем...
P.S. Если на вебе съехала и потерялась кодировка
таблиц, сравниваем Денверовую и вебовую базы на предмет кодировочек, скорее
всего проблема в них.
Если это не помогло и базы идентичны, смотрите этот
ФАК, тут есть лекарство...
Thanks Master Daemon
MOD REWRITE и слэши в
Koobi
Для слэшей.
В index.php (для Downloads):
ищем:
$prepage =
preg_replace("/index.php()p=downloads&categ=([0-9]*)&area=([0-9]*)/",
"downloadrub,\\2,\\3.htm",$prepage);
$prepage =
preg_replace("/index.php()categ=([0-9]*)&parent=([0-9]*)&p=downloads&area=([0-9]*)/",
"downloads,\\2,\\3,\\4.htm",$prepage);
$prepage =
preg_replace(array("/index.php()p=downloads&area=([0-9]*)/","/index.php()area=([0-9]*)&p=downloads/"),
"downloads,\\2.htm", $prepage);
меняем на:
$prepage =
preg_replace("/index.php()p=downloads&categ=([0-9]*)&area=([0-9]*)/",
"downloadrub/\\2/\\3.htm",$prepage);
$prepage =
preg_replace("/index.php()categ=([0-9]*)&parent=([0-9]*)&p=downloads&area=([0-9]*)/",
"downloads/\\2/\\3/\\4.htm",$prepage);
$prepage =
preg_replace(array("/index.php()p=downloads&area=([0-9]*)/","/index.php()area=([0-9]*)&p=downloads/"),
"downloads/\\2.htm", $prepage);
Для этого же в
.htaccess:
RewriteRule ^downloads,([0-9]+).htm$
index.php?p=downloads&area=$1
RewriteRule ^downloads,([0-9]+),print.htm$
index.php?p=downloads&area=$1&print=1
RewriteRule
^downloads,([0-9]+),([0-9]+),([0-9]+).htm$
index.php?categ=$1&parent=$2&p=downloads&area=$3
RewriteRule
^downloads,([0-9]+),([0-9]+),([0-9]+),print.htm$
index.php?categ=$1&parent=$2&p=downloads&area=$3&print=1
RewriteRule ^downloadrub,([0-9]+),([0-9]+).htm$
index.php?p=downloads&categ=$1&area=$2
RewriteRule
^downloadrub,([0-9]+),([0-9]+),print.htm$
index.php?p=downloads&categ=$1&area=$2&print=1
RewriteRule
^downloadfile,([0-9]+),([0-9]+),([0-9]+).htm$
index.php?showfile=1&fid=$1&p=downloads&area=$2&categ=$3
RewriteRule ^downloadfile,([0-9]+),([0-9]+),([0-9]+),print.htm$
index.php?showfile=1&fid=$1&p=downloads&area=$2&categ=$3&print=1
RewriteRule ^downloadsort,(.*),([0-9]+),([0-9]+),(.*),([0-9]+),([0-9]+).htm$
index.php?sort=$1&pp=$2&categ=$3&parent=$4&p=downloads&area=$5&page=$6
RewriteRule
^downloadsort,(.*),([0-9]+),([0-9]+),(.*),([0-9]+),([0-9]+),print.htm$
index.php?sort=$1&pp=$2&categ=$3&parent=$4&p=downloads&area=$5&page=$6&print=1
RewriteRule ^downloadsort,([0-9]+),(.*),([0-9]+),(.*),([0-9]+).htm$
index.php?pp=$1&sort=$2&categ=$3&parent=$4&p=downloads&area=$5
RewriteRule ^downloadsort,([0-9]+),(.*),([0-9]+),(.*),([0-9]+),print.htm$
index.php?pp=$1&sort=$2&categ=$3&parent=$4&p=downloads&area=$5&print=1
RewriteRule ^download_rub_([0-9]+)_([0-9]+)_([0-9]+).htm$
index.php?nav=sub&p=downloads&categ=$1&area=$2&parent=$3
RewriteRule ^download_rub_([0-9]+)_([0-9]+)_([0-9]+),print.htm$
index.php?nav=sub&p=downloads&categ=$1&area=$2&parent=$3&print=1
меняем
на:
RewriteRule
^downloads/([0-9]+).htm$ index.php?p=downloads&area=$1
RewriteRule
^downloads/([0-9]+)/print.htm$ index.php?p=downloads&area=$1&print=1
RewriteRule ^downloads/([0-9]+)/([0-9]+)/([0-9]+).htm$
index.php?categ=$1&parent=$2&p=downloads&area=$3
RewriteRule
^downloads/([0-9]+)/([0-9]+)/([0-9]+)/print.htm$
index.php?categ=$1&parent=$2&p=downloads&area=$3&print=1
RewriteRule ^downloadrub/([0-9]+)/([0-9]+).htm$
index.php?p=downloads&categ=$1&area=$2
RewriteRule
^downloadrub/([0-9]+)/([0-9]+)/print.htm$
index.php?p=downloads&categ=$1&area=$2&print=1
RewriteRule
^downloadfile/([0-9]+)/([0-9]+)/([0-9]+).htm$
index.php?showfile=1&fid=$1&p=downloads&area=$2&categ=$3
RewriteRule ^downloadfile/([0-9]+)/([0-9]+)/([0-9]+)/print.htm$
index.php?showfile=1&fid=$1&p=downloads&area=$2&categ=$3&print=1
RewriteRule ^downloadsort/(.*)/([0-9]+)/([0-9]+)/(.*)/([0-9]+)/([0-9]+).htm$
index.php?sort=$1&pp=$2&categ=$3&parent=$4&p=downloads&area=$5&page=$6
RewriteRule
^downloadsort/(.*)/([0-9]+)/([0-9]+)/(.*)/([0-9]+)/([0-9]+)/print.htm$
index.php?sort=$1&pp=$2&categ=$3&parent=$4&p=downloads&area=$5&page=$6&print=1
RewriteRule ^downloadsort/([0-9]+)/(.*)/([0-9]+)/(.*)/([0-9]+).htm$
index.php?pp=$1&sort=$2&categ=$3&parent=$4&p=downloads&area=$5
RewriteRule ^downloadsort/([0-9]+)/(.*)/([0-9]+)/(.*)/([0-9]+)/print.htm$
index.php?pp=$1&sort=$2&categ=$3&parent=$4&p=downloads&area=$5&print=1
RewriteRule ^download_rub_([0-9]+)_([0-9]+)_([0-9]+).htm$
index.php?nav=sub&p=downloads&categ=$1&area=$2&parent=$3
RewriteRule ^download_rub_([0-9]+)_([0-9]+)_([0-9]+)/print.htm$
index.php?nav=sub&p=downloads&categ=$1&area=$2&parent=$3&print=1
После
этого, все работать будет, но изображения отображаться
не будут и ссылки будут неправильные.
Тогда плюс к этому (только для
слэшей) надо в шаблоне (если ничего не менял, то по-умолчанию для Downloads
используется - templates/название/page/main_template.tpl) после <HEAD>
поставить <BASE HREF="http://www.адрествоегосайта.ru">
По аналогии
с этим, так же поступаем и с другими ссылками...
Thanks
Censsored
Проблемы с
регистрацией админа и пользователей после установки движка
В случае слета крыши в базе данных, после первой установки с
одним единственным пользователем\администратором, Кооби случется больше никого
не пускает.
Более того, двиг бодро отправляет новый пароль на указанный
почтовый ящик, но это не помогает - залогинится с новым паролем
нельзя.
Замечено на 5.4 и 5.6 версиях.
Порядок превентивных
действий:
После установки девственного скрипта, надо
завести дополнительный админский аккаунт и настривать КООБИ из-под него.
После создания основных разделов и тп, дампим базу на всякий случай, затем
логинимся 12345@12345.ru и переписываем сензореда на себя.
Сохраняемся,
корректно выходим, сносим кукушки, ребутим апач или тачку, запускаемся - входим
с новым Главным Админским Логином без проблем.
Желательно добавить еще
пару админов со известными e-mail'ами и паролями, потому что, возможно база
слетает по причине единственного пользовтеля.
На базах с количеством
пользователей больше трех подобныхслетов не наблюдалось.
Также при
установке Кооби внимательно отнеситесь к полю "Запрещенные e-mail" в настройках
скрипта, вернее, пропустите этот пункт не трогая - пи отсутствии конкретного
почтового домена, пользователи не смогут зарегистрироваться на вашем сайте. И
после выхода и сброса кукушек, Кооби вас обратно не путстит совсем.
Thanks Master Daemon & Censsored
Пропадающие картинки
товаров и галерей
Заходим в Админку.
Смотрим раздел
Главная.
Если внизу стоит: "SAFE_MODE : Включено" - то все вопросы к
Хостеру (есть ли возможность включить для твоего сайта).
Если хостер не
включает - вырезать кэширование графики.
Если там "SAFE_MODE :
Отключено" - то проверять права на папку /cache/ (должны быть
777)
Thanks Censsored
Как избавиться от
всплывающих окон при добавлении товара в корзину - нужно чтобы товар просто
добавлялся в корзину, без всяких вопросов и предложений.
Попробуй в
/class/ShopBasket.Class.php
$t =
$this->_lang['shop_tobasket_ok'];
$t_r = str_replace("__URLBASKET__",
"index.php?p=shop&action=showbasket&area=$area", $t);
$t_r =
str_replace("__URLSHOP__", "index.php?p=shop&area=$area", $t_r);
$t_r = str_replace("__URLBACK__", $_REQUEST['redir'], $t_r);
$x =
msg("shop", $this->_lang['shop_tobasket_ok_short'], $t_r,
"index.php?p=shop&action=showbasket&area=$area" ,1,15);
define("EOUT", $x);
define("NOOUT",
1);
поменять на этот:
$t_rrrrr = $_REQUEST['redir'];
header("Location:$t_rrrrr");
Thanks
Censsored
При оформлении заказа
на шаге №3 появляется Соглашение с условиями магазина - которые подтвердили еще
при регистрации. как-то нужно убрать.
Открываем:
templates/шаблон/shop/paycheck.tpl
Надо вырезать
это:
<script language="JavaScript"
type="text/javascript">
function checkf(){ldelim}
if(document.f.abg_accept.checked!='1'){ldelim}alert("{$lang.shop_noagb}");return
false;{rdelim}
{rdelim}
</script>
и
это:
<table width="100%" border="0"
cellpadding="3" cellspacing="1" class="box_inner">
<tr>
<td
class="box_innerhead">{$lang.shop_agbtitle}</td>
</tr>
<tr>
<td valign="top" class="row_second">
<div
id="sagb" class="agb_container_payment"
style="padding:5px;line-height:1.4em">{$agb_shop}</div>
</td>
</tr>
</table>
А
это:
<input name="abg_accept" type="checkbox"
value="1" {if $smarty.request.accept_agb==1}checked="checked"{/if} />
{$lang.shop_accept_agb} <a
href="javascript:drucke('sagb','{$theme}');">{$lang.shop_agbprint}</a>
поменять на это:
<input
name="abg_accept" type="hidden" value="1">
И
вместо этого:
<form action="index.php"
method="post" name="f" id="f" onSubmit="return
checkf();">
Это:
<form action="index.php" method="post" name="f"
id="f">
Thanks
Censsored
B 5.6 PRO вот список изменений в
rss/index.php
Меняем:
$rss = "<?xml
version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n";
на:
$rss = "<?xml version=\"1.0\" encoding=\"windows-1251\"
?>\n";
и убираем дополнительное палево:
$rss .= " <title>Powered by
Koobi</title>\n";
меняем на:
$rss .=
" <title>Powered by MySite
Name</title>\n";
Thanks MegaLitr
Kак сделать так, чтоб
при нажатии на тумб, открывалась только картинка, а не страничка, а в ней
увеличенная картинка.
Открывай templates/шаблон/shop/results.tpl
и это:
<a
href="javascript:popex('index.php?p=shopimage&do=shopimage&image={$file->icon}&w={$file->width}&h={$file->height}','','{$file->height}','{$file->width}','0','1','1','0');">
меняем на это:
<a
href="index.php?p=shopimage&do=shopimage&image={$file->icon|urlencode}"
target="_blank">
или лучше на
это:
<a
href="/uploads/shop/icons/{$file->icon|urlencode}"
target="_blank">
Thanks Censsored
Некорректное
отображение даты в новостях на русском языке
После русификации, может неправильно
отображаться дата в новостях, на главной странице (не на русском)
Вот Fix на
этот баг.
Добавляем русскую локаль в .../root/inc/init.php:
после
@setlocale(LC_TIME, "$lct");
строку
if(LANG=="ru")
@setlocale (LC_ALL, 'ru_RU.CP1251', 'ru');
P.S. Koobi 5.4 Standart 190
строка, Koobi 5.4 Pro 184 строка
Чтобы дни недли на главной
странице в мини календаре были не "По, Вт, Ср, Че, Пя, Су, Во" а "Пн, Вт, Ср,
Чт, Пт, Сб, Вс" то надо:
1) Правите файл Calendar.Class.php в папке
class. Правите массив переменных на русский язык.
Добавляете еще
переменную (я обозвал $dayNamesTrunc)
var $dayNamesTrunc =
array("Вс.","Пн.","Вт.","Ср.","Чт.","Пт.","Сб.");
2) Далее нужно
продублировать функцию отвечающую за сортировку дней недели для конкретного
месяца.
// TAGE ARRAY
$tmpl->assign('DayNamesTruncArray',
array($this->dayNamesTrunc[($this->startDay)%7],
$this->dayNamesTrunc[($this->startDay+1)%7],
$this->dayNamesTrunc[($this->startDay+2)%7],
$this->dayNamesTrunc[($this->startDay+3)%7],
$this->dayNamesTrunc[($this->startDay+4)%7],
$this->dayNamesTrunc[($this->startDay+5)%7],
$this->dayNamesTrunc[($this->startDay+6)%7])
);
3)Правим в темлейтах в папке календарь файлы: calendar_small.tpl,
calendar_small_prev_next.tpl, calendar_small_years.tpl.
{foreach
from=$DayNamesTruncArray item=day}
<td title="{$day}"
class="calendarHeader">
{$day}
В startpage.tpl:
{showcheats show='top' show='5'}
<br />
{showcheats show='new'
show='5'}
<br />
Меняем на:
{showcheats show1='top'
show='5'}
<br />
{showcheats show1='new' show='5'}
<br
/>
в Func.Cheats.php:
if($param['show1'] == 'top')
{
$tmpl->assign('top_cheats', $the_cheats);
$cheats =
$tmpl->fetch('topcheats.tpl');
Thanks Koobshik
Решение некоторых
проблем с форумом
Открываем system/userlist.php и после
строки:
if(!checkactive('user'))
include(dirname(__FILE__)."/lib/notactive.php" );
вставляем строку:
include_once(BASEDIR . "/functions/Func.Forums.php" );
кроме
того, открываем admin/init.php и после
строки:
require_once(BASEDIR."/inc/init.php");
вставляем:
require_once(BASEDIR."/functions/Func.Forums.php");
Thanks
Censsored
Вывод новостей на
главной по категориям
ля добавления в куби функции вывода новостей
и статей по категориям добавляем:
в /class/tpl/koobi.class.php после строки
$this->register_function('lastthreads', 'getLastForumPosts');
вот
это:
$this->register_function('newspokat',
'getNewsPoKat');
$this->register_function('articliespokat',
'getStatiiPoKat');
и в functions.php перед
function krand($min, $max)
//
========================================================
// <<--
Novosti blokami po kategoriam -->>
// naprimer: {lastthreads
KatId='1,2,3,4,5' limit='5' zag='Kakoeto nazvanie'}
//
========================================================
function
getNewsPoKat($param)
{
global $db,$THEME,$area;
$last_threads = array();
$tmpl = new
Koobi("templates/");
$fids = str_replace(",", ' OR newscat =
', $param['KatId']);
$sql = $db->Query("
SELECT
newsid,
title,
text
FROM " . PREFIX . "_news WHERE newscat
=".$fids." AND area_id = ".$area." AND ispublic = 1 order by newsid desc LIMIT "
. $param['limit']);//catname = `".$fids."`
$i = 0;
while ($row = $sql->fetchrow()) {
$last_threads[$i]['text'] = $row->text;
$last_threads[$i]['title'] = $row->title;
$last_threads[$i]['links'] =
"index.php?area=".$area."&p=news&newsid=".$row->newsid."";
$i++;
}
$tmpl->assign('zagolovok', $param['zag']);
$tmpl->assign('theme', $THEME);
$tmpl->assign('last_news_array', $last_threads);
$newspokat
= $tmpl->fetch("$THEME/news/newspokat.tpl");
return $newspokat;
}
//
========================================================
// <<--
Cmambu blokami po kategoriam -->>
// naprimer: {lastthreads
KatId='1,2,3,4,5' limit='5' zag='Kakoeto nazvanie'}
//
========================================================
function
getStatiiPoKat($param)
{
global $db,$THEME,$area;
$last_threads = array();
$tmpl = new
Koobi("templates/");
$fids = str_replace(",", ' OR articlecat
= ', $param['KatId']);
$sql = $db->Query("
SELECT
id,
title,
content,
inline_screens,
type
FROM " . PREFIX . "_articles WHERE articlecat
=".$fids." AND area = ".$area." AND active = 1 order by id desc LIMIT " .
$param['limit']);//catname = `".$fids."`
$i = 0;
while ($row = $sql->fetchrow()) {
$ishot = '0';
if(($row->inline_screens)!=("a:0:{}"))
{
$ishot = '1';
}else{
$ishot = '0';
}
$text = $row->content;
$text =
inlinescreens($row->inline_screens,$text);
$last_threads[$i]['ishot'] = $ishot;
$last_threads[$i]['text'] = $text;
$last_threads[$i]['title'] = $row->title;
$last_threads[$i]['links'] =
"index.php?type=".$row->type."&area=".$area."&p=articles&id=".$row->id."";
$i++;
}
$tmpl->assign('zagolovok', $param['zag']);
$tmpl->assign('theme', $THEME);
$tmpl->assign('last_statii_array', $last_threads);
$articliespokat = $tmpl->fetch("$THEME/articles/articlspokat.tpl");
return $articliespokat;
}
после этого в startpage.tpl достаточно добавить в нужном месте
{ articliespokat KatId='5,6' limit='3'
zag='заголовок' }
еще понадобится файл
templatename/articles/articlspokat.tpl от 5+ вот такого
содержания
{if $last_statii_array}
<table
width="100%" border="0" cellpadding="3" cellspacing="1" class="box_inner">
{foreach from=$last_statii_array item=laststatii}
<tr>
<td>
<div
class="inforel"><strong>{$laststatii.title}</strong></div>
{if $laststatii.ishot != '0'}
<div class="intro"
align="justify">{$laststatii.text|truncate:600}</div>
{else}
<div class="intro"
align="justify">{$laststatii.text|truncate:200}</div>
<div
align="right"><a
href="{$laststatii.links}">Подробнее</a></div>
</div>
<div class="news_spacer"></div>
{/if}
</td>
</tr>
{/foreach}
</table>
<br />
{/if}
Thanks MegaLitr
Вывод новостей по
категориям часть 2
Код рабочий - 100%
Смотри все внимательно, не торопи события проделай еще раз:
1) В папке articles, создай файл articlspokat.tpl и в него вставь
указанный код
{if $last_statii_array}
<table
width="100%" border="0" cellpadding="3" cellspacing="1" class="box_inner">
{foreach from=$last_statii_array item=laststatii}
<tr>
<td>
<div
class="inforel"><strong>{$laststatii.title}</strong></div>
{if $laststatii.ishot != '0'}
<div class="intro"
align="justify">{$laststatii.text|truncate:600}</div>
{else}
<div class="intro"
align="justify">{$laststatii.text|truncate:200}</div>
<div
align="right"><a
href="{$laststatii.links}">Подробнее</a></div>
</div>
<div class="news_spacer"></div>
{/if}
</td>
</tr>
{/foreach}
</table>
<br />
{/if}
2) В файле inc\functions.php после <?php
!!!
обрати внимание, что я изменил название функции!!!
вставляй вот
это
function artpokat($param)
{
global $db,$THEME,$area;
$last_threads = array();
$tmpl = new Koobi("templates/");
$fids = str_replace(",", ' OR articlecat = ', $param['KatId']);
$sql = $db->Query("
SELECT
id,
title,
content,
inline_screens,
type
FROM " . PREFIX . "_articles
WHERE articlecat =".$fids." AND area = ".$area." AND active = 1 order by id desc
LIMIT " . $param['limit']);//catname = `".$fids."`
$i = 0;
while ($row =
$sql->fetchrow()) {
$ishot = '0';
if(($row->inline_screens)!=("a:0:{}"))
{
$ishot = '1';
}else{
$ishot = '0';
}
$text = $row->content;
$text = inlinescreens($row->inline_screens,$text);
$last_threads[$i]['ishot'] = $ishot;
$last_threads[$i]['text'] = $text;
$last_threads[$i]['title'] = $row->title;
$last_threads[$i]['links'] =
"index.php?type=".$row->type."&area=".$area."&p=articles&id=".$row->id."";
$i++;
}
$tmpl->assign('zagolovok',
$param['zag']);
$tmpl->assign('theme',
$THEME);
$tmpl->assign('last_statii_array',
$last_threads);
$articliespokat =
$tmpl->fetch("$THEME/articles/articlspokat.tpl");
return $articliespokat;
}
3) в
обоих файлах class\Koobi.Class и class\tpl\Koobi.Class в любом месте среди
строчек где перечисляется регистрация функций пропиши
$this->register_function('artpokat', 'artpokat');
4) Все, теперь в файле startpage.tpl впиши вот это
{ artpokat KatId='3,4' limit='2' zag='заголовок' }
Обрати внимание, какой категории статей соотвотствует значение
поля articlecat в базе в таблице articles. У меня лично есть 3 категории
"Категория1" "Категория2" "Категория3" и по данному запросу функция выводит
статьи из категорий 2 и 3......Видишь в чем разница.....Категория создана
третьей по счету, а значение у нее 4!!!!!
Thanks Arcanum
Вывод новостей по
категориям часть 3
Цитата:
1) В папке articles, создай файл
articlspokat.tpl и в него вставь указанный код {if
$last_statii_array} <table width="100%" border="0"
cellpadding="3" cellspacing="1" class="box_inner"> {foreach
from=$last_statii_array item=laststatii} <tr>
<td> <div
class="inforel"><strong>{$laststatii.title}</strong></div>
{if $laststatii.ishot != '0'} <div class="intro"
align="justify">{$laststatii.text|truncate:600}</div>
{else} <div class="intro"
align="justify">{$laststatii.text|truncate:200}</div>
<div align="right"><a
href="{$laststatii.links}">Подробнее</a></div>
</div> <div class="news_spacer"></div>
{/if} </td> </tr>
{/foreach} </table> <br />
{/if} |
Давай... Вот мой
шаблон, переделанный уже под мои нужды:
{if $last_statii_array}
{foreach from=$last_statii_array item=laststatii}
<br>
<span
class="red">{$laststatii.time_start|date_format:"%d.%m.%Y"}</span>
<br>
{$laststatii.title}
<br><br>
{/foreach}
{/if}
Цитата:
2) В файле inc\functions.php после <?php
!!! обрати внимание, что я изменил название функции!!!
вставляй вот это function
artpokat($param) { global
$db,$THEME,$area; $last_threads = array();
$tmpl = new Koobi("templates/");
$fids = str_replace(",", ' OR articlecat = ', $param['KatId']);
$sql = $db->Query("
SELECT
id,
title,
content,
inline_screens,
type
FROM " . PREFIX . "_articles WHERE
articlecat =".$fids." AND area = ".$area." AND active = 1 order by id desc
LIMIT " . $param['limit']);//catname = `".$fids."`
$i = 0; while ($row
= $sql->fetchrow()) {
$ishot = '0';
if(($row->inline_screens)!=("a:0:{}"))
{
$ishot = '1';
}else{
$ishot = '0';
}
$text =
$row->content;
$text = inlinescreens($row->inline_screens,$text);
$last_threads[$i]['ishot'] = $ishot;
$last_threads[$i]['text'] = $text;
$last_threads[$i]['title'] = $row->title;
$last_threads[$i]['links'] =
"index.php?type=".$row->type."&area=".$area."&p=articles&id=".$row->id."";
$i++; }
$tmpl->assign('zagolovok',
$param['zag']);
$tmpl->assign('theme', $THEME);
$tmpl->assign('last_statii_array', $last_threads);
$articliespokat =
$tmpl->fetch("$THEME/articles/articlspokat.tpl");
return $articliespokat; }
|
Да без разницы, как ты функцию назовёшь.
Вставил. Предыдущие функции, что ты давал, удалил.
Цитата:
3) в обоих файлах class\Koobi.Class и
class\tpl\Koobi.Class в любом месте среди строчек где перечисляется
регистрация функций пропиши
$this->register_function('artpokat', 'artpokat');
|
Поменял старые две на эту одну.
Цитата:
4) Все, теперь в файле startpage.tpl
впиши вот это { artpokat KatId='3,4' limit='2'
zag='заголовок' } Обрати внимание, какой категории статей
соотвотствует значение поля articlecat в базе в таблице articles. У меня
лично есть 3 категории "Категория1" "Категория2" "Категория3" и по данному
запросу функция выводит статьи из категорий 2 и 3......Видишь в чем
разница.....Категория создана третьей по счету, а значение у нее
4!!!!! |
Зачем так сложно, ID
категории сразу видно, если в админке зайдёшь в категории статей и посмотришь
ссылку на категорию. В моём случае - это index.php?p=articles&categ=2
Категория 2.
Значится так. Мне в startpage.tpl это совсем не
нужно, там у меня выводятся, как и положено последние 10 новостей сайта. А
названия статей этой категории мне нужно выводить на всех страницах сайта,
включая и главную, в небольшом блоке в левой части сайта. Для этого блока у меня
создан специальный темплейт other/reviews.tpl. Этот темплейт подгружается в
main_template инклюдом. Вот в этот темплейт и я вставил {artpokat KatId='2'
limit='5'}.
Тмплейт приобрёл такой вид:
<table
width="279" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="32" class="box_left3">
<img src="{$img_folder}/bg3.gif" alt="" width="32"
height="4"></td>
<td class="boxText3"><br>
<span class="boxTitle1">{$lang.reviews}</span>
<br>
<br>
{artpokat KatId='2' limit='5'}
<div
align="right"><img src="{$img_folder}/punkt1.gif" alt="" width="10"
height="6"><span class="more"><a
href="index.php?area=2&p=articles&categ=2"
class="A1">{$lang.reviews_all}</a> </span></div></td>
<td width="28"
class="box_right4"><img src="{$img_folder}/bg5.gif" alt="" width="42"
height="9"></td>
</tr>
</table>
Проверил, в этом варианте вроде заработало, спасибо. Тока пришлось
несколько изменить функцию, чтобы дата публикации выводилась тоже. По дефолту
там не было вывода даты.
Переделанная функция будет выглядеть так:
function artpokat($param)
{
global $db,$THEME,$area;
$last_threads = array();
$tmpl = new Koobi("templates/");
$fids = str_replace(",", ' OR articlecat = ', $param['KatId']);
$sql = $db->Query("
SELECT
id,
title,
content,
inline_screens,
type,
time_start
FROM " . PREFIX . "_articles WHERE
articlecat =".$fids." AND area = ".$area." AND active = 1 order by id desc LIMIT
" . $param['limit']);//catname = `".$fids."`
$i = 0;
while ($row = $sql->fetchrow()) {
$ishot = '0';
if(($row->inline_screens)!=("a:0:{}"))
{
$ishot = '1';
}else{
$ishot =
'0';
}
$text =
$row->content;
$text = inlinescreens($row->inline_screens,$text);
$last_threads[$i]['ishot'] =
$ishot;
$last_threads[$i]['text'] =
$text;
$last_threads[$i]['title'] =
$row->title;
$last_threads[$i]['links']
=
"index.php?type=".$row->type."&area=".$area."&p=articles&id=".$row->id."";
$last_threads[$i]['time_start']
= $row->time_start;
$i++;
}
$tmpl->assign('zagolovok', $param['zag']);
$tmpl->assign('theme', $THEME);
$tmpl->assign('last_statii_array', $last_threads);
$articliespokat = $tmpl->fetch("$THEME/articles/articlspokat.tpl");
return $articliespokat;
}
А выводить дату будем так:
{$laststatii.time_start|date_format:"%d.%m.%Y"}
Thanks Leroest
Ошибка при удалении
форумов
При удалении какого-либо форума
Fatal
error: Call to undefined function deleteForum() in
/home/kalinaf/public_html/admin/forum.php on line 778
и не
удаляет... Пытаюсь этот форум дезактивировать... пишет:
Fatal error: Call to undefined function switchForumStatus() in
/home/kalinaf/public_html/admin/forum.php on line 857
Чего оно
хочет? Что за беда с этой функцией?
Вот что:
пропиши в admin/forum.php
//============================================
require_once("init.php");
require_once("../inc/filetypes.php");
сразуже после этих строк , следующее
require_once("../functions/Func.Forums.php");
Добавлено
в файле forum.php после строк
require_once("init.php");
require_once("../inc/filetypes.php");
впиши вот
это
require_once("../functions/Func.Forums.php"); и будет
тебе счастье
===========
Добавлено:
require_once ("../class/tpl/kpro.class.php");
require_once ("../class/db.php");
require_once
("../inc/functions.php");
После этих строчек добавил, не
помогло!
в начале файла есть
Код:
<?php
//============================================
// censored! [www.antichat.ru]
//============================================
if(!defined("BASEDIR")) exit;
include_once(BASEDIR .
"/functions/Func.Forums.php");
ob_start();
if
(!is_object($tmpl))
{
require_once
("../class/tpl/kpro.class.php");
require_once
("../class/db.php");
require_once
("../inc/functions.php");
$tmpl
= new Koobi("templates/" . $_GET['theme']);
}
Добавлено:
Добавил в начало файла
functions.php
Код:include_once(BASEDIR .
"/functions/Func.Forums.php");
Thanks Modja
Всем, у кого есть
проблемы с русским языком в Koobi 5.6
...а именно тестировался релиз от censored! и от
ScriptMafia делаем следующее: Проблема появляется у тех, у
кого mysql версии 4.1 1. убеждаемся что ваша DB имеет
сопоставление cp1251_general_ci
2. находим файлы
/admin/languages.php & admin/languages_admin.php
в обоих
случаях после строк:
Код:
mysql_connect($dbhost, $dbuser,
$dbpass); mysql_select_db($dbname);
| ставим свои
строки:
Код:
@mysql_query ('SET NAMES
CP1251'); @mysql_query ('SET
COLLATION_CONNECTION=CP1251_GENERAL_CI');
| 3. находим файл
classes/Database.Class.php и в нем заменяем:
Код:
function DB($host, $user,
$pass, $db) { $this->_handle = @mysql_connect($host,
$user, $pass); if(!$this->_handle) {
$this->Error('connect'); return false; }
if(!@mysql_select_db($db, $this->_handle)) {
$this->Error('selectdb'); return false; } //MySql
4.1 patch @mysql_query ('SET NAMES CP1251'); @mysql_query
('SET COLLATION_CONNECTION=CP1251_GENERAL_CI'); return
true; }
| в этом файле мы
добавили три строки:
Код:
//MySql 4.1 patch
@mysql_query ('SET NAMES CP1251'); @mysql_query ('SET
COLLATION_CONNECTION=CP1251_GENERAL_CI');
|
зы: у кого
версия ниже 5.6 еще можно подправить файлик function.php добавив три
строчки:
Код:
function sess_open($save_path,
$session_name) { global $db, $dbhost, $dbname, $dbuser,
$dbpass, $SESS_DBCONN; if (!$SESS_DBCONN =
@mysql_connect($dbhost, $dbuser, $dbpass)) { echo
"<pre>Problems while connecting to the Database. Please try
again later.</pre>"; exit; } //MySql 4.1
patch @mysql_query ('SET NAMES CP1251'); @mysql_query ('SET
COLLATION_CONNECTION=CP1251_GENERAL_CI'); return true;
}
| зы: еще в
inc/init.php находим строчку:
Код:
| @setlocale(LC_TIME, "$lct");
| и после нее добовляем: Код:
| if(LANG=="ru") @setlocale (LC_ALL,
'ru_RU.CP1251', 'ru');
| |
Thanks Nulled &
Gelfandbein |
Важно! Уязвимость
форума всех Куби начиная с 5.4
Уязвимости точно подвержены ВСЕ
версии koobi начиная с 5.4
Недостаточная обработка
переменных:
$_POST["topic"]
$_POST["subject"]
Решение:
addpost.php
$title = ( $_POST["subject"] == "" ) ? '' :
addslashes($_POST["subject"]);
Заменить на:
$title = ( $_POST["subject"]
== "" ) ? '' : htmlspecialchars($_POST["subject"], ENT_QUOTES);
addtopic.php
$title = ( $_POST["subject"] == "" ) ?
"" : $_POST["subject"];
Заменить на:
$title = ( $_POST["subject"] == ""
) ? "" : htmlspecialchars($_POST["subject"], ENT_QUOTES);
$topic =
addslashes($_POST["topic"]);
Заменить на:
$topic =
htmlspecialchars($_POST["topic"], ENT_QUOTES);
showtopic.tpl
<strong>{$topic->title|escape:'html'|sslash}</strong></td>
Заменить на:
<strong>{$topic->title}|sslash}</strong></td>
Thanks
Nulled
Не работает поиск
по-русски
Попробуй:
в inc/functions.php
это:
function strictify ($string)
{
$fixed = htmlentities($string, ENT_QUOTES);
$trans_array = array();
for ($i
= 127; $i < 255; $i++) {
$trans_array[chr($i)] = "&#" . $i . ";";
}
$really_fixed = strtr($fixed, $trans_array);
return $really_fixed;
}
заменить
на это:
function strictify ($string)
{
return strtr($string,
array('<'=>'<','>'=>'>','"'=>'"',"'"=>''','|'=>'|','+'=>'+','%'=>'%'));
}
Где взять бесплатные
шаблоны?