News → Подсветка кода

Благодаря такой штуке, как SyntaxHighlighter, добавил себе в блог подсветку кода. Работает она только на странице записи, в ленте пока не организовывал её.

Собственно:

1
2
3
4
5
<?php

if ($ok) {
    echo 'Превед, Медвед';
}

Здесь значительно красивее :) Ниже помещу функцию, которая здесь посты сохраняет.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php

public function createNewTopic($formData)
{
    $auth = Zend_Auth::getInstance();
    $userId = $auth->getIdentity()->user_id;
    $text = $this->htmlFilter($formData['text_post']);
    $data = array('category_id'  => $formData['category_id'],
                  'hide'         => $formData['hide'],
                  'title'        => $formData['title'],
                  'text_post'    => $text,
                  'user_id'      => $userId,
                  'time_created' => date('Y-m-d H:i:s'),
                  'syntax'       => $formData['syntax']);
    $topicId = $this->insert($data);
    if (!empty($formData['tags'])) {
        $relation = new DbTable_RelationTopicTag();
        $relation->addRelation($formData['tags'], $topicId);
    }
    $category = new DbTable_Category;
    $category->setCount($formData['category_id'], 1);

    return $topicId;
}

Комментарии

avatar
aterentiev
avatar
интересненько, интересненько :)
ответить
avatar
morontt
avatar
Мне и самому интересно :)
ответить
avatar
aterentiev
avatar
ага, значит древовидных комментов нету...
ответить
avatar
morontt
avatar
Нету, но это не проблема. Здесь уже реализована одна древовидная структура - навигация по категориям. С бесконечной степенью вложенности :) Требуется только передать в неё массив элементов с информацией о родительских элементах для каждого, если они есть. Так что приспособить её для каментов будет не сложно. Но для начала я прикручу к каментам ajax, не знаю только когда, затягивать не планирую.
ответить
avatar
morontt
avatar
Теперь есть. И древовидные, и уведомления :) Не прошло и двух лет.
ответить
avatar
morontt
avatar
Ещё одна попытка :)
ответить
avatar
aterentiev
avatar
A, не, одно было. Я думал, ты что-то про мое скалирование писал :)
Но только одно уведомление, и да, в спаме :)
ответить
avatar
morontt
avatar
Про это скалирование - запись была неделю неделю назад, вот я и интересовался, актуален ли будет мой ответ или нет? Стоит ли ковыряться?
ответить
avatar
aterentiev
avatar
Скажем так, я еще не нашел решения для IE, в других движках по слухам оно работает... Если навскидку найдется - буду признателен, если нет - буду искать альтернативу и пока жить без сетки, не смертельно.
ответить
avatar
morontt
avatar
А какова задача в целом? Зачем вообще кому-то может понадобиться масштабировать страницу браузером и почему сетка рисуется именно посредством фона через CSS? И каков смысл этой сетки? Может быть проще найти обходной путь, а не пробивать в лоб?

Одни вопросы, короче говоря...
ответить
avatar
aterentiev
avatar
Ну по очереди:
1. "Зачем вообще кому-то может понадобиться масштабировать страницу браузером" - я не могу это запретить. Сам работаю в IE в 125%, т.к. матрица на буке мелкая.
2. "почему сетка рисуется именно посредством фона через CSS" - Можно сетку и по-другому нарисовать, мне все равно. Главное, чтобы показывало шаг и отрабатывало скалирование
3. "каков смысл этой сетки?" - Я потом на этом элементе буду расставлять другие (должно получаться что-то типа блоксхемы), сетка должна показывать опорные точки, куда можно бросить новый элемент
Как доделаю что-то работоспособное - покажу (под NDA :))
ответить
avatar
morontt
avatar
А если сразу рисовать на пиксельном холсте? Через canvas в HTML5. Элементы, которые туда добавлять будешь, и сетку, собственно. Тогда они будут параллельно масштабироваться, т.е. синхронно.
ответить
avatar
aterentiev
avatar
там еще меньше поддержки IE :)
ответить
avatar
morontt
avatar
Твой девятый поддерживается. А для более древних поделок майкрософта (и не только) есть сторонние библиотеки, вроде excanvas, для эмуляции, так сказать.
ответить
avatar
aterentiev
avatar
впрочем, похоже, что работает
http://alexandre-terentiev.de/lj/20121105-bug/test-canvas.htm
ответить
avatar
morontt
avatar
Вот и хорошо :-)
ответить
avatar
aterentiev
avatar
А зачем ты убиваешь в комментах?
ответить
avatar
aterentiev
avatar
блин.... зачем crlf убиваешь? :)
ответить
avatar
morontt
avatar
Пока не понял... Теги убиваю? Не знаю что такое crlf
ответить
avatar
morontt
avatar
Понял, ты про перенос строки :)

Нет, я его не убиваю, он был и есть, это уже особенности обработки html браузером. Вернул переносы на место волшебной функцией nl2br.
ответить
avatar
aterentiev
avatar
>test<
ответить
avatar
morontt
avatar
Если вдруг розовая аватара в очках смущает, то можешь на gravatar.com выложить правильную. Я оттуда их подтягиваю. И не только я :) Видел уже много проектов, использующих данный сервис.
ответить
avatar
aterentiev
avatar
да мне пофиг, но прикольно то, что на паре форумов у меня как раз такая ава, причем сделанная мной самим из какой-то картинки из инета :) например, у кулера
ответить
avatar
morontt
avatar
Хорошее совпадение, так как тут хеш для аватара генерится без моего личного участия (кроме алгоритма, разве что).
ответить
avatar
morontt
avatar
Что я убиваю в комментах?
ответить
avatar
Cactus
avatar
If my prboelm was a Death Star, this article is a photon torpedo.
ответить
26 комментариев Написать что-нибудь
Адрес электронной почты нигде не отображается, необходим только для обратной связи.