Перейти к содержанию
cmd

Войти или зарегистрироваться?

Рекомендуемые сообщения

У меня родилась шутка, которая может быть полезной:

<?php
$fucking_shit = '<a href="http://opencart.localhost/index.php?route=account/login">Войти</a> или <a href="http://opencart.localhost/index.php?route=account/register">зарегистрироваться</a>';
//$fucking_shit_en = 'Welcome visitor you can <a href="http://opencart.localhost/index.php?route=account/login">login</a> or <a href="http://opencart.localhost/index.php?route=account/register">create an account</a>';
echo 'This is '.$fucking_shit;
echo '<hr />';
$pattern = '/<a(.*?)href=[\"\']([a-z0-9]+)\:\/\/(.*?)\/?[\"\'](.*?)>(.*?)<\/a>/i';
$fucking_shit = preg_match_all( $pattern, $fucking_shit, $well_done );
echo 'Login link:  '.$well_done['2'][0] .'://'. $well_done['3'][0];
echo '<br />';
echo 'Reg link:  '.$well_done['2'][1] .'://'. $well_done['3'][1];
echo '<hr />';
echo 'Login txt: '.$well_done['5'][0];
echo '<br />';
echo 'Reg txt: '.$well_done['5'][1];
echo '<hr />';
echo '<pre>';
print_r($well_done);
echo '</pre>';

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

Как вам решение? Есть другие варианты?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

мм? а в чем, собственно, вопрос или полезность?

чего ради эти извращения с регуляркой?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я вот тоже думаю не могу что-то въехать

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну, если не надо, то не надо :-) А вообще, в шаблоне, если он на продажу, может захотеться сделать кнопочки "Вход" и "Регистрация". Но править языковые файлы, контроллеры и добавлять vqmod - это нарушение принципов шаблонизации. А так и волки и овцы...

UPD:

afwollis, milus, встречный вопрос: у вас есть решение лучше? Был бы очень признателен за хорошую мысль.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
не знаю как по мне проще изменить 2 строчки в языковом файле

1. Это привязывает шаблон к языкам, которые Вы знаете. А если у Вас эстонец купит шаблон? Ему надо лезть в свой языковой файл и добавлять там Ваши строчки. Добавит косо, сохранит в кодировке ANSI, вылезет у него ошибка JS и он к Вам в комментарии к шаблону напишет, что Вы продаете неработоспособный шаблон и будет в чем-то прав.

2. У Вас противоречие.

не знаю как по мне проще изменить 2 строчки в языковом файле
как по мне наличие кода в файлах шаблонов тоже вроде как бы не очень.

Значит вызывать $this->language->get() из шаблона можно (хотя это контекстный метод и его-то как раз вызывать следует в последую очередь), а обычная рягулярка это извращение? :-) Или Вы имели ввиду "добавить пару строк в языковой файл и контроллер"?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

не знаю насколько лучше, но мне тоже не нравятся эти записи в шапке, поэтому как правило я меняю в catalog/language/english/common/header.php


$_['text_welcome']        = 'Welcome visitor you can <a href="%s">login</a> or <a href="%s">create an account</a>.';
$_['text_logged']         = 'You are logged in as <a href="%s">%s</a> <b>(</b> <a href="%s">Logout</a> <b>)</b>';

на


$_['text_welcome']        = '<a href="%s">Login</a><a href="%s">Register</a>';
$_['text_logged']         = '<a href="%s">%s</a><a href="%s">Logout</a>';

ну и тут же добавляю стили, чтобы выглядело в виде баттонов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

milus, хитро. Наверно, это лучший из вариантов с редактированием того, что лучше не редактировать :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

пожалуй :-D

Поделиться сообщением


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

Извините, но я не уверен, что это относится к хорошим шаблонам. Даже очень сложную кастомизацию (вплоть до перезаписи файлов ядра) можно полностью автоматизировать, добавив в админку один пустой модуль (или не пустой).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Это не правильно.. Потому что невозможно! в админку запихнуть абсолютно все настройки, которые возможно сделать средствами css и html. Это способ для ленивых пользователей сделать что-то ничего не умея. А потом зайти на форум и задать 100500 вопросов "А как..?"

Плюс эти темы идут с отдельными модулями, для их работы нужно изменить кучу кода движка (см. шопику), имеют очень сложную структуру с кучей условий так как все формируется динамически из настроек и в следствии чего работают медленнее обычных тем. И все для того, чтобы не добавлять пару строк в css или html? Это знания которые можно получить за 3 дня пройдя какой-то онлайн курс - html для чайников..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

sv2109, а по САБЖу скажешь что-то? :-)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Полностью согласен с sv2109. Были уже попытки, чтобы все настройки в CMS делать через админку, получился Битрикс :?

Править код все же проще. Спроси у линуксоидов.

sv2109, а по САБЖу скажешь что-то? :-)

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

Еще можно при помощи jQuery сделать тоже самое :-) А еще при помощи CSS. Но это все какиет-то костыли.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Еще можно при помощи jQuery сделать тоже самое :-) А еще при помощи CSS. Но это все какиет-то костыли.

Решение на JS я представляю примерно (хотя с ходу сам не напишу), а что с CSS?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

<span id="shit">Welcome visitor you can <a href="%s">login</a> or <a href="%s">create an account</a>.</span>

#shit {
color: #цвет фона;
}
#shit a {
color: #обычный цвет;
}

Но это из серии индусского кода :-)

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

sv2109, а по САБЖу скажешь что-то? :-)

Скажу что называть переменные $fucking_shit это очень непрофессионально, даже если эта переменная используется для примера. Название переменной должно говорить о содержании этой переменной, такой код намного легче читать и поддерживать.

А по сабжу.. с одной стороны это не правильно - логика в шаблоне, лучше конечно поменять языковый файл. НО любой кто занимался поддержкой модулей знает сколько проблем для разработчика доставляют такие вещи.. даже если в инструкции будет четко указано что где и как нужно поменять.. все равно найдется 100500 ламеров которые это или не прочитают или не поймут или где-то накосячат, после чего будут терроризировать разработчика что у "У меня ничего не работает". И в данном случае имхо лучше добавить 1 регулярку в шаблон и избавить себя от этих вопросов.

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

+ те скобки, что не используются потом лучше писать так ( :?) тогда они не попадают в массив $well_done и код стает более читабельным. $well_done я бы тоже поменял название из него не понятно что в переменной

+ добавить комментарии чтобы было понятно что эта регулярка делает и для чего она нужна так как с ходу даже человек знакомый с регулярными выражениями не поймет что она делает, а незнакомый вообще будет в шоке от увиденного.. например какой-то верстальщик, который шаблон откроет)) Будет так - http://anongallery.o...-cant-sleep.jpg )))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

toporchillo, эпично! А если ещё float: left; и display: block для ссылок, то можно даже спозиционировать нормально...

sv2109, согласен, регулярку можно раза в 2 упростить. Даже можно строковыми функциями все сделать, но тогда кода будет больше.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.