プロセスは次のとおりです。
まず、エンティティを保存するときにこのメソッド (システム自体) を使用します。
たとえば、ElggObject から継承する Activity クラスがあり、そのインスタンス アクティビティを作成します。
コード コードは次のとおりです:
// 次に、ファイルアイコンがあるかどうかを確認します
if ((isset($_FILES['icon'])) && (substr_count($_FILES['icon'][' type'],'image/')) ) {
$prefix = "activity/".$activity->guid;
$filehandler->owner_guid = $activity-> owner_guid;
$filehandler->setFilename( $prefix . ".jpg");
$filehandler->write(get_uploaded_file('icon')); filehandler->close();
$thumbtiny = get_resize_image_from_existing_file($filehandler->getFilenameOnFilestore(),25,25, true);
$thumbsmall = get_resize_image_from_existing_file($filehandler->getFilenameOnFilestore(),40,40, true );
$thumbmedium = get_resize_image_from_existing_file ($filehandler ->getFilenameOnFilestore(),100,100, true);
$thumblarge = get_resize_image_from_existing_file($filehandler->getFilenameOnFilestore(),200,200, false); $thumbtiny) {
$thumb = new ElggFile();
$thumb->owner_guid = $activity->setMimeType('image/jpeg');
$thumb->setFilename($prefix); tiny.jpg");
$thumb->open("write");
$thumb->write($thumbtiny);
$thumb->close();
$thumb->setFilename($ prefix."small.jpg");
$thumb->open("write");
$thumb->close(); setFilename($prefix."medium.jpg" );
$thumb->open("write");
$thumb->close(); ->setFilename($prefix."large .jpg");
$thumb->open("write");
$thumb->close();
}
}
このプロセスの後、ファイルはユーザー名文字列で構成されるディレクトリ構造に保存されます。たとえば、ユーザー名が abc の場合、a/b/c/ の下に保存され、その後ファイルに保存されます。は、画像名の guid+size+.jpg で構成されます。
SRCアドレスを取得する場合は、entity->getIcon();メソッドで取得します。 getIcon は entities.php のメソッドです。次に、このメソッドは get_entity_icon_url メソッドを呼び出します。 get_entity_icon_url メソッドには次の行があります:
$url =trigger_plugin_hook('entity:icon:url', $entity->getType(), array('entity' => $ entity, ' viewtype' => $viewtype, 'size' => $size), $url);
プラグインの start.php に登録する必要があるフックをトリガーします。登録するときは次のように記述します:
register_plugin_hook('entity:icon:url', 'object', 'activity_activityicon_hook');
最初のパラメータはフックのタイプ、2 番目はアクティビティのタイプであるエンティティ タイプです。 3 番目はフック関数名です。
次に、start.php に activity_activityicon_hook メソッドを記述します。
コードをコピーします
コードは次のとおりです:
/**
* アイコンの取得
* これは getIcon API にフックされ、可能な場合にはユーザーに便利なユーザー アイコンを提供します
* * @param string $hook フック名* @param string $entity_type エンティティ タイプ* @param string $returnvalue image URL アドレス* @param 不明 $params パラメーター リスト
* @return string $url 画像 URL アドレス
*/
function activity_activityicon_hook($hook, $entity_type, $returnvalue, $params) {
global $CONFIG;
if ((!$returnvalue) && ($hook == 'entity:icon:url') && ($params['entity'] instanceof Activity)) {
$entity = $ params['エンティティ'];
$type = $entity->type;
$size = $params['size']; -> icontime) {
$icontime = "{$icontime}"; else {
$icontime = "デフォルト";
$filehandler->owner_guid = $entity -> owner_guid;
$filehandler->setFilename("activity/" . $entity->guid . $size . ".jpg");
if ($filehandler->exists()); = $CONFIG ->url . "pg/activityicon/{$entity->guid}/$size/$icontime.jpg";
このメソッドは、src のアドレスである URL を返します。 URL が get_entity_icon_url に戻った後、画像サイズに従って処理が続けられ、最終的な URL が返されます。このようにして、srcアドレスが取得されます。
http://www.bkjia.com/PHPjc/321496.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/321496.html技術記事プロセスは次のとおりです: まず、エンティティを保存するときにこのメソッド (システム自体) を使用します。 たとえば、ElggObject から継承された Activity クラスがあり、そのインスタンス アクティビティが作成されます。コードをコピーします...
。