Opupenko

Рейтинг
2
Регистрация
06.08.2010

я не видел таких программ/скриптов, чтобы все и сразу

align="center" рулит


/**
* Выборка статьи и ссылок на след.статьи, при условии правильного именования
* 1-bla-bla.php
* 2-jopa.php
* 3-hrenoten.php
* 15-f.php
* 26-d.php
* ...
* или что-то подобное
* @param string $dir
* @param string $article
* @param array $cache
*/
function loadArticle($dir, $article, $cache = array()) {
if (!is_readable($dir)) { // проверяем каталог на доступность чтения
throw new Exception('А подайте мне материалов на блюдечке!');
}

$dir = str_replace('//', '/', $dir . '/'); // я извращенец =))

if (!is_readable($path = $dir . $article)) { // ищем статью
throw new Exception('А где статья-то, козяина???');
}

$result = array(
'include' => $path, // я хз, как там будет дальше статья отображаться, верну просто адрес для инклюда
'links' => array()
);

if (!count($cache)) { // в кеше пусто - перечитываем, потом куда-нить засунуть надо (файл, сессия, база)
if (($dh = opendir($dir))) {
while (($file = readdir($dh)) !== false) {
if ($file === '.' || $file === '..' || !preg_match('/^(\d+)\-.+\.php$/', $file, $matches)) { // пропускем корявости и спец.каталоги
continue;
}

if (($num = (int)$matches[1])) { // пихаем в кеш
$cache[$num] = $dir . $file;
}
}
closedir($dh);
}
ksort($cache, SORT_NUMERIC);
}

$_SESSION['cache'] = $cache; // я суну в сессию для примера, мне нужно будет испоганить кеш чуть ниже

preg_match('/^(\d+)\-.+\.php$/', $article, $matches); // выделяем номер текущей статьи
if (($num = (int)$matches[1])) {
// после этого останется массив с нужной сортировкой сверху наша
$tmp = array_keys($cache);
$cache = array_merge($tmp = array_slice($cache, array_search($num, $tmp)), array_slice($cache, 0, count($cache) - count($tmp)));
array_shift($cache); // убираем ее

if (count($cache)) {
$result['links'][] = array_shift($cache);
}

if (count($cache)) {
$result['links'][] = array_shift($cache);
}
}

return $result;
}

// использование
echo '<pre>';
print_r(loadArticle(dirname(__FILE__) . '/dir/', '26-d.php'));

вот собрались любители холиваров =))) интересно вас почитать...

развили тему в непонятно что...

somick, +100500

разводить холивар не буду, ну вас нафиг, сами-то небось юзаете, а тут пытаетесь казаться крутыми, юзающими только чистый JS =)))

вопрос не в том, ЧТО я юзаю, а в том, КАК, человек юзает jQuery, я ему поэтому и посоветовал map, если кто-то хочет показаться умным прогером, пишущим только на чистом JS и юзающим DOM напрямую - то это не тот топик ;) мы тут все умные и крутые прогеры )))

а кому-то "говнокод гквери" спать не дает 😂

если это говнокод, почему им пользуется столько народа и он настолько популярен?

смотрим в сторону jQuery Form plugin и jQuery Simplemodal

их связка очень простая, но надо немного разобрать примеры и все

А как сами статьи-то именуются в каталоге? Или есть какой-то массив?

Ну тут все просто, движок умеет парсить такой вот параметр из GET, я раньше тоже так делал, только это неочевидно в будущем для тех, кто будет заниматься сайтом, ну т.е. придется держать в голове соответствие цифр и каких-то действий приложения. Кстати, такой подход к параметрам запроса подтверждает, что двигло самописное. По вопросу WP3 ничем помочь не смогу, ибо не использую чужие движки, а юзаю свой, естессна самописный 🤪, который, кстати, позволит сделать такие УРЛы =)))

123 4
Всего: 32