最近の大規模プロジェクトでは、通常、ページに CNC を使用する必要があります。 サイトのインデックス作成と結果にプラスの影響を与えます。
CNC - 人間が理解できる URL。 つまり、これは URL のラテン語に音訳された部分です。 ロシア語アルファベットの PHP への音訳についてはすでに説明しました。 Bitrix にはそのような機能があり、たとえば、情報ブロックの新しい要素またはセクションが作成されるときに、その要素またはセクションの記号コードがその名前から生成されます。 ただし、要素はすでに作成されているが、シンボリック コードが登録されていない場合はどうすればよいでしょうか。 この場合の解決策を見てみましょう。
//генерация символьных кодов в битриксе //https://dev.1c-bitrix.ru/community/webdev/user/30522/blog/6794/ - оригинальная статья if(!CModule::IncludeModule("iblock")) { echo "Error with iblock module!"; die; } $arParams["IBLOCK_ID"] = 28; //id инфоблока $arParams["LIST_CNT"] = 50; //количество элементов для генерации $arParams["TYPE_WORK"] = "element"; // {section | element} указываем для кого генерировать код $arOrder = array("sort" =>"株式会社",);$arFilter = array("IBLOCK_ID" => $arParams["IBLOCK_ID"], "IBLOCK_LID" => "s1" //サイト名 //"CODE" => "", //"CODE" => false); $arTransParams = array(//(最大コード長,case(小文字,大文字,変更しないでください), //スペースを...に置換,残りの文字を...に置換,余分な置換文字を削除) "max_len" => 100 , "change_case" => "L", // "L" - toLower、"U" - toUpper、false - 変更しない "replace_space" => "-", "replace_other" => "-", "delete_repeat_replace " => true); if($arParams["TYPE_WORK"] == "section")(//セクションの場合 $db_elemens = CIBlockSection::GetList($arOrder, $arFilter, false); $db_elemens->NavStart($arParams["LIST_CNT"] ; エコー」 "; while($ar_res = $db_elemens->GetNext()) ( $transName = CUtil::translit($ar_res["NAME"], "ru", $arTransParams); $arPropArray = Array("CODE" => $transName); $el = 新しい CIBlockSection; $res = $el->Update($ar_res["ID"], $arPropArray);".$ar_res["NAME"]。"は"; //生成結果のフォーマットされた出力用 while($obElement = $db_elemens->GetNextElement()) ( $ar_res = $obElement->GetFields(); $transName = CUtil::translit(trim($ar_res[" NAME" ]), "ru", $arTransParams);//名前からsimコードを生成する関数 $arPropArray = Array("CODE" => $transName."-".$ar_res["ID"],) ;//k 完成したコードに「プレフィックス」を追加します - "-id" $el = new CIBlockElement; $res = $el->Update($ar_res["ID"], $arPropArray);//結果を書き込みます, この要素のコードを書き換えます echo $transName."-".$ar_res["ID"].""; } ?>
"; //結果を出力する ) echo "
シンボリック コード生成の成功に関するメッセージが表示されなくなるまで、別のファイルまたは Bitrix 管理パネルの PHP コンソールで PHP スクリプトを数回実行します。 その結果、対応する CNC の形式のラテン文字列が「文字コード」フィールドに表示されます。
子供用スキー板: lyzhi-detskie
レゴおもちゃ: イグルシュカレゴ
標準国際文字コード。各文字は 7 ビットでエンコードされます。
トピック 電気通信、基本概念 EN ISO 7...コード ISO-7 - 標準国際文字コード (ISO 646 1973)。各文字は 7 桁でエンコードされます。 米国では、このコードのバージョンは ASCII と呼ばれます。 [E.S.アレクセーエフ、A.A. コンピュータシステム工学に関する英露説明辞典。 モスクワ 1993]… …
技術翻訳者向けガイドコード(デジタルコンピュータ内)
- デジタル コンピュータのコード。デジタル コンピュータで情報を表示するための従来の記号システム。 それぞれの K. は独自のアルファベットの記号を使用します。 ほとんどの K. のアルファベットは 2 文字であるか、2 文字のアルファベットの文字で構成されています。 K.の体型はキャラクターによって異なりますが…… IATA航空会社コード
- IATA 航空会社コード 国際航空運送協会 (IATA) によって航空会社に割り当てられた 2 文字または 3 文字の個別識別子。 このコードは、IATA 決議第 762 号に従って、米国協会の本部によって割り当てられています。 ... ... ウィキペディアコード - I (フランス語、ラテン語コーデックス法典から) さまざまな情報を送信、処理、保存 (記憶) するための従来の記号 (シンボル) のシステム。 コード文字の最後のシーケンスはワードと呼ばれます。 異なる文字の数……
ソビエト大百科事典 RADIX-50 - 1 つの 16 ビット ワードに 3 文字を記述できる文字コード。 主にミニコンピュータ、主に PDP 11 (SM コンピュータ) ファミリでファイル名を保存するために使用されます。ファイルシステム
OS RT 11 および RSX 11、モジュール名.... Wikipedia- (Enterprise Systems Connection) IBM zSeries サーバーとサーバー間の情報交換を提供するファイバー チャネル インターフェイス 周辺機器(または別のサーバー)。 アーキテクトサーバーで最初に使用されました...ウィキペディア
住所- 名詞、m.、使用されます。 形態学:(いいえ)何ですか? 住所、何? 住所、(参照)何ですか? 住所、何? 住所、何についてですか? 住所について。 お願いします。 何? 住所、(いいえ)何ですか? 住所、何? 住所、(なるほど)何ですか? 住所、何? 住所、何について? 住所について 1. 誰かの住所…… ドミトリエフの解説辞典
タスクID- 実行中または実行準備ができているタスクに割り当てられた文字コード。 [ドマレフ V.V. 安全性 情報技術。 体系的なアプローチ] トピックス 情報セキュリティ EN タスク識別子 ... - 標準国際文字コード (ISO 646 1973)。各文字は 7 桁でエンコードされます。 米国では、このコードのバージョンは ASCII と呼ばれます。 [E.S.アレクセーエフ、A.A. コンピュータシステム工学に関する英露説明辞典。 モスクワ 1993]… …
パスカル(プログラミング言語)- この記事またはセクションは改訂する必要があります。 Pascal にはモジュール、OOP、その他の新しいトレンドはありません。 拡張機能の説明は、対応する拡張機能に関する記事内にのみ存在する必要があります。
パスカル (言語)- Pascal セマンティクス: 手続き型 実行タイプ: コンパイラー 登場年: 1970 年 著者: Niklaus Wirth Pascal は、高レベルの汎用プログラミング言語です。 最も有名なプログラミング言語の 1 つであり、広く普及しています... ... ウィキペディア
発行日: 2011/12/12
先日、Bitrix の「家具カタログ」情報ブロックのセクションと要素の文字コードを生成する必要がありました。
どうしたの 文字コード情報ブロックのセクションまたは要素内 ビットリックスでは? Bitrixにおける情報ブロック要素(セクション)のシンボリックコードとは、 ニーモニック識別子、これは文字 (ラテン文字と数字) のセットです。 このニーモニック識別子は、サイト上の動的ページのリンク アドレスを生成するために使用できます。 たとえば、「布張り家具」セクションの要素「ソファ コスモス」にシンボル コード「divan-cosmos」がある場合、サイト上のリンクは「/catalog/myagkaya-mebel/divan-cosmos」のようになります。
それは一気に完了しました。主な問題は、どの方法で音訳するかということでした。 最初に考えられるのは、何らかの独自のメソッドを作成することです。 私はすぐにそれを払いのけました。 理由は単純です。結局のところ、これらのシンボリック コードは CMS でどのように生成されるのでしょうか? それらはどのように生成されるのでしょうか? そこで方法があります! はい、そうです。
1つあります 単純な機能、これは何らかの理由で、公式 Bitrix API ドキュメントにはまだ説明されていません。 (この記事の執筆時点 (2011 年 12 月) にはドキュメントに記載がありませんでした)
CUtil::translit($str, $lang, $params = array())
この関数は文字列を音訳します $str舌から $langパラメータ付き $params.
配列パラメータ $params:
新しいバージョンのカーネル (私は 11.5.2 で見た) が登場しました 新しいパラメータ 「safe_chars」、デフォルトは "" で、コメントアウトされた "use_google" もデフォルトは false です。
使用例:
"-","replace_other"=>"-"); $trans = Cutil::translit($name,"ru",$arParams); エコー $trans; ?>
更新。コメントで質問がありました:
「できますか?」 単純な場所情報ブロックをインポートするときに生成された CNC が機能するには、Bitrix に何を登録すればよいですか?」
質問が間違っていて、理解するのが難しいです。 しかし、どうやって 特別な場合例を挙げてみましょう -
このタスクは、CSV から貿易カタログをインポートするときに製品のシンボリック コードを生成することです。
"-","replace_other"=>"-");
$trans = Cutil::translit($name,"ru",$arParams);
$arFields["CODE"] = $trans;
))?>
したがって、CSV ファイルからインポートすると、名前からの音訳である記号コードが自動的に生成されます。
重要な UPD2。
人々はトランスリットが機能しないことについて質問し始めました。コメントを参照してください。 私はそれを理解することにしましたが、現在または古いプロジェクトのいずれでも問題を再現できません。私にとってはすべて問題ありません。 しかし、人々はそうではありませんか?
解決!
問題はエンコーディングが原因です。 .htaccess に追加します。 php_value mbstring.func_overload 2
php_value mbstring.internal_encoding UTF-8
これで解決しない場合はどうすればよいですか?
管理パネルの「サイトチェック」ページに移動し、チェックを実行します。 チェックの結果、エンコードが正しくないというメッセージが引き続き表示されても、動揺する必要はありません。 ホスティング会社に連絡してこれらの設定を修正するか、標準のトランスリット関数を忘れて独自の関数を作成する必要があります。 (そして、コーディングによる他のすべての不具合に驚くのもやめましょう)。 タイプ入力されたテキストは、印刷された文字、つまりグラフィック記号で構成されます。グラフィックシンボルは、テキスト内に表示されるシンボルです。
すべてのグラフィック シンボルが 1 つのセットにまとめられています ユニバーサルシステムユニコード。
- このテーブルの主な唯一の目的。
次のいずれかの方法で、HTML ドキュメントにシンボルを挿入できます。
HTML 内のシンボルのフォント、サイズ、色は、次のようなコードで設定できます。
CHARACTER_CODE
どこ、
Arial - フォント、
10px - ピクセル単位のフォント サイズ、
#ff0000 - フォントのカラーコード (赤)
例えば:
☎ - 文字フォントサイズ 30px、
☎ - シンボルのフォントサイズ 30px、色 - 赤
☎ - 文字フォントサイズ 20px、
☎ - シンボルのフォント サイズ 10px。
注記 特殊文字の挿入に推奨されるフォントは、Arial、Verdana、Tahoma です。 これらのフォントは Unicode 文字を正しく表示し、それ自体が Web アプリケーションによって正しくサポートされます。
記憶術 (ギリシャ語) - 何かを記憶する技術。 ニーモニックは、記憶の対象を何かと関連付けたときに、記憶するのが難しい情報の認識を容易にするために使用されます。
HTML (XHTML) の制御文字は、Web ページの HTML レイアウトで使用される HTML 言語のサービス文字です。 これらの文字がないと HTML テキストを正しく表示できないため、ブラウザはこれらの文字をサポートする必要があります。 制御文字はテキストには表示されず、キーボードから直接入力すると、ページが画面上に描画されるときに実行する何らかのアクションを要求する句読点としてブラウザによって解釈されます。
通常のテキストで制御文字を使用することは許可されており、制御文字は普遍的な概念を象徴しており、ブラウザによって通常の活版文字として解釈されます。 このように HTML テキストでサービス シンボルを使用する場合、入力する必要があるのはシンボル自体の値ではなく、その HTML コードです。 繰り返しますが、そうでないとブラウザはサービス シンボルを行動喚起として認識し、モニター画面に HTML テキストを正しく表示できなくなるからです。
制御文字とその HTML コードは例外なくすべてのブラウザで認識され、理解されます。残念ながら、制御文字とその HTML コードは、誤って表示される可能性のある他の文字については言えません。 さまざまなブラウザあるいは、さらに悪いことに、まったく表示されないこともあります。
長さ N のスペース (通常のスペース) | |||||
長さ M の空間 (ロングスペース) | |||||
- | ソフトハイフン (印刷不可能な文字) | - | | ||
‑ | ハイフン | ‑ |
|||
---|---|---|---|---|---|
- | 長さ N のダッシュ (通常のダッシュ) | - | – | ||
— | 長さ M のダッシュ (em ダッシュ) | — | — | ||
. | ドット | . | |||
, | コンマ | , | |||
… | 楕円 | … |
… |
||
: | 結腸 | : | |||
; | セミコロン | ; | |||
! | 感嘆符 | ! ǃ |
|||
? | 疑問符 | ? | |||
@ | "犬" | @ | |||
* | "星" | * | |||
# | "格子" | # | |||
‘ | 左上の単一引用符 | ‘ | ‘ |
||
’ | 右上の単一引用符 | ’ | ’ |
||
‚ | 右下の単一引用符 | ‚ | ‚ |
||
“ | 左上の二重引用符 | “ | “ |
||
” | 右上の二重引用符 | ” | ” |
||
„ | 右下の二重引用符 | &bdquo | „ |
||
« | 左隅の二重引用符 (ロシア語) | « | « | ||
» | 右隅二重引用符 (ロシア語) | » | » | ||
́ | アクセント記号、例: Vasya | ́ | |||
" | アポストロフィ、例: あなた「私」 | " | |||
´ | 急性、例: Vasya | ´ | ´ | ||
¶ | 段落(印刷不可能な文字) | ¶ | ¶ | ||
§ | 段落 | § | § | ||
ˆ | アクセント(逆さまの鳥) | ˆ | ˆ |
||
˜ | 小さなチルダ | ˜ | ˜ |
||
¦ | 縦の点線 | ¦ | ¦ | ||
( | 左括弧 | ( | |||
) | 右括弧 | ) | |||
〈 | 左山括弧 | 〈 | 〈 | ||
〉 | 直角括弧 | 〉 | 〉 | ||
‹ | 左山括弧、オプション | ‹ | ‹ | ||
› | 直角ブラケット、オプション | › | › | ||
[ | 角括弧左 | [ | |||
] | 右角括弧 | ] | |||
/ | スラッシュ - スラッシュ文字 | / | |||
\ | バックスラッシュ | \ | |||
⁄ | スラッシュ (除算記号) | ⁄ | ⁄ | ||
ǀ | 縦棒 | ǀ | |||
ǁ | 二重縦棒 | ǁ | |||
‾ | 上線、例: Vasya‾vasya | ‾ | ‾ | ||
¯ | マクロン、例: Vasyaāvasya | ¯ | ¯ |
+ | プラス | + | + | ||
---|---|---|---|---|---|
− | マイナス | − | - − |
||
= | 等しい | = | |||
± | プラスかマイナスか | ± | ± | ||
× | 乗算記号 | × | × | ||
÷ | 区切り記号 | ÷ | ÷ | ||
⋅ | ドット演算子 (行の中央) | ⋅ | · ⋅ |
||
∗ | アスタリスク演算子 (行の中央) | ∗ | ∗ | ||
∼ | チルダ演算子 | ∼ | ∼ | ||
. | リストマーカー(行の中央) | . | |
||
¹ | 上付き文字「1」 | ¹ | ¹ | ||
² | 上付き文字「2」 | ² | ² | ||
³ | 上付き文字「3」 | ³ | ³ | ||
HTML (XHTML) の上付き文字と下付き文字 タグを使用して挿入できます そして 、 それぞれ: 番号 上付き文字→ NUMBER 上付き文字 番号 添字→ NUMBER 添え字 |
|||||
½ | 分数「半分」 | ½ | ½ | ||
⅓ | 分数「3分の1」 | ⅓ | |||
¼ | 端数「4分の1」 | ¼ | ¼ | ||
¾ | 分数「4分の3」 | ¾ | ¾ | ||
№ | 番号記号 | № | |||
% | パーセント | % | |||
‰ | ppm | ‰ | ‰ |
||
° | 度 | ° | ° | ||
′ | 素数(分、フィート) | ′ | ′ | ||
″ | 二重素数 (秒、インチ) 例 1: 30° 25' 12" 例 2: 25'12 ″ |
″ | ″ | ||
µ | マイクロ | µ | µ | ||
π | 円周率 | π | π | ||
ƒ | 関数記号 (「積分」と混同しないでください) |
ƒ | ƒ |
||
∫ | 積分 | ∫ | ∫ | ||
∅ | ゼロを越えた、空集合 (「直径」と混同しないでください) |
∅ | ∅ | ||
⌀ | 直径 (取り消し線を引いたラテン語の「o」と混同しないでください) | ⌀ | |||
ø | ラテン語の「o」の斜めの取り消し線 | ø | ø | ||
Ø | ラテン大文字の「O」を斜めに取り消し線で消します | Ø | Ø | ||
∏ | ワークマーク | ∏ | ∏ | ||
∑ | 和の符号 | ∑ | ∑ | ||
√ | ラジカル (平方根またはx根) |
√ | √ | ||
∝ | 比例して | ∝ | ∝ | ||
∞ | 無限大 | ∞ | ∞ | ||
∠ | コーナー | ∠ | ∠ | ||
⊥ | 直交(垂直) | ⊥ | ⊥ | ||
∴ | 「だから」とサインする | ∴ | ∴ | ||
≅ | ほぼ等しい | ≅ | ≅ | ||
≈ | ほぼ等しい | ≈ | ≈ | ||
≠ | 等しくない | ≠ | ≠ | ||
≡ | 同じように | ≡ | ≡ | ||
≤ | 以下 | ≤ | ≤ | ||
≥ | 以上 | ≥ | ≥ | ||
∧ | 論理積 | ∧ | ∧ | ||
∨ | 論理和 | ∨ | ∨ | ||
⊕ | 丸の中のプラス記号 (直接金額) |
⊕ | ⊕ | ||
⊗ | 円の中の掛け算記号 (外積、観察者からの矢印) |
⊗ | ⊗ | ||
ʘ | 円の中の点 (観察者への矢印) |
ʘ |
✵ ✵ |
|||||
このセクションでコードのフォーマットが指定されていない場合、コードは PSR-2 に従ってフォーマットされる必要があります。
PHP コードのコメント化は不可欠な部分です。
コードにコメントを付ける場合は、PHPDoc コメントを使用する必要があります。
コード内の 1 行の説明コメントには、 // で始まる通常のコメントを使用できます。
変数に名前を付けるときの基本ルールは、変数の目的を説明するコメントが不要な名前にすることです。
変数名には次の接頭辞が使用されます。
$arUserList = 配列(); $dbRes = CIBlockElement::GetByID($id); $bアクティブ = false;
変数名はアンダースコアで始めてはなりません。
グローバル変数は大文字でアンダースコアで区切って記述します。
グローバル $USER、$APPLICATION、$AR_MESSAGES。
グローバル変数の使用は、絶対に必要な場合にのみ許可されます。 D7 が提供するものは、必要な場所で使用してください。
スクリプトのローカル変数 (関数、メソッド、クラス) は常に小文字で始まり、単語は最初の文字の大文字化 (キャメルケース) によって区切られます。
この規則は略語に適用されます。
それらの。 BBC 放送局は $bbcStation と書きます。 $arBbcStations; 。
例外が 1 つだけあります。ID は大文字で書かれています。
それらの。 $sectionID 、 $arElementIDs 。
$カウンター = 0; $bElementActive = false; $lastErrorMsg = ""; $ID = $_GET["ID"];
FOR... FOREACH 構造で使用される変数は、ページをスクロールせずに使用されているブロックのコードを表示する場合、省略して呼び出すことができます。
($i = 0; $i の場合)< count($arRows); $i++) { // ... } foreach ($arElement as $k =>$v) ( // ... ) while ($arr = $dbRes->Fetch()) ( // ... )
定数名は大文字で書かれ、単語はアンダースコアで区切られます。 グローバル スコープのため、定数の前には短いプレフィックス (モジュール、コンポーネント、テンプレートの名前) を付ける必要があります。
Bitrix のシンボリック コードはさまざまな用途に必要なため、同じ名前を使用する必要があります。 文字コードは、数字や特殊文字を使用せずにラテン文字で記述する必要があり、情報ブロック、セクション、または要素の本質を反映している必要があります。
関数のグローバル スコープのため、関数の名前は短いプレフィックス (モジュール、コンポーネント、テンプレートの名前) で始まる必要があります。
制御構造の一般的なルールは、コードの論理ブロックがインデントされることです。
ブロックが 1 つの画面に収まらない場合は、少なくとも 2 つのタブのインデントが作成されます。 1 つの論理要素に割り当てられる大きなコード ブロックは、2 行以上の空白行で区切られ、要素のロジックを説明する開始コメントと終了コメントを提供する必要があります。
プラグインの設定 phpfmt.