Александр Михалицын |
Отправлено: 17 мая 2009 — 12:15 • Тема: Мод: Подсветка синтаксиса языков программирования • Форум: Модификации и дополнения |
Ответов: 38 Просмотров: 0
|
Самая свежая версия v.1.1.0.
!!!NEW INSTALL!!!
В архиве лежит файлик install.mod (открывается блокнотом), следуйте инструкциям из него.
!!!UPDATE!!!
В архиве лежит файлик update_oldver_newver.mod (открывается блокнотом), следуйте инструкциям из него.
!!!OTHER!!!
Пользоваться так (фигурные скобки замените квадратными):
{code}{/code} -- только нумерация строк;
{code=language}{/code} -- нумерация строк и подсветка синтаксиса, согласно языку language. |
Александр Михалицын |
Отправлено: 12 мая 2009 — 11:24 • Тема: ExBB FM 1.0 RC1 • Форум: Релизы |
Ответов: 273 Просмотров: 0
|
Andr1y,
все верно. А вы как хотели? Чтобы все подрят имги превьюшками заменялись? Неее... это тока для аттачей. |
Александр Михалицын |
Отправлено: 21 апреля 2009 — 16:29 • Тема: Popup но только один раз • Форум: PHP/Perl |
Ответов: 3 Просмотров: 0
|
Defenderyk,
сразу добавлю.
Таймеры (setTimeout/setInterval) нужно юзать так:
CODE:function(function object, time in milleseconds);
, а у тебя первый аргумент -- строка, да оно работает, но это неправильно, вот исправления:
CODE:setTimeout(function(){setOpacity(i / 10)} , 8 * i );
document.body.onload = window.setTimeout(fireMyPopup, 1500);
Кстати в первом варианте, когда коллбэку передается еще и аргумент, очень удобно использовать усовершенствованный setTimeout/setInterval я их завтра выложу. |
Александр Михалицын |
Отправлено: 13 апреля 2009 — 10:16 • Тема: Тема закрыта?.. • Форум: Решение проблем |
Ответов: 17 Просмотров: 0
|
OlgaM,
это фича. Не баг. Просто увеличте максимальный размер файла темы (в админке) и все... (но это, разработчиками не рекомендовано). |
Александр Михалицын |
Отправлено: 11 апреля 2009 — 04:57 • Тема: Конвертация и совместимость БД • Форум: MySQL |
Ответов: 3 Просмотров: 0
|
Defenderyk,
а какой движок у сайтов?
Нужно посмотреть класс для работы с БД (если он там реализован...) и добавить строку типа:
mysql_query('SET NAMES 'cp1251'" |
Александр Михалицын |
Отправлено: 8 апреля 2009 — 09:55 • Тема: RSS в html • Форум: HTML |
Ответов: 12 Просмотров: 0
|
Цитата:Та форум такой же как и тут. Соответственно и RSS такой же. Просто ссылку поменять и всё
Так, так... а РСС ввам выходит для вывода последних сообщений?
Defenderyk,
можно все. Самый лучший вариан - не когда все за тебя сделают, а когда ты попробуешь сам, ая тебе помогу. Хочешь? |
Александр Михалицын |
Отправлено: 7 апреля 2009 — 07:37 • Тема: RSS в html • Форум: HTML |
Ответов: 12 Просмотров: 0
|
Flash,
тогда JS. Я впринципе могу парсер написать... Дайте мне ссылку на ленту, придумаю что-нибудь. (Как время будет, может где-то завтра, окей?)
P.S. Не одного регэкспа в парсере не будет -- клянусь. Все чистый AJAX (на то он и XmlHttpRequest...) |
Александр Михалицын |
Отправлено: 6 апреля 2009 — 08:19 • Тема: Статья: "ООП в JavaScript" • Форум: JavaScript |
Ответов: 0 Просмотров: 0
|
Введение
Итак, классов в JavaScript нет, но к версии 2.0, они вроде как должны добавиться.
Но зато в JavaScript'e есть подобие классов -- объекты. Так вот, любой литерал
(число, строка) представляет собой экземпляр "класса" Number и String соответственно
(тут правда есть некоторые особенности, о которых, в рамках этой статьи я писать не буду, есть материал, но сайт похоже не работает, как только наладится -- я выложу);
массив -- Array; объект -- Object, функция -- Function.
Основная часть
Так вот, самый универсальный конструктор создается при помощи конструктора Function.
(Обратите внимание я сказал именно конструктор! Тоесть записи:
CODE:function xxx() {}
var xxx = function() {}
var xxx = new Function('');
создают именно конструкторы, но не объекты! А в случае с Array, Object:
var xxx = new Object(); мы уже создаем экземпляр и уже не имеем возможности создавать свои экземпляры созданного объекта.)
В JavaScript есть и наследование (prototype-based), если в объекте нет определенного свойства/метода оно ищется в его прототипе, если нет в прототипе, то в прототипе-прототипа, и.т.д. Оно работает по схеме отличной от привичного ООП, но есть функции для исправления этого недостатка. (http://dklab.ru/chicken/nablas/38.html;
http://dklab.ru/chicken/nablas/39.html;
http://dklab.ru/chicken/nablas/40.html -- для более опытных.)
В реализации функции для эмуляции привычного ООП (из 40 наблы) автор вообще отказался от прототипного наследования! Хотя там и задается прототип, наследование не происходит из-за того, что в первый вызов конструктор тутже завершается. Дальше вызывается этот же конструктор, но уже в прототипе создаваемого конструктора, таким образом происходит добавления свойств/методов.
Так, как это статья ориентирована на начинающих, я просто покажу сампл объекта и сделаю комментарии, поскольку полностью описывать все особенности наследования,
и.т.п. я не собираюсь, выше я дал ссылки на статьи, в которых все очень хорошо разьесняно.
CODE:function myClass()
{
//var self = this; "дедовский метод"
this.property = 1; //Свойство
this.method = function() //метод
{
}
var property = 1; //Private свойство
var method = function() // Private метод
{
//self.property = 3; "дедовский метод"
}
}
var xxx = new myClass(); //экземпляр
Такая схема создания объекта, годится для библиотек, где требуется создание экземпляров объекта. (Замечание: если вам нужно использовать public свойство/метод
в private методе, нужно его вызывать в контексте конструктора, поскольку все переменные, в JavaScript (даже локальные) вызываются в контексте конструктора window. Пример method.apply(this, [массив аргументов]), method.call(this, арг1, арг2, e.t.c.)
или "дедовским методом", создаете локальную переменную ссылку на this и используете внутри прайвит метода её. Пример есть в коде выше -- закомментированые строки.)
Для библиотек, где нужно просто пространство имен:
CODE:var library = {
'property': 1,
'method': function()
{
}
}
Этот случай, когда вам не требуются private методы/свойства, а когда они требуются,
пишите так:
CODE:var library = new function()
{
//все как в первом случае (многоэкземплярном)
}
Справедливости ради замечу, что создать тут экземпляр все таки можно, но это станет
делать только идиот.
Делается так:
CODE:var library2 = new library.constructor();
Вот впринципе все! Есть предложения -- пишите. Дополню.
Это v.0.1b статьи, прошу если что исправить пунктуацию, грамотность (отправлять в ЛС).
(Добавление)
Вот мой вариант эмулляции истинного наследования, без использования прототипов.
Несмотря на одинаковое название работать нужно несколько иначе, второй аргумент должен являтся конструктором, тоесть экземпляром объекта Function. Почему я выбрал такой подход? Да потому, что в данном случае у меня каждый раз при создании экземпляра, получившегося благодаря функции newClass конструктора, будет создаваться полностью новый объект, а в случае кода из той наблы, будет использоваться один, общий экземпляр.
CODE:<pre><script>
/**
* @author Aleksandr Michalicyn <admin@systemnik.net.ru>
* @version 1.0
*/
function newClass(parent, new_constructor)
{
var class = function()
{
class.new_constructor.apply(this, arguments);
if (class.parent_constructor)
{
this.parent = {};
class.parent_constructor.apply(this.parent, arguments);
for (var k in this.parent)
{
if (!this.hasOwnProperty(k))
{
this[k] = this.parent[k];
}
}
}
}
class.prototype = {};
class.new_constructor = new_constructor;
if (parent)
{
class.parent_constructor = parent;
}
return class;
}
// Базовый "класс".
Car = newClass(null, function() {
document.writeln("Вызван конструктор Car().");
this.drive = function() {
document.writeln("Вызван Car.drive()");
}
});
// Производный "класс".
Zaporojets = newClass(Car, function() {
document.writeln("Вызван конструктор Zaporojets().");
this.drive = function() {
document.writeln("Вызван Zaporojets.drive()");
return this.parent.drive.call(this);
}
this.crack = function() {
document.writeln("Вызван Zaporojets.crack()");
}
});
document.writeln("Программа запущена.");
// Создаем объект производного "класса".
var vehicle = new Zaporojets();
vehicle.drive(); // вызывается функция базового объекта
// Создаем еще один объект того же класса.
var vehicle = new Zaporojets();
vehicle.crack(); // функция производного объекта
</script></pre> |
Александр Михалицын |
Отправлено: 5 апреля 2009 — 06:19 • Тема: Изменение свойств объекта • Форум: JavaScript |
Ответов: 2 Просмотров: 0
|
yura3d,
Юр... ты что? Я ведь тебе там выложил фикс...
Тебе прятолку ссылки написать? Давай напишу..
(Добавление)
А вообще, style это объект...
obj.style.property = 'some_value'; |
Александр Михалицын |
Отправлено: 1 апреля 2009 — 09:38 • Тема: Давайте познакомимся! • Форум: О жизни |
Ответов: 133 Просмотров: 0
|
Зовут меня Александр Михалицын, мне 14 лет, в Апреле (10 числа) исполняется 15,
дата рождения 10.04.94, номер паспорта указывать?
Живу я в России Свердловская область, Краснотурьинск
программированием занимаюсь с 5-6 класса (даже не программированием, а html).
Сейчас учусь в 8. PHP и все остальное в классе 7 начал изучать...
На изучение программирования меня подталкнуло, то что уж очень захотел уметь делать все сам и не зависеть от разных людей, а уметь написать все самому (например моды).
Кстати в изучении (и не только) программирования мне помог мой лучший виртуальный друг Furax! (виртуальный -- значит, что нас разделяют сотни киллометров проводов... )
Вроде как владею PHP, MySQL, JavaScript (мой любимый язык), немножко разбираюсь в Apache , являюсь модератором forum.dklab.ru (раздела Баги Денвера и разделов JavaScript'a). Самые любимые конференции:
eomy.net/forum, systemnik.net.ru (мое ), forum.dklab.ru, exbb.org/community
впринципе все.
P.S. Всем, кто так любит файловую версию, советую одно -- особо не беспокойтесь, наверно мы что-нибудь придумаем.
А Юре -- заскочи в асю как сможешь, я насчет файловой версии предложение сделаю. |
|