Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите разобраться с кодом 
V
    Опции темы
slnes
Дата 30.3.2011, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 24.6.2005

Репутация: нет
Всего: нет



Помогите разобраться в коде (обрезал что бы меньше было).
Где выводиться страница (присваивается переменная $info['scp'])  при первом входе (когда в адресной строке www.чегото.ru) ?
В данный момент при первом входе вставляется поле "pgs_text" (содержит HTML код) из БД "_DB_PGS"  где поле "pgs_id"=1
Хочу при первом входе  переменную $info['scp']=qw, т.е. вызвыть функцию qw.
Куда и что добавить в код? (может кому то он уже знаком).


Код


function callback($buffer){
  global $info;
  $buffer = eregi_replace("%TITLE%", $info['title'], $buffer);
  $buffer = eregi_replace("%CAPTION%", $info['caption'].$info['caption_postfix'], $buffer);
  $buffer = eregi_replace("%CSS%", $info['css'], $buffer);
  $buffer = eregi_replace("%SCRIPT%", $info['script'], $buffer);
  $buffer = eregi_replace("%ADMIN_MENU%", $info['admin_menu'], $buffer);
  return $buffer;
}
ob_start("callback");

session_name("session");
session_start();

$db = new DB(_DB_HOST, _DB_USER, _DB_PASS, _DB_BASE);
$db->connect();

$info = array();
$info['title'] = '';
$info['caption'] = '';
$info['caption_postfix'] = '';
$info['css'] = '';
$info['script'] = '';
$info['index'] = "(index.(asp|php|htm|html)/)?";

$info['id'] = 0;
$s = isset($_SERVER['REDIRECT_URL']) ? $_SERVER['REDIRECT_URL'] : '/';
if ($s[strlen($s)-1]!='/') $s .= '/';
$info['URL'] = $s;
$info['scp'] = '';

$info['menu']['multilevel'] = true; require "menu.php";

if (eregi("^/".$info['index']."$", $info['URL'], $regs)){
  $ShowPage = 'ShowPageMain';
  $ShowPage();
}elseif (eregi("^/search/google.html/$", $info['URL'], $regs)) {
  $info['scp'] = "Google";
}else {
  SCP();
}
if (empty($info['scp'])) $info['scp'] = 'scp404';


function ShowPageMain(){
global $db, $info;
  $res = $db->query("SELECT * FROM "._DB_MNS." WHERE mns_owner='0' ORDER BY mns_row;");
  if ($row = $db->next_row($res)){
    $s = LinkMenu2URL($row['mns_link_type'], $row['mns_link_value']);
    if (($s != '/') and ($s != '')) go2page($s);
    else $ShowPage = 'scp404';
  } else $ShowPage = 'scp404';
}


function _end_(){
  global $info;
  $info['title'] .= ". ".strip_tags($info['caption']);
  ob_end_flush();
}


function SCP(){
  global $info;
  foreach ($info['_SCP'] as $k => $v):
    if ($v()) break;
  endforeach;
}


function Setup(){
  global $info;
  foreach ($info['_SETUP'] as $k => $v):
    $v();
  endforeach;
  go2page('/');
}


function Google(){ удалил что бы кода меньше было}



$info['_STR']['404'] = array(
'Caption' => 'Ошибка 404 — страница не найдена',
'PageNotFound' => 'Страница, которую вы пытаетесь открыть, не существует',
'GoTo' => 'Перейдите ',
'MainPage' => 'на главную страницу',
'' => ''
);

if (isset($info['_STR_LANG']['404']))
  $info['_STR']['404'] += $info['_STR_LANG']['404'];


function scp404(){
  global $info;
  $info['caption'] = $info['_STR']['404']['Caption'];
?>
<p><?=$info['_STR']['404']['PageNotFound'];?>.
<p><?=$info['_STR']['404']['GoTo'];?><a href='/'><?=$info['_STR']['404']['MainPage'];?></a>.</p>
<?
}




$info['_STR']['settings'] = array(
'LanguageDB' => 'all',
'' => ''
);
if (isset($info['_STR_LANG']['settings'])) $info['_STR']['settings'] += $info['_STR_LANG']['settings'];

define("_DB_SET", _DB_PREFIX.$info['_STR']['settings']['LanguageDB'].'_'.'settings');

function SettingsGet($name){
  global $db, $info;
  $sql = "SELECT set_value FROM "._DB_SET." WHERE set_name='".dab($name)."';";
  $res = $db->query($sql);
   if ($row = $db->next_row($res)) return $row['set_value'];
   else return '';
}

function SettingsGetList($names){
  global $db, $info;
  $str = '';
  $array = array();

function SettingsGetList($names){
  global $db, $info;
  $str = '';
  $array = array();
  foreach ($names as $v):
    $array[$v] = '';
    if ($str != '') $str .= ' OR ';
    $str .= "set_name='".dab($v)."'";
  endforeach;
  $sql = "SELECT set_name, set_value FROM "._DB_SET." WHERE $str;";
  $res = $db->query($sql);
  while ($row = $db->next_row($res)) $array[$row['set_name']] = $row['set_value'];
  return $array;
}

function SettingsSet($name, $value){
  global $db, $info;
  $db->query("UPDATE "._DB_SET." SET set_value='".dab($value)."' WHERE set_name='".dab($name)."';");
}

function SettingsSetList($names_values){
  foreach ($names_values as $name => $value) SettingsSet($name, $value);
}


$info['_STR']['pages'] = array(
'LanguageDB' => 'ru',
'Pages' => 'Страницы',
'AdminPagesNone' => 'Страниц сайта нет',
'AdminPages' => 'Администрирование страничек',
'AdminPagesMenu' => 'Страницы',
'AdminPagesMenuList' => 'Список страниц',
'AdminPagesMenuAdd' => 'Добавить страницу',
'AdminPagesListCPP1' => 'При администрировании показывать на странице по',
'AdminPagesListCPP2' => 'страничек',
'AdminPagesListCPPok' => 'OK',
'AdminPagesCaption' => 'Заголовок',
'AdminPagesUrl' => 'Ссылка на страницу',
'AdminPagesAction' => '&nbsp;',
'AdminPagesEdit' => 'Редактировать',
'AdminPagesShow' => 'Опубликовать',
'AdminPagesHide' => 'Скрыть',
'AdminPagesDelete' => 'Удалить',
'AdminPagesDeleteSelect' => 'Удалить выбранные страницы',
'AdminPagesConfirmDelete' => 'Вы действительно хотите удалить страницу?\nАвтоматически удалится и пункт меню,\nсвязанный с этой страницей (если он есть).\nВосстановление будет невозможно!',
'AdminPagesConfirmDeleteAll' => 'Вы действительно хотите удалить выбранные страницы?\nАвтоматически удалятся и пункты меню,\nсвязанные с этими страницами (если они есть).\nВосстановление будет невозможно!',
'AdminPagesCaptionEdit' => 'Редактирование страницы',
'AdminPagesCaptionAdd' => 'Добавление страницы',
'AdminPagesAddEditShowing' => 'Опубликование:',
'AdminPagesAddEditShow' => 'отображать на сайте',
'AdminPagesAddEditHide' => 'не опубликовывать на сайте',
'AdminPagesAddEditCaption' => 'Заголовок:',
'AdminPagesAddEditUrl' => 'Ссылка:',
'AdminPagesAddEditUrlAbout' => 'Ссылка — необязательный параметр, он нужен для создания которких понятных адресов страниц. Например, <u>/<b>contacts</b>.html</u>.',
'AdminPagesAddEditText' => 'Текст страницы:',
'AdminPagesAddEditSave' => 'Сохранить'
);

if (isset($info['_STR_LANG']['pages']))
  $info['_STR']['pages'] += $info['_STR_LANG']['pages'];

define("_DB_PGS", _DB_PREFIX.$info['_STR']['pages']['LanguageDB'].'_'.'pages');

$info['_SCP']['pages'] = 'scpPages';

[color=red]function scpPages(){
  global $db, $info;
  if (eregi("^/map.html/$", $info['URL'], $regs)){
    $info['scp'] = 'MenuShowMaps';
  }elseif (eregi("^/([-_A-Za-z0-9]+).html/$", $info['URL'], $regs)){
    $info['pages']['page_by_number'] = false;
    $info['pages']['id'] = $regs[1];
    $info['scp'] = 'PagesOne';
  }elseif (eregi("^/pages/([0-9]+).html/$", $info['URL'], $regs)){
    $info['pages']['page_by_number'] = true;
    $info['pages']['id'] = $regs[1];
    $info['scp'] = 'PagesOne';
  }
  return !empty($info['scp']);
}

function PagesOne(){ 
  global $db, $info;
  if ($info['pages']['page_by_number'])
    $sql = "SELECT pgs_id, pgs_caption, pgs_text FROM "._DB_PGS." WHERE pgs_id='".(int)$info['pages']['id']."' AND pgs_showing='1';";
  else
    $sql = "SELECT pgs_id, pgs_caption, pgs_text FROM "._DB_PGS." WHERE pgs_url='".dab_db($info['pages']['id'])."' AND pgs_showing='1';";
  $res = $db->query($sql);
  if ($row = $db->next_row($res)):
    $info['caption'] = $row['pgs_caption'];
    if ($row['pgs_text'] == '') $row['pgs_text'] = '&nbsp;';
    $info['caption_postfix'] = AdminPagesShowAdminPanel($row['pgs_id'], 1, '&nbsp;');
    echo $row['pgs_text'];
  else:
    scp404();
  endif;
}[/color]

--------------------------------------------------------

далее переменная вставляется в HTML код
<?=$info['scp'](); ?>

PM MAIL   Вверх
Kallikanzarid
Дата 10.9.2011, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 240
Регистрация: 9.11.2008

Репутация: нет
Всего: 3



Ура, не один я трахаюсь с a1cms! smile Никто не знает, где определена функция dab_db или хотя бы что она делает?
PM MAIL   Вверх
Absinthe
Дата 10.9.2011, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 4.5.2011

Репутация: 5
Всего: 11



Kallikanzarid,  зажми CTRL и щелкни на имени функции - делов то. Или IDE не используешь?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0664 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.