Xwab
Форумыnavigate_nextСайты пользователей форума

MastHelp.ru
Сообщения
newerant

YetiRider, мда... не сужденно программистам делать няшные сайты ) гг)

30 Авг 2012, 19:39
YetiRider

newerant, тяжёлая у нас работа. Большинство пользователей быдло и дегенераты. Приходится подстраиваться.

30 Авг 2012, 19:42
newerant

YetiRider, возможно

Первый раз делаю сайт не с нуля (отсчитую от года назад, точнее от того времени когда я уже уверенно мог сказать что я программист и мог на PHP написать всё что угодно с ООП, блекджеком и шлюхами) . А джон взял потому что в нём пол работы уже зделанна, в отличии от сайта с нуля где надо пол года пахать чтобы запилить хороший функционал и код без быдлокода

30 Авг 2012, 19:50
Jadson

newerant пишет:
"надо пол года пахать чтобы запилить хороший функционал и код без быдлокода"

Если ты говоришь что ты уже год как тру кодер и можешь писать сайты с использованием ООП, то ты б свой функционал сделал бы за пару недель, максимум месяц, за пол года можно выучить все и написать, и если это твой уровень, то мне тебя жаль, ты уже год как ходишь и думаешь что ты программист

30 Авг 2012, 19:58
newerant

Jadson, Я иммел виду что пол года я уже хорошо знаю всё. А php (+ местами змейку,плюсы) я учил 2 года.

30 Авг 2012, 20:19
Jadson

newerant, смотря на этот сайт у меня есть сомнения даже на счет пхп

30 Авг 2012, 20:32
newerant

Jadson, вот один из моих исходников на сайт заказчика(c нуля):

<?php

# Класс постов

/* UPD to 30.08.2012 */

class ForumPosts
{
protected $db_class = array();
protected $update_list = array();

public $theme_exists = 0; //существование темы с таким id'ом
public $message_exists = 0; // существование поста с таким id'ом
public $is_user_access = 1 /предлогается ли вывести информацию о посте в браузер

private $obj_cat;

function __construct($id = 0)
{
$info = self::is_exists_connect_information($id, 1); // проверяем существование темы/поста

if($info)
{
#определяем по типу что за обьект мы нашли
if($info['type'] == 'message')
$this->message_exists = 1;
else
$this->theme_exists = 1;
}
else
{
$this->is_user_access = 0; //сообщаем что тему мы не нашли
return 0;
}

$this->obj_cat = new ForumCat($id);

$this->db_class = $info;

return 1;
}

#Проверяет существование темы/поста и возвращает информацию о нём есле он найден


public static function is_exists_connect_information($id , $return_info = 0)
{
$q = mysql_query("SELECT * FROM `cats_posts` WHERE `id` = '$id' LIMIT 1");

$check = mysql_num_rows($q); //сама проверка существования

if($return_info && $check)
return mysql_fetch_assoc($q);

return (bool) $check;// возвращаем информацию в булевом виде есле тема найденна
}

#Функция добавления темы
public static function AddTheme($name, $message, $id_cat, $anons, $keywords)
{
# Проверка авторизации юзверя
if(!(USER_ACCESS))
return 0;

#time-out в 90 сек


if(isset($_SESSION['time_theme_add']) && $_SESSION['time_theme_add'] > TIME)
return 'time-err';

$_SESSION['time_theme_add'] = (TIME + 90);

if(empty($message) || empty($name)) #Пустое сообщение
return 0;

#Фильтруем типо, ага )
$keywords = hsc($keywords);

mysql_query("INSERT INTO `cats_posts` SET
`name` = '$name',
`message` = '$message',
`type` = 'theme',
`user_id` = '".USER_ID."',
`user_name` = '".USER_LOGIN."',
`counter` = '0',
`time_add` = '".TIME."',
`is_admin_post` = '".USER_ACCESS."',
`hide` = '0',
`id_cat` = '$id_cat',
`anons` = '$anons',
`keywords` = '$keywords'
");

#Плюсуем счётчик тем в категории в которой создавалась тема
$obj_cat = new ForumCat($id_cat);
$obj_cat->themes_counter ++;

mysql_query("UPDATE `cats_posts` SET `id_theme` = '".mysql_insert_id()."' WHERE `id` = '".mysql_insert_id()."' LIMIT 1");

return mysql_insert_id();
}


#Функция доабвления поста
public function AddComent($message)
{

# Проверка авторизации юзверя
if(!(USER_ACCESS))
return 0;

#time-out в 20 сек


if(isset($_SESSION['time_post_add']) && $_SESSION['time_post_add'] > TIME)
return 'time-err';


if(empty($message)) #Пустое сообщение
return 0;

$_SESSION['time_post_add'] = (TIME + 20);

mysql_query("INSERT INTO `cats_posts` SET
`message` = '$message',
`type` = 'message',
`user_id` = '".USER_ID."',
`user_name` = '".USER_LOGIN."',
`counter` = '0',
`time_add` = '".TIME."',
`is_admin_post` = '".USER_ACCESS."',
`hide` = '0',
`id_cat` = '{$this->id_cat}',
`id_theme` = '{$this->id}'
");

#Плюсуем к счётчику сообщений темы при создании новой
$this->counter ++;

return mysql_insert_id();

}

#Статичиское удаление как обьекта

public function delete()
{
#Есле мы удаляем тему деинкруменируем счётчик комов категории
if($this->type == 'theme')
$this->obj_cat->themes_counter --;

return mysql_query("DELETE FROM `cats_posts` WHERE `id` = '{$this->id}' LIMIT 1");
}

#Проверяет существование поста
public function check_exists_post($id_post, $return_info = 0)
{
$q = mysql_query("SELECT * FROM `cats_posts` WHERE `id` = '$id_post' AND `type` = 'message' LIMIT 1");

$check = mysql_num_rows($q); //сама проверка существования

if($return_info && $check)
return mysql_fetch_assoc($q);

return (bool) $check;// возвращаем информацию в булевом виде есле сообщение найденно
}

#Удаляет пост
public function del_post($id_post)
{
#Ограничиваем доступ к удалению постов
if(USER_ACCESS <= 1 || !check_exists_post($id_post, 0))
return 0;

mysql_query("DELETE FROM `cats_posts` WHERE `id` = '$id_post' LIMIT 1");

//Минусуем счётчик сообщений темы при удалении поста из темы
$this->counter --;

return 0;
}

function __get($query)
{
if($query == 'del' && $this->theme_exists): #Удаление этой темы

mysql_query("DELETE FROM `forum_posts` WHERE `id_theme` = '{$this->id}' AND `type` = 'message'"); // удаляем посты темы
mysql_query("DELETE FROM `forum_posts` WHERE `id` = '{$this->id}' AND `type`= 'theme' LIMIT 1"); // удаляем саму тему

#При удалении темы минусуем считчик тем категории
$this->obj_cat->themes_counter --;

return 1;
endif;


return (isset($this->db_class[$query]) ? $this->db_class[$query] : 0);
}

function __set($k, $v)
{
$this->update_list[$k] = $v;
$this->db_class[$k] = $v;
return (1);
}

function __destruct()
{
if(!$this->update_list || !$this->is_user_access)
return 0;

$query = array();

foreach($this->update_list as $key => $value)
{
$query [] = '`'.$key. '`='. "'".$value."'";
}

mysql_query("UPDATE `cats_posts` SET ".join(',' , $query)." WHERE `id` = '{$this->id}' LIMIT 1");

return 0;
}
}
добавлено спустя 2 минуты:
Jadson, жаль табуляция не работе . С подсветкой кода и табульцией - http://codepad.org/WdNqpTX3

30 Авг 2012, 21:17
Jadson

newerant, для подсветки кода тэг [php] есть, мне без разницы какой там исходник, я говорю о сайте этом, лучше заказывай дизайны для проектов, я сам лучше не сделаю дизайн, поэтому когда пишу с 0 что-то дизайн заказываю
добавлено спустя 36 минут:
newerant, класс, как по моему уровню ООП, не плох

30 Авг 2012, 22:11
FallEn

http://masthelp.ru/notes/read?id=11
Эпично. Феерично. Нет слов.
З.Ы. Это же перевод англоязычного текста через гугл, да?

01 Сен 2012, 17:52
Ego1_ST

Какимто образом я упал со стулки
головой к системнику

01 Сен 2012, 18:08
Ответить на тему