Есть вопрос?
Зайди на форум

Поиск на сайте: Advanced

Denix - новый дистрибутив Linux. Русификация Ubuntu и установка кодеков

dkws.org.ua
Форум сайта dkws.org.ua
 
Главная    ТемыТемы    АльбомАльбом    РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Как сократить вес скрипта?
На страницу Пред.  1, 2, 3  След.
 
Начать новую тему Ответить на тему    Список форумов dkws.org.ua -> PHP
 
Автор Сообщение
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Ср Авг 24, 2011 5:49 pm    Заголовок сообщения:
Ответить с цитатой

А ты попробуй

if($do===''){
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
Светозар

Участник тусовки


Зарегистрирован: 20.02.2010
Сообщения: 354
Откуда: Москва

СообщениеДобавлено: Ср Авг 24, 2011 5:50 pm    Заголовок сообщения:
Ответить с цитатой

с "===" не работает вывод
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
Светозар

Участник тусовки


Зарегистрирован: 20.02.2010
Сообщения: 354
Откуда: Москва

СообщениеДобавлено: Ср Авг 24, 2011 5:54 pm    Заголовок сообщения:
Ответить с цитатой

не $_GET[do], а $_GET['do']
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Ср Авг 24, 2011 5:58 pm    Заголовок сообщения:
Ответить с цитатой

$_GET[do] тоже работает - проверь, а в некоторых вариантах, особенно, когда приходится вставлять вывод в строку, то без кавычек даже удобнее.

Вот пример из реального проекта, над которым работаю

echo "<p>Привет, $_SESSION[session_email] <a href=index.php?p=profile>Профиль</a> | <a href=index.php?p=targets>Мои цели</a> | <a href=logout.php>Выход</a><p>";

Не знаю, почему у тебя === не работает. Просто получается, что когда переменная не существует, то должно присвоиться NULL, но NULL - это не пустая строка. Правильнее было бы сравнивать с NULL. Почитай про NULL, строки и булевые переменные. В PHP приведение типов неявное (сейчас переменная - число, потом ты присваиваешь ей строковое значение и она уже становится строкой), поэтому возникают подобного рода путаницы
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
Светозар

Участник тусовки


Зарегистрирован: 20.02.2010
Сообщения: 354
Откуда: Москва

СообщениеДобавлено: Ср Авг 24, 2011 5:59 pm    Заголовок сообщения:
Ответить с цитатой

Код:
if (!isset($_GET['do'])) {
$result = mysql_query("SELECT title,meta_d,meta_k,text FROM settings WHERE page='index'",$db);
$myrow = mysql_fetch_array($result);
// переменная не передавалась, делаем что-то
}
elseif ($_GET['do']==="contacts") {
$result = mysql_query("SELECT title,meta_d,meta_k,text FROM settings WHERE page='contacts'",$db);
$myrow = mysql_fetch_array($result);
}
elseif ($_GET['do']==="articles") {
$result = mysql_query("SELECT title,meta_d,meta_k,text FROM settings WHERE page='articles'",$db);
$myrow = mysql_fetch_array($result);
}
elseif ($_GET['do']==="lessons") {
$result = mysql_query("SELECT title,meta_d,meta_k,text FROM settings WHERE page='lessons'",$db);
$myrow = mysql_fetch_array($result);
}


это выводит короткое сообщение, а теперь вот мне нужно вывести краткие новости. это дополнительный запрос:

Код:


$result = mysql_query("SELECT title,meta_d,meta_k,text FROM settings WHERE page='articles'",$db);
$myrow = mysql_fetch_array($result);

+ short news - его выводит должно под тем кратким текстом, что я выводил выше, но, пусть так:
Код:
  <?php 


$result = mysql_query ("SELECT id,title,description,author,date FROM articles",$db);

$myrow = mysql_fetch_array ($result);

do {
       
printf ("<table class='article short'>
         
       <tr>
         <td >
       <h2><a href='%s-news.html'>%s</a></h2>
       <br />
       <p class='meta'>Дата добавления: %s    Автор статьи: %s</p></td>
         </tr>
         
       <tr>
         <td class='text'>%s</td>
         </tr>
         
       </table><br /><br />", $myrow["id"], $myrow["title"],$myrow["date"],$myrow["author"],$myrow["description"]);
               
}

while ($myrow = mysql_fetch_array ($result));   
?>   

Это краткая новость. У меня есть short.news.tpl, я подключаю через sub load, но ошибки кидает + я не понимаю, куда сунуть коды выше
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
Светозар

Участник тусовки


Зарегистрирован: 20.02.2010
Сообщения: 354
Откуда: Москва

СообщениеДобавлено: Ср Авг 24, 2011 6:04 pm    Заголовок сообщения:
Ответить с цитатой

для вывода в short news, в index.php прописал ещё
$autor = $myrow[autor];
$view = $myrow[view];
$date = $myrow[date];
$description = $myrow[description];, для вывода потом типа {autor}
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Ср Авг 24, 2011 6:04 pm    Заголовок сообщения:
Ответить с цитатой

Не пойму, что нужно сделать. Но вижу где можно сократить:

Код:

if (!isset($_GET['do'])) {
$result = mysql_query("SELECT title,meta_d,meta_k,text FROM settings WHERE page='index'",$db);
$myrow = mysql_fetch_array($result);
// переменная не передавалась, делаем что-то
}
elseif ($_GET['do']==="contacts") {
$result = mysql_query("SELECT title,meta_d,meta_k,text FROM settings WHERE page='contacts'",$db);
$myrow = mysql_fetch_array($result);
}
elseif ($_GET['do']==="articles") {
$result = mysql_query("SELECT title,meta_d,meta_k,text FROM settings WHERE page='articles'",$db);
$myrow = mysql_fetch_array($result);
}
elseif ($_GET['do']==="lessons") {
$result = mysql_query("SELECT title,meta_d,meta_k,text FROM settings WHERE page='lessons'",$db);
$myrow = mysql_fetch_array($result);
}


заменить так:

Код:

if (!isset($_GET['do'])) {
$result = mysql_query("SELECT title,meta_d,meta_k,text FROM settings WHERE page='index'",$db);

// переменная не передавалась, делаем что-то
}
elseif ($_GET['do']==="contacts") {
$result = mysql_query("SELECT title,meta_d,meta_k,text FROM settings WHERE page='contacts'",$db);

}
elseif ($_GET['do']==="articles") {
$result = mysql_query("SELECT title,meta_d,meta_k,text FROM settings WHERE page='articles'",$db);

}
elseif ($_GET['do']==="lessons") {
$result = mysql_query("SELECT title,meta_d,meta_k,text FROM settings WHERE page='lessons'",$db);

}

$myrow = mysql_fetch_array($result);
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
Светозар

Участник тусовки


Зарегистрирован: 20.02.2010
Сообщения: 354
Откуда: Москва

СообщениеДобавлено: Ср Авг 24, 2011 6:11 pm    Заголовок сообщения:
Ответить с цитатой

Вот тут пример, но работает на другом скрипте, так вот:
Цитата:
На этой странице вы можете лицезреть мои статьи. Я не разбиваю их на категории, не вижу смысла. Надеюсь вы найдёте, что искали!

Это выводит {text} из таблицы settings, а всё, что ниже выводится из
из таблицы articles. Теперь понимаешь.
я думаю так:
В
Код:
}
elseif ($_GET['do']==="articles") {
$result = mysql_query("SELECT title,meta_d,meta_k,text FROM settings WHERE page='articles'",$db);

}


добавить вот это и получится так:

Код:
elseif ($_GET['do']==="articles") {
$result = mysql_query("SELECT title,meta_d,meta_k,text FROM settings WHERE page='articles'",$db);

$result = mysql_query ("SELECT id,title,description,author,date FROM articles",$db);

}


и под краткую новость, добавить {CONTENT}
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
Светозар

Участник тусовки


Зарегистрирован: 20.02.2010
Сообщения: 354
Откуда: Москва

СообщениеДобавлено: Ср Авг 24, 2011 6:18 pm    Заголовок сообщения:
Ответить с цитатой

но как задать {content} шаблон?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Ср Авг 24, 2011 6:22 pm    Заголовок сообщения:
Ответить с цитатой

Светозар писал(а):
но как задать {content} шаблон?


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

$tpl->setValue('content', $content);

А в самом TPL-файле определить переменную

{content}
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
Светозар

Участник тусовки


Зарегистрирован: 20.02.2010
Сообщения: 354
Откуда: Москва

СообщениеДобавлено: Ср Авг 24, 2011 6:26 pm    Заголовок сообщения:
Ответить с цитатой

http://narod.ru/disk/22820315001/www.rar.html
вот
шаблонизатор:
www\Systems\int
шаблон:
www\Templates\elixir
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
Светозар

Участник тусовки


Зарегистрирован: 20.02.2010
Сообщения: 354
Откуда: Москва

СообщениеДобавлено: Ср Авг 24, 2011 6:26 pm    Заголовок сообщения:
Ответить с цитатой

Просто, чтобы код не копировать.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Ср Авг 24, 2011 6:34 pm    Заголовок сообщения:
Ответить с цитатой

Или я ничего не пойму, или ты. У тебя ж по идее все правильно работает. Смотрим твой index.php

$tpl->load_template('elixir/main.tpl'); //загружаем каркас

$tpl->set('{title}', $title);

$tpl->set ( '{content}', "<div id='content-all'>" . $tpl->result['content'] . "</div>" );

Подгрузили шаблон, установили переменные. Открываем файл шаблона, в нем есть переменная content:

<div class="text">
{text}
</div>
{content}
</div>

Что нужно сделать?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
Светозар

Участник тусовки


Зарегистрирован: 20.02.2010
Сообщения: 354
Откуда: Москва

СообщениеДобавлено: Ср Авг 24, 2011 6:47 pm    Заголовок сообщения:
Ответить с цитатой

так не работает, я больше скажу, в <title></title>, в браузере отображается: {TITLE}
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
Светозар

Участник тусовки


Зарегистрирован: 20.02.2010
Сообщения: 354
Откуда: Москва

СообщениеДобавлено: Ср Авг 24, 2011 6:51 pm    Заголовок сообщения:
Ответить с цитатой

Код:

$result = mysql_query ("SELECT id,title,description,author,date FROM articles",$db);
$myrow = mysql_fetch_array ($result);


do {
       
printf ("<table class='article short'>
         
       <tr>
         <td >
       <h2><a href='%s-news.html'>%s</a></h2>
       <br />
       <p class='meta'>Дата добавления: %s    Автор статьи: %s</p></td>
         </tr>
         
       <tr>
         <td class='text'>%s</td>
         </tr>
         
       </table><br /><br />", $myrow["id"], $myrow["title"],$myrow["date"],$myrow["author"],$myrow["description"]);
               
}

while ($myrow = mysql_fetch_array ($result));   
вот что нужно для вывода кратких новостей
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
Показать сообщения:   
Начать новую тему Ответить на тему    Список форумов dkws.org.ua -> PHP Часовой пояс: GMT
На страницу Пред.  1, 2, 3  След.
Страница 2 из 3
 Главная страница сайта
 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
© Колисниченко Денис