Что такое код getcurdir

getcurdir

Эта функция не определена стандартом ANSI С.

Функция getcurdir() копирует имя текущего рабочего каталога диска, заданного параметром drive, в строку, на которую указывает dir. Значение 0 для параметра drive соответствует диску по умолчанию. Диску А соответствует значение 1; В — значение 2 и т.д. Строка, на которую указывает dir, должна иметь длину как минимум MAXDIR байт. Макрос MAXDIR определен в файле dir.h. Имя каталога не будет содержать спецификации диска и не будет содержать начальных обратных слэшей.

Функция getcurdir() в случае успеха возвращает 0, а при ошибке, значение —1.

Как в bitrix проверить текущую и корневую директорию

CSite::InDir(‘/about/’) — проверка директории с вложением

GetCurDir() — Возвращает каталог текущей страницы относительно корня. Не статический метод.

GetCurPage() — Возвращает путь к текущей странице относительно корня. Не статический метод. Если файл текущей страницы явно не определён, то определение индексного файла каталога будет проходить по алгоритму представленному в описании функции GetDirIndex.

SITE_DIR — путь к текущей web директории сайта

В первом случае $APPLICATION->GetCurPage() — возвращает нам текущий путь от корня сайта

выполнится только для раздела ‘/about/’ и не выполнится для /about/life/

выполнится для всех подкаталогов раздела about, т.е. если у нас будет путь /about/life/ то это условие выполнится

Полезные методы для начала работы с 1С-Битрикс

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

Чтобы указать путь к папке с используемым шаблоном, существует константа SITE_TEMPLATE_PATH. Например, подключим css-файл со стилями:

Проверка на раздел и конкретную страницу

Следующие два метода помогут узнать текущую директорию и текущую страницу. Очень удобно, например, когда необходимо показать один блок на одной странице, а другой блок — на другой.

Если у вас на сайте есть новости или товары, и вы хотите сделать что-то с конкретной детальной страницей, то метод $APPLICATION->GetCurDir(); уже не поможет. Для такого случая нужно использовать метод $APPLICATION->GetCurPage(true);:

Небольшое уточнение: метод $APPLICATION->GetCurDir(); не может применяться к детальной странице, но может применяться к странице раздела — «/catalog/phones/».

Проверка на авторизацию и принадлежность к администраторам

Проверка на админа очень полезна при разработке проекта, или при внесении каких-либо изменений на сайт. В таком случае обычные посетители будут видеть сайт в привычном виде, а вы сможете делать то, что вам нужно. Вот пример:

Кроме проверки на админа существует так же проверка на то, является ли посетитель авторизированным на сайте, или это случайно зашедший гость. Очень удобно, когда нужно показать важный текст или раздел лишь зарегистрированным людям. Например:

Как видите, все очень просто. Функции простые, полезные и даже необходимые при разработке проектов.

Условие: Если папка то применяем. в Битрикс

Бывает, стоит задача применить какой-либо стиль или вывести конкретный кусочек кода для дирректории. Для этого в Битрикс можно воспользоваться параметром CMain::GetCurPage. А как расскажу на примере.

Итак согласно документации Битрикс:

string CMain::GetCurPage(bool get_index_page=null)
Возвращает путь к текущей странице относительно корня без параметров.

Как нам это может пригодится:
Задача применить класс для li.company в разделе /company/ при этом на любой другой для этогоже li должен применяться li.nocompany

Элементарно в общем.

Добавлено:

GetCurDir позволяет применить условие для каталога, если нужно применить для каталога и всех внутренних подкаталогов, можно воспользоваться if(CSite::InDir():

Пример из реальной жизни: на моем сайте часть разделов (портфолио, форум, дизайн) имеет одноколоночную верстку, дабы не плодить отдельные шаблоны, я просто указал в каких разделах не выводить aside

GetCurDir()==’/designes/ready-made-html-layouts/’)
|| ($APPLICATION->GetCurDir()==’/designes/adaptive-html/’)
|| ($APPLICATION->GetCurDir()==’/portfolio/’)
|| ($APPLICATION->GetCurDir()==’/forum/’)
):?>

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

Определяем текущий уровень раздела в каталоге

Если нужно назначить некое условие для заранее заданного уровня подраздела в каталоге Битрикс, можно воспользоваться вот таким условием

Что такое код getcurdir

Header File

Category

Directory Control Routines

Prototype

int getcurdir(int drive, char *directory);

int _wgetcurdir(int drive, wchar_t *directory );

Description

Gets current directory for specified drive.

getcurdir gets the name of the current working directory for the drive indicated by drive. drive specifies a drive number (0 for default, 1 for A, and so on). directory points to an area of memory of length MAXDIR where the null-terminated directory name will be placed. The name does not contain the drive specification and does not begin with a backslash.

Return Value

getcurdir returns 0 on success or -1 in the event of error.

Как сделать ЧПУ

Цитата

Да будет ЧПУ сказал Генеральный и сайт заговорил по человечески

Уже не первый раз наш Генеральный директор настоятельно просит поставить ЧПУ на сайт (сайты в основном мы пишем под битрикс). Ну и против его слова не попрешь. Сидели, разбирались с регулярными выражениями, так как хелп представленный Bitrix описывает только этот вариант.

Илон Маск рекомендует:  Все об authtype или авторизация в apache

Но недавно, настраивая фильтры на одном из клиентских сайтов и воспользовавшись функцией $APPLICATION->GetCurDir(), в голову пришла мысля как все можно упростить. Как говорится лучше поздно, чем никогда.

Итак поехали. Начнем с одной из самых распространенных задач — новости на сайте.
Обычно они состоят из страницы списка новостей и детальной страницы.
По традиции размещаем их в директории news.

Кидаем туда соответствующие компоненты, настраиваем и вуаля — все работает. Список выводится, переход на новости тоже есть. Но ЧПУ пока нет.

Следующим шагом открываем файл в корне сайта urlrewrite.php и добавляем следующий код.

В итоге должно получиться следующее:

В двух словах как это работает.
Если пользователь обращается по адресу /news/текст, то прежде чем пользователь перейдет на страницу detail.php будет сделана проверка, нет ли такого файла в директории и если нет, пользователь будет перенаправлен на страницу /news/detail.php.

Таким образом, если пользователь зайдет по адресу http://site.ru/news/ — то он увидит список новостей. Тоже самое произойдет если он укажет адрес http://site.ru/news/index.php.

Пол дела сделали.

Теперь добавляем небольшой код в начало страницы detail.php. Напомню. Адрес страницы с ЧПУ выглядит следующим образом: http://site.ru/news/ЧПУ-код

1 строчка кода разбирает URL на части. Нам интересна 2-я переменная. Вот распечатка массива

Второй строчкой собираем новый URL.

Ну и третьей строкой вызываем bitrix функцию которая инициализирует переменные и массивы $_GET, $HTTP_GET_VARS, $_REQUEST, $GLOBALS параметрами переданными в url.

Вот и все. ЧПУ работает. Ура.

В заключении приведу код ЧПУ

В нем есть особенность. Он умет перенаправлять со старых ссылок на новые. Очень полезная вещь для SEO.

Редактирование #WORK_AREA#

30.04.2014, 16:35

#WORK_AREA# — редактировать содержимое
В #WORK_AREA# в ставлен блок catalog.section.list Как его убрать, что за шаблон в котором он.

Возможно, глупая тема про WORK_AREA
В моем шаблоне WORK_AREA стоит в футере, практически в самом низу. Установила плагин лайтбокс и с.

Запрет на ручное редактирование и разрешение на программное редактирование
Добрый день, коллеги. Вопрос следующий. Возможно ли инструментами VBA установить запрет на ручное.

Редактирование БД
Здравствуйте, вот создаю в Delphi 7 проект, нужна работа с базами данных. так вот использую.

Редактирование в IJ
Всем снова здрасьте. Подскажите почему в интелидж айдиа я не могу отредактировать новое приложение.

30.04.2014, 18:38 2

Этот вот кусок полный шаблон?
А где , где ?

Поищите что такое «верстка сайта» и как она правильно делается. Потом пройдите курс «Разработчик битрикс фреймворк», в частности часть про шаблоны.

07.05.2014, 18:03 3

#WORK_AREA# — это само содержимое страницы.

Например, вы создали страницу index.php. По умолчанию она выводит «Text here. »
Вот именно «Text here. » и есть #WORK_AREA#

22.09.2020, 14:50 4
22.09.2020, 14:50
08.10.2020, 10:12 5
08.10.2020, 11:25 6

Фигасе вы тему воскресили. А по делу. А как вы хотите? Чтобы точно и полно ответить на этот вопрос, надо несколько страниц текста набрать. При этом все уже расписано в совершенно бесплатном курсе от самой компании Битрикс.
Т.е. вы хотите чтоб сэкономили ваше время, но потратили кучу своего, на то, что уже разжевано?

Например: «Где редактировать #WORK_AREA#?». Точный ответ на него:
1. верстку во всех файлах проекта (соответственно указать конкретные файлы может только человек имеющий доступ к проекту) где подключается заголовок и подвал
2. содержимое. А вот тут вообще веселуха: инфоблоки, таблицы сторонних модулей, подключаемые файлы, языковые файлы, код различных модулей (ведь контент может гернерироваться, может получаться из внешних источников), подключаемые файлы, переменные значения которых хранятся в опциях проекта, шаблоны компонентов (а шаблоны могут переключаться в зависимости от ситуации).

А это лишь один из вопросов, ответ на который должен был узнать автор топика.

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

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

08.10.2020, 14:01 7

Человек спросил о том как стилизовать страницу, это не «реальная вещь». О том как выравнивать текст, как добавлять картинки и т.д. Для этого нужно понимать что такое html вообще и какие обязательные блоки есть на странице, в частности в его примере нет обязательных для всех страниц тэгов body и head. Это прям базис, первая вещь которую человек узнает когда знакомится с html. То есть на вопрос «как стилизовать страницу?» ответ «ознакомиться с понятием верстка сайта». Какие обязательные блоки должны быть и как подключать стили. Это не стеб и не демонстрация превосходства. Это реальный ответ.

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

Резюме. Не было никакой «реальной вещи» в вопросе. На широкий вопрос обо всем дан широкий ответ о том с чего начать

Как сделать ЧПУ

Цитата

Да будет ЧПУ сказал Генеральный и сайт заговорил по человечески

Уже не первый раз наш Генеральный директор настоятельно просит поставить ЧПУ на сайт (сайты в основном мы пишем под битрикс). Ну и против его слова не попрешь. Сидели, разбирались с регулярными выражениями, так как хелп представленный Bitrix описывает только этот вариант.

Но недавно, настраивая фильтры на одном из клиентских сайтов и воспользовавшись функцией $APPLICATION->GetCurDir(), в голову пришла мысля как все можно упростить. Как говорится лучше поздно, чем никогда.

Итак поехали. Начнем с одной из самых распространенных задач — новости на сайте.
Обычно они состоят из страницы списка новостей и детальной страницы.
По традиции размещаем их в директории news.

Кидаем туда соответствующие компоненты, настраиваем и вуаля — все работает. Список выводится, переход на новости тоже есть. Но ЧПУ пока нет.

Следующим шагом открываем файл в корне сайта urlrewrite.php и добавляем следующий код.

В итоге должно получиться следующее:

В двух словах как это работает.
Если пользователь обращается по адресу /news/текст, то прежде чем пользователь перейдет на страницу detail.php будет сделана проверка, нет ли такого файла в директории и если нет, пользователь будет перенаправлен на страницу /news/detail.php.

Таким образом, если пользователь зайдет по адресу http://site.ru/news/ — то он увидит список новостей. Тоже самое произойдет если он укажет адрес http://site.ru/news/index.php.

Пол дела сделали.

Теперь добавляем небольшой код в начало страницы detail.php. Напомню. Адрес страницы с ЧПУ выглядит следующим образом: http://site.ru/news/ЧПУ-код

1 строчка кода разбирает URL на части. Нам интересна 2-я переменная. Вот распечатка массива

Второй строчкой собираем новый URL.

Ну и третьей строкой вызываем bitrix функцию которая инициализирует переменные и массивы $_GET, $HTTP_GET_VARS, $_REQUEST, $GLOBALS параметрами переданными в url.

Вот и все. ЧПУ работает. Ура.

В заключении приведу код ЧПУ

В нем есть особенность. Он умет перенаправлять со старых ссылок на новые. Очень полезная вещь для SEO.

Как сделать QR-код со ссылкой на сайт

Всем привет. Сегодня хотел бы поговорить с вами о том, что такое QR-код, зачем он нужен, как его использовать и как сделать QR-код для своего landing page.

Думаю, это достаточно интересный инструмент, которому можно найти массу применений.

Что такое QR-код

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

Если проще, то QR-код — это черно-белый квадрат с геометрическим рисунком, в котором зашифрована информация (текст, ссылка на сайт, визитная карточка, sms-сообщение). Эту информация считывается при помощи приложения на смартфоне.

Зачем нужен QR-код и где его использовать

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

Итак, как вы уже, наверное, догадались QR-код со ссылкой на сайт можно использовать на различной полиграфической продукции. Например, на визитках, билбордах, газетах и журналах.

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

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

В южной Корее, сеть магазинов придумала устройство для отбрасывания тени в виде QR-кода. Таким образом, когда солнце было в зените, считав такой код, можно было получить скидки на товары. Так, они подняли продажи в «неходовое» дневное время.

Нью-йоркская организация Notify NYC по всему городу расположила изображения QR-кодов, считав которые, можно автоматически вызвать экстренные службы.

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

Как видите, вариантов использования QR-кодов — масса. Все ограничивается только вашей фантазией.

Как получить QR-код со ссылкой на свой сайт

Теперь самое интересное и самое простое. Давайте получим QR-код со ссылкой на свой landing page. Для этого воспользуемся одним из специальных сайтов-генераторов QR-кодов.

Я воспользуюсь первым сервисом. Для того, чтобы получить QR-код со ссылкой на сайт, просто укажите его адрес:

Жмите кнопку «Создать код» и справа появится изображение и постоянная ссылка на него:

Вот и все. Теперь вы знаете как сделать QR-код со ссылкой на свой сайт. А какие вы знаете интересные способы применения QR-кодов?

Что такое GLN и зачем он нужен поставщику торговой сети

Когда компания обращается к провайдеру электронного документооборота для подключения к сервисам EDI и ЭДО, ей необходимо получить специальный идентификационный номер – GLN.

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

Что такое GLN

В двух словах: GLN (Global Location Number) переводится как Глобальный номер места нахождения или Глобальный идентификационный номер. Это специальный международный код, применяемый в системах электронного обмена данными и электронной коммерции. С его с помощью можно точно и кратко определить расположение юридических лиц, их функциональных подразделений и физических объектов – складов, магазинов, производственных помещений, транспортных единиц.

Номер состоит из 13 цифр. Начинается с двух- или трёхзначного национального префикса (в России – с 460 до 469), а заканчивается контрольным числом. Основное требование к GLN – его уникальность. Код, присвоенный какому-либо предприятию, не должен повторяться нигде.

Поскольку EDI работает по достаточно жёстким стандартам, без GLN электронный обмен данными невозможен. Это ключевая концепция EDI. И в России, и в Бразилии, и в Финляндии компании идентифицируются по GLN. Отчасти аналогом GLN в России можно назвать ОКПО, ОКВЭД, БИК, ИНН и прочие. Все они призваны идентифицировать предприятия среди сотен тысяч других. Но поскольку в каждой стране приняты свои системы кодирования, при подготовке международных коммерческих документов нужно использовать единый формат. GLN решает проблему как универсальный способ идентификации.

Сегодня GLN поддерживается международной ассоциацией GS1, ведающей вопросами стандартизации учёта и штрихового кодирования логистических единиц. У ассоциации есть представительство в России.

Зачем нужен GLN

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

В электронном документообороте, особенно при прямом взаимодействии между ERP, рабочими станциями и информационными системами разных деловых партнёров, достаточно указать только номер GLN. Используя его, можно автоматически извлечь всю необходимую информацию. Данные, доступ которым открывается по номеру GLN, хранятся партнёрами во внутренних системах и в глобальном реестре. Обновление происходит централизовано.

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

Если взять правила присвоения номеров GLN, то можно увидеть четыре основных случая их использования для идентификации:

  • для определения юридического лица
  • для фактического нахождения объекта
  • для определения функции объекта
  • для цифрового места нахождения.

Когда компании нужно идентифицировать отдельные объекты в цепочках поставок, то для каждого их них (например, распределительных центров в разных регионах) заводится отдельный GLN. Таким образом, партнёры смогут отличить один РЦ от другого при электронном документообороте.

Более того, GLN позволяет определять не только расположение объектов, но и отдельные части этих мест – этажи, помещения, определённые места на полках, дворы рядом со зданиями, причалы в порту и т. п.

Используя специальные компоненты расширения номера, можно даже не заводить отдельный GLN и для разных стеллажей на складе использовать один GLN (в виде GLN+x, GLN+y, GLN+z). Это особенно востребованно для решений по управлению и слежению за товарными запасами. Такие уточнения к номерам дают возможность организовать наглядное представление о ситуации. Например, указание взять партию товара с номером GLN+x и отправить на номер GLN+z – значит забрать товар с определённого места на складе и выставить на конкретную полку в нужном магазине.

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

Если одна компания выполняет сразу несколько отличающихся функций (например, занимается 3PL-логистикой и ритейлом), то номера можно закрепить за соответствующими подразделениями или отделами в составе организации. Ведь торговым партнерам необходимо отличать одну функцию от других (сбыт, логистику, бухгалтерию).

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

В случае с цифровым местонахождением, GLN фиксирует электронный адрес, использующийся для связи между компьютерными системами. Это необходимо, если цифровые контакты (шлюз EDI, банк данных, система ERP, система управления складом и т. д.) непосредственно участвуют в транзакциях и их нужно отдельно идентифицировать.

Чтобы считать информацию из GLN, номера кодируются либо штрих-кодом, либо метками EPC / RFID для автоматической идентификации мест хранения, назначения паллет, происхождения продукта и т. д. Это позволяет проводить более эффективную работу по отгрузке и приёмке товара.

Как получить GLN

Если компания-поставщик собирается перейти на электронный обмен данными с торговой сетью, то ритейлер её обяжет получить GLN. Как правило, этот этап идёт следующим после заключения договора и даже до этапа сверки товарного ассортимента (например, такие правила есть у «Магнита» и X5 Retail Group)

Часто на этапе тестирования EDI-обмена можно использовать, так называемый, «фейковый» GLN, создаваемый бесплатно. Но для продуктивной работы потребуется получить официальный номер.

Услуги по внесению информации о предприятии в международную систему GS1 в России через EDI-провайдеров будут стоить около 3 тысяч рублей за один год. Компания может сэкономить, если, к примеру, зарезервирует номер сразу на три года. Это обойдётся, в среднем, в 6 – 6,5 тысяч рублей.

Альтернативный вариант – вступить в саму ассоциацию GS1, члены который могут получить необходимые номера бесплатно. Но здесь главным ограничением является размер вступительных и ежегодных взносов (в сумме – 40 тысяч рублей).

Коротко

А теперь подведём короткий итог о том, что нужно знать и понимать про номер GLN:

  • GLN используется во всем мире, в том числе и в России. Это общепринятый стандарт. Он избавляет от необходимости каждый раз вносить в документы реквизиты и контактные данные.
  • Номер нужно получить обязательно, это один из основных принципов электронного документооборота. Чтобы сэкономить, регистрируйте номера сразу на несколько лет вперёд.
  • С помощью GLN можно идентифицировать любую часть предприятия, отдельные функции компании, филиалы, даже рампу на складе или полку в магазине, если они участвуют в качестве самостоятельного объекта в цепочке поставок. Ваш контрагент будет знать куда привозить товар, а вы – откуда его отгружать.
  • Для схожих объектов мелкого порядка – рядов стеллажей в распределительном центре – можно завести один номер со специальными расширениями. Если структура цепочки поставок сложная и разветвлённая – лучше использовать отдельные GLN.
Илон Маск рекомендует:  Что такое код sendmessage
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL