Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Борзые пользователи ))


ravilr

Recommended Posts

мегаменю, уанПейджЧекаут, фастОрдер, картПопАп, автоподбор в поиске, марианна, фильтр от Soor-а, tooltip-аттрибуты... это только то, что вооруженным взглядом заприметил из популярных... админка небось тоже фаршированная ?  :wink:

Надіслати
Поділитися на інших сайтах

Пример Хабры и stackoverflow как бэ намекают, что профессиональное сообщество фильтруется через сложный расчет кармы. Даже тот же javascript.ru лично мне читать и приятнее и интереснее, чем opencartforum.

 

Никого не хочу обидеть. Просто высказываю мнение по САБЖ

Надіслати
Поділитися на інших сайтах

мегаменю, уанПейджЧекаут, фастОрдер, картПопАп, автоподбор в поиске, марианна, фильтр от Soor-а, tooltip-аттрибуты... это только то, что вооруженным взглядом заприметил из популярных... админка небось тоже фаршированная ?  :wink:

Фильтр покупали Симона, сейчас видимо новый админ заменил, тултип сам писал, мега меню взял за основу и переделал основательно...думаю заметно что под розетку косили прям безбожно.

Админка да :) фаршированая - заказ из админки, куча фидов для всевозможных торговых площадок, большая часть самописных...поиск и фильтр товаров переделан в доль и поперек, Баш эдитор, синхронизация с 1с и не вспомню что еще...

Что самое удивительное - я фрилансить стал сразу после увольнения...и уже буквально через месяц  у меня как будто открылись глаза...сейчас бы я магазин сделал совершенно иначе. 

Надіслати
Поділитися на інших сайтах


  • 2 weeks later...

зачем отвечать на такие темы, вот вопрос.

 

раньше мне на форуме было интересно и я не пропускал ни одного нового сообщения(этот список был пуст https://opencartforum.com/index.php?app=core&module=search&do=viewNewContent&search_app=forums&sid=e9711c188ec9b776f66c3d2e36767921&search_app_filters). можете себе представить?

 

вот это совсем жесть, даже не знаю как комментировать

Надіслати
Поділитися на інших сайтах

Правила на форуме нормальные сделать надо и все темы которые правилам не соответствуют рубить нафиг.

Для чайников надо вообще сделать отдельный раздел, где продвинутые чайники будут помогать обычным чайникам.

А сейчас на форуме и правила ни о чем и деление на ветки хаотичное.

ИМХО.

Правильные правила под спойлером

1. Прежде, чем создавать тему.
1.1. Прочитайте документацию.
1.2. используйте поиск по форуму.
1.3. Версии ниже CuteNews.RU 030 больше не поддерживаютя, как и оригинальный CuteNews (вам сюда по этому поводу).
2. Темы и сообщения.
2.1. Тема должна содержать понятное название. "Помогите", "Глюк" и т.п. к числу понятных не относятся.
2.2. Сформулируйте свой вопрос прежде, чем писать его. Все вопросы а-ля "это, того, так бы, сяк бы" будут проигнорированы и перемещены в "Каку" потому что другим людям такие темы никак не помогут.
2.3. В теле сообщения (подпись и заголовок не являются телом сообщения!) должна быть указана версия скрипта: CuteNews.RU 2.5, Strawberry 1.1. и тип базы: textSQL, MySQL. Каждая версия имеет различия и при ответе это учитывается.
2.4. Используйте тег CODE при оформлении кода.
2.5. Одна тема должна содержать один вопрос и вопросы, связанные с решением текущего. Не надо создавать одну тему с сотнями вопросов или нахрапом "чтоб тему не создавать" подписывать свой вопрос. Надо! Отдельную тему создавать надо.
2.6. Будьте внимательны при выборе форума, в котором создаёте тему.
2.7. Ссылки должны быть кликабельны, не надо искажать их в постах.
2.8. Ссылки с партнёрскими id считаются спамом.
2.9. Когда вы что-то спрашиваете, а потом сами решаете проблему, то распишите как и что делали. Другим может пригодиться.
3. Привлечение внимания.
3.1. Запрещено привлекать внимание к своему вопросу через отправку личных сообщений (ПМ, почта).
3.2. Пользователи, привлекающие к себе внимание и бесцельно, либо только ради обращения на себя внимания, нажимают кнопку "Сообщить модератору" (report) немедленно банятся.
3.3. Привлечение внимания к посту за счёт изменения шрифта вроде: заголовок или сообщение в ВЕРХНЕМ РЕГИСТРЕ, >25% сообщения отличным от шаблонного шрифтом будут наказываться. Особенно за нецелесообразное использования тегов RULE и M.
3.4. За любой "ап" (бессмысленное поднятие темы для обращения на себя внимания) пользователи наказываются. За несколько "апов" банятся. "Апом" считается пост, поднимающий старую тему или тему без ответа, а также являющийся несодержательным или бесполезным постом. Правило было изменено 17.04.2009, так как оригинал морально устарел. Теперь идущие подряд посты объединяются.
3.5. Игнорирование правил и замечаний расценивается как желание привлечь внимание (особенно с приписками, типа: "может хоть так обратите внимание?..", "вынужден нарушить правила..." и т.п.).
3.6. Дублирование тем или дублирование постов в разных темах - одна из самых раздражающих форм привлечения внимания. Так нельзя делать. Н-е-л-ь-з-я. А забанить за такую фигню можно. М-о-ж-н-о.
4. Конфликты.
4.1. За споры пользователь может быть наказан. Спорить можно в форуме "Флуд", жаловаться на администрацию и модераторов - в форуме "Жалобы". Правило было изменено 15.04.2009, так как оригинал морально устарел. Теперь можно выносить часть постов в другую тему.
4.2. Правила форума можно и нужно обсуждать, но только в форуме жалоб.
5. Наказания.
5.1. Банить на срок более двух суток могут только администраторы, исключения распространяется лишь на спамеров и только в том случае, когда постов рекламного характера у "подозреваемого" >=50% от общего количества его постов.
5.2. Категорически запрещено банить по IP.
5.3. Банить за нарушения правил можно только в случае, когда пользователь нарочито нарушает правила.
5.4. Сообщения, содержащие флуд, должны быть перемещены в отдельную ветку и подходящий теме дискуссии форум.
6. Кака-форум.
6.1. Темы нарушающие правила навсегда переносятся в форум "Кака". При каком количестве нарушений, и переносить ли вообще тему в каждом отдельной ситуации, решают модераторы форума.
6.2. Если ваша тема была перенесена в "Каку", то следует создать новую тему, избегая ошибок, допущенных при создании предыдущей.

  • +1 1
Надіслати
Поділитися на інших сайтах

cmd, виртуальный +1, правила форума - ни о чем, модерирование соответствует правилам - щадящее, вот и поток "неадекватов" ожидаемый.

Простейший пример, от которого у меня как у постояльца уже тик левого глаза, я говорю о теге spoiler, итак, напомню, что в данном посте я действую не нарушая правил форума.

У меня проблема где-то в этом файле (и вам ещё повезло, что я знаком с тегом code):

<?php
class ModelAccountCustomer extends Model {
	public function addCustomer($data) {
		if (isset($data['customer_group_id']) && is_array($this->config->get('config_customer_group_display')) && in_array($data['customer_group_id'], $this->config->get('config_customer_group_display'))) {
			$customer_group_id = $data['customer_group_id'];
		} else {
			$customer_group_id = $this->config->get('config_customer_group_id');
		}
		
		$this->load->model('account/customer_group');
		
		$customer_group_info = $this->model_account_customer_group->getCustomerGroup($customer_group_id);
		
      	$this->db->query("INSERT INTO " . DB_PREFIX . "customer SET store_id = '" . (int)$this->config->get('config_store_id') . "', firstname = '" . $this->db->escape($data['firstname']) . "', lastname = '" . $this->db->escape($data['lastname']) . "', email = '" . $this->db->escape($data['email']) . "', telephone = '" . $this->db->escape($data['telephone']) . "', fax = '" . $this->db->escape($data['fax']) . "', salt = '" . $this->db->escape($salt = substr(md5(uniqid(rand(), true)), 0, 9)) . "', password = '" . $this->db->escape(sha1($salt . sha1($salt . sha1($data['password'])))) . "', newsletter = '" . (isset($data['newsletter']) ? (int)$data['newsletter'] : 0) . "', customer_group_id = '" . (int)$customer_group_id . "', ip = '" . $this->db->escape($this->request->server['REMOTE_ADDR']) . "', status = '1', approved = '" . (int)!$customer_group_info['approval'] . "', date_added = NOW()");
      	
		$customer_id = $this->db->getLastId();
			
      	$this->db->query("INSERT INTO " . DB_PREFIX . "address SET customer_id = '" . (int)$customer_id . "', firstname = '" . $this->db->escape($data['firstname']) . "', lastname = '" . $this->db->escape($data['lastname']) . "', company = '" . $this->db->escape($data['company']) . "', company_id = '" . $this->db->escape($data['company_id']) . "', tax_id = '" . $this->db->escape($data['tax_id']) . "', address_1 = '" . $this->db->escape($data['address_1']) . "', address_2 = '" . $this->db->escape($data['address_2']) . "', city = '" . $this->db->escape($data['city']) . "', postcode = '" . $this->db->escape($data['postcode']) . "', country_id = '" . (int)$data['country_id'] . "', zone_id = '" . (int)$data['zone_id'] . "'");
		
		$address_id = $this->db->getLastId();

      	$this->db->query("UPDATE " . DB_PREFIX . "customer SET address_id = '" . (int)$address_id . "' WHERE customer_id = '" . (int)$customer_id . "'");
		
		$this->language->load('mail/customer');
		
		$subject = sprintf($this->language->get('text_subject'), $this->config->get('config_name'));
		
		$message = sprintf($this->language->get('text_welcome'), $this->config->get('config_name')) . "\n\n";
		
		if (!$customer_group_info['approval']) {
			$message .= $this->language->get('text_login') . "\n";
		} else {
			$message .= $this->language->get('text_approval') . "\n";
		}
		
		$message .= $this->url->link('account/login', '', 'SSL') . "\n\n";
		$message .= $this->language->get('text_services') . "\n\n";
		$message .= $this->language->get('text_thanks') . "\n";
		$message .= $this->config->get('config_name');
		
		$mail = new Mail();
		$mail->protocol = $this->config->get('config_mail_protocol');
		$mail->parameter = $this->config->get('config_mail_parameter');
		$mail->hostname = $this->config->get('config_smtp_host');
		$mail->username = $this->config->get('config_smtp_username');
		$mail->password = $this->config->get('config_smtp_password');
		$mail->port = $this->config->get('config_smtp_port');
		$mail->timeout = $this->config->get('config_smtp_timeout');				
		$mail->setTo($data['email']);
		$mail->setFrom($this->config->get('config_email'));
		$mail->setSender($this->config->get('config_name'));
		$mail->setSubject(html_entity_decode($subject, ENT_QUOTES, 'UTF-8'));
		$mail->setText(html_entity_decode($message, ENT_QUOTES, 'UTF-8'));
		$mail->send();
		
		// Send to main admin email if new account email is enabled
		if ($this->config->get('config_account_mail')) {
			$message  = $this->language->get('text_signup') . "\n\n";
			$message .= $this->language->get('text_website') . ' ' . $this->config->get('config_name') . "\n";
			$message .= $this->language->get('text_firstname') . ' ' . $data['firstname'] . "\n";
			$message .= $this->language->get('text_lastname') . ' ' . $data['lastname'] . "\n";
			$message .= $this->language->get('text_customer_group') . ' ' . $customer_group_info['name'] . "\n";
			
			if ($data['company']) {
				$message .= $this->language->get('text_company') . ' '  . $data['company'] . "\n";
			}
			
			$message .= $this->language->get('text_email') . ' '  .  $data['email'] . "\n";
			$message .= $this->language->get('text_telephone') . ' ' . $data['telephone'] . "\n";
			
			$mail->setTo($this->config->get('config_email'));
			$mail->setSubject(html_entity_decode($this->language->get('text_new_customer'), ENT_QUOTES, 'UTF-8'));
			$mail->setText(html_entity_decode($message, ENT_QUOTES, 'UTF-8'));
			$mail->send();
			
			// Send to additional alert emails if new account email is enabled
			$emails = explode(',', $this->config->get('config_alert_emails'));
			
			foreach ($emails as $email) {
				if (strlen($email) > 0 && preg_match('/^[^\@]+@.*\.[a-z]{2,6}$/i', $email)) {
					$mail->setTo($email);
					$mail->send();
				}
			}
		}
	}
	
	public function editCustomer($data) {
		$this->db->query("UPDATE " . DB_PREFIX . "customer SET firstname = '" . $this->db->escape($data['firstname']) . "', lastname = '" . $this->db->escape($data['lastname']) . "', email = '" . $this->db->escape($data['email']) . "', telephone = '" . $this->db->escape($data['telephone']) . "', fax = '" . $this->db->escape($data['fax']) . "' WHERE customer_id = '" . (int)$this->customer->getId() . "'");
	}

	public function editPassword($email, $password) {
      	$this->db->query("UPDATE " . DB_PREFIX . "customer SET salt = '" . $this->db->escape($salt = substr(md5(uniqid(rand(), true)), 0, 9)) . "', password = '" . $this->db->escape(sha1($salt . sha1($salt . sha1($password)))) . "' WHERE LOWER(email) = '" . $this->db->escape(utf8_strtolower($email)) . "'");
	}

	public function editNewsletter($newsletter) {
		$this->db->query("UPDATE " . DB_PREFIX . "customer SET newsletter = '" . (int)$newsletter . "' WHERE customer_id = '" . (int)$this->customer->getId() . "'");
	}
					
	public function getCustomer($customer_id) {
		$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "customer WHERE customer_id = '" . (int)$customer_id . "'");
		
		return $query->row;
	}
	
	public function getCustomerByEmail($email) {
		$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "customer WHERE LOWER(email) = '" . $this->db->escape(utf8_strtolower($email)) . "'");
		
		return $query->row;
	}
		
	public function getCustomerByToken($token) {
		$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "customer WHERE token = '" . $this->db->escape($token) . "' AND token != ''");
		
		$this->db->query("UPDATE " . DB_PREFIX . "customer SET token = ''");
		
		return $query->row;
	}
		
	public function getCustomers($data = array()) {
		$sql = "SELECT *, CONCAT(c.firstname, ' ', c.lastname) AS name, cg.name AS customer_group FROM " . DB_PREFIX . "customer c LEFT JOIN " . DB_PREFIX . "customer_group cg ON (c.customer_group_id = cg.customer_group_id) ";

		$implode = array();
		
		if (isset($data['filter_name']) && !is_null($data['filter_name'])) {
			$implode[] = "LCASE(CONCAT(c.firstname, ' ', c.lastname)) LIKE '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "%'";
		}
		
		if (isset($data['filter_email']) && !is_null($data['filter_email'])) {
			$implode[] = "LCASE(c.email) = '" . $this->db->escape(utf8_strtolower($data['filter_email'])) . "'";
		}
		
		if (isset($data['filter_customer_group_id']) && !is_null($data['filter_customer_group_id'])) {
			$implode[] = "cg.customer_group_id = '" . $this->db->escape($data['filter_customer_group_id']) . "'";
		}	
		
		if (isset($data['filter_status']) && !is_null($data['filter_status'])) {
			$implode[] = "c.status = '" . (int)$data['filter_status'] . "'";
		}	
		
		if (isset($data['filter_approved']) && !is_null($data['filter_approved'])) {
			$implode[] = "c.approved = '" . (int)$data['filter_approved'] . "'";
		}	
			
		if (isset($data['filter_ip']) && !is_null($data['filter_ip'])) {
			$implode[] = "c.customer_id IN (SELECT customer_id FROM " . DB_PREFIX . "customer_ip WHERE ip = '" . $this->db->escape($data['filter_ip']) . "')";
		}	
				
		if (isset($data['filter_date_added']) && !is_null($data['filter_date_added'])) {
			$implode[] = "DATE(c.date_added) = DATE('" . $this->db->escape($data['filter_date_added']) . "')";
		}
		
		if ($implode) {
			$sql .= " WHERE " . implode(" AND ", $implode);
		}
		
		$sort_data = array(
			'name',
			'c.email',
			'customer_group',
			'c.status',
			'c.ip',
			'c.date_added'
		);	
			
		if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
			$sql .= " ORDER BY " . $data['sort'];	
		} else {
			$sql .= " ORDER BY name";	
		}
			
		if (isset($data['order']) && ($data['order'] == 'DESC')) {
			$sql .= " DESC";
		} else {
			$sql .= " ASC";
		}
		
		if (isset($data['start']) || isset($data['limit'])) {
			if ($data['start'] < 0) {
				$data['start'] = 0;
			}			

			if ($data['limit'] < 1) {
				$data['limit'] = 20;
			}	
			
			$sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit'];
		}		
		
		$query = $this->db->query($sql);
		
		return $query->rows;	
	}
		
	public function getTotalCustomersByEmail($email) {
		$query = $this->db->query("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "customer WHERE LOWER(email) = '" . $this->db->escape(utf8_strtolower($email)) . "'");

		
		return $query->row['total'];
	}
	
	public function getIps($customer_id) {
		$query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "customer_ip` WHERE customer_id = '" . (int)$customer_id . "'");
		
		return $query->rows;
	}	
	
	public function isBanIp($ip) {
		$query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "customer_ban_ip` WHERE ip = '" . $this->db->escape($ip) . "'");
		
		return $query->num_rows;
	}	
}
?>
P.S. "Свежак" по поводу тега spoiler, cmd должен оценить.
  • +1 1
Надіслати
Поділитися на інших сайтах


ага, или пишет, ошибка в 312 строке и полный листинг кода... называется, что "пальцем в массив..."

Надіслати
Поділитися на інших сайтах

опять упираемся в нехватку модераторских рук

 

А на счет "хамовитости" - на этом форуме действительно присутствует некая фривольность со стороны многих постояльцев форума и это нормально. 

Простые заказчики, любители и просто залетные птички - привыкли что на всяких фриланс биржах идет жесткая борьба за каждый заказ и каждый фрилансер стелиться перед заказчиком, предлагая условия работы соблазнительней предыдущего...
А тут у нас не фриланс биржа, а сообщество. И причина активного участия на форуме в первую очередь заключается в общих интересах к движку, а возможность получить заказ это уже как следствие. 

 

Надіслати
Поділитися на інших сайтах


опять упираемся в нехватку модераторских рук

 

А на счет "хамовитости" - на этом форуме действительно присутствует некая фривольность со стороны многих постояльцев форума и это нормально. 

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

А тут у нас не фриланс биржа, а сообщество. И причина активного участия на форуме в первую очередь заключается в общих интересах к движку, а возможность получить заказ это уже как следствие. 

 

Во фрилансе  меньше квалификация разработчиков, меньше специализация (то там "100 г", то там), поэтому "жесткая" борьба.

А здесь, в сообществе,  узкая специализация, поэтому и квалификация выше, так как разработчики знают все подводные камни opencart

 

А заказчики странные, я как посмотрел, то там кинули (или сделали "спецы" с низкой квалификацией), то там. Как они не боятся заказывать хрен знает у кого.

 

Уважаемые заказчики, "красивые и сладкие речи"  - не признак профессионализма.

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.