логин: 
Другие записи за это число:
2011/08/01_1 - прекрасное: типохаки
<< предыдущая заметкаследующая заметка >>
01 августа 2011
PHPEVAL и нечитанные заметки

Сделал модуль PHPEVAL для собственного удобства разработки. Он просто выполняет любой PHP-код, который в нем указан (разумеется, чтоб эта херня взлетела, у заметки должны быть опции "автоформатирование - нет, замена кавычек и тире - нет", а то он там в код навставляет). Как результат модуль выводит переменную $o, предполагается, что код в процессе выполнения ей что-то присвоил. Вот так я отлаживал прямо в этой заметке процедурку, которая выводит все заметки за последние 30 дней, которые лично вы (своим браузером) еще не видели:

{_PHPEVAL:

$pp=ms("SELECT `Date`,`Header` FROM `dnevnik_zapisi` as d ".WHERE("`DateDate`>'".(time()-30*86400)."' AND NOT EXISTS (SELECT `url` FROM `dnevnik_posetil` AS p WHERE `unic`='".$GLOBALS['unic']."' AND d.`num`=p.`url`)")." ORDER BY `Date` DESC","_a");

if($pp) {
$q=array();
foreach($pp as $p) $q[]="".$p['Date']." ".(empty($p['Header'])?'(...)':$p['Header']);
$o=implode('<br>',$q);
} else $o='все записи видели';

_}


При этом я, конечно, чую бесовщину. Но обосновать не могу. Чем плохо? Ведь править заметку может только админ, пусть хозяин сайта выполняет любой код, какой захочет - с тем же успехом админ может открыть "фотоальбом" и отредактировать любой php-файл. Разумеется, когда мы захватим весь мир поднимем публичный сервис binoniq или отладим движок до идеала, специальным софтом оттранслируем его PHP в C++ и соберем бинарник чтоб быстрей работал... Там это конечно работать не будет.


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

Эту ссылку и вы можете прописать для своих посетителей в темплейте страниц, например так (в примере - за 30 последних дней):

<a title='Всплывет окно со списком заметок, которые твой браузер еще не открывал.' href="javascript:majax('okno.php',{a:'notseen',day:30})">ты не видел эти заметки</a>

UPD: Да, и заодно нашел и поправил неприятную критическую ошибочку в движке.

<< предыдущая заметка следующая заметка >>
пожаловаться на эту публикацию администрации портала
архив понравившихся мне ссылок
Оставить комментарий
Linux Ubuntu Firefox
0
0
s0mni
Кажется, вот она - бесовщина:
"...специальным софтом оттранслируем его PHP в C++..."
Mac Safari
0
0
Vadim Oxyd Priluzkiy (oxyd)
Точно! Бесовее некуда! Сплошной адЪ и погибель.
<< предыдущая заметка следующая заметка >>